Enkapsulasi


Enkapsulasi adalah salah satu prinsip utama dalam pemrograman berorientasi objek (OOP) yang digunakan untuk menyembunyikan detail internal dari suatu kelas dan hanya mengekspos apa yang diperlukan. Dalam Java, enkapsulasi dapat dicapai dengan menggunakan akses modifier seperti private, public, dan protected, serta metode get dan set.

Langkah 1: Membuat Kelas

Pertama, buat kelas dengan atribut (variabel anggota) yang akan dienkapsulasi. Sebagai contoh, kita akan membuat kelas Mahasiswa dengan atribut nama dan umur:

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

    // Constructor
    public Mahasiswa(String nama, int umur) {
        this.nama = nama;
        this.umur = umur;
    }

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

    // Metode Setter untuk nama
    public void setNama(String nama) {
        this.nama = nama;
    }

    // Metode Getter untuk umur
    public int getUmur() {
        return umur;
    }

    // Metode Setter untuk umur
    public void setUmur(int umur) {
        if (umur >= 0) {
            this.umur = umur;
        } else {
            System.out.println("Umur tidak valid");
        }
    }
}

Langkah 2: Menggunakan Kelas

Sekarang kita bisa menggunakan kelas Mahasiswa dan metodenya untuk mengakses dan mengubah atribut yang dienkapsulasi:

public class Main {
    public static void main(String[] args) {
        // Membuat objek Mahasiswa
        Mahasiswa mahasiswa = new Mahasiswa("John", 20);

        // Menggunakan metode Getter
        System.out.println("Nama: " + mahasiswa.getNama());
        System.out.println("Umur: " + mahasiswa.getUmur());

        // Menggunakan metode Setter
        mahasiswa.setNama("Alice");
        mahasiswa.setUmur(22);

        System.out.println("Nama setelah perubahan: " + mahasiswa.getNama());
        System.out.println("Umur setelah perubahan: " + mahasiswa.getUmur());
    }
}

Dengan demikian, Anda telah menggunakan enkapsulasi untuk melindungi atribut nama dan umur dari akses langsung dari luar kelas dan hanya mengizinkan akses melalui metode get dan set.