Procedure merupakan subprogram yang berfungsi sebagai bagian terpisah dari program utama. Procedure dapat memanggil dan digunakan kembali di program utama, serta dapat memanggil procedure lain. Terdapat beberapa cara pengiriman parameter ke dalam procedure, yaitu secara nilai, acuan, atau campuran antara keduanya.
1. Algoritma dan Pemrograman II
MATERI 5
Procedure
Procedure merupakan suatu program terpisah dalam blok sendiri yang berfungsi
sebagai subprogram (program bagian). Procedure dipanggil dan digunakan di dalam
blok program yang lainnya dengan menyebutkan judul procedurenya.
Procedure 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 procedure dan dapat dipanggil atau dipergunakan sewaktu-waktu
bila diperlukan.
Pendeklarasian suatu procedure pada program :
PROGRAM Judul_Program;
PROCEDURE Nama_Prosedur;
BEGIN
END.
BEGIN
{Statemen prosedur}
{Program Utama}
END.
Berikut adalah contoh program sederhana dengan menggunakan procedure :
Program Prosedur_1;
uses crt;
procedure Garis;
begin
Writeln ('-----------');
end;
begin
ClrScr;
Garis;
Writeln('PENJUMLAHAN');
Garis;
Readln;
end.
R. Denny Ari Wibowo, S.Kom hal. 1
2. Algoritma dan Pemrograman II
Parameter Dalam Procedure
Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya nilai
tersebut hanya dapat digunakan pada modul atau unit program yang bersangkutan
saja, tidak dapat digunakan pada modul atau unit program yang lainnya.
CONTOH :
Program Prosedur_2;
procedure Garis;
begin
Writeln ('-----------');
end;
procedure Jumlah;
Var X, Y : byte;
begin
Write ('Masukkan X = '); Readln(X);
Write ('Masukkan Y = '); Readln(Y);
Writeln ('Hasil = ', X+Y);
end;
begin
ClrScr;
Garis;
Writeln('PENJUMLAHAN');
Garis;
Jumlah;
Garis;
Readln;
end.
Pada contoh program diatas, variable X dan Y bersifat variabel lokal, dalam arti
kedua variabel tersebut hanya berlaku pada procedure yang bersangkutan, yaitu
procedure jumlah. Kedua variabel tersebut tidak dapat digunakan pada procedure
lain. atau pada program utama.
Pengiriman Parameter Secara Nilai
Bila parameter dikirim secara nilai, parameter formal di procedure akan berisi nilai
yang dikirimkan, yang kemudian bersifat lokal di procedure. Bila nilai parameter
formal di procedure tersebut berubah, tidak akan mempengaruhi nilai parameter
nyata (nilai parameter nyata tetap, tidak berubah). Pengiriman secara nilai ini
merupakan pengiriman searah, yaitu dari parameter nyata ke parameter formal, yang
tidak dikirimkan balik dari parameter formal ke parameter nyata.
Parameter-parameter yang digunakan dengan pengiriman secara nilai ini disebut
dengan parameter nilai.
R. Denny Ari Wibowo, S.Kom hal. 2
3. Algoritma dan Pemrograman II
CONTOH :
Program Prosedur_3;
Var X, Y : Real;
procedure Garis;
begin
Writeln ('-----------');
end;
procedure Jumlah(A,B:Integer);
begin
Writeln ('Hasil = ', A+B);
end;
begin
Garis;
Writeln('PENJUMLAHAN');
Garis;
Write ('Masukkan X = '); Readln(X);
Write ('Masukkan Y = '); Readln(Y);
Jumlah(X,Y);
Garis;
Readln;
end.
Perhatikan pendeklarasian variabel pada program diatas. Sedikit berbeda dengan
program sebelumnya (yang mengenal variabel lokal), pada program ini variabel
dideklarasikan pada program utama. Pendeklarasian variabel ini disebut variabel
global, dimana variabel ini berlaku pada seluruh bagian program, baik pada
procedure maupun program utama itu sendiri.
CONTOH :
Program Prosedur_4;
Var X, Y, Z : Byte;
procedure Jumlah(a,b,c:Byte);
begin
C := A + B;
Writeln ('Nilai A = ', a);
Writeln ('Nilai B = ', b);
Writeln ('Nilai C = ', c);
end;
begin
X := 2;
Y := 3;
Z := 0;
Jumlah(X,Y,Z);
Writeln ('Nilai X = ', x);
Writeln ('Nilai Y = ', y);
Writeln ('Nilai Z = ', z);
Readln;
end.
R. Denny Ari Wibowo, S.Kom hal. 3
4. Algoritma dan Pemrograman II
Pengiriman Parameter Secara Acuan
Bila parameter dikirim secara acuan, maka perubahan-perubahan yang terjadi pada
nilai parameter formal di procedure akan mempengaruhi nilai parameter nyata.
Parameter-parameter ini disebut variable parameter serta dideklarasikan di deklarasi
procedure dengan menggunakan kata cadangan Var, dengan format berikut :
PROCEDURE Nama_Prosedur (Var A, B, C : Integer);
CONTOH :
Program Prosedur_5;
Var X, Y, Z : Integer;
procedure Jumlah(var a,b,c:Real);
begin
A := A + 1;
B := B + 1;
C := A + B;
Writeln ('Nilai A = ', a);
Writeln ('Nilai B = ', b);
Writeln ('Nilai C = ', c);
end;
begin
X := 2;
Y := 3;
Jumlah(X,Y,Z);
Writeln ('Nilai X = ', x);
Writeln ('Nilai Y = ', y);
Writeln ('Nilai Z = ', z);
Readln;
end.
Pengiriman Parameter Sebagian Secara Nilai dan Secara Acuan
Pengiriman parameter dapat dicampur sebagaian secara nilai dan sebagaian secara
acuan dalam suatu procedure. Parameter yang hanya dibutuhkan pada procedure
saja dapat dikirim secara nilai dan yang ingin dikirimkan balik dapat dilakukan secara
acuan, dengan format sebagai berikut :
PROCEDURE Nama_Prosedur (A, B : Integer ; Var C : Integer);
CONTOH :
Program Prosedur_6;
uses crt;
Var X, Y, Z : Byte;
procedure Jumlah(a,b:byte; var c:Byte);
begin
A := A + 1;
B := B + 1;
C := A + B;
Writeln ('Nilai A = ', a);
Writeln ('Nilai B = ', b);
Writeln ('Nilai C = ', c);
end;
R. Denny Ari Wibowo, S.Kom hal. 4
5. Algoritma dan Pemrograman II
begin
ClrScr;
X := 2;
Y := 3;
Jumlah(X,Y,Z);
Writeln ('Nilai X = ', x);
Writeln ('Nilai Y = ', y);
Writeln ('Nilai Z = ', z);
Readln;
end.
Procedure Memanggil Procedure Lainnya
Suatu procedure bisa memanggil procedure lainnya, perhatikan contoh berikut :
CONTOH :
Program Prosedur_7;
uses crt;
Var X : Byte;
procedure Pro2(X2:Real);
begin
Writeln ('Nilai X = ', X2,' ada pada prosedur 2');
end;
procedure Pro1(X1:Integer);
begin
Writeln ('Nilai X = ', X1,' ada pada prosedur 1');
Pro2(X1);
end;
begin
ClrScr;
X := 2;
Writeln ('Nilai X = ', X,' ada pada program utama');
Pro1(X);
Readln;
end.
Procedure Tersarang
Procedure tersarang adalah procedure yang berada di dalam procedure yang lain,
seperti contoh berikut :
CONTOH :
Program Prosedur_8;
uses crt;
procedure Kesatu;
procedure Kedua;
begin
Writeln(' ->Prosedur KEDUA ini ada di dalam Prosedur KESATU');
end;
procedure Ketiga;
begin
Writeln(' ->Prosedur KETIGA ini ada di dalam Prosedur KESATU');
end;
R. Denny Ari Wibowo, S.Kom hal. 5
6. Algoritma dan Pemrograman II
begin
Writeln ('Ini Prosedur KESATU');
Kedua;
Ketiga;
end;
begin
ClrScr;
Writeln ('INI PROGRAM UTAMA');
Writeln;
Kesatu;
Readln;
end.
R. Denny Ari Wibowo, S.Kom hal. 6
PUSTAKA
Jogiyanto H. M., Turbo Pascal 5.0, Jilid 1, Andi Offset, Yogyakarta, 1999.
7. Algoritma dan Pemrograman II
PRAKTEK
1. Buatlah program dengan output sebagai berikut, dengan menggunakan
procedure :
------------------------------
Program Persegi Panjang
------------------------------
Masukkan Panjang = .....
Masukkan Lebar = .....
Luas Persegi Panjang
------------------------------
Luas = .....
Keliling Persegi Panjang
------------------------------
Keliling = .....
2. Buatlah program ulang kata, yang digunakan untuk mengulang kata sesuai
kebutuhan user, dengan contoh output sebagai berikut :
Masukkan Kata = Siapa Saya
Diulang Sebanyak = 3
------------------------------
Siapa Saya
Siapa Saya
Siapa Saya
R. Denny Ari Wibowo, S.Kom hal. 7