Fungsi / Prosedur - Rekursif
Memahami Fungsi / Prosedur yang Mengandung Rekursif
Definisi dan Pengertian Fungsi / Prosedur yang Mengandung Rekursif
Implementasi Rekursif Digunakan Saat Apa Saja?
- Penyelesaian Masalah yang Dapat Dipecahkan Secara Rekursif : Beberapa masalah seperti pencarian, pengurutan, pencarian jalur, atau perhitungan matematis kompleks dapat diselesaikan dengan pendekatan rekursif. Misalnya, algoritma quicksort atau algoritma pencarian biner.
- Struktur Data yang Berulang : Implementasi rekursif dapat berguna ketika kita berurusan dengan struktur data yang berulang seperti pohon (tree) atau grafik. Dalam kasus ini, rekursi memungkinkan kita untuk melakukan operasi pada setiap simpul secara rekursif.
- Perulangan yang Terbatas : Jika sebuah tugas membutuhkan perulangan yang terbatas, maka rekursi dapat digunakan sebagai alternatif. Dalam beberapa kasus, penggunaan rekursi dapat menyederhanakan kode dan membuatnya lebih mudah dipahami.
Kelebihan dan Kekurangan Fungsi / Prosedur yang Mengandung Rekursif
- Penyelesaian masalah kompleks dengan pendekatan yang lebih sederhana.
- Kode yang lebih elegan dan mudah dipahami.
- Pemecahan masalah menjadi masalah yang lebih kecil.
- Penggunaan memori yang lebih besar : Implementasi rekursif dapat menghasilkan penumpukan memori yang lebih besar karena setiap pemanggilan rekursif membutuhkan ruang di dalam tumpukan.
- Potensi kinerja yang buruk : Jika rekursi tidak diimplementasikan dengan benar atau tidak efisien, hal ini dapat menyebabkan kinerja program menjadi lambat.
Contoh Source Code dan Penjelasannya
#include <iostream>
using namespace std;
int faktorial(int n) {
if (n == 0 || n == 1) { // Basis: faktorial dari 0 atau 1 adalah 1
return 1;
} else {
return n * faktorial(n - 1); // Rekursi: mengalikan n dengan faktorial n-1
}
}
int main() {
int bilangan;
cout << "Masukkan bilangan: ";
cin >> bilangan;
int hasil = faktorial(bilangan);
cout << "Faktorial dari " << bilangan << " adalah " << hasil << endl;
return 0;
}
Menghitung faktorial suatu bilangan dengan menggunakan rekursi adalah tujuan dari program ini yang dibuat dalam bahasa C++. Setiap bagian source code tersebut dijelaskan di bawah ini :
'int faktorial(int n) { ... }'
Ini adalah fungsi faktorial yang mengambil sebuah argumen bilangan bulat n dan kemudian mengembalikan nilai faktorial dari n. Faktorial n adalah hasil perkalian dari semua bilangan bulat positif dari 1 hingga n. Untuk menghitung faktorial, fungsi ini melakukan rekursi dengan mengalikan bilangan n dengan faktorial dari bilangan n-1.
'if (n == 0 || n == 1) { ... }'
Ini merupakan bagian dari fungsi faktorial yang berkaitan dengan basis rekursi. Fungsi akan mengembalikan nilai 1 jika nilai n sama dengan 0 atau 1. Karena faktorial dari 0 dan 1 adalah 1, ini adalah kasus basis.
'else { ... }'
Ini adalah bagian rekursi dari fungsi faktorial. Fungsi akan mengembalikan hasil perkalian antara n dan faktorial(n-1) jika nilai n tidak sama dengan 0 atau 1. Fungsi ini akan terus memanggil dirinya sendiri dengan argumen yang lebih kecil hingga mencapai kasus basis dengan menggunakan rekursi.
Komentar
Posting Komentar