Lab10 Rekursif PDF
Lab10 Rekursif PDF
Fungsi rekursif adalah keadaan yang man a sebuah fungsi menyelesaikan sebuah permasalahan dengan cara
memanggil diri sendiri secara berulang kali. Jika masalah sudah cukup kecil, maka fungsi rekursif dapat
langsung menghasilkan jawaban. Namun, jika masalah terlalu besar, maka fungsi akan memanggil dirinya
sendiri dengan cakupan masalah yang lebih kecil.
Banyak permasalahan yang lebih mudah diselesaikan dan pendek kodenya jika menggunakan pendekatan
rekursif. Pada dasarnya, strategi iteratif (misalnya dengan for loop) dan rekursif sama-sama melakukan
sesuatu yang berulang-ulang. Namun, terkadang solusi iteratif untuk suatu masalah sangat sulit untuk
dipikirkan dan memerlukan teknik khusus. Dengan solusi rekursif, mungkin saja lebih mudah untuk melihat
dan merancang alur penyelesaiannya.
Contoh : Faktorial
Pak Dengklek baru mempelajari konsep matematika baru, yaitu faktorial. Operasi faktorial pada N, atau
ditulis dengan notasi N!, adalah operasi mengalikan bilangan dari 1 sampai dengan N. Contoh: Jika N = 4,
maka 4! = 1 x 2 x 3 x 4 = 24 Diberikan N, bantu Pak Dengklek mencari hasil N!
Pemanggilan pada program utama bisa dilakukan seperti memanggil fungsi biasa:
...
int main()
{
printf("4! = %d\n", faktorial(4));
}
Gambaran dari eksekusi fungsi faktorial di atas dapat dilihat pada gambar di bawah ini:
LATIHAN
1. Perhatikan fungi berikut:
int banyak(int x) {
if (x < 0) {
return 0;
} else {
return x + banyak(x - 2);
}
}
Perhitungan faktorial ganjil-genap sama seperti faktorial biasa, hanya saja semua bilangan
genap yang dikalikan harus dibagi dengan 2 terlebih dahulu. Seperti kita ketahui bahwa
notasi dari faktorial untuk bilangan bulat N adalah N!. Sementara itu, notasi dari faktorial
ganjil-genap untuk N adalah N!!.
N!
= N × (N−1)!
= N × (N−1) × (N−2) × ... × 1
N!!
= f(N) × (N−1)!!
= f(N) × f(N−1) × f(N−2) × ... × f(1)
Ucil diberikan sebuah bilangan bulat N. Bantulah Ucil membuatkan program untuk
menghitung faktorial ganjil-genap dari N. Khusus untuk program ini, Ucil meminta agar
Anda menggunakan rekursi.
Contoh Masukan :5
Contoh Keluaran : 30