Pemrosesan pengulangan dalam JavaScript
Dalam artikel ini, kami akan menjelaskan pemrosesan pengulangan dalam JavaScript.
YouTube Video
Pernyataan for
dalam JavaScript
Sintaks Dasar
1for (initialization; condition; update) {
2 // Code to repeat
3}
Pernyataan for
dalam JavaScript adalah sintaks untuk melakukan iterasi. Pernyataan ini secara berulang mengeksekusi blok kode yang ditentukan selama kondisi tertentu terpenuhi. Dengan menggunakan pernyataan for
, proses yang sama dapat dieksekusi dengan efisien beberapa kali.
- Inisialisasi (
initialization
): Bagian yang dieksekusi hanya sekali sebelum memulai perulangan. Menginisialisasi variabel seperti penghitung perulangan. - Kondisi (
condition
): Kondisi yang menentukan apakah perulangan akan dilanjutkan. Jikatrue
, perulangan berlanjut; jikafalse
, perulangan berakhir. - Pembaruan (
update
): Dieksekusi pada akhir setiap perulangan untuk memperbarui penghitung perulangan.
Contoh
1for (let i = 0; i < 5; i++) {
2 console.log(i);
3}
Dalam kasus ini, i
dimulai dari 0
, dan perulangan berjalan selama i < 5
adalah true
. i++
meningkatkan nilai i
sebesar 1 pada setiap iterasi dalam loop. Sebagai hasilnya, angka dari 0
hingga 4
ditampilkan.
Lingkup Penghitung Perulangan
Deklarasikan atau inisialisasi variabel pada bagian inisialisasi dalam pernyataan for
. Variabel yang dideklarasikan di sini hanya berlaku di dalam perulangan.
1for (let i = 0; i < 3; i++) {
2 console.log(i); // Outputs 0, 1, 2
3}
4console.log(i); // ReferenceError
- Seperti yang ditunjukkan dalam contoh ini, merujuk ke variabel di luar pernyataan
for
akan menghasilkan kesalahan.
Perulangan Tak Terbatas
Menetapkan sebuah kondisi yang tidak mengakhiri perulangan akan menghasilkan perulangan tak terbatas. Hal ini dapat membebani browser atau sistem, jadi diperlukan kehati-hatian.
1for (;;) {
2 console.log("Infinite loop");
3 break; // Exits the infinite loop with break
4}
Array dan Pernyataan for
Merupakan hal yang umum menggunakan pernyataan for
bersama dengan array. Ini praktis untuk memproses setiap elemen dari array.
Contoh
1let fruits = ["apple", "banana", "cherry"];
2
3for (let i = 0; i < fruits.length; i++) {
4 console.log(fruits[i]);
5}
6// Outputs "apple", "banana", "cherry"
Dengan cara ini, Anda dapat memproses setiap elemen array menggunakan indeks.
Konstruksi Loop Lainnya
Pernyataan for...of
Pernyataan for...of
digunakan untuk objek yang dapat diiterasi seperti array dan string.
1let fruits = ["apple", "banana", "cherry"];
2
3for (let fruit of fruits) {
4 console.log(fruit);
5}
6// Outputs "apple", "banana", "cherry"
Ini memungkinkan Anda memproses setiap elemen tanpa menggunakan indeks.
Pernyataan for...in
Pernyataan for...in
digunakan untuk mengiterasi properti dari sebuah objek.
1let person = { name: "John", age: 30, city: "Tokyo" };
2
3for (let key in person) {
4 console.log(key + ": " + person[key]);
5}
6// Outputs "name: John", "age: 30", "city: Tokyo"
Dengan cara ini, Anda dapat melakukan operasi pada setiap elemen menggunakan kunci.
Ringkasan
- Pernyataan
for
adalah konstruksi loop dengan tiga bagian: inisialisasi, kondisi, dan pembaruan. - Anda dapat mengontrol perilaku loop menggunakan
break
ataucontinue
. - Ketika digabungkan dengan array atau objek, elemen atau properti dapat diproses secara efisien.
Pernyataan while
dalam JavaScript
Sintaks Dasar
1while (condition) {
2 // Code that repeats while the condition is true
3}
Pernyataan while
dalam JavaScript adalah struktur loop yang menjalankan operasi berulang selama kondisi yang ditentukan adalah true
. Mirip dengan pernyataan for
, pernyataan while
hanya menentukan kondisi.
- Kondisi: Tulis ekspresi kondisi yang menentukan apakah akan melanjutkan loop. Loop berlanjut saat
true
dan berakhir ketika menjadifalse
.
Contoh
1let i = 0;
2
3while (i < 5) {
4 console.log(i);
5 i++;
6}
7console.log(i); // 5
Dalam contoh ini, loop dimulai dengan variabel i
pada 0
dan dieksekusi selama i < 5
adalah true
. Pada setiap iterasi loop, i
ditambah 1, dan ketika i
menjadi 5
, kondisi berubah menjadi false
dan loop berakhir. Sebagai hasilnya, pernyataan while
menampilkan dari 0
hingga 4
.
Berbeda dengan pernyataan for
, pada pernyataan while
, inisialisasi dan pembaruan variabel ditulis sebagai pernyataan terpisah. Anda juga dapat merujuk ke variabel setelah pernyataan while
. Dalam kasus ini, 5
ditampilkan setelah pernyataan while
selesai.
Perulangan Tak Terbatas
Jika kondisinya selalu true
, loop tak berujung terjadi dan tidak berakhir. Loop tak berujung harus dihindari, tetapi jika digunakan dengan sengaja, Anda dapat menghentikan loop dengan pernyataan break
.
Contoh
1while (true) {
2 console.log("Infinite loop");
3 break; // Ends the loop with `break`
4}
Memproses Array dengan Loop while
Anda juga dapat memproses array dengan pernyataan while
.
Contoh
1let fruits = ["apple", "banana", "cherry"];
2let i = 0;
3
4while (i < fruits.length) {
5 console.log(fruits[i]);
6 i++;
7}
8// Outputs "apple", "banana", "cherry"
Pernyataan do...while
Sintaks Dasar
1do {
2 // Code that is executed at least once
3} while (condition);
Pernyataan do...while
, varian dari pernyataan while
, memeriksa kondisi setelah menjalankan loop setidaknya sekali. Sementara pernyataan while
memeriksa kondisi terlebih dahulu, pernyataan do...while
menjalankan proses sekali sebelum memverifikasi kondisi.
Contoh
1let i = 0;
2
3do {
4 console.log(i);
5 i++;
6} while (i < 5);
Dalam contoh ini, i
ditampilkan dari 0
hingga 4
. Pernyataan do...while
berbeda dari pernyataan while
karena selalu dieksekusi sekali, bahkan jika kondisinya false
.
Ringkasan
- Pernyataan
while
digunakan untuk menjalankan kode secara berulang selama kondisinyatrue
. - Berhati-hatilah terhadap loop tak berujung, tetapi Anda dapat mengontrol alur loop menggunakan
break
dancontinue
. - Pernyataan
do...while
berguna ketika Anda ingin menjalankan loop setidaknya sekali.
break
dan continue
Anda dapat menggunakan break
dan continue
di dalam loop.
break
digunakan untuk mengakhiri loop lebih awal.continue
melewati iterasi saat ini dan melanjutkan ke iterasi berikutnya.
Contoh break
1for (let i = 0; i < 10; i++) {
2 if (i === 5) {
3 break; // Exits the loop when i is 5
4 }
5 console.log(i);
6}
7// Outputs 0, 1, 2, 3, 4
8
9let i = 0;
10
11while (i < 10) {
12 if (i === 5) {
13 break; // Ends the loop when i is 5
14 }
15 console.log(i++);
16}
17// Outputs 0, 1, 2, 3, 4
Dalam kasus ini, break
dieksekusi ketika i
menjadi 5. Sebagai hasilnya, angka dari 0
hingga 4
ditampilkan.
Contoh continue
1for (let i = 0; i < 5; i++) {
2 if (i === 2) {
3 continue; // Skips when i is 2
4 }
5 console.log(i);
6}
7// Outputs 0, 1, 3, 4
8
9let i = 0;
10while (i < 5) {
11 i++;
12 if (i === 3) {
13 continue; // Skips when i is 3
14 }
15 console.log(i);
16}
17// Outputs 1, 2, 4, 5
Dalam kasus ini, continue
dieksekusi ketika i
bernilai 2
. Akibatnya, angka selain 2
ditampilkan.
Loop Bersarang dalam JavaScript
Dalam pemrograman JavaScript, loop bersarang adalah struktur di mana satu loop berada di dalam loop lainnya. Loop semacam itu sangat efektif ketika algoritma atau proses tertentu melibatkan beberapa dimensi atau lapisan. Misalnya, memproses array multidimensi dengan array di dalam array adalah kasus yang umum.
Di sini, kami akan menjelaskan struktur dasar loop bersarang, contoh penggunaan, kehati-hatian, dan pertimbangan optimasi.
Struktur Dasar Loop Bersarang
Struktur dasar dari loop bersarang adalah bentuk di mana satu atau lebih loop berada di dalam loop lainnya. Setiap kali loop luar dieksekusi sekali, loop dalam akan dieksekusi sebanyak itu.
Berikut adalah contoh dasar dua loop bersarang.
1for (let i = 0; i < 3; i++) {
2 console.log(`Outer loop iteration: ${i}`);
3
4 for (let j = 0; j < 2; j++) {
5 console.log(` Inner loop iteration: ${j}`);
6 }
7}
8// Output:
9// Outer loop iteration: 0
10// Inner loop iteration: 0
11// Inner loop iteration: 1
12// Outer loop iteration: 1
13// Inner loop iteration: 0
14// Inner loop iteration: 1
15// Outer loop iteration: 2
16// Inner loop iteration: 0
17// Inner loop iteration: 1
Pada kode di atas, i
dihitung di loop luar, dan j
dihitung di loop dalam. Setiap kali loop luar dieksekusi sekali, loop dalam dieksekusi dua kali.
Contoh Praktis dari Loop Bersarang
Loop bersarang sangat berguna untuk menangani array multidimensional. Sebagai contoh, saat memproses array dua dimensi, Anda perlu menangani baris (loop luar) dan kolom (loop dalam).
Dalam contoh berikut, kita menangani array dua dimensi dan mencetak setiap elemen.
1const matrix = [
2 [1, 2, 3],
3 [4, 5, 6],
4 [7, 8, 9]
5];
6
7for (let row = 0; row < matrix.length; row++) {
8 for (let col = 0; col < matrix[row].length; col++) {
9 console.log(`Element at [${row}][${col}] is: ${matrix[row][col]}`);
10 }
11}
12// Output:
13// Element at [0][0] is: 1
14// Element at [0][1] is: 2
15// Element at [0][2] is: 3
16// Element at [1][0] is: 4
17// Element at [1][1] is: 5
18// Element at [1][2] is: 6
19// Element at [2][0] is: 7
20// Element at [2][1] is: 8
21// Element at [2][2] is: 9
Dengan cara ini, menggunakan loop bersarang memungkinkan akses ke setiap elemen dari array dua dimensi.
Catatan
Ada beberapa hal yang harus diperhatikan saat menggunakan loop bersarang.
-
Masalah Kinerja
Saat loop bersarang semakin dalam, waktu eksekusi meningkat tajam. Sebagai contoh, jika loop luar dieksekusi 100 kali dan loop dalam 100 kali, total 10.000 operasi dilakukan. Oleh karena itu, jika terdapat banyak iterasi loop, Anda harus mempertimbangkan optimasi loop untuk efisiensi.
-
Penerapan pada Algoritma Kompleks
Loop bersarang sangat kuat, tetapi saat pemrosesan menjadi kompleks, kode dapat menjadi sulit untuk dipahami. Oleh karena itu, untuk menjaga keterbacaan kode, penting untuk mengatur pemrosesan dengan komentar dan fungsi yang tepat.
Pertimbangan Optimasi
Saat menggunakan loop bersarang, optimasi berikut dapat dipertimbangkan.
-
Penghentian Loop Dini
Jika kondisi tertentu terpenuhi di dalam loop, Anda dapat menggunakan pernyataan
break
untuk keluar dari loop. Ini dapat menghindari loop yang tidak perlu dan meningkatkan kinerja.
1for (let i = 0; i < 5; i++) {
2 for (let j = 0; j < 5; j++) {
3 if (i + j > 5) {
4 break;
5 }
6 console.log(`i: ${i}, j: ${j}`);
7 }
8}
-
Pindahkan Perhitungan ke Luar
Daripada melakukan perhitungan yang sama di dalam loop setiap kali, Anda dapat melakukannya sekali di luar loop dan menggunakan hasilnya untuk membuat proses lebih efisien.
1let array = [1, 2, 3, 4, 5];
2
3// Inefficient example (calculating every time)
4for (let i = 0; i < array.length; i++) {
5 for (let j = 0; j < array.length; j++) {
6 let sum = array[i] + array[j];
7 console.log(sum);
8 }
9}
10
11// Efficient example (calculating outside)
12let arrayLength = array.length;
13for (let i = 0; i < arrayLength; i++) {
14 for (let j = 0; j < arrayLength; j++) {
15 let sum = array[i] + array[j];
16 console.log(sum);
17 }
18}
Ringkasan
Loop bersarang sangat berguna untuk menangani struktur data dan algoritma yang kompleks dalam JavaScript. Namun, jika tidak digunakan dengan benar, mereka dapat menyebabkan penurunan kinerja dan mengurangi keterbacaan kode. Untuk menggunakan loop bersarang secara efektif, penting untuk mengupayakan pengoptimalan loop dan pengorganisasian kode, serta mengambil pendekatan yang sesuai tergantung pada situasi.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.