Anda di halaman 1dari 8

*Materi 3 : Procedure*

*Definisi Procedure*

• 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.

*Keuntungan penerapan modul dalam program :*


1. Mempermudah dalam pemeliharaan (rnendeteksi kesalahan. perbaikan, modifikasi.
dll)
2. Jika banyak bagian program yang harus dikerjakan berulang-ulang maka hemat
dalam penulisan baris-baris instruksi.
3. Mempermudah dalam pembacaan dan pemahaman program.

Gambar di atas main program memanggil modul satu 3 kali, memanggil modul dua 1 kali
dan memanggil modul 3 satu kali
Modul 3 memanggil modul 2 satu kali. Dari sini tergambar bahwa modul bisa memanggil
modul.
• Struktur procedure terdiri dari bagian judul (header) yang terdiri dari nama prosedur
yang terdiri atas nama prosedur dan deklarasi parameter (jika ada)
• Bentuk Umum header suatu procedure adalah :
• PROCEDURE nama;
• atau
• PROCEDURE nama (formal parameter : jenis);
• Misal akan dibuat suatu procedure untuk menentukan bilangan bulat terbesar diantara
tiga bilangan bulat, maka procedure tersebut adalah sebagai berikut :
PROCEDURE maksimum;
VAR maks : integer;
BEGIN
IF a > b THEN maks := a ELSE maks := b; IF c > max THEN maks := c;
WRITELN(maks); END.

*Ket: a,b,c adalah variabel global. Maks adalah variabel lokal*


• 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 1: Program Hitung Kuadrat*


*Menggunakan Procedure tanpa parameter;*

Program P1Kuadrat1;
{program hitung kuadrat - penggunaan procedur tanpa parameter}
uses crt;

Procedure Tanyahitung;
{contoh procedure tanpa parameter}

Var X,Y :real;


Begin
Write ('Nilai X ?');Readln(X);
Y:=X*X;
Writeln('Nilai Y = ',Y:6:2);
End;

Begin {main program}


Writeln (‘Contoh Prosedur tanpa parameter');
TanyaHitung;
writeln('Press Enter to Continue');
readln;
End.

*silahkan run program di atas, hasilnya dapat di posting disini*

*Procedure dengan parameter;*

Program P2Kuadrat2;
{program hitung kuadrat - penggunaan procedur dengan parameter}

uses crt;
Var X: integer;

Procedure Tanyahitung(Z:Integer);
{contoh prosedur dng parameter}
Var Y :real;
Begin
Y:=Z*Z;
Writeln('Nilai Y = ',Y:6:2);
End;

Begin
Writeln (‘Prosedur dengan parameter');
Write (‘Nilai X ?');Readln(X);
TanyaHitung(X);
writeln('Press Enter to Continue');
readln;
End.

Perhatikan pada procedure *terdapat parameter Z dng tipe data integer*.


Pada main program, prosedur dipanggil TanyaHitung(X) dimana nilai yang dikirim adalah
nilai variable X. *pada saat dipanggil, maka nilai Z=X*.
*Variabel Y pada program di atas sifatnya adalah lokal untuk prosedur Tanyahitung*, artinya
hanya dapat digunakan pada modul itu saja, Pada modul yang lain atau di main program
tidak dapat digunakan.

Program P2B;
{contoh program error karena menggunakan variable local di main program}
uses crt;

Procedure Tanyahitung;
Var X,Y :real;
Begin
Write ('Nilai X ?');Readln(X);
Y:=X*X;
Writeln('Nilai Y = ',Y:6:2);
End;

Begin
Tanya_Hitung;
Writeln(X); { *akan error karena X merupakan variable local prosedur tanyahitung* }
writeln('Press Enter to Continue');
readln;
End.

*Variabel X dan Y sifatnya adalah lokal untuk prosedur Tanyahitung*, artinya hanya
dapat digunakan pada modul itu saja, Pada modul yang lain atau pada main program, tidak
dapat digunakan.
*Seperti contoh di atas, writeln(X) akan error karena variable X digunakan di main
program*.

*Contoh Penggunaaan Prosedur dengan parameter*

Program P3TampilArray;
{Procedure deng parameter, program tampil array}
Uses crt;
Const
n = 3;
A : array [1..n] of integer = (1,2,3);
B : array [1..n] of integer = (6,7,1);

Type
Matriks = array [1..n] of integer;

Var
C:Matriks;
j: integer;

Procedure Tampil(P:String;Q:Matriks);
var k : integer;
begin
write(P);
for k:= 1 to n do write(Q[k]:5);
writeln ;
end;

begin
clrscr;
writeln('Program Menampilkan array 1 dimensi dng procedure dng parameter');
for j:= 1 to n do C[j]:=A[j]+B[j];
Tampil('Array A : ',A);
Tampil('Array B : ',B);
writeln(' ------------- +');
Tampil('Array C : ',C);
writeln('Press Enter to Continue');
readln;
end.
*Silahkan run dan posting hasilnya di grup WA ini*

Pada prosedur tampil, write(P) pada prosedur tampil(‘Array A:’,A) menampilkan


string yang isinya ‘Array A:’ sedangkan tampilan 1,2,3 adalah dilakukan dari perintah
write(Q[k]) yang isinya adalah array A[1]=1, A[2]=2, A[3]=3

*Keuntungan penerapan modul/procedure dalam program :*


1. Mempermudah dalam pemeliharaan (rnendeteksi kesalahan. perbaikan, modifikasi.
dll) – kalau kita lihat dikasus di atas , *bila ada modifikasi di prosedur tampil, cukup
dilakukan hanya di prosedur tersebut*.
2. Jika banyak bagian program yang harus dikerjakan berulang-ulang maka hemat
dalam penulisan baris-baris instruksi. Untuk kasus diatas, *Penulisan fungsi tampil
array tidak perlu ditulis berulang2* untuk matrik A,B dan C.
3. Mempermudah dalam pembacaan dan pemahaman program. *lebih mudah
membaca program seperti contoh diatas, ada 3 fungsi yang dilakukan yaitu tampil
A,B dan C.*

*Latihan modifikasi program dari Prosedur tanpa parameter menjadi prosedur dengan
parameter*

*Berikut adalah program dng prosedur tanpa parameter*.

program P4Segitiga1;
{contoh prosedur tanpa parameter – luas segitiga}
uses crt;

procedure hitungluas;
{procedure tanpa parameter}
var
alas,tinggi,luas : real;
begin
writeln('Contoh program dng prosedur tanpa prameter');
write('alas :');readln(alas);
write('tinggi:');readln(tinggi);
luas:=(alas*tinggi)/2;
writeln('luas segitiga :',luas:2:1);
end;

begin
clrscr;
writeln('menghitung luas segitiga');
hitungluas;
writeln('Press Enter to Continue');
readln;
end.

*Silahkan coba di run, hasilnya dapat di posting disini*

Bagi yang sudah coba run program di atas, *Modifikasi program diatas dengan
menggunakan parameter di prosedur.*
Output sama dengan program dng procedur tanpa parameter.

*Bagi yang sudah selesai modifikasi program, silahkan posting source programmnya di wag
ini*
Program P5Segitiga2;

Perhatikan pada procedure hitungluas ada parameter a dan b.


Pada main program terdapat instruksi hitungluas(alas,tinggi), ada parameter yang dikirim
Yaitu nilai dari variable alas dan nilai variable tinggi.
Untuk Membuat prosedur parameter, kita harus tentukan variabel apa saja yang akan
menjadi parameter.
Biasanya yang jadi parameter adalah variable input, oleh karena pada perhitungan luas
segitiga inputnya adalah alas dan tinggi, maka alas dan tinggi menjadi parameter.
Hitungluas(alas,tinggi:real);
Pada main program, ditentukan variable global sebagai contoh a,t : real;
Perhatikan *tipe data variable a & t harus sama dengan tipe data di parameter* (alas &
tinggi)
Pada saat hitungluas(alas,tinggi:real) dipanggil, maka isi alas = a dan isi tinggi = t.

Anda mungkin juga menyukai