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
7
Darmawan Satyananda – Praktikum Basis Data 08/09
(key)
(key)
(key)
Field size (key)
1
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
2
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
3
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
4
· 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
5
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
6
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
7
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
8
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
9
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 menuliskan”Data”. 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