Array Multidimensi
Array di dalam array: membuat matriks, mengaksesnya, dan iterasi dengan loop bersarang.
Array di dalam array
Array multidimensi adalah array yang itemnya juga array. Bentuk paling umum adalah 2 dimensi, seperti tabel baris dan kolom atau papan catur:
let papan = [
["X", "O", "X"],
["O", "X", "O"],
["X", "X", "O"]
];Mengakses dengan dua index
Index pertama memilih baris, index kedua memilih kolom:
console.log(papan[0][0]); // "X", baris 0 kolom 0
console.log(papan[1][2]); // "O", baris 1 kolom 2
console.log(papan[2]); // ["X", "X", "O"], satu baris penuhIterasi dengan loop bersarang
Untuk memproses semua item, pakai loop di dalam loop:
for (let baris = 0; baris < papan.length; baris++) {
for (let kolom = 0; kolom < papan[baris].length; kolom++) {
console.log("[" + baris + "][" + kolom + "] = " + papan[baris][kolom]);
}
}Loop luar berjalan per baris, loop dalam berjalan per kolom di baris itu. Total iterasi = baris x kolom.
Contoh nyata: tabel nilai
let nilaiKelas = [
[80, 90, 75], // siswa 1
[60, 70, 65], // siswa 2
];
let rataSiswa1 = nilaiKelas[0].reduce((a, b) => a + b, 0) / nilaiKelas[0].length;
console.log(rataSiswa1); // 81.67Karena tiap baris adalah array biasa, semua method array (map, filter, reduce) tetap bisa dipakai per baris.
Catatan teknis: Baris-baris array multidimensi tidak harus sama panjang (jagged array). JavaScript tidak memaksa bentuk persegi. Kalau kodemu mengasumsikan semua baris sama panjang, pastikan saat membuatnya.
Studi kasus: papan skor game
Array 2D cocok untuk papan skor beberapa pemain di beberapa ronde:
// baris = pemain, kolom = ronde
let skor = [
[10, 20, 15], // pemain 1
[25, 5, 30], // pemain 2
];
for (let p = 0; p < skor.length; p++) {
let total = skor[p].reduce((a, b) => a + b, 0);
console.log("Pemain " + (p + 1) + " total: " + total);
}
// Pemain 1 total: 45
// Pemain 2 total: 60Karena tiap baris adalah array biasa, method seperti reduce bisa dipakai langsung per baris. Untuk mencari pemenang, simpan total tiap pemain lalu cari maksimum dengan Math.max(...totals). Kombinasi array 2D dan method array menangani banyak soal pengolahan data tabular.
Kesimpulan
Array multidimensi = tabel. Kuasai akses [baris][kolom] dan loop bersarang, karena pola ini muncul di pengolahan data tabular, game papan, dan manipulasi matriks.