Coba kasih tau temen tentang dirimu pake variabel terpisah: let nama = "Budi"; let umur = 17; let jurusan = "IPA"; — kebayang kacaunya pas data orang banyak? Object ngumpulin data terkait jadi satu wadah rapi — kayak kartu identitas yang isinya pasangan label + isi. Sekali bikin object, semua info ngumpul terorganisir.
🤔 Object di mana-mana. Hampir semua data di JavaScript diam-diam adalah object. Array? Object. Function? Object. Bahkan
nullitu satu-satunya bukan-object. Paham object = paham 80% JavaScript.
const mahasiswa = {
nama: "Budi",
umur: 17,
jurusan: "IPA"
};
Mengakses nilai:
console.log(mahasiswa.nama); // "Budi" (dot notation)
console.log(mahasiswa["umur"]); // 17 (bracket notation)
Mengubah dan menambah properti:
mahasiswa.umur = 18;
mahasiswa.kota = "Jakarta";
Method — fungsi di dalam object:
const mobil = {
merk: "Toyota",
klakson: function() {
return "Beep beep!";
}
};
console.log(mobil.klakson()); // "Beep beep!"
🎭 Analogi sehari-hari
Object = KTP. Tiap field punya label (nama, nik, tempat_lahir, alamat) dan isi (value). Buat ngecek nama, kamu nunjuk label "Nama" di KTP — bukan tebak posisi karakter ke-7. Object di JS sama: kamu akses lewat label (key), bukan urutan/index.
┌─────────────── KTP ──────────────┐
│ Nama : Budi │
│ Umur : 17 │
│ Jurusan : IPA │
└──────────────────────────────────┘
Dua cara buka data: nama label langsung (mahasiswa.nama) atau pakai string label (mahasiswa["nama"]). Sama-sama dapat "Budi".
⚠️ Jebakan yang sering ditemui
1. Bracket notation butuh quote, dot notation tidak.
mahasiswa.nama // ✅ benar
mahasiswa[nama] // ❌ error — `nama` dianggap variabel, bukan key
mahasiswa["nama"] // ✅ benar
2. Dua object yang tampak sama tidak ===.
{ a: 1 } === { a: 1 } // false! beda alamat memori
const x = { a: 1 };
const y = x;
x === y; // true (alamat sama)
3. const melindungi variabel, bukan isinya.
const obj = { umur: 17 };
obj.umur = 18; // ✅ boleh — isinya berubah
obj = { umur: 99 }; // ❌ TypeError — variabel di-reassign
TL;DR: Object = wadah pasangan key-value untuk ngumpulin data terkait. Akses lewat dot (obj.nama) atau bracket (obj["nama"] — wajib quote). Method = function di dalam object. Object pass by reference — {a:1} === {a:1} false (beda alamat memori). const obj = variabel gak bisa reassign, tapi isinya BISA dimodifikasi (obj.x = 5 boleh). Hampir semua data di JS adalah object (array, function, dll).