15 January, 2010

Faktorial C++ Dengan Metode Rekursif

1. Pengertian


-Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri.
-Prosesnya terjadi secara berulang-ulang
-Yang perlu diperhatikan adalah “stopping role”

2. Kelebihan

-Karena program lebih singkat dan ada beberapa kasus yang lebih mudah menggunakan fungsi yang rekursif

3. Kekurangan

-Memakan memori yang lebih besar, karena setiap kali bagian dirinya dipanggil, dibutuhkan sejumlah ruang memori tambahan.
-Mengorbankan efisiensi dan kecepatan


4. Problem yang sering dijumpai

-Rekursi seringkali tidak bisa “berhenti” sehingga memori akan terpakai habis dan program bisa hang.

5. Penanggulangan

-Jika memang bisa diselesaikan dengan iteratif, gunakanlah iteratif!

6. Contoh Permasalahan :

Penghitungan bilangan faktorial
5! = 5 x 4 x 3 x 2 x 1
4! = 4 x 3 x 2 x 1
Berarti 5! = 5 x 4!

7. Penyelesaian dengan Metode Rekursif

Cara pertama untuk menyelesaikan permasalahan di atas adalah dengan cara rekursif, dimana n! adalah hasil kali dari n dengan (n-1)!. -> dicontohkan bahwa 5! = 5 x 4!
Untuk menyelesaikan (n-1)! adalah sama dengan n!, sehingga (n-1)! adalah n-1 dikalikan dengan (n-2)!, dan (n-2)! adalah n-2 dikalikan dengan (n-3)! dan seterusnya sampai dengan n = 1, kita menghentikan penghitungan n!

8. Contoh Program :


#include <iostream.h>
#include <conio.h>

int faktorial (int n)
{if (n=0) return 0;
else if (n==0) return 1;
else if (n==1) return 1;
else
return n*faktorial(n-1);
}
void main()
{
int fak;
cout<<"Masukkan beberapa faktorial = ";cin>>fak;
cout<<"maka hasilnya = "<<faktorial(fak);
getch();
}





Artikel Terkait

2 comments:

Anonymous said...

program ini ga jalan ya di Dev-C ?! http://bandungbuatbesok.blogspot.com

admin said...

ya gak lah ne kan bwt borland....

bisa jalan tapi harus di modif sedikit... hehe

:10 :11 :12 :13
:14 :15 :16 :17
:18 :19 :20 :21
:22 :23 :24 :25
:26 :27 :28 :29
:30 :31 :32 :33
:34 :35 :36 :37
:38 :39 :40 :41
:42 :43 :44 :45
:46 :47 :48 :49
:50 :51 :52 :53
:54 :55 :56 :57

Post a Comment

Template by : kendhin x-template.blogspot.com ==> Editor by : BIK