Unix / Linux - Shell Loop Control
Hai, para pemrogram yang sedang berkembang! Hari ini, kita akan mendalamkan dunia yang menarik dari kontrol loop dalam skrip shell Unix dan Linux. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk menghidahkan Anda dalam perjalanan ini, langkah demi langkah. Jangan khawatir jika Anda baru dalam programming - kita akan mulai dari dasar dan naik tingkat perlahan-lahan. Jadi, ambil secangkir kopi (atau teh, jika itu yang Anda suka), dan mari kita mulai loop!
Mengenal Loop
Sebelum kita melompat ke kontrol loop, mari kita ingat kembali apa itu loop. Bayangkan Anda diberi tugas menulis "Saya cinta programming" di papan tulis 100 kali. Daripada menulis itu secara manual 100 kali, Anda bisa menggunakan loop untuk mengotomatisasi tugas repetitif ini. Itu tepat apa yang loop lakukan dalam programming - mereka memungkinkan kita untuk menjalankan satu set perintah berkali-kali tanpa perlu menulisnya lagi dan lagi.
Loop Tak Terbatas
Sekarang, mari bicarakan sesuatu yang menarik dan mungkin berbahaya: loop tak terbatas. Itu seperti kereta gila yang tak pernah berhenti - itu terus berjalan dan berjalan.
Apa Itu Loop Tak Terbatas?
Loop tak terbatas adalah loop yang terus berjalan karena kondisi penghentinya tak pernah terpenuhi. Meskipun ini mungkin terdengar seperti resep untuk bencana, ada sebenarnya beberapa kasus di mana loop tak terbatas berguna (kita akan menyentuh itu nanti).
Contoh Loop Tak Terbatas
Berikut adalah contoh sederhana loop tak terbatas dalam skrip shell:
#!/bin/bash
while true
do
echo "Ini adalah loop tak terbatas!"
sleep 1
done
Dalam skrip ini:
-
while true
membuat kondisi yang selalu benar, sehingga loop tak pernah berhenti. -
echo
mencetak pesan kita. -
sleep 1
menghentikan skrip selama 1 detik sebelum iterasi berikutnya.
Jika Anda menjalankan skrip ini, Anda akan melihat "Ini adalah loop tak terbatas!" dicetak setiap detik sampai Anda manually menghentikan skrip ( biasanya dengan menekan Ctrl+C).
Kapan Kita Mungkin Menggunakan Loop Tak Terbatas?
Itu sungguh, loop tak terbatas tidak selalu buruk! Mereka bisa berguna dalam kasus seperti:
- Membuat program yang perlu berjalan secara kontinyu (seperti server).
- Implementasi sistem menu di mana pengguna dapat memilih opsi secara berulang.
- Memantau sistem untuk peristiwa atau kondisi tertentu.
Hanya ingat, dengan kekuatan yang besar datang tanggung jawab yang besar. Pastikan Anda memiliki cara untuk keluar dari loop tak terbatas Anda saat diperlukan!
Statement break
Sekarang kita telah melihat bagaimana loop bisa berjalan selamanya, mari belajar bagaimana menghentikannya saat kita ingin. Masuk break
- exit darurat Anda dari loop apa pun.
Apa Yang break Lakukan?
Statement break
melakukan seperti namanya - itu "menghentikan" loop saat ini, tanpa peduli apakah kondisi loop masih benar.
Contoh Penggunaan break
Mari kita ubah loop tak terbatas sebelumnya menjadi berhenti setelah 5 iterasi:
#!/bin/bash
count=0
while true
do
echo "Iterasi loop: $count"
count=$((count + 1))
if [ $count -eq 5 ]
then
echo "Menghentikan loop!"
break
fi
sleep 1
done
echo "Loop telah berakhir."
Dalam skrip ini:
- Kita inisialisasi variabel
count
untuk melacak iterasi. - Setiap iterasi, kita mengincrement
count
dan memeriksa apakah itu sama dengan 5. - Jika
count
adalah 5, kita mencetak pesan dan menggunakanbreak
untuk keluar loop.
Ketika Anda menjalankan skrip ini, Anda akan melihatnya menghitung hingga 5 dan kemudian berhenti.
Statement continue
Sementara break
memungkinkan kita keluar dari loop sepenuhnya, kadang-kadang kita hanya ingin melewati sisanya dari iterasi saat ini dan melompat ke iterasi berikutnya. Itu saat continue
berguna.
Apa Yang continue Lakukan?
Statement continue
melewati sisanya dari iterasi loop saat ini dan melompat ke iterasi berikutnya.
Contoh Penggunaan continue
Mari kita buat skrip yang mencetak angka dari 1 hingga 10, tetapi melewati angka genap:
#!/bin/bash
for i in {1..10}
do
if [ $((i % 2)) -eq 0 ]
then
continue
fi
echo $i
done
Dalam skrip ini:
- Kita menggunakan loop
for
untuk mengulang dari 1 hingga 10. -
if [ $((i % 2)) -eq 0 ]
memeriksa apakah angka itu genap (dibagi 2 dengan remainder nol). - Jika angka itu genap,
continue
melompat ke iterasi berikutnya. - Jika tidak, kita mencetak angka.
Ketika Anda menjalankan skrip ini, Anda hanya akan melihat angka ganjil dicetak: 1, 3, 5, 7, 9.
Menggabungkan Semua
Sekarang kita telah belajar tentang loop tak terbatas, break
, dan continue
, mari kita buat contoh yang lebih kompleks yang menggunakan semua konsep ini:
#!/bin/bash
echo "Selamat datang ke Game Tebak Angka!"
secret_number=$((RANDOM % 10 + 1))
attempts=0
while true
do
read -p "Tebak angka antara 1 dan 10 (atau 'q' untuk keluar): " guess
if [ "$guess" = "q" ]
then
echo "Terima kasih telah bermain! Angka rahasia adalah $secret_number."
break
fi
if ! [[ "$guess" =~ ^[0-9]+$ ]]
then
echo "Silakan masukkan angka valid atau 'q' untuk keluar."
continue
fi
attempts=$((attempts + 1))
if [ "$guess" -eq "$secret_number" ]
then
echo "Selamat! Anda menebak angka dalam $attempts percobaan!"
break
elif [ "$guess" -lt "$secret_number" ]
then
echo "Terlalu rendah! Cobalah lagi."
else
echo "Terlalu tinggi! Cobalah lagi."
fi
done
Skrip ini membuat permainan tebak angka sederhana yang menunjukkan:
- Loop tak terbatas untuk menjalankan permainan.
- Menggunakan
break
untuk keluar saat pemain menebak benar atau memilih keluar. - Menggunakan
continue
untuk melewati input yang invalid.
Ringkasan Statement Kontrol Loop
Berikut adalah tabel rujukan cepat dari statement kontrol loop yang kita pelajari:
Statement | Deskripsi | Kasus Penggunaan |
---|---|---|
while true |
Membuat loop tak terbatas | Ketika Anda memerlukan loop untuk berjalan secara kontinyu sampai kondisi tertentu terpenuhi |
break |
Keluar dari loop saat ini | Ketika Anda ingin menghentikan loop berdasarkan kondisi tertentu |
continue |
Melompat ke iterasi berikutnya | Ketika Anda ingin melewati sisanya dari iterasi saat ini berdasarkan kondisi |
Ingat, loop adalah alat yang kuat dalam programming, tetapi dengan kekuatan yang besar datang tanggung jawab yang besar. Pastikan Anda memiliki cara untuk keluar dari loop Anda saat diperlukan, dan gunakan break
dan continue
bijaksana untuk membuat skrip yang efisien dan efektif.
Selamat coding, para ahli skrip shell masa depan! Semoga loop Anda tak terbatas hanya saat Anda memerlukannya, dan semoga statement break
Anda selalu ada saat Anda butuhnya. Sampaijumpa lagi, terus loop dan belajar!
Credits: Image by storyset