4 - Fungsi
4 - Fungsi
4 - Fungsi
Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai
sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian
dari pekerjaan program utama.
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 sebagai Built in Function. Sedangkan fungsi yang akan
dibicarakan disini adalah fungsi yang kita buat sendiri.
Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu
kuantitas. (Untuk memahami masalah kuantitas ini, baca pembahasan mengenai fungsi tanpa
parameter dan fungsi dengan parameter di materi 11.2 FUNGSI TANPA PARAMETER di
halaman 3).
Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang
dihasilkan.
Secara umum bentuk header suatu function adalah:
Contoh:
1. Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di
antara dua integer.
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.
Halaman : 1
Pemrograman PASCAL : Procedure & Function
ab = POWER (a,b)
ba = POWER (b,a)
(p + q)r/s = POWER (p + q, r/s)
………………………………..
dll
Contoh:
Hasilnya :
Nilai X ? 2
Nilai Y ? 3
1+3=5
2. Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung
digunakan untuk dicetak hasilnya, sebagai berikut:
Halaman : 2
Pemrograman PASCAL : Procedure & Function
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.
Halaman : 3
Pemrograman PASCAL : Procedure & Function
Halaman : 4
Pemrograman PASCAL : Procedure & Function
Halaman : 5
Pemrograman PASCAL : Procedure & Function
REKURSIF
Suatu fungsi atau prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi
atau prosedur tersebut dapat memanggil dirinya sendiri. Berikut ini sebuah contoh fungsi
dan prosedur yang rekursif.
Var
N : integer;
Begin
Write(‘Berapa faktorial ? ‘);
Readln(N);
Writeln(N,’ faktorial = ‘,faktorial(N):9:0);
End.
Halaman : 6
Pemrograman PASCAL : Procedure & Function
1 * faktorial (0)
1
=4*3*2*1*1
= 24
2. Bilangan Fibonanci:
F (0) = 0
F (1) = 1
F (n) = F ( n-1 ) + F (n-2); untuk n >1
Function fibonacci ( n : integer ) : integer;
Begin
If n = 0 then fibonacci := 0
Else
If n := 1 then fibonacci := 1
Else fibonacci := fibonacci (n-1) + fibonacci (n-2);
End;
Halaman : 7
Pemrograman PASCAL : Procedure & Function
Fungsi Standar
1. Fungsi standar aritmatika
Fungsi standar ABS
Bentuk umum : ABS(x);
Digunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh argumen x.
Contoh:
program fungsi_standar_aritmatika_ABS;
uses crt;
var x:real;
begin
clrscr;
write('Nilai yang akan dimutlakkan? ');
readln(x);
Halaman : 8
Pemrograman PASCAL : Procedure & Function
writeln;
writeln('Nilai mutlaknya = ',abs(x):9:2);
readkey;
end.
RUN:
Contoh:
program fungsi_standar_aritmatika_EXP;
uses crt;
var x:real;
begin
clrscr;
write('Nilai yang akan dieksponentialkan? ');
readln(x);
writeln;
writeln('Nilai eksponentialnya = ',exp(x):9:5);
{uji dg 7.5, hasilnya 1808.04241}
readkey;
end.
Fungsi standar LN
Bentuk umum : LN(x):real;
Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x.
Hasilnya berupa nilai real.
Halaman : 9
Pemrograman PASCAL : Procedure & Function
Begin
X:=9.99;
Write(‘Nilai yang akan dibulatkan = ‘,X);
Writeln(‘Nilai pembulatannya = ‘,Int(X):3:2);
End.
Hasil :
Nilai yang akan dibulatkan = 9.99
Nilai pembulatannya = 9.00
Contoh:
Begin
X:=9.99;
Write(‘Nilai X = ‘,X,’ Nilai pecahannya = ‘,Frac(X):4:3);
End.
Contoh:
Begin
X :=2;
Write(‘Nilai X = ‘,X,’ Nilai kuadratnya = ‘,sqr(x));
End.
Halaman : 10
Pemrograman PASCAL : Procedure & Function
Contoh :
X := 66;
Write(‘Nilai X = ‘,x,’ Nilai karakternya = ‘,CHR(X));
Contoh :
Write(’10 dibagi 3 hasil pembulatan terdekat ‘,Round(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(20/3);
Hasilnya :
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 7
Contoh :
Write(’10 dibagi 3 hasil pembulatan terdekat ‘,Trunc(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Trunc(20/3);
Hasilnya:
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 6
Halaman : 11
Pemrograman PASCAL : Procedure & Function
Halaman : 12