September 17, 2026
Memahami Class di JavaScript.
Cara mendeklarasikan class di JavaScript modern, constructor, method, inheritance dengan extends, serta private field.
class diperkenalkan di ES6 sebagai cara yang lebih familiar untuk membuat objek dengan struktur dan perilaku yang sama, dibanding menulis fungsi konstruktor dan prototype secara manual.
Deklarasi Class Dasar
class Produk {
constructor(nama, harga) {
this.nama = nama;
this.harga = harga;
}
info() {
return `${this.nama} - Rp${this.harga.toLocaleString("id-ID")}`;
}
}
const sepatu = new Produk("Sepatu Lari", 450000);
console.log(sepatu.info()); // "Sepatu Lari - Rp450.000"
constructor adalah method khusus yang otomatis dijalankan saat objek baru dibuat lewat new.
Getter dan Setter
class Lingkaran {
constructor(jariJari) {
this.jariJari = jariJari;
}
get luas() {
return Math.PI * this.jariJari ** 2;
}
set ubahJariJari(nilaiBaru) {
this.jariJari = nilaiBaru > 0 ? nilaiBaru : this.jariJari;
}
}
const lingkaran = new Lingkaran(5);
console.log(lingkaran.luas); // diakses seperti properti, bukan method
lingkaran.ubahJariJari = 10;
Static Method
Static method dipanggil langsung dari class, bukan dari instance-nya, biasanya dipakai untuk fungsi bantuan yang berkaitan dengan class tapi tidak butuh data instance tertentu.
class Kalkulator {
static tambah(a, b) {
return a + b;
}
}
console.log(Kalkulator.tambah(3, 4)); // 7, tanpa perlu 'new Kalkulator()'
Private Field
JavaScript modern mendukung private field lewat awalan #, memastikan properti tersebut hanya bisa diakses dari dalam class itu sendiri.
class Akun {
#saldo = 0;
constructor(saldoAwal) {
this.#saldo = saldoAwal;
}
setor(jumlah) {
this.#saldo += jumlah;
}
get saldo() {
return this.#saldo;
}
}
const akun = new Akun(100000);
akun.setor(50000);
console.log(akun.saldo); // 150000
console.log(akun.#saldo); // SyntaxError — tidak bisa diakses dari luar
Inheritance dengan extends dan super
class ProdukDiskon extends Produk {
constructor(nama, harga, persenDiskon) {
super(nama, harga);
this.persenDiskon = persenDiskon;
}
info() {
const hargaAkhir = this.harga * (1 - this.persenDiskon / 100);
return `${this.nama} - Rp${hargaAkhir.toLocaleString("id-ID")} (diskon ${this.persenDiskon}%)`;
}
}
Kesimpulan
Class di JavaScript modern menyediakan cara terstruktur untuk membuat objek serupa lewat constructor dan method, dilengkapi getter/setter untuk akses properti yang lebih terkontrol, static method untuk fungsi utilitas, dan private field untuk menyembunyikan detail internal yang tidak perlu diakses dari luar.

Hey! I’m Fanny, the software engineer tending to this digital garden. You can read more about me, or subscribe by email.