Pengambilan keputusan adalah konsep dasar dalam pemrograman. Di Bash, kita memakai if, if…else, if…elif…else, dan nested if untuk mengeksekusi perintah hanya ketika kondisi tertentu bernilai benar.
1) Bentuk Dasar if
Struktur paling sederhana mengevaluasi test command (ekspresi/kondisi). Jika hasilnya benar, blok perintah dijalankan; jika salah, blok dilewati.
if TEST-COMMAND
then
# STATEMENTS
fi
Contoh
#!/bin/bash
echo -n "Masukkan angka: "
read VAR
if [[ $VAR -gt 10 ]]
then
echo "Angka lebih besar dari 10."
fi
Jalankan: bash test.sh. Jika Anda memasukkan 15, pesan di atas akan tampil.
2) if…else
Gunakan else untuk menentukan blok alternatif ketika kondisi bernilai salah.
if TEST-COMMAND
then
# STATEMENTS1
else
# STATEMENTS2
fi
Contoh
#!/bin/bash
echo -n "Masukkan angka: "
read VAR
if [[ $VAR -gt 10 ]]
then
echo "Angka lebih besar dari 10."
else
echo "Angka sama dengan atau kurang dari 10."
fi
3) if…elif…else
Tambahkan satu atau lebih elif untuk memeriksa beberapa kondisi secara berurutan. Saat satu kondisi bernilai benar, kondisi berikutnya tidak diperiksa lagi. Bagian else bersifat opsional.
if TEST-COMMAND1
then
# STATEMENTS1
elif TEST-COMMAND2
then
# STATEMENTS2
else
# STATEMENTS3
fi
Contoh
#!/bin/bash
echo -n "Masukkan angka: "
read VAR
if [[ $VAR -gt 10 ]]
then
echo "Lebih besar dari 10."
elif [[ $VAR -eq 10 ]]
then
echo "Sama dengan 10."
else
echo "Kurang dari 10."
fi
4) Nested if (If Bersarang)
Anda dapat menempatkan if di dalam if lain. Contoh di bawah ini meminta tiga angka lalu mencetak angka terbesar.
#!/bin/bash
echo -n "Angka pertama: "
read A
echo -n "Angka kedua: "
read B
echo -n "Angka ketiga: "
read C
if [[ $A -ge $B ]]
then
if [[ $A -ge $C ]]
then
echo "$A adalah yang terbesar."
else
echo "$C adalah yang terbesar."
fi
else
if [[ $B -ge $C ]]
then
echo "$B adalah yang terbesar."
else
echo "$C adalah yang terbesar."
fi
fi
Untuk banyak percabangan, pertimbangkan pakai case agar lebih rapi.
5) Kondisi Ganda (AND/OR)
Gabungkan kondisi dengan operator logika && (AND) atau || (OR).
#!/bin/bash
echo -n "Angka pertama: "
read A
echo -n "Angka kedua: "
read B
echo -n "Angka ketiga: "
read C
if [[ $A -ge $B ]] && [[ $A -ge $C ]]
then
echo "$A adalah yang terbesar."
elif [[ $B -ge $A ]] && [[ $B -ge $C ]]
then
echo "$B adalah yang terbesar."
else
echo "$C adalah yang terbesar."
fi
6) Operator Test yang Sering Dipakai
Di Bash, perintah test tersedia dalam tiga bentuk:
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
Untuk portabilitas (lintas shell POSIX), biasakan memakai bentuk lama [ … ]. Bentuk [[ … ]] menyediakan kemampuan lebih dan tersedia di Bash modern. Gunakan ! untuk negasi, dan kutip string saat perbandingan guna menghindari pemecahan kata/globbing.
String
-n VAR— benar jika panjangVAR> 0.-z VAR— benar jikaVARkosong.STR1 = STR2— benar jika sama.STR1 != STR2— benar jika tidak sama.
Angka
A -eq B— sama dengan.A -gt B— lebih besar dari.A -lt B— lebih kecil dari.A -ge B— lebih besar/sama dengan.A -le B— lebih kecil/sama dengan.
Berkas
-h FILE— ada dan merupakan symlink.-r FILE— ada dan dapat dibaca.-w FILE— ada dan dapat ditulis.-x FILE— ada dan dapat dieksekusi.-d FILE— ada dan merupakan direktori.-e FILE— ada (tipe apa pun).-f FILE— ada dan merupakan berkas biasa.
Kesimpulan
Dengan if, if…else, dan if…







Leave a Comment