Anda di halaman 1dari 8

REKURSIF

Rekursif
Rekursif adalah procedure atau function yang
mengandung atau mendefinisikan dirinya
sendiri
Setiap suatu procedure/function dipanggil
maka nilai argumennya akan berubah dan
proses berhenti jika telah mencapai kondisi
tertentu
Prinsip yang digunakan adalah LILO (Last In
Last Out)
Rekursif dibedakan menjadi :

REKURSIF LANGSUNG
Yaitu bila procedure/function tersebut memanggil
dirinya sendiri

REKURSIF TIDAK LANGSUNG


Yaitu bila Procedure /function X memanggil
procedure/ function lain dimana dalam
procedure/function tersebut terdapat proses untuk
memanggil Procedure /function X
Contoh rekursif langsung

Procedure tampil
Write (‘Halo’)
I 0
I ← I +1
If I < 5 then call tampil
Endif
return
Contoh rekursif langsung

Function faktorial (n) Function faktorial(n)


Hasil ← 1 If (n=0) then faktorial (n) ← 1
If (n=0) then hasil ← 1 Else
Else faktorial(n) ← n * faktorial (n-1)
For j ← 1 to n do endif
Hasil ← hasil * j Return
Endfor
Endif
faktorial ← hasil
Return
Function faktorial(n) Mekanisme
If (n=0) then faktorial (n) ← 1
Else faktorial(n) ← n * faktorial (n-1)
Return

Misal n = 4

Faktorial(0) 1
Faktorial(1) 1 * faktorial(1-1) 1*1
Faktorial(2) 2 * faktorial(2-1) 2 * (1 * 1)
Faktorial(3) 3 * faktorial(3-1) 3 * (2 * (1 * 1))
Faktorial (4) 4 * faktorial(4-1) 4 * (3 * (2 * (1 * 1)))
Contoh rekursif tak langsung

Procedure contoh1
Writeln (‘Stiki Malang’)
Call contoh2
Return
 
Procedure contoh2
Write (‘Jl. Tidar 100’)
For I ← 1 to 3 do Call contoh1
Write(‘OK’)
Return
Function pangkat (x, y)
Hasil ← 1
If y = 0 then pangkat(x,y) ←1
Else
Hasil ← x * pangkat(x, y-1)
Endif
Return
 

Anda mungkin juga menyukai