Objek
Objek mengelompokkan nilai-nilai yang berkaitan di bawah nama. Pada { name: "Coco", age: 3 }, pet.name memberi "Coco" dan pet.age memberi 3.
Nilai dengan label
Array cocok untuk daftar hal sejenis yang berurutan. Banyak hal di dunia lebih baik digambarkan dengan sekumpulan fakta berlabel: hewan peliharaan punya nama, jenis, dan umur; produk punya judul, harga, dan jumlah stok. Objek menyimpan persis hal itu. Objek adalah kumpulan properti, dan setiap properti adalah kunci (labelnya) yang dipasangkan dengan nilai.
const pet = {
name: "Coco",
kind: "cat",
age: 3,
};
console.log(pet.name); // Coco
console.log(pet["kind"]); // cat
console.log(pet.age + 1); // 4Objek ditulis di dalam kurung kurawal, dengan setiap properti berbentuk key: value dan koma di antaranya. Koma sesudah properti terakhir boleh ada. Untuk membaca properti, tulis objeknya, sebuah titik, lalu kuncinya: pet.name. Bentuk lainnya memakai kurung siku dan string, pet["kind"]. Kurung siku diperlukan kalau kuncinya disimpan dalam variabel, seperti pet[field], atau kalau kuncinya mengandung spasi. Membaca kunci yang tidak ada menghasilkan undefined.
Mengubah dan menambah properti
Beri nilai pada properti untuk mengubahnya, dan beri nilai pada kunci baru untuk menambahkannya. Sama seperti array, ini tetap bisa dilakukan walaupun objeknya dideklarasikan dengan const, karena variabelnya masih menunjuk ke objek yang sama.
const player = { name: "Sam", score: 0 };
player.score += 10;
player.level = 2;
console.log(`${player.name} ${player.score} ${player.level}`); // Sam 10 2
delete player.level;
console.log(player.level); // undefinedDaftar objek
Array dan objek mudah digabungkan. Array berisi objek adalah cara kebanyakan program menyimpan data catatan: keranjang belanja, daftar siswa sekelas, sekumpulan hasil pencarian. Kamu mengulang array itu dan membaca properti yang kamu perlukan dari setiap objek.
const basket = [
{ item: "pen", price: 2 },
{ item: "book", price: 12 },
{ item: "bag", price: 25 },
];
let total = 0;
for (const line of basket) {
total += line.price;
}
console.log("Total:", total); // Total: 39Nilai di dalam objek bisa berupa apa saja, termasuk array dan objek lain. const user = { name: "Ana", tags: ["admin", "editor"] }; membuatmu bisa menulis user.tags[0] untuk mencapai "admin". Baca rantai seperti ini dari kiri ke kanan: mulai dari user, menuju properti tags, lalu ambil indeks 0.
Metode dan kunci-kunci objek
Properti yang nilainya berupa fungsi disebut metode. Selama ini kamu sudah memanggil metode: console.log adalah metode log milik objek console, dan Math.round adalah metode round milik Math. Di dalam metode, kata kunci this merujuk ke objek tempat metode itu dipanggil, sehingga metode bisa membaca properti objeknya sendiri. Terakhir, Object.keys(pet) memberi array berisi kunci-kuncinya, di sini ["name", "kind", "age"], yang berguna untuk mengulang setiap properti.
const counter = {
count: 0,
add() {
this.count++;
},
};
counter.add();
counter.add();
console.log(counter.count); // 2Contoh soal. Catatan buku { title: "Notes", pages: 120, read: 45 } bisa melaporkan kemajuan membaca dengan Math.round(book.read / book.pages * 100), yang hasilnya 38, artinya 38 persen. Memberi nama pages dan read pada nilai-nilainya membuat rumus itu mudah dibaca, sesuatu yang tidak akan pernah bisa dilakukan b[1] / b[0].
Array atau objek?
Ada tes cepat untuk memutuskan mana yang dipakai. Kalau nilai-nilainya sejenis dan urutannya penting, seperti nilai ujian satu kelas atau langkah-langkah resep, pakai array dan capai nilainya lewat posisi. Kalau nilai-nilainya adalah fakta yang berbeda tentang satu hal, seperti nama, harga, dan stok sebuah produk, pakai objek dan capai nilainya lewat nama. Kebanyakan data nyata mencampur keduanya: array berisi produk, dan setiap produk adalah objek. Saat kamu mencetak objek di kotak latihan, kamu akan melihatnya dalam bentuk ringkas seperti {"name":"Coco","age":3}; membaca properti satu per satu memberi keluaran yang lebih rapi.
| objek | Sekelompok nilai bernama di dalam { } |
| properti | Satu pasangan key: value dalam objek |
| kunci | Nama sebuah properti, misalnya age |
| notasi titik | pet.name |
| notasi kurung siku | pet["name"] atau pet[field] |
| metode | Properti yang nilainya berupa fungsi |
| this | Di dalam metode, objek tempat metode itu dipanggil |
| Object.keys | Array berisi kunci-kunci sebuah objek |
- Apa yang dicetak kode ini?
const car = { brand: "Kia", year: 2020 }; console.log(car.year); - Apa yang dicetak kode ini?
const car = { brand: "Kia", year: 2020 }; console.log(car["brand"]); - Apa yang dicetak kode ini?
const car = { brand: "Kia" }; console.log(typeof car.color);- undefined
- Galat
- string
- Apa yang dicetak kode ini?
const box = { w: 4, h: 5 }; box.w = 6; console.log(box.w * box.h); - Apa yang dicetak kode ini?
const p = { name: "Lee" }; p.age = 40; console.log(Object.keys(p).length); - Apa yang dicetak kode ini?
const field = "score"; const r = { score: 88 }; console.log(r[field]); - Apa yang dicetak kode ini?
const u = { name: "Ana", tags: ["admin", "editor"] }; console.log(u.tags[1]); - Apa yang dicetak kode ini?
const items = [{ n: 2 }, { n: 5 }, { n: 1 }]; let t = 0; for (const it of items) { t += it.n; } console.log(t); - Apa yang dicetak kode ini?
const c = { count: 5, add() { this.count++; }, }; c.add(); console.log(c.count); - Baris mana yang menambahkan properti bernama price dengan nilai 9 ke objek item?
item.price = 9;item = price: 9;item.push(price, 9);
- Objek menyimpan properti key: value di dalam { }.
- Baca dengan obj.key atau obj["key"]; kurung siku untuk kunci yang ada di variabel.
- Beri nilai untuk mengubah atau menambah properti; kunci yang tidak ada terbaca undefined.
- Array berisi objek menyimpan data catatan; ulangi array-nya dan baca setiap properti.
- Metode adalah properti berupa fungsi; this adalah objeknya.
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