*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.
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.
Program P1Kuadrat1;
{program hitung kuadrat - penggunaan procedur tanpa parameter}
uses crt;
Procedure Tanyahitung;
{contoh procedure tanpa 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.
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*.
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*
*Latihan modifikasi program dari Prosedur tanpa parameter menjadi prosedur dengan
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.
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;