Jumat, 25 Juli 2025

OOP: Enkapsulasi

Singkatnya, enkapsulasi digunakan untuk menyembunyikan atribut suatu object. Ingat, object itu adalah cetakan dari class. Nah, atribut (data) ini disembunyikan dengan kata kunci "private". Tujuannya agar data ini tidak sembarangan bisa diubah oleh orang atau program lain ketika di panggil.


Ini penjelasan dari GPT ya tentang perbandingan public dan private attribut.

  1. Atribut public → bisa diubah langsung dari luar

  2. Atribut private + setter → tidak bisa diubah sembarangan


Contoh 1: Atribut public (Tanpa Enkapsulasi)

class Motor {
public String warna;
}

Ketika atribut warna ini dipanggil oleh object lain di kelas Aplikasi, ini yang terjadi.....

class Aplikasi {
public static void main(String[] args) {
Motor m = new Motor();

m.warna = "Merah"; // ✅ OK
System.out.println(m.warna); // Output: Merah

m.warna = ""; // ✅ OK tapi ⚠️ Berbahaya (kosong)
System.out.println(m.warna); // Output: (kosong)

m.warna = null; // ✅ OK tapi ⚠️ Bisa error nanti
System.out.println(m.warna.toUpperCase()); // ❌ Error: NullPointerException
}
}

Contoh 2: Atribut private (Dengan Enkapsulasi)

class Motor {
private String warna;

public void setWarna(String w) {
if (w != null && !w.isEmpty()) {
warna = w;
} else {
System.out.println("Warna tidak valid!");
}
}
public String getWarna() {
return warna;
}
}
 

saat dipanggil...

class Aplikasi {
public static void main(String[] args) {
Motor m = new Motor();

m.setWarna("Biru"); // ✅ Diterima
System.out.println(m.getWarna()); // Output: Biru

m.setWarna(""); // ❌ Ditolak
m.setWarna(null); // ❌ Ditolak

// m.warna = "Hitam"; // ❌ Tidak bisa: "warna has private access"
}

Keliatan bedanya kan? Keuntungan:

  • Program tetap aman
  • Tidak bisa crash karena null
  • Semua data masuk harus lewat pintu yang kamu kontrol


















Tidak ada komentar:

Posting Komentar

Popular Posts