Perbedaan utama: Menyembunyikan data, juga dikenal sebagai penyembunyian informasi atau enkapsulasi data dalam ilmu komputer, adalah teknik pengembangan perangkat lunak yang digunakan dalam pemrograman berorientasi objek (OOP). Hal ini terutama digunakan untuk menyembunyikan detail objek internal, yaitu keputusan desain dalam program komputer yang paling mungkin berubah. Abstraksi adalah proses lain dalam ilmu komputer. Ini menyembunyikan detail implementasi dari data dan program. Ini hanya menunjukkan perincian yang relevan ketika dan ketika diminta oleh program.
Penyembunyian data, juga dikenal sebagai penyembunyian informasi atau enkapsulasi data dalam ilmu komputer, adalah teknik pengembangan perangkat lunak yang digunakan dalam pemrograman berorientasi objek (OOP). Hal ini terutama digunakan untuk menyembunyikan detail objek internal, yaitu keputusan desain dalam program komputer yang paling mungkin berubah. Ini menyembunyikan data dari program bagian lain, sehingga ketika data atau keputusan desain berubah, mereka tidak akan berdampak pada keseluruhan program, hanya bagian-bagian yang detailnya tidak disembunyikan. Hal ini pada gilirannya membuat keseluruhan program jauh lebih stabil, karena satu perubahan pada bagian program tidak akan mengubah keseluruhan program.
Penyembunyian data juga memiliki kemampuan untuk mencegah aspek tertentu dari kelas atau komponen perangkat lunak agar tidak dapat diakses oleh kliennya. Ini dicapai dengan menggunakan fitur bahasa pemrograman seperti variabel pribadi atau kebijakan ekspor eksplisit. Penyembunyian data juga mengurangi kompleksitas sistem untuk meningkatkan ketahanan dengan membatasi saling ketergantungan antar komponen perangkat lunak.
Abstraksi data memungkinkan programmer untuk mengurangi dan memfaktorkan perincian sehingga ia dapat fokus pada beberapa konsep sekaligus. Ini hanya menunjukkan rincian yang diperlukan oleh pengguna, sedangkan semua detail dan informasi lainnya disembunyikan. Ini merampingkan data yang tersedia, sehingga pengguna mungkin tidak harus berurusan dengan detail yang tidak perlu pada saat itu.
Suatu sistem dapat memiliki beberapa lapisan abstraksi. Setiap lapisan akan memiliki arti yang berbeda dan menyembunyikan detail yang berbeda. Wikipedia mencantumkan contoh ini: lapisan abstraksi tingkat rendah memperlihatkan rincian perangkat keras komputer tempat program dijalankan, sementara lapisan tingkat tinggi berurusan dengan logika bisnis program.
Perbedaan utama antara penyembunyian data dan abstraksi data adalah bahwa penyembunyian data menyembunyikan beberapa data dari bagian lain dari program. Data ini tidak pernah tersedia dari bagian-bagian program yang disembunyikan, sampai programmer menulis ulang kode untuk menyembunyikan data. Namun dalam abstraksi data, data tidak sepenuhnya disembunyikan. Itu hanya tidak ditampilkan karena saat ini tidak relevan. Jika data menjadi relevan, maka akan ditampilkan.