Fungsi Rekursif - Faktorial - nblognlife

Fungsi Rekursif - Faktorial

Contoh Program Fungsi Rekursif - Faktorial

            Dalam pemrograman terdapat konsep fungsi rekursif, yaitu yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri. Parameter yang dilewatkan berubah sebanyak fungsi itu dipanggil.


Berikut adalah program C++ rekursif untuk menghitung faktorial dari suatu bilangan :
/*
      Fungsi rekursif – Faktorial
      Visual Studio Express 2012
      N.N. Blog
*/

#include <iostream>
using namespace std;
#include <conio.h>

int faktorial (int bil)
{
      if(bil==1)
            return 1;
      else
            //fungsi rekursif
            return bil*faktorial(bil-1);
}

int main ()
{
      int n;
      cout<<"\tFungsi Rekursif - FAKTORIAL"<<endl;
      cout<<"\t==========================="<<endl;
      cout<<"\nMasukkan nilai n = ";
      cin>>n;
      cout<<"\nFaktorial "<<n<<"!= "<<faktorial(n)<<endl;

      _getche();
      return EXIT_SUCCESS;
}

Penjelasan
int faktorial (int bil)
  {
        if(bil==1)
             return 1;
        else
             return bil*faktorial(bil-1); //rekursif
  }
Seperti pada output, apabila dimasukkan angka 4 maka:
  • Kondisi pada operasi kondisi pertama akan dicek, karena kondisi bernilai salah maka program akan menjalankan pernyataan return bil*faktorial(bil-1)”
  • Bil bernilai 4, 4*faktorial(4-1)…sekarang kita mempunyai nilai 4, selanjutnya mengalikan dengan rekursif., nilai 4 disimpan terlebih dahulu.
  • Rekursif, bil bernilai 3, dicek dengan kondisi pertama, karena masih bernilai salah maka dilanjutkan ke pernyataan selanjutnya,  3*faktorial(3-1)sekarang kita mempunyai nilai 3, selanjutnya mengalikan dengan rekursif,..sekarang kita punya nilai 4*3…, dan seterusnya, sampai variabel bil bernilai 1…sehingga akan diperoleh perkalian 4*3*2*1 yang menghasilkan 24.

Output
       Fungsi Rekursif - FAKTORIAL
       ===========================

Masukkan nilai n = 4

Faktorial 4!= 24


Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?

Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).

Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.

Terima kasih