Download - Algoritma Rekursif
Algoritma Rekursif
Alpro-2
REKURSIF
alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri
teknik pemecahan masalah yang powerful dan dapat digunakan ketika inti dari masalah terjadi berulang kali (for, while dan do-while)
subrutin yang memanggil dirinya sendiri, baik langsung maupun tak langsung.
subrutin rekursi bisa menyelesaikan tugas kompleks dalam beberapa baris perintah
Iterasi
Mrk perkataan berulang-ulang peralatan yang lebih efisien jika dibandingkan dengan
rekursif tetapi recursion menyediakan solusi yang lebih baik untuk suatu masalah.
Jadi: Pada rekursif, method dapat memanggil dirinya sendiri Data yang berada dalam method tersebut seperti
argument disimpan sementara kedalam stack sampai method pemanggilnya diselesaikan.
c/ Faktorial
Faktorial (5)/ \Faktorial (4)*5/ \Faktorial (3)*4/ \Faktorial (2)*3/ \Faktorial (1)*2 | 1
Algoritma:
n!= n.(n-1)! , jika n>1n!= 1 , jika n=0, 1
int Faktorial(int n){
if ((n == 0) || (n == 1 )) return (1);
else return (n * Faktorial(n-
1));}
Bilangan Fibonacci
Baris dari n=11 1 2 3 5 8 13 21 34
Algoritma (untuk n > 2): fn = fn-1 + fn-2
f1 = 1
f2 = 1
If (n ==1 || n==2) Then return (l)
Else return (Fibonacci(n-1)+Fibonacci(n-2))
Endif
c/ n= 4 f4 = f3+f2
f4 = (f2+f1) + f2
f4 = (1+1) +1 f4 = 3
Kombinasi
input n, r : integer
If (n < r) Thenreturn (0)
Elsereturn (Faktorial(n)/Faktorial(r)*Faktorial(n-r))
Endif
Permutasi
input n, r : integer
If (n< r) Then
return (0)
Else
return (Faktorial(n) / Faktorial(n-r))
Endif
Studi Kasus-1:
Output deretS =1+2+3+4+5+...+n
input n:integer
If (n==1) Then
return (n)
Else
return (n + S(n-1))
Endif
Studi Kasus-2
Output deret S = 2+4+6+8+10+...+2n
input n:integer
If (n==1) Then return (2)Else
return (2*n + S(n-1))Endif