2. Algoritma Rekursif
• Rekursif adalah teknik menyelesaikan
persoalan dimana di dalamnya
mengandung definisi persoalan itu
sendiri
• Rekursif diimplementasikan dalam
sebuah fungsi yang di dalam fungsi
tersebut memanggil dirinya sendiri
3. Algoritma Rekursif - Faktorial
• Contoh Perulangan
0! = 1
1! = 1
2! = 1 x 2
3! = 1 x 2 x 3
4! = 1 x 2 x 3 x 4
5! = 1 x 2 x 3 x 4 x 5
n! = 1 x 2 x … x (n-1) x n
• Contoh Rekursif
0! = 1
1! = 0! x 1
2! = 1! x 2
3! = 2! x 3
4! = 3! x 4
5! = 4! x 5
n! = (n-1)! x n
4. Algoritma Rekursif - Faktorial
𝑛! = $
1 , 𝑛 = 0
𝑛 𝑥 𝑛 − 1 ! , 𝑛 > 1
Basis: bagian yang terdefinisi eksplisit
untuk memberhentikan rekursif
Recurent: bagian yang
mendefinisikan dirinya sendiri
5. Pseudocode Algoritma Rekursif - Faktorial
Function Fak(n : integer) à integer
Algoritma:
if n = 0 then
return 1 {basis}
else
return n * Fak(n-1) {recurent}
end if
6. Fak (3)
if 3 = 0 then
…
else
Fak ß 3 * Fak (2)
if 2 = 0 then
…
else
Fak ß 2 * Fak (1)
if 1 = 0 then
…
else
Fak ß 1 * Fak (0)
if 0 = 0 then
Fak ß 1 1
1
2
6
8. Pseudocode Algoritma Rekursif - Faktorial
Function Pangkat(a,n : integer) à integer
Algoritma:
if n = 0 then
return 1 {basis}
else
return a * Pangkat(a, n-1) {recurent}
end if
9. Pangkat(5,3)
if 3 = 0 then
…
else
Pangkat ß 5 * Pangkat(5,2)
if 2 = 0 then
…
else
Pangkat ß 5 * Pangkat(5,1)
if 1 = 0 then
…
else
Pangkat ß 5 * Pangkat(5,0)
if 0 = 0 then
Pangkat ß 1 1
5
25
125
10. Algoritma Rekursif – Deret Fibonacci
• Deret Fibonacci: deret yang diperoleh dengan menjumlahkan dua
angka sebelumnya
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ….
• Jika n = 0, maka F(n) = 0
• Jika n = 1, maka F(n) = 1
• Jika n = 2, maka F(n) = 1 + 0 = 1
• Jika n = 3, maka F(n) = 1 + 1 = 2
• Jika n = 4, maka F(n) = F(n-1) + F(n-2)
𝐹 𝑛 = +
0 , 𝑗𝑖𝑘𝑎 𝑛 = 0;
1 , 𝑗𝑖𝑘𝑎 𝑛 = 1;
𝐹 𝑛 − 1 + 𝐹 𝑛 − 2 , 𝑗𝑖𝑘𝑎 𝑛 > 0
11. Pseudocode Algoritma Rekursif - Fibonacci
Function Fibo(n : integer) à integer
Algoritma:
if n = 0 then
return 0 {basis}
else if n = 1 then
return 1 {basis}
else
return Fibo(n-1)+ Fibo(n-2) {recurent}
end if