MODUL MODUL I X PEM ROGRAMAN ROGRAM AN DAT DAT ABASE ABASE DENGAN DEL PHI
Untuk praktikum praktikum ini kita ki ta menggunakan Ms. Ms. A Access ccess sebagai bagai databa databasenya. Contoh: Buat uat Databa Database seToko di M s.A s.Acces ccess, la l angkah-la h-l angkah: 1. Buka M s.A s.Acce ccess ss 2. K lik File il e-Ne -New – Bla Bl ank Data Database 3. Beri eri nam nama Fil File Nam Name: Toko, T oko, kli kl ik create 4. Padamenu Ta Table ble kli klik crea create te Table ble in in De Design sign view view untuk untuk membuat buat struktur tabel 5. Buat tabel bel Barang arang dengan struktur se seperti perti di bawah ini ini,, dengan Kode K odeB B sebaga bagai kunci pri primer (kli (klik kanan pada fie fi eld kodeB – prim primary key)
6. Sim Si mpan tabe tabell dengan nama Barang, Barang, kem kemudia udian tutup design design tabel tabel 7. Padajendel ndela Toko:da oko:databa tabase, se, double double kli klik tabel tabel barang, barang, kem kemudia udian isi isi tabel tabel denga dengan data-data data-data di di bawah ini ini
8. Dengan ngan cara yang yang sama, buat tabel Beli dengan struktur struktur seperti seperti di bawah bawah ini ini
9. Relasi asikan kan tabe tabel Beli dengan taebl Barang
1
10. Kemudian isi Tabel Beli dengan data-data seperti di bawah ini
11. Tutup aplikasi Ms.Access BORLAND DEL PHI PENCARIAN DATA
1. Buat form untuk pencarian data seperti di bawah ini
Komponen : Ta ADO
Komponen ADOConnection1
Propert Connection String Loginpromp
Nilai *(ke data base Toko) fals 2
ADOTable1
Data Access DataControl Standa
Data Source1 DBGrid1 DBNavigator1 Label1 GroupBox GroupBox2 GroupBox Edit1 Edit2 Edit3 Button1
Connectio Table Nam Active Datase DataSourc DataSourc Caption Caption Caption Caption Tex Tex Tex Caption
ADOConnection1 Barang Tru ADOTable1 Datasource1 Datasource1 Cari Nama Barang MetodeI Metode II Metode III
Cari
ADOConnection1 connection string, pilih use connection string – Build Pilih Microsoft Office 12.0 Access DatabaseEngine OLEDB provider.(jika Anda menggunakan Ms Access 2003 ke bawah pilih Microsoft Jet4.0 OL E DB Povider) – Next Select or enter a database name ->cari lokasi penyimpanan databaseToko
(J ika menggunakan Ms.Access 2007 ubah extensinya menjadi accdb,contoh: Toko.accdb)
Klik Test Connection, jika berhasil akan keluar jendela: Test connection succeeded Klik OK
3
Catatan: Dalam mengisi property Table Name jangan mengetik sendiri nama tabelnya, tapi pilih nama tabel yang tersedia 2. Pencarian Metode I (Pencarian tepat Sama) Pencarian ini berdasarkan masukan yang dimasukkan pada komponen Edit1, dimana masukannya harus tepat sama dengan nama barang yang dicari. Pencariannya diseleksi mulai dari abjad yang pertama. Ketik kode program pada Edit1 On Change: pr ocedur e TFor m1. Edi t 1Change( Sender : TObj ect ) ; begi n ADOTabl e1. Locat e( ' NamaB' , Edi t 1. Text , [ ] ) ; end;
3. Pencarian Metode II (Pencarian Mendekati Sama) Hampir sama dengan Metode I, tetapi masukannya tidak harus sama dengan nama barang yang dicari. pr ocedur e TFor m1. Edi t 2Change( Sender : TObj ect ) ; begi n ADOTabl e1. Locat e( ' NamaB' , Edi t 2. Text, [ LoPar t i al Key]) ; end;
4. Pencarian Metode III Pencarian ini dapat mencari nama barang yang mengandung huruf-huruf yang dimasukkan pada Edit3 (jadi bisa berada di awal, tengah ataupun belakang) Tambahkan var Ada di deklarasi global: var For m1: TFor m1; Ada: i nt eger ;
Kemudian ketikkan kodeprogram di bawah ini(Button1 On Click) pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ; begi n i f Ada =0 t hen ADOTabl e1. Fi r st el se ADOTabl e1. Next ; Whi l e not ADOTabl e1. Eof do begi n Ada: =Pos( upper case( Edi t 3. Text ) , upper case( ADOTabl e1[ ' NamaB' ] )); I f Ada>0 t hen br eak; ADOTabl e1. Next ; end; I f Ada =0 t hen begi n Beep; ADOTabl e1. Fi r st ;
end; end;
M ANIPULA SI DATA I NSERT DATA
1. Buat Form untuk input data barang seperti di bawah ini, dengan komponen: Ta Komponen Propert Nilai ADO ADOConnection1 Connection String (ke data base Toko) ADOTable1 Connectio ADOConnection1 Table Nam Barang Active Tru Data Access Data Source1 Datase ADOTable1 DataControl DBGrid1 DataSourc Datasource1
2. Procedure Button1 OnClick
5
pr ocedur e TFor m1. But t on1Cl i ck( Sender : TObj ect ) ; begi n ADOTabl e1. Append; ADOTabl e1[ ' KodeB' ] : =Edi t 1. Text ; ADOTabl e1[ ' NamaB' ] : =Edi t 2. Text ; ADOTabl e1[ ' HBel i ' ] : =Edi t 3. Text ; ADOTabl e1[ ' HJ ual ' ] : =Edi t 4. Text ; ADOTabl e1. Post ; end;
atau dapat juga dengan menggunakan kode program: ADOTabl e1. I nser t Recor d( [ edi t 1. t ext , edi t 2. t ext , edi t 3. t ext , edi t 4. t ext ] ) ; VALI DASI (untuk memastikan bahwa kode barang yang akan diinsert belum ada di tabel barang) pr ocedur e TFor m1. Edi t 1Exi t ( Sender : TObj ect ) ; var ada: bool ean; begi n ada: =f al se; ada: =ADOTabl e1. Locat e( ' KodeB' , Edi t 1. Text , [ ] ) ; i f ada=t r ue t hen begi n showmess age( ' kode bar ang sudah ada' ) ; edi t 1. s et f oc us ; end; end; DEL ETE DATA
1. Tambahkan satu buah button, beri caption : DELETE 2. Kenakan event on click pada button tersebut kemudian beri kode program: AdoTabl e1. del et e; (record yang ditunjuk oleh cursor pada DBGrid akan dihapus) UPDAT E/EDI T DATA
1. Dalammengedit data, pertama-tama kita pilih datayang akan dipilih pada DBGrid, kemudian setiap field dari record yang terpilih ditampilkan pada komponen Edit5, Edit6, Edit7, dan Edit8. J adi pertama-tama kita kenakan evenT OnCellClick padakomponen DBGrid dengan kode program sebagai berikut: pr ocedur e TFor m1. DBGr i d1Cel l Cl i ck( Col umn: TCol umn) ; begi n edi t 5. Text : = dbgr i d1. Fi el ds [ 0] . As St r i ng; edi t 6. Text : = dbgr i d1. Fi el ds [ 1] . As St r i ng; edi t 7. Text : = dbgr i d1. Fi el ds [ 2] . As St r i ng; edi t 8. Text : = dbgr i d1. Fi el ds [ 3] . As St r i ng;
6
end;
Setelah itu kita dapat mengedit data yang ada pada komponen Edit tersebut, kemudian kita simpan dengan menggunakan button UBAH dengan kode program sebagai berikut: pr ocedur e TFor m1. But t on3Cl i ck( Sender : TObj ect ) ; begi n ADOTabl e1. Edi t ; ADOTabl e1[ ' KodeB' ] : =Edi t 5. Text ; ADOTabl e1[ ' NamaB' ] : =Edi t 6. Text ; ADOTabl e1[ ' HBel i ' ] : =Edi t 7. Text ; ADOTabl e1[ ' HJ ual ' ] : =Edi t 8. Text ; ADOTabl e1. Post ; end; REL ASI TABEL
1. Buat form untuk menampilkan relasi antara tabel Barang dengan Tabel Beli seperti di bawah ini:
dengan komponen sbb: Ta Komponen ADO ADOConnection1 ADOTable1
Data Access ADO
DataSource1 ADOTable2
Propert ConnectionStrin LoginPromp Connection TableNam Activ Dataset Connection
Nilai (ke databaseToko) Fals ADOConnection1 Beli Tru ADOTable1 ADOConnection1
7
TableNam Barang Mastersourc DataSource1 MasterField KodeB* Activ Tru Data Access DataSource2 Dataset ADOTable2 DataControls DBGrid1 DataSourc Datasource1 DBNavigato DataSourc DataSource1 DBEdit1 DataSourc DataSource2 DataField NamaB * Cara mengisi property MasterField adalah kita pilih kunci/field yang menjadi penghubung antara keduatabel, dalamkasus ini adalah KodeB. Setelah kita klik KodeB di kolom detail Fields dan KodeB di kolom Master Fields, kemudian klik add sehingga muncul tampilan seperti di bawah ini.
2. J alankan program. Program di atas menunjukkan keterkaitan antar tabel yang dalam kasus ini field pengaitnya adalah KodeB. K etika program dijalankan, maka kursor akan menunjuk padabaris tertentu pada DBGrid yang mengacu ke ADOTable1, yaitu tabel Beli. K omponen DBEdit akan menampilkan nama barang yang didapat dari tabel ADOTable2 (tabel Barang) sesuai dengan baris yang ditunjuk oleh kursor . DATA M ODULE
Komponen-komponen seperti ADOconnection, ADOTable, dan DataSource dapat diletakkan pada DataModule. Form-form yang mengakses suatu tabel databasedapat menggunakan komponen-komponen pada datamodule, sehingga kita tidak perlu melakukan koneksi pada setiap form.
8
Contoh Penggunaan Data Module Contoh berikut merupakan aplikasi yang terdiri dari 2 form yang sama-sama menampilkan tabel barang pada databaseToko. 1. Pilih File-New-Application. (Akan terbuka form 1 dan Unit 1 yang menyertainya) 2. Pilih File-New-data module. (Akan terbuka datamodule 2 dan unit 2 yang menyertainya (jadi unit 2 adalah unit untuk data module)). Letakkan komponenkomponen ADOConnection, ADOTable, dan Datasource untuk mengakses tabel barang pada database Toko. Lengkapi propertinya sebagai berikut. Komponen : Ta ADO
Komponen ADOConnection1
ADOTable1
Data Access
Data Source1
Propert Connection String Loginpromp Connectio Table Nam Active Datase
Nilai *(ke data base Toko) fals ADOConnection1 Barang Tru ADOTable1
3. Pada Unit 1 di bawah statement implementation tambahkan uses Unit 2 (karena form 1 akan menggunakan komponen pada data module), dan pada unit 2 tambahkan uses unit 1. 4. Tambahkan komponen DBGrid pada form 1, pilih property data source menjadi DataModule2.Datasource1. (DBGrid akan menampilkan tabel Barang) 5. Pilih File-New-Form untuk membuat form 3 6. Pada form1 tambahkan 1 buah button untuk membuka form 3. Pada unit 1 pada deklarasi uses tambahkan unit 3.(karenaform1 terdapat button untuk membuka form 3) 7. Pada unit 3 di bawah implementation tambahkan uses unit 2 (karena form3 akan menggunakan komponen-komponen yang ada pada DataModule). Dan padaunit 2 padadeklarasi uses tambahkan unit 3. 8. Letakkan komponen DBGrid pada form 3, pilih property datasource menjadi DataModule2.Datasource1. (DBGrid akan menampilkan tabel Barang) Dari contoh di atas dapat kita lihat dengan menggunakan datamodule kita tidak perlu mengatur koneksi database pada setiap form, cukup kita lakukan satu kali saja pada datamodule. Catatan: J ika Anda mengetikkan kode program pada Unit 1 atau unit 3 yang mengakases komponen-komponen pada datamodule, maka tambahkan statement DataModule2 di depan statement yang menyebutkan komponen tersebut. Contoh:
9
Dat aMoudul e2. ADOTabl e1. I nser t Recor d( [ edi t 1. t ext , edi t 2. t ext , edi t 3. t ext , edi t 4. t ext ] ) ;
L atihan
Buatlah Aplikasi database yang mengandung form untuk pencarian, form manipulasi data, dan form untuk melihat data(relasi 2 tabel) dengan menggunakan data module
10