Trending

#05 ENKAPSULASI


Enkapsulasi adalah salah satu dari empat pilar utama PBO selain Inheritance, Polymorphism, dan Abstraction. Konsep ini sangat penting karena berkaitan dengan keamanan data, akses terbatas, dan pengaturan alur data dalam objek.

A. Definisi Enkapsulasi

Enkapsulasi (Encapsulation) adalah konsep PBO yang menyatukan data (atribut) dan perilaku (method) dalam satu unit, yaitu kelas, sambil menjaga agar data tertentu tidak bisa diakses secara langsung dari luar kelas.

Agar aman, atribut biasanya dibuat private, dan aksesnya dilakukan melalui method khusus yaitu:

  • setter → untuk mengubah nilai
  • getter → untuk mengambil nilai

Analogi:

Bayangkan sebuah brankas di bank:

  • Bagian dalam brankas tidak bisa langsung diakses oleh nasabah.
  • Nasabah harus lewat petugas (method) yang mengatur kapan brankas bisa dibuka.
  • Petugas itu adalah getter/setter.

Dengan cara ini, data menjadi aman dan terkendali.

B. Tujuan Enkapsulasi

Berikut beberapa tujuan utama enkapsulasi:

1. Melindungi Data (Data Protection / Security)

Data penting tidak boleh diubah sembarangan.
Atribut dibuat private agar tidak bisa diakses langsung dari luar.

2. Mengendalikan Akses (Controlled Access)

Pengguna tidak bisa sembarangan memasukkan nilai.
Hanya melalui setter/getter yang sudah dibuat aman.

3. Mempermudah Maintenance

Jika aturan akses berubah, cukup mengubah setter/getter tanpa merusak bagian lain program.

4. Menyembunyikan Implementasi

Pengguna tidak perlu tahu bagaimana data diproses di dalam kelas.
Mereka hanya memakai method publik tanpa melihat “mesin” di dalamnya.

Analogi :

Seperti membeli air galon di toko:

Kamu tidak pernah melihat bagaimana air difilter atau diproses.  Kamu hanya menerima air yang sudah siap pakai. Proses internal disembunyikan, tapi tetap aman dan terkontrol.

C. Penerapan Enkapsulasi Menggunakan Setter dan Getter

Untuk menerapkan enkapsulasi dalam Java:

  • Atribut dibuat private
  • Disediakan method getter untuk membaca nilai
  • Disediakan method setter untuk mengubah nilai

1. Struktur Dasar Setter dan Getter dalam Java

Contoh kelas Java menggunakan enkapsulasi

public class Siswa {
    private String nama;
    private int umur;

    // Setter untuk mengubah nilai
    public void setNama(String namaBaru) {
        nama = namaBaru;
    }

    public void setUmur(int umurBaru) {
        if (umurBaru > 0) {          // Validasi
            umur = umurBaru;
        } else {
            System.out.println("Umur tidak boleh negatif!");
        }
    }

    // Getter untuk membaca nilai
    public String getNama() {
        return nama;
    }

    public int getUmur() {
        return umur;
    }
}

Cara Menggunakan di Main

public class Main {
    public static void main(String[] args) {
        Siswa s1 = new Siswa();

        // Mengisi data menggunakan setter
        s1.setNama("Andi");
        s1.setUmur(16);

        // Mengambil data menggunakan getter
        System.out.println("Nama: " + s1.getNama());
        System.out.println("Umur: " + s1.getUmur());
    }
}

Penjelasan Alur Enakpsulasi

1. Atribut nama dan umur dibuat private
tidak bisa diakses langsung dari luar kelas.
2. User wajib menggunakan method:
  • setNama() dan setUmur() untuk mengubah nilai
  • getNama() dan getUmur() untuk membaca nilai

3. Setter bisa diberikan validasi
Contoh: umur tidak boleh negatif

inilah tujuan pengendalian akses

Analogi Setter dan Getter

Setter

Seperti kita menitipkan uang di bank:

  • Tidak boleh memasukkan uang langsung ke brankas
  • Harus lewat petugas bank (setter)
  • Petugas akan mengecek uang palsu (validasi)

Getter

Seperti kita melihat saldo ATM:

  • Kita tidak membuka server bank
  • Kita cukup menekan tombol ATM (getter)
  • Mesin memberi informasi saldo dengan aman

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak