FUNGSI DAN REKURSI
1. Function (Fungsi)
Deklarasi Function (fungsi) dalam pascal hampir sama dengan deklarasi procedure, hanya fungsi harus dieklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Function (fungsi) juga memakai data atau variable ketika dieksekusi, tetapi mempunyai kemampuan untuk menghasilkan nilai pada procedure atau program yang memanggilnya.
Function judul_fungsi (daftar_parameter) : type ;
Deklarasi Function (fungsi) dalam pascal hampir sama dengan deklarasi procedure, hanya fungsi harus dieklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Function (fungsi) juga memakai data atau variable ketika dieksekusi, tetapi mempunyai kemampuan untuk menghasilkan nilai pada procedure atau program yang memanggilnya.
Function judul_fungsi (daftar_parameter) : type ;
Suatu function
Ø
Dimulai dengan kata kunci yaitu function
Ø
Strukturnya sama dengan sebuah procedure
Ø
Didalam fungsi, suatu nilai dihasilkan dengan
nama function
Ø
Suatu function dipakai pada sisi sebelah kanan
pada suatu ekspresi
Ø
Hanya menghasilkan tipe data sederhana
Fungsi yang tanpa menggunakan parameter berarti
nilai balik yang akan dihasilkan merupakan nilai yang pasti. Dan memberikan
input pada fungsi serta fungsi memberikan hasil baik yang sesuai dengan
parameter yang diberikan.
Contoh :
Contoh :
Program
Function_Nilai ;
Uses Wincrt
;
Function terbesar (A,B: real) : real ;
Begin
If A>B then
terbesar:=A
else
terbesar:=B ;
end;
Var jumlahnilai1,
jumlahnilai2 : real ;
Begin
Write
('Jumlah Nilai Pertama :') ; readln (jumlahnilai1) ;
write
('Jumlah Nilai Kedua :') ; readln
(jumlahnilai2) ;
Writeln ;
Write
('Jumlah Nilai Terbesar adalah ', terbesar (jumlahnilai1, jumlahnilai2) :3:2) ;
End.
Output :
2. Rekursi dan Iterasi
Subprogram yang bisa memanggi dirinya (Recursive Call) dengan
catatan bahwa memiliki syarat penghentian operasi (literasi), sehingga
perlu dilakukan kehati-hatian dalam penulisannya.
Contoh :
Program
Factorial_Rekursi1 ;
Uses Wincrt
;
Var
z:integer ;
function factorial (n:integer):integer ;
Begin
if n<2 then {ini adalah syarat
penghentian operasi}
Factorial:= 1
else
Factorial:=n*factorial(n-1); {ini bagian
rekursi}
End;
Begin
Writeln
('Masukkan nilai:'); readln (z) ;
writeln
(z,'! adalah ',factorial (z)) ;
End.
Output :
Tidak ada komentar:
Posting Komentar