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.
Bila program dikompilasi, akan dideteksi kesalahan oleh
compiler, karena variable Y yang sifatnya local di
procedure Tanya_hitung digunakan pada program utama.
var
Y: real;
procedure Tanya_hitung;
var
X: real;
begin
write ('Nilai X = ');
readln (X) ;
Y := X * X;
end;
begin
clrscr;
Tanya_hitung;
writeln ('Nilai Y = ', Y: 2: 2);
readkey;
end.
Pengertian hampir sama dengan procedure (sama-sama
sub program / bagian dari program).
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
Function Nama_Fungsi : tipe_hasil;
var
{bagian deklarasi fungsi, sifatnya lokal}
begin
statement-1;
statement-2;
…………
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.
Suatu variable yang berfungsi sebagai penampung nilai
pada procedure atau function, yang diberikan oleh
pemanggil procedure atau function.
Contoh:
Procedur nama_pro(parameter,parameter:tipe_data);
Procedur hitung(angka1,angka2:integer);
Procedur bagi(angka1:integer; angka2:real);
Parameter yang dikirmkan dari modul utama ke modul
prosedur disebut dengan parameter nyata (actual
parameter) dan parameter yang ada dan dituliskan pada
judul prosedur disebut dengan parameter formal (formal
parameter).
Begin
clrscr;
a:=10;
b:=20;
ubah(a,b);
writeln;
writeln('a = ', a);
writeln('b = ', b);
readln;
end.
Parameter yang dikirimkan berupa acuan. Jadi apabila
terjadi pengubahan nilai pada prosedur ataupun function
akan mempengaruhi nilai pada variabel yang
dipassingkan, atau yang dikirimkan. Kata kuncinya
pemberian tambahan kata var pada pendeklarasian
parameter.
uses crt;
var a,b: integer;
Begin
clrscr;
a:=10;
b:=20;
ubah(a,b);
writeln;
writeln('a = ', a);
writeln('b = ', b);
readln;
end.