Bash Programming: If Statements

Haaaiiiii.. Kita ketemu lagi di kesempatan kali ini.. Masih lanjutan dari postingan kemaren tentang dasar2 Bash programming, dan sesuai janji saya di postingan tsb kalo di postingan kali ini kita akan bahas mengenai “If Statements“. Sudah siap? Yukkk mareeeee…

If statements adalah suatu pernyataan di mana jika kondisi sesuai yg ditentukan, maka akan dilakukan action2 tertentu. Struktur atau sintaks if statements secara umum dapat dijabarkan sbb:

if [ condition ]; then
   ...
fi

Perhatikan sintaks if statements di atas pada kondisi yg dijabarkan setelah if. Gunakan tanda kurung siku buka [ diikuti spasi, setelahnya jabarkan kondisi (condition) diikuti kembali oleh spasi dan tanda kurung siku tutup ]. If statements ditutup dengan fi.

Lanjut ya.. Dalam postingan kali ini, ada beberapa sub pembahasan mengenai if statements. Sub-sub pembahasan if statements tsb adalah sbb:

  1. If Then
  2. If Then Else
  3. If Then Elif
  4. Nested If

 

1. IF THEN

Sesuai dgn sintaks yg telah dijabarkan di atas. Tanpa berlama2, mari simak contohnya. Seperti biasa, buka text editor favorit, kemudian ketikkan baris2 berikut:

#!/bin/bash
# Script sederhana penggunaan if then

password=mappesona
read -p "Masukkan password Anda: " input

if [ $input = $password ]; then
   echo "Password benar!"
fi
  • Variabel password berisi string mappesona. *narsis bgt yak? πŸ˜›*
  • Terdapat menu interaktif untuk user berupa pertanyaan mengenai password. Inputan password dari user disimpan dalam variabel input.
  • Kondisi if yg dijabarkan dalam script di atas adalah memperbandingkan variabel input yg diisikan oleh user dengan variabel password yg berisi string mappesona.
  • Apabila variabel input sama dengan variabel password, maka di layar akan muncul tulisan Password benar!

Simpan file tsb dgn nama β€œifthen.shβ€œ. Sekarang coba kita jalankan file script tsb ya.. Jangan lupa ganti dulu hak aksesnya agar bisa dieksekusi.

root@ubuntu:/home/ninkyhade# chmod +x ifthen.sh
root@ubuntu:/home/ninkyhade# ls -l ifthen.sh
-rwxr-xr-x 1 root root 182 Nov 5 15:16 ifthen.sh
root@ubuntu:/home/ninkyhade# bash ifthen.sh
Masukkan password Anda: mappesona
Password benar!

Nah, apa yg terjadi kalo input dari user tidak sesuai dengan variabel password yg berisi string mappesona? Mari kita lihat..

root@ubuntu:/home/ninkyhade# bash ifthen.sh
Masukkan password Anda: syalalalala
root@ubuntu:/home/ninkyhade#

Jedeeeeng.. Tak muncul apa-apa lhaaaaa.. πŸ˜€ Malah langsung muncul prompt root@ubuntu:/home/ninkyhade# Kog bisa? Ya iyalah, kan nggak ada instruksi harus ngapain kalo kondisi variabel input tidak sama dengan variabel password. Sampe sini jelas ya?

Terus kalo mau nambahin instruksi biar klo inputannya salah nanti di layar muncul warning, gimana? Gampaaang.. Itu bisa diatur.. Ayok, tulis script lagi pake..

 

2. IF THEN ELSE

#!/bin/bash
# Script sederhana penggunaan if then else

password=mappesona
read -p "Masukkan password Anda: " input

if [ $input = $password ]; then
        echo "Password benar!"
else
        echo "Password salah! Coba lagi yaaa.."
fi
  • Script-nya sama kayak yg ifthen.sh, tapi…
  • Ada tambahan statement else.
  • Else berisi action yg akan dijalankan apabila kondisi tidak sesuai dgn yg dijabarkan pada kondisi if, dalam hal ini jika variabel input tidak sama dengan variabel password.

Simpan file tsb dgn nama β€œifthenelse.shβ€œ. Ganti hak aksesnya dan coba kita jalankan file script tsb..

root@ubuntu:/home/ninkyhade# chmod +x ifthenelse.sh
root@ubuntu:/home/ninkyhade# ls -l ifthenelse.sh
-rwxr-xr-x 1 root root 227 Nov 5 15:33 ifthenelse.sh
root@ubuntu:/home/ninkyhade# bash ifthenelse.sh
Masukkan password Anda: syubidubidu
Password salah! Coba lagi yaaa..

Gimana? Udah dong kan? πŸ˜€ Eiits… Masih ada lagi niiih variasi dari if statements, yaitu..

 

3. IF THEN ELIF

Apa itu if then elif? If then elif digunakan jika ada lebih dari 2 kondisi yg membutuhkan action. Daripada bingung2, yuk kita simak contohnya.. Seperti biasa, kita tulis script lagi pake text editor favorit.. Ketikkan baris2 berikut..

#!/bin/bash
# Script sederhana penggunaan if then elif

read -p "Masukkan bilangan pertama: " A
read -p "Masukkan bilangan kedua: " B

if [ "$A" –gt "$B" ]; then
   echo "Bilangan A lebih besar dari bilangan B"
elif [ "$A" -eq "$B" ]; then
   echo "Bilangan A sama dengan bilangan B"
else
   echo "Bilangan A lebih kecil dari bilangan B"
fi
  • Lho kog pemanggilan variabel di dalem kondisi if pake tanda petik ganda? Iyaaa.. Jadi tadi udah nyoba kalo gak pake tanda petik ganda malah error. Kenapa?
  • Kalo isi variabel berupa angka atau bilangan (integer), maka pemanggilan variabel di dalam kondisi if menggunakan tanda petik ganda.
  • Jadi si Bash ini akan menganggap isi variabel by default adalah string. Dengan kita menggunakan tanda petik ganda, maka isi variabel yg berupa integer dapat diperlakukan sebagaimana mestinya πŸ™‚

NOTE:

Tapi lebih amannya sih, pemanggilan variabel (baik itu string maupun integer) di dalam kondisi if dilakukan dengan menggunakan tanda petik ganda.

Habis ini saya pake tanda petik ganda terus aja ya, untuk manggil variabel di dalam kondisi πŸ˜€

Simpan file tsb dgn nama β€œifthenelif.shβ€œ. Ganti hak aksesnya dan coba kita jalankan file script tsb.

root@ubuntu:/home/ninkyhade# chmod +x ifthenelif.sh
root@ubuntu:/home/ninkyhade# ls -l ifthenelif.sh
-rwxr-xr-x 1 root root 340 Nov 5 16:24 ifthenelif.sh
root@ubuntu:/home/ninkyhade# bash ifthenelif.sh
Masukkan bilangan pertama: 5
Masukkan bilangan kedua: 3
Bilangan A lebih besar dari bilangan B
root@ubuntu:/home/ninkyhade# bash ifthenelif.sh
Masukkan bilangan pertama: 3
Masukkan bilangan kedua: 3
Bilangan A sama dengan bilangan B
root@ubuntu:/home/ninkyhade# bash ifthenelif.sh
Masukkan bilangan pertama: 3
Masukkan bilangan kedua: 5
Bilangan A lebih kecil dari bilangan B
  • Bilangan pertama disimpan sebagai variabel A. Bilangan kedua disimpan sebagai variabel B.
  • Pada percobaan pertama, variabel A = 5, sedangkan variabel B = 3, maka memenuhi kondisi if yg pertama, sehingga muncul pesan Bilangan A lebih besar dari bilangan B.
  • Pada percobaan kedua, variabel A = 3, sedangkan variabel B = 3, maka memenuhi kondisi if yg kedua, sehingga muncul pesan Bilangan A sama dengan bilangan B.
  • Pada percobaan ketiga, variabel A = 3, sedangkan variabel B = 5, maka tidak memenuhi kondisi if baik yg pertama maupun yg kedua, sehingga muncul pesan Bilangan A lebih kecil dari bilangan B.

Gimana? Puyeng ya? Jangan khawatiiiir.. Masih ada lagi kog yg mau dibahas, yaituu…

 

4. NESTED IF

Atau if di dalam if. Kayak apa itu? Ada if di dalam if? Adaaa.. Bisa diatuuur.. πŸ˜€ Langsung aja kita simak contohnya ya.. Ketikkan baris2 berikut menggunakan text editor favorit Anda..

#!/bin/bash
# Script sederhana penggunaan nested if

read -p "Masukkan bilangan pertama: " A
read -p "Masukkan bilangan kedua: " B

if [ "$A" –gt "$B" ]; then
   echo "Bilangan A lebih besar dari bilangan B"
   if [ "$A" = "5" ]; then
      echo "Bilangan A adalah angka 5"
   else
      echo "Bilangan A bukan angka 5"
   fi
elif [ "$A" -eq "$B" ]; then
   echo "Bilangan A sama dengan bilangan B"
else
   echo "Bilangan A lebih kecil dari bilangan B"
fi
  • Baris2 berwarna merah menandakan nested if, yg akan dieksekusi jika variabel A > variabel B.
  • Jika memenuhi kondisi di mana variabel A > variabel B, maka akan muncul pesanΒ Bilangan A lebih besar dari bilangan B. Kemudian kondisinya diperbandingkan kembali.
  • Jika variabel A berisi angka 5, maka akan muncul pesan Bilangan A adalah angka 5.
  • Jika variabel A berisi angka selain 5, maka akan muncul pesan Bilangan A bukan angka 5.

Simpan file tsb dgn nama β€œnestedif.shβ€œ. Ganti hak aksesnya dan coba kita jalankan file script tsb.

root@ubuntu:/home/ninkyhade# chmod +x nestedif.sh
root@ubuntu:/home/ninkyhade# ls -l nestedif.sh
-rwxr-xr-x 1 root root 436 Nov 6 00:26 nestedif.sh
root@ubuntu:/home/ninkyhade# bash nestedif.sh
Masukkan bilangan pertama: 5
Masukkan bilangan kedua: 3
Bilangan A lebih besar dari bilangan B
Bilangan A adalah angka 5
root@ubuntu:/home/ninkyhade# bash nestedif.sh
Masukkan bilangan pertama: 4
Masukkan bilangan kedua: 3
Bilangan A lebih besar dari bilangan B
Bilangan A bukan angka 5

Paham ya…? *kedip2* Smoga apa yg dibahas ini gak bikin Anda2 semua jadiΒ  Hehhehe..

Sekian dulu pembahasan if statements dalam Bash programming.. Insya Allah dilanjut lagi ya di kesempatan mendatang.. Tetap smangat belajar Bash programming-nya πŸ˜€

Smoga bermanfaat.. Sampai jumpa lagi Insya Allah..

SUMBER

 

2 comments

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

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

Leave Comment

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