PROSEDUR
Prosedur adalah suatu modul program atau bagian program yang terdapat
didalam program dan dapat dipanggil sewaktu-waktu apabila diperlukan
didalam program. Fungsi prosedur didalam program adalah untk
menghindari penulisan teks program yang sama secara berulang-ulang. Dan
penggunaan modul program / Prosedur akan dapat mengurangi panjang
dari program. Pada dasarnya struktur prosedur sama dengan struktur
algoritma yaitu ada bagian Header, Bagian Deklarasi dan Badan Prosedur.
Contoh : Prosedur menghitung luas segitiga dengan rumus L = ½ (Alas *
Tinggi)
Procedure Hit_Luas_S
Deklarasi
A,t, l : Integer
Deskripsi
Read (a)
Read (t)
L a * t /2
Write (L)
Pemanggilan Prosedur
Prosedur bukanlah program yang berdiri sendiri,
sehingga ia tdk dapat dieksekusi secara lang
sung. Ini berarti bahwa instruksi - instruksi dalam
prosedur baru dapat dilaksanakan bila prosedur
tersebut diakses. Prosedur diakses dg
memanggil namanya dari program pemanggil.
Didalam program pemanggil harus didekla
rasikan prototype Prosedur didalam bagian
Deklarasi. Prototype Prosedur hanya berisi
bagian Header Prosedur. Tujuan pendeklarasian
ini agar supaya program pemanggil mengenal
Prosedur tersebut serta cara mengaksesnya.
Contoh program Utama untuk
memanggil Prosedur Hit_Luas_S
adalah :
Algoritma Luas_Segitiga
Deklarasi
Procedure Hit_Luas_S
Deskripsi
Write(‘Menghitung Luas Segitiga’)
Hit_luas_S
Write(‘Selesai’)
Deskripsi
Read (N)
I 1
Jlh 0
While I <= N do
Read(Bil)
Jlh Jlh + Bil
I I+1
EndWhile
Rata Jlh /N
Write(‘Nilai Rata-rata ‘, Rata)
Algoritma Pemanggil_Hit_Rata
Deklarasi
Var N : Integer
Rata : Real
Procedure Hit_Rata
Deskripsi
Write(‘Hitung Nilai Rata-rata’)
Hit_Rata
Write(’Perhitungan Selesai’)
Pada prosedur dan program utama di atas,
peubah N dan Rata dideklarasikan
didalam bagian deklarasi program utama.
Maka N dan Rata bersifat global sehingga
“dikenal” dan dapat digunakan didalam
prosedur Hit_Rata. Sebaliknya I ,Bil, Jlh ,
Ba_bil dideklarasikan didalam prosedur
Hit_Rata, jadi pengenal tersebut bersifat
local dan hanya dikenal dan dapat
digunakan didalam prosedur Hit_Rata.
Procedure Hit_Luas
Deklarasi Luas : Real
Deskripsi
Read (Pjg, Lbr);
Luas := Pjg * Lbr ;
Writeln ('Luas Persegi Panjang = ', Luas );
Procedure Hit_Keliling
Deklarasi
Keliling : Real
Deskripsi
Read (Pjg, Lbr);
Keliling := 2 * Pjg + 2 * Lbr;
Writeln ('Keliling Persegi Panjang = ', Keliling );
Procedure Hit_Diagonal
Deklarasi
Diagonal : Real
Deskripsi
Read (Pjg, Lbr);
Diagonal := SQR (Pjg * Lbr + Lbr * Lbr);
Writeln ('Diagonal Persegi Panjang = ', Diagonal:9:2 );
Algoritma Persegi_Panjang
Deklarasi
var
No : Char
Pjg, Lbr, :Real;
Deskripsi
Writeln ('MENU EMPAT PERSEGI PANJANG');
Writeln ('1. Hitung Luas');
Writeln ('2. Hitung Keliling');
Writeln ('3. Hitung Panjang Diagonal');
Readln (No);
Case no Of
'1' : Hit_Luas
'2' :Hit_Keliling
'3' : Hit_Diagonal
Endcase
Parameter dalam prosedur
Kebanyakan program memerlukan pertukaran informasi antara
prosedur (atau Fungsi) dari titik dimana ia dipanggil. Penggunaan
parameter menawarkan mekanisme pertukaran informasi
tersebut. Tiap item data data ditransfer antara parameter actual
dan parameter formal. Parameter aktual adalah parameter yang
disertakan pada waktu pemanggilan, sedangkan parameter formal
adalah parameter yang dideklarasikan didalam bagian header
prosedur. Ketika prosedur dipanggil parameter actual
menggantikan parameter formal. Tiap-tiap parameter actual
berpasangan dengan parameter formal yang bersesuaian.
Berdasarkan maksud penggunaannya, terdapat tiga jenis
parameter formal yang disertakan dalam prosedur.
Parameter Masukan (Input Parameter)
Parameter Keluaran (output parameter)
Parameter Masukan/Keluaran (input/output parameter)
Parameter Masukan
Parameter masukan adalah parameter yang
nilainya berlaku sebagai masukan untuk
prosedur. Pada parameter masukan nilai
parameter actual disikan ke dalam parameter
formal yang bersesuaian. Nilai yang dinyatakan
oleh parameter masukan tidak dapat dikirim
dalam arah sebaliknya. Parameter masukan
dideklarasikan dengan kata kunci input. Berikut
diberikan contoh penggunaan prosedur dengan
parameter masukan.
Procedure Hit_Nilai ( input A,B , C : Integer)
Deklarasi
Deskripsi
A←B+C
C ← SQR (A)
Write ( A)
Write ( B)
Write (C)
Algoritma Pemanggil_Hit_Nilai
Deklarasi
X, Y, Z : Integer
Procedure Hit_Nilai ( input A,B , C : Integer)
Deskripsi
Read(X)
Read(Y)
Read(Z)
Hit_Nilai (X,Y,Z)
Hit_Nilai (X,Y,Z)
Write (X,Y,Z)
Parameter Masukan/Keluaran
Parameter Masukan/Keluaran adalah parameter yang berfungsi sebagai
masukan dan juga sebagai keluaran.
Contoh :
Procedure Hit_Luas (input/output Pjg, Lbr , Luas : Real)
Deskripsi
Luas Pjg * Lbr
Var
B_Nilai , Hsl_Fak : Integer
Deskripsi
Read (B_Nilai)
Faktorial (B_Nilai, Hsl_Fak)
Write( Hsl_Fak)
TUGAS
Buat Algoritma untuk menghitung rumus
berikut :
1.Y := N! * (B+A)!/A!
2.SX := 1! + 2! + 3! + 4! …..+ Suku ke N
MENDEKLARASIKAN ARRAY DALAM PROSEDUR
Deskripsi
Read(B_Data)
Isi_Data(Larik,B_Data)
Nilai_Rata(Larik,B_Data,N_Rata)
Write(‘Nilai standr Dev = ‘, SD (A,B_data,N_Rata )
Mencari Nilai Koefisien =
xi yi – N( xi + yi)
(xi2 + yi2)
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Procedure Kwadrat (Input X,Y: Tabel, Input N : Integer, Output Jxy :
Real)
Deklarasi
I : Integer
Deskripsi
JXY ← 0
For I ← 1 To N Do
JXY ← Jxy + (Sqr(X[i]) +Sqr(Y[i])
EndFor
Algoritma Hitung_Koef
xi yi – N( xi + yi)
(xi2 + yi2)
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
A,B : Tabel
B_Data : Integer
Kf : real
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)
Deskripsi
Read(B_Data)
Isi_Data(A, B_Data)
Isi_Data(B, B_Data)
Nilai_Jumlah(A,B_Data, JumA)
Nilai_Jumlah(B,B_Data,JumB)
Kwadrat (A,B, B_Data,Jxy)