Rabu, 30 Maret 2011

Parameter

Submitted by taoyue.com on Tue, 2011/01/06 - 20:58Sebuah daftar parameter dapat dimasukkan sebagai bagian dari prosedur pos. Daftar Parameter memungkinkan nilai-nilai variabel yang akan ditransfer dari program utama prosedur. Prosedur baru pos adalah:
Prosedur Nama (formal_parameter_list); ini daftar parameter terdiri dari kelompok beberapa parameter, yang dipisahkan oleh titik koma:
param_group_1; param_group2; ... ; Param_groupn parameter Setiap kelompok memiliki bentuk:
identifier_1, identifier_2, ... , Identifier_n: data_type Prosedur ini disebut dengan melewatkan argumen (disebut daftar parameter aktual) dari jumlah dan jenis yang sama sebagai daftar parameter formal.
Nama prosedur (a, b: integer, c, d: real);mulai
  
a: = 10;
  
b: = 2;
  
writeln (a, b, c, d)akhir; Misalnya anda disebut prosedur di atas dari program utama sebagai berikut:
alpha: = 30;Nama (alpha, 3, 4, 5); Bila Anda kembali ke program utama, berapakah nilai alpha? 30. Namun, alpha dilewatkan ke suatu, yang diberi nilai 10. Apa yang sebenarnya terjadi adalah bahwa dan alpha sama sekali berbeda. Nilai dalam program utama tidak terpengaruh oleh apa yang terjadi dalam prosedur.
Hal ini disebut panggilan-by-value. Ini mengirimkan nilai dari variabel ke prosedur.
Cara lain untuk melewati parameter adalah panggilan-oleh-referensi. Hal ini menciptakan hubungan antara parameter formal dan parameter aktual. Ketika parameter formal yang diubah dalam prosedur, parameter aktual juga diubah. Call-by-referensi diaktifkan dengan mendahului kelompok parameter dengan VAR a:
VAR identifier1, identifier2, ..., identifiern: datatype; Dalam hal ini, konstanta dan literal tidak boleh digunakan sebagai parameter aktual karena mereka mungkin berubah dalam prosedur.
Berikut adalah contoh yang Mixes panggilan-oleh-nilai dan call-by-referensi:
Nama prosedur (a, b: integer; VAR c, d: integer);mulai
  
c: = 3;
  
a: = 5akhir;
mulai
  
alpha: = 1;
  
gamma: = 50;
  
delta: = 30;
  
Nama (alfa, 2, gamma, delta);akhir. Segera setelah prosedur telah dijalankan, gamma memiliki nilai 3 karena c adalah parameter referensi, tapi masih alpha 1 karena merupakan parameter nilai.
Ini sedikit membingungkan. Pikirkan panggilan-nilai dengan-sebagai variabel menyalin, kemudian memberikan salin prosedur. Prosedur bekerja pada salinan dan membuang ketika hal itu dilakukan. Variabel asli tidak berubah.
Call-by-referensi adalah memberikan variabel yang sebenarnya prosedur. Prosedur ini bekerja langsung pada variabel tersebut dan mengembalikannya ke program utama.
Dengan kata lain, call-by-value adalah satu arah transfer data: program utama dengan prosedur. Call-by-reference berjalan baik.

 

Tugas komdat tanggal 29/03/2011

©2009 STMIK LIKMI, allrights reserved.  Web Designer : Henry Darmawan | Web Programmer : Harry Santoso | Team Leader : Hery Heryanto
Variabel Global dan Variabel Lokal

Variabel Global adalah variabel yang dikenal di seluruh badan program dan di definisikan di dalam program utama.

Variabel Lokal adalah variabel yang hanya dikenal di badan program yang mendefinisikannya, di definisikan di prosedure atau fungsi.

Contoh :
Program <Nama Program>
Var A : Tipe variabel {Variabel Global}

Procedure / Fungsi
Var C : Tipe Variabel {Variabel Lokal}

Dari contoh diatas A adalah variabel global karena A didefinisikan di program utama sehingga bisa dikenal oleh seluruh badan program. Sedahg variabel C adalah variabel lokal dan hanya dikenal di tempat didefinisikannya
 
Function

FUNGSI - Sebuah TIPE KHUSUS YANG PROSEDUR PENGEMBALIAN NILAI A
Prosedur menerima data atau variabel ketika mereka dieksekusi. Fungsi juga menerima data, tetapi memiliki kemampuan untuk mengembalikan nilai ke prosedur atau program yang memintanya. Fungsi digunakan untuk melakukan tugas-tugas matematika seperti perhitungan faktorial.

Sebuah fungsi

     * dimulai dengan fungsi kata kunci
     * mirip dalam struktur dengan prosedur
     * suatu tempat di dalam kode yang terkait dengan fungsi, nilai ditugaskan untuk nama fungsi
     * Fungsi yang digunakan pada sisi tangan kanan dari sebuah ekspresi
     * hanya dapat mengembalikan tipe data sederhana

Sebenarnya pos dari suatu fungsi sedikit berbeda daripada prosedur. Format adalah,

       function_name fungsi (deklarasi variabel): return_data_type;


Setelah kurung yang mendeklarasikan variabel tersebut diterima oleh fungsi, tipe data yang dikembalikan (didahului oleh tanda titik dua) dinyatakan.


fungsi ADD_TWO (nilai1, nilai2: integer): integer;
mulai
ADD_TWO: = nilai1 + nilai2
akhir;


Baris berikut menunjukkan bagaimana memanggil fungsi,


Hasil: = ADD_TWO (10, 20);

demikian, ketika ADD_TWO dieksekusi, itu sama dengan nilai yang diberikan dengan namanya (dalam hal ini 30), yang kemudian ditugaskan untuk hasil.

Function Menghitung Pangkat Bilangan dengan Pascal


July 26th, 2008 | by rosihanari
Free Software
Pada artikel ini akan dibahas tentang bagaimana membuat program Pascal untuk menghitung pangkat bilangan.
Seperti yang kita ketahui bahwa dalam Pascal tidak ada suatu function atau perintah tertentu untuk menghitung pangkat bilangan secara langsung. Dengan demikian kita harus membuat function sendiri untuk menghitung pangkat bilangan tersebut.
Dalam pembahasan ini akan dibedakan dua jenis pangkat a^b, yaitu untuk b berupa bilangan bulat non negatif dan a berupa bilangan riil.
Untuk a^b dengan b bilangan bulat non negatif, tentu saja berlaku:
a^b = a x a x … x a
dengan jumlah perkalian a sebanyak b kali.
Apabila untuk kasus pertama ini diimplementasikan dengan program Pascal, maka kasus ini dapat teratasi dengan perulangan. Berikut ini adalah function untuk menghitung pangkat berupa bilangan bulat non negatif dengan Pascal:
01.function pangkatBulat(a : real, <strong>b : integer</strong>) : real;
02.var i : integer; temp : real;
03.begin
04.     temp := 1;
05.     for i := 1 to b do
06.     begin
07.         temp := temp * a;
08.     end;
09.     pangkat := temp;
10.end;
Jika Anda perhatikan pada function di atas, maka terdapat perintah temp := temp * a; Proses ini dilakukan b kali, dengan nilai awal temp adalah 1. Mengapa demikian? Untuk menjawab ini kita ambil contoh kasus. Sebagai contoh misalkan akan dicari 3^4 (a = 3 dan b = 4). Hasil perpangkatan ini akan diperoleh dari perkalian 3 x 3 x 3 x 3. Berikut ini adalah proses perhitungannya dengan menggunakan algoritma yang diambil dari program di atas:
01.temp = 1
02. 
03.perulangan pertama (i = 1)
04.temp = temp x a = 1 x 3 = 3
05. 
06.perulangan kedua (i = 2)
07.temp = temp x a = 3 x 3 = 9
08. 
09.perulangan ketiga (i = 3)
10.temp = temp x a = 9 x 3 = 27
11. 
12.perulangan keempat (i = 4)
13.temp = temp x a = 27 x 3 = 81
Nah.. dari hasil di atas benar bahwa hasil perhitungan 3^4 = 81. Dengan algoritma ini, bisa diimplementasikan pada sebarang  nilai  a dan b (a riil dan b bulat non negatif).
Selanjutnya bagaimana dengan b yang berbentuk bilangan riil? misalnya 4^1.5? Hmmm… kalau yang ini gak bisa pakai algoritma sebelumnya karena kesulitan mengimplementasikan ke bentuk perulangan. Lantas bagaimana?
OK… untuk menjawab ini mari kita ingat kembali pelajaran di SMA mengenai konsep Ln atau Log dan juga eksponen. Sekarang kita gunakan konsep Ln ini ke masalah kita. Dalam hal ini kita akan mencari nilai y = a^b. Perhatikan:
y = a^b
<=> Ln y = Ln (a^b)
<=> Ln y = b Ln(a)
<=> e^(Ln y) = e^(b Ln(a))
<=> y = e^(b Ln(a))
Dari langkah di atas, kita sudah dapatkan formulasi baru untuk mencari y = a^b dengan b adalah riil. Dalam Pascal telah tersedia function exp() untuk mencari nilai eksponensial, serta function Ln() untuk mencari nilai logaritma bilangan natural. Sehingga implementasinya ke Pascal adalah:
1.function pangkatRiil(a : real, <strong>b : real</strong>) : real;
2.begin
3.    pangkatRiil := exp(b * ln(a));
4.end;
Selanjutnya akan kita implementasikan function-function di atas di program Pascal:
01.Program MencariPangkat;
02.Var x : real; y : integer; z : real;
03. 
04.function pangkatBulat(a : real, b : integer) : real;
05.var i : integer; temp : real;
06.begin
07.     temp := 1;
08.     for i := 1 to b do
09.     begin
10.         temp := temp * a;
11.     end;
12.     pangkat := temp;
13.end;
14. 
15.function pangkatRiil(a : real, <strong>b : real</strong>) : real;
16.begin
17.    pangkatRiil := exp(b * ln(a));
18.end;
19. 
20.Begin
21.    x := 5;
22.    y := 3;
23.    z := 3.5;
24.    Write('Nilai ',x,' pangkat ',y,' adalah ',
25.           pangkatBulat(x,y):3:0);
26.    Write('Nilai ',x,' pangkat ',z,' adalah ',
27.           pangkatRiil(x,z):3:4);
28.End.
 PROSEDUR DAN DAFTAR PARAMETER
. Prosedur (Procedure)
Prosedur adalah modul program yang mengerjakan aktivitas/tugas yang spesifik dan menghasilkan efek netto.
Suatu efek netto diketahui dengan membandingkan Keadaan Awal (Initial State) dan Keadaan Akhir (Final State) pada pelaksanaan sebuah prosedur
Oleh karena itu pada setiap prosedur harus dapat didefinisikan Keadaan Awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan Keadaan Akhir yang diharapkan setelah rangkaian instruksi dilaksanakan.
1.1. Pendefinisian Prosedur
  Pada dasarnya prosedur sama dengan struktur algoritma yang sudah dikenal, yaitu ada bagian judul (Header) yang terdiri atas nama prosedur dan komentar yang menjelaskan spesifikasi prosedur tersbut, bagian deklarasi dan badan prosedur
Setiap prosedur mempunyai nama yang unik, dan sebaiknya dimulai dengan kata kerja karena prosedur berisi suatu aktivitas.
  Contoh HitungLuas, Tukar, CariMaksimum, Inisialisasi, dan sebagainya.
Notasi algoritma yang digunakan untuk mendefinisikan prosedur tanpa parameter adalah sebagai berikut :
Procedure NamaProsedur
 
{K.Awal  : Keadaan sebelum prosedur dilaksanakan
  K. Akhir  : Keadaan setelah prosedur dilaksanakan
  Proses  : Spesifikasi prosedur, yang berisi penjelasan     tentang apa yang dilakukan oleh prosedur}
Deklarasi
  {Semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di dalam prosedur didefinisikan disini}
Deskripsi
  {Badan prosedur, yang berisi kumpulan instruksi}
 
Parameter
Parameter aktual adalah parameter yang sisertakan   pada saat pemanggilan prosedur.
Sedangkan parameter formal adalah parameter   yang dideklarasikan di dalam prosedur itu   sendiri. Ketika prosedur dipanggil parameter   aktual menggantikan parameter formal dan   tiap-tiap parameter aktual berpasangan   dengan parameter foemal yang bersesuaian.
Parameter Formal dibagi menjadi 3 bagian :
1.   Parameter Masukan (Input)
  adalah parameter yang nilainya berlaku sebagai masukan untuk prosedur.
2.   Parameter Keluaran (Output)
  adalah parameter yang menampung keluaran yang dihasilkan oleh prosedur tersebut
4.   Parameter Masukan/Keluaran (Input/Output)
  adalah parameter yang berfungsi sebagai masukan sekaligus sebagai keluaran bagi prosedur tersebut
 
Pemanggilan prosedur
Prosedur tidak dapat berdiri sendiri, jadi ia tidak   dapat dieksekusi secara langsung, instruksi-  instruksi dalam prosedur baru dapat   dilaksanakan jika prosedur tersebut diakses,   dengan cara pemanggilan prosedur.
Pemanggilan prosedur tanpa parameter pada
bagian program utamanya adalah
  NamaProsedur
Pemanggilan prosedur dengan parameter adalah
  NamaProsedur(Parameter Aktual)

Jumat, 25 Maret 2011

Tugas Komunikasi Data

KODE BAUDOT
Binary
Decimal
Hex
Octal
Letter
U.S.
Figures
CCITT No.2
Figures
00000
0
0
0
N/A
N/A
N/A
00001
1
1
1
E
3
3
00010
2
2
2
LF
LF
LF
00011
3
3
3
A
-
-
00100
4
4
4
Space
Space
Space
00101
5
5
5
S
BELL
'
00110
6
6
6
I
8
8
00111
7
7
7
U
7
7
01000
8
8
10
CR
CR
CR
01001
9
9
11
D
$
WRU
01010
10
A
12
R
4
4
01011
11
B
13
J
'
Bell
01100
12
C
14
N
,
,
01101
13
D
15
F
!
!
01110
14
E
16
C
:
:
01111
15
F
17
K
(
(
10000
16
10
20
T
5
5
10001
17
11
21
Z
"
+
10010
18
12
22
L
)
)
10011
19
13
23
W
2
2
10100
20
14
24
H
#
£
10101
21
15
25
Y
6
6
10110
22
16
26
P
0
0
10111
23
17
27
Q
1
1
11000
24
18
30
O
9
9
11001
25
19
31
B
?
?
11010
26
1A
32
G
&
&
11011
27
1B
33
Figures Shift
Figures Shift
Figures Shift
11100
28
1C
34
M
.
.
11101
29
1D
35
X
/
/
11110
30
1E
36
V
;
=
11111
31
1F
37
Letters Shift
Letters Shift
Letters Shift