Mengenal bash secara mendasar sudah dijelaskan pada artikel bagian pertama saya. Bagaimana struktur dan perintah-perintah yang ada terkadang membutuhkan sebuah option atau parameter tertentu. Di artikel bagian kedua sudah saya jelaskan pula bagaimana bash dieksekusi dan bagaimana sebuah variabel pada bash dapat bersifat fleksibel apakah termasuk tipe data yang bersifat bilangan atau karakter. Maka pada artikel ketiga ini kita mulai masuk ke dalam pernyataan bersyarat pada bash scripting.
Bagi kawan-kawan yang sudah pernah belajar bahasa pemrograman atau secara umum algoritma pemrograman tentu pernah mendengar istilah pernyataan bersyarat. Kalau di SMA biasanya masuk ke dalam materi logika matematika dan pernyataan bersyarat ini diwakili dengan sebuah tabel kebenaran seperti konjungsi, disjungsi, implikasi, biimplikasi dan lain-lain. Saya tidak akan terlalu mendetil di teori ini namun sekedar memberikan gambaran dan mengingatkan kembali logika tersebut.
Untuk mengenal bash lebih mendalam maka perlu mengetahui bagaimana pernyataan bersyarat dan perulangan dilakukan. Untuk mendefinisikan pernyataan bersyarat ada dua cara dengan menggunakan if dan case. Kawan-kawan yang terbiasa menggunakan bahasa pemrograman Pascal atau C tentu tidak asing lagi dengan ini. Di dalam beberapa literatur terkadang if dan case ini digabungkan dengan fungsi lain seperti for, select, wait dimana semuanya masuk ke dalam kelompok flow control. Hal itu juga benar namun tidak ada salahnya saya jelaskan bertahap agar logika yang ada tetap bisa runut.
Dalam mengenal bash, kita perlu menjelaskan struktur dari tiap-tiap fungsi pernyataan bersyarat kemudian memberikan satu atau dua buah contoh agar mudah dipahami.
A. Struktur if
Berikut adalah struktur penulisan dari if :
if kondisi
then
pernyataan
[elif kondisi
then pernyataan 2]
[else
pernyataan 3]
fi
Perlu menjadi perhatian untuk kondisi ada sedikit perbedaan ketika kita menyikapi antara tipe data bilangan dengan tipe data string / karakter. Dalam bash, operator yang digunakan untuk komparasi antara tipe data karakter dengan bilangan sedikit berbeda. Akan saya jelaskan lebih lanjut setelah struktur dan sedikit contoh saya berikan.
Struktur if ada sedikit perbedaan dengan bahasa yang lainnya walaupun pada intinya sama. Adanya penambahan fi setelah selesai melakukan deklarasi. Kalau di bahasa pemrograman Pascal biasanya diawali dengan begin dan diakhiri dengan end sedangkan di PHP dan C diawali dan diakhiri dengan kurung kurawal.
Berikut adalah contoh script yang bisa dicoba.
#!/bin/bash echo -n "Masukkan angka : " if [ $x -eq 1 ]; then echo "Anda memasukkan angka 1" fi
Nah tentunya kita ketahui bersama terkadang pernyataan dari hasil sebuah kondisi atau syarat tidak hanya satu. Contoh gambar 1 adalah ilustrasi sebuah kondisi dengan 1 pernyataan. Dimana jika kita eksekusi sebuah bilangan 1 maka akan muncul akibat dari kondisi memasukkan bilangan 1 yakni tulisan “Anda memasukkan angka 1”. Akan tetapi jika kita coba eksekusi kembali dan masukkan bilangan selain 1 kira-kira apa yang akan terjadi ?. Silahkan dicoba.
Jika kita mencoba eksekusi script yang ada diatas dengan membuat kondisi menjadi salah maka respon dari script tidak memunculkan tampilan apa-apa. Kenapa kira-kira ?. Karena kita tidak mendefinisikan pernyataan lainnya yang mendukung selain dari kondisi yang ada. Sekarang kita coba tambahkan pernyataan jika kondisi bukan seperti yang diinginkan atau jika dalam logika matematika bernilai salah.
#!/bin/bash echo -n "Masukkan angka : " read x if [ $x -eq 1]; then echo "Anda memasukkan angka 1" else echo "Anda memasukkan selain angka 1" fi
Sekarang silahkan eksekusi script tersebut dengan memasukkan nilai selain dari bilangan 1. Kemudian hasilnya adalah sebagai berikut.
Sangat mudah bukan ?. Kita mencoba masuk lebih dalam lagi bagaimana jika kita membuat kondisi lebih dari satu.
#!/bin/bash echo -n "Masukkan angka : " read x
if [ $x -eq 1 ]; then echo "Anda memasukkan angka 1" elif [ $x -eq 2 ]; echo "Anda memasukkan angka 2" else echo "Anda tidak memasukkan baik angka 1 ataupun 2" fi
Mari kita lihat hasilnya pada gambar 3 berikut ini.
Ada hal yang perlu menjadi perhatian bagi kita di dalam menuliskan kondisi. Perhatikan spasi antara kurung siku yang ada dengan nilai kondisi karena terkadang ini menjadi salah satu kesalahan kecil yang menyebabkan tidak berhasilnya sebuah kondisi di eksekusi oleh bash. Contoh kesalahan penulisan ialah sebagai berikut
if [ $x -eq 1 ]; # ini adalah contoh penulisan yang benar if [$x -eq 1 ]; # contoh penulisan salah, perhatikan karakter setelah kurung siku tidak adanya spasi if [ $x -eq 1]; # contoh penulisan salah, perhatikan karakter setelah bilangan 1 tidak adanya spasi
Awalnya mungkin sedikit ribet tapi nanti akan terasa mudah jika kita telah terbiasa membuat script dengan bash ini untuk melakukan manajemen server.
Pembahasan untuk struktur if disertai dengan contoh saya pikir sudah cukup. Untuk contoh lain akan saya berikan setelah seluruh pembahasan pernyataan bersyarat selesai.
B. Operator
Setelah mengetahui struktur dan contoh dari if, untuk selanjutnya akan saya jelaskan operator-operator perbandingan pada bash. Seperti yang telah saya terangkan sebelumnya bahwa operator pada bash untuk tipe data karakter berbeda dengan tipe data bilangan di dalam melakukan deklarasi. Akan lebih mudah jika saya jelaskan dalam bentuk tabel sebagai berikut.
C. Struktur case
Berikut adalah struktur penulisan dari case:
case kondisi in
pilihan1)
pernyataan1
;;
pilihan2)
pernyataan2
;;
…
esac
Case pada bash sangat mirip dengan case of pada Pascal dan switch of pada C. Kita langsung coba membuat contoh kodenya sebagai berikut.
#!/bin/bash
echo -n "Masukkan angka : " read x
case $x in 1) echo "Anda memasukkan angka 1" ;; 2) echo "Anda memasukkan angka 2" ;; 3) echo "Anda memasukkan angka 3" ;; *) echo "Anda tidak memasukkan angka 1,2 dan 3" ;; esac
Perhatikan gambar 4 bagaimana eksekusi dilakukan dengan pertama kali memasukkan angka 1 kemudian respon yang dihasilkan apa dan angka 2 dan seterusnya. Terakhir ada sebuah pilihan dalam bentuk ‘*’. Tanda ini menunjukkan jika selain dari pilihan yang tertera diatas maka masuk ke dalam kondisi terakhir ini.
Demikian yang dapat saya jelaskan semoga dapat bermanfaat, insya Alloh artikel selanjutnya akan menjelaskan berkenaan dengan perulangan pada bash.
om dicari pakde haha
ya?