edubun
Bahasa Indonesia

Array

Array menyimpan banyak nilai secara berurutan dengan satu nama. Dalam ["red", "green", "blue"], "red" berada di indeks 0 dan panjangnya 3.

Daftar dalam satu variabel

Misalkan sebuah program mencatat skor seluruh kelas. Tiga puluh variabel bernama score1, score2, score3 akan sangat merepotkan, dan mustahil diulang dengan perulangan. Array adalah satu nilai yang menyimpan daftar berurutan berisi nilai-nilai lain. Kamu menulisnya dengan kurung siku dan koma:

const fruits = ["apple", "banana", "cherry"];
console.log(fruits.length);   // 3
console.log(fruits[0]);       // apple
console.log(fruits[2]);       // cherry

Setiap nilai dalam array adalah elemen. Elemen diberi nomor menurut indeks, mulai dari 0, persis seperti karakter dalam string. Jadi elemen pertama adalah fruits[0] dan yang terakhir fruits[fruits.length - 1]. Meminta indeks yang tidak ada, seperti fruits[10], tidak menimbulkan galat; hasilnya undefined. Array bisa menyimpan nilai jenis apa pun, dan elemennya bahkan tidak harus bertipe sama, meskipun dalam praktiknya biasanya sama.

Mengubah array

Tidak seperti string, array bisa diubah di tempat. Berikan nilai ke sebuah indeks untuk mengganti elemen: fruits[1] = "blueberry". Metode push menambahkan elemen ke ujung, dan pop membuang elemen terakhir lalu mengembalikannya. unshift dan shift melakukan hal yang sama di awal. Ini berlaku juga saat array dideklarasikan dengan const. const hanya mencegah nama itu menunjuk ke array lain; isinya tidak dibekukan.

const list = ["milk", "eggs"];
list.push("bread");
console.log(list.length);        // 3
const last = list.pop();
console.log(last);               // bread
console.log(list.join(", "));    // milk, eggs

Dua metode lagi menjawab pertanyaan. includes(x) memberi true kalau x ada di dalam array, dan indexOf(x) memberi indeksnya, atau -1 kalau tidak ada. join(", ") merekatkan semua elemen menjadi satu string dengan pemisah yang diberikan di antaranya, cara termudah untuk mencetak daftar dengan rapi.

Mengulang isi array

Array dan perulangan selalu berpasangan. Perulangan for dengan indeks dari 0 sampai sebelum panjangnya (panjangnya tidak ikut) mengunjungi setiap elemen. Perulangan for...of lebih singkat kalau kamu hanya perlu nilainya, bukan posisinya:

const scores = [70, 85, 90, 55];

for (let i = 0; i < scores.length; i++) {
  console.log(i, scores[i]);
}

let total = 0;
for (const s of scores) {
  total += s;
}
console.log(total / scores.length);   // 75

Perhatikan kondisi i < scores.length, dengan < dan bukan <=. Dengan empat elemen, indeksnya 0 sampai 3, dan memakai <= akan membaca satu langkah melewati ujung. Kesalahan selisih satu (off-by-one) ini adalah salah satu bug paling umum di seluruh dunia pemrograman.

Dua nama, satu array

Number dan string disalin saat kamu memberikannya ke variabel lain, tetapi array tidak. Setelah const a = [1, 2]; const b = a;, kedua nama menunjuk ke array yang sama persis, jadi b.push(3) juga mengubah apa yang kamu lihat lewat a: a.length sekarang 3. Kalau kamu perlu salinan terpisah, tulis const b = [...a];, yang menebarkan elemen a ke dalam array yang benar-benar baru. Objek, yang dibahas di unit berikutnya, berperilaku sama.

Kotak latihan di situs ini mencetak array dalam bentuk ringkas, seperti ["a","b"] atau [1,2,3]. Konsol di alat pengembang browser menambahkan spasi dan bisa menampilkannya secara berbeda. Pakai join kalau kamu ingin mengatur keluarannya dengan tepat.

Contoh soal. Cari angka terbesar dalam [4, 17, 9, 12] tanpa Math.max. Mulai dengan let best = nums[0], ulangi elemen sisanya, dan setiap kali ada elemen yang lebih besar dari best, simpan ke dalam best. Setelah perulangan, best bernilai 17. Bentuk yang sama, yaitu variabel yang mengingat yang terbaik sejauh ini, bisa mencari kata terpanjang, harga termurah, atau tanggal paling awal.

arrayDaftar nilai berurutan di dalam [ ]
elemenSatu nilai di dalam array
arr[0]Elemen pertama
arr[arr.length - 1]Elemen terakhir
push / popTambah ke ujung / buang dari ujung
includestrue kalau nilainya ada di dalam array
joinMerekatkan elemen menjadi satu string
for...ofMengulang nilai-nilai dalam array
off-by-oneMelangkah satu terlalu jauh atau terlalu pendek, sering karena <= alih-alih <
  1. Apa yang dicetak kode ini?
    const a = [10, 20, 30];
    console.log(a[1]);
  2. Apa yang dicetak kode ini?
    const a = [10, 20, 30];
    console.log(a.length);
  3. Apa yang dicetak kode ini?
    const a = ["x", "y", "z"];
    console.log(a[a.length - 1]);
  4. Apa yang dicetak kode ini?
    const a = [1, 2];
    a.push(3);
    a.push(4);
    console.log(a.length);
  5. Apa yang dicetak kode ini?
    const a = [5, 6, 7];
    const x = a.pop();
    console.log(x, a.length);
    • 7 2
    • 5 2
    • 7 3
  6. Apa yang dicetak kode ini?
    const a = ["cat", "dog"];
    console.log(a.indexOf("bird"));
  7. Apa yang dicetak kode ini?
    const a = ["a", "b", "c"];
    console.log(a.join("-"));
  8. Apa yang dicetak kode ini?
    const a = [3, 4, 5];
    let t = 0;
    for (const n of a) {
      t += n;
    }
    console.log(t);
  9. Apa yang dicetak kode ini?
    const a = [1, 2, 3];
    a[0] = 9;
    console.log(a[0] + a[2]);
  10. Apa yang dicetak kode ini?
    const a = ["red", "green"];
    console.log(typeof a[5]);
    • undefined
    • Galat
    • string
  11. Kepala perulangan mana yang mengunjungi setiap indeks arr tepat satu kali?
    • for (let i = 0; i < arr.length; i++)
    • for (let i = 0; i <= arr.length; i++)
    • for (let i = 1; i <= arr.length; i++)
Poin penting
  • Array menyimpan nilai berurutan di dalam [ ]; indeks dimulai dari 0.
  • Elemen terakhir adalah arr[arr.length - 1].
  • push dan pop menambah dan menghapus di ujung belakang; isi array const tetap bisa berubah.
  • includes, indexOf, dan join menjawab pertanyaan yang sering muncul.
  • Ulangi dengan i dari 0 selama i < length, atau pakai for...of untuk nilainya.
Sumber kursus ini (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Diperiksa: 2026-10-17