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]); // cherrySetiap 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, eggsDua 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); // 75Perhatikan 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.
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.
| array | Daftar nilai berurutan di dalam [ ] |
| elemen | Satu nilai di dalam array |
| arr[0] | Elemen pertama |
| arr[arr.length - 1] | Elemen terakhir |
| push / pop | Tambah ke ujung / buang dari ujung |
| includes | true kalau nilainya ada di dalam array |
| join | Merekatkan elemen menjadi satu string |
| for...of | Mengulang nilai-nilai dalam array |
| off-by-one | Melangkah satu terlalu jauh atau terlalu pendek, sering karena <= alih-alih < |
- Apa yang dicetak kode ini?
const a = [10, 20, 30]; console.log(a[1]); - Apa yang dicetak kode ini?
const a = [10, 20, 30]; console.log(a.length); - Apa yang dicetak kode ini?
const a = ["x", "y", "z"]; console.log(a[a.length - 1]); - Apa yang dicetak kode ini?
const a = [1, 2]; a.push(3); a.push(4); console.log(a.length); - 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
- Apa yang dicetak kode ini?
const a = ["cat", "dog"]; console.log(a.indexOf("bird")); - Apa yang dicetak kode ini?
const a = ["a", "b", "c"]; console.log(a.join("-")); - Apa yang dicetak kode ini?
const a = [3, 4, 5]; let t = 0; for (const n of a) { t += n; } console.log(t); - Apa yang dicetak kode ini?
const a = [1, 2, 3]; a[0] = 9; console.log(a[0] + a[2]); - Apa yang dicetak kode ini?
const a = ["red", "green"]; console.log(typeof a[5]);- undefined
- Galat
- string
- 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++)
- 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