JavaScript menyediakan beberapa cara modern untuk melakukan iterasi yang lebih ekspresif dan mudah dibaca daripada for tradisional.
for...of digunakan untuk mengiterasi nilai dari objek yang bisa diiterasi (array, string, Map, Set, dll):
// Iterasi array
let buah = ['apel', 'mangga', 'jeruk'];
for (let item of buah) {
console.log(item); // apel, mangga, jeruk
}
// Iterasi string — karakter per karakter
let kata = 'Halo';
for (let huruf of kata) {
console.log(huruf); // H, a, l, o
}
// Iterasi dengan index menggunakan entries()
for (let [index, nilai] of buah.entries()) {
console.log(`${index}: ${nilai}`);
// 0: apel
// 1: mangga
// 2: jeruk
}
for...in digunakan untuk mengiterasi nama properti (key) dari sebuah objek:
let orang = {
nama: 'Budi',
umur: 25,
kota: 'Jakarta'
};
for (let key in orang) {
console.log(`${key}: ${orang[key]}`);
}
// nama: Budi
// umur: 25
// kota: Jakarta
// Gunakan hasOwnProperty() untuk filter properti sendiri saja
for (let key in orang) {
if (orang.hasOwnProperty(key)) {
console.log(key); // hanya properti milik orang sendiri
}
}
⚠️ Hindari menggunakan
for...inuntuk array — gunakanfor...ofatauforEachsebagai gantinya, karenafor...injuga mengiterasi properti yang diwariskan dari prototype.
Metode array yang menerima fungsi callback untuk setiap elemen:
let angka = [1, 2, 3, 4, 5];
// Dengan function biasa
angka.forEach(function(nilai) {
console.log(nilai);
});
// Dengan arrow function — lebih ringkas
angka.forEach(nilai => console.log(nilai));
// Callback menerima tiga argumen: nilai, index, array asli
angka.forEach((nilai, index) => {
console.log(`Index ${index}: ${nilai}`);
});
// Contoh nyata
let produk = [
{ nama: 'Laptop', harga: 8000000 },
{ nama: 'Mouse', harga: 150000 },
{ nama: 'Keyboard', harga: 350000 },
];
produk.forEach(item => {
console.log(`${item.nama}: Rp ${item.harga.toLocaleString('id-ID')}`);
});
// Laptop: Rp 8.000.000
// Mouse: Rp 150.000
// Keyboard: Rp 350.000
let buah = ['apel', 'mangga', 'jeruk'];
// for klasik — verbose tapi fleksibel penuh
for (let i = 0; i < buah.length; i++) {
console.log(buah[i]);
}
// for...of — bersih, untuk nilai
for (let item of buah) {
console.log(item);
}
// forEach — method array, tidak bisa break
buah.forEach(item => console.log(item));
| Metode | Gunakan untuk | Bisa break? |
|---|---|---|
for |
Segala kasus, butuh kontrol penuh | Ya |
while |
Kondisi tidak diketahui | Ya |
for...of |
Array, string, iterable | Ya |
for...in |
Properti objek | Ya |
forEach |
Array, iterasi sederhana | Tidak |
💡 Tips: Untuk iterasi array sederhana, gunakan
forEachataufor...of— keduanya lebih bersih darifortradisional. Gunakanforklasik hanya jika kamu perlu mengontrol index secara kompleks atau membutuhkanbreak/continue. Untuk objek, gunakanfor...inatauObject.keys()/Object.values()/Object.entries(). 🎯
Kursus
JavaScript Dasar
Kategori
Perulangan
Durasi Pelajaran
20 menit