Kom
kode
Berdasarkan
penjelasan
sebelumnya,
prosedur
atau
fungsi
yaitu
suatu
bagian/modul program yang terpisah dari
program utama, diletakkan dalam blok
tersendiri yang berfungsi sebagai bagian
dari program.
Untuk
hal-hal
yang
sering
dilakukan
berulang-ulang, cukup dituliskan sekali saja
dalam prosedur dan dapat dipanggil atau
dipergunakan
sewaktu-waktu
bila
diperlukan.
Merupakan
sub
program
yang
mengembalikan nilai secara langsung.
tidak
PROCEDURE
mempunyai
judul_prosedur
sedangkan Program utama tidak.
sebagai
berikut :
Procedure Nama_Prosedur (param_formal1:tipe_param1,
param_formal2:tipe_param2,);
{Jika prosedur tidak memiliki parameter, tanda kurung tidak
disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;
Statement-n;
end;
Program judul_program;
var
{bagian deklarasi prosedur, sifatnya global}
Procedure Nama_Prosedur;
{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;
Statement-n;
end;
{program utama}
begin
Nama_Prosedur;
end.
uses crt;
procedure cetakBintang;
begin
writeln('****');
end;
begin
clrscr;
cetakBintang();
cetakBintang();
cetakBintang();
cetakBintang();
readkey;
end.
uses crt;
procedure Tanya_hitung;
var
X, Y : real;
begin
write ('Nilai X =');
readln (X) ;
Y := X * X;
end;
begin
Tanya_hitung;
writeln ('Nilai Y =', Y);
end.
usescrt;
var
Y:real;
procedureTanya_hitung;
var
X:real;
begin
write('NilaiX=');
readln(X);
Y:=X*X;
end;
begin
clrscr;
Tanya_hitung;
writeln('NilaiY=',Y:2:2);
readkey;
end.
Bedanya:
- Fungsi memiliki tipe data.
- Fungsi memberikan nilai balik, procedure
tidak.
- Harus ada NamaFungsi di dalam tubuh
fungsi, karena
digunakan untuk menyimpan output.
- Penulisannya menggunakan kata Function
Statement-n;
Nama_Fungsi:=hasil;
end;
uses crt;
function cetakBintang:string;
begin
cetakBintang:= '****';
end;
begin
clrscr;
writeln(cetakBintang);
writeln(cetakBintang);
writeln(cetakBintang);
writeln(cetakBintang);
readkey;
end.
Pass by Value
Pass by Reference
usescrt;
vara,b:integer;
procedureubah(a,b:integer);
begin
a:=50;
b:=60;
writeln('Nilaia=',a,',Nilaib=',b);
end;
Begin
clrscr;
a:=10;
b:=20;
ubah(a,b);
writeln;
writeln('a=',a);
writeln('b=',b);
readln;
end.
usescrt;
vara,b:integer;
procedureubah(vara,b:integer);
begin
a:=50;
b:=60;
writeln('Nilaia=',a,',Nilaib=',b);
end;
Begin
clrscr;
a:=10;
b:=20;
ubah(a,b);
writeln;
writeln('a=',a);
writeln('b=',b);
readln;
end.