Definisi

Bahasa pemrograman Delphi dapat digunakan untuk berbagai keperluan baik untuk perhitungan matematis, aplikasi perkantoran, aplikasi multimedia, pembuatan aplikasi pengolah, aplikasi kontrol industri sampai kepada aplikasi database. Pada materi ini akan dijelaskan bagaimana cara mengakses database MS Acces dalam Delphi menggunakan Komponen ADO. Mungkin anda pernah atau bahkan sering mengembangkan program database dengan Delphi atau Visual Basic. Anda dapat menggunakan database paradox, dbase maupun MS Access, dan mungkin anda mengalami masalah dalam distribusi file yang anda bangun mempunyai ukuran yang sangat besar karena anda harus menyertakan file database beserta kelengkapannya. Hal ini tentu tidak menguntungkan terutama jika harus mendistribusikannya lewat email.
Untuk mengakses database dalam MS Access, mulai Delphi 5 telah menyediakan komponen ADO yang akan memudahkan dalam mengelola database yang akan kita bangun. Dengan ADO pada Delphi distribusi program hanya membutuhkan file exe dan database-nya (*.mdb) saja. Tentu ini untuk program yang sederhana. Sehingga anda dapat mendistribusikannya dengan mudah.
Delphi mempunyai banyak komponen untuk mengakses database. Komponen-komponen tersebut dikelompokkan ke dalam page-page pada Component Palette, menurut mekanisme pengaksesannya. Berikut beberapa page yang digunakan untuk pengaksesan database :

  1. Page BDE berisi komponen-komponen yang memakai Borland Database Engine (BDE). BDE berisi sejumlah fungsi-fungsi API untuk berinteraksi dengan database. BDE ini berisi komponen-komponen yang pada versi sebelumnya berada di page Data Access, kecuali komponen Data Source.
  2. Page ADO berisi komponen-komponen yang memakai Active Data Objects (ADO) untuk mengakses database melalui OLEDB. ADO adalah standard Microsoft. Ada banyak driver untuk berhubungan dengan server-server database yang berbeda. Dengan komponen-komponen ADO, dapat mengintegrasikan aplikasi dalam lingkungan ADO.
  3. Page dbExpress berisi komponen-komponen untuk mengembangkan aplikasi pada platform lain, misalnya berhubungan dengan Linux. Untuk mengakses database dapat digunakan dataset unidirectional, artinya pengaksesan yang cepat dengan overhead minimal. Dataset unidirectional tidak memerlukan buffer data di dalam memori sehingga lebih cepat dan memerlukan resource lebih sedikit.
  4. Page Interbase berisi komponen-komponen untuk mengakses database secara langsung.
  5. Page DataAccess berisi komponen-komponen untuk berhubungan dengan berbagai mekanisme akses.

Pada saat merancang aplikasi database, harus dipilih komponen-komponen yang diperlukan. Setiap mekanisme data akses mempunyai fungsi yang berbeda. Selain itu juga harus mempunyai server database. Server database relational berbeda dalam caranya menyimpan informasi dan cara menangani banyak pemakai yang mengakses database secara bersamaan. Ada dua jenis server database :

  1. Server database remote berada pada mesin yang berbeda. Kadang-kadang data dari server ini tidak berada dalam sebuah mesin tetapi tersebar di beberapa server. Meskipun cara penyimpanannya berbeda, tetapi server ini memberikan antarmuka logis yang bersifat umum. Antarmuka tersebut adalah Structured Query Language (SQL). Oleh karena server tersebut menggunakan SQL, maka disebut SQL Server (nama lainnya adalah Remote Database Management System atau RDBMS). Contoh SQL Server adalah Interbase, Oracle, Sybase, Informix, Microsoft SQL Server, dan DB2.
  2. Database Lokal berada di drive loka atau pada sebuah LAN (jaringan area lokal). Jijka database dipakai bersama-sama, diperlukan mekanisme locking. Contoh database lokal yaitu Paradox, dBase, FoxPro, dan MS Access. Aplikasi yang memakai database lokal disebut aplikasi single-tiered karena aplikasi dan databasenya memakai sebuah sistem file. Aplikasi yang memakai server database remote disebut aplikasi two-tiered atau multi-tiered karena aplikasi databasenya beroperasi pada sistem (tier) yang berbeda.

Faktor – faktor yang mempengaruhi pemilihan tipe database adalah sebagai berikut :

  1. Berapa banyak pemakai yang mengases database. Server database remote dirancang untuk pengaksesan bersama oleh banyak pemakai. Database ini mempunyai mekanisme transaction. Beberapa database lokal juga mempunyai mekanisme ini, tetapi hanya untuk locking saja misalnya Interbase Lokal), tetapi ada juga yang bisa mendukung sistem multi-user.
  2. Berapa banyak data di dalam tabel. Database remote dapat menampung data lebih banyak dari pada database lokal.
  3. Kecepatan yang diinginkan. Database lokal biasanya lebih cepat dari database remote.

Database berisi informasi yang sensitive. Setiap database mempunyai cara proteksi yang berbeda. Misalnya, Paradox dan dBASE hanya memberikan sekuritas pada level tabel atau field. Jika pemakai mencoba mengakses tabel yang diproteksi, maka harus mem berikan password. Pemakai yang mempunyai izin, hanya boleh melihat beberapa field (kolom) saja.

Pada umumnya SQL server memerlukan nama user dan password. Nama user akan menentukan tabel-tabel yang dapat diakses. Pada saat merancang database, Anda juga harus memikirkan sekuritas yang diperlukan. Jika Anda memberikan password pada pemakai, Anda harus memutuskan kapan password tersebut harus diberikan. Jika Anda memakai database lokal dan akan mengembangkannya menjadi server SQL ynag lebih besar, seharusnya Anda meminta password pada saat login ke database SQL, bukan pada saat membuka tabel. Pada aplikasi multi-tiered, Anda dapat memakai beberapa sekuritas bersama-sama. Anda dapat memakai HTTP, CORBA, atau COM+, untuk mengakses middle tier, dan middle tier akan menangani semua login ke server database.

B. Transaksi

Transaksi adalah sekumpulan aksi yang harus semua dikerjakan. Jika ada sebuah aksi yang gagal, aksi – aksi lain harus dibatalkan. Transaksi menjamin :

  1. Semua pengubahan dalam sebuah transaksi berada dalam salah satu dari tiga keadaan berikut : commit(berhasil dikerjakan); abort (diberhentikan); dan roll back (dikembalikan ke keadaan semula). Hal ini disebut atomic.
  2. Sebuah transaksi adalah transformasi yang benar dari keadaan sistem. Hal ini menunjukkan konsistensi.
  3. Transaksi konkuren tidak melihat hasil – hasil parsial (yang belum commit), karena dapat menimbulkan inkonsistensi pada status aplikasi. Hal ini menunjukkan isolasi.
  4. Update yang commit mungkin dapat mengalami kegagalan komunikasi, kegagalan proses, dan kekgagalan sistem server. Hal ini menunjukkan durabilitas.

Jadi, transaksi memproteksi kegagalan perangkat keras yang terjadi di antara perintah – perintah database. Pemakai berinteraksi dengan database melalui transaksi dan perintah lain tidak dapat mengganggu perintah – perintah di dalam transaksi. Jadi sql server akan melakukan transaksi dengan hasil sukses semua atau gagal semua.

C. Komponen – Komponen Database

Bagian ini memberikan pengantar mengenai komponen – komponen yang dapat dipakai untuk membangun aplikasi database.

  1. Komponen Table. Cara paling mudah untuk mengakses database adalah menggunakan komponen Table dari page BDE. Komponen Table mengacu ke sebuah tabel database. Pada saat memakai komponen tabel, Anda harus menyatakan nama database pada property DatabaseName. Anda dapat memasukkan nama alias ataumenyatakan direktorinya.
  2. Komponen Query. Komponen ini lebih kompleks dibandingkan denagn sebuah table, karena memerlukan perintah SQL. Namun komponen Query lebih fleksibel dibandingkan dengan komponen Table.
  3. Komponen StoredProc. Komponen ini mengacu ke stored procedure yang disimpan di dalam sebuah SQL server. Anda dapat menjalankan procedure – procedure ini dan hasilnya dimasukkan ke dalam sebuah tabel. StoredProc hanya dapat dipakai pada SQL server.
  4. Komponen Database. Komponen ini dipakai untuk mengontrol transaksi, sekuritas, dan mengontrol koneksi. Biasanya dipakai untuk berhubungan dengan database remote pada aplikasi client/ server.

D. State dari Dataset

Jika Anda bekerja dengan dataset, nda akan bekerja dengan state yang berbeda. State atau modus tersebut menentukan apa yang dapat kita lakukan terhadap data. Misalnya, jika dataset ditutup, statenya adalah dslnactive, berarti Anda tidak adapt melakukkan sesuatu terhadap data. Property State akan menunjukkan state yang berlaku. Tabel berikut ini memberikan nilai state :

E. Merancang antarmuka

Page DataControls memberikan sekumpulan komponen data-aware untuk menampilkan dan mengubah data dalam database. Komponen-komponen data-aware dipakai untuk membangun antarmuka aplikasi database, sehingga data dapat dlihat dan diakses oleh pemakai. Komponen data-aware yanng Anda perlukan bergantung pada beberapa hal :

  1. Jenis data yang akan ditampilkan. Anda dapat menampilkan data teks, gambar, atau elemen multimedia.
  2. Cara menngorganisasikan data. Anda dapat menampilkan data per record atau dalam bentuk daftar yang berisikan banyak record, pada sebuah grid.
  3. Jenis dataset yang menyediakan data. Misalnya untuk dataset yang undirectional, Anda tidak dapat menggunakan grid.
  4. Cara bergerak di dalam dataset. Anda dapat memakai komponen data navigator atau memakai komponen sendiri.

Selain menampilkan data dari tabel, nda juga dapat membuat antarmuka lain :

  1. Anda mungkin dapat meganalisis data dalam database. Aplikasi seperi ini tidak hanya menampilkan data, tetapi juga menganalisis dengan proses penjumlahan, rata – rata pencarian maksimum, atau pencarian minimum.
  2. Anda juga dapat membuat laporan yang bisa dicek.
  3. Anda juga dapat membuat antarmuka yang dapat ditampilkan dengan browser Web.

Sumber : Modul Pemrograman Dasar Komputer, UMY 2006