Hari 4: Object & Destructuring
60 min
Last updated 09 Apr 2026
Object di JavaScript
const mahasiswa = {
nama: "Budi Santoso",
umur: 21,
ipk: 3.75,
jurusan: "Informatika",
hobi: ["coding", "gaming", "musik"],
alamat: {
kota: "Jakarta",
provinsi: "DKI Jakarta"
}
};
// Akses properti
console.log(mahasiswa.nama); // Budi Santoso
console.log(mahasiswa["ipk"]); // 3.75 (bracket notation)
console.log(mahasiswa.alamat.kota); // Jakarta
console.log(mahasiswa.hobi[1]); // gaming
Manipulasi Object
// Tambah properti
mahasiswa.angkatan = 2022;
// Update
mahasiswa.ipk = 3.85;
// Hapus
delete mahasiswa.angkatan;
// Cek keberadaan properti
"nama" in mahasiswa; // true
mahasiswa.hasOwnProperty("email"); // false
Object Destructuring
const { nama, ipk, jurusan } = mahasiswa;
console.log(nama); // Budi Santoso
console.log(ipk); // 3.85
// Rename saat destructuring
const { nama: namaMhs, alamat: { kota } } = mahasiswa;
console.log(namaMhs); // Budi Santoso
console.log(kota); // Jakarta
// Default value
const { email = "tidak-ada@email.com" } = mahasiswa;
console.log(email); // tidak-ada@email.com
Object Methods
Object.keys(mahasiswa); // ["nama", "umur", "ipk", ...]
Object.values(mahasiswa); // ["Budi Santoso", 21, 3.85, ...]
Object.entries(mahasiswa); // [["nama","Budi"],["umur",21],...]
// Spread object
const info = { ...mahasiswa, terdaftar: true };
const updated = { ...mahasiswa, ipk: 3.9 }; // override ipk
💡
Notice: toLocaleString() memformat angka sesuai locale (menambahkan separator ribuan). Di browser akan menggunakan format lokal.
Assignment
Diberikan objek produk = {nama, harga, stok, kategori}. Destructure nama, harga, stok. Hitung totalNilai = harga * stok. Tampilkan: "Produk: nama | Harga: Rp harga | Stok: stok | Total: Rp totalNilai".
Expected output:
Produk: Laptop Gaming | Harga: Rp 12,500,000 | Stok: 8 | Total: Rp 100,000,000
JS
script.js
Solution
Output