Apakah Beda Abstraksi dan Enkapsulasi (Software)

Abstraksi dan Enkapsulasi keduanya merupakan konsep dasar pemrograman berorientasi objek (OOP) yang memungkinkan Anda mengimplementasikan objek dunia nyata ke dalam program dan kode.

Sementara keduanya berjalan beriringan, mereka sangat berbeda satu sama lain.

Sementara setiap metode adalah enkapsulasi, itu juga merupakan abstraksi.

Sederhananya, ketika Anda menyatukan berbagai hal untuk membuat entitas, Anda sebenarnya membuat konsep – abstrak.

Meskipun keduanya secara teknis tidak dapat dipisahkan, mereka benar-benar tidak memiliki kesamaan.

Hampir benar bahwa setiap enkapsulasi adalah abstraksi karena keduanya menyembunyikan sesuatu, namun, mereka memiliki perbedaan yang adil.

Apa yang dimaksud dengan Abstraksi?

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.

Itu menyembunyikan detail latar belakang dan menekankan pada poin-poin penting untuk mengurangi kerumitan dan meningkatkan efisiensi.

Pada dasarnya, abstraksi adalah alat pemrograman untuk mengelola kompleksitas.

Abstraksi berfokus pada ide daripada peristiwa.

Itu menyembunyikan detail pada level desain dengan menyediakan fungsionalitas kepada pengguna.

Objek yang dihasilkan juga bisa disebut abstraksi.

Pemrogram memastikan entitas bernama akan menyertakan semua aspek penting dan tidak ada aspek yang tidak relevan.

Mari kita ambil contoh abstraksi dunia nyata.

Mari kita pertimbangkan kasus kendaraan, yang dalam hal ini adalah kendaraan Anda.

Seorang montir mencoba memperbaiki mobil Anda atau katakanlah bagian tertentu dari mobil Anda.

Di sini, Anda adalah pengguna dan Anda tidak ingin membahas secara spesifik mobil Anda atau bagian mana yang sebenarnya rusak.

Anda sebenarnya tidak peduli dengan hal-hal itu; Anda hanya ingin kendaraan Anda kembali ke kondisi semula tanpa mengkhawatirkan detailnya.

Jadi, Anda sebenarnya memberi tahu mekanik apa yang Anda inginkan dengan memisahkan bagian penerapannya.

Ini adalah abstraksi.

Anda fokus pada hal yang paling penting, yaitu memperbaiki mobil Anda, daripada berfokus pada hal-hal spesifik.

Apa yang dimaksud dengan Enkapsulasi?

Enkapsulasi adalah konsep OOP lain yang mengikat data dan fungsi menjadi satu komponen sambil membatasi akses ke beberapa komponen.

Itu 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 di satu bagian aplikasi tidak akan memengaruhi bagian lainnya.

Sebaliknya, dengan membuat informasi lebih terbuka, Anda berisiko menyalahgunakan data.

Ini memberikan integritas dasar pada data dengan melindunginya dari dunia luar.

Sederhananya, ini menyembunyikan detail ekstra dari dunia luar.

Mari kita ambil contoh mouse Bluetooth.

Anda hanya perlu mengetahui tentang perilaku perangkat tanpa mengkhawatirkan detail implementasi seperti jenis sensor yang dimiliki mouse, apakah nirkabel atau tidak, dll.

Setiap detail menggambarkan mouse tetapi terlepas dari detailnya, itu hanya mouse.

Anda hanya memerlukan antarmuka untuk menggunakan mouse, yang dalam hal ini adalah pointer mouse.

Ini enkapsulasi.

Perbedaan antara Abstraksi dan Enkapsulasi

Meskipun keduanya merupakan konsep dasar yang terkait dengan OOP dan secara teknis tidak dapat dipisahkan, keduanya masih memiliki perbedaan dalam banyak aspek.

  1. Perbedaan “Definisi” Abstraksi dan Enkapsulasi – Abstraksi adalah konsep dasar OOP yang menekankan pada semua aspek penting dari suatu objek dengan menyembunyikan detail yang tidak relevan untuk meningkatkan efisiensi dan menghilangkan kompleksitas.

    Enkapsulasi, di sisi lain, adalah mekanisme penyembunyian data yang membungkus data dan informasi dalam kapsul untuk membatasi akses dari dunia luar.

  2. Perbedaan “Fungsionalitas” Abstraksi dan Enkapsulasi– Abstraksi adalah mekanisme penyembunyian data yang hanya menyoroti fitur penting untuk membuat program kompleks menjadi lebih sederhana, sedangkan enkapsulasi, di sisi lain, adalah metode pengikatan data dan kode menjadi satu kesatuan.

    Idenya adalah untuk melindungi detail implementasi dari akses eksternal.

  3. Perbedaan “Implementasi” Abstraksi dan Enkapsulasi – Abstraksi diimplementasikan menggunakan kelas abstrak dan antarmuka, sedangkan enkapsulasi diimplementasikan menggunakan pengubah akses.

    Lima jenis pengubah digunakan untuk mengenkapsulasi data: Pribadi, Publik, Internal, Dilindungi, dan Dilindungi Internal.

  4. Perbedaan dalam “Konsep” Abstraksi dan Enkapsulasi– Gagasan di balik abstraksi adalah fokus pada apa daripada bagaimana.

    Enkapsulasi menyembunyikan mekanisme internal bagaimana caranya.

    Misalnya, saat Anda mengendarai mobil, Anda tahu persis fungsi pedal rem, tetapi Anda mungkin tidak mengetahui seluruh mekanisme di baliknya karena datanya dienkapsulasi.

  5. Perbedaan “Contoh” Abstraksi dan Enkapsulasi – Mari kita ambil contoh smartphone.

    Anda tahu apa fungsinya tetapi Anda mungkin tidak tahu bagaimana cara kerjanya.

    Anda hanya peduli dengan tampilan layar dan tombol keypad daripada mengkhawatirkan sirkuit dalamnya.

    Di sini, smartphone adalah abstrak di mana detail implementasi bagian dalam dienkapsulasi.

Abstraksi vs.

Enkapsulasi dengan tabel perbandingan

Abstraksi

Enkapsulasi

Ini hanya berurusan dengan detail yang relevan dengan menyembunyikan yang tidak relevan untuk mengurangi kompleksitas sehingga meningkatkan efisiensi.

Itu 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 daripada bagaimana.

Itu menyembunyikan mekanisme internal bagaimana ia melakukan sesuatu.

Itu menyembunyikan detail yang tidak perlu pada tingkat desain.

Itu juga menyembunyikan detail tetapi pada tingkat implementasi.

Informasi dan data dipisahkan dari data yang relevan.

Informasi disembunyikan di dalam kapsul untuk akses dekat.

Ini berurusan dengan ide-ide daripada peristiwa.

Idenya adalah untuk melindungi data dari dunia luar.

Ini diimplementasikan menggunakan kelas abstrak dan antarmuka.

Itu diimplementasikan menggunakan pengubah akses yang dilindungi, pribadi, dan paket-pribadi.

Ringkasan

Meskipun keduanya merupakan konsep OOP yang terkait dengan penyembunyian data, keduanya sangat berbeda satu sama lain.

Abstraksi juga terkait dengan penyembunyian seperti enkapsulasi, tetapi sementara yang pertama menyembunyikan kompleksitas, yang terakhir menyimpan data yang dienkapsulasi dengan mengontrol akses ke sana.

Abstraksi mengacu pada konsep yang hanya menampilkan 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.

Itu mengikat data dan informasi bersama menjadi satu komponen dengan membatasi akses ke komponen lain.