Tutorial Looping dengan While pada Bash

Selain dengan for, kalian juga dapat membuat perulangan pada Bash dengan menggunakan while untuk menjalankan perintah atau tindakan tertentu secara terus-menerus hingga kondisi yang telah ditentukan terpenuhi.

Panduan ini akan menjelaskan cara menggunakan perulangan dengan while pada bahasa pemrograman Bash.

Perulangan while pada Bash

Untuk membuat while pada bahasa pemrograman Bash dapat didefiniskan seperti pada syntax berikut ini:

while [KONDISI]
do
  [TINDAKAN]
done

Misalnya, program Bash sederhana berikut ini akan mencetak bilangan 0 hingga 5:

i=0

while [ $i -le 5 ]
do
  echo Bilangan: $i
  ((i++))
done

Cara kerja program di atas, yaitu perulangan while akan berjalan jika nilai dari variabel i kurang dari atau sama dengan 5.

Kemudian nilai dari variabel $i akan ditambah dengan 1 setiap kali melakukan perulangan.

Saat nilai variabel menjadi 6 perulangan while akan berhenti karena sudah tidak memenuhi kondisi $i -le 5.

Perulangan tak hingga dengan while

Cara agar membuat while agar melakukan perulangan terus-menerus, maka gunakan syntax berikut ini:

while :
do
  echo "Tekan <CTRL+C> untuk berhenti."
  sleep 1
done

Jika kalian menggunakan perulangan while tak terhingga, ia akan jalan terus-menerus hingga kalian menghentikannya dengan menekan tombol CTRL + C

Statement Continue & Break

Sama dengan perulangan for, kalian juga dapat menggunakan statement continue dan break pada perulangan while.

Penjelasan dari continue & break:

  • continue - melanjutkan ke perulangan selanjutnya dan kode setelah continue yang menjadi bagian dari while tidak akan dieksekusi.
  • break - menghentikan perulangan sepenuhnya.

Agar kalian jadi lebih paham dengan penggunaan continue dan break ini, aku sudah siapkan contoh program sederhana untuk mencetak bilangan ganjil dari 0 hingga 20 dengan menggunakan continue dan break.

i=0

while :
do
  ((i++))

  # jika nilai i == 20, perulangan while berakhir
  if [[ $i -eq 20 ]]; then
    break
  fi

  # jika nilai i habis dibagi 2, perintah echo tidak akan dijalankan
  # kemudian lanjut ke perulangan selanjutnya.
  if [[ $((i % 2)) -eq 0 ]]; then
    continue
  fi

  echo "Bilangan Genap: $i"
done