Perulangan dengan WHILE Loop pada Python
Berbeda dengan perulangan for
yang sudah diketahui kapan mulai dan kapan selesainya, pada perulangan while
kita akan menggunakan kondisi boolean sebagai pengendalinya.
Kira-kira apa yang membuat while
loop lebih dari for
loop? kapan harus menggunakan while
loop? dan bagaimana cara membuatnya? Mari kita bahas lebih lanjut.
Ingin tahu konsep
while
loop dijelaskan tanpa harus ngoding? Silahkan lihat penjelasan tentang Konsep Struktur Kontrol pada Pemrograman.
Struktur WHILE Loop pada Python
Pada umumnya struktur while
loop cukup sederhana, bahkan di bahasa pemrograman lain juga. Berikut ini strukturnya pada Python
while <kondisi>:
<perintah>
Dengan:
kondisi
: ekspresi boolean yang akan dievaluasi sebagai pengendali perulanganperintah
: satu atau beberapa perintah yang akan dijalankan
Bagaimana WHILE Loop Bekerja?
JIka pada for
loop jumlah iterasi sudah ditentukan di awal, pada while
loop kita tidak perlu mendeklarasikan jumlah iterasinya, sebagai gantinya kita perlu menggunakan kondisi boolean sebagai pengendali perulangan.
Perulangan while
akan terus berjalan ketika kondisi bernilai True
, dan hanya berhenti ketika kondisi bernilai False
atau ada pemanggilan perintah break
.
Coba jalankan kode Python di bawah ini:
i = 1
while i <= 5:
print(i)
i += 1
Jika dijalankan maka akan keluar bilangan 1 sampai 5. Kira-kira apa yang terjadi pada kode tersebut? mari kita bahas satu per satu.
- Pada awalnya variable
i
bernilai 1. Selanjutnya kita masuk kewhile
statement yang akan mengevaluasi apakah nilaii
saat ini kurang dari sama dengan 5. Karena1 <= 5
maka kondisi bernilaiTrue
sehingga perintah pada baris 3 dan 4 akan dieksekusi. Pada baris ke-3 kita mencetak nilaii
, pada baris ke-4 kita menambahkan nilaii
dengan 1 sehingga sekarang nilaii
adalah 2. - Ketika semua perintah dalam loop telah dijalankan maka alur program akan kembali lagi ke pengecekan kondisi
while
. Sekarang nilaii
adalah 2 sehingga kondisi tetap bernilaiTrue
dan perintah kembali dijalankan. Nilaii
akan dicetak dan ditambah dengan 1 hingga sekarang bernilai 3. - Begitu seterusnya sampai
i
bernilai 6. Ketikai
bernilai 6 maka kondisi akan bernilaiFalse
karena6 <= 5
adalah salah. Ketika itu perintah dalam perulangan tidak akan dieksekusi dan looping dinyatakan selesai.
Sekarang bagaimana jika kodenya diubah menjadi begini:
i = 10
while i <= 5:
print(i)
i += 1
Coba jalankan, pasti tidak akan keluar apa-apa. Ini karena pada pengecekan kondisi while
yang pertama 10 <= 5
bernilai False
sehingga looping dinyatakan selesai bahkan sebelum dimulai.
WHILE Loop dan Infinite Loop
Seperti yang kita tahu bahwa while
loop ini dikendalikan oleh kondisi boolean. Nah, apa jadinya jika kondisinya selalu bernilai True
? Untuk percobaan, kita akan coba modifikasi kode sebelumnya menjadi seperti ini.
i = 1
while i <= 5:
print(i)
Cukup hapus i += 1
lalu jalankan dan lihat apa yang terjadi.
Nanti angka 1 akan tercetak banyak sekali. Keren kan 😎. Sampai kapan akan dicetak?? Selamanya huahaha.
Tenang, untuk menghentikan tinggal pencet ctrl + c
atau sekalian close aja programnya hehe.
Inilah yang disebut dengan infinite loop atau perulangan tanpa batas. Penyebabnya adalah kondisi while
yang selalu bernilai True
yaitu 1 <= 5
.
Infinite loop ini bisa menjadi masalah serius kalau terjadi diluar dugaan. Perulangan terus menerus akan menyebabkan program berhenti mengeksekusi kode yang lainnya karena sibuk mengerjakan perulangan.
Walaupun begitu, ada beberapa kasus yang mengharuskan kita menggunakan infinite loop, contohnya ketika membuat game.
WHILE Loop dan List
Ada hal unik pada Python, yaitu jika kita memasukkan List kosong ([]
) sebagai nilai boolean maka secara otomatis akan dievaluasi menjadi False
. Nah ini bisa kita manfaatkan sebagai kondisi pada while
loop.
Mari kita lihat contoh kode berikut:
buah = ["apel", "pisang", "jeruk", "semangka", "anggur"]
while buah:
print("Aku mau makan", buah.pop())
Jika dijalankan maka outputnya akan seperti ini:
Aku mau makan anggur
Aku mau makan semangka
Aku mau makan jeruk
Aku mau makan pisang
Aku mau makan apel
Mengapa bisa begitu? Ini karena kita memanggil method pop()
pada list buah
untuk setiap iterasinya. Sehingga pada akhirnya list buah
menjadi empty list.
Penutup
Cukup sekian untuk kesempatan kali ini, semoga bermanfaat 😁.
Pada kesempatan selanjutnya kita akan membahas tentang perintah break dan continue pada Python 3.
See ya.. 👋