menengaharraymatriksMenengah3 mnt baca

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:

javascript
let papan = [
  ["X", "O", "X"],
  ["O", "X", "O"],
  ["X", "X", "O"]
];

Mengakses dengan dua index

Index pertama memilih baris, index kedua memilih kolom:

javascript
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 penuh

Iterasi dengan loop bersarang

Untuk memproses semua item, pakai loop di dalam loop:

javascript
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

javascript
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.67

Karena 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:

javascript
// 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: 60

Karena 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.