Skip to main content

Algoritma Rekursif

Algoritma Rekursif
Kehidupan bersifat Ofensif,mengarah kepengulangan prosedur alam semesta.(Alfred Whitehead – Adventures Of ideas,1933)

Tulisan diatas merupakan kalimat pertama pada ketika aku membuka potongan Algoritma Recursif, Rekursifitas,yaitu salah satu kakas (tool) yang sangat penting dalam pemograman.Disebut sangat penting alasannya ialah rekursif menyediakan teknik penyelesaian duduk masalah yang didalamnya mengandung definisi duduk masalah itu sendiri.

Definisi rekursif
Definisi rekursif diturunkan secara matematik.Definisi yang tidak formal menyatakan bahwa sebuah objek dikatakan rekursif kalau ia didefinisikan menjadi lebih sederhana dalam terminologi dirinya sendiri. Niklaus Wirth mendefiniskan rekursive sebagai berikut:
An object is said recursive if partially consist or is defines in terms of it self

Fungsi Rekursif

Fungsi yang berisi definisi dirinya sendiri
Fungsi yang memanggil dirinya sendiri
Prosesnya terjadi secara berulang-ulang
Yang perlu diperhatikan ialah “stopping role”

Plus – Minus

+Karena aktivitas lebih singkat dan ada beberapa masalah yang lebih gampang memakai fungsi yang rekursif
-Memakan memori yang lebih besar, alasannya ialah setiap kali potongan dirinya dipanggil, diperlukan sejumlah ruang memori tambahan.
-Mengorbankan efisiensi dan kecepatan
-Problem: rekursi seringkali tidak dapat “berhenti” sehingga memori akan terpakai habis dan aktivitas dapat hang.
-Program menjadi sulit dibaca
Saran: kalau memang dapat diselesaikan dengan iteratif, gunakanlah iteratif!

Bentuk Umum Fungsi Rekursif

return_data_type function_name(parameter_list){
        ...
        function_name(...);

        ...
    }

Faktorial Rekursif

Metode Rekursif

Cara lain untuk menuntaskan permasalahan di atas ialah dengan cara rekursi, dimana n! ialah hasil kali dari n dengan (n-1)!.
Untuk menuntaskan (n-1)! ialah sama dengan n!, sehingga (n-1)! ialah n-1 dikalikan dengan (n-2)!, dan (n-2)! ialah n-2 dikalikan dengan (n-3)! dan seterusnya hingga dengan n = 1, kita menghentikan penghitungan n!

Program Rekursif

#include <iostream.h>
#include <conio.h>
    int fact_rec(int n)

    {
    /**********************************************************
    Menghitung sebuah faktorial secara rekursif
    ***********************************************************/
    if (n < 0)
       return 0;
         else if (n == 0)
           return 1;
             else if (n == 1)
              return 1;
    else
       return n * fact_rec(n-1);
    }
    void main()
    {
    int fac;
    cout<<"Masukkan berapa faktorial : ";
    cin>>fac;
    cout<<"Hasil faktorial dari ialah : "<<fact_rec(fac)<<endl;
   getch();














Selamat mencoba dan Semoga bermanfaat

Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar