PROCEDURE DAN
FUNCTION
Procedure dan Function 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.
Dalam
bahasa Procedure dan Function, pertukaran nilai dapat dilewatkan melalui
parameternya, sedangkan perbedaan yang signifikan antara Procedure dan Function
terletak pada suatu prosedure, nilai hanya bertukar melalui parameter saja
sedangkan pada Function, nilai dapat bertukar melalui nama fungsi juga dapat
melalui parameternya. Meski sebenarnya ada juga Procedure atau Function yang
menggunakan anpa parameter.
Pada teknik ini, akan dibedakan
antara main program dengan subprogram. Procedure dan Function termasuk dalam
subprogram. Subprogram dapat dibagi menjadi subprogram bebas, subprogram yang
memanggil subprogram lain, dan subprogram yang memanggil dirinya sendiri.
PROCEDURE
Prosedure 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.
PROGRAM contoh_1; HEADER
program utama
uses wincrt;
Procedure Tanya_hitung;
Var X,Y :integer;
Begin
Write ('Nilai X = ');
Deklarasi Program utama
Readln(X);
Y:=X*X;
Writeln('Nilai Y = ',Y);
End;
Begin
Tanya_Hitung; Statement Program Utama
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.
Berdasarkan
penulisannya terdapat 2 jenis parameter, yaitu : parameter formal (formal
parameter) dan parameter aktual (actual parameter). Parameter
formal adalah parameter yang disertakan/dituliskan pada saat pendefinisian prosedur/fungsi itu
sendiri. Sedangkan parameter aktual adalah parameter yang disertakan
pada saat pemanggilan prosedur/fungsi tersebut di blok program utama.
Berdasarkan tujuannya terdapat 3 jenis parameter formal :
·
Parameter masukan (input
parameter), yaitu : parameter yang nilainya berfungsi sebagai masukan untuk
prosedur/fungsi, jenis parameter ini kadang disebut juga parameter nilai (value
parameter atau parameter by value).
·
Parameter keluaran (output
parameter), yaitu : parameter yang berfungsi untuk menampung keluaran yang
dihasilkan oleh prosedur.
·
Parameter masukan/keluaran
(input/output parameter) adalah parameter yang berfungsi sebagai “pintu”
masuk dan keluar bagi prosedur tersebut. Parameter keluaran (output
parameter) dan parameter masukan/keluaran (input/output parameter)
kadang disebut parameter acuan (reference parameter atau paramater by
reference).
Contoh
: Parmeter formal
Procedure
psg4 (p : integer ; l : integer );
Var
Luas : integer ;
begin
Luas : = p *l ;
Writeln ( ‘ Luasnya = ‘, luas );
End;
{
program utama }
Var
x,y : integer ;
begin
write ( ‘ Inputkan panjang = ‘ ) ;
readln ( x ) ;
write ( ‘ Inputkan lebar = ‘ ) ;
readln ( y ) ;
end.
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.
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
end;
Procedure di atas dapat dipanggil dengan
variabel yang berbeda, tetapi penulisannya harus diubah dengan menggunakan
parameter sbb:
Uses
wincrt ;
Begin
F := (5/9) * c + 32;
Writeln(c,f);
End;
Selanjutnya
procedure di atas dapat dipanggil dengan parameter lain, misalnya :
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
:
Uses
wincrt ;
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.
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 .
secara acuan.
Contoh
:
Uses wincrt ;
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.
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.
FUNCTION
Blok fungsi hampir sama dengan blok
prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya.
Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada
bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan
sebagainya.
Fungsi-fungsi tersebut biasanya dikenal
dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah
fungsi yang kita buat sendiri.
Berbeda
dengan procedure, function merupakan modul program yang menghasilkan suatu
kuantitas.
Hal ini dapat dilihat dari bentuk
header-nya yang menyebutkan jenis data
dari kuantitas yang dihasilkan.
Secara
umum bentuk header suatu function adalah :
FUNCTION nama : jenis hasil;
Atau FUNCTION nama (formal parameter : jenis ) :
jenis_hasil;
Contoh
:
1. Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di
antara dua integer.
Uses
wincrt ;
Function
MAX (x,y : integer) : integer;
Begin
If x
< y then MAX := y ;
Else MAX := x;
End;
Selanjutnya
kita dapat menggunakan fungsi di atas dalam suatu program, misalnya dengan
menyatakan sebagai berikut :
P := MAX(a,b);
Z := MAX(a+b,a*b);
Q := MAX(MAX(a,b),c);
…………………………
dsb.
2. Function LOG (x : real) : real;
Begin
LOG :=
ln (x) / ln (10.0);
End;
3. Function POWER (x,y : real) : real;
Begin
POWER
:= exp (y * ln (X))
End;
ab = POWER (a,b)
ba = POWER (b,a)
(p + q) r/s = POWER (p + q, r/s)
………………………………..
dll
contoh
:
uses
wincrt ;
Function
Hitung(Var A,B : integer): integer;
Begin
Hitung
:= A + B;
End;
Var
X,Y : integer;
Begin
Write(‘Nilai
X ? ‘);
Readln(X);
Write(‘Nilai
Y ? ‘);
Readln(Y);
Writeln;
Writeln(X,’
+ ‘,Y,’ = ‘,Hitung(X,Y));
End.
DAFTAR
PUSTAKA
- Jogianto Hartono, MBA, Ph. D., “Konsep Dasar
Pemrograman Bahasa C”, Andi Yogyakarta, 2003
- Junaedi
Fajar , EP , “ Algoritma dn Pemrogaman”, 2007
- Catatan
Muryanto, ST




0 komentar:
Posting Komentar