Objects — JavaScript

Coba kasih tau temen tentang dirimu pake variabel terpisah: let nama = "Budi"; let umur = 17; let jurusan = "IPA"; — kebayang kacaunya pas data orang banyak?…

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 null itu 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).

Yang akan kamu pelajari