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?…

Object mengumpulkan beberapa data yang saling terkait ke dalam satu variabel. Tiap data disimpan sebagai properti: pasangan nama properti (key) dan nilainya. Mirip KTP: ada label "Nama", "Umur", dan isi di sebelahnya.

🧪 Tebakan cepat: object disimpan di variabel const. Isinya masih bisa diubah gak? Tebak dulu, jawabannya ada di bagian "Mengubah dan menambah properti".

Bikin object dan membaca propertinya

const siswa = {
  nama: "Sari",
  umur: 16,
  jurusan: "IPS"
};

console.log(siswa.nama);       // Sari
console.log(siswa["jurusan"]); // IPS

Ada dua cara membaca properti:

Properti yang gak ada hasilnya undefined, bukan error.

Mengubah dan menambah properti

siswa.umur = 17;
siswa.kota = "Bogor";

console.log(Object.keys(siswa)); // ["nama", "umur", "jurusan", "kota"]

Jawaban tebakan: bisa. const cuma mengunci variabelnya, jadi siswa = {} ditolak dengan TypeError, tapi isi object-nya tetap boleh diubah. Satu lagi: let dan const cuma buat bikin variabel baru, jadi let siswa.kota = "Bogor" itu error.

Object sebagai input fungsi

Fungsi adalah blok kode bernama yang baru jalan waktu dipanggil. Fungsi bisa menerima object, lalu menyusun hasil dari propertinya:

function kartuNama(orang) {
  return "Nama: " + orang.nama + ", kota: " + orang.kota;
}

const teman = { nama: "Rina", kota: "Medan" };
console.log(kartuNama(teman)); // Nama: Rina, kota: Medan

Datanya selalu datang lewat parameter. Jangan tulis isi object di dalam fungsi, dan jangan tulis "Rina" langsung di teksnya: fungsi yang sama harus jalan buat orang lain juga.

💡 Fungsi yang ditulis di dalam object disebut method. Contohnya sapa() { return "Halo, saya " + this.nama; } di dalam siswa, lalu dipanggil siswa.sapa(). Di dalam method, this berarti object pemiliknya. Di fungsi biasa kayak kartuNama, this gak menunjuk ke object kirimanmu, jadi pakai nama parameternya: orang.nama.

⚠️ Jebakan yang sering ketemu

TL;DR: Object menyimpan data terkait sebagai pasangan nama: nilai di dalam { }, dipisah koma. Baca dengan obj.nama atau obj["nama"], ubah atau tambah dengan obj.kota = "Bogor". Object di const tetap bisa diubah isinya, cuma variabelnya yang terkunci. Object.keys(obj) memberi daftar nama propertinya. Fungsi yang menerima object membaca propertinya lewat parameter (orang.nama) dan mengembalikan hasil dengan return.

Yang akan kamu pelajari