Learn
← Previous Next →

Hari 9: OOP — Class & Inheritance

70 min Last updated 09 Apr 2026

Class di JavaScript

class Hewan {
    #nama; // private field (ES2022)
    #suara;

    constructor(nama, suara) {
        this.#nama  = nama;
        this.#suara = suara;
    }

    get nama() { return this.#nama; }

    bersuara() {
        return `${this.#nama} berkata: ${this.#suara}`;
    }

    static buat(nama, suara) {
        return new Hewan(nama, suara);
    }
}

class Kucing extends Hewan {
    #warna;

    constructor(nama, warna) {
        super(nama, "Meow");
        this.#warna = warna;
    }

    info() {
        return `${this.bersuara()} (warna: ${this.#warna})`;
    }
}

const k = new Kucing("Mimi", "Oranye");
console.log(k.info()); // Mimi berkata: Meow (warna: Oranye)
console.log(k instanceof Hewan); // true

💡 Notice: super() harus dipanggil sebelum mengakses this di constructor class turunan. ** adalah operator pangkat.

Assignment

Buat class BangunDatar dengan method luas() = 0. Buat class Persegi dan Segitiga extends BangunDatar. Override luas(). Tampilkan luas keduanya.

Expected output:

Persegi: 36
Segitiga: 20
JS script.js
Solution
Output