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();
}
-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();
}
program ini ga jalan ya di Dev-C ?! http://bandungbuatbesok.blogspot.com
ReplyDeleteya gak lah ne kan bwt borland....
ReplyDeletebisa jalan tapi harus di modif sedikit... hehe