60
MENGENAL DATABASE ACCESS
Access adalah salah satu dari sekian banyak produk database yang beredar saat ini. Access sangat cocok digunakan dalam aplikasi single user atau multi user dengan jumlah terbatas. Hal ini tidak bermakna Access tidak dapat digunakan untuk menyimpan data raksasa atau dengan jumlah yang sangat banyak. Dengan rancangan sistem tertentu, Anda dapat memfungsikan Access sebagai database server sejati. Namun Access memang tidak ditujukan untuk itu. Dan tentu akan membutuhkan usaha yang lebih besar dibandingkan dengan langsung menggunakan database server, jika memang aplikasi Anda benar-benar ditujukan untuk multi user dengan jumlah user yang tidak sedikit.
Dengan fiturnya yang kaya, Anda bahkan dapat membuat produk aplikasi lengkap hanya dengan bermodalkan Access menggunakan pemrograman VBA (Visual Basic for Application) yang sudah built in dalam produk Microsoft Access. Jika memang dapat menggunakan VBA untuk membuat aplikasi database, lalu kenapa masih menggunakan Delphi untuk proses pengembangan software? Jawabannya ada pada skalabilitas dan produktivitas. Jika aplikasi yang Anda buat menjadi semakin besar dan kompleks, dengan beragam fitur sebagaimana dalam software komersil yang profesional (seperti fitur auto update misalnya), menggunakan Delphi akan membuat Anda jauh lebih produktif.
Oya, mungkin setelah saya memperkenalkan Access, ada di antara pembaca yang justru masih kurang jelas, apa sebenarnya definisi dari database itu sendiri? Jawabannya, database adalah: “Sistem penyimpanan data, yang penyimpanan dan pengaksesan datanya mengikuti aturan tertentu” Access menyimpan datanya dalam bentuk table-tabel yang saling berhubungan (relasional).
Tabel
Access menyimpan data dalam bentuk tabel. Tabel terdiri atas field (kolom) dan record (baris). Data-data yang terdapat dalam satu field mempunyai kesamaan tipe data. Tipe data dalam Access antara lain: TIPE DATA KETERANGAN
Text
Digunakan untuk menyimpan data text, atau kombinasi text dan angka yang tidak digunakan untuk perhitungan atau operasi matematik, misalkan nomor telepon, dengan panjang maksimal 255 karakter.
Memo
Digunakan untuk menyimpan data text panjang maksimal 63.999 karakter
Number
Digunakan untuk menyimpan data numerik, yakni angka yang digunakan untuk perhitungan matematis.
Date/Time
Digunakan untuk menyimpan data tanggal dan waktu
Currency
Digunakan untuk menyimpan data numerik berupa nilai uang
AutoNumber
Digunakan untuk meyimpan angka urut atau acak yang unik (tidak mungkin sama dalam field) yang diisikan secara otomatis oleh Access ketika sebuah record ditambahkan ke suatu tabel. Field autonumber tidak dapat diupdate, atau diisikan secara manual.
Yes/No
Digunakan untuk menyimpan data boolean (data yang hanya terdiri dari dua nilai, Yes/No, True/False, dan On/Off).
OLE Object
Digunakan untuk menyimpan data biner (seperti file excel, file word, suara, atau gambar)
Tabel 0-1: Tipe Data Field Access
Baiklah, kita mulai dengan praktek. Misalkan Anda hendak menyimpan data teman-teman tercinta Anda dalam tabel Access. Data teman-teman Anda tersebut disimpan dalam field (kolom): nama, tanggal lahir, jenis kelamin, status perkawinan, jumlah anak, alamat, nomor telepon, alamat email, hobi, dan foto. Maka jenis data masing-masing field tersebut adalah sebagai berikut: NAMA FIELD TIPE DATA FIELD SIZE KETERANGAN
nama
Text
50 karakter
Digunakan untuk menyimpan data text, yaitu nama
tanggal_lahir
Date / Time
-
Digunakan untuk menyimpan data tanggal lahir
jenis_kelamin
Text
1 karakter
Digunakan untuk menyimpan data jenis kelamin. Field ini hanya akan berisi 1 karakter, L (untuk laki-laki) atau P (perempuan)
status_kawin
Yes/No
-
Hanya akan berisi Yes (yang berarti telah menikah) atau No (yang berarti belum menikah
jumlah_anak
Number
-
Untuk menyimpan data angka
alamat
Text
255 karakter
Untuk menyimpan data alamat
telepon
Text
50 karakter
Untuk menyimpan data nomor telepon, yang dapat diisi angka dan karakter lain
email
Text
30 karakter
Untuk menyimpan alamat email teman
hobi
Text
50 karakter
Untuk menyimpan data hobi dari teman Anda
foto
OLEObject
-
Untuk menyimpan foto teman Anda
Tabel 0-2: Field-field pada tabel data teman
Pada praktek kali ini saya menggunakan Microsoft Access 2007, namun Anda tetap dapat menggunakan Access versi 2003 atau sebelumnya. Untuk mengerjakan kasus di atas perhatikan langkah-langkah berikut:
1. Buka Access 2007, pilih Blank Database
2. Tekan tombol Create
3. Tekan tombol Browse for a location to put your database
Klik disini
Gambar 0-1: Tombol Browse
4. Beri nama database pada text box File name dengan nama teman.mdb.
5. Di Save as type pilih Microsoft Office Access Databases (2002-2003 format)(*.mdb)
6. Klik tombol OK kemudian klik tombol Create
7. Klik tombol Design View
Gambar 0-2: Tombol Design View
8. Pada dialog Save As – Table Name, isikan personal.
Setelah tombol OK ditekan, Access akan menampilkan Design View dari tabel yang akan kita buat. Pada kolom Field Name, Anda akan jumpai field dengan nama ID dengan Data Type berupa AutoNumber dan gambar kunci di sebelah kirinya. Ini adalah Primary Key yang otomatis dibuat oleh Access. Primary Key adalah field yang berisi data unik , tidak akan pernah dan tidak boleh sama dalam satu tabel. Kegunaan primary key seperti kegunaan kode barang pada penjualan barang, nomor induk pada data siswa di suatu sekolah, nomor KTP bagi penduduk suatu negara dan sebagainya. Primary Key, adalah “identitas” suatu record (atau baris) dalam tabel database. Untuk sementara biarkan saja field tersebut. Primary Key akan dibahas secara lebih rinci nanti.
Isikan nama-nama field dan tipe datanya sebagaimana terdapat dalam Tabel 0-2: Field-field pada tabel data teman, sehingga tampilan Design View menjadi seperti berikut:
Tombol Design View
Gambar 0-3: Design View tabel personal
Tekan tombol Datasheet View untuk menyimpan tabel, dan memulai input data.
Gambar 0-4: Tombol Datasheet View
Anda dapat mengisi field foto dengan klik, pilih Insert Object, pilih Create from File, klik Browse, pilih gambar yang hendak ditambahkan, kemudian klik Open. Dengan demikian field foto telah terisi. Anda dapat mengaksesnya dengan klik dobel untuk melihat gambar yang tersimpan dalam field tersebut. Sebagai contoh, saya mengisi tabel personal sebagai berikut:
Gambar 0-5: Contoh isian tabel personal
Anda dapat membuat tabel lain dengan memilih menu Create->Table.
Tombol Datasheet View
Gambar 0-6: Menu Create Table
Perintah SQL
Nah, setelah memahami bagaimana membuat tabel dalam Access, sekarang akan kita pelajari, bagaimana mengakses data yang tersimpan dalam database tersebut menggunakan SQL. Apa itu SQL? SQL adalah kependekan dari Structure Query Language, yakni bahasa yang digunakan untuk mengakses database. Bagaimana menjalankan perintah SQL akan saya bahas pada sub bab berikutnya.
Perintah SQL untuk mengakses tabel terdiri atas empat jenis:
1. SELECT, digunakan untuk menampilkan record (baris data) dari suatu tabel, contoh-contohnya adalah sebagai berikut:
a. SELECT * FROM personal
Perintah ini untuk menampilkan data seluruh field dari tabel personal. Karakter asterik (*) bermakna seluruh field.
Gambar 0-7: Hasil eksekusi SQL 1.a
b. SELECT nama, tanggal_lahir FROM personal
Digunakan untuk menampilkan data field nama dan tanggal_lahir saja dari tabel personal.
Klik disini untuk membuat tabel baru
Gambar 0-8: Hasil eksekusi SQL 1.b
c. SELECT * FROM personal WHERE jenis_kelamin = "L";
Digunakan untuk menampilkan data seluruh field dari tabel personal dimana jenis_kelaminnya adalah L. WHERE adalah klausa kondisi.
Gambar 0-9: Hasil eksekusi SQL 1.c
d. SELECT nama FROM personal WHERE (jenis_kelamin = "L") AND (status_kawin = TRUE);
Digunakan untuk menampilkan data field nama dari tabel personal, dimana jenis kelaminnya laki-laki dan sudah kawin.
Gambar 0-10: Hasil eksekusi SQL 1.d
e. SELECT nama, email FROM personal WHERE email IS NOT NULL;
Digunakan untuk menampilkan data field nama dan email dari tabel personal yang field emailnya ada isinya.
Gambar 0-11: Hasil eksekusi SQL 1.e
f. SELECT nama, DATEDIFF("yyyy",tanggal_lahir,NOW()) AS Umur FROM personal;
Digunakan untuk menampilkan nama dan umur (dalam satuan tahun) masing-masing nama. NOW() adalah fungsi Access yang mengembalikan tanggal komputer saat ini. DATEDIFF adalah fungsi Access yang mengembalikan selisih dari inputan tanggal pada parameternya. "yyyy" adalah nilai parameter agar fungsi DATEDIFF mengembalikan selisih tanggal dalam hitungan tahun.
Gambar 0-12: Hasil eksekusi SQL 1.f
g. SELECT nama, tanggal_lahir FROM personal WHERE DATEDIFF("yyyy",tanggal_lahir,NOW())<30;
Digunakan untuk menampilkan nama dan tanggal lahir yang bagi seseorang yang umurnya dibawah 30 tahun dalam tabel personal.
Gambar 0-13: Hasil eksekusi SQL 1.g
h. SELECT COUNT(nama) AS jml_balita FROM personal WHERE DATEDIFF("yyyy",tanggal_lahir,NOW())<5;
Digunakan untuk menghitung nama-nama yang umurnya di bawah lima tahun. COUNT adalah fungsi Access untuk menghitung, AS adalah nama alias untuk field yang dihasilkan dari perintah COUNT(nama).
Gambar 0-14 Hasil eksekusi SQL 1.h
i. SELECT status_kawin, COUNT(nama) AS jml_status_kawin FROM personal GROUP BY status_kawin;
Digunakan untuk menghitung jumlah nama-nama dari masing-masing status_kawin.
Gambar 0-15: Hasil eksekusi SQL 1.i
2. INSERT, digunakan untuk menambahkan record baru ke tabel, contoh:
a. INSERT INTO personal(nama, tanggal_lahir, jenis_kelamin, status_kawin)
VALUES("Haris Andika","1975-08-31","L",True);
Perintah di atas menambahkan record baru dengan mengisi field nama, tanggal_lahir, jenis_kelamin, dan status_kawin. Field yang lain diabaikan. Perhatikan, dalam mengisikan data pada field tanggal, format susunannya adalah “tahun-bulan-tanggal”. Field bertipe Yes/No(boolean) diisikan nilai tanpa menggunakan tanda petik ganda.
b. INSERT INTO personal(nama, tanggal_lahir, jenis_kelamin, status_kawin)
VALUES("Agus Widodo","1976-10-20","L",Yes);
Pada contoh yang kedua, field status_kawin dapat diisi Yes selain dari True.
Gambar 0-16: Hasil eksekusi SQL 2.a dan 2.b
3. UPDATE, digunakan untuk mengubah record dalam tabel, contoh:
a. UPDATE personal
SET alamat = 'Kediri'
WHERE nama = 'Haris Andika';
Perintah tersebut di atas akan meng-update alamat Haris Andika menjadi Kediri.
Gambar 0-17: Hasil eksekusi SQL 3.a
b. UPDATE personal
SET jumlah_anak =2
WHERE jumlah_anak IS NULL;
Perintah tersebut di atas akan mengupdate semua field jumlah_anak yang datanya kosong atau null. Perhatikan, NULL tidak sama dengan 0 (nol). Perintah tersebut hanya akan mengupdate field jumlah_anak milik Haris Andika dan Agus Widodo, sedangkan Aisyah dan Ubaidilah jumlah anaknya tetap 0 (nol).
Gambar 0-18: Hasil eksekusi SQL 3.b
4. DELETE, digunakan untuk menghapus record dalam tabel, contoh:
DELETE FROM personal WHERE ID = 7, yang akan menghapus record dengan field nama Agus Widodo jika dieksekusi
Query
Query adalah salah satu objek dalam database Access, dimana dengannya kita dapat mengeksekusi dan menyimpan perintah SQL yang telah kita buat. Dengan Query, contoh-contoh perintah SQL sebelumnya dapat kita jalankan. Query juga memungkinkan kita membuat semacam Virtual Table atau tabel bayangan dalam Access. Tabel bayangan ini dikenal dengan nama View.
Untuk membuat Query, dapat dilakukan dengan cara berikut:
1. Pilih menu CreateQuery Design
Gambar 0-19: Lokasi Menu Query Design
2. Pada kotak dialog Show Table pilih Close
3. Klik Menu SQL View
Klik disini
Gambar 0-20: Lokasi Menu SQL View
4. Kini Anda bisa mulai memasukkan perintah SQL kemudian mengeksekusinya. Sebagai contoh, salinlah salah satu contoh perintah SQL sebelumnya pada Query sebagai berikut:
Gambar 0-21: Memasukkan perintah SQL dalam Query
kemudian klik menu Run, maka Anda akan mendapatkan hasil eksekusi perintah Query sebagaimana Gambar 0-9.
Gambar 0-22: Lokasi Menu Run
5. Anda dapat menyimpan perintah SQL dalam Query untuk dapat digunakan kembali dan difungsikan sebagai View atau tabel bayangan. Untuk menyimpannya, klik Tombol Save
atau tekan kombinasi tombol keyboard CTRL + S, masukkan nama Query sebagai QPria pada kotak dialog Save As. Kini, ketika Anda hendak menampilkan data teman Anda yang laki-laki, cukup menjalankan perintah SQL:
SELECT * FROM QPria;
daripada harus mengetikkan perintah
SELECT * FROM personal WHERE jenis_kelamin = "L";
kedua perintah SQL tersebut di atas akan menampilkan hasil yang sama. View akan sangat terlihat kegunaannya ketika SQL yang disimpan sangat panjang dan rumit.