Rekursif
Seputar Rekursif
Fungsi Rekursif: Fungsi yang mengulang dirinya sendiri; Fungsi yang memanggil dirinya sendiri dengan cara memasukkan fungsi didalam fungsi.
Contoh sederhana:
int main(){ int main(){ } }
Syarat Ketentuan Rekursif
Contoh sederhana di atas sebenarnya tidak boleh dilakukan, karena akan looping terus menerus/infinite loop. Jadi, harus membuat finite recursion/rekursif terbatas.
Apa itu finite recursion/rekursif terbatas? Rekursif terbatas adalah rekursif yang berakhir ketika kondisinya terpenuhi.
Contoh Rekursif
1. Kasus Fibonacci
Code C++:
//JUDUL: hitungFibonacci //Untuk menghitung jumlah dari FIbonacci #include <iostream> using namespace std; //KAMUS GLOBAL int angka, hasil; //DESKRIPSI GLOBAL //JUDUL: Fungsi rekursif untuk menghitung fibonacci //function fibonacci(n : int) -> integer int fibonacci(int n){ //KAMUS LOKAL: Tidak ada //DESKRIPSI if((n == 0) || (n == 1)){ //kalo n=0 direturn 0; n=1 direturn 1 return n; }else{ return fibonacci(n - 1) + fibonacci(n - 2); } } int main() { int angka, hasil; cout << "Menghitung fibonacci ke-"; cin >> angka; hasil = fibonacci(angka); cout << "Nilainya adalah: " << hasil << endl; return 0; }
Hasil Code:
Menghitung fibonacci ke-6 Nilainya adalah: 8
2. Kasus Faktorial
Code C++:
//JUDUL: hitungFaktorial //Untuk menghitung jumlah dari faktorial #include <iostream> using namespace std; //KAMUS GLOBAL int angka, hasil; //DESKRIPSI GLOBAL //JUDUL: Fungsi rekursif untuk menghitung faktorial //function factorial(n : int) -> integer int factorial(int n){ //KAMUS LOKAL: Tidak ada //DEKSKRIPSI if(n <= 1){ //kalo n=0 tetep direturn 1 cout << n; return n; }else{ cout << n << "*"; return n * factorial(n - 1); //10!=10x9x8x7x6x5x4x3x2x1 } } int main() { cout << "Masukkan angka yang akan difaktorialkan: "; cin >> angka; hasil = factorial(angka); //untuk mencetak perkalian n cout << "\nNilai faktorialnya adalah: " << hasil << endl; //untuk hasil returnnya return 0; }
Hasil Code:
Masukkan angka yang akan difaktorialkan: 6 6*5*4*3*2*1 Nilai faktorialnya adalah: 720
Komentar
Posting Komentar