Seperti yang telah disinggung pada pertemuan sebelumnya, terdapat beberapa pendekatan atau metode perulangan pada python, di antaranya:
- Perulangan for
- Perulangan while
- Fungsi rekursif
Setelah membahas perulangan pada python dengan for, sekarang kita insyaallah akan mempelajari perulangan dengan metode while pada python.
Apa Itu Perulangan While Pada Python?
Perulangan while pada python adalah proses pengulangan suatu blok kode program selama sebuah kondisi terpenuhi [1].
Singkatnya, perulangan while adalah perulangan yang bersifat indefinite alias tidak pasti, atau bahkan tidak terbatas [2].
Sebuah blok kode akan dilakukan terus-menerus selama suatu kondisi terpenuhi. Jika suatu kondisi ternyata tidak terpenuhi pada iterasi ke 10, maka perulangan akan berhenti. Jika kondisi yang sama pada saat yang berbeda ternyata berhenti pada iterasi ke 100, maka perulangan akan berhenti pada jumlah tersebut.
Penulisan Sintaks While
Kita bisa menulis sintaks while dengan cara berikut:
while <kondisi>: # blok kode yang akan diulang-ulang
Terdapat 3 komponen utama:
- Yang pertama adalah keyword while (1 + 2 == 3): print('Halo dunia!') 7, ini harus kita isi.
- Yang kedua adalah while (1 + 2 == 3): print('Halo dunia!') 8: ini bisa berupa variabel boolean atau ekspresi logika.
- Dan yang terakhir adalah blok (atau kumpulan baris) kode yang akan diulang-ulang kondisi terpenuhi.
Kita langsung pada contohnya saja.
Perulangan Tanpa Batas
Perulangan while sangat berkaitan dengan variabel boolean, atau logical statement. Karena penentuan kapan suatu blok kode akan diulang-ulang ditinjau dari while (1 + 2 == 3): print('Halo dunia!') 9 or ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 0 dari suatu pernyataan logika.
Sehingga jika suatu kondisi itu selalu benar, maka perulangannya pun akan selalu di eksekusi.
Perhatikan contoh berikut:
while (1 + 2 == 3): print('Halo dunia!')
Jika dieksekusi, sistem akan mencetak tulisan “Halo dunia!” berkali-kali tanpa henti.
... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ...
Kita bisa memaksanya berhenti dengan menekan tombol ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 1 jika menggunakan CLI, atau dengan cara menekan tombol stop jika menggunakan IDE atau sejenisnya.
Kenapa perulangan di atas dieksekusi terus menerus?
Karena kita memerintahkan komputer untuk menulis “Hello World” selama satu ditambah dua sama dengan tiga.
Pertanyaannya: apakah satu ditambah dua sama dengan tiga terus-menerus atau tidak?
Jawabannya iya! Oleh karena itu sistem melakukan iterasi tak terbatas.
Contoh perulangan while seperti for + range
Nah, timbul pertanyaan.
Lalu bagaimana caranya agar kita bisa memberhentikan perulangan while?
Caranya gampang, kita buat kondisinya bersifat dinamis (alias bisa berubah-ubah).
Di dalam contoh berikut, kita akan menampilkan angka 1 sampai dengan angka 5 menggunakan perulangan while.
i = 1 while i <= 5: print(i) i += 1
Kode program di atas akan menghasilkan output seperti berikut:
1 2 3 4 5
Penjelasan
Pada kode program di atas, kita menginstruksikan sistem untuk:
- Melakukan perulangan selama variabel ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 2 kurang dari atau sama dengan ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 3.
- Setiap kali iterasi, sistem akan menampilkan nilai dari ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 2.
- Dan yang terakhir, pada setiap iterasi, sistem akan menambahkan nilai ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 2 dengan angka ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 6.
Kalian bisa memodifikasi kode program di atas misalkan untuk:
- menampilkan bilangan prima dari 1 sampai 100
- menampilkan angka kelipatan 4 dari 1 sampai 100
- menampilkan angka ganjil dari 1 sampai 27
- dan sebagainya
Contoh perulangan while untuk list
Untuk menampilkan semua item pada list, cara yang paling clean adalah dengan menggunakan metode for seperti yang telah kita bahas sebelumnya.
Meskipun begitu, kita tetap bisa menggunakan perulangan while untuk bermain-main dengan list.
Perhatikan contoh berikut:
listKota = [ 'Jakarta', 'Surabaya', 'Depok', 'Bekasi', 'Solo', 'Jogjakarta', 'Semarang', 'Makassar' ] # bermain index i = 0 while i < len(listKota): print(listKota[i]) i += 1
Jika dijalankan, hasilnya akan terlihat seperti ini:
Jakarta Surabaya Depok Bekasi Solo Jogjakarta Semarang Makassar
Kita juga bisa menggunakan fungsi ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 7. Perhatikan kode program berikut:
# bermain pop while listKota: print(listKota.pop(0))
Kode program di atas juga akan menghasilkan output yang sama seperti yang kita lakukan dengan pendekatan indeks.
Contoh perulangan while dengan inputan
Kita juga bisa menggunakan while dengan inputan.
Perhatikan contoh di bawah. Pada contoh ini kita akan meminta user untuk memasukkan angka ganjil lebih dari 50. Jika user justru memasukkan nilai genap atau nilai yang kurang dari 50, maka sistem akan meminta user untuk menginputkan kembali.
a = int(input('Masukkan bilangan ganjil lebih dari 50: ')) while a % 2 != 1 or a <= 50: a = int(input('Salah, masukkan lagi: ')) print('Benar')
Contoh Output:
Masukkan bilangan ganjil lebih dari 50: 1 Salah, masukkan lagi: 2 Salah, masukkan lagi: 3 Salah, masukkan lagi: 10 Salah, masukkan lagi: 50 Salah, masukkan lagi: 52 Salah, masukkan lagi: 54 Salah, masukkan lagi: 55 Benar
Contoh perulangan while dengan continue
Sama dengan perulangan ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 8, kita juga bisa menggunakan perintah ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 9 pada perulangan while (1 + 2 == 3): print('Halo dunia!') 7.
Apa itu perintah ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 9?
Perintah ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 9 berfungsi untuk men-skip iterasi sekarang ke iterasi selanjutnya.
Contoh:
while (1 + 2 == 3): print('Halo dunia!') 0
Output:
while (1 + 2 == 3): print('Halo dunia!') 1
Pada output di atas, ketika ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 2-nya adalah bilangan genap yang lebih dari satu, perintah i = 1 while i <= 5: print(i) i += 1 4 tidak dieksekusi dan justru di-skip.
Contoh perulangan while dengan break
Kita juga bisa menggunakan perintah i = 1 while i <= 5: print(i) i += 1 5 pada perulangan while (1 + 2 == 3): print('Halo dunia!') 7.
Perintah i = 1 while i <= 5: print(i) i += 1 5 itu sebenarnya mirip dengan perintah ... Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! Halo dunia! ... 9.
Bedanya:
Ketika perintah i = 1 while i <= 5: print(i) i += 1 5 dipanggil, maka perulangan akan dihentikan secara paksa.
Perhatikan contoh berikut:
while (1 + 2 == 3): print('Halo dunia!') 2
Contoh output:
while (1 + 2 == 3): print('Halo dunia!') 3
while … else
Sama seperti for, kita juga bisa menggunakan blok kode 1 2 3 4 5 0 pada perulangan while (1 + 2 == 3): print('Halo dunia!') 7.
Tugasnya pun sama: yaitu untuk mendefinisikan suatu tugas yang akan dieksekusi ketika perulangan telah selesai secara natural tanpa dihentikan secara paksa.
Kita coba ubah program pencarian kota di atas dengan menambahkan blok kode 1 2 3 4 5 0 seperti berikut:
while (1 + 2 == 3): print('Halo dunia!') 4
Coba eksekusi lalu masukkan kota yang tidak ada pada variabel 1 2 3 4 5 3.
Berikut ini contoh output yang saya dapatkan:
while (1 + 2 == 3): print('Halo dunia!') 5
Berbeda jika misal kota yang saya cari adalah kotak “Depok”:
while (1 + 2 == 3): print('Halo dunia!') 6
Di sini perintah yang ada di blok kode 1 2 3 4 5 0 tidak dieksekusi oleh sistem. Kenapa? Karena perulangannya diberhentikan secara paksa dengan perintah i = 1 while i <= 5: print(i) i += 1 5, bukan karena berhenti secara natural.
Kapan harus menggunakan for, dan kapan harus menggunakan while?
Sekarang, mungkin masih ada satu pertanyaan lagi yang belum terjawab, yaitu:
Kapan kita seharusnya menggunakan for? Dan kapan seharusnya menggunakan while?
Sebenarnya tidak ada acuan yang sangat baku, karena banyak sekali kasus-kasus yang bisa diselesaikan dengan menggunakan keduanya.
Tapi, kalau memang ingin sebuah jawaban:
- Kalian bisa menggunakan for untuk kasus-kasus yang berkaitan dengan data sequence pada python, atau untuk kasus yang sudah jelas jumlah perulangannya berapa.
- Dan kalian bisa menggunakan while jika memang perulangannya tidak jelas akan dilakukan berapa banyak.
Kode program lengkap
Seperti biasa, di akhir tutorial ini akan ada link kode program lengkapnya.
Jika memang kalian mendapati error, problem, atau bingung pada step tertentus, bisa langsung melihat kode program lengkapnya pada repository github python-dasar.
Jangan lupa kasih star ya!⭐🌟
Pertemuan Selanjutnya
Insyaallah pada pertemuan berikutnya kita akan membahas tentang perulangan bertingkat atau perulangan bersarang pada python.