Pemrograman

Bahasa

Framework

Peralatan

Info

Perbedaan Perulangan While dan Do/While

– 12 September 2015
Sebuah pertanyaan yang mungkin membingunkan, "apa bedanya perulangan while dan do-while?" Keduanya sama-sama perulangan yang tidak tentu (uncounted loop). Namun, juga memiliki perbedaan, baik dari segi penggunaan, penulisan kode, dan langkah kerja.


while, melakukan perulangan kalau kondisi (syarat) terpenuhi. Sedangkan do/while melakukan perulangan dulu, kemudian memeriksa kondisinya atau sayaratnya. Kalau kondisi terpenuhi, maka do/while akan melanjutkan perulangan. Sebaliknya, dia akan berhenti (break).

Contoh kode dalam Java Script:
var bensin = 9; 
// perulangan while-do
while(bensin > 0){
    console.log("Masih ada bensin, nyalakan mesin!");
    bensin--;
}

// perulangan do-while
do{
    console.log("Nyalakan mesin!");
    bensin--;
} while(bensin > 0)
Hasil outputnya:
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Masih ada bensin, nyalakan mesin!
Nyalakan mesin!

Berdasarkan contoh di atas, dapat kita pahami, kalau do/while mencoba menyalakan mesin, padahal bensinnya sudah habis. Sedangkan, while memeriksa keadaan bensin dulu, baru mencoba menyalakan mesin.

Contoh dengan hasil output yang sama dalam bahasa pemrograman python:
bensin = 9

# Perulangan while-do
while(bensin > 0):
    print "Masih ada bensin, nyalakan mesin!"
    bensin = bensin - 1

#perulangan do-while
while(True):
    print "Nyalakan mesin!"
    bensin = bensin - 1
    # periksa bensin
    if(bensin < 0):
        break

Kapankah kita harus menggunakan while dan do/while?

Tergantung dari kasusnya. Bila syarat perulangannya tidak berkaitan dengan hasil hitung pada blok kode yang diulang, maka pakailah while. Tetapi, bila syarat perulangannya berkaitan dengan hasil perhitungan di blok kode yang diulang, maka pakailah do/while.