Fungsi dalam Pascal
Konsep fungsi dalam pascal hamper sama dengan konsep fungsi dalam matematika. Sebuah fungsi digunakan untuk menghitung sebuah nilai berdasar satu atau beberapa nilai masukan. Dalam pascal, fungsi akan membantu mewujudkan pemecahan masalah yang lebih sederhana, sehingga program semakin mudah dibaca dan lebih mudah diubah atau dimodifikasi.
Fungsi dalam pascal mempunyai nama dan baris baris statemen yang merupakan implementasi fungsi tersebut. Sebuah fungsi dapat mempunyai satu atau lebih parameter.fungsi akan mengirimkan sebuah nilai yang tipenya sudah didefinisikan. Aturan penulisan deklarasi fungsi adalah sebagai berikut:
Function nama-fungsi(parameter) : tipe-hasil;
Begin
{statemen statemen implementasi fungsi}
Nama-fungsi :=nilai yang dikirimkan/hasil
End;
parameter yang digunakan pada saat pendeklarasian fungsi disebut dengan parameter formal.
Berikut ini adalah beberapa contoh untuk memperjelas konsep fungsi
Contoh 1:
Buatlah sebuah fungsi untuk menghitung gaya yang dihasilkan berdasar massa dan percepatan yang telah diketahui.
Analisis: fungsi memiliki dua parameter yaitu percepatan dan massa yang akan
mengirimkan gaya. Tipe hasil, gaya tergantung kepada tipe massa dan percepatan.
Function gaya(m,a:real) : real;
{m=massa,a=percepatan, megirimkan gaya,f=m*a}
Begin
Gaya:=m*a;
End;
Contoh 2:
Buatlah fungsi yang mengirimkan nilai terbesar dari dua buah integer yang diberikan.
Function maks(a,b:integer) :integer;
{mengirimkan a jika a>b dan b jika sebaliknya}
Begin
If a>b then
Maks:=a
Else maks :=b;
End;
Contoh 3:
Buatlah fungsi yang menghitung jumlah deret integer mulai dari 1 sampai dengan batas.
Function jumlah_deret (batas:integer): integer;
{mengirimkan jumlah 1+2+3+…+batas,batas>0}
Var i,jumlah:integer;
Begin
{penghitungan jumlah}
Jumlah:=0;
For i=1 to batas do
Jumlah:=jumlah+i;
{pengiriman hasil}
Jumlahderet:=jumlah;
End;
Catatan: nama fungsi tidak boleh dilibatkan dalam perhitungan
Contoh 4:
Buat fungsi yang menerima sebuah integer dan menetukan apakah integer itu kelipatan tiga atau bukan. Jika ya maka fungsi kan mengirimkan true, dan mnegirimkan false jika sebaliknya.
Function kelipatan3(n:integer): Boolean;
{mengrimkan true jika n kelipatan tiga}
Begin
If (n mod 3 = 0) then
Kelipatan3:=true
Else kelipatan3:=false;
End;
PEMANGGILAN FUNGSI
Contoh1: buat program yang menerima dua buah integer dan menentukan integer terbesar diantara keduanya menggunakan fungsi.
Program terbesar;
Var angka1,angka2:integer;
Terbesar:integer;
Function maks(a,b : ineteger) : integer;
Begin
If a>b then
Maks:=a
Else maks:=b;
End;
{program utama}
Begin
Write (‘angka pertama=’);readln(angka1);
Write (‘angka kedua=’);readln(angka2);
Terbesar:=maks(angka1,angka2);
Write (‘angka terbesar adalah’,terbesar);
End.
Parameter yang digunakan pada waktu pemanggilan fungsi disebut dengan parameter actual. Ada beberapa syarat yang harus dipenuhi waktu menggunakan parameter actual:
- Jumlah parameter actual harus sama dengan parameter formal pada pendeklarasian fungsi. Pada contoh diatas,terdapat dua parameter formal yaitu a dan b serta terdapat dua parameter actual yaitu angka1, dan angka2.
- Tipe parameter formal harus sama dengan parameter actual
- Urutan penulisan partameter actual harus sama dengan urutan penulisan partameter formal sesuai yang dimaksudkan.
Contoh 2:
Buatlah sebuah fungsi untuk mengkonversi nilai mata uang dalam rupiah ke dolar, yang menerima dua buah integer yang masing masing menyatakan nilai uang dalam rupiah dan nilai tukar 1 dolar dalam rupiah, serta mengirimkan nilai rupiah tersebut dalam dolar
Penyelesain:
Program kurs_uang;
Var rupiah,kursdolar:integer;
Dolar:real;
Function nilaidolar(rp,kurs : integer) : real
Begin
Nilaidolar:=rp/kurs;
End;
{program utama}
Begin
Write(‘masukan nilai rupiah=’);readln(rupiah);
Write(‘kurs 1 dolar=’);readln(kursdolar);
Dolar:=nilaidolar(rupiah,kursdolar);
Write(‘Rp’, rupiah, ‘=’, dolar:3:2 ‘dolar’);
End.
oleh: