PROCEDURE
Procedure adalah suatu program terpisah
dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang
merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan program
utama.
PROCEDURE
Prosedur diawali
dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur
dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan
judul prosedurnya.
Prosedur banyak
digunakan pada program yang terstruktur, karena :
1. Merupakan
penerapan konsep program modular, yaitu memecah-mecah program yang rumit
menjadi program-program bagian yang lebih sederhana dalam bentuk
prosedur-prosedur.
2. Untuk hal-hal yang
sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur
dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Sebagaimana halnya
sebuah program, suatu procedure juga memiliki header dan block. Perbedaan
bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header
suatu procedure adalah :
PROCEDURE
nama;
Atau
PROCEDURE
nama (formal parameter : jenis);
Jika kita
menggunakan procedure dalam suatu program, maka procedure tersebut harus
dituliskan pada bagian deklarasi.
Contoh : Misal
akan dibuat suatu procedure untuk
menentukan bilangan bulat terbesar diantara tiga bilangan bulat, maka procedure
tersebut adalah sebagai berikut :
PROCEDURE
maksimum;
VAR
max : integer;
BEGIN
IF a > b THEN max := a ELSE max
:= b;
IF c > max THEN max := c;
WRITELN(max);
END.
Selanjutnya, di
dalam suatu program, procedure ini dapat digunakan dengan bentuk penulisan
sebagai berikut :
PROGRAM contoh_1; HEADER
program utama
VAR a,b,c : integer;
PROCEDURE
maksimum;
VAR max : integer;
BEGIN
IF a>b THEN max := a ELSE max := b; deklarasi
program
IF c>max THEN max := c; utama
WRITELN(max);
END;
BEGIN
READLN(a,b,c);
Maksimum statement program utama
END.
Contoh 2 :
PROGRAM CONTOH_2;
VAR p,l,t,vol,panj
: 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.
JANGKAUAN IDENTIFIER
Identifier yang
dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana identifier tersebut
didefinisikan.
Contoh :
1. PROGRAM p;
VAR x : real;
PROCEDURE pl;
VAR y : integer;
begin
………………..; daerah berlakunya y
daerah
………………..; berlakunya x
end;
begin
………………..;
………………..;
end.
y ®
variabel global
2. 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 :
Prosedur
Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
Writeln(‘Nilai Y = ‘,Y:6:2);
End;
Begin
Tanya_Hitung;
End.
Hasilnya :
Nilai X ? 5
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, contoh :
Prosedur
Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
End;
Begin
Tanya_Hitung;
Writeln(‘Nilai Y = ‘,Y:6:2);
End.
Hasilnya :
Error 31: Unknown
identifier
Supaya nilai
variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara :
1. Dibuat bersifat global
Harus
dideklarasikan di atas modul yang menggunakannya.
Begin
…….
……..
End;
(*akhir dari procedure kesatu……*)
Var
A,B : word;
Procedure
kedua;
Begin
……..
……..
End;
(*akhir dari procedure kedua*)
Procedure
ketiga;
Begin
……..
……..
End;
(*akhir dari procedure ketiga*)
Begin
……..
……..
End.
(*akhir dari modul utama*)
Pada contoh diatas, variabel A dab B
bersifat global untuk prosedur kedua, ketiga dan utama, tetapi tidak bersifat
global untuk prosedur kesatu, sehingga prosedur kesatu tidak dapat menggunakan
variabel-variabel tersebut.
Var
A,B : real;
Procedure
kesatu;
Begin
…….
……..
End;
(*akhir dari procedure kesatu……*)
Procedure
kedua;
Begin
……..
……..
End;
(*akhir dari procedure kedua*)
Procedure
ketiga;
Begin
……..
……..
End;
(*akhir dari procedure ketiga*)
Begin
……..
End.
(*akhir dari modul utama*)
Pada contoh ini,
variabel A dan B bersifat global untuk semua modul.
2. Dikirimkan sebagai parameter ke modul yang
membutuhkannya.
Parameter
yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan
parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter.
2.1 Pengiriman parameter secara nilai
Parameter yang dikirimkan secara nilai,
maka parameter formal yang ada di prosedur akan berisi nilai yang dikirimkan
yang kemudian bersifat lokal di prosedur.
Perhatikan
procedure berikut :
Procedure konversi;
begin
f :=
(5/9) * c + 32; f dan c variabel global, c sebagai
input dan
writeln(c,f); f sebagai output.
end;
Procedure di atas
dapat dipanggil dengan variabel yang berbeda, tetapi penulisannya harus diubah
dengan menggunakan parameter sbb:
Procedure
konversi (var f : real; c : real);
Begin
F := (5/9) * c + 32;
disebut formal parameter
Writeln(c,f);
End;
Selanjutnya
procedure di atas dapat dipanggil dengan parameter lain, misalnya :
konversi
(x,y) ;
actual parameter
x dan y disebut
sebagai actual parameter.
Pada eksekusinya x
akan menggantikan c dan y akan menggantikan f.
x dan y ini dapat
berupa :
-
konstanta
-
variabel
-
procedure, atau
-
fungsi
Contoh :
Procedure Hitung(A,B : integer);
Var C : integer;
Begin
C
:= A + B;
Writeln(‘Nilai
C = ‘,C)
End;
Var X,Y : integer;
Begin
Write(‘Nilai
X ? ‘);
Readln(X);
Write(‘Nilai
Y ?’);
Readln(Y);
Hitung(X,Y);
End.
Hasilnya :
Nilai
X ? 2
Nilai
Y ? 3
Nilai
C = 5
2.2 Pengiriman parameter secara acuan
Bila pengiriman parameter secara acuan
(by reference), maka perubahan-perubahan yang terjadi pada nilai parameter
formal di prosedur akan mempengaruhi nilai actual parameter .
Procedure
hitung(Var A,B,C : integer);
Menunjukkan pengiriman parameter secara
acuan.
Contoh :
Procedure Hitung(Var A,B,C : integer);
Begin
C
:= A + B;
End;
Var
X,Y,Z : integer;
Begin
X
:= 2; Y:= 3;
Hitung(X,Y,Z);
Writeln(‘X
= ‘,X,’ Y = ‘,Y,’ Z = ‘,Z);
End.
Hasilnya :
X
= 2 Y = 3 Z = 5
Acuan Forward
Digunakan
untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya.
Contoh :
Procedure
pro1(var I : integer); Forward;
Procedure
pro2(var I : integer);
Begin
Writeln(‘prosedur pro’, I);
End;
Procedure
pro1;
Begin
Writeln(‘prosedur
pro’,I);
End;
Var I : integer;
Begin
I := 1; pro1(I);
I := 2; pro2(I);
End.
Hasilnya :
prosedur pro1
prosedur pro2
Prosedur
Standar
Prosedur yang disediakan oleh Turbo
Pascal :
1.
Prosedur standar EXIT
Digunakan untuk
keluar dari suatu blok.
2.
Prosedur standar HALT
Digunakan untuk
menghentikan proses program baik di program bagian maupun di program utama.
3.
Prosedur standar MOVE
Bentuk umum : MOVE
(Var source,dest; count : word);
Digunakan untuk
menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama
source dan disalinkan ke byte pertama dest.
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.
0 komentar:
Posting Komentar
Please Leave Your Comment :)