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