Function

FUNCTION

Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya. Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah fungsi yang kita buat sendiri. Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu kuantitas. Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang dihasilkan.
Secara umum bentuk header suatu function adalah :
FUNCTION nama : jenis hasil;
Atau  
FUNCTION nama (formal parameter : jenis ) : jenis_hasil;

Contoh :
1.        Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di
antara dua integer.
Function MAX (x,y : integer) : integer;
Begin
  If x < y then MAX := y ;
Else MAX := x;
End;
Selanjutnya kita dapat menggunakan fungsi di atas dalam suatu program, misalnya dengan
menyatakan sebagai berikut :
  P := MAX(a,b);
  Z := MAX(a+b,a*b);
  Q := MAX(MAX(a,b),c);
 …………………………
 dsb.

2.  Function LOG (x : real) : real;
Begin 
  LOG := ln (x) / ln (10.0);
End;

Function Hitung(Var A,B : integer): integer;
Begin
  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));
End.

Hasilnya : 2
  Nilai X ?
  Nilai Y ? 3

1 + 3 = 5

 Perbedaan fungsi dengan prosedur adalah :
1.      1.     Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya (kalau pada prosedur pada parameter yang dikirimkan secara acuan). Pada contoh, nama fungsi tersebut adalah Hitung dan nilai yang dikirim  balik berada pada nama fungsi tersebut. Sehingga nama fungsi ini harus digunakan untuk menampung hasil yang  akan dikirimkan dari fungsi, sebagai berikut :
Hitung := A + B;

2.     2.          Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya, sebagai berikut :
  Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y));             
Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variabel yang lainnya, sebagai berikut :
Hasil := Hitung(X,Y);
 Writeln(X,’ + ‘,Y, ‘ + ‘,Hasil);
Sedang pada prosedur, nama prosedur tersebut tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

0 komentar:

Posting Komentar