Fungsi rekursif merupakan fungsi yang memanggil dirinya sendiri, prosesnya terjadi secara berulang-ulang. Perulangan rekursif menggunakan if.
Contoh :
f(0) = 3
f(n+1) = 2 f(n) + 3
f(3) ....?
Maka f(0) = 3
f(0 + 1) = 2 f(0) + 3
f(1) = 2.3 + 3 = 9
f(2) → f(1 + 1) = 2 f(1) + 3
f(2) = 2.9 + 3 = 21
f(3) → f(2 + 1) = 2 f(2) + 3
f(2) = 2.21 + 3 = 45
B. Fungsi Iteratif
Fungsi iteratif merupakan perulangan terhadap sekelompok instruksi dimana perulangan akan berhenti jika batasan syarat sudah tidak terpenuhi. Perulangan iteratif menggunakan for, while, do-while.
Kasus :
FPB (Faktor Persekutuan Terbesar)
Misal FPB 228 dan 90 :
228 / 90 = 2 sisa 48
90 / 48 = 1 sisa 42
48 / 42 = 1 sisa 6
42 / 6 = 7 sisa 0
FPB adalah sisa terakhir sebelum sisa = 0, yaitu 6.
Penyelesaian dengan fungsi rekursif
Ilustrasi FPB rekursif :
FPB(228,90) m > n
FPB(48,90) m < n
FPB(90,48) m > n
FPB(42,48) m < n
FPB(48,42) m > n
FPB(6,42) m < n
FPB(42,6) m > n
FPB(0,6) m = 0
FPB 228 dan 90 = 6
int FPB(int m, int n){
if (m == 0) return n;
else if (m < n) return FPB(n, m);
else return FPB(m % n, n);
}
Penyelesaian dengan fungsi iteratif
m = 228, n = 90
do{
r = m % n;
if (r != 0){
m = n;
n = r;
}
} while (r != 0);
No comments:
Post a Comment