Learn
← Previous Next →

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