Prosedur adalah serangkaian statemen yang digunakan untuk memecahkan sebuah masalah. Seperti halnya fungsi, prosedur juga memiliki nama dan parameter. Prosedur harus dideklarasikan terlebih dahulu sebelum dipanggil atau digunakan.
Aturan penulisan deklarasi prosedur adalah sebagai berikut
Procedure nama-prosedur (parameter input ; var parameter output);
Begin
{statemen impelementasi prosedur (badan prosedur), hasil perhitungan yang dilakukan prosedur (jika ada), disimpan pada parameter output}
End;
Contoh 1: buatlah prosedur yang menuliskan bintang (*) sebanyak n kali, dimana n adalah parameter inputnya.
Penyelesaian:
Procedure tulisbintang (n:integer);{menuliskan bintang sebanyak n kali}
Var i : integer;
begin
for i:=1 to n do
write (‘*’);
writeln;
end;
keterangan: prosedur diatas hanya mempunyai parameter input (parameter nilai), yang berarti prosedur tersebut hanya menerima sebuah nilai dan tidak menghasilkan sebuah nilai lain.
Contoh 2: buatlah prosedur untuk menghitung gaya yang dihasilkan berdasar massa dan percepatan yang diketahui. Asumsikan massa dan percepatan adalah bertipe integer.
Analisisè parameter input prosedur yang akan dibuat adalah dua buah integer dan parameter outputnya adalah sebuah integer. Parameter input (parameter nilai) prosedur gaya adalah m dan a, sedangkan parameter outputnya (parameter variable) adalah f. parameter output adalah menyimpan nilai yang dihasilkan oleh prosedur.
Penyelesaian:
Procedure hit_gaya (m, a : integer); var f:integer;
Begin
f:= m * a;
end;
PROGRAM contoh_1;
VAR a,b,c : integer;
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a>b THEN max := a ELSE max := b;
IF c>max THEN max := c;
WRITELN(max);
END;
BEGIN
READLN(a,b,c);
Maksimum
END.
PROGRAM CONTOH_2;
VAR p,l,t,vol,panj : real;
PROCEDURE kotak;
VAR v,pl : real;
BEGIN
v := p * l * t ;
pl := p + 2.0 * t;
writeln(v,pl);
END;
BEGIN
writeln(‘panjang’ : 10,’lebar’ : 10,’tinggi’ : 10);
readln(p,l,t);
kotak;
END.
program hitung_gaya;
var
massa, percepatan, gaya : integer;
procedure hit_gaya (m , a :integer ; f:integer);
begin
f : = m * a;
end;
{program utama}
Begin
Write(‘masukan nilai massa: ‘); readln(massa);
Write (‘masukan nilai percepatan: ‘); readln (percepatan);
Hit_gaya(massa,percepatan,gaya);
Write (‘gaya :’,gaya);
End.
program hitung_faktorial;
uses wincrt;
procedure faktorial(n:integer;var hasil:longint);
var i:longint;
begin
hasil:=1;
for i:=2 to n do hasil:=hasil*i;
end;
{program utama}
var n:longint;
fak:longint;
begin
write(‘Mau menghitung Faktorial berapa ? ‘);read(n);
faktorial(n,fak);
Write(n,’! = ‘,fak);readln;
readln;
end.
contoh 4 : buatlah program yang membaca dua buah integer yang disimpan pada dua buah variable dan menukar nilai variable tersebut.
program pertukaran;
var angka1,angka2:integer;
procedure tukar (var a, b : integer);
{menukar isi a menjadi b dan sebaliknya}
Var temp: integer;
Begin
Temp:=a;
a:=b;
b:= temp;
end;
{program utama}
Begin
Writeln(‘sebelum pertukaran’);
Write(‘angka 1:’);readln(angka1);
Write(‘angka2:’);readln(angka2);
Tukar(angka1,angka2);
Writeln;
Writeln(‘setelah pertukaran’);
Write(‘angka1:’, angka1);
Write(‘angka2:’,angka2);
End.
Contoh 5: buatlah program yang menerima integer (angka1,angka2,angka3) dan mneggeser nilai nilai yang disimpan oleh variable tersebut sehingga isi angka 1 mnjadi isi angka 2, isi angka2 menjadi isi angka 3, dan isi angka 3 menjadi isi angka1.