Tinkerbell Pink Glitter Wings MathEducationOfUMK: FUNGSI DAN REKURSI

Selasa, 01 Januari 2019

FUNGSI DAN REKURSI

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 ; 
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 :

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

SORTING