Dalam pemrograman komputer, objek akses data (DAO) adalah teknik desain yang membuat lapisan modul untuk mengelola semua akses data untuk program perangkat lunak. Lapisan ini bertanggung jawab untuk membaca dan menulis data ke database atau sistem file eksternal. Dalam desain perangkat lunak, ada banyak cara untuk membaca dan menulis data ke database. Ini dapat menyebabkan kode perangkat lunak ceroboh karena pengembang dapat menggunakan beberapa metode untuk melakukan tugas akses data yang sama. Salah satu manfaat utama menggunakan DAO adalah kemampuan untuk menstandardisasi bagaimana data diakses untuk program perangkat lunak. Desain DAO memastikan bahwa semua akses database akan dilakukan dengan cara yang sama, yang membuat perangkat lunak lebih baik.
Objek akses data pertama kali diperkenalkan secara akademis dalam model pemrograman objek. Pendekatan arsitektur ini mengharuskan perangkat lunak dibangun ke dalam modul tertentu dengan tujuan tertentu. DAO adalah modul perangkat lunak yang memiliki tanggung jawab untuk mengambil dan memodifikasi semua data dari perangkat penyimpanan data apa pun.
Teknik menggunakan DAO tidak unik untuk bahasa pemrograman tertentu. Microsoft MS Access pertama kali memperkenalkan pendekatan ini, tetapi saat ini tersedia di sebagian besar bahasa pemrograman modern. Ini dianggap sebagai praktik terbaik untuk memusatkan akses data karena membuat aplikasi perangkat lunak menjadi fleksibel. Teknik ini dapat menghemat waktu pengembangan yang berharga karena menciptakan modul yang dapat digunakan kembali untuk database.
Salah satu contoh objek akses data dalam praktiknya adalah tampilan hasil halaman demi halaman yang sering ditemukan di web browser. Ketika halaman pertama hasil ditampilkan setelah pencarian, layar biasanya memungkinkan pengguna untuk memilih halaman data berikutnya. Ini menggunakan pola DAO, yang memungkinkan pengguna untuk bergerak maju dan mundur melalui sekumpulan data.
Banyak kerangka kerja perangkat lunak telah mengimplementasikan objek akses data di dalam perangkat lunak. Beberapa contoh termasuk hibernasi, pegas, dan objek data java (JDO). Kerangka kerja ini berguna untuk pengembang perangkat lunak karena mereka telah merangkum pola DAO dalam kerangka kerja, membuatnya tersembunyi dari pengembang.
Menggunakan objek akses data juga dapat menghemat waktu dengan pengujian dan penyebaran kode perangkat lunak. Modul pengkodean tunggal bertanggung jawab atas akses data untuk seluruh aplikasi. Ini membuat pengujian lebih mudah karena satu modul dapat memvalidasi beberapa titik akses data perangkat lunak.