Apakah perbedaan perulangan while dengan do/while?

Keduanya sama-sama perulangan yang tidak tentu (uncounted loop). Akan tetapi memiliki beberapa perbedaan, baik dari segi penggunaan, penulisan kode, dan langkah kerja.

Perbedaan Perulangan While dan Do/While

Perulangan While vs Do/While

Perulangan while akan 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 Javascript:

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, kita dapat pahami:

Perulangan do/while mencoba menyalakan mesin. Sedangkan bensinnya sudah dihabiskan oleh while.

Karena itu, perulangan do/while hanya mengulang satu kali. Kalau bensin ada (bensin > 0), maka do/while akan melanjutkan perulangan.

Contoh dengan 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 Waktu yang Tepat 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.