Fungsi sama seperti halnya dengan prosedur, namun tetap ada perbedaannya
yaitu fungsi mempunyai output dengan tipe variabel yang kita tentukan. Berbeda
dengan procedure yang bisa tidak menggunakan parameter, fungsi harus
menggunakan parameter dalam penggunaannya.
Bentuk umum Fungsi adalah sebagai berikut:
TipeData NamaFungsi (DaftarParameter){/*Code atau Badan
Prosedur*/return nilaireturn;}
Fungsi (Function) adalah suatu program terpisah dalam blok sendiri yang
berfungsi sebagai subprogram (program bagian). Pada fungsi, tipe data harus
dideklarasikan. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe
tersebut ditulis pada akhir deklarasi fungsi yang didahului dengan titik koma,
sebagai berikut:
Function identifier(daftar-parameter): type;
Example 1 :
type huruf = string [6];
function garis : huruf;
begin
clrscr;
garis := ‘======’;
Output program :
======
Pascal
======
Note :
Fungsi “Garis” hanya menghasilkan nilai yang sudah pasti yaitu :
“======”.
Example 2 :
function terbesar(x, y : real) : real;
begin
clrscr;
IF x > y THEN
terbesar := x
ELSE
terbesar := y;
end;
Output program :
Nilai pertama = 12.356
Nilai kedua = 55.182
Nilai terbesar adalah = 55.182
3. Fungsi pangkat
Pascal tidak menyediakan fungsi untuk perpangkatan tinggi, yang ada
hanya fungsi standar Sqr, yaitu pemngkatan kuadrat saja. Bila akan
melakukan perpangkatan lebih dari pangkat dua, maka harus dibuat program
tersendiri.
Example 3 :
function faktorial (nilai : integer) : real;
begin
clrscr;
IF nilai = 0 THEN
faktorial := 1
ELSE
var
n : integer;
begin
write (‘Berapa faktorial ?’);
readln (n);
writeln (n,‘faktorial =’,faktorial (n) :9:0);
readln;
end.
Output program :
Berapa factorial ? 5
5 faktorial = bbbbbb120
ket : b = blank
Example 4 :
function fungsi2 (y : integer) : integer;
begin
clrscr;
fungsi2 := y * 2;
end;
function fungsi1 (x : integer) : integer;
begin
fungsi1 := fungsi2 (x) + 5;
end;
Example 5 :
Menghitung luas segitiga beberapa kali :
program tanpa_function;
uses crt;
var
p, l : integer;
begin
clrscr;
alas := 5;
tinggi := 3;
writeln ('Luas segitiga = ',alas * tinggi * 0.5);
alas := 2;
tinggi := 7;
writeln ('Luas segitiga = ',alas * tinggi * 0.5);
alas := 4;
tinggi := 6;
writeln ('Luas segitiga = ',alas * tinggi * 0.5);
readln;
end.
Example 6 :
function hitung(var a, b : integer): integer;
begin
clrscr;
hitung := a + b;
end;
var
x, y : integer;
begin
write (’Nilai x ? ’); readln (x);
write (’Nilai y ? ’); readln (y);
writeln;
writeln (x,’ + ’,y,’ = ’, hitung (x, y));
readln;
end.
2. Buatlah data nilai siswa suatu kelas dengan menggunakan if-then dan
gunakanlah function !
Output program:
Masukkan rusuk :
6
Volume kubus dengan rusuk 6 adalah 216