Abstraksi dan Enkapsulasi keduanya adalah konsep pemrograman berorientasi objek dasar (OOP) yang memungkinkan Anda untuk mengimplementasikan objek dunia nyata ke dalam program dan kode. Sementara keduanya berjalan beriringan, mereka sangat berbeda satu sama lain. Meskipun setiap metode adalah enkapsulasi, itu juga sebuah abstraksi. Secara sederhana, ketika Anda menggabungkan hal-hal yang berbeda untuk membuat entitas, Anda sebenarnya membuat konsep - abstrak. Meskipun keduanya secara teknis tidak dapat dipisahkan, mereka secara harfiah tidak memiliki kesamaan. Hampir benar bahwa setiap enkapsulasi adalah abstraksi karena mereka berdua menyembunyikan sesuatu, namun mereka memiliki perbedaan yang adil.
Abstraksi adalah konsep OOP dasar yang berfokus hanya pada data yang relevan dari suatu objek dan menyembunyikan semua detail yang tidak relevan yang mungkin atau mungkin tidak untuk perilaku umum atau khusus. Ini menyembunyikan detail latar belakang dan menekankan pada poin-poin penting untuk mengurangi kompleksitas dan meningkatkan efisiensi. Pada dasarnya, abstraksi adalah alat pemrograman untuk mengelola kompleksitas. Abstraksi berfokus pada ide daripada peristiwa. Ini menyembunyikan detail pada tingkat desain dengan menyediakan fungsionalitas kepada pengguna. Objek yang dihasilkan juga bisa disebut abstraksi. Pemrogram memastikan entitas yang disebutkan akan memiliki semua aspek penting termasuk dan tidak ada yang tidak relevan.
Mari kita ambil contoh nyata dari abstraksi di dunia nyata. Mari kita perhatikan kasus kendaraan, yang dalam hal ini adalah kendaraan Anda. Seorang mekanik mencoba memperbaiki mobil Anda atau katakanlah bagian tertentu dari mobil Anda. Di sini, Anda adalah pengguna dan Anda tidak ingin masuk ke spesifik mobil Anda atau bagian mana yang benar-benar rusak. Anda sebenarnya tidak peduli dengan hal-hal itu; Anda hanya ingin kendaraan Anda kembali ke kondisi aslinya tanpa khawatir tentang detailnya. Jadi, Anda benar-benar memberi tahu mekanik apa yang Anda inginkan dengan memisahkan bagian implementasi. Ini abstraksi. Anda berfokus pada hal yang paling penting, yaitu memperbaiki mobil Anda, daripada berfokus pada hal-hal spesifik.
Enkapsulasi adalah konsep OOP lain yang mengikat data dan fungsi menjadi satu komponen sekaligus membatasi akses ke beberapa komponen. Ini adalah salah satu konsep dasar utama OOP yang membungkus data dan informasi di bawah satu unit. Dalam istilah teknis, enkapsulasi berarti menyembunyikan atribut untuk melindungi variabel dari akses luar sehingga perubahan dalam satu bagian aplikasi tidak akan memengaruhi bagian lainnya. Sebaliknya, dengan membuat informasi lebih terbuka Anda akan mengambil risiko penyalahgunaan data. Ini memberikan integritas dasar ke data dengan melindunginya dari dunia luar. Secara sederhana, ini menyembunyikan detail ekstra dari dunia luar.
Mari kita ambil contoh mouse Bluetooth. Anda hanya perlu tahu tentang perilaku perangkat tanpa khawatir tentang detail implementasi seperti apa jenis sensor yang dimiliki mouse, apakah nirkabel atau tidak, dll. Setiap detail menjelaskan mouse tetapi terlepas dari detailnya, itu hanya mouse. Anda hanya perlu antarmuka untuk menggunakan mouse, yang dalam hal ini adalah pointer mouse. Ini adalah enkapsulasi.
Walaupun keduanya adalah konsep dasar yang terkait dengan OOP dan secara teknis tidak dapat dipisahkan, mereka masih memiliki perbedaan dalam banyak aspek.
Abstraksi | Enkapsulasi |
Ini hanya berurusan dengan rincian yang relevan dengan menyembunyikan yang tidak relevan untuk mengurangi kompleksitas sehingga meningkatkan efisiensi. | Ini mengikat data dan informasi bersama menjadi satu kesatuan untuk melindungi data dari sumber eksternal. |
Ini mengacu pada ide menyembunyikan data yang tidak diperlukan untuk tujuan presentasi. | Itu menyembunyikan data dan kode untuk membatasi akses yang tidak diinginkan. |
Ini berfokus pada apa dan bukan bagaimana. | Itu menyembunyikan mekanisme internal bagaimana melakukan sesuatu. |
Ini menyembunyikan detail yang tidak perlu pada level desain. | Ini juga menyembunyikan detail tetapi pada tingkat implementasi. |
Informasi dan data dipisahkan dari data yang relevan. | Informasi disembunyikan di dalam kapsul untuk akses yang dekat. |
Ini berkaitan dengan ide daripada acara. | Idenya adalah untuk melindungi data dari dunia luar. |
Diimplementasikan menggunakan kelas dan antarmuka abstrak. | Diimplementasikan menggunakan pengubah akses yang dilindungi, pribadi, dan paket-pribadi. |
Meskipun keduanya adalah konsep OOP terkait dengan penyembunyian data, mereka sangat berbeda satu sama lain. Abstraksi juga berhubungan dengan bersembunyi seperti enkapsulasi, tetapi sementara yang pertama menyembunyikan kompleksitas, yang terakhir menyimpan data yang dienkapsulasi dengan mengendalikan akses ke sana. Abstraksi mengacu pada konsep yang hanya mewakili fitur yang diperlukan dengan menyembunyikan detail yang tidak relevan untuk mengurangi kompleksitas aplikasi sehingga meningkatkan efisiensi. Enkapsulasi, di sisi lain, mengacu pada konsep menyembunyikan semua mekanisme internal suatu program untuk melindungi informasi dari akses yang tidak diinginkan. Ini mengikat data dan informasi bersama menjadi satu komponen dengan membatasi akses ke komponen lain.