Bash Programming: Menu Interaktif dengan Case

Hellooow, jumpa lagi setelah sekian lama gak apdet blog yg ini. Harap maklum yak, soalnya kmren2 sibuk sm si blog yg 1-nya lagi.. Habis diganti skin-nya gitu, terus ditambah2in postingan. Hehehhe..

Pada postingan sebelumnya, saya sudah membahas mengenai penggunaan instruksi percabangan if statements. Ada if then, if then else, if then elif, dan nested if beserta contoh script-nya masing2. Nah, di postingan kali ini, saya akan mencoba membahas tentang penggunaan “Case” dalam Bash programming, untuk pembuatan menu interaktif.

Seperti apakah penggunaan case itu? Yuk mari, sama2 kita simak.. 🙂

Konstruksi case digunakan untuk menyederhanakan pemakaian if statements yang berantai atau kompleks, agar kondisi dapat dikelompokkan secara logis, serta lebih mudah & jelas dalam penulisannya.

Sintaks dari case adalah sbb:

case variable in
   match1)
      instruction 1.1
      instruction 1.2
      ...
      ;;
   match2)
      instruction 2.1
      instruction 2.2
      ...
      ;;
   matchn)
      instruction n.1
      instruction n.2
      ...
      ;;
   *)
      instruction *.1
      instruction *.2
      ...
      ;;
esac
  • variable adalah nilai yang akan dibandingkan dengan match1 sampai matchn.
  • Misalkan jika nilai dari variable sama dengan nilai match1, maka sistem akan mengeksekusi instruction 1.1, instruction 1.2,  dst.
  • Setiap kelompok instuction diakhiri dengan tanda ;;
  • *) berisi instruction yang dijalankan jika dari match1 sampai matchn tidak ada yang bernilai true.
  • Case diakhiri dengan perintah esac.

Bingung? Daripada bingung2 bengong kayak sapi ompong, langsung bikin script-nya aja yuk.. Seperti biasa, buka text editor favorit Anda. Lalu ketikkan baris2 berikut:

#!/bin/bash
# Script sederhana penggunaan case

echo "Tolong, saya amnesia."
echo "1. Siapakah saya?"
echo "2. Di manakah saya?"
echo "3. Tanggal berapakah sekarang?"

read -p "Masukan pilihan (1-3): " pil

case $pil in 
   1)
       echo "Anda adalah `whoami`"
       ;;
2) 
       echo "Anda berada di direktori `pwd`"
       ;;
3)
       echo "Sekarang tanggal `date`"
       ;;
*)
       echo "Angka yang Anda masukkan tidak ada dalam pilihan."
       ;;
esac
  • Pertama kali sistem akan membaca input dari user dan menyimpannya dalam variabel pil. Kemudian variabel pil dibandingkan.
  • Jika isi dari variabel pil adalah 1, maka perintah echo “Anda adalah `whoami`” akan dieksekusi.
  • Jika isi dari variabel pil adalah 2, maka perintah echo “Anda berada di direktori `pwd`” akan dieksekusi.
  • Jika isi dari variabel pil adalah 3, maka perintah echo “Sekarang tanggal `date`” akan dieksekusi.
  • Jika isi dari variabel pil adalah selain 1, 2, dan 3, maka perintah echo “Angka yang Anda masukkan tidak ada dalam pilihan.” akan dieksekusi.

Simpan file tsb dgn nama “case.sh“. Sekarang coba kita jalankan file script tsb ya.. Jangan lupa ganti dulu hak aksesnya agar bisa dieksekusi.

root@ubuntu:/home/ninkyhade# chmod +x case.sh
root@ubuntu:/home/ninkyhade# ls -l case.sh
-rwxr-xr-x 1 root root 428 Nov 16 22:24 case.sh
root@ubuntu:/home/ninkyhade# bash case.sh
Tolong, saya amnesia.
1. Siapakah saya?
2. Di manakah saya?
3. Tanggal berapakah sekarang?
Masukan pilihan (1-3): 1
Anda adalah root
root@ubuntu:/home/ninkyhade# bash case.sh
Tolong, saya amnesia.
1. Siapakah saya?
2. Di manakah saya?
3. Tanggal berapakah sekarang?
Masukan pilihan (1-3): 2
Anda berada di direktori /home/ninkyhade
root@ubuntu:/home/ninkyhade# bash case.sh
Tolong, saya amnesia.
1. Siapakah saya?
2. Di manakah saya?
3. Tanggal berapakah sekarang?
Masukan pilihan (1-3): 3
Sekarang tanggal Thu Nov 16 22:36:37 PST 2017
root@ubuntu:/home/ninkyhade# bash case.sh
Tolong, saya amnesia.
1. Siapakah saya?
2. Di manakah saya?
3. Tanggal berapakah sekarang?
Masukan pilihan (1-3): 4
Angka yang Anda masukkan tidak ada dalam pilihan.

Lihat perbedaannya ketika user menginputkan angka 1, 2, 3, dan 4. Gimana? Udah bisa kan? Insya Allah, si case ini gampang kog dipahaminya..

Sekian dulu ya.. Smoga bermanfaat. Insya Allah disambung lagi di postingan selanjutnya..

SUMBER

  • Modul Praktikum Sistem Operasi – Lab. Sisjarkom Teknik Informatika UII Yogyakarta

2 comments

  1. Pingback: Bash Programming: Menu Interaktif dengan Select - mappesona.me

  2. Pingback: Bash Programming for Beginner - mappesona.me

Leave Comment

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