Function
recursive adalah sebuah function yang berisi definisi serta memanggil
dirinya sendiri dan hanya dapat menyelesaikan base case saja dan
apabila tidak ada base case, maka masalah akan dipecahkan ke masalah
yang lebih kecil dan kemudian function akan bekerja pada masalah yang
lebih kecil tersebut serta pelan-pelan masalah-masalah yang kecil
tersebut akan menjadi base case sehingga dapat dipecahkan.
Keuntungan:
- dapat membuat function yang lebih singkat apabila dibandingkan dengan function biasa (iteration function)
Kelemahan:
- banyak memakan memory
- apabila nilai yang dikerjakan oleh function tersebut sangat besar, maka kinerjanya akan menjadi lambat dibandingkan dengan function biasa.
- program menjadi sulit dibaca
- seringkali tidak bisa berhenti sehingga memory akan terpakai habis dan program bisa menjadi hang.
Contoh:
int fibo_r (int n){
if(n==1) return 1; //base case
else if(n==2) return 1;
else return fibo_r(n-1) + fibo_r(n-2);
}
Keuntungan:
- dapat membuat function yang lebih singkat apabila dibandingkan dengan function biasa (iteration function)
Kelemahan:
- banyak memakan memory
- apabila nilai yang dikerjakan oleh function tersebut sangat besar, maka kinerjanya akan menjadi lambat dibandingkan dengan function biasa.
- program menjadi sulit dibaca
- seringkali tidak bisa berhenti sehingga memory akan terpakai habis dan program bisa menjadi hang.
Contoh:
int fibo_r (int n){
if(n==1) return 1; //base case
else if(n==2) return 1;
else return fibo_r(n-1) + fibo_r(n-2);
}
baru tahu ada function seperti ini
BalasHapus