Rekursif sangat penting dalam pemograman, mengapa dikatakan demikian ? karena rekursif menyediakan teknik menyelesaikan persoalan yang di dalamnya mengandung definisi persoalan itu sendiri. Sayangnya rekursif adalah materi yang sulit dimengerti oleh pemula. Dalam sebuah rekursi sebenarnya tekandung pengertian sebuah prosedur atau fungsi. Perbedaannya adalah bahwa rekursi bisa memanggil dirinya sendiri, kalau prosedur atau fungsi harus diipanggil melalui pemanggil prosedur atau fungsi.
Definisi Rekursif diturunkan secara matematik. Definisi tidak formal menyatakan bahwa sebuah objek dikatakan rekursif jika ia didefinisikan menjadi lebih sederhana dalam terminologi dirinya sendiri. Nicklaus Wirth mendefinisikan sebagai berikut:
"An Object is said be Recursive if it Partially Consist or is Defines in Terms of Itself".
Sumber lain mendefinisikan Rekursif sebagai salah satu metode dalam dunia matematika dan pemograman dimana definisi sebuah fungsi mengandung fungsi itu sendiri. Dalam dunia pemograman, rekursif diimplementasikan dalam sebuah fungsi yang memanggil dirinya sendiri misalnya : pangkat, faktorial, dan barisan fibonacci.
Dalam kehidupan sehari-hari banyak terdapat objek rekursif. Seperti, jika kita melakukan pengamatan terhadap daun pakis, tahukan anda bahwa daun pakis dibentuk oleh ranting-ranting daun yang memiliki pola yang mirip dengan daun pakis itu sendiri. Setiap ranting daun disusun lagi oleh ranting daun dengan pola yang mirip. Hal tersebut sama dengan pohon cemara. Objek Rekursif dalam hal ini disebut Fraktal. Dalam bidang grafik dan seni, Fraktal dimanfaatkan untuk membangkitkan gambar yang indah dan menawan.
Ciri masalah yang dapat diselesaikan secara rekursif adalah masalah itu dapat direduksi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil. Secara umum metode algoritma rekursi terdiri atas dua komponen utama, yaitu :
Seperti apa contohnya ?
1. Bagian induksi, merupakan satu atau lebih kasus yang menyelesaikan masalah serupa namun dengan ukuran data ataupun metode yang lebih sederhana.
2. Bagian penyetop, merupakan satu atau lebih kasus yang paling sederhana dan solusinya tidak perlu lagi terjadi rekursif.
Disini saya contohkan contoh pada proses Faktorial. Faktorial dari n (ditulis n!), adalah hasil kali dari bilangan tersebut dengan bilangan di bawahnya, di bawahnya hingga bilangan 1. Sebagai contoh, 4! = (4)(3)(2)(1).
Ciri masalah yang dapat diselesaikan secara rekursif adalah masalah itu dapat direduksi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil. Secara umum metode algoritma rekursi terdiri atas dua komponen utama, yaitu :
Seperti apa contohnya ?
1. Bagian induksi, merupakan satu atau lebih kasus yang menyelesaikan masalah serupa namun dengan ukuran data ataupun metode yang lebih sederhana.
2. Bagian penyetop, merupakan satu atau lebih kasus yang paling sederhana dan solusinya tidak perlu lagi terjadi rekursif.
Disini saya contohkan contoh pada proses Faktorial. Faktorial dari n (ditulis n!), adalah hasil kali dari bilangan tersebut dengan bilangan di bawahnya, di bawahnya hingga bilangan 1. Sebagai contoh, 4! = (4)(3)(2)(1).
contoh :
3!=3.(3-1)!
3!=3.2! --> Faktorial n-1
3!=3.2.(2-1)!
3!=3.2.1! --> Faktorial n-2
3!=3.2.1
Program dalam bahasa c++ nya :
1. #Include<iostream.h>
2. #include <conio.h>
3.
4. Int Faktorial (int n)
5. {
6. if((n==0)||(n==1))
7. return(1);
8. else
9. return(n*faktorial(n-1));
10. }
11. Void main()
12. {
13. int x;
14. cout<< "masukkan angka";
15. cin>>n;
16. cout<<"Hasil Faktorial = ";
17. faktorial(x);
18 getch();
19. }
Komentar
Posting Komentar