CHAPTER 3: Procedure
• Prosedur adalah suatu program terpisah dalam blok
sendiri yang berfungsi sebagai subprogram (program
bagian).
• Merupakan sebuah program kecil untuk memproses
sebagian dari pekerjaan program utama.
• Procedure diawali dengan kata Procedure di dalam
bagian deklarasi procedure.
• Prosedur dipanggil dan digunakan di dalam blok program
yang lainnya dengan menyebutkan judul prosedurnya.
Kenapa Menggunakan Proedure??
PROCEDURE maksimum;
VAR maks : integer;
BEGIN
IF a > b THEN maks := a ELSE maks :=
b;
IF c > max THEN maks := c;
WRITELN(maks);
END.
PROGRAM contoh_1; HEADER program utama
VAR a,b,c : integer;
PROCEDURE maksimum;
VAR maks : integer;
BEGIN
IF a>b THEN maks := a ELSE maks := b; Deklarasi program
IF c>maks THEN maks := c; di dalam prosedur
WRITELN(maks);
END;
BEGIN
READLN(a,b,c);
Statement program utama
Maksimum
(Pemanggilan Prosedur)
END.
PROGRAM CONTOH_2;
VAR p,l,t,vol,pl : real;
PROCEDURE kotak;
VAR v,pl : real;
BEGIN
v := p * l * t ;
pl := p + 2.0 * t;
writeln(v,pl);
END;
BEGIN
writeln(‘panjang’ : 10,’lebar’ : 10,’tinggi’ : 10);
readln(p,l,t);
kotak;
END.
Latihan
• Buatlah program dengan prosedur
yang membaca panjang alas dan tinggi
segitiga, menghitung luas segitiga
dengan rumus luas = (alas x tinggi)/2,
dan mencetak luas segitiga tersebut!
Pemanggilan Prosedur
• Prosedur bukan program yang berdiri sendiri
• Tidak dapat dieksekusi secara langsung
• Instruksi-instruksi di dalam prosedur dapat
dilaksanakan hanya bila prosedur tersebut diakses
atau dipanggil di program utama.
• Prosedur diakses dengan cara memanggil
namanya dari program pemanggil (misalnya dari
program utama atau dari modul program lainnya)
• Jika prosedur tanpa parameter, maka
pemanggilannya cukup dengan namanya saja:
NamaProsedur
Jangkauan Identifier
• Identifier yang dideklarasikan dalam suatu blok program
hanya berlaku pada blok dimana identifier tersebut
didefinisikan.
PROGRAM p;
VAR x : real;
PROCEDURE pl;
VAR y : integer;
begin
………………..; Daerah
berlakunya y
………………..; Daerah
end; berlakunya x
begin
………………..;
………………..;
end.
y → variabel global
Program P ;
Var x,y : real; y (real) berlaku disemua blok
…………… program P, kecuali di P1
…………… x (real) berlaku disemua
blok P, kecuali di P2
Procedure Pl ;
Var y : integer; hanya berlaku di P1 saja (lokal)
……………
Begin
………
………
End;
Procedure P2;
Var x : char; hanya berlaku di P2 saja (lokal)
……………
Begin
………..
………..
End;
Begin
…………
x := ……. x dan y yang dimaksud adalah x dan y real
y := ……. (variabel global)
…………
End.
Procedure Dengan Parameter
• Nilai di dalam suatu modul program
Pascal sifatnya adalah lokal
• Artinya hanya dapat digunakan pada
modul atau unit program yang
bersangkutan saja
• Tidak dapat digunakan pada modul
atau unit program yang lainnya.
CONTOH Procedure Dengan Parameter
Prosedur Tanya_hitung; Prosedur Tanya_hitung;
Var X,Y :real; Var X,Y :real;
Begin Begin
Write (‘Nilai X ?’); Write (‘Nilai X ?’);
Readln(X); Readln(X);
Y:=X*X; Y:=X*X;
Writeln(‘Nilai Y = ‘,Y:6:2); Writeln(‘Nilai Y = ‘,Y:6:2);
End; End;
Begin Begin
Tanya_Hitung; Tanya_Hitung;
End. Writeln(‘Nilai Y = ‘,Y:6:2);
End.
Hasilnya :
Nilai X ? 5 HASIL = Error 31: Unknown identifier
Nilai Y = 25.00
Keterangan :
Variabel X dan Y sifatnya adalah lokal untuk prosedur
Tanya_hitung, artinya hanya dapat digunakan pada modul itu
saja, Pada modul yang lain tidak dapat digunakan
Procedure Dengan Parameter
Agar nilai-nilai variabel dapat digunakan
di modul lainnya yang
membutuhkannya, bisa dilakukan
beberapa cara:
1. Dibuat bersifat global
2. Dikirimkan sebagai parameter ke
modul yang membutuhkannya
1. DIBUAT BERSIFAT GLOBAL
2. PENGIRIMAN PARAMETER
• Parameter yang dikirimkan dari modul utama ke
modul prosedur disebut ACTUAL PARAMETER
• Parameter yang ada dan dituliskan pada judul
prosedur disebut FORMAL PARAMETER
• Proses pengiriman data lewat actual parameter
ke formal parameter disebut PARAMETER
PASSING
• Actual parameter dan formal parameter harus
dengan tipe yang sama
• Pameter dapat dikirimkan secara nilai (by value)
atau secara acuan (by reference)
Pengiriman parameter secara nilai (by value)
Procedure Hitung(A,B : integer); Formal Parameter
Var C : integer;
Begin
C := A + B;
Writeln(‘Nilai C = ‘,C)
End;
Var X,Y : integer; Actual Parameter
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ?’);
Readln(Y);
Hitung(X,Y);
End.
Pengiriman parameter secara acuan (by reference)
4. FillChar
– digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel.
PROSEDUR STANDAR
4. Prosedur standar FILLCHAR
Digunakan untuk mengisi sejumlah byte nilai ke dalam
suatu variabel, sebagai berikut
FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi
dengan nilai tipe ordinal Ch sebanyak count byte.