Object Dasar
Menyimpan data terstruktur sebagai pasangan key-value: membuat, mengakses, menambah, dan menghapus properti.
Sekumpulan properti bernama
Object menyimpan data sebagai pasangan key (nama) dan value (nilai). Kalau array cocok untuk daftar berurutan, object cocok untuk data berlabel:
let motor = {
merk: "Honda",
tahun: 2022,
warna: "merah"
};Mengakses properti: titik vs kurung siku
console.log(motor.merk); // "Honda", dot notation
console.log(motor["tahun"]); // 2022, bracket notationDot notation lebih ringkas dan umum dipakai. Bracket notation wajib dipakai saat nama key dinamis atau mengandung spasi:
let key = "warna";
console.log(motor[key]); // "merah", key dari variabel
let orang = { "nama lengkap": "Rizky Pratama" };
console.log(orang["nama lengkap"]); // dot notation tidak bisa di siniMenambah, mengubah, menghapus
let siswa = { nama: "Rizky" };
siswa.kelas = "XII"; // tambah properti baru
siswa.nama = "Rizky P."; // ubah yang ada
delete siswa.kelas; // hapus properti
console.log(siswa); // { nama: "Rizky P." }Mengecek dan mengiterasi
let config = { tema: "gelap", bahasa: "id" };
console.log("tema" in config); // true, key ada?
console.log(Object.keys(config)); // ["tema", "bahasa"]
console.log(Object.values(config)); // ["gelap", "id"]
for (let key in config) {
console.log(key + ": " + config[key]);
}Catatan teknis: Mengakses properti yang tidak ada menghasilkan undefined, bukan error. Ini bisa menjalar jadi bug: siswa.alamat.jalan error karena siswa.alamat undefined. Di kode modern, pakai optional chaining: siswa.alamat?.jalan yang aman mengembalikan undefined.
Array of object: bentuk data API
Di dunia nyata, data dari server hampir selalu berupa array berisi object:
let produk = [
{ id: 1, nama: "Kopi", harga: 15000 },
{ id: 2, nama: "Teh", harga: 8000 },
{ id: 3, nama: "Roti", harga: 12000 }
];
// tampilkan semua nama
for (let p of produk) {
console.log(p.nama + ": Rp" + p.harga);
}
// cari produk termurah
let termurah = produk[0];
for (let p of produk) {
if (p.harga < termurah.harga) termurah = p;
}
console.log("Termurah: " + termurah.nama);Pola aksesnya selalu sama: loop array, lalu dot notation ke propertinya. Kuasai pola ini karena ia jembatan antara materi struktur data dan materi fetch API nanti.
Kesimpulan
Object adalah struktur data untuk "sesuatu yang punya atribut": user, produk, konfigurasi. Kuasai dot/bracket notation dan cara iterasinya, karena hampir semua data dari API berbentuk object atau array of object.