Faktorial with Rekursif

Guyz, udah pernah denger blom tentang faktorial?? tentunya udah kan waktu di-SMA/SMK khususnya pada pelajaran Matematika, nah itu topik kita kali ini, mencari faktorial dengan rekursif.

Pertama pengertian Faktorial adalah Hasil kali bilangan bulat positif dari 1 sampai n disebut n factorial ditulis n!
jadi n ! = 1.2.3….…..(n-2)(n-1).n ; dan 0 ! = 1
Contoh:

Hitunglah 5 !
Penyelesaian
5 != 5.4.3.2.1= 120

Langsung aja ya guyz, Menghitung Nilai Factorial Dari Suatu Bilangan Bulat Positif menggunakan cara Rekursif. Pengertian Rekursif, Rekursif Berarti Bahwa Suatu Proses Bisa Memanggil Dirinya Sendiri.

Menurut Definisi Dalam Microsoft Bookshelf Rekursif Adalah Kemampuan Suatu Rutin Untuk Memanggil Dirinya Sendiri. Dalam Rekursif Sebenarnya Terkandung Pengertian Contoh Paling Sederhana Dari Proses Rekursif Ini adalah Proses Menghitung Nilai Factorial Dari Suatu Bilangan Bulat Positif. Sourcecode dari proses mencari faktorial suatu bilangan antara lain sebagai berikut:

#include <iostream.h>
#include <cstdlib>
class Faktorial {
	friend istream& operator>>(istream&, Faktorial&);         //overloading
	friend ostream& operator<<(ostream&, const Faktorial&);   //overloading
public:
	long hitung(int);
private:
	int suku_n;
	long hasil;
};
long Faktorial::hitung(int n) {		// hati-hati, n tidak boleh negatif
	if ((n==0) || (n==1)) return 1;	// kasus penyetop, mengembalikan nilai integer
	else return n*hitung(n-1);		// memanggil rekursif, mengarah ke kasus penyetop
}
istream& operator>>(istream& input, Faktorial& x) {       //input overloading
	cout << "Masukkan integer : ";
	input >> x.suku_n;
	x.hasil = x.hitung(x.suku_n);
	return input;
}
ostream& operator<<(ostream& output, const Faktorial& x) {       // output overloading
	output << "Hasil perhitungan\n\t " << x.suku_n << " ! = " << x.hasil;
	return output;
}
int main() {                          //proses panggil class
	Faktorial Bilangan;
	cin >> Bilangan;
	cout << Bilangan << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Dari program diatas telah ada keterangan dan mana yg rekursifnya berfungsi ke pemanggil yang nantinya mengarah ke penyetop atau pemberhenti program jika masukan dan loop telah memenuhi persyaratan yang telah ditentukan dalam program dan rekursif.

Setelah tahu program/sourecodenya, sekarang kita harus tahu pula output atau keluarannya dari soucecode diatas, sebagai contoh, setelah di-Run kita masukkan angka integer 5, perhitungan manualnya 5! =5 x 4 x 3 x 2 x 1
sedangkan dari hasil Running setelah dimasukkan angka integer 5, maka keluarannya:

Nah, ternyata benarkan keluaran dari 5 ! = 120, alhamdulillah program telah jadi, hehe, guyz sudah waktunya ane cau lgai neh, ada panggilan dan undangan yang slalu dikumandangkan tiap 5 waktu pada waktunya ahihihihi,,
wassalamu’alaikum🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s