Anda di halaman 1dari 43

Darmawan Satyananda

Jurusan Matematika
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Negeri Malang
2008

PENDAHULUAN
a. Deskripsi permasalahan
Permasalahan yang digunakan selama praktikum adalah permasalahan akademik
suatu perguruan tinggi. Sebuah perguruan tinggi memiliki sejumlah fakultas/jurusan,
mahasiswa, dan dosen. Setiap jurusan menyelenggarakan perkuliahan, ada sejumlah
matakuliah yang ditawarkan. Setiap matakuliah memiliki kode tersendiri (asumsi: kurikulum
tidak berubah).
Mahasiswa bisa mengambil matakuliah yang ditawarkan. Setiap pengambilan akan
menghasilkan nilai (asumsi: tidak ada pengambilan matakuliah yang dibatalkan). Mahasiswa
yang tidak lulus bisa mengulang kembali. Semua nilai yang pernah diambil disimpan, jadi
ada keterangan pada semester kapan matakuliah itu diambil.
Untuk menyederhanakan masalah, setiap matakuliah hanya memiliki satu offering
perkuliahan. Setiap offering bisa diajar oleh maksimum dua orang dosen, dan diadakan
maksimum dua kali dalam seminggu pada hari dan jam yang ditentukan.
Nantinya program harus menghasilkan sejumlah laporan, seperti laporan mahasiswa
pada jurusan tertentu, mahasiswa yang mengambil kuliah tertentu, laporan nilai mahasiswa,
dan sebagainya.
Dari permasalahan tersebut, tabel yang bisa dibuat adalah:
1. Tabel MAHASISWA
Field name
NIM
Nama
Jurusan
Prodi
Alamat
TempatLahir
TanggalLahir
JenisKelamin

Field type
Text
Text
Text
Text
Text
Text
Date/Time
Text1

Field size
12
40
15
15
50
20
Short date
1

2. Tabel DOSEN
Field name
NIP
SandiDosen
NamaDosen

Field type
Text
Text
Text

Field size
12
6
20

3. Tabel MATAKULIAH
Field name
KodeMK
NamaMK
SKS
JS
Sifat

Field type
Text
Text
Number
Number
Text

Field size
7
25
Byte
Byte
1

4. Tabel MENGAJAR
Field name
KodeMK

Field type
Text

Darmawan Satyananda Praktikum Basis Data 08/09

(key)

(key)

(key)

Field size
(key)

SandiDosen1
SandiDosen2
Hari1
Jam1
Ruang1
Hari2
Jam2
Ruang2
Semester

Text
Text
Text
Text
Text
Text
Text
Text
Text

6
6
6
3
5
6
3
5
7

5. Tabel NILAI
Field name
NIM
KodeMK
Nilai
SmtAmbil

Field type
Text
Text
Text
Text

Field size
12
7
2
7

6. Tabel PRODI
Field name
NamaProdi
Jurusan
Fakultas

Field type
Text
Text
Text

Field size
20
20
15

(key)

(key)
(key)
(key)

(key)

b. Teknologi akses database dengan Delphi


Hampir semua bahasa pemrograman bisa melakukan pengaksesan basisdata. Masingmasing basis data mempunyai cara tersendiri untuk menyatakan data yang disimpan di
dalamnya. Delphi bisa menggunakan beberapa teknologi pengaksesan basis data. Deskripsi
ringkasnya bisa dilihat pada tabel berikut:
Nama Teknologi
Borland Database Engine
(BDE)

ActiveX Data Object (ADO)

dbExpress

Interbase Express (IBX)

Keterangan
Mendukung database lokal dan remote
Mendukung database: dBase, Paradox, ASCII,
FoxPro, Access, SQLServer (Oracle, Sybase, MS
SQL Server, Informix, Interbase, DB2), dan lainnya
dengan ODBC (Open Database Connectivity)
Keuntungan: Integrasi yang baik dengan Delphi
Kelemahan: harus menginstall BDE pada tiap
komputer yang menjalankan aplikasi yang dibuat,
hanya ada di Windows
Bisa mengakses database relasional dan nonrelasional, mendukung database lokal dan remote.
Keuntungan: lebih terpadu dengan produk
Microsoft lainnya
Bisa diakses di Delphi (Windows) dan Kylix (Linux),
keduanya produk Borland
Kemampuan terbatas, unidirectional, hanya untuk
database remote, hanya bisa berjalan dengan
query SQL
Cocok untuk aplikasi yang hanya menghasilkan
informasi seperti report atau page HTML
Menggunakan database Interbase yang bersifat
open source dan gratis.
Memberikan kontrol dan kinerja lebih baik

Darmawan Satyananda Praktikum Basis Data 08/09

Yang lebih umum digunakan dalam lingkup kecil adalah ADO karena mendukung
banyak DBMS dan juga digunakan oleh bahasa pemrograman lain. Praktikum ini akan
menggunakan ADO. Untuk teknologi lain, silahkan dipelajari sendiri disesuaikan dengan
kebutuhan.
Untuk aplikasi ADO, ada beberapa hal yang perlu ditentukan dalam mengakses data:
Koneksi ke database: untuk menghubungkan aplikasi ke database
Data set: untuk mendapatkan sekumpulan data dari database. Bisa dengan membuka
tabelnya secara langsung, dengan menggunakan query, atau dengan menggunakan

stored procedure.
Data source: sumber data bagi komponen yang terkait dengan data di dataset
(komponen data-aware). Komponen data-aware adalah komponen yang terkait dengan
data, digunakan untuk pengisian data ke dataset atau menampilkan data dari dataset.

Darmawan Satyananda Praktikum Basis Data 08/09

PRAKTIKUM 1
Kegiatan:
Pengenalan teknologi akses data dan penggunaan komponen untuk pengaksesan data
dalam database
Perancangan form untuk entry data dan penggunaan berbagai komponen DataControls
Sebagaimana yang telah dijelaskan pada pendahuluan, ada beberapa teknologi
pengaksesan data dalam basis data yang digunakan oleh Delphi, salah satunya adalah ADO.
Pada praktikum ini akan dibuat sebuah form untuk melakukan pengisian data dengan
memanfaatkan ADO. Untuk mengakses database, ada 3 hal yang perlu dipersiapkan: (1)
koneksi ke database, (2) menentukan dataset [sekumpulan data yang akan diproses], dan
(3) menentukan sumber data [data-source] bagi komponen pengisian data. Dataset bisa
didapat dari tabel atau hasil query (pencarian data).
Untuk dataset, setidaknya ada 3 komponen yang bisa digunakan: (1) ADOTable, (2)
ADODataSet, dan (3) ADOQuery. ADOTable lebih sesuai digunakan untuk memanipulasi
data yang berada di satu tabel secara keseluruhan, ADODataSet untuk memanipulasi data
yang ada di tabel atau hasil query, dan ADOQuery untuk memanipulasi data hasil query.
Praktikum 1 akan menggunakan dataset berupa ADOTable.
Seperti yang disebutkan di pendahuluan, ada 3 hal yang harus ditentukan dalam
mengakses data ke database: connection, data set, dan data source. Di Delphi, masingmasing komponen yang terkait dengan untuk hal itu adalah ADOConnection, ADOTable
(keduanya ada di tab ADO pada Component Pallette), dan DataSource (ada di tab
DataAccess). ADOConnection berfungsi untuk melakukan koneksi ke basisdata, ADOTable
untuk mendapatkan sekumpulan data dari tabel tertentu, komponen ini merupakan salah
satu dari beberapa komponen penghasil dataset. DataAccess merupakan sumber data bagi
komponen DataControls. Komponen DataControls (ada di tab DataControls) adalah
komponen yang bisa dikaitkan ke field tertentu dalam suatu dataset. Bentuknya sama
dengan komponen input data pada tab Standard.
Semua praktikum yang anda lakukan adalah satu kesatuan, sehingga hasil sebuah
praktikum masih akan terpakai atau berhubungan dengan praktikum sebelumnya.
Praktikum kali ini adalah membuat form yang untuk entry data matakuliah. Awalilah
dengan membuka sebuah form kosong. Selanjutnya lakukan hal berikut:
a. Membuat PageControl
Form yang akan dirancang nantinya digunakan untuk entry data dan menampilkan
(display) data. Karena ukuran form yang terbatas, maka form dibagi menjadi beberapa
halaman tersendiri (halaman tersebut dinamakan dengan tabsheet). Masing-masing
tabsheet memiliki fungsi tertentu. Untuk memasukkan tabsheet, berikut langkahnya:
Pilih tab Win32, masukkan komponen PageControl, drag secukupnya ke dalam form.

Darmawan Satyananda Praktikum Basis Data 08/09

Klik kanan pada page yang ditampilkan, pilih New Page. Sebuah tabsheet baru akan
tampak. Ganti caption pada tabsheet itu melalui property caption pada object inspector.
Isi nilainya dengan Entry data.
Tambahkan tabsheet baru dengan cara yang sama (New Page). Beri caption Browse.

Gambar 1.1. Form yang berisi dua tabsheet.


b. Menentukan ADOConnection
Karena kita akan mengisi page untuk entry, klik pada tab Entry data.
Klik pada tab ADO di Component Pallette, masukkan komponen ADOConnection ke form.
Komponen ini sifatnya nonvisual (tidak ditampakkan) sehingga anda tidak perlu
menentukan ukuran dan posisi komponen di form.

Gambar 1.2. Isi Tab ADO


Untuk melakukan koneksi ke suatu database, properti yang harus diset adalah
ConnectionString. Anda bisa menuliskan teksnya secara langsung, menggunakan
ConnectionString builder, atau menuliskan teksnya sebagai bagian dari kode program.
Yang ditunjukkan berikut adalah dengan menggunakan ConnectionString builder. Klik dua
kali pada kolom kosong di properti ConnectionString, selanjutnya akan tampak tampilan
untuk menentukan sumber koneksi. Pastikan sudah terpilih Use Connection String, lalu
klik button Build.

Darmawan Satyananda Praktikum Basis Data 08/09

Gambar 1.3. Kotak dialog untuk menentukan Connection String


Selanjutnya akan ditampilkan kotak dialog Data Link Properties. Yang ditampilkan di
kotak tersebut adalah provider OLE DB (standar basisdata yang dikenal ADO). Karena
menggunakan MS Access, pilih Microsoft Jet 4.0 OLE DB Provider, lalu klik Next

Gambar 1.4. menentukan provider OLE DB


Selanjutnya tentukan nama basisdata yang akan dikoneksikan. Untuk memudahkan, klik
pada button ellipsis, yang akan menampilkan kotak dialog untuk memilih file. Tentukan
nama file yang akan dibuka, klik Open. Nama dan lokasi file yang dibuka akan
ditampakkan pada window Data Link Properties.

Darmawan Satyananda Praktikum Basis Data 08/09

Gambar 1.5. Menentukan basisdata yang akan dikoneksikan.


Catatan: anda bisa menggunakan setting yang diberikan, tetapi akibatnya bila anda
berpindah ke komputer lain maka ada kemungkinan program tidak bisa menemukan file
database anda. Ini dikarenakan yang digunakan adalah path absolut yang mencatat
nama drive dan folder tempat file berada. Gunakan path relatif sehingga lebih fleksibel.
Untuk mudahnya, letakkan file database pada folder yang sama dengan program.
Hapuslah nama drive dan folder sehingga tinggal menampakkan nama filenya saja
seperti berikut:

Untuk memastikan bahwa file sukses dibuka, klik button Test Connection. Akan muncul
pesan yang menyatakan apakah tes koneksi berhasil atau gagal. Bila gagal, periksa lagi
apakah database dalam keadaan terbuka. Perbaiki dan ulangi sampai koneksi berhasil.
Klik OK untuk menutup semua kotak dialog. String koneksi akan ditampilkan pada
properti ConnectionString pada Object Inspector untuk komponen ADOConnection.
Properti lain milik ADOConnection yang perlu diubah:
Properti
LoginPrompt

Nilai
False

Keterangan
Agar kotak dialog untuk menanyakan
nama user dan password tidak

Darmawan Satyananda Praktikum Basis Data 08/09

Properti

Name

Nilai

ADOConAkademik

Keterangan
ditampilkan (asumsi: file database tidak
menggunakan nama user dan password).
Nama bisa apapun, sebaiknya anda ganti
agar konsisten dengan pembahasan
selanjutnya

c. Menentukan ADOTable
Masukkan komponen ADOTable dari tab ADO ke dalam form. Komponen ini juga
nonvisual sehingga tidak perlu ditentukan posisi dan ukurannya.
Ubah properti lain:
Properti
Connection

Nilai
ADOConAkademik

TableName
Name

Matakuliah
ADOTbMataKuliah

Keterangan
Diarahkan ke ADOConnection yang dibuat
sebelumnya
Menentukan nama tabel yang akan dibuka

d. Menentukan DataSource
Masukkan komponen DataSource dari tab DataAccess ke dalam form. Komponen ini juga
bersifat nonvisual.
Ubah properti lainnya:
Properti
DataSet

Nilai
ADOTbMataKuliah

Name

DtSrcMatakuliah

Keterangan
Diarahkan ke ADODataSet yang dibuat
sebelumnya

e. Memasukkan komponen DataControls


Setelah semua setting terkait dengan akses data sudah ditentukan, berikutnya yang
dimasukkan adalah komponen untuk menampilkan field tertentu dalam tabel. Anda bisa
menggunakan komponen pada tab Standard atau pada tab DataControls, tetapi lebih
disarankan menggunakan komponen DataControls untuk memudahkan pengaksesan dan
pemrogramannya.
Masukkan sejumlah komponen untuk membentuk tampilan form berikut, lalu sesuaikan
propertinya dengan yang ada di tabel berikutnya. Perhatikan bahwa semua komponen
dengan awalan DB terletak di tab DataControls.

Darmawan Satyananda Praktikum Basis Data 08/09

Gambar 1.6. Tata letak form pengisian data


Pengaturan properti komponen:
Nama/jenis
komponen
Label
Label
Label
Label
Label
Label
DBEdit

DBEdit

DBComboBox

DBRadioGroup

Properti
Caption

Nilai

Caption
Caption
Caption
Caption
Caption
Name
DataSource
DataField
Name
DataSource
DataField
Name
DataSource
DataField
Items

Data Master
MataKuliah
Kode Matakuliah:
Nama Matakuliah:
SKS:
JS:
Sifat:
dbeKodeMK
DtSrcMataKuliah
KodeMK
dbeNamaMK
DtSrcMataKuliah
NamaMK
dbcSKS
DtSrcMataKuliah
SKS
2
3
4

Name
Caption
DataSource
DataField

dbrgJS
- (kosongkan)
DtSrcMataKuliah
JS

Darmawan Satyananda Praktikum Basis Data 08/09

Keterangan

Pilih dari list yang ada

Pilih dari list yang ada

Pilih dari list yang ada


Klik pada tombol
ellipsis (...), lalu
masukkan optionnya.
Ini nilai yang
ditampilkan di form
dan disimpan di tabel

Pilih dari list yang ada

DBRadioGroup

Items

3
4

Values

3
4

Name
Caption
DataSource
DataField
Items

dbrgSifat
- (kosongkan)
DtSrcMataKuliah
Sifat
Wajib
Pilihan

Klik pada tombol


ellipsis, lalu masukkan
optionnya. Ini nilai
yang ditampilkan di
form
Klik pada tombol
ellipsis, lalu masukkan
optionnya. Ini adalah
nilai yang disimpan di
tabel

Pilih dari list yang ada


Klik pada tombol
ellipsis, lalu masukkan
optionnya
Values
W
Klik pada tombol
P
ellipsis, lalu masukkan
optionnya
Setiap komponen DataControl dikaitkan dengan satu field tertentu dalam dataset.
Penggunaan RadioGroup dan ComboBox dimaksudkan untuk membatasi nilai yang
diisikan sehingga memperkecil peluang salah.
f. Membuka dataset.
Untuk dapat digunakan, dataset harus dalam keadaan terbuka. Pembukaan dataset
bisa dilakukan pada saat form dipanggil. Berarti kita bisa memanfaatkan event
FormCreate, yang terjadi pada saat form dibuat.
Klik 2x pada form (jangan di atas komponen yang lain). Selanjutnya ditampilkan
kerangka event handler untuk FormCreate. Masukkan kode berikut:
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOTbMataKuliah.Open;
// membuka dataset
end;
g. Menyimpan form.
Simpanlah form anda dengan menekan File Save All. Tentukan nama form dan
lokasinya (beri nama InputMK) serta nama project dan lokasinya (beri nama PrjAkademik).
Anda bisa menentukan nama apapun asal tetap diingat dan konsisten. Sebaiknya diletakkan
ke dalam sebuah folder tertentu.
h. Menjalankan program.
Sekarang jalankan form anda. Betulkan semua kesalahan yang muncul, dan bila sudah
maka form anda akan menampilkan data pertama di tabel (bila sudah terisi data
sebelumnya). Bila tabelnya kosong maka tidak ada teks apapun yang ditampilkan.
Pada saat ini kita belum bisa isikan apapun karena belum ada perintah untuk
menyimpan. Lanjutkan ke praktikum 2 untuk bisa menyimpan data.

Darmawan Satyananda Praktikum Basis Data 08/09

10

PRAKTIKUM 2
Kegiatan:
Penggunaan form pada praktikum 1 untuk melakukan entry data ke dalam tabel
Penggunaan DBNavigator untuk menelusuri tabel
Form hasil praktikum 1 hanya menampilkan record pertama saja. Bagaimana dengan
record lain? Bagaimana bila akan menambah data baru? Pada praktikum ini form hasil
praktikum 1 akan diperbaiki sehingga bisa untuk melakukan penyimpanan data.:
Buka kembali project (File Open Project, jangan File - Open) dari praktikum 1, lalu
ikuti petunjuk berikut ini:
a. Menggunakan DBNavigator untuk menelusuri dataset
Masukkan komponen DBNavigator (di tab DataControls) ke dalam form, atur propertinya
sebagai berikut:
Properti
Nilai
DataSource
DtSrcMataKuliah
Jalankan program, maka anda bisa menelusuri dataset (ke record pertama, sebelumnya,
sesudahnya, dan record terakhir), melakukan penambahan data baru, edit data yang
ditampilkan, dan menghapus record yang sedang ditampilkan.
Simpan program anda dengan menekan File-SaveAll (anda tidak perlu memberi nama
lagi karena sebelumnya sudah bernama).
b. Mengatur aktif-tidaknya komponen
Jalankan program anda, ubahlah nilai salah satu field, lalu coba berpindah ke record lain
dan kembalilah ke record yang tadi. Tampak data anda sudah berubah. Berarti ada
potensi kesalahan karena ketidaksengajaan. Berarti pula komponen pengisian data perlu
kita non-aktifkan selama tidak ada aksi insert data atau edit data. Untuk memprogram
aktif tidaknya komponen kita manfaatkan state (kondisi) yang berlaku pada DBNavigator.
DBNavigator bekerja bila pengguna melakukan klik pada button yang ada. Seperti biasa,
event yang bekerja adalah Click, tetapi karena ada sejumlah button maka kita juga perlu
melihat button mana yang ditekan.
Pada saat form mulai dijalankan, semua komponen isian dalam keadaan non-aktif. Berarti
kode programnya dimasukkan ke dalam event FormCreate. Karena pengaktifan dan
penon-aktifan dilakukan beberapa kali pada kesempatan yang berbeda maka lebih baik
dibuat sebagai procedure.
Perhatikan kode program anda, pergilah ke baris atas, lalu cari baris private. Buat
beberapa baris kosong di antara private dan public, lalu ketik sebagai berikut:
Procedure AturIsianMK(kondisi:boolean);
Prosedur ini digunakan untuk mengatur aktif tidaknya komponen isian yang ada di form.
Tekan Ctrl-Shift-C, bila program anda benar maka akan ditampilkan kerangka
procedure AturIsianMK. Isikan sebagai berikut:

Darmawan Satyananda Praktikum Basis Data 08/09

11

Procedure TForm1.AturIsianMK(kondisi: boolean);


begin
//komponen isian data
dbeKodeMK.Enabled:=kondisi;
dbeNamaMK.Enabled:=kondisi;
dbcSKS.Enabled:=kondisi;
dbrgJS.Enabled:=kondisi;
dbrgSifat.Enabled:=kondisi;
end;
Properti dari masing-masing komponen yang digunakan untuk mengatur aktif tidaknya
komponen adalah Enabled. Bila properti Enabled bernilai true maka komponen tersebut
aktif (bisa digunakan), sedangkan bila false maka komponennya menjadi tidak bisa
digunakan. Nilai true dan false dilewatkan melalui parameter kondisi yang bertipe
boolean.
Pergilah ke procedure FormCreate lalu tambahkan kode berikut (yang tercetak tebal):
begin
ADOTbMatakuliah.Open;
// membuka dataset
AturIsianMK(false);
// matikan komponen isian
end;
Jalankan program anda, maka semua isian dalam keadaan non aktif sehingga anda tidak
bisa mengubah data. Untuk mengubahnya, klik pada button Edit atau Insert di navigator.
Sekarang bila anda klik pada button Edit atau Insert di navigator, isian belum aktif karena
belum ada perintah mengaktifkan. Berarti perintah pengaktifan dimasukkan pada event
Click milik navigator.
Cari properti OnClick milik navigator, klik 2x untuk menampilkan kerangka event handler.
Masukkan kode berikut:
procedure TForm1.DBNavigator1Click(Sender: TObject; Button:
TNavigateBtn);
begin
if button in [nbEdit, nbInsert] then
AturIsianMK(true)
else
AturIsianMK(false)
end;
Maksud kodenya adalah mengaktifkan komponen isian bila button Edit dan Insert ditekan
(memanggil procedure AturIsianMK dengan parameter false) dan menonaktifkan
komponen pengisian bila button lainnya ditekan (memanggil procedure AturIsianMK
dengan parameter true). nbEdit dan nbInsert adalah kode untuk button Edit dan Insert.
Pada parameter terdapat Button, ini digunakan untuk menampung tombol mana yang
ditekan (dihasilkan oleh sistem, anda tinggal melihat isinya saja, apakah nbEdit atau yang
lain).
Simpan kembali program anda.

Darmawan Satyananda Praktikum Basis Data 08/09

12

PRAKTIKUM 3
Kegiatan:
Penggunaan komponen DBGrid untuk menampilkan isi tabel secara keseluruhan
Pada praktikum sebelumnya hanya satu record yang ditampilkan setiap waktu. Untuk
menampilkan semua data sekaligus bisa digunakan DBGrid. Dalam DBGrid bisa diatur field
apa saja yang bisa ditampilkan, termasuk juga field baru yang merupakan hasil perhitungan.
Buka kembali project sebelumnya, ikuti langkah berikut:
a. Menambahkan komponen DBGrid
Pada form anda, klik tab Browse, letakkan komponen DBGrid (dari tab DataControls) ke
tabsheet yang sedang terbuka, lalu drag sampai hampir memenuhi tabsheet.

Gambar 3.1. DBGrid setelah dimasukkan ke tab Browse


Sama halnya dengan komponen DataControls lain, DBGrid juga harus dikaitkan dengan
data source tertentu untuk dapat menampilkan data. Ubah nilai properti Datasource
menjadi DtSrcMataKuliah (atau data source lain yang sesuai).
Jalankan, maka isi seluruh tabel akan ditampilkan di grid. Banyaknya field yang
ditampilkan menyesuaikan dengan banyaknya field di dataset yang diacu. Bila salah satu
baris di grid diklik, maka record yang sesuai akan ditampilkan di tab Entry Data.
b. Mengatur tampilan DBGrid
Secara defaultnya, DBGrid menampilkan semua field dalam tabel. Bila hanya akan
menampilkan field tertentu saja, maka perlu dilakukan pengaturan properti DBGrid. Klik
kanan pada DBGrid, pilih Columns Editor. Akan tampak editor kolom DBGrid.
Tekan tombol Insert beberapa kali sesuai dengan banyaknya kolom (field) yang akan
ditampilkan.

Darmawan Satyananda Praktikum Basis Data 08/09

13

Gambar 3.2. Editor DBGrid.


Misalkan pada kolom 0 akan ditampilkan kode matakuliah, maka klik pada 0
TColumn". Klik properti FieldName pada Object Inspector, pilih field KodeMK. Tentukan
juga field yang ditampilkan oleh kolom lain dengan cara yang serupa.
Jalankan kembali program anda, maka DBGrid akan menampilkan field yang sudah
ditentukan.
c. Mencegah pengubahan data lewat DBGrid
Cobalah memilih salah satu field di record yang ditampilkan di grid, lalu ubahlah data
anda. Kembalilah ke tab Entry Data, maka isi field akan berubah. Bukalah tabel yang
sesuai, maka perubahan akan tersimpan. Grid memang bisa digunakan untuk mengedit
data, menghapus, dan menyisipkan data baru. Untuk mencegah pengubahan data yang
ditampilkan, maka aturlah properti ReadOnly milik DBGrid menjadi True.
Simpan program anda.

Darmawan Satyananda Praktikum Basis Data 08/09

14

PRAKTIKUM 4
Kegiatan:
Menghubungkan dua tabel dengan fasilitas Master-Detail
Menggunakan komponen DBLookupComboBox
Sesuai dengan deskripsi permasalahan, setiap mahasiswa bisa mengambil sejumlah
matakuliah tertentu. Jadi ada keterkaitan antara dua tabel: tabel Mahasiswa dan tabel Nilai.
Tabel Mahasiswa bertindak sebagai data induk dan tabel Nilai sebagai data rinci yang terkait
dengan data induk. Hubungan ini dinamakan juga dengan hubungan Master-Detail.
Nantinya, dataset pada komponen yang berperan sebagai detail akan mengikuti record yang
sedang aktif pada dataset yang berperan sebagai master. Komponen data set yang
digunakan masih ADOTable.
a. Membuat form pengisian data Mahasiswa
Buat dulu form pengisian data Mahasiswa seperti yang sudah anda lakukan pada saat
membuat form pengisian data Matakuliah di praktikum 1 dan 2. Jangan lupa gunakan
komponen PageControl ke dalamnya.
Masukkan komponen ADOConnection ke dalam form, arahkan ke database Akademik,
beri nama ADOConAkademik.
Masukkan komponen ADOTable (tetap di tab ADO) ke dalam form. Atur propertinya
sebagai berikut:
Properti
Nilai
Keterangan
Name
ADOTblMahasiswa
Connection
ADOConAkademik
Koneksi ke database
TableName
Mahasiswa
Nama tabel yang diacu
Tambahkan komponen DataSource ke dalam form, atur propertinya:
Properti
Nilai
DataSet
ADOTblMahasiswa
Name
DtSrcMahasiswa
Rancang form seperti pada gambar 4.1, arahkan ke field yang sesuai, dan tentukan
sendiri nilai properti yang lain. Perhatikan bahwa semua komponen diambil dari tab
DataControls. Semua komponen pengisian menggunakan DBEdit, kecuali untuk pengisian
Program Studi mahasiswa menggunakan komponen DBLookupComboBox. Properti
DataSource diarahkan ke DtSrcMahasiswa. Properti DataField diarahkan ke masingmasing field yang sesuai. Atur pula komponen dbNavigator dengan memasukkan kode
seperti pada praktikum sebelumnya, untuk mengatur aktif-tidaknya komponen pengisian.
Jangan lupa mengaktifkan ADOTblMahasiswa di FormCreate.

Darmawan Satyananda Praktikum Basis Data 08/09

15

Gambar 4.1. Tata letak komponen.


b. Menentukan isian bagi DBLookupComboBox
Komponen yang bisa digunakan untuk pemilihan antara lain radio button, check box,
list box, dan combo box (anda sudah menggunakan radio button pada saat menentukan
jenis kelamin pada saat entry data mahasiswa atau jenis matakuliah pada saat entry data
matakuliah). Pilihan yang disajikan bisa dimasukkan sebagai properti komponen tersebut
atau disimpan dalam tabel tersendiri. Cara terakhir lebih tepat bila datanya mungkin
bertambah atau berkurang, misalnya jurusan di suatu universitas. Komponen yang itemnya
digunakan untuk pengacuan dinamakan dengan lookup control, salah satunya adalah
dbLookupComboBox.
Komponen dbComboBox serupa dengan ComboBox biasa yaitu digunakan untuk
memilih sejumlah item yang disediakan, hanya saja dbComboBox dikaitkan dengan field
tertentu di tabel. dbLookUpComboBox serupa dengan dbComboBox, hanya saja item yang
ditampilkan didapatkan dari tabel, bukan sebagai bagian properti Items. Untuk menentukan
isian yang bisa dipilih, berikut ini langkahnya:
Pada prinsipnya setiap sumber data yang berbeda yang digunakan oleh komponen
tertentu memerlukan data source tersendiri. Untuk menangani data dari tabel Prodi,
tambahkan komponen ADOTable dan DataSource, lalu atur propertinya:
Jenis komponen
ADOTable

DataSource

Properti
Name
Connection
TableName
Name
DataSet

Darmawan Satyananda Praktikum Basis Data 08/09

Nilai
ADOTblProdi
ADOConAkademik
Prodi
DtSrcProdi
ADOTblProdi

16

Modifikasi properti komponen dbLookupComboBox anda:


Properti
ListSource

Nilai
DtSrcProdi

Keterangan
Nama data source yang menyimpan item
pilihan
ListField
NamaProdi
Menentukan satu atau beberapa field
yang isinya akan ditampilkan di lookup
control
KeyField
NamaProdi
Menentukan field apa yang isinya harus
sesuai dengan yang ada di properti
DataField (field apa yang isinya akan
disimpan di tabel)
Perhatikan beda ListField dan KeyField. ListField digunakan untuk menentukan isi dari
combo, sedangkan KeyField untuk digunakan mencocokkan pilihan dengan data yang
tersimpan di tabel Mahasiswa.
Aktifkan ADOTblProdi melalui event FormCreate (tambahkan kode yang sesuai)
c. Mengatur form yang ditampilkan pertama kali
Tadi anda sudah membuat sebuah form. Bila program dijalankan maka yang ditampilkan
adalah form yang pertama tadi. Untuk menjalankan form yang lain, setting projectnya
perlu diubah. Pilih menu Project Options. Pada combo Main Form, tentukan form yang
akan dijalankan lebih dulu, klik OK.
Jalankan program anda maka combo akan berisi semua program studi yang datanya ada
di tabel Prodi. Lengkapilah yang kurang dan simpan kembali bila sudah.
d. Mengatur aktif-tidaknya komponen pada tab Entry Data Mahasiswa
Lakukan hal yang serupa dengan yang anda lakukan pada saat menentukan aktif
tidaknya form untuk entry data MataKuliah.
e. Menambahkan tab untuk entry data Matakuliah yang diambil
Entry data pengambilan matakuliah kita letakkan pada tabsheet tersendiri pada form
untuk entry data Mahasiswa yang sudah dibuat. Untuk itu tambahkan sebuah tabsheet
baru pada form, beri caption Pengambilan Matakuliah.
Masukkan komponen ADOTable ke dalam form, dengan mengambil dari tab ADO pada
Component pallette. Atur propertinya sebagai berikut:
Properti
Name
Connection
TableName
MasterSource

Nilai
ADOTblPengambilan
ADOConAkademik
Nilai
DtSrcMahasiswa

Keterangan

Nama tabel yang diacu


Mengaitkan ADOTblPengambilan
(tabel Nilai) dengan
DtSrcMahasiswa (tabel
Mahasiswa). DtSrcMahasiswa
bertindak sebagai Master.
Pada kode program, carilah procedure FormCreate. Tambahkan pada baris terakhir kode
berikut (yang tercetak tebal, bagian lain tetap):

Darmawan Satyananda Praktikum Basis Data 08/09

17

procedure TForm1.FormCreate(Sender: TObject);


begin
...
ADOTblPengambilan.Open;
end;
f. Menggunakan properti Master-Fields
Selanjutnya, dilakukan pengaturan bagaimana cara kedua dataset tersebut berhubungan.
Pilih properti MasterFields, dan klik button ellipsis di sebelahnya. Kotak dialog Field Link
Designer akan ditampilkan. Field tabel Nilai ditampilkan pada Detail Fields, dan field tabel
Mahasiswa ditampilkan pada Master Fields.

Gambar 4.2. Field Link Designer.


Klik NIM pada Detail Fields dan klik NIM pada Master Fields, lalu klik Add. Ini berarti
bahwa hubungan Master-Fields dilakukan melalui kedua field tersebut. Klik OK.
Masukkan komponen DataSource (dari tab DataAccess) ke dalam form, atur propertinya:
Properti
Nilai
Name
DtSrcPengambilan
DataSet
ADOTblPengambilan
DataSource diperlukan sebagai sumber data bagi komponen pengisian data pengambilan
matakuliah. Jadi prinsipnya adalah bila ada sejumlah sumber data yang berbeda maka
ada sejumlah komponen DataSource pula.
g. Memasukkan komponen lain pada tab Entry Pengambilan Matakuliah
Masukkan sejumlah komponen lain untuk keperluan entry data pengambilan matakuliah,
atur posisinya seperti pada gambar 4.3. Tabel Nilai memiliki 4 field, tetapi hanya 3 field
yang diisi (bayangkan seperti pada saat pengisian KRS, tentunya belum ada nilai untuk
matakuliah yang diambil). Entry data NIM dan Semester Ambil menggunakan dbEdit,
sedangkan untuk kode matakuliah menggunakan dbLookupComboBox.
Atur penamaannya masing-masing sebagai berikut:
Nama/jenis
komponen
dbEdit

Properti
Name

Darmawan Satyananda Praktikum Basis Data 08/09

Nilai
dbeNIMAmbil

18

Nama/jenis
komponen

dbLookupCombobox

dbEdit

Properti
DataSource
DataField
ReadOnly
Name
DataSource
DataField
Name
DataSource
DataField

Nilai
DtSrcPengambilan
NIM
True
dbcKodeMKAmbil
DtSrcPengambilan
KodeMK
dbeSmtAmbil
DtSrcPengambilan
SmtAmbil

Gambar 4.3. Isi tab Pengambilan Matakuliah


Dengan cara yang sama seperti pada saat anda menentukan properti untuk isian kode
prodi pada Entry data mahasiswa, aturlah properti untuk kode matakuliah yang diambil.
Data yang ditampilkan di ListSource adalah data kode matakuliah. Berarti anda harus
menambahkan komponen ADOTable untuk tabel Matakuliah dan menambahkan
DataSource. Atur supaya dbcKodeAmbil mengacu ke DataSource yang baru ini. Atur pula
properti ListField dan KeyField (apa yang seharusnya ditampilkan dan disimpan?).
h. Mengatur aktif-tidaknya komponen pada tab Entry Pengambilan Matakuliah
Lakukan hal yang serupa dengan yang anda lakukan pada saat menentukan aktif
tidaknya komponen untuk entry data MataKuliah atau entry data Mahasiswa
Coba jalankan program anda. Pilih salah satu mahasiswa, lalu berpindahlah ke tab
Pengambilan Matakuliah. Klik button untuk insert data baru, maka NIM mahasiswa secara
otomatis ditampilkan di edit box untuk isian NIM. Isikan data yang lain, dan lihat di tabel
Nilai, maka data anda akan tersimpan.

Darmawan Satyananda Praktikum Basis Data 08/09

19

i. Menambahkan grid untuk menampilkan semua matakuliah yang diambil


Kalau diperhatikan, data pengambilan matakuliah hanya ditampilkan satu per satu. Untuk
menampilkan semua data, tambahkan DBGrid pada tab pengambilan matakuliah.
Arahkan datasourcenya ke data source untuk pengambilan MK, dan buat agar read only.
Jalankan program anda, tampak semua data mahasiswa tersebut ditampilkan. Bila anda
menambah data pengambilan matakuliah, maka akan muncul satu baris data yang baru.
Simpan semua pekerjaan anda.

Darmawan Satyananda Praktikum Basis Data 08/09

20

PRAKTIKUM 5
Kegiatan:
Pembuatan report berbentuk Simple Table secara manual
Untuk menampilkan atau mencetak data yang tersimpan, perlu dibuat report. Delphi
menyediakan editor report yaitu RAVE (Report Authoring Visual Environment). Report
yang bisa dibuat berupa Simple Table Report (report tunggal) karena hanya melibatkan
satu data source, atau Master-Detail Report karena melibatkan lebih dari satu data
source. RAVE memerlukan data dari basis data, dalam hal ini bisa memanfaatkan sumber
data (ADOConnection, ADOTable, DataSource) yang sudah terkoneksi dengan form tempat
komponen RAVE berada.
Report bisa dibuat dengan wizard atau secara manual. Untuk kemudahan modifikasi,
yang dibahas hanya yang secara manual saja. Praktikum kali ini akan membuat report
Simple Table untuk kasus report data Mahasiswa.
Berikut langkah-langkahnya:
a. Membuat Rave Project
Buka form untuk entry data mahasiswa
Masukkan komponen RvDataSetConnection dan sebuah RvProject, atur propertinya:
Jenis komponen
RvDataSetConnection

Properti
Name
DataSet

Nilai
RvDSMahasiswa
ADOTblMahasiswa
(sesuaikan dengan nama
dataset anda)
RvProject
Name
RvPrjMahasiswa
Klik 2x pada RvProject untuk menampilkan RaveDesigner
b. Menentukan sumber data
Klik File New Data Object, pilih Direct Data View, klik Next.
Pilih nama RvDataSet yang anda buat (RvDSMahasiswa), klik Finish. Tampak lembaran
kosong report yang akan kita rancang.
c. Menambahkan Region, Band, dan Data band
Region adalah daerah dalam report yang digunakan untuk menampilkan data dan
yang lainnya (misal judul field). Region bisa berisi band dan data band. Band adalah
daerah untuk meletakkan judul kolom dan informasi lain seperti judul report, dan Data band
adalah daerah untuk meletakkan field tabel (data) yang akan ditampilkan.
Pada Rave designer, pilih tab Report, pilih komponen Region, masukkan di dalam report
di bawah tanggal dan perlebar sampai hampir memenuhi report (secukupnya).
Klik pada komponen Band, lalu letakkan di region. Klik komponen Data band, letakkan di
region. Klik Band sekali lagi dan letakkan di bawah DataBand1. Dengan demikian,
DataBand1 akan berhimpitan diapit Band1 dan Band2.

Darmawan Satyananda Praktikum Basis Data 08/09

21

Klik pada Band1, pilih properti BandStyle, klik button di sebelahnya sehingga muncul
BandStyle Editor. Pilih checkbox BodyHeader dan First. Langkah ini bertujuan untuk
menjadikan Band1 sebagai header laporan dan menampilkannya setiap kali ganti
halaman. Klik OK untuk mengakhiri.
Klik pada property ControllerBand, pilih DataBand1 (atau nama data band yang ada di
band tersebut). ControllerBand digunakan untuk menentukan band pengendali, dalam hal
ini bila DataBand1 menampilkan data maka Band1 akan ikut muncul dan sebaliknya.
Klik pada DataBand1, pilih properti DataView, pilih DataView1 (atau nama data view yang
dispesifikasikan sebelumnya untuk data mahasiswa). Ini bertujuan untuk menentukan
sumber data yang akan ditampilkan di data band.
Klik pada Band2, pilih properti BandStyle. Pada BandStyle Editor, Pilih BodyFooter dan
First. Langkah ini bertujuan untuk menjadikan Band2 sebagai footer laporan dan
menampilkannya setiap kali ganti halaman. Klik OK untuk mengakhiri.
d. Menentukan judul laporan
Pilih tab Standard (di Rave Designer), pilih komponen Text, dan klik di Band1 untuk
meletakkannya.
Gantilah teksnya melalui properties windownya menjadi Daftar Mahasiswa, lalu
tentukan juga font atau colornya.
e. Menambahkan label judul kolom pada Band sebagai header
Seperti biasa, bila reportnya berbentuk tabel maka diperlukan judul kolom. Judul
kolom diletakkan di dalam band. Berikut langkahnya:
Klik Band1, perlebar area antara Band1 dan DataBand1 untuk memberikan tempat bagi
label.
Pilih tab Standard, pilih komponen Text dan letakkan pada daerah Band1.
Untuk mengganti teksnya, pilih properti Text, dan isikan judul kolomnya (misal NIM).
Tambahkan komponen Text lainnya sebanyak kebutuhan field yang akan ditampilkan dan
atur judulnya.
f. Menambahkan komponen DataText pada DataBand
Isi field ditampilkan melalui komponen DataText yang diletakkan di daerah DataBand.
Berikut langkah pembuatannya:
Pilih tab Report, pilih komponen DataText dan letakkan pada daerah DataBand1.
Tentukan properti DataView dengan DataView1 (atau DataView lain yang sesuai), dan
tentukan properti DataField dengan nama field yang isinya akan ditampilkan (pilih dari
list yang ada).
Ulangi untuk field yang lain sampai lengkap, atur pula lebar, tinggi, fontnya, dan lainnya.
g. Menambahkan nomor urut pada setiap baris yang ditampilkan
Setiap baris bisa diberi nomor urut tersendiri. Berikut langkah pembuatannya:

Darmawan Satyananda Praktikum Basis Data 08/09

22

Pilih tab Report, pilih komponen CalcText dan letakkan pada sebelah kiri field DataText
pertama di DataBand1.
Lakukan pengaturan propertinya:
Properti
CalcType

Nilai
ctCount

Controller

DataBand1

RunningTotal

true

Keterangan
Menyatakan proses untuk mendapatkan
cacah data
Komponen yang dijadikan acuan untuk
melakukan perhitungan ketika data
dicetak
Melakukan penjumlahan nilai sebelumnya
dengan 1

h. Menentukan tanggal dan nomor halaman pada Band sebagai footer


Untuk memasukkan nomor halaman laporan, masukkan sebuah DataText (ada di tab
Report) ke Band2 (tidak harus di footer sebenarnya, hanya saja kali ini kita akan letakkan
di footer).
Melalui panel Property, pilih properti DataField, klik button ellipsis, selanjutnya akan
ditampilkan Data Text Editor.

Gambar 5.1. Data Text Editor


Pada kotak di bawah Data Text ketikkan Halaman: + (tuliskan lengkap dengan
tanda petik dan plus)
Pastikan isian Report Variables berisi CurrentPage, lalu klik button Insert Report Var.
Isian di kotak Data Text akan menjadi Halaman: + Report.CurrentPage. Klik OK
untuk mengakhiri.

Darmawan Satyananda Praktikum Basis Data 08/09

23

Untuk memasukkan keterangan tanggal, masukkan kembali DataText ke dalam report.


Tampilkan Data Text Editor, lakukan hal seperti di atas, tetapi pastikan isian Report
Variables adalah DateLong.
i.

Menambahkan keterangan pada akhir report


Pada akhir laporan juga bisa ditambahkan keterangan (misalnya untuk menampilkan

total penjumlahan atau keterangan lain).


Tambahkan komponen Text (dari tab Standard), atur teks yang ditampilkan (misalnya:
Universitas Negeri Malang)
Bila semua langkah anda lakukan dengan benar, maka tampilan report anda kurang
lebih sebagai berikut:

Gambar 5.2. Tampilan rancangan report


j.

Menyimpan dan melihat hasilnya

Simpan hasil pekerjaan anda dengan menekan menu File Save. Tentukan lokasi
penyimpanan dan namanya. File report disimpan dengan ekstensi .rav.
Untuk melihat hasilnya, anda bisa pilih menu File Execute report (atau tekan F9).
Tentukan apakah dipreview ke layar atau dicetak ke printer.
Bila semua sudah benar, simpan report anda dan keluarlah dari Rave Designer.
k. Menghubungkan report ke form
Kembali bukalah form Mahasiswa, klik pada RvPrjMahasiswa. Klik di properti ProjectFile,
pilih report yang baru anda buat tadi (yang berekstensi .rav).
Pengaktifan report dilakukan dengan menekan sebuah button. Tambahkan sebuah
button ke dalam form (di tab Entry Data), beri nama btPreview, beri caption Preview.
Klik 2x pada event OnClick, lalu masukkan kode berikut:
procedure TForm1.btPreviewClick(Sender: TObject);
begin
rvPrjMahasiswa.Execute;
end;
Jalankan programnya, maka report akan ditampilkan bila button Preview diklik. Simpan
pekerjaan anda.

Darmawan Satyananda Praktikum Basis Data 08/09

24

PRAKTIKUM 6
Kegiatan:
Pembuatan report berbentuk Master-Detail
Praktikum 5 adalah contoh pembuatan report Simple Table secara manual. Praktikum
kali ini adalah membuat Master-Detail Table secara manual, dalam kasus pembuatan report
transkrip atau data nilai setiap mahasiswa. Nantinya setiap mahasiswa akan menerima
selembar report yang berisi daftar nilai mereka.
Berikut langkah-langkahnya:
a. Menentukan sumber data
Report kali ini memerlukan dua sumber data: data Mahasiswa dan data Nilai. Anda
bisa memanfaatkan RvDSMahasiswa yang digunakan pada praktikum 5 (seandainya belum
ada maka buat dulu DataSet, DataSource, dan TRvDataSetConnectionnya). Untuk data
pengambilan matakuliah, jangan mengambil dari ADOTblPengambilan yang anda gunakan di
form karena sifatnya yang master-detail (karena sifat ini, bila satu data master dipilih, maka
data detailnya menyesuaikan dengan data master sehingga tidak semua data ditampilkan).
Untuk itu, masukkan sebuah komponen ADOTable dengan koneksi diarahkan ke
ADOConAkademik dan properti TableName diarahkan ke tabel Nilai. Beri nama dengan
ADOTblNilaiRpt. Jangan mengeset properti Master-Detailnya.
b. Membuka report kosong
Buka form untuk entry data pengambilan matakuliah mahasiswa
Masukkan satu komponen RvDataSetConnection dan sebuah RvProject, atur propertinya:
Jenis komponen
RvDataSetConnection

Properti
Name
DataSet

Nilai
RvDSAmbilMK
ADOTblNilaiRpt
(sesuaikan dengan nama
dataset anda)
RvProject
Name
RvPrjMahasiswaAmbil
Klik 2x pada komponen RvProject di form, maka RAVE Report Designer ditampilkan.
Pastikan yang terbuka adalah report kosong, bila belum kosong pilih menu File - New
c. Menambahkan DataView dan Region
Berikutnya, tentukan sumber data untuk report yang akan dibuat. Klik File New Data
Object. Pilih Direct Data View, maka akan ditampilkan nama DataSetConnection yang
sudah dimasukkan di form. Pilih RVDSMahasiswa dan RvDSAmbilMK, lalu klik Finish.
Perhatikan di Project Tree (di sebelah kanan), sekarang ada dua Data View (DataView1
dan DataView2). RVDSMahasiswa digunakan sebagai data master, dan RvDSAmbilMK
sebagai data detail
Masukkan sebuah Region ke dalam report, atur posisi dan ukurannya, kira-kira sampai
memenuhi ukuran kertas.

Darmawan Satyananda Praktikum Basis Data 08/09

25

d. Menambahkan Band dan DataBand untuk judul report dan data setiap
mahasiswa
Masukkan sebuah Band dan DataBand (akan bernama sebagai Band1 dan DataBand1).
Band1 akan digunakan untuk meletakkan judul report, dan DataBand1 berisi data rinci
setiap mahasiswa.
Ubah properti Band1 tersebut:
Properti
BandStyle

Nilai
cek pada Body
Header, First, dan
New Page
DataBand1

Keterangan
Membuat band sebagai header, muncul di
halaman pertama, dan setiap halaman
baru.
ControllerBand
Keberadaan Band1 ditentukan oleh
DataBand1
Masukkan sebuah komponen Text (dari tab Standard), ubah teksnya menjadi Transkrip
Nilai
Ubah properti DataBand1:
Properti
DataView

Nilai
DataView1
(sesuaikan dengan
data sebenarnya)
BandStyle
cek pada Detail
dan First
Tambahkan dua buah komponen text (dari

Keterangan
Nama data view untuk data semua
mahasiswa
Sebagai bagian yang berisi data dari tabel
tab Standard) dan dua buah komponen

DataText (dari tab Report) untuk menampilkan data setiap mahasiswa. Untuk kedua
komponen DataText, atur properti DataView ke DataView1 (yang berisi data Mahasiswa),
dan atur properti DataField ke field yang sesuai dalam tabel.
Berikut ini contoh tampilan Band1 dan DataBand1

Gambar 6.1. Layout Band1 dan DataBand1


e. Menambahkan Band dan DataBand untuk data matakuliah
Masukkan sebuah Band dan DataBand (akan bernama sebagai Band2 dan DataBand2).
Band2 akan digunakan untuk meletakkan judul data matakuliah yang diambil setiap
mahasiswa, dan DataBand2 berisi data rinci matakuliah tersebut.
Ubah properti Band2:
Properti
BandStyle

Nilai
tambahkan cek
pada Detail dan
First

Darmawan Satyananda Praktikum Basis Data 08/09

Keterangan

26

ControllerBand

DataBand1

Keberadaan Band2 ditentukan oleh


DataBand1
Masukkan tiga buah komponen Text secara mendatar ke kanan, masing-masing
digunakan untuk menampilkan teks Kode MK, Nilai", dan Semester Ambil.
Tambahkan garis pembatas bila perlu (dari tab Drawing).
Atur properti DataBand2:
Properti
ControllerBand

Nilai
DataBand1

DataView

DataView2

DetailKey

NIM

MasterDataView
MasterKey

DataView1
NIM

Keterangan
Keberadaan DataBand2 ditentukan oleh
DataBand1
Nama data view yang berisi data
pengambilan matakuliah
Field di tabel detail yang terhubung
dengan Master
DataView yang bertindak sebagai Master
Field di tabel master yang terhubung
dengan Detail

BandStyle

Cek pada checkbox


Detail dan First
Masukkan komponen DataText ke dalam DataBand2, di bawah judul kolom KodeMK. Atur
properti DataView agar mengarah ke DataView2, dan DataField ke field KodeMK.
Tambahkan DataText lain untuk Nilai dan Semester Ambil. Layoutnya kurang lebih
sebagai berikut:

Gambar 6.2. Layout Band2 dan DataBand2


Coba lihat hasilnya dengan menekan F9. Simpan hasilnya bila sudah selesai. Perhatikan
masih ada kelemahan: tidak bisa menampilkan nama matakuliah dan SKS.
f. Menambahkan footer
Tambahkan sebuah Band baru (Band3). Band ini digunakan sebagai penutup laporan
setiap mahasiswa. Ubah propertinya:
Properti
ControllerBand

Nilai
DataBand2

FinishNewPage

True

Keterangan
Keberadaan Band3 ditentukan oleh
DataBand2
Setelah selesai ditampilkan, maka
memaksa untuk pindah ke halaman baru

BandStyle

Cek pada checkbox


BodyFooter dan
First
Tambahkan garis penutup dan keterangan lain yang perlu, misalnya tanggal dan nama
rektor, dan nomor halaman. Tata letaknya sebagai berikut:

Darmawan Satyananda Praktikum Basis Data 08/09

27

Gambar 6.3. Layout Band3


g. Menampilkan report
Simpan report yang dibuat dengan nama RvPrjMahasiswaAmbil
Tambahkan sebuah button di tab Pengambilan Matakuliah. Tentukan kodenya agar bisa
membuka RvPrjMahasiswaAmbil.
Jalankan programnya dan simpan hasilnya bila sudah selesai.
Bila dilihat, masih ada kelemahan yaitu masih menampilkan kode matakuliah saja, belum
sampai pada nama dan SKSnya. Yang lain adalah bila seorang mahasiswa tercatat di
tabel Mahasiswa dan tidak mengambil kuliah apapun, maka transkrip tetap tercetak.

Darmawan Satyananda Praktikum Basis Data 08/09

28

PRAKTIKUM 7
Kegiatan:
Menyimpan dan menampilkan image
Bila kita menyimpan data seseorang secara elektronik maka foto (image) orang itu
sebaiknya bisa disimpan secara elektronik juga. Delphi menyediakan komponen yang bisa
digunakan untuk menampilkan image, dan Access bisa menyimpan data image.
Ada dua macam pendekatan dalam menyimpan image: (1) Image disimpan di tabel.
Keuntungannya adalah data image tersebut menyatu dengan data lain, tetapi akibatnya
ukuran file anda akan sangat besar, terlebih lagi bila image anda berukuran besar. (2) File
image disimpan dalam folder tersendiri dan yang disimpan di tabel hanya nama file dan
lokasinya saja. Keuntungannya adalah file data anda tetap berukuran kecil, tetapi akibatnya
adalah file anda bisa saja tercecer atau hilang. Pada praktikum ini akan digunakan cara yang
pertama.
Hanya saja yang perlu diperhatikan adalah jenis imagenya. Yang bisa disimpan secara
langsung adalah yang bertipe bmp, sehingga anda harus menyediakan file dengan tipe ini.
Anda bisa mengconvert dari file jpeg atau yang lain dengan menggunakan software image
editor (misalnya Photoshop atau Paint).
a. Menambahkan field baru ke tabel Mahasiswa
Buka kembali tabel Mahasiswa dalam Design Mode, tambahkan sebuah field dengan
nama Foto dan dengan field type OLE Object.
Simpan kembali dan tutup databasenya
b. Memodifikasi form pengisian data Mahasiswa
Buka kembali form pengisian data Mahasiswa. Masukkan komponen DBImage yang
digunakan untuk menampilkan image (diambil dari tab DataControls), dua buah Button,
dan OpenPictureDialog (diambil dari tab Dialogs). OpenPictureDialog digunakan untuk
menampilkan kotak dialog pemilihan file yang akan disimpan di tabel. Komponen ini
sifatnya nonvisual sehingga anda bisa letakkan di manapun. Atur propertinya sebagai
berikut:
Nama/jenis
komponen
Button
Button
DBImage

OpenPictureDialog

Properti
Caption
Name
Caption
Name
Name
Stretch
DataSource
DataField
Name
Title

Darmawan Satyananda Praktikum Basis Data 08/09

Nilai
Ambil foto
btAmbilFoto
Hapus foto
btHapusFoto
dbiFoto
True
DtSrcMahasiswa
Foto
opAmbilFile
Ambil file foto

29

Tampilannya kurang lebih sebagai berikut:

Gambar 7.1. Layout form Entry Data Mahasiswa


Untuk menyimpan image, maka terlebih dulu harus ditentukan filenya. Pemilihannya
menggunakan komponen OpenPictureDialog. Pengaktifannya menggunakan button
AmbilFoto. Tampilkan event handler onClick milik btAmbilFoto, lalu masukkan kode
berikut:
procedure TForm2.btAmbilFotoClick(Sender: TObject);
var nama:string;
begin
if opAmbilFile.Execute then
begin
nama:=opAmbilFile.FileName;
dbiFoto.Picture.LoadFromFile(nama);
end;
end;
Execute adalah method untuk menampilkan kotak dialog. Outputnya berupa nilai True
(bila ada file yang dipilih) dan False (bila batal memilih). Nama file yang dipilih ada di
properti FileName. Untuk menampilkan image dari file yang dipilih, digunakan method
LoadFromFile milik dbiFoto dengan prameternya adalah nama file yang akan ditampilkan.
Untuk menghilangkan (menghapus) image yang tersimpan, perintah yang harus
dimasukkan ke button btHapusFoto adalah sebagai berikut:
procedure TForm2.btHapusFotoClick(Sender: TObject);
begin
dbiFoto.Picture:=nil;
end;
c. Memodifikasi pengaktifan tombol
Ingat kembali bahwa pada saat program dijalankan, ada bagian yang dinonaktifkan dan
baru diaktifkan bila datanya akan diedit atau dilakukan pengisian data baru. Ubahlah

Darmawan Satyananda Praktikum Basis Data 08/09

30

procedure AturIsianMahasiswa sebagi berikut: (tambahkan di akhir procedure bagian


yang tercetak tebal)
procedure TForm2.AturIsianMahasiswa(kondisi: boolean);
begin
... // sama dengan sebelumnya
dbiFoto.Enabled:=kondisi;
btAmbilFoto.Enabled:=kondisi;
btHapusFoto.Enabled:=kondisi;
end;
d. Menjalankan form yang dimodifikasi
Coba jalankan programnya, lalu edit data yang sudah ada atau menambahkan data baru.
Pada saat pengisian foto, pilih salah satu file image yang sudah anda siapkan. Sebaiknya
anda telah mengubah ukuran imagenya sehingga database anda tidak terlalu besar
ukurannya (untuk mengubah ukuran image bisa digunakan image editor seperti ACDSee
atau Paint). Ingat bahwa tipe filenya adalah bmp.
Bila program anda hentikan lalu dijalankan lagi maka image yang tersimpan akan
ditampilkan kembali
Simpan program anda.

Darmawan Satyananda Praktikum Basis Data 08/09

31

PRAKTIKUM 8
Kegiatan:
Menampilkan image di dalam report
Image yang tersimpan kali ini akan ditampilkan pada report, dengan menyisipkannya
pada transkrip nilai yang sudah anda buat pada praktikum 6.
Buka kembali report yang anda rancang pada praktikum 6 dalam report editor.
Komponen yang digunakan untuk menampilkan image terletak pada tab standard. Klik
komponen Bitmap , letakkan pada DataBand (di sebelah kanan NIM dan Nama). Jangan
diletakkan pada band biasa. Atur ukurannya seperlunya.
Atur properti komponen tersebut:
Properti
DataView

Nilai
DataView1

DataField
MatchedSide

Foto
msBoth

Keterangan
DataView untuk data mahasiswa
(sesuaikan namanya dengan milik anda)

msBoth: menyesuaikan ukuran gambar


yang ditampilkan dengan ukuran yang
ditentukan di laporan
Coba eksekusi reportnya, maka image mahasiswa akan ditampilkan. Bila mahasiswa tidak
memliki image yang tersimpan maka tidak ada yang ditampilkan.
Simpan kembali pekerjaan anda.

Darmawan Satyananda Praktikum Basis Data 08/09

32

PRAKTIKUM 9
Kegiatan:
Menggunakan menu
Hasil dari praktikum sebelumnya adalah sejumlah form yang harus dipilih untuk
dieksekusi dari Project Options. Untuk merangkaikan kesemuanya, bisa dibuat menu dalam
bentuk pulldown menu.
a. Menambahkan form baru dan komponen menu
Buka kembali project anda
Tambahkan sebuah form baru (File New Form).
Tambahkan komponen MainMenu dari tab Standard. Komponen ini sifatnya nonvisual.
b. Menentukan isian mainmenu dan submenu
Untuk mengedit menu dan submenu yang ditampilkan, klik kanan pada komponen
MainMenu di form, pilih Menu Designer. Bagian yang bertanda biru saat itu adalah
tempat menuliskan pilihan main menu.

Gambar 9.1. Tampilan menu designer


Tuliskan Program, lalu klik di sebelah kanannya untuk menuliskanData. Berarti ada
dua main menu.
Untuk menambahkan submenu, pilih pada salah satu main menu, maka akan
ditampakkan bagian yang bertanda biru di bawahnya. Misalkan klik pada Program dan
tuliskan Selesai di bawahnya. Lakukan hal yang serupa untuk menambahkan sub menu
Data Matakuliah dan Data Mahasiswa sebagai submenu dari Data.
Tutup menu designer untuk mengakhiri pembuatan main menu.
c. Melakukan referensi ke form lain
Form yang sedang dirancang ini nantinya akan ditampilkan pertama kali dan memanggil
form lain. Untuk itu perlu dilakukan pengacuan terhadap form lain. Buka form Input data
Mahasiswa, tampilkan code editornya, dan pergilah ke baris pertama. Perhatikan dan

Darmawan Satyananda Praktikum Basis Data 08/09

33

catat yang tampak di klausa Unit. Lakukan hal yang sama terhadap form Input data
Matakuliah.
Berpindahlah ke form yang mengandung menu tadi, tampilkan code editornya, dan
berpindahlah ke baris pertama. Tambahkan nama Unit dari dua form anda yang tadi ke
klausa Uses, misalnya seperti kode berikut ini (yang tercetak tebal):
unit Menu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, Menus, InputMahasiswa, InputMK;
Untuk menjadikan form yang berisi menu sebagai form yang pertama kali dieksekusi,
pilih menu Project Options. Pada isian Main Form, pilih nama form yang berisi menu
(misal Form3). Klik OK.
d. Menentukan kode yang terkait dengan setiap sub menu
Bila dieksekusi, main menu atau sub menu akan bekerja bila diklik. Untuk itu kita
tentukan kode apa yang harus dieksekusi pada saat terjadi pemilihan main menu atau
sub menu. Misalkan pada saat memilih item Data Matakuliah maka akan membuka
form matakuliah (misalkan yang bernama Form1). Pada form, klik pilihan Data
Matakuliah, maka code editor akan terbuka. Masukkan kode berikut (sesuaikan dengan
nama form anda):
procedure TForm3.DataMatakuliah1Click(Sender: TObject);
begin
Form1.Show;
end;
Lakukan hal yang serupa terhadap form yang lain, sesuaikan namanya.
Untuk pilihan Selesai, kodenya adalah sebagai berikut:
procedure TForm3.Selesai1Click(Sender: TObject);
begin
Application.Terminate;
end;
Coba jalankan program anda dan pastikan pilihan sub menu berjalan dengan baik.
e. Menentukan sifat tampilan form
Pada saat eksekusi, bila anda memilih salah satu pilihan sub menu maka form yang
terkait akan ditampilkan (misal form Input data Mahasiswa). Anda bisa berpindah dari
form input data mahasiswa ke main menu dan sebaliknya. Ini perlu kita hindari, untuk
memastikan bahwa hanya ada satu form yang bisa diakses setiap saat.
Pada saat pemanggilan, gunakan method ShowModal, bukannya Show. Ini akan
membuat form yang dipanggil bersifat modal sehingga anda tidak bisa mengakses form
lain sebelum menutup form saat itu. Ulangi langkah ini untuk semua form selain form
yang berisi main menu.
Coba jalankan program anda dan lihat perbedaannya. Simpan form anda.

Darmawan Satyananda Praktikum Basis Data 08/09

34

PRAKTIKUM 10
Kegiatan:
Pencarian data pada ADODataSet dengan menggunakan Locate
Sampai dengan praktikum sebelumnya anda belum bisa mencari data tertentu. Untuk
mencari data anda harus berpindah ke record lain dengan menggunakan DBNavigator. Tidak
praktis bila datanya sangat banyak. Karena komponen akses data yang digunakan berbedabeda, maka pada praktikum ini dan selanjutnya akan diketengahkan bagaimana melakukan
pencarian data pada berbagai jenis komponen data.
Pada praktikum ini pencarian data akan dilakukan pada form yang menggunakan
komponen ADOTable (form entry data Matakuliah). Pencarian dilakukan berdasarkan kode
matakuliah. Bila data yang dicari ada maka data akan ditampilkan, sedangkan bila tidak ada
maka diberikan pesan bahwa tidak ada data yang sesuai.
Pencarian dilakukan dengan menggunakan method Locate. Method ini akan mencari
field pertama yang ditemukan, sehingga bila ada sejumlah field yang sama atau mirip
nilainya, maka sisanya tidak akan ditampilkan. Selain pada komponen ADOTable, method ini
juga bisa digunakan pada komponen ADODataSet.
a. Memodifikasi form entry data Matakuliah.
Buka kembali form entry data Matakuliah
Tambahkan komponen button ke dalam form. Atur captionnya dengan Cari dan beri
nama btCari.
Pada event onClick milik button tersebut, masukkan kode berikut:
procedure TForm1.btCariClick(Sender: TObject);
var kodeMK:string;
hasil:boolean;
begin
kodeMK:='';
hasil:=InputQuery('Pencarian Matakuliah','Kode MK:', kodeMK);
if hasil then
if not ADOTbMataKuliah.Locate('KODEMK',kodeMK,[loPartialKey])
then
MessageDlg('Data tidak ada!', mtInformation, [mbOK],0);
end;
Pencarian dilakukan berdasarkan kode Matakuliah. Untuk memasukkan kode matakuliah
yang dicari, digunakan method InputQuery. InputQuery berbentuk sebagai kotak
dialog. Parameternya yang digunakan adalah: (1) teks yang ditampilkan sebagai judul
kotak dialog, (2) teks ditampilkan di depan isian, dan (3) variabel yang menerima hasil
isian. Pemanggilan method ini akan mengembalikan nilai True atau False sehingga harus
ditampung di variabel bertipe boolean. Nilai True dikembalikan bila OK ditekan, dan False
dikembalikan bila Cancel ditekan. Bentuk InputQuery pada saat dieksekusi:

Darmawan Satyananda Praktikum Basis Data 08/09

35

Gambar 11.1. Tampilan InputQuery


b. Eksekusi form entry data Matakuliah.
Jalankan program anda, tampilkan form entry data matakuliah. Klik pada button Cari.
Pada saat kode matakuliah diisikan dan OK ditekan, program akan mencari data yang
sesuai dengan menggunakan method Locate. Parameternya adalah: (1) Nama field yang
akan dicari datanya, (2) Kriteria pencarian (bisa secara langsung atau nilai dalam
variabel), dan (3) Himpunan yang menyatakan opsi pencarian. Konstanta loPartialKey
berarti akan mencari field yang nilainya sama atau mengandung bagian dari kriteria yang
ditentukan. Konstanta lain adalah loCaseInsensitive yang tidak mempertimbangkan
besar/kecilnya huruf.
Jalankan program anda dan klik pada button Cari, selanjutnya akan ditanyakan kode
matakuliah. Coba isikan salah satu kode, bila ada maka record pertama yang sesuai akan
ditampilkan. Bila anda isikan bagian dari kode matakuliah (misalkan MAU) maka record
pertama yang diawali dengan MAU akan ditampilkan. Bila anda ulangi pencarian dengan
kriteria yang sama maka hasilnya akan tetap, jadi hanya record yang pertama ditemukan
saja yang ditampilkan. Apa yang terjadi bila anda isikan bagian dari kode matakuliah
berupa karakter yang bukan karakter pertama (misal AU atau 499)?
Simpan program anda.

Darmawan Satyananda Praktikum Basis Data 08/09

36

PRAKTIKUM 11
Kegiatan:
Pencarian data dengan menggunakan ADOQuery
Cara sebelumnya sangat tidak praktis karena hanya data pertama saja yang
ditampilkan. Praktikum kali ini akan menggunakan cara lain untuk menampilkan sejumlah
data dalam bentuk grid. Pencarian dilakukan dengan menggunakan query SQL. Komponen
yang digunakan untuk mengeksekusi query SQL adalah ADOQuery. (Komponen
ADODataSet sebenarnya juga bisa digunakan untuk mengeksekusi query, dengan jalan
mengganti properti CommandType menjadi cmdText dan mengisikan querynya pada
properti CommandText).
Contoh yang digunakan adalah pada data mahasiswa. Pencarian dilakukan
berdasarkan NIM, Nama, atau semua data tanpa kriteria tertentu.
a. Membuat form pencarian data
Tambahkan sebuah form baru ke project yang sudah ada (jangan membuat project
baru).
Pada form tersebut, masukkan komponen ADOConnection, ADOQuery, DataSource,
RadioGroup, Edit, Button, dan DBGrid seperti tampilan berikut:

Gambar 11.1. Page baru dan sejumlah komponen di dalamnya.


Atur propertinya sebagai berikut:
Jenis komponen
ADOConnection

Properti
ConnectionString

ADOQuery

LoginPrompt
Name
Name

Darmawan Satyananda Praktikum Basis Data 08/09

Nilai
(arahkan ke basis data
akademik)
False
ADOConAkademik
ADOQryCariMhs

37

Jenis komponen

Properti
Connection
Name
DataSet
Name
Caption
Items

Nilai
ADOConAkademik
DataSource
DtSrcCariMhs
ADOQryCariMhs
RadioGroup
RGKriteria
Cari berdasarkan:
NIM
Nama
Semua record
ItemIndex
2
Edit
Name
edCari
Button
Name
btCariMhs
Caption
Cari
DBGrid
Name
DBGMhs
DataSource
DtSrcCariMhs
Pada event onClick milik btCariMhs, masukkan kode berikut:
procedure TForm2.btCariMhsClick(Sender: TObject);
var keyword,strQuery:string;
begin
ADOQryCariMhs.SQL.Clear;
// bersihkan memori
ADOQryCariMhs.Active:=false;
// nonaktifkan ADOQuery
strQuery:='SELECT * FROM MAHASISWA'; // query yg akan dimasukkan
if RGKriteria.ItemIndex=0 then
// kriteria: NIM
begin
keyword:=trim(edCari.Text);
if keyword<>'' then
begin
strQuery:=strQuery+' WHERE NIM="'+keyword+'"';
ADOQryCariMhs.SQL.Add(strQuery); // masukkan query yg baru
ADOQryCariMhs.Active:=true;
// aktifkan ADOQuery
if ADOQryCariMhs.RecordCount=0 then
MessageDlg('Data tidak ada!', mtInformation, [mbOK],0);
end
end
else if RGKriteria.ItemIndex=1 then // kriteria: Nama
begin
keyword:=trim(edCari.Text);
if keyword<>'' then
begin
strQuery:=strQuery+' WHERE Nama LIKE "%'+keyword+'%"';
ADOQryCariMhs.SQL.Add(strQuery);
ADOQryCariMhs.Active:=true;
if ADOQryCariMhs.RecordCount=0 then
MessageDlg('Data tidak ada!', mtInformation, [mbOK],0);
end
end
else if RGKriteria.ItemIndex=2 then // kriteria: semua data
begin
ADOQryCariMhs.SQL.Add(strQuery);
ADOQryCariMhs.Active:=true;
if ADOQryCariMhs.RecordCount=0 then
MessageDlg('Data tidak ada!', mtInformation, [mbOK],0);
end;
end;

Darmawan Satyananda Praktikum Basis Data 08/09

38

Pencarian dilakukan dari tabel Mahasiswa dan akan menampilkan semua data, sehingga
variabel strQuery diisi dengan SELECT * FROM MAHASISWA. Bila anda ingin field
tertentu saja yang ditampilkan, maka gantilah * dengan nama field yang diinginkan.
Pencarian berdasar NIM adalah contoh pencarian yang mensyaratkan kesesuaian
sepenuhnya antara keyword (kriteria) yang dimasukkan dengan data di field tertentu.
Variabel strQuery ditambah dengan kondisi pencarian WHERE NIM=[keyword].
Pencarian berdasar Nama adalah contoh pencarian yang mengambil bagian dari field
tertentu. Variabel strQuery ditambah dengan kondisi pencarian WHERE NIM LIKE
%[keyword]%.
Pencarian berdasar semua data tidak menggunakan kriteria tertentu.
Untuk memasukkan query baru, maka ADOQuery harus dinonaktifkan terlebih dulu.
Setelah query dimasukkan melalui properti SQL, maka ADOQuery diaktifkan kembali.
Pengaktifan ini akan mengakibatkan query dieksekusi. DataSource yang terhubung ke
ADOQuery selanjutnya meneruskan hasil query ke Grid untuk ditampilkan.
Judul kolom grid akan menyesuaikan dengan nama field dari tabel. Untuk menentukan
nama sendiri, tambahkan kode berikut sebelum end yang terakhir:
procedure TForm2.btCariMhsClick(Sender: TObject);
...
begin
... // sama dengan sebelumnya
DBGMhs.Columns[0].Title.Caption:=NIM;
DBGMhs.Columns[1].Title.Caption:=Nama mahasiswa;
... // dan seterusnya tentukan judulnya sendiri
end;
Dengan demikian anda harus tahu persis berapa kolom yang dihasilkan dan bagaimana
urutannya. Nomor kolom diawali dari indeks 0.
Simpan form tersebut, perhatikan nama filenya karena akan dipanggil dari menu.
b. Memanggil form pencarian data dari menu
Form yang sudah dibuat akan dipanggil dari menu yang sudah dibuat sebelumnya. Buka
kembali form yang berisi menu, masukkan menu Pencarian dan sub menu Data
Mahasiswa.
Masukkan nama unit dari form pencarian ke dalam klausa Uses milik form menu.
Pada event Click untuk sub menu Data Mahasiswa, masukkan nama form pencarian (lihat
cara memasukkan form sebelumnya).
Jalankan program anda, kemudian simpan kembali program anda.

Darmawan Satyananda Praktikum Basis Data 08/09

39

PRAKTIKUM 12
Kegiatan:
Report dengan menggunakan ADOQuery
Report yang sudah dibuat masih menampilkan semua data mahasiswa. Kali ini dengan
memanfaatkan ADOQuery akan dibuat report yang menampilkan data pengambilan nilai
mahasiswa tertentu. Report yang sudah dibuat tetap digunakan, hanya saja sekarang
diakses melalui menu di form menu. Yang dari form entry data mahasiswa adalah report per
mahasiswa.
a. Membuat menu untuk tampilan report semua data di form menu
Buka form menu, tambahkan menu Preview dan sub menu Data pribadi semua
mahasiswa serta sub menu Data nilai semua mahasiswa.
Rave Project untuk report data semua mahasiswa ada di form entry data mahasiswa.
Misalkan form entry data mahasiswa bernama frmMahasiswa dan Rave projectnya
bernama RvPrjMahasiswa. Kembali ke form menu, klik pada sub menu Data pribadi
semua mahasiswa, masukkan kode berikut:
procedure TfrmMenu.Semuamahasiswa1Click(Sender: TObject);
begin
frmMahasiswa.RvPrjMahasiswa.Execute;
end;
Rave Project untuk report data nilai semua mahasiswa juga ada di form entry data
mahasiswa. Misalkan Rave projectnya bernama RvPrjAmbilMKSemua. Kembali ke form
menu, klik pada sub menu Data nilai semua mahasiswa, masukkan kode berikut:
procedure TfrmMenu.Pengambilannilaisemuamahasiswa1Click(Sender:
TObject);
begin
frmMahasiswa.RvPrjAmbilMKSemua.Execute;
end;
Hapuslah kode pada event onClick di semua button Preview di form entry data
mahasiswa. Dengan demikian report semua mahasiswa Button tidak dihapus karena
akan digunakan untuk report per mahasiswa.
b. Membuat report pengambilan matakuliah per mahasiswa
Buka form entry data mahasiswa. Masukkan komponen RvProject, RvDataSetConnection,
dan ADOQuery. Atur propertinya sebagai berikut:
Jenis komponen
ADOQuery

Properti
Name
Connection
SQL

Nilai
ADOQryMahasiswa
ADOConAkademik
SELECT * FROM
MAHASISWA
RvProject
Name
RvPrjAmbilMKSendiri
RVDataSetConnection
DataSet
ADOQryMahasiswa
Name
RvDSMahasiswaQuery
Properti SQL adalah query untuk menentukan data set yang digunakan. Kali ini

Darmawan Satyananda Praktikum Basis Data 08/09

40

ditentukan karena di report perlu diketahui struktur data yang digunakan. Nanti datanya
akan diubah melalui query dalam program tetapi tidak mengubah strukturnya.
Buka report pengambilan matakuliah semua mahasiswa. Simpan dengan nama lain.
Pada kolom Object TreeView di sebelah kanan, buka pilihan Data View Dictionary. Hapus
DataView yang mengarah ke data mahasiswa (pada report sebelumnya bernama
DataView1). Hal ini dilakukan karena kita tidak akan menggunakan data mahasiswa yang
sepenuhnya berasal dari tabel Mahasiswa seperti pada report sebelumnya.
Masukkan DataView baru (File New Data Object Direct Data View, pilih
RvDSMahasiswaQuery). Struktur tabel mahasiswa akan tampil di bawah DataView1.
Yang menggunakan DataView1 adalah DataBand1. Atur kembali properti DataView pada
DataBand1 dan semua komponen DataText dan Bitmap di dalamnya, agar mengarah ke
DataView1 yang baru saja dimasukkan. Simpan report anda.
Kembali pada form entry data mahasiswa, atur properti ProjectFile pada komponen
RvProject agar mengarah ke report yang baru anda buat.
Klik dua kali pada button Preview untuk menentukan kode pada event onClick. Masukkan
kode berikut:
procedure TfrmMahasiswa.btPreviewClick(Sender: TObject);
var strQuery,NIM:string;
begin
NIM:=dbeNIM.Text;
// dptkan NIM dari NIM yg tampil
strQuery:='SELECT * FROM MAHASISWA WHERE NIM="'+NIM+'"';
ADOQryMahasiswa.SQL.Clear;
// bersihkan memori
ADOQryMahasiswa.Active:=false; // nonaktifkan ADOQuery
ADOQryMahasiswa.SQL.Add(strQuery);
// tentukan query yang baru
ADOQryMahasiswa.Active:=true;
// aktifkan ADOQuery
RvPrjAmbilMKSendiri.Execute;
// eksekusi report
end;
Pertama kali dapatkan NIM yang akan ditampilkan reportnya dari edit yang menampilkan
NIM. Slanjutnya dibentuk string query yang menyertakan NIM, yang kemudian
dimasukkan ke properti SQL dan diaktifkan. Pada saat report dieksekusi, data yang
ditampilkan adalah data baru hasil query.
Jalankan dan simpan program anda.
c. Membuat report data pribadi mahasiswa
Pembuatan report data pribadi mahasiswa dilakukan dengan cara yang serupa dengan
yang baru saja anda lakukan. Masukkan ADOQuery, RvProject, RvDSConnection.
Tentukan properti yang sesuai (properti SQL pada ADOQuery diset supaya mengarah ke
data Mahasiswa). Buka report data semua mahasiswa yang suda ada, simpan dengan
nama lain (atau buat yang baru sehingga bisa menampilkan foto mahasiswa), atur
Dataviewnya. Tentukan project untuk RvProject, tentukan kode untuk button yang ada.
Jalankan dan simpan program anda.

Darmawan Satyananda Praktikum Basis Data 08/09

41

PENUTUP
Praktikum Basis Data pada tahun akademik 2008/2009 menyajikan bagaimana
membuat program yang mengakses database dengan menggunakan Borland Delphi dan
Microsoft Access. Saya mengetengahkan beberapa cara untuk hal yang sama, misalkan
akses tabel dengan menggunakan ADOTable, dan ADOQuery (ADODataSet tidak dibahas,
anda bisa mencobanya sendiri). Anda bebas menggunakan yang mana, disesuaikan dengan
keperluan. Misalkan ingin menggunakan SQL gunakan ADOQuery, tetapi bila hanya
memasukkan atau edit data, gunakan ADOTable, atau bila ingin menggunakan keduanya
gunakan ADODataSet.
Belum semua hal diberikan karena keterbatasan waktu. Tetapi setidaknya bisa
memberikan gambaran tentang bagaimana pembuatan program yang mengakses basis
data. Silahkan kembangkan sendiri disesuaikan dengan permasalahan yang anda hadapi.
Kembangkan juga kemampuan anda, apa yang saya berikan masih sedikit, juga karena
pesatnya perkembangan di bidang pemrograman.
Demikian pula mengenai interface atau layout komponen, masih seadanya. Tidak ada
juga validasi data (misalnya anda akan menambahkan data mahasiswa baru, kemudian
langsung saja menyimpan data tanpa mengisi semua field atau hanya mengisi sebagian
saja).

Darmawan Satyananda Praktikum Basis Data 08/09

42

Anda mungkin juga menyukai