Belajar Algoritma Struktur Data Recursive Function

Assalamualaiku para bloggers,, sudah sampai waktunya Belajar lagi nech,,,kemarin kita Belajar Algoritma Struktur Data Function dan Struktur Data Stack semoga dapat dimengerti.






sekarang kita belajar Algoritma Struktur Data Recursive Function, dan semoga diterima dan dimengerti..
oklik langsung saje kite mulai karena sudah malam sudah mulai larut...hehe



Fungsi Rekursif

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

Plus – Minus

+Karena program lebih singkat dan ada beberapa kasus yang lebih mudah menggunakan fungsi yang rekursif
-Memakan memori yang lebih besar, karena setiap kali bagian dirinya dipanggil, dibutuhkan sejumlah ruang memori tambahan.
-Mengorbankan efisiensi dan kecepatan
-Problem: rekursi seringkali tidak bisa “berhenti” sehingga memori akan terpakai habis dan program bisa hang.
-Program menjadi sulit dibaca
Saran: jika memang bisa 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 menyelesaikan permasalahan di atas adalah dengan cara rekursi, dimana n! adalah hasil kali dari n dengan (n-1)!.
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!

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 adalah : "<<fact_rec(fac)<<endl;
   getch();

Silahkan untuk modulnya disedoot ,hehe
Sekian untuk pelajaran hari ini semoga bermanfaat..amien..amien..

Post a Comment

Silahkan Berkomentar Dengan Baik dan Sopan
No Spam
No Link

Terima Kasih Telah Berkunjung Ke Blog ini