Algoritma program penghitungan bilangan fibonaci 0,1,1,2,3,5,8,13,21,34,55,89,144

Berikut ini adalah pertanyaan dari langgg0306 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Algoritma program penghitungan bilangan fibonaci 0,1,1,2,3,5,8,13,21,34,55,89,144

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Jawaban dan Penjelasan:

Bilangan/Deret Fibonacci

Bilangan/deret Fibonacci didefinisikan secara rekursif sebagai berikut:

f(n) = f(n-1) + f(n-2)\\f(0) = 0\\f(1) = 1\\

Jadi:

f(2) = f(1) + f(0) = 1 + 0 = 1

f(3) = f(2) + f(1) = 1 + 1 = 2

f(4) = f(3) + f(2) = 2 + 1 = 3

f(5) = f(4) + f(3) = 3 + 2 = 5

dst.

Di bawah ini adalah algoritma Fibonacci secara iteratif (bukan rekursif) yang menampilkan semua bilangan Fibonacci hingga jumlah tertentu sesuai masukan pengguna.

ALGORITMA

Algoritma Secara Deskriptif

1. Meminta masukan jumlah bilangan fibonacci, dan disimpan dalam variabel n, atau deklarasi n dalam program.

2. Menyimpan nilai f(0) (= 0) ke variabel a.

3. Menyimpan nilai f(1) (= 1) ke variabel b.

4. Menampilkan a dan b.

5. Untuk i = 2 hingga n, f(i) diperoleh dengan perulangan:

  • a. Menyimpan nilai variabel b [ = f(i-1) ] dalam variabel c.
  • b. Melakukan penjumlahan b [ = f(i-1) ] dengan a [= f(i-2)], dan menyimpannya dalam variabel b. Saat ini, b adalah f(i).
  • c. Menyimpan variabel c [ = f(i-1) ] dalam variabel a, sehingga a akan menjadi f(i-2) pada iterasi selanjutnya.
  • d. Menampilkan nilai b [ = f(i) ].

Algoritma Dengan Pseudocode

KAMUS

   a, b, c, n, i: integer

ALGORITMA

   read n

   a = 0

   b = 0

   for i = 2 to n do

       c = b

       b = b+a

       a = c

   end for

Contoh Implementasi

(menggunakan C++)

#include <iostream>

using namespace std;

int main() {

   int a, b, c, n;

   cout << "n = ? ";

   cin >> n;

   a = 0;

   b = 1;

   cout << a << ", " << b;

   for (int i=2; i <= n; i++) {

       c = b;

       b += a;

       a = c;

       cout << ", " << b;

   }

}

Hasil eksekusinya (dengan masukan n = 20):

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Tue, 08 Feb 22