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; BEGIN END. PROCEDURE Nama_Prosedur; BEGIN END. {Statemen prosedur} {Program Utama} Berikut adalah contoh program sederhana dengan menggunakan procedure : Program Prosedur_1; procedure Writeln ('-----------'); Writeln('PENJUMLAHAN'); R. Denny Ari Wibowo, S.Kom hal. 1
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. Program Prosedur_2; procedure Writeln ('-----------'); procedure Jumlah; Var X, Y : byte; Write ('Masukkan X = '); Readln(X); Write ('Masukkan Y = '); Readln(Y); Writeln ('Hasil = ', X+Y); Writeln('PENJUMLAHAN'); Jumlah; 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
Program Prosedur_3; Var X, Y : Real; procedure Writeln ('-----------'); procedure Jumlah(A,B:Integer); Writeln ('Hasil = ', A+B); Writeln('PENJUMLAHAN'); Write ('Masukkan X = '); Readln(X); Write ('Masukkan Y = '); Readln(Y); Jumlah(X,Y); 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. Program Prosedur_4; Var X, Y, Z : Byte; procedure Jumlah(a,b,c:Byte); C := A + B; Writeln ('Nilai A = ', a); Writeln ('Nilai B = ', b); Writeln ('Nilai C = ', c); Y := 3; Z := 0; Jumlah(X,Y,Z); Writeln ('Nilai X = ', x); Writeln ('Nilai Y = ', y); Writeln ('Nilai Z = ', z); R. Denny Ari Wibowo, S.Kom hal. 3
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); Program Prosedur_5; Var X, Y, Z : Integer; procedure Jumlah(var a,b,c:real); A := A + 1; B := B + 1; C := A + B; Writeln ('Nilai A = ', a); Writeln ('Nilai B = ', b); Writeln ('Nilai C = ', c); Y := 3; Jumlah(X,Y,Z); Writeln ('Nilai X = ', x); Writeln ('Nilai Y = ', y); Writeln ('Nilai Z = ', z); 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); Program Prosedur_6; Var X, Y, Z : Byte; procedure Jumlah(a,b:byte; var c:byte); A := A + 1; B := B + 1; C := A + B; Writeln ('Nilai A = ', a); Writeln ('Nilai B = ', b); Writeln ('Nilai C = ', c); R. Denny Ari Wibowo, S.Kom hal. 4
Y := 3; Jumlah(X,Y,Z); Writeln ('Nilai X = ', x); Writeln ('Nilai Y = ', y); Writeln ('Nilai Z = ', z); Procedure Memanggil Procedure Lainnya Suatu procedure bisa memanggil procedure lainnya, perhatikan contoh berikut : Program Prosedur_7; Var X : Byte; procedure Pro2(X2:Real); Writeln ('Nilai X = ', X2,' ada pada prosedur 2'); procedure Pro1(X1:Integer); Writeln ('Nilai X = ', X1,' ada pada prosedur 1'); Pro2(X1); Writeln ('Nilai X = ', X,' ada pada program utama'); Pro1(X); Procedure Tersarang Procedure tersarang adalah procedure yang berada di dalam procedure yang lain, seperti contoh berikut : Program Prosedur_8; procedure Kesatu; procedure Kedua; Writeln(' ->Prosedur KEDUA ini ada di dalam Prosedur KESATU'); procedure Ketiga; Writeln(' ->Prosedur KETIGA ini ada di dalam Prosedur KESATU'); R. Denny Ari Wibowo, S.Kom hal. 5
Writeln ('Ini Prosedur KESATU'); Kedua; Ketiga; Writeln ('INI PROGRAM UTAMA'); Writeln; Kesatu; PUSTAKA Jogiyanto H. M., Turbo Pascal 5.0, Jilid 1, Andi Offset, Yogyakarta, 1999. R. Denny Ari Wibowo, S.Kom hal. 6
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