Menghitung Nilai Faktorial dengan Fungsi Rekursif

Untuk dapat memahami cara kerja fungsi rekursif, maka diharapkan anda sudah memahami cara kerja fungsi dalam C++ dengan baik karena rekursif  merupakan pengembangan dari cara kerja fungsi.

Rekursif adalah suatu proses dalam sebuah fungsi dimana fungsi tersebut memanggil dirinya sendiri secara berulang-ulang. Karena proses dalam Rekursif ini terjadi secara berulang-ulang maka harus ada kondisi yang membatasi pengulangan tersebut, jika tidak maka proses tidak akan pernah berhenti sampai memori yang digunakan untuk menampung proses tersebut tidak dapat menampung lagi (penuh).

Kasus perhitungan nilai Faktorial. Faktorial dari bilangan bulat n positif didefinisikan sebagai berikut.


Untuk n>1, maka faktor (n-1)! akan selalu muncul untuk menghitung nilai berikutnya hingga n-1 = 0 baru selesai.

Contoh :

n= 10, maka faktorialnya adalah :
10! = 10.(10-1)! 
10! = 10.9.(9-1)! 
10! = 10.9.8.(8-1)! dst hingga selesai dan hasilnya adalah :

10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1

Dari contoh di atas menunjukkan bahwa faktor (n-1)! selalu muncul untuk menghitung nilai faktorial berikutnya. Faktor yang berulang tersebut akan menjadi faktor rekursif dalam program.

Program Faktorial dengan Fungsi Rekursif

#include iostream.h  
#include conio.h 
  
long int faktorial( long int a);  //deklarasi prototipe fungsi faktorial
  
void main()
{clrscr();
 long int faktor;  
 long int n;  
   cout<<"Masukan n! = ";
   cin>>n;  
   faktor = faktorial(n);  
   cout<<" = "<
   getch();  
}  
  
long int faktorial( long int a)
{  
   if(a==1)
     {  cout<
         return(1);  
     }
     else 
          if (a>1)
   { cout<
     return(a*faktorial(a-1));  //rekursif
   }
           else
      {
return(0);
      }
    }  

Cara kerja program :

Nilai n yang akan dihitung faktorialnya diinput dalam fungsi utama. Nilai n tersebut kemudian dikirim ke dalam fungsi faktorial pada saat memanggil fungsi faktorial. Selanjutnya, nilai faktorial n akan dihitung dalam fungsi faktorial. Ketika nilai (n-1)! akan dihitung, maka fungsi faktorial akan dipanggil kembali dari dalam fungsi faktorial dengan mengirim nilai (n-1). Proses akan selesai atau berhenti pada saat nilai (n-1) =0 dan fungsi akan mengembalikan nilai 0 dengan pernyataan return 0.

Hasil program :




Demikian pembahasan program Faktorial dengan menggunakan fungsi rekursif dalam pemrograman Turbo C++. Selamat belajar, semoga sukses selalu, Jika ada pertanyaan, atau masukan yang positif silakan kirimkan lewat komentar di bawah. Terima kasih.

Tidak ada komentar:

Posting Komentar

Silakan memberikan komentar dan pertanyaan yang sifatnya positif.