Perbedaan Antara Abstraksi dan Enkapsulasi
Perbedaan Utama antara Abstraksi vs Enkapsulasi
- Abstraksi hanya menampilkan data yang berguna dengan menyediakan rincian yang paling diperlukan, sedangkan Enkapsulasi membungkus kode dan data untuk informasi yang diperlukan.
- Abstraksi terutama berfokus pada apa yang harus dilakukan, sedangkan Enkapsulasi berfokus pada bagaimana hal itu harus dilakukan.
- Abstraksi menyembunyikan kompleksitas dengan memberi Anda gambaran yang lebih abstrak, sementara Enkapsulasi menyembunyikan pekerjaan internal sehingga Anda dapat mengubahnya nanti.
- Abstraksi membantu Anda mempartisi program menjadi banyak bagian independen, sedangkan Enkapsulasi mudah diubah dengan persyaratan baru.
- Membandingkan Enkapsulasi vs Abstraksi, Abstraksi memecahkan masalah di tingkat desain sementara Enkapsulasi memecahkan masalah di tingkat implementasi.
- Abstraksi menyembunyikan rincian tidak relevan yang ditemukan dalam kode, sedangkan Enkapsulasi membantu pengembang untuk mengatur keseluruhan kode dengan mudah.

Definisi Abstraksi
Abstraksi adalah konsep OOP yang hanya berfokus pada data relevan dari suatu objek. Abstraksi menyembunyikan detail latar belakang dan menekankan titik data penting untuk mengurangi kompleksitas dan meningkatkan efisiensi. Secara umum, abstraksi hanya menyimpan informasi yang paling relevan untuk proses tertentu. Abstraksi metode ini terutama berfokus pada ide, bukan pada fungsi sebenarnya.
Definisi Enkapsulasi
Enkapsulasi adalah metode untuk membuat sistem yang kompleks menjadi lebih mudah ditangani oleh pengguna akhir. Pengguna tidak perlu khawatir tentang detail internal dan kompleksitas sistem. Enkapsulasi adalah proses membungkus data dan kode, yang mengoperasikan data tersebut menjadi satu kesatuan. Anda dapat menganggapnya sebagai pembungkus pelindung yang menghentikan akses acak kode yang ditentukan di luar pembungkus itu.

Perbedaan antara Abstraksi dan Enkapsulasi
Inilah perbedaan utama antara Abstraksi vs Enkapsulasi:
Parameter | Abstraksi | Enkapsulasi |
---|---|---|
Digunakan untuk | Abstraksi memecahkan masalah dan persoalan yang muncul pada tahap desain. | Enkapsulasi memecahkan masalah dan isu yang muncul pada tahap implementasi. |
Fokus | Abstraksi memungkinkan Anda fokus pada apa yang dilakukan objek, bukan pada cara objek melakukannya | Enkapsulasi memungkinkan Anda menyembunyikan kode dan data ke dalam satu unit untuk mengamankan data dari dunia luar. |
Organisasi | Anda dapat menggunakan abstraksi menggunakan Antarmuka dan Kelas Abstrak. | Anda dapat menerapkan enkapsulasi menggunakan Pengubah Akses (Publik, Terlindungi & Pribadi.) |
Fokus | Fokus terutama pada apa yang harus dilakukan. | Fokus terutama pada bagaimana hal itu harus dilakukan. |
Aplikasi | Selama tingkat desain. | Selama tingkat Implementasi. |
Mengapa Anda membutuhkan Abstraksi?
Berikut adalah alasan utama mengapa abstraksi diperlukan untuk Pemrograman Berorientasi Objek:
- Membantu Anda menyederhanakan representasi model domain.
- Abstraksi menyembunyikan rincian tidak relevan yang ditemukan dalam kode.
- Abstraksi membantu Anda mempartisi program menjadi banyak konsep independen.
- Menawarkan fleksibilitas terbesar saat menggunakan objek ADT (Abstract Data Type) dalam situasi berbeda
Mengapa Anda memerlukan Enkapsulasi?
Keuntungan utama dari enkapsulasi adalah
- Ini meningkatkan pemeliharaan aplikasi.
- Menawarkan fleksibilitas kepada pengguna untuk menggunakan sistem dengan sangat mudah
- Membantu pengembang mengatur kode dengan lebih baik
- Membuat keseluruhan proses pengkodean lebih mudah, karena Anda hanya memikirkan apa yang dilakukan kelas lain, bukan bagaimana kelas tersebut melakukannya
- Cara ini membantu para pengembang untuk lebih 'objektif' dan berorientasi pada hasil.
- Kode Enkapsulasi cukup fleksibel dan mudah diubah dengan persyaratan baru.
- Enkapsulasi membuat pengujian unit menjadi mudah.
- Hal ini memungkinkan Anda mengurangi penggabungan modul dan meningkatkan kohesi di dalam modul karena semua bagian dari satu hal dienkapsulasi di satu tempat.
- Enkapsulasi membantu Anda mengubah suatu bagian kode tanpa mempengaruhi bagian kode lainnya.
- Meningkatkan keterbacaan kode Aplikasi
- Keamanan yang ditingkatkan dan membuat pemeliharaan aplikasi lebih mudah
- Antarmuka enkapsulasi hanya memungkinkan interaksi yang terdefinisi dengan baik.
Contoh Abstraksi
Misalkan Anda ingin membuat aplikasi perbankan dan diminta untuk mengumpulkan semua informasi tentang nasabah Anda. Ada kemungkinan Anda akan mendapatkan informasi berikut tentang nasabah tersebut.

Namun, tidak semua informasi di atas diperlukan untuk membuat aplikasi perbankan.
Jadi, Anda hanya perlu memilih informasi yang berguna untuk aplikasi perbankan Anda dari kumpulan itu. Data seperti nama, alamat, informasi pajak, dll. masuk akal untuk aplikasi perbankan.

Karena kami telah mengambil/menghapus/memilih informasi pelanggan dari kumpulan yang lebih besar, prosesnya disebut sebagai Abstraksi.
Namun, informasi yang sama setelah diekstraksi dapat digunakan untuk berbagai aplikasi. Misalnya, Anda dapat menggunakan data yang sama untuk lamaran rumah sakit, lamaran portal kerja, database Pemerintah, dll. dengan sedikit atau tanpa modifikasi. Oleh karena itu, ini menjadi Data Master Anda. Ini adalah keuntungan dari Abstraksi.
Contoh Enkapsulasi
Mari kita ambil contoh perangkat seluler. Dengan bantuan perangkat seluler, Anda dapat melakukan berbagai fungsi seperti mengambil gambar, mengirim pesan, merekam video/audio, mengakses web dan masih banyak lagi.
Fitur-fitur yang disebutkan di atas adalah fungsi dari sebagian besar ponsel pintar. Namun, Anda tidak perlu memahami detail fungsi internal dari fitur-fitur tersebut sebelum menggunakan program ini. Misalnya, Anda tidak perlu mengetahui bagaimana kamera Anda menghitung koreksi gamma atau mengidentifikasi wajah manusia dalam sebuah gambar. Anda hanya perlu mempelajari antarmuka perangkat lunak. Ini adalah enkapsulasi.