Anda di halaman 1dari 6

Procedure

Prosedur adalah suatu program yang terpisah dalam blok tersendiri


yang berfungsi sebagai subprogram. Penggunaan prosedur diawali
dengan kata cadangan procedure di dalam bagian deklarasi prosedur.
Pemanggilan prosedur dapat dilakukan dengan menggunakan judul
prosedur.
Pada program terstruktur banyak menggunakan prosedur karena :
• Sebagai penerapan program yang modular yaitu memecah
program yang rumit menjadi program-program bagian yang lebih
sederhana dalam bentuk prosedur.
• Untuk beberapa perintah yang sering digunakan berulang, cukup
dituliskan sekali dalam prosedur dan dapat dipanggil sewaktu-
waktu.
Bentuk Umum:
Procedure nama_procedure(parameter);
Deklarasi variabel,label,..dll;
Begin
Statemen prosedur;
………
……...
End;

Contoh Prosedur tanpa parameter:


uses crt;
var
i:byte;

procedure garis;
var
counter : integer;
begin
textcolor(green);
for counter:=1 to 10 do
begin
write(chr(196));
end;
end;
begin
clrscr;
for i:=1 to 5 do
begin
garis;
writeln('pascal');
end;
readln;
end.

Algoritma Pemrograman 2 1
Output:
──────────pascal
──────────pascal
──────────pascal
──────────pascal
──────────pascal

Parameter dalam prosedur


Nilai di dalam suatu prosedur sifatnya adalah lokal, berarti hanya dapat
digunakan oleh prosedur tersebut saja dan tidak dapat digunakan oleh
prosedur yang lain. Deklarasi secara global dapat menyebabkan semua
prosedur dibawah deklarasi global dapat menggunakannya.
Contoh penggunaan deklarasi global dan lokal:
uses crt;
Procedure Hitung_Luas(p,l:integer);{Prosedur dengan parameter}
var
ls:integer;
{variabel lokal}
begin
ls:=p*l;
writeln('Luas :',ls);
end;
Procedure Hit_Keliling(p,l:integer); {Prosedur dengan
parameter}
var
kel:integer;
{variabel lokal}
begin
kel:=(2*p)+(2*l);
writeln('Keliling :',kel);
end;

{===program utama===}
var
pj,lbr:integer;
begin
clrscr;
writeln('Program Untuk Menghitung luas dan keliling
persegipanjang');
writeln;
write('Masukan panjang : ');readln(pj);
write('Masukan lebar : ');readln(lbr);
writeln;
Hitung_Luas(pj,lbr); {Memanggil prosedur Hitung_Luas}
Hit_Keliling(pj,lbr); {Memanggil prosedur Hit_Keliling}
readln;
end.

Algoritma Pemrograman 2 2
Output:
Program Untuk Menghitung luas dan keliling persegipanjang

Masukan panjang : 10
Masukan lebar : 6

Luas :60
Keliling :32

Pengiriman parameter secara Nilai


Pada pengiriman parameter secara nilai (by value), parameter formal
akan berisi nilai yang dikirimkan dari parameter nyata dan nilai
parameter tersebut akan lokal di prosedur yang dikirim, sifat dari
pengiriman nilai ini adalah satu arah, sehingga perubahan nilai dari
parameter formal tidak akan mempengaruhi nilai parameter nyata.
Contoh :
uses crt;
procedure kali(a,b :integer);
var
hasil : integer;
begin
hasil := a*b;
writeln('hasil=',hasil:6);
end;

var
bil1,bil2 : integer;
begin
clrscr;
write('bilangan 1 = ');readln(bil1);
write('bilangan 2 = ');readln(bil2);
kali(bil1,bil2);
readln;
end.
Output :
bilangan 1 = 5
bilangan 2 = 3
hasil= 15

Algoritma Pemrograman 2 3
Di bawah ini merupakan contoh bahwa perubahan pada parameter
formal tidak akan mempengaruhi nilai parameter nyata, karena sifatnya
adalah satu arah.
Program parameter_nilai_tdk_mempengaruhi_parameter_nyata;
uses crt;

procedure testhitung(a,b,hasil : integer);

begin

hasil := a*b;

writeln('A=',a:4,' B=',b:4,' Hasil=',hasil:6);

end;

var

bil1,bil2,bil3: integer;

begin

clrscr;

bil1:=3;bil2:=4;bil3:=0;

testhitung(bil1,bil2,bil3);

writeln('bil1=',bil1:4,' bil2 =',bil2:4,' bil3=',bil3);

readln;

end.

Output:

A= 3 B= 4 Hasil= 12

bil1=3 bil2 =4 bil3=0

Pengiriman parameter secara acuan (by reference)


Sifat dari pengiriman parameter secara acuan adalah dua arah artinya
perubahan dari parameter formal akan mempengaruhi nilai dari
parameter nyata. Cara deklarasi diprocedure dengan kata cadangan Var
seperti berikut :
Procedure kali(Var a,b,c : integer); -> parameter formal
kali(x,y,z); -> parameter nyata
Contoh :
Program pengiriman_parameter_secara acuan;
Uses crt;
Procedure kali(var a,b,c : integer); {parameter formal acuan}

Algoritma Pemrograman 2 4
Begin
c:=a*b;
End;
{modul utama}
Var
x,y,z : integer;
Begin
Write('nilai x=');
Readln(x);
Write('nilai y=');
Readln(y);
kali(x,y,z); {mengirimkan parameter secara acuan}
Writeln('Nilai z =',z:5);
End.

Di dalam pascal diperkenankan prosedur memanggil prosedur yang lain


seperti contoh berikut :
Program procedure_memanggil_procedure_yang_lain;
Uses crt;
Procedure satu(a1: integer);
Begin
Writeln(' nilai a =',a1:2,' ada diprocedure satu');
End;
Procedure dua(a2: integer);
Begin
Writeln(' nilai a =',a2:2,' ada diprocedure dua');
satu(a2);
End;
Procedure tiga(a3: integer);
Begin
Writeln(' nilai a =',a3:2,' ada diprocedure tiga');
dua(a3);
End;
Procedure empat(a4: integer);
Begin
Writeln(' nilai a =',a4:2,' ada diprocedure empat');
tiga(a4)
End;
{modul Utama}
Var
a : integer;
Begin
Clrscr;
Write('nilai a=');readln(a);
empat(a);
Readln;
End.

Algoritma Pemrograman 2 5
Prosedur Tersarang
Prosedur tersarang adalah prosedur yang terdapat di dalam prosedur
yang lain dan dipanggil oleh prosedur diluarnya.
Program contoh_procedure_tersarang;
Uses crt;
Procedure satu; {deklarasi procedure satu}
Procedure dua;
Begin {awal procedure dua}
Writeln('procedure dua ada di procedure satu');
End; {akhir procedure dua}
Procedure tiga;
Begin {awal procedure tiga}
Writeln('procedure tiga ada di procedure satu');
End; {akhir procedure tiga}
Begin {awal procedure satu}
Writeln(' procedure satu');
dua; {memanggil procedure dua}
tiga; {memanggil procedure tiga}
End; {akhir procedure satu}

{modul utama}
Begin
Clrscr;
Writeln(' modul utama');
satu; {memanggil procedure satu}
Readln;
End.
Prosedur memanggil dirinya sendiri (rekursi)
Di dalam pascal diperkenankan memanggil prosedurnya sendiri. istilah
ini disebut sebagai recursion. Dalam penggunaanya membutuhkan
memory yang besar. Karena pada setiap pemanggilan sejumlah memory
tambahan dibutuhkan.
Contoh :
Program procedure_memanggil_dirinya_sendiri;
Uses crt;
Var
i : integer;
Procedure rekursi;
Begin
Writeln('pemangilan procedure ke-',i:5);
i:=i+1;
If i < 5 then rekursi;
End;
{modul utama}
Begin
Clrscr;
i:=1;
rekursi;Readln;
End.

Algoritma Pemrograman 2 6

Anda mungkin juga menyukai