Enkapsulasi vs abstraksi
Enkapsulasi dan abstraksi adalah dua konsep yang berbeda tetapi terkait yang ditemukan dalam bahasa OOP (pemrograman berorientasi objek). Enkapsulasi adalah konsep menggabungkan data dan perilaku bersama sebagai entitas tunggal. Di sisi lain, abstraksi adalah proses menyajikan bagaimana suatu entitas berperilaku \ terlihat sebagai lawan dari bagaimana ia diimplementasikan.
Apa itu enkapsulasi?
Enkapsulasi adalah proses pembungkus data dan operasi yang beroperasi pada mereka ke dalam satu entitas tunggal. Ini pada dasarnya berarti bahwa untuk mengakses data, metode tertentu yang telah ditentukan harus digunakan. Dengan kata lain, data yang dienkapsulasi tidak dapat diakses secara langsung. Ini memastikan bahwa integritas data dipertahankan karena pengguna tidak dapat secara langsung mengakses dan memodifikasi data sesuai keinginannya. Pengguna akan mendapatkan atau mengatur nilai data hanya melalui metode yang tersedia untuk umum untuk pengguna. Metode ini biasanya memberikan validasi data sehingga hanya data dalam format yang sesuai yang diizinkan untuk dimasukkan ke dalam bidang. Oleh karena itu, manfaat enkapsulasi adalah tiga kali lipat. Melalui enkapsulasi, programmer dapat membuat bidang kelas hanya-baca atau hanya menulis. Kedua, kelas dapat memiliki kontrol total atas apa yang disimpan di bidangnya. Akhirnya, pengguna kelas tidak perlu khawatir bagaimana datanya disimpan. Di Java, programmer dapat mendeklarasikan semua variabel instance sebagai pribadi dan menyediakan metode Get and Set (yang publik) untuk mengakses dan memodifikasi bidang pribadi.
Apa itu abstraksi?
Abstraksi adalah proses memisahkan detail presentasi dari detail implementasi. Ini dilakukan agar pengembang dibebaskan dari detail implementasi yang lebih kompleks. Sebaliknya, programmer dapat fokus pada presentasi atau detail perilaku entitas. Secara sederhana, abstraksi berfokus pada bagaimana entitas tertentu dapat digunakan daripada bagaimana ia diimplementasikan. Abstraksi pada dasarnya menyembunyikan detail implementasi, sehingga bahkan jika metodologi implementasi berubah dari waktu ke waktu, programmer tidak perlu khawatir bagaimana hal itu akan mempengaruhi programnya. Suatu sistem dapat diabstraksi dalam beberapa lapisan atau level. Misalnya, lapisan abstraksi tingkat rendah akan mengungkapkan detail perangkat keras, sedangkan abstraksi tingkat tinggi hanya akan mengungkapkan logika bisnis entitas. Istilah abstraksi dapat digunakan untuk merujuk pada entitas dan proses dan ini mengarah pada beberapa kebingungan. Sebagai suatu proses, abstraksi berarti mengekstraksi detail penting sambil mengabaikan detail yang tidak penting dari suatu item atau sekelompok item, sedangkan sebagai entitas, abstraksi berarti model atau pandangan entitas dengan hanya detail penting yang penting. Di Java, programmer dapat menggunakan kata kunci abstrak untuk mendeklarasikan kelas sebagai entitas abstrak, yang mewakili penentu penting karakterisasi entitas dunia nyata.
Apa perbedaan antara enkapsulasi dan abstraksi?
Meskipun enkapsulasi dan abstraksi adalah konsep yang sangat terkait yang ditemukan dalam bahasa pemrograman berorientasi objek, mereka memiliki perbedaan utama. Abstraksi adalah teknik, yang membantu kita mengidentifikasi apa yang harus terlihat dan apa yang harus disembunyikan. Enkapsulasi adalah teknik untuk mengemas informasi sehingga membuat terlihat apa yang harus terlihat dan menyembunyikan apa yang harus disembunyikan. Dengan kata lain, enkapsulasi dapat diidentifikasi sebagai satu langkah di luar abstraksi. Sementara abstraksi mengurangi objek dunia nyata ke karakteristik pendefinisiannya yang penting, enkapsulasi memperluas ide ini dengan memodelkan dan menghubungkan fungsionalitas ini dari entitas itu.