komparasi string pada logika kondisional

Komparasi string atau apa istilah yang tepat. Tapi yang saya maksud adalah mengecek sebuah string atau membandingkan sebuah string dengan string lainnya. Ada beberapa opsi dalam komparasi string seperti pada tabel berikut:

Opsi Keterangan
-z string mengecek apakah suatu string bernilai kosong (panjang karakter = 0/zero)
-n string mengecek apakah suatu string tidak sosong (panjang karakter bukan 0/nonzero)
string1 = string2 mengecek apakah string1 sama dengan string2
string1 != string2 mengecek apakah string1 tidak sama dengn string2

contoh1:
# paStringKosong.sh
# mengecek jika string bernilai kosong
echo -n "Masukkan kata apa ajah : "
read kalimat
if [ -z $kalimat ]; then
echo "Anda tidak memasukan kalimat apapun. Anda pemalas!!"
else
echo "Yang Anda masukkan adalah $kalimat. \nAnda penurut !!"
fi

hasil:
e12@e12-laptop:~/Documents/MySO$ sh paStringKosong.sh
Masukkan kata apa ajah :
Anda tidak memasukan kalimat apapun. Anda pemalas!!
e12@e12-laptop:~/Documents/MySO$ sh paStringKosong.sh
Masukkan kata apa ajah : Laper
Yang Anda masukkan adalah Laper.
Anda penurut !!

contoh2:

# buatDirektori.sh
# mengecek apakah string tidak kosong
echo -n "Masukkan nama direktori yang akan dibuat : "
read mydir
if [ -n $mydir ]; then
mkdir $mydir
echo "Direktory $mydir udah dibuat"
else
echo "Nama Direktory gak boleh kosong !!"
fi

Jika kita jalankan file di atas akan muncul error seperti ini:
e12@e12-laptop:~/Documents/MySO$ sh buatDirektori.sh
Masukkan nama direktori yang akan dibuat :
mkdir: missing operand

Maka dalam hal ini kita perlu mengapit dengan tanda petik ganda pada baris berikut:

if [ -n "$mydir" ]; then

Ini dikarenakan variabel $mydir masih belum diset(unset). Logikanya adalah seperti ini:

tanpa diapit tanda petik ganda :
[ -n ] –> ini akan muncul error karena tidak ada string yang akan dites

menggunakan tanda petik ganda:
[ -n “” ] –> tidak muncul eror karena string bernilai 0. hanya akan mengembalikan nilai false

contoh3:

# testString.sh
# membandingkan apakah sebuah string sama dengan string lainnya

mypass="passwordku"
echo -n "Masukkan password : "
read urpass
if [ $mypass = "$urpass" ]; then
echo "Anda hebat se-kali. Nanti kutraktir."
else
echo "Anda salah se-ember. Nanti traktir aku ya!"
fi

hasilnya:
e12@e12-laptop:~/Documents/MySO$ sh paStringSama.sh
Masukkan password : gaktahu
Anda salah se-ember. Nanti traktir aku ya!
e12@e12-laptop:~/Documents/MySO$ sh paStringSama.sh
Masukkan password : passwordku
Anda hebat se-kali. Nanti kutraktir.

contoh4:

# membandingkan satu buah string dengan string lainnya
jawaban="apple"
echo "1. apple"
echo "2. anggur"
echo "3. markisa"
echo -n "Dari daftar di atas, manakah nama buah yang dijadikan merek komputer ? "
read jawab
if [ $jawab != "$jawaban" ];then
echo "Silahkan tanya ke tukang penjual Buah-buahan..!"
else
echo "Ya Anda benar sekali..."
fi

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: