Pada prinsipnya, Fungsi hampir sama dengan Prosedur. Perbedaannya adalah bahwa fungsi memiliki tipe data sedangkan prosedut tidak memiliki tipe data. Artinya bahwa sebuah fungsi dapat mengembalikan nilai sesuai dengan tipenya ketika menerima panggilan.
FUNCTION Nama_Fungsi
(parameter input : tipe;
var parameter output :tipe): Tipe Fungsi
Parameter
Parameter adalah nama variabel yang dideklarasikan pada bagian header Fungsi.
1.Parameter aktual (argumen) adalah parameter yang disertakan pada waktu pemanggilan Fungsi.
2.Parameter formal adalah parameter yang dideklarasikan di dalam bagian header Fungsi itu sendiri.
Aturan Parameter
Aturan yang harus diperhatikan antara parameter aktual dan parameter formal:
1.Jumlah parameter aktual pada pemanggilan Fungsi harus sama dengan jumlah parameter formal pada header Fungsinya.
2.Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang bersesuaian
Variabel Dalam Fungsi
1.Variabel Global
- Adalah variabel yang dapat dikenali oleh semua sub program dan program utama.
- Dideklarasikan di awal program .
2.Variabel Lokal
- Adalah variabel yang hanya dapat dikenali oleh sub program yang mendeklarasikannya.
- Dideklarasikan di dalam sub program
Deklarasi Fungsi
FUNCTION Nama_Fungsi
(parameter_input:tipe;
Var parameter_output : tipe);
Var …… {Deklarasi Variabel Lokal}
Begin
<pernyataan dalam Fungsi>;
End;
Jenis Fungsi
1. Fungsi Tanpa Parameter
2. Fungsi Dengan Parameter Input
3. Fungsi Dengan Parameter Output
4. Fungsi Dengan Parameter Input dan Output.
Contoh :
Buatlah program untuk menghitung Luas dan Keliling persegi panjang dengan menggunakan 4 macam bentuk fungsi di atas.
Jawaban :
1. Fungsi Tanpa Parameter
Semua proses dilakukan di dalam Fungsi yaitu input data, hitung, dan cetak hasil.
Deklarasi :
Function Persegi:Real; {tanpa parameter}
Program tidak efisien karena belum melakukan pembagian tugas menjadi beberapa sub program. Program Utama hanya memanggil satu Fungsi untuk dijalankan.
Fungsi diberi nama Persegi tanpa menggunakan parameter formal. Variabel alas,tinggi, dan luas dideklarasikan dalam Fungsi. Variabel tersebut disebut variable lokal.
2. Fungsi Dengan Parameter Input
Fungsi ini hanya menggunakan parameter formal input yang bertugas menerima data yang dikirim ke dalam Fungsi.
Bentuk deklarasinya seperti berikut:
Function Nama_Fungsi(parameter_input: Tipe): Tipe Fungsi;
Function Persegi( p,l: Real):real;
P dan l adalah Variabel formal yang berfungsi untuk menerima data dari variable aktual pada saat dipanggil.
Persegi(p,l);
Variabel p dan l adalah parameter aktual yang nilainya dikirim ke dalam Fungsi dan diterima oleh variable formal p dan l. Variabel p dan l dideklarasikan dalam prosedur dan pada program utama tetapi tidak saling mengenal karena bersifat variable lokal.
Syarat yang harus diikuti adalah variabel aktual dan formal harus bertipe sama dan urutannya harus bersesuaian.
Dalam program di atas, kita melihat bahwa input nilai variable p dan l dilakukan dalam program utama, kemudian nilainya dikirim ke Fungsi pada saat memanggil Fungsi Persegi.
Sebuah fungsi mempunyai tipe data karena itu dapat mengembalikan hasil perhitungan dari fungsi tersebut sesuai dengan tipenya. Walaupun fungsi tersebut tidak mempunyai parameter output.
Perhatikan cetak hasil perhitungan Luas dan Keliling yang dilakukan dalam program utama dengan menggunakan nama fungsi masing-masing.
3.Fungsi Dengan Parameter Output
Fungsi ini hanya menggunakan parameter output. Perlu diperhatikan bahwa parameter output didahului oleh kata kunci Var.
Bentuk deklarasinya adalah sebagai berikut :
Function Nama_Fungsi(Var parameter_output:tipe)
Contoh : Function Persegi( Var Luas: Real) l;
Cara kerja program adalah proses input data dilakukan dalam Fungsi kemudian hasil perhitungan Luas dikirim kembali ketika dipanggil dari program utama. Hasil perhitungan luas dikirim lewat variable luas dan diterima oleh variable l. Dengan demikian maka Luas dapat dicetak dalam program utama dengan menggunakan variable l. Syaratnya adalah tipe variable luas dan l harus sama.
4. Fungsi Dgn Parameter Input dan Output
Fungsi ini menggunakan parameter formal input dan output. Bentuk deklarasinya adalah sebagai berikut :
Function Nama_Fungsi
(parameter_input : tipe;
Var parameter_output :tipe)
Fungsi menerima nilai/data dari variable a dan yang dikirim ke dalam lewat parameter input p dan l, kemudian mengirim hasil perhitungan luas ke program utama lewat variable output Luas dan diterima oleh variable L.
Contoh : Function Persegi( alas,tinggi: Real; Var Luas:Real);
Program :
Cara kerja program adalah program utama melakukan input nilai variable a dan t kemudian dikirim ke Fungsi yang diterima oleh variable p dan l. Kemudian hasil perhitungan luas dikirim kembali lewat variable luas dan diterima oleh variable L. Dengan demikian hasil perhitungan luas dicetak dalam program utama dengan menggunakan variable L.
Program di atas dapat juga dimodifikasi dengan membagi lagi menambahkan beberapa Fungsi, misalnya Fungsi input data dan Fungsi cetak hasil perhitungan.