Pada tutorial ini, Anda akan belajar bagaimana menggunakan pernyataan do…while JavaScript untuk membuat loop yang menjalankan sebuah blok hingga suatu kondisi menjadi salah.
Pengantar Pernyataan do…while dalam JavaScript
Pernyataan loop do…while menciptakan loop yang menjalankan sebuah blok hingga suatu kondisi dinilai salah. Pernyataan berikut mengilustrasikan sintaks dari loop do…while:
do {
pernyataan;
} while (ekspresi);
Berbeda dengan loop while, loop do-while selalu menjalankan pernyataan setidaknya sekali sebelum mengevaluasi ekspresi.
Karena loop do…while mengevaluasi ekspresi setelah setiap iterasi, seringkali disebut sebagai loop post-test.
Dalam tubuh loop, Anda perlu membuat perubahan pada beberapa variabel untuk memastikan bahwa ekspresi menjadi salah setelah beberapa iterasi. Jika tidak, Anda akan mendapatkan loop tak terbatas.
Perlu dicatat bahwa mulai dari ES6+, titik koma (;) di belakang while(ekspresi) menjadi opsional. Jadi, Anda dapat menggunakan sintaks berikut:
do {
pernyataan;
} while(ekspresi)
Diagram alur berikut mengilustrasikan pernyataan loop do-while:
[image]
Secara praktis, Anda sering menggunakan pernyataan do…while ketika ingin menjalankan tubuh loop setidaknya sekali sebelum memeriksa kondisi.
Contoh-contoh Pernyataan do while dalam JavaScript
Mari kita lihat beberapa contoh penggunaan pernyataan do…while.
1. Contoh sederhana pernyataan do while dalam JavaScript
Contoh berikut menggunakan pernyataan do…while untuk menghasilkan lima angka dari 0 hingga 4 ke konsol:
let hitung = 0;
do {
console.log(hitung);
hitung++;
} while (hitung < 5)
Output:
0
1
2
3
4
Pada contoh ini:
- Pertama, deklarasikan dan inisialisasikan variabel hitung ke nol.
- Kedua, tampilkan nilai hitung dan tingkatkan nilainya satu per satu dalam setiap iterasi hingga nilainya lebih besar atau sama dengan 5.
2. Menggunakan pernyataan do while JavaScript untuk membuat permainan tebak angka sederhana
Contoh berikut menggunakan pernyataan do…while untuk membuat permainan menebak angka.
Script menghasilkan bilangan bulat acak antara 1 dan 10. Dan Anda harus menebak beberapa kali hingga angka Anda cocok dengan angka acak tersebut.
// menghasilkan angka rahasia antara 1 dan 10
const MIN = 1;
const MAX = 10;
let angkaRahasia = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
let tebakan = 0; // untuk menyimpan jumlah tebakan
let petunjuk = ''; // untuk menyimpan petunjuk
let angka = 0;
do {
// dapatkan input dari pengguna
let input = prompt(`Silakan masukkan angka antara ${MIN} dan ${MAX}` + petunjuk);
// dapatkan bilangan bulat
angka = parseInt(input);
// tingkatkan jumlah tebakan
tebakan++;
// periksa angka input dengan angka rahasia dan berikan petunjuk jika diperlukan
if (angka > angkaRahasia) {
petunjuk = ', dan kurang dari ' + angka;
} else if (angka < angkaRahasia) {
petunjuk = ', dan lebih dari ' + angka;
} else if (angka == angkaRahasia) {
alert(`Bravo! Anda benar setelah ${tebakan} tebakan.`);
}
} while (angka != angkaRahasia);
Cara kerjanya:
- Pertama, deklarasikan konstanta MIN dan MAX dan inisialisasikan nilai mereka menjadi 1 dan 10.
- Kedua, gunakan fungsi Math.random() untuk menghasilkan angka floating-point acak dengan nilai di antara 0 dan 1 (inklusif nol tetapi bukan satu).
- Untuk menghasilkan angka acak antara MIN dan MAX (eksklusif), gunakan ekspresi berikut:
Math.random() * (MAX - MIN + 1)
Namun, hasilnya adalah angka floating-point. Oleh karena itu, gunakan fungsi Math.floor() untuk mengonversinya menjadi bilangan bulat:
Math.floor(Math.random() * (MAX - MIN + 1))
Untuk menghasilkan angka acak antara min dan max, gunakan ekspresi berikut:
let angkaRahasia = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
- Ketiga, tentukan tiga variabel untuk menyimpan jumlah tebakan, petunjuk, dan angka input pengguna:
let tebakan = 0; // untuk menyimpan jumlah tebakan
let petunjuk = ''; // untuk menyimpan petunjuk
let angka = 0;
- Keempat, gunakan fungsi input() untuk mendapatkan input dari pengguna:
let input = prompt(`Silakan masukkan angka antara ${MIN} dan ${MAX}` + petunjuk);
Perhatikan bahwa fungsi input() hanya berfungsi pada peramban web. Jika Anda menjalankan kode di lingkungan lain seperti node.js, harap periksa fungsi yang sesuai.
Fungsi input() mengembalikan sebuah string, oleh karena itu, gunakan fungsi parseInt() untuk mengonversinya menjadi bilangan bulat:
angka = parseInt(input);
- Kelima, tingkatkan jumlah tebakan dalam setiap iterasi:
tebakan++;
- Keenam, periksa angka input dengan angka rahasia (angka acak) dan berikan petunjuk. Jika angkanya cocok, tampilkan pesan menggunakan fungsi alert():
if (angka > angkaRahasia) {
petunjuk = ', dan kurang dari ' + angka;
} else if (angka < angkaRahasia) {
petunjuk = ', dan lebih dari ' + angka;
} else if (angka == angkaRahasia) {
alert(`Bravo! Anda benar setelah ${tebakan} tebakan.`);
}
- Ketujuh, lakukan iterasi berikutnya hingga angka cocok dengan angka rahasia:
while (angka != angkaRahasia);
Ringkasan
Gunakan pernyataan do…while untuk membuat loop yang menjalankan blok kode hingga suatu kondisi menjadi salah.