Perbedaan Antara Enkapsulasi dan Abstraksi

Perbedaan Antara Enkapsulasi dan Abstraksi
Perbedaan Antara Enkapsulasi dan Abstraksi

Video: Perbedaan Antara Enkapsulasi dan Abstraksi

Video: Perbedaan Antara Enkapsulasi dan Abstraksi
Video: Perbedaan Blog dan Website 2024, November
Anonim

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 satu kesatuan. Di sisi lain, Abstraksi adalah proses penyajian bagaimana suatu entitas berperilaku\tampak sebagai lawan dari bagaimana itu diimplementasikan.

Apa itu Enkapsulasi?

Enkapsulasi adalah proses membungkus data dan operasi yang beroperasi pada mereka ke dalam satu entitas. 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. Hal ini memastikan integritas data tetap terjaga karena pengguna tidak dapat mengakses dan mengubah data secara langsung sesuai keinginan. Pengguna akan mendapatkan atau menetapkan nilai data hanya melalui metode yang tersedia untuk umum bagi 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 tiga kali lipat. Melalui Enkapsulasi, pemrogram dapat membuat bidang kelas hanya baca atau tulis saja. 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 menjadi private dan menyediakan metode get and set (yang bersifat publik) untuk mengakses dan memodifikasi field private.

Apa itu Abstraksi?

Abstraksi adalah proses memisahkan detail presentasi dari detail implementasi. Hal ini dilakukan agar pengembang terbebas dari detail implementasi yang lebih kompleks. Sebaliknya, programmer dapat fokus pada presentasi atau detail perilaku entitas. Dalam istilah sederhana, abstraksi berfokus pada bagaimana entitas tertentu dapat digunakan daripada bagaimana hal itu diimplementasikan. Abstraksi pada dasarnya menyembunyikan detail implementasi, sehingga meskipun metodologi implementasi berubah seiring waktu, programmer tidak perlu khawatir bagaimana hal itu akan mempengaruhi programnya. Suatu sistem dapat diabstraksikan 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 menyebabkan beberapa kebingungan. Sebagai sebuah 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 suatu entitas dengan hanya detail esensial. Di Java, programmer dapat menggunakan kata kunci abstract untuk mendeklarasikan kelas sebagai entitas abstrak, yang mewakili karakter pendefinisian esensial dari 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 sedemikian rupa sehingga membuat terlihat apa yang seharusnya terlihat dan menyembunyikan apa yang seharusnya disembunyikan. Dengan kata lain, Enkapsulasi dapat diidentifikasi sebagai satu langkah di luar abstraksi. Sementara abstraksi mereduksi objek dunia nyata menjadi karakteristik pendefinisian esensialnya, enkapsulasi memperluas ide ini dengan memodelkan dan menghubungkan fungsionalitas entitas tersebut.

Direkomendasikan: