Anda di halaman 1dari 28

PROSEDUR

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’)

Dari contoh tersebut ketika nama Prosedur dipanggil, kendali


program akan berpindah secara otomatis ke Prosedur tersebut dan
instruksi dalam Prosedur dilaksanakan. Setelah semua instruksi
selesai dilaksanakan kendali program secara otomatis berpindah ke
instruksi sesudah pemanggilan Prosedur
Nama Lokal dan Nama
Global
Semua nama-nama yang dideklarasika didalam
mudul prosedur hanya dapat dipakai oleh
prosedur itu sendiri dan tidak dapat digunakan
oleh modul lain. Baik modul utama maupun
modul prosedur. Nama-nama tersebut dikatakan
bersifat lokal. Sedangkan nama-nama yang
dideklarasikan didalam program utama dikatakan
bersifat Global artinya dapat digunakan oleh
modul manapun, baik modul utama maupun
modul prosedur.
Contoh : Algoritma_Hit_Rata
Procedure Hit_Rata
Deklarasi
Var I : Integer
Bil : Integer
Jlh : Integer

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)

Pada algoritma diatas A,B,C adalah parameter formal, X,Y,Z adalah


parameter actual, antara parameter formal dan parameter actual saling
bersesuaian, untuk itu kedua parameter harus mempunyai tipe yang
sama. Pada saat pemanggilan prosedur Hit_Nilai, nilai parameter actual
dikirim ke parameter formal, sehingga nilai parameter nilai parameter
formal akan menggantikan nilai parameter actual.
Parameter Keluaran

Parameter keluaran adalah parameter yang


menampung keluaran yang dihasilkan oleh
prosedur. Bila prosedur yang mengandung
parameter keluaran dipanggil, nama
parameter actual menggantikan nama
parameter formalyang bersesuaian didalam
prosedur. Parameter keluaran dideklarasikan
dengan kata kunci output seperti pada contoh
berikut :
Procedure Hit_Rata (input N : integer, output Rata : real)
Deklarasi
I : Integer
Bil : Integer
Jlh : Integer
Deskripsi
I 1
Jlh  0
While I <= N do
Read(Bil)
Jlh  Jlh + Bil
I I+1
EndWhile
Rata  Jlh /N
Algoritma Pemanggil_Hit_Rata
Deklarasi
NData : Integer
NRata : Real
Procedure Hit_Rata (input N : integer, output Rata : real)
Deskripsi
Write(‘Menghitung Nilai Rata-rata bilangan’)
Read(NData)
Hit_Rata (Ndata, N_rata)
Write(‘Nilai Rata-rata ‘, N_Rata)
Pada algoritma diatas, N adalah parameter
masukan, Rata adalah parameter keluaran.
Ketika prosedur dipanggil, nilai parameter
actual yaitu B_data akan menggantikan
parameter formal diprosedur. Sedangkan
parameter actual N_Rata akan
menampung hasil proses dari prosedur
Procedure Hit_Nilai ( input/output A,B , C : Integer)
Deklarasi
Deskripsi
A←B+C
C ← SQR (A)
Algoritma Pemanggil_Hit_Nilai
Deklarasi
X, Y, Z : Integer
Procedure Hit_Nilai ( input A,B , C : Integer)
Deskripsi
Read(X) 2
Read(Y) 2
Read(Z) 2
Write (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

Procedure Hit_Keliling (input Pjg, Lbr : real, Output Keliling : Real)


Deskripsi
Keliling  2 * Pjg + 2 * Lbr

Procedure Hit_Diagonal (input Pjg, Lbr : real, Output Diagonal :


Real)
Deskripsi
Diagonal  SQRT (Pjg * Pjg + Lbr * Lbr)
Algoritma Empat_Persegi_Panjang
Deklarasi
No : Char
P, L, D, K , LS : Ral
Deskripsi
Write (‘MENU EMPAT PERSEGI PANJANG’)
Write (‘1. Hitung Luas’)
Write (‘2. Hitung Keliling’)
Write (‘3. Hitung Panjang Diagonal’)
Write (‘4. Keluar Program’)
Write (‘Masukkan Pilihan Anda 1/2/3/4’)
Read (No)
Case (no)
No = ‘1’ :
Read (P, L)
Hit_Luas (P,L, Ls)
Write (LS)
No = ‘2’ : Read (P, L)
Hit_Keliling(P,L,K)
Write (K)
No = ‘3’ : Read (P, L)
Hit_Diagonal (P, L,D)
Write (D)
No = ‘4’ : Write (‘Keluar Program ……….. Sampai Jumpa !!! ’)
endcase
Procedure Faktorial (input N : integer, Output Hasil : integer)
Var
I : integer
Deskripsi
If N := 0 Then
Hasil := 1
else
hasil := 1
For I := 1 to N do
Hasil := Hasil * I
Endfor
Endif

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

Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)


Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor
Procedure Nilai_Rata (Input X: Tabel, Input N : Integer, Output Rata : Real)
Deklarasi
I : Integer
Jumlah : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Rata ← Jumlah/N
Algoritma Hitung_Rata
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
Larik : Tabel
B_Data : Integer
N_Rata : 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(Larik,B_Data)
Nilai_Rata(Larik,B_Data,N_Rata)
Write(N_Rata)
Mendeklarasikan Array dalam Prosedur
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor

Procedure Nilai_Rata (Input X: Tabel, Input N : Integer, Output Rata : Real)


Deklarasi
I : Integer
Jumlah : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Rata ← Jumlah/N

Prcedure CETAK (Input X: Tabel, Input N : Integer)


Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Write(X[i])
EndFor
Algoritma Hitung_Rata
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
Larik : Tabel
B_Data : Integer
N_Rata : 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(Larik,B_Data)
Nilai_Rata(Larik,B_Data,N_Rata)
Write(N_Rata)
write (‘deretan data yang ada adalah =‘)
CETAK(Larik,B_Data) {memenggil prosedur CETAK}
Mencari Nilai Standar
Deviasi
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor

Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)


Deklarasi
I : Integer
Jumlah : Integer
Deskripsi
For I ← 1 To N Do
Jumlah ← Jumlah + X[i]
EndFor
Rata ← Jumlah/N
Function SD (Input X: Tabel, Input N : Integer, Input xRata : Real) : Real
Deklarasi
I : Integer
J_Kwa, Sigma : Real
Deskripsi
For I ← 1 To N Do
J_Kwa ← J_Kwa + SQR (X[i] – XRata)
EndFor
Sigma ← SQRT (J_Kwa/N)
Return Sigma
Algoritma Hitung_Stdr_Dev
Deklarasi
Type
Tabel : Array[1..100] of Integer
Var
A : Tabel
B_Data : Integer
N_Rata : Real
Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)
Procedure Nilai_Rata (Input/Output X: Tabel, Input N : Integer, Output Rata : Real)
Function SD (Input X: Tabel, Input N : Integer, Input xRata : Real) : Real

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)

Prcedure Isi_Data (Input/Output X: Tabel, Input N : Integer)


Deklarasi
I : Integer
Deskripsi
For I ← 1 To N Do
Read(X[i])
EndFor

Procedure Nilai_Jumlah (Input/Output X: Tabel, Input N : Integer, Output Jumlah : Real)


Deklarasi
I : Integer

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)

KF ← ( JumA*JumB – B_Data(JumA+JumB) )/ JXY

Anda mungkin juga menyukai