Fungsi Rekursif – Deret Fibonacci - nblognlife

Fungsi Rekursif – Deret Fibonacci

Contoh Program Fungsi Rekursif – Deret Fibonacci

            Dalam pemrograman terdapat konsep fungsi rekursif, yaitu yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri. Parameter yang dilewatkan berubah sebanyak fungsi itu dipanggil.


Berikut adalah program C++ rekursif deret Fibonacci :
/*
      Fungsi rekursif – Deret Fibonacci
      Visual Studio Express 2012
      N.N. Blog
*/

#include <iostream>
using namespace std;
#include <conio.h>

int fibo(int i)
{
      if(i==0)
            return 0;
      else if(i==1)
            return 1;
      else
            //fungsi rekursif
            return fibo(i-1)+fibo(i-2);
}

int main()
{
      int bil;

      cout<<"\tFungsi Rekursif Bilangan Fibonacci"<<endl;
      cout<<"\t=================================="<<endl;        
      cout<<"\nMasukkan bilangan : ";
      cin>>bil;
      //pemanggilan fungsi
      cout<<"Fibonacci("<<bil<<") = "<<fibo(bil);

      _getche();
      return EXIT_SUCCESS;
}

Penjelasan
int fibo(int i)
{
      if(i==0)
            return 0;
      else if(i==1)
            return 1;
      else
            return fibo(i-1)+fibo(i-2);
}

Seperti pada output apabila dimasukkan angka 4, maka,

Fungsi Rekursif – Deret Fibonacci

Jadi Fibonacci (4) adalah 3

Output
        Fungsi Rekursif Bilangan Fibonacci
        ==================================

Masukkan bilangan : 4
Fibonacci(4) = 3




///////////////////////////////////////////
Jawaban pertanyaan pengunjung Deret Fibonacci 
Berikut fungsi main() yang telah di modifikasi:
int main()
{
      int bil, n, jum_ss = 0;

      cout << "\tFungsi Rekursif Bilangan Fibonacci" << endl;
      cout << "\t==================================" << endl;
      cout << "\nMasukkan jumlah suku    : ";
      cin >> bil;

      //deret fibonacci
      cout << "Deret Fibonacci adalah  : ";
      for (n = 0; n < bil; n++)
      {
            cout << fibo(n) << " ";
      }
      cout << endl;

      cout << "Angka pada index ke - " << n - 1 << " : " << fibo(n - 1) << endl;

      //jumlah seluruh suku
      cout << "Jumlah seluruh suku     : ";
      for (int x = 0; x < bil; x++)
      {
            jum_ss += fibo(x);
      }

      cout << jum_ss; //menampilkan hasil penjumlahan

      _getche();
      return EXIT_SUCCESS;
}

Output
        Fungsi Rekursif Bilangan Fibonacci
        ==================================

Masukkan jumlah suku    : 6
Deret Fibonacci adalah  : 0 1 1 2 3 5
Angka pada index ke - 5 : 5
Jumlah seluruh suku     : 12


Baca juga :  Fungsi Rekursif - Faktorial

[RS]

Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?

Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).

Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.

Terima kasih

7 Responses to "Fungsi Rekursif – Deret Fibonacci"

  1. Gan, kalau untuk menampilkan output seperti ini, apa codingnya ?

    Masukkan banyak suku : 6
    Deret Fibonacci adalah : 0 1 1 2 3 5
    Angka pada Indeks ke-5 : 5
    Jumlah seluruh suku : 12

    ReplyDelete
    Replies
    1. @Rinaldi Pratama Putra
      Hanya perlu melakukan modifikasi pada fungsi main. Jawaban sudah sy tambahkan di postingan ini. Silahkan dibaca kembali. Good luck!

      Delete
    2. wahh, mantap gan, ternyata bisa :D terima kasih banyak, akhirnya tugas selesai hehe. kapan2 boleh nanya lagi gan?

      Delete
    3. @Rinaldi Pratama Putra
      Boleh. Selama masih di batas kemampuan, saya akan menjawabnya. Jika sy belum bisa menjawab, silahkan bertanya pada forum lainnya. :)

      Delete
    4. ok ok, makasih banyak gan.

      Delete
  2. gan, maaf mau nanya lagi. kalau kayag gini, gimana program c++nya?

    Masukkan Jumlah Suku = 6
    Deretnya adalah = 1 2 3 4 5 6
    Jumlah Seluruh Suku = 21

    ReplyDelete
    Replies
    1. @Rinaldi Pratama Putra

      #include
      using namespace std;

      int main()
      {
      int suku, jum = 0;
      cout<<"suku : ";cin>>suku;

      cout<<endl;
      for(int i = 1; i<=suku;i++)
      {
      cout<<i<<" ";
      jum+=i; //jum=jum+i
      }

      cout<<"\n"<<jum<<endl;

      return EXIT_SUCCESS;
      }

      Penjelasan :
      1) DERET adalah nilai "i" yang dicetak setiap perulangan for dijalankan

      2) JUMLAH SUKU didapatkan dengan menggunakan "jum+=i" atau sama saja dengan "jum = jum+i"

      Nilai awal jum = 0, maka...
      (jum = jum + i)

      Pada for 1 :
      jum = 0 + 1; //maka nilai jum sekarang = 1;

      Pada for 2 :
      jum = 1 + 2; //maka nilai jum sekarang = 3
      *perhatikan nilai i menjadi 2 karena sudah diincrement ("i++")

      Pada for 3 :
      jum = 3 + 3, //maka nilai jum sekarang 6

      .
      .
      .

      dst.

      Selamat belajar.

      Delete