Monday, March 21, 2016

Fungsi Rekursif & Fungsi Iteratif

A. Fungsi Rekursif

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(1) → f(n + 1) = 2 f(n) + 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