Algoritma Permasalahan Rekursi Faktorial
1.Perumusan Masalah
Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri secara berulang-ulang. Karena proses dilakukan berulang-ulang, maka harus ada suatu kondisi yang mengakhiri prosesnya. Jika tidak, maka proses tidak akan pernah berhenti sampai memori yang digunakan tidak dapat menampung lagi.
2.Membangun model
Model fungsi faktorial seperti di bawah ini,
Misal: 0! = 1
N! = N x (N – 1)! If N>0
Dalam notasi program
FAC (0) = 1
FAC (N) = N * FAC (N-1) if N>0
Misalnya FAKTORIAL (5) = 5 * FAKTORIAL (4)
Proses dari rekursi ini ini dapat dijelaskan sebagai berikut :
F = 5 * FAKTORIAL(4);
F = 5 * 4 * FAKTORIAL(3);
F = 5 * 4 * 3 * FAKTORIAL(2);
F = 5 * 4 * 3 * 2 * FAKTORIAL(1);
F = 5 * 4 * 3 * 2 * 1;
F= 120;
3.Desain Algoritma
FUNGSI FAKTORIAL:
1.Begin
2.Set N ø;
3.Construct FAKTORIAL(N); { pendeklarasian fungsi}
4.FAKTORIAL FAKTORIAL(N);
5.End;
REFINEMENT 1:
1.Begin;
2.Set N ø;
3.1. if (N<=1) then return (1); { jika N<=1 maka nilai baliknya 1)}
3.2. else then return (N * FAKTORIAL(N-1)); { jika N>1, rekursi dijalankan }
3.3. fi;
4. FAKTORIAL FAKTORIAL(N);
5. End;
4.Source Code
Source code fungsi faktorial ini dibuat dengan bahasa C++:
#include
#include
long double FAKTORIAL(long double N);
void main()
{
int n;
cout << ” Menghitung nilai faktorial ” << endl;
cout << ” Masukkan bilangan : “;
cin >> n;
cout << ” Faktorial dari ” << n << ” = “<< FAKTORIAL(n);
}
long double FAKTORIAL(long double N)
{
if(N<=1)
return(1);
else
return(N*FAKTORIAL(N-1));}
Terima kasih atas artikelnya, saat sedang belajar, kebetulan ketemu artikel ini..
Muhtadin
February 2, 2010 at 12:07 am
sama-sama Mas..
berbagilentera
February 2, 2010 at 2:06 pm