Fungsi Rekursif pada C++ | Belajar C++ 31 | Tutorial C++ 31

Assalamualaikum Sobat, pada artikel kali ini kami akan memberikan tutorial tentang fungsi rekursif pada C++, yuk simak artikel dari kami.

Apa Itu Fungsi Rekursif ?

Fungsi rekursif adalah fungsi yang memanggil fungsinya sendiri. Dengan menggunakan fungsi rekursif kita dapat menyelesaikan sebuah permasalahan yang rumit menjadi lebih mudah diselesaikan dan lebih sederhana. Fungsi rekursif digunakan untuk melakukan perulangan yang mana fungsi itu akan berhenti jika kondisinya telah terpenuhi. Fungsi rekursif memerlukan space memori yang lebih besar dibanding proses lainnya karena proses iterasi dari fungsi tersebut dipanggil secara terus menerus.

Untuk memahami fungsi rekursif kita perlu sering bereksperimen untuk mengetahui cara kerjanya karena fungsi rekursif cukup membingungkan dan lumayan sulit untuk dipahami. Dalam menggunakan fungsi rekursif harus memiliki kondisi dimana kondisi tersebut akan menghentikan program ketika kondisinya telah terpenuhi. Biasanya penggunaan pernyataan if...else... atau sejenisnya digunakan dalam menggunakan fungsi rekursif.

Perhatikan kode program berikut :

int rekursi(int a){
  if(a == 0){
    return 0;
}else {
    return rekursi(a-1);
}
}

pada program diatas a == 0 adalah kasus dasar yang akan menghentikan iterasi fungsi ketika nilai a sama dengan 0.

return rekursi(a-1) adalah fungsi rekursi yang akan melakukan proses perulangan.

Contoh program 1 : Mencari nilai faktorial dengan fungsi rekursif


#include <iostream>
using namespace std;

int faktorial (int a){
 if(a > 1){
   return a * faktorial(a-1);
  }else{
   return 1;
  }
}

int main(){
 int a, hasil;
 
 cout << "ketikkan sebuah angka positif : ";
 cin >> a;
 cout << endl;
 
 hasil = faktorial(a);
 
 cout << "faktorial dari " << a << " adalah " << hasil;

return 0;
}

Hasil Program 1

Penjelasan program 1


Pada program diatas kita bisa melihat, fungsi faktorial() memanggil dirinya sendiri, dan nilai dari a dikurangi 1, ketika a kurang dari 1 fungsi faktorial() akan mengembalikan output.

Contoh program 2 : menghitung nilai pangkat menggunakan fungsi rekursif

#include <iostream>
using namespace std;

long int pangkat(int a, int b){
    if(b==0){
        return 1;
    }else{
        return a * pangkat(a, b-1);
    }
}

int main(){
int a,b;
cout<<"Masukan sebuah angka = ";
cin>>a;
cout<<"Masukan nilai pangkat = ";
cin>>b;
cout<<endl;
cout<<a<<" Dipangkatkan "<<b<<" = "<<pangkat(a,b)<<endl;
}

Hasil program 2

Pada program diatas, disini kita menghitung pangkat, pengguna akan memasukkan nilai a dan nilai b, yang mana nilai a akan dipangkatkan dengan nilai b. Jika kita melihat fungsi rekursifnya long int pangkat(int a, int b) disini kita memiliki 2 buah parameter a dan b. Jika nilai b kita beri 0 maka kita akan mendapatkan angka 1 sebagai kembalian. Namun jika nilai b lebih dari 0 maka nilai a akan dikalikan dengan nilai b-1, dan proses tersebut akan terus diulangi hingga nilai b bernilai 0.

Kelebihan Dan Kekurangan Fungsi Rekursif

Dalam menggunakan fungsi rekursif di C++, kita harus mempertimbangkan kelebihan dan kekurangannya.

Kelebihan fungsi rekursif
  • Membuat kode program lebih pendek dan singkat.
  • Dalam menyelesaikan permasalahan yang berkaitan dengan struktur data dan algoritma tingkat lanjut seperti tree traversal dan graph, fungsi rekursif sangat diperlukan.
Kekurangan fungsi rekursif
  • Jika dibandingkan dengan kode program perulangan yang sama, proses debug menggunakan fungsi rekursif bisa lebih sulit.
  • Fungsi rekursif waktu prosesor yang lebih lama
  • Jika dibandingkan dengan program perulangan yang sama, fungsi rekursif membutuhkan lebih banyak ruang memori
Sekian untuk postingan kali ini sampai jumpa di artikel selanjutnya. Happy a nice day...

Posting Komentar untuk "Fungsi Rekursif pada C++ | Belajar C++ 31 | Tutorial C++ 31"