Mengenal Bash Scripting (Dasar) – Bagian 3

Mengenal Bash Scripting (Dasar) – Bagian 3

Pada artikel bagian pertama saya telah menjelaskan struktur bash dan bagaimana 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.

 

Di dalam bash scripting untuk mendefinisikan pernyataan bersyarat ada dua 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.

 

Kita akan bahas 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 : "
     read x
     if [ $x -eq 1 ];
     then
          echo "Anda memasukkan angka 1"
     fi
Gambar 1. Contoh if pertama

Gambar 1. Contoh if pertama

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.

Gambar 2. Contoh if kedua

Gambar 2. Contoh if kedua

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.

Gambar 3. Contoh if ketiga

Gambar 3. Contoh if ketiga

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.

Gambar 4. Tabel Operator

Gambar 4. Tabel Operator

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
Gambar 5. Contoh case

Gambar 5. Contoh case

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.

2 Comments

  1. om dicari pakde haha

Leave a Reply

Your email address will not be published. Required fields are marked *