Definisi: Menyembunyikan detail data atau cara kerja internal dari sebuah objek, dan hanya membuka akses seperlunya.
Contoh pada aplikasi absensi:
- Data absensi menyimpan informasi sensitif seperti lokasi GPS dan ID perangkat.
- HR hanya butuh melihat jam masuk dan keterlambatan.
- Dengan enkapsulasi, detail teknis disembunyikan, hanya data relevan yang ditampilkan di dashboard.
Definisi: Sebuah class dapat mewarisi atribut dan method dari class lain.
Contoh pada aplikasi absensi:
- Class
Karyawanmemiliki atribut dasar: nama, ID, divisi. - Dari class ini diturunkan:
KaryawanWFO→ wajib validasi lokasi kantor saat absen.KaryawanWFH→ cukup absen melalui aplikasi tanpa validasi lokasi.
- Dengan inheritance, kita tidak perlu menulis ulang atribut dasar karyawan.
Definisi: Satu interface atau method bisa memiliki banyak perilaku berbeda.
Contoh pada aplikasi absensi:
- Method
kirimNotifikasi()bisa memiliki perilaku berbeda tergantung jenis notifikasi:- Email → mengirim pesan ke alamat email.
- Push Notification → mengirim alert ke aplikasi di smartphone.
- WhatsApp → mengirim pesan ke nomor WA.
- HR cukup memanggil satu fungsi umum, hasil akhirnya bergantung pada jenis media.
Definisi: Menyembunyikan detail implementasi yang rumit, hanya menampilkan konsep utamanya.
Contoh pada aplikasi absensi:
- Setiap divisi punya aturan keterlambatan berbeda:
- Divisi A → telat jika lewat 5 menit.
- Divisi B → telat jika lewat 15 menit.
- Divisi C → jam fleksibel.
- Dengan abstraksi, sistem hanya mendefinisikan “aturan keterlambatan” secara umum.
- Implementasi detail masing-masing divisi dibuat sesuai kebijakan masing-masing.
| Pilar OOP | Definisi | Contoh Aplikasi Absensi |
|---|---|---|
| Encapsulation | Menyembunyikan detail internal | GPS & device ID disembunyikan, HR hanya lihat jam masuk & keterlambatan |
| Inheritance | Pewarisan atribut & method | Class KaryawanWFO dan KaryawanWFH mewarisi atribut dasar dari Karyawan |
| Polymorphism | Satu method, banyak perilaku | kirimNotifikasi() bisa berupa email, push notification, atau WhatsApp |
| Abstraction | Menyederhanakan konsep, sembunyikan detail | Aturan keterlambatan berbeda per divisi, tapi sistem hanya pakai “aturan keterlambatan” |