Langsung ke konten

Perulangan while di Python: Mengulang Selama Kondisi Terpenuhi

Perulangan while menjalankan blok kode selama kondisinya benar. Artikel ini membahas cara menulis while, kondisi berhenti, dan menghindari infinite loop.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas percabangan if, elif, dan else. Sekarang kita jalankan kode yang sama berkali-kali.

Menulis baris print() sepuluh kali memang bisa, tapi melelahkan dan sulit diubah. Perulangan membuat komputer mengerjakan pengulangan itu untuk kita.

Apa itu Perulangan?

Perulangan atau loop adalah cara menjalankan blok kode berkali-kali tanpa menulisnya ulang. Python punya dua jenis perulangan: while dan for. Artikel ini fokus pada while.

Struktur while

while menjalankan blok kode selama kondisinya bernilai True:

hitungan = 1

while hitungan <= 5:
    print(hitungan)
    hitungan += 1

Output:

1
2
3
4
5

Alurnya seperti ini:

  1. Python mengecek kondisi hitungan <= 5.
  2. Kalau True, blok di dalamnya dijalankan.
  3. Setelah blok selesai, kondisi dicek lagi.
  4. Begitu kondisinya False, perulangan berhenti.

Karena itu isi blok harus mengubah sesuatu yang memengaruhi kondisi. Di contoh di atas, hitungan += 1 membuat nilainya naik sampai akhirnya lebih dari 5.

Kondisi Berhenti

Setiap while butuh cara agar kondisinya berakhir. Tanpa itu, perulangan tidak akan pernah selesai.

Perhatikan perbedaan berikut:

# Benar: hitungan bertambah sampai kondisi False
hitungan = 1
while hitungan <= 5:
    print(hitungan)
    hitungan += 1
# Salah: hitungan tidak pernah berubah
hitungan = 1
while hitungan <= 5:
    print(hitungan)   # berjalan selamanya

Di contoh kedua, hitungan selalu bernilai 1 sehingga hitungan <= 5 selalu True. Inilah yang disebut infinite loop.

Infinite Loop dan Cara Menghindarinya

Infinite loop adalah perulangan yang tidak pernah berhenti. Program tampak menggantung, dan di terminal biasanya dihentikan dengan Ctrl + C.

Penyebab umum infinite loop:

  • Nilai yang dicek tidak pernah berubah.
  • Perubahan ditulis di luar blok while.
  • Kondisi salah tulis, misalnya <= menjadi >=.
hitungan = 1

while hitungan <= 5:
    print(hitungan)

hitungan += 1   # salah: berada di luar blok while

Baris hitungan += 1 tidak menjorok, jadi bukan bagian dari blok. Akibatnya hitungan tetap 1 dan loop berjalan terus.

Infinite loop tidak selalu salah. Pada program yang menunggu perintah pengguna, loop memang dirancang berjalan sampai ada perintah keluar. Yang penting, ada jalan keluar yang jelas.

while dengan Input Pengguna

Pola yang sering dipakai adalah mengulang sampai pengguna memberi jawaban tertentu:

perintah = ""

while perintah != "keluar":
    perintah = input("Ketik perintah (keluar untuk berhenti): ")
    print(f"Kamu menulis: {perintah}")

print("Program berhenti")

Selama pengguna tidak mengetik keluar, perulangan terus berjalan. Perhatikan bahwa perintah diisi ulang di dalam loop, jadi kondisinya bisa berubah.

Contoh Program: Tebak Angka

Mari buat permainan tebak angka sederhana yang mengulang sampai tebakan benar:

# tebak_angka.py

import random

rahasia = random.randint(1, 10)
tebakan = 0
percobaan = 0

while tebakan != rahasia:
    tebakan = int(input("Tebak angka 1-10: "))
    percobaan += 1

    if tebakan < rahasia:
        print("Terlalu kecil")
    elif tebakan > rahasia:
        print("Terlalu besar")

print(f"Benar! Kamu menebak dalam {percobaan} percobaan")

Program ini menggabungkan while dengan percabangan. Loop berhenti saat tebakan sama dengan rahasia. Modul random akan dibahas di artikel tentang standard library.

Kesalahan Umum Pemula

  • Lupa mengubah variabel kondisi — penyebab utama infinite loop.
  • Menaruh perubahan di luar blok — perhatikan indentasi.
  • Lupa titik dua : setelah kondisi.
  • Salah operatorwhile x = 5 tidak valid, gunakan == atau !=.
  • Menghentikan paksa — saat loop menggantung, tekan Ctrl + C di terminal.

Ringkasan

  • while menjalankan blok selama kondisinya True
  • Kondisi dicek ulang setiap kali blok selesai
  • Isi blok harus mengubah nilai yang dipakai di kondisi agar loop berakhir
  • Infinite loop terjadi saat kondisi tidak pernah berubah
  • while cocok saat jumlah pengulangan belum diketahui sejak awal

Langkah Selanjutnya

while cocok kalau kamu belum tahu berapa kali harus mengulang. Tapi kalau jumlahnya sudah pasti, misalnya mengulang 10 kali atau menelusuri setiap item, ada cara yang lebih ringkas.

Artikel selanjutnya membahas Perulangan for di Python, cara menelusuri urutan nilai satu per satu.