Berbagi Lentera

:: karena Hidup Pasti Butuh Lentera ::

Algoritma Permasalahan Rekursi Faktorial

with 2 comments

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));}

Written by berbagilentera

October 10, 2008 at 9:37 am

2 Responses

Subscribe to comments with RSS.

  1. Terima kasih atas artikelnya, saat sedang belajar, kebetulan ketemu artikel ini..

    Muhtadin

    February 2, 2010 at 12:07 am


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

%d bloggers like this: