Buatlah shellscript (pada Linux) yang dapat menampilkan barisan bilangan Fibonacci

Berikut ini adalah pertanyaan dari unknown pada mata pelajaran TI untuk jenjang Sekolah Dasar

Buatlah shellscript (pada Linux) yang dapat menampilkan barisan bilangan Fibonacci hingga suku ke-n.(Nilai n diperoleh dari input/parameter shellscript).

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Shellscript

#!/bin/bash
# fibonacci.sh
if (($# != 1)); then
   echo -e "Penggunaan: fibonacci.sh [N]"
   echo -e "  N    indeks suku terakhir barisan bilangan Fibonacci"
   exit 1
fi
F=(); F+=(0); F+=(1)
for ((i = 2; i < ${1}; i++)); do
   F[i]=$(( F[i-1] + F[i-2] ))
done
echo -e "\nBarisan bilangan FIbonacci (0..$1):"
printf "%s\n, \n" "${F[@]}" \
   | head -n-1 \
   | paste -sd ''
exit 0
_____________

Pembahasan

Barisan bilangan Fibonacci adalah barisan bilangan khusus di mana setiap suku merupakan hasil penjumlahan dari dua suku sebelumnya.

Barisan ini dapat didefinisikan dengan relasi rekurensi, yaitu:

\begin{aligned}F_n=\begin{cases}0,&{\rm untuk\ }n=0\\1,&{\rm untuk\ }n=1\\F_{n-1}+F_{n-2},&{\rm untuk\ }n > 1\end{cases}\end{aligned}

Pada shellscript di atas, saya gunakan struktur data array untuk menyimpan suku-suku dari barisan bilangan FIbonacci, yaitu array \texttt{F}, dengan inisialisasi 0 dan 1 untuk elemen data pertama (indeks=0) dan kedua (indeks=1). Karena dimulai dengan indeks 0, maka dengan masukan \tt n, barisan bilangan Fibonacci yang dihasilkan adalah dari indeks 0 sampai dengan indeks \tt n-1.

Pada awal script, terdapat pemeriksaan apakah terdapat 1 parameter yang diberikan kepada shellscript pada saat menjalankannya.

Contoh Hasil Eksekusi

  • $ ./fibonacci.sh
    Penggunaan: fibonacci.sh [N]
     N    indeks suku terakhir barisan bilangan Fibonacci
  • $ ./fibonacci.sh 5
    Barisan bilangan FIbonacci (0..4):
    0, 1, 1, 2, 3
  • $ ./fibonacci.sh 10
    Barisan bilangan FIbonacci (0..9):
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34
  • $ ./fibonacci.sh 30
    Barisan bilangan FIbonacci (0..29):
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229
  • $ ./fibonacci.sh 50
    Barisan bilangan FIbonacci (0..49):
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049

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: Wed, 09 Nov 22