Dalam pemrograman berorientasi objek (PBO), kita sering membuat kelas, atribut, dan method. Namun tidak semua bagian dari kelas boleh diakses sembarang tempat.
Karena itu Java menyediakan sistem pengaman yang disebut Access Modifier.
A. Pengertian Access Modifier
Access Modifier adalah pengatur tingkat akses terhadap atribut, method, atau class. Fungsinya adalah membatasi siapa saja yang boleh melihat atau menggunakan bagian tertentu dari program.
Analogi Umum:
Bayangkan sebuah rumah:
- Ada area yang boleh dilihat semua orang
- Ada kamar pribadi yang hanya pemilik yang boleh masuk
- Ada area yang hanya keluarga boleh masuk
Java juga begitu: setiap variabel/method bisa diberi izin akses tertentu.
B. Jenis-Jenis Access Modifier
Java memiliki tiga access modifier utama:
PublicPrivateProtected
1. Public
public berarti dapat diakses dari mana saja:
- Kelas yang sama
- Paket yang sama
- Paket berbeda
- Objek dari luar
Ini adalah level akses paling terbuka.
Contoh Penggunaan
public class Siswa {public String nama; // bisa diakses dari kelas mana punpublic void tampilkan() {System.out.println("Nama: " + nama);}}
Objek dari luar boleh langsung memakai atribut/method yang public:
Siswa s1 = new Siswa();s1.nama = "Budi";s1.tampilkan();
Analogi public
Seperti taman kota.
Semua orang boleh masuk, melihat, dan menggunakannya.
2. private
private berarti hanya dapat diakses dari dalam kelas itu sendiri.Tidak bisa dipanggil dari luar kelas.
Ini biasanya digunakan untuk:
- data sensitif
- keamanan data
- mencegah modifikasi sembarangan
Contoh Penggunaan
public class Siswa {private int umur; // tidak bisa diakses dari luar kelasprivate void rahasia() {System.out.println("Ini method rahasia");}}
Pemanggilan seperti ini akan error:
Siswa s = new Siswa();s.umur = 17; // ❌ ERRORs.rahasia(); // ❌ ERROR
Analogi private
Seperti kamar tidur pribadi di rumah.
Hanya pemilik yang boleh masuk.
Orang lain tidak boleh sembarang membuka pintu.
C. Perbandingan Access Modifier (Tabel)
| Access Modifier | Dalam Kelas | Satu Paket | Subclass | Luar Paket |
|---|---|---|---|---|
| public | ✔ | ✔ | ✔ | ✔ |
| protected | ✔ | ✔ | ✔ | ❌ |
| private | ✔ | ❌ | ❌ | ❌ |
D. Studi Kasus Sederhana
Kasus:
Anda membuat kelasAkunBank.
Atribut saldo tidak boleh diubah sembarangan → gunakanprivate.
Method setor dan tarik harus bisa dipanggil → gunakanpublic.
Contoh Java
public class AkunBank {private int saldo;public AkunBank(int saldoAwal) {saldo = saldoAwal;}public void setor(int jumlah) {saldo += jumlah;}public void tarik(int jumlah) {if (jumlah <= saldo) {saldo -= jumlah;} else {System.out.println("Saldo tidak cukup!");}}public int getSaldo() {return saldo;}}
Penjelasan:
saldodibuatprivateagar aman- Akses saldo hanya melalui method public
- Ini contoh encapsulation pada PBO
Tags
DDPPLGV2-PBO