Minggu, 29 Mei 2011

ADO Versus DAO/RDO.

Munculnya istilah-istilah/tehnikal dan konsep baru sering membuat kacau dan menjadi masalah terutama bagi para programmer yang baru akan belajar. Biasanya timbul kebingungan, Mana sebaiknya yang harus dipelajari dan mana yang lebih banyak memberikan keuntungan (Benefit side) ?. Contohnya adalah yang berkaitan dengan Teknologi ADO versus DAO/RDO, hampir di setiap forum mailing list Visual basic para programmer pemula di bingung-kan dengan apa perbedaan dari keduanya dan dimana letak keuntunganya. Belum lagi terjawab kebingungan ini, muncul juga istiliah OLEDB, UDA dan lain sebagainya.

Tapi Insya Allah, lewat tulisan singkat ini, saya mencoba untuk menjawab kebingungan anda. Setidaknya ini karena saya pun pernah mengalami kesulitan pemahaman tentang istilah diatas.
Kita mulai saja dengan apa itu ODBC, (Upss...mahluk apa lagi ini). ODBC atau Open DataBase Connectivity merupakan API (Application Programming Interfaec) database yang khusus digunakan untuk mengakses database relasional.
API (Application Programming Interface) (baca epi-ay) merupakan kumpulan dari rutin-rutin program/modul/procedure/function yang bersifat reuseable dan yang menjadi jembatan antara aplikasi yang akan anda buat dengan Sistem Operasi, hardware atau dengan software lainnya (Istilah API hanya berlaku pada Sistem Operasi Window XXX, istilahnya mungkin akan menjadi berbeda jika digunakan pada sistem operasi lain).
Apakah selama ini anda sudah menggunakan API dalam pembuatan aplikasi? Ya! secara tidak langsung anda sebetulnya sudah menggunakan API, ratusan API sudah tersedia dalam sistem operasi Windows. Sadar atau tidak sadar anda sudah menjalankan API-API tersebut, sebutlah anda menjalankan fungsi MsgBox, secara automatis VB akan memanggil API MessageBox yang terletak pada library user32.dll, berikut prototype dari fungsi tersebut.
' Pada VB untuk mengakses API anda dapat
' menggunakan Declare yang dapat anda letakan
' pada level module atau Form tertentu.
int MessageBox(

HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
    UINT uType // style of message box
);


' Coba bandingan dengan kemudahannya
' dengan, sintaks dibawah;
MsgBox "Ini tidak perlu pendeklarasian fungsi API", _
"Informasi"
Lalu kenapa anda tidak menggunakan API saja dalam membangun sebuah aplikasi, apa bisa?. Jawabannya adalah! BISA! Tapi ini terlalu kompleks dan rumit. Akan banyak waktu terbuang hanya untuk berurusan dengan API-API tersebut. Kebanyakan programmer adalah menginginkan kemudahan dan kesederhanaan. Termasuk saya, biarlah programmer-programmer Microsoft membuat baru API-API tersebut, yang saya butuhkan sekarang adalah dapat membangun aplikasi dengan cepat, effective dan powerfull (Secara kenyataan Untuk mendapatkan program yang powefull tidak dapat dilakukan dengan cepat, ;-) ). Jadilah API-API tersebut di kemas dan dibungkus dengan dalam suatu library/komponen, dan biasanya terletak pada .DLL atau .OCX.
Begitupula dengan ODBC, terdiri dari fungsi-fungsi API yang tujuannya untuk mengakses database relasional. Suatu impian dari para programmer yang ingin agar dapat berhubungan secara langsung dengan database apa saja tanpa perlu memperhatikan database apa yang digunakan, entah itu Paradox, InterBase, SQLServer, Access, Oracle, MySql dan lain-lain sebagainya. Saya salut kepada anda yang mau menggunakan ODBC API dan selesai dalam waktu 1 hari, tapi bagaimana jika ada orang yang dapat menggantikan waktu kerja anda tersebut menjadi beberapa menit saja dengan menggunakan methoda berbeda???.
Karena kekompleks-an dan kerumitan-nya maka dikemaslah segala fasilitas yang ada pada ODBC kedalam bentuk yang lebih mudah untuk digunakan yaitu dengan melahirkan DAO/RDO suatu Objek ActiveX. ODBC yang merupakan impian para programmer untuk dapat mengakses bermacam database dengan satu cara (One way) dan sudah didukung oleh banyak vendor/third party pembuat database, menyebabkan para programmer Microsoft bermaksud untuk mengembangkan teknologi ini. "Mengakses banyak database hanya dengan satu cara" yang merupakan ide lama dan impian dari para programmer yang sudah terwujud dengan adanya ODBC, akhirnya melahirkan OLE DB suatu tehnologi baru Microsoft dalam pengakses-an database. OLE DB masih berbentuk API sehingga bentuk yang rumit inipun dikemas kembali kedalam bentuk yang lebih mudah digunakan dan berbentuk Objek ActiveX, yang dikenal kemudian dengan nama ADO (ActiveX Data Oject).
Untuk mudahnya adalah OLE DB ekivalen dengan ODBC yaitu sama-sama terdiri kumpulan rutin-rutin API yang membolehkan pengaksesan database relasional, sedangkan bagian untuk membungkus kerumitan tersebut menjadi bagian ADO yang ekivalen dengan DAO/RDO.
Kadang dengan adanya ADO, DAO dan RDO masih ada saja orang yang melihatnya rumit, sehingga dikemas kembali fungsi yang ada pada masing-masing kedalam bentuk visible component (Komponen yang terlihat pada saat waktu design) ADODC, DataControl, RDC.
Selanjutnya, adalah bagaimana menggunakan ADO dalam mengakses database?. Silakan anda lanjutkan membaca artikel ini.
1. Menambah Data kedalam Database.

    Untuk proses pengakses-an suatu database dengan menggunakan ADO, sebenarnya tidak jauh berbeda dengan apabila kita menggunakan DAO. Hanya saja pada penjelasan dibawah ini diberikan alternative lainnya. Sehingga anda dapat memilih mana yang sebaiknya digunakan. Kita mulai saja dengan proses penambahan record/row baru.
    a. Siapkan tempat untuk menyimpan informasi.
    b. Simpan informasi kedalam tempat yg sudah disiapkan sebelumnya.
    c. Simpan secara permanent informasi tersebut kedalam suatu media.
    ' Contoh langsung proses tersebut diatas
    ' pada Visual Basic adalah sebagai berikut:

    rs.AddNew ' Langkah (a)
    rs.Fields("NAMA") = txtNama.Text ' Langkah (B)
    rs.Fields("ALAMAT") = txtAlamat.Text
    rs.Update ' Langkah ©

    Alternatif lain selain cara diatas adalah dapat menggunakan;

    rs.AddNew "NAMA", txtNama.Text
    rs.AddNew "ALAMAT", txtAlamat.Text

    Atau andapun dapat menggabungkan-nya menjadi satu baris yaitu dengan menggunakan Fungsi Array, perhatikan contoh dibawah:

    rs.AddNew Array("NAMA", "ALAMAT"), _
    Array(txtNama.Text, txtAlamat.Text )

2. Merubah informasi pada Database.
    Untuk merubah data yang ada, pada DAO kita dapat menggunakan Method .Edit. Tapi hal ini tidak dapat lagi dilakukan apabila menggunakan ADO. Karena pada ADO method .Edit sudah tidak ada lagi. Lalu bagaimana jika ingin merubah/memperbaiki/mengedit data yang sudah ada?.
    Mudah!... ya, ada dapat menggunakan Method .Update, perhatikan contoh dibawah ini.
    ' Contoh langsung proses tersebut diatas

    rs.Fields("NAMA") = txtNama.Text
    rs.Fields("ALAMAT") = txtAlamat.Text
    rs.Update

    Langkah untuk mengedit data dapat dilakukan tanpa menggunakan Method .Edit (Pada ADO tidak terdapat Method .Edit). Alternatif lainnya dapat dilihat pada contoh berikut dibawah.

    rs.Update "NAMA", txtNama.Text
    rs.Update "ALAMAT", txtAlamat.Text

    Atau andapun masih dapat menggunakan cara berikut;

    rs.Update Array("NAMA", "ALAMAT"), _
    Array(txtNama.Text, txtAlamat.Text

3. Menghapus data dari Database.
    Sederhana!... Cukup dengan menggunakan Method .Delete selesai semuanya. Ok!
    ' Hapus record/row yang aktif.

    rs.Delete

    Nah..Jika anda perhatikan dari contoh-contoh diatas, Tidak terlalu berbeda bukan? Apabila dibandingkan dengan menggunakan DAO. Untuk melihat contoh lengkap tentang bagaimana mengakses database dengan menggunakan ADO, silahkan anda lihat pada Artikel berjudul "Menggunakan Technologi ADO untuk mengakses database"
    Satu lagi!. Selain dari langkah/cara diatas ternyata masih ada satu lagi cara untuk berkomunikasi dengan database. Ya! yaitu dengan menggunakan SQL Statement. Ulasaan lengkapnya dapat anda jumpai pada artikel berjudul "ADO, SQL dan ORACLE"
    Kesimpulannya adalah...
    Baik ADO ataupun DAO/RDO, dibuat memang dengan tujuan yang berbeda. Technologi ADO lahir untuk melengkapi kekurangan dari technologi sebelumnya yaitu DAO dan RDO. Saya sendiri menganjurkan kepada anda untuk menggunakan ADO. Mengapa ? Karena dengan menggunakan ADO anda dapat membangun aplikasi Client/server dan sekaligus dapat membuat aplikasi yang berbasis Internet, dan hanya dengan ADO (untuk saat ini) inilah teknologi OLEDB dapat digunakan.
    Lagi pula untuk menggunakan technologi ADO tidaklah terlalu sulit. Hampir dipastikan apabila anda sebelumnya sudah pernah menggunakan DAO ataupun RDO, pasti dapat juga membangun suatu aplikasi dengan menggunakan ADO. Sedangkan dari segi kecepatan/performance, semuanya tinggal kepada anda. Dapatkah anda memanfaatkan technologi ADO (yang jelas lebih baik: Silahkan anda lihat di http://www.microsoft.com/data ) dengan semaksimal mungkin. Atau hanya sekedar menggunakan hanya dengan alasan teknologi ADO merupakan hal yang baru tanpa tahu sisi kelebihannya dan bagimana memaksimalkan-nya.

Artikel Terkait


EmoticonEmoticon