Buatlah shellscript (pada Linux) yang dapat menampilkan barisan bilangan Fibonacci hingga suku ke-n. (Nilai n diperoleh dari input/parameter 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:
Pada shellscript di atas, saya gunakan struktur data array untuk menyimpan suku-suku dari barisan bilangan FIbonacci, yaitu array , dengan inisialisasi 0 dan 1 untuk elemen data pertama (indeks=0) dan kedua (indeks=1). Karena dimulai dengan indeks 0, maka dengan masukan , barisan bilangan Fibonacci yang dihasilkan adalah dari indeks 0 sampai dengan indeks .
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
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:
Pada shellscript di atas, saya gunakan struktur data array untuk menyimpan suku-suku dari barisan bilangan FIbonacci, yaitu array , dengan inisialisasi 0 dan 1 untuk elemen data pertama (indeks=0) dan kedua (indeks=1). Karena dimulai dengan indeks 0, maka dengan masukan , barisan bilangan Fibonacci yang dihasilkan adalah dari indeks 0 sampai dengan indeks .
Pada awal script, terdapat pemeriksaan apakah terdapat 1 parameter yang diberikan kepada shellscript pada saat menjalankannya.
Contoh Hasil Eksekusi
Penggunaan: fibonacci.sh [N]
N indeks suku terakhir barisan bilangan Fibonacci
Barisan bilangan FIbonacci (0..4):
0, 1, 1, 2, 3
Barisan bilangan FIbonacci (0..9):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34
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
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