Pertemuan 8 - Rekursi dan Aplikasinya
Rekursi adalah teknik pemrograman di mana suatu fungsi memanggil dirinya sendiri secara langsung atau tidak langsung untuk menyelesaikan suatu masalah.
b. Contoh Rekursi
Faktorial
#include <iostream>
using namespace std;
int faktorial(int n) {
if (n == 0) return 1;
return n * faktorial(n - 1);
}
int main() {
cout << "Faktorial 5: " << faktorial(5) << endl;
return 0;
}
Fibonacci
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
cout << "Fibonacci ke-6: " << fibonacci(6) << endl;
return 0;
}
c. Aplikasi Rekursi
Pencarian Biner
Algoritma Menara Hanoi
Traversal Struktur Data seperti Tree dan Graph
d. Keuntungan dan Kekurangan Rekursi
Keuntungan:
Mempermudah pemecahan masalah yang bersifat rekursif seperti traversal pohon.
Kode lebih ringkas dan mudah dipahami untuk kasus tertentu.
Kekurangan:
Konsumsi memori lebih besar dibandingkan iterasi karena penggunaan stack rekursi.
Risiko stack overflow jika rekursi terlalu dalam.
6. Kesimpulan
Stack, Queue, dan Rekursi adalah konsep penting dalam pemrograman. Stack digunakan untuk manajemen memori dan rekursi, sedangkan Queue berguna dalam pengelolaan antrean. Rekursi sendiri banyak digunakan dalam berbagai algoritma seperti pencarian biner dan Fibonacci.