Turbo Pascal

Turbo Pascal

Function (Fungsi) secara garis besar sama dengan procedure yang membedakannya adalah nama fungsi harus dideklarasikan dengan type datanya. Fungsi adalah suatu bagian program yang mengerjakan satu tugas dan hasilnya biasanya hanya satu. Fungsi juga menerima parameter-paramter seperti procedure yaitu Parameter Nilai dan Parameter Variabel. Selain itu fungsi juga diperbolehkan memiliki deklarasi lokal tersendiri.

Bentuk umum pendefinisian fungsi:


Function NamaFungsi(Parameter-Parameter) : Tipe Fungsi;
Tipe Lokal
Konstanta Lokal
Variabel Lokal
Sub Program Lokal (Fungsi/Prosedur)
Begin
    .................
End;

Contoh Penulisan :
Function faktorial (var fak, hasil : I nteger) : integer;

Cara memanggil fungsi adalah dengan menuliskan nama fungsi beserta parameter-parameter yang diperlukan.

Parameter pada Fungsi

Sifat parameter dalam fungsi sama dengan sifat parameter dalam prosedur, yaitu bersifat lokal dan global.
Contoh program (parameter bersifat lokal)


Function Kali: Byte;
Var
    A, B : Byte;
Begin
    Write (‘Isi nilainya : ‘); Readln (A);
    B := A * A;
End;

Begin
    Kali;
    Writeln (‘Nilai B = ‘, B);
End.

Contoh program (parameter bersifat global)


Var
    A, B : Byte;
Function Kali: Byte;
Begin
    Write (‘Isi nilainya : ‘); Readln (A);
    B := A * A;
End;

Begin
    Kali;
    Writeln (‘Nilai B = ‘, B);
End.

Pemanggilan Fungsi

Parameter dalam fungsi (idem dengan prosedur), yaitu dapat dilakukan pemanggilan secara nilai (by Value) atau secara acuan (by reference)

Contoh program (by Value)


Function Hitung (X, Y, Z : Byte): Byte;
Begin
    Z : = X + Y;
    Writeln (‘Nilai X = ‘, X);
    Writeln (‘Nilai Y = ‘, Y);
    Writeln (‘Nilai Z = ‘, Z);
End;

Var
    A, B, C : Byte;
Begin
    A := 5; B:= 7; C:=3;
    Hitung (A, B, C);
    Writeln (‘Nilai A = ‘,A,’Nilai B = ‘,B,’Nilai C = ‘,C);
    Readln;
End.

<strong>Contoh program (by Reference)</strong>

Function Hitung (Var X, Y, Z : Byte): Byte;
Begin
    Z : = X + Y;
    Writeln (‘Nilai X = ‘, X);
    Writeln (‘Nilai Y = ‘, Y);
    Writeln (‘Nilai Z = ‘, Z);
End;

Var
    A, B, C : Byte;
Begin
    A := 5; B:= 7; C:=3;
    Hitung (A, B, C);
    Writeln (‘Nilai A = ‘,A,’Nilai B = ‘,B,’Nilai C = ‘,C);
    Readln;
End.