Skip to content

Instantly share code, notes, and snippets.

@ReadTheFuckingManual
Created September 22, 2025 01:49
Show Gist options
  • Save ReadTheFuckingManual/89f02096da70349d08735c31c37dea9b to your computer and use it in GitHub Desktop.
Save ReadTheFuckingManual/89f02096da70349d08735c31c37dea9b to your computer and use it in GitHub Desktop.

📌 Penerapan Pilar OOP pada Aplikasi Absensi

1. Encapsulation (Enkapsulasi)

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.

2. Inheritance (Pewarisan)

Definisi: Sebuah class dapat mewarisi atribut dan method dari class lain.

Contoh pada aplikasi absensi:

  • Class Karyawan memiliki 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.

3. Polymorphism (Polimorfisme)

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.

4. Abstraction (Abstraksi)

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.

✨ Ringkasan Tabel

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”
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment