Fungsi rekursif adalah function yang memanggil dirinya sendiri secara langsung maupun tidak langsung melalui function yang lain. Setiap function rekursif mengandung 2 hal :
- Kasus yang paling sederhana atau kasus basis. Di dalamnya akan mengembalikan suatu nilai.
- Langkah rekursi (recursive call), di mana masalah yang kompleks dipecah menjadi masalah yang lebih sederhana. Langkah rekursif ini harus melangkah ke kasus basis.
n! = n*(n-1)*(n-2)* ... *1
dengan 1!=1 dan 0!=1. Persoalan ini dapat diselesaikan dengan cara iteratif menggunakan pernyataan for. Misalkan akan dicari n!
faktorial = 1;
for (int i=1; i<=n; i++) faktorial = faktorial*i; Definisi faktorial bisa ditulis dengan relasi : (rekursif) n! = n * (n-1)! yang ditulis sebagai faktorial := n*faktorial(n-1); klik disini
Pada kasus perulangan iteratif di atas, kita dapat menggunakan pernyataan perulangan while atau do ..while sebagai ganti for. Nilai kumulatif perkalian dimulai dari 1. Nilai hasil dikembalikan sebagai hasil dari fungsi Factorial.
Untuk kasus perulangan rekursif, nilai awal dapat kita pandang sebagai kasus basis yang nantinya akan mengembalikan suatu nilai. Sementara sifat pengulangannya menggunakan pemanggilan dirinya sendiri. Tentu saja rumus yang digunakan disesuaikan dengan kasus yang dihadapi.
klik disini
Output dari program di atas untuk n = 5 adalah
Faktorial 5 = 120

Comments :
0 komentar to “Fungsi Rekursif”
Posting Komentar