basis data dan komponen basis data - …thevold3mort.tripod.com/downloads/delphi2.pdf · bde juga...

38
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005 II-1 BASIS DATA dan KOMPONEN BASIS DATA Delphi mendukung banyak jenis basis data. Basis data default yang digunakan adalah Paradox dan dBase, tetapi delphi tidak membatasi pengguna dalam pemilihan basis data bagi aplikasi yang akan dibuatnya. Modul ini menggunakan Ms. Access sebagai basis datanya. Basis data ini dipilih karena Anda – Anda sekalian sudah familiar dengan basis data produk Microsoft ini. Untuk menangani tabel-tabel Paradox dan dBase, Delphi menggunakan mesin yang dinamakan BDE (Borland Database Engine). BDE juga dapat berhubungan dengan SQL Server seperti Oracle dan Interbase untuk mengakses data source lain melalui ODBC(Open DataBase Connectivity). Dikarenakan ODBC bekerja dengan sangat lambat, maka Microsoft menciptakan ADO(ActiveX Data Object). ADO adalah sekumpulan objek COM 1) yang mengakses data melalui provider OLE DB (Object Linking Embeded Data Base), cara yang sama akan digunakan utk. mengakses basis data (Ms. Access) Anda. 1) COM is the Component Object Model, a Windows-based distributed object architecture designed to provide object interoperability using predefined routines called interfaces. COM applications use objects that are implemented by a different process Berikut ini komponen-komponen Delphi berikut yang akan digunakan dalam modul ini untuk operasi basis data menggunakan basis data Ms. Access (khususnya). KOMPONEN DATA ACCESS Komponen Data Access adalah komponen non-visual. Merupakan komponen yang secara langsung berhubungan dengan database (file secara fisik). Komponen data access hanya melakukan akses dengan database, seperti membuka tabel, membaca record, mengubah record dan sebagainya tanpa memperhatikan apa yang ditampilkan pada pengguna. Keterangan: No Komponen Kegunaan 1 Data Source Bertindak sebagi penghubung antara data access component dengan komponen-komponen visual. 2 Table Bertindak sebagai DataSource yang mengakses record dari tabel. 3 Query Bertindak sebagai DataSource yang mengakses record dari tabel berdasarkan perintah SQL query. 4 StoredProc Bertindak sebagai DataSource yang mengakses record dari tabel berdasarkan perintah Stored Procedure (perintah SQL Query yang telah dibuat sebelumnya) untuk database server. 5 Database Menciptakan client/server connection dengan sebuah database dalam session. 6 Session Menciptakan sebuah session dalam sebuah aplikasi multi- threaded database. 7 BatchMove Digunakan jika kita ingin memindahkan record/field dari sebuah tabel ke tabel lainnya secara cepat (seluruhnya). 8 UpdateSQL Menjalankan perinah SQL seperti INSERT, UPDATE dan DELETE. 9 NestedTable Bertindak sebagai DataSource yang mengakses record dari tabel yang bersarang. 1 5 3 4 7 6 9 8 2

Upload: voquynh

Post on 01-Feb-2018

232 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-1

BASIS DATA dan KOMPONEN BASIS DATA Delphi mendukung banyak jenis basis data. Basis data default yang digunakan adalah Paradox

dan dBase, tetapi delphi tidak membatasi pengguna dalam pemilihan basis data bagi aplikasi

yang akan dibuatnya. Modul ini menggunakan Ms. Access sebagai basis datanya. Basis data ini

dipilih karena Anda – Anda sekalian sudah familiar dengan basis data produk Microsoft ini.

Untuk menangani tabel-tabel Paradox dan dBase, Delphi menggunakan mesin yang dinamakan

BDE (Borland Database Engine). BDE juga dapat berhubungan dengan SQL Server seperti

Oracle dan Interbase untuk mengakses data source lain melalui ODBC(Open DataBase

Connectivity). Dikarenakan ODBC bekerja dengan sangat lambat, maka Microsoft menciptakan

ADO(ActiveX Data Object). ADO adalah sekumpulan objek COM 1) yang mengakses data

melalui provider OLE DB (Object Linking Embeded Data Base), cara yang sama akan

digunakan utk. mengakses basis data (Ms. Access) Anda.

1) COM is the Component Object Model, a Windows-based distributed object architecture designed to

provide object interoperability using predefined routines called interfaces. COM applications use objects that are implemented by a different process

Berikut ini komponen-komponen Delphi berikut yang akan digunakan dalam modul ini untuk

operasi basis data menggunakan basis data Ms. Access (khususnya).

KOMPONEN DATA ACCESS Komponen Data Access adalah komponen non-visual. Merupakan komponen yang secara

langsung berhubungan dengan database (file secara fisik). Komponen data access hanya

melakukan akses dengan database, seperti membuka tabel, membaca record, mengubah

record dan sebagainya tanpa memperhatikan apa yang ditampilkan pada pengguna.

Keterangan:

No Komponen Kegunaan

1 Data Source Bertindak sebagi penghubung antara data access component

dengan komponen-komponen visual.

2 Table Bertindak sebagai DataSource yang mengakses record dari

tabel.

3 Query Bertindak sebagai DataSource yang mengakses record dari tabel

berdasarkan perintah SQL query.

4 StoredProc Bertindak sebagai DataSource yang mengakses record dari tabel

berdasarkan perintah Stored Procedure (perintah SQL Query

yang telah dibuat sebelumnya) untuk database server.

5 Database Menciptakan client/server connection dengan sebuah database

dalam session.

6 Session Menciptakan sebuah session dalam sebuah aplikasi multi-

threaded database.

7 BatchMove Digunakan jika kita ingin memindahkan record/field dari sebuah

tabel ke tabel lainnya secara cepat (seluruhnya).

8 UpdateSQL Menjalankan perinah SQL seperti INSERT, UPDATE dan DELETE.

9 NestedTable Bertindak sebagai DataSource yang mengakses record dari tabel

yang bersarang.

1 5 3 4 7 6 9 8 2

Page 2: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-2

KOMPONEN DATA CONTROLS

Komponen Data Control adalah komponen visual yang juga merupakan komponen data-aware

atau disebut juga visual-controls. Komponen ini melakukan interaksi antara pengguna dengan

datasource (data source adalah salah satu komponen data data access components). Dengan

komponen ini kita dapat menyusun tampilan untuk pemakai. Misalnya menampilkan record

dan menampilkan image.

Keterangan:

No Komponen Kegunaan

1 DBGrid Komponen visual untuk grid dinamis yang digunakan untuk

menampilkan dan meng-edit data dalam bentuk tabular

menyerupai tampilan spreadsheet excel.

2 DBNavigator Komponen visual yang terdiri dari sejumlah tombol-tombol

navigasi dan tombol operasi basis data seperti: insert, delete,

edit dan post.

3 DBText Komponen visual berbentuk label, digunakan untuk

menampilkan isi dari sebuah field pada record yang sedang

aktif.

4 DBEdit Komponen visual berbentuk kotak edit, digunakan untuk

menampilkan isi dari sebuah field pada record yang sedang

aktif.

5 DBMemo Komponen visual memo, digunakan untuk menampilkan isi

dari sebuah field pada record yang sedang aktif.

6 DBImage Komponen visual berbentuk kotak gambar, digunakan untuk

menampilkan, memotong atau menempelkan citra bitmapped

BLOB (Binary Large OBject) ke dan dari record yang sedang

aktif.

7 DBListBox Komponen visual berbentuk list box, box yang dapat

digulung. Digunakan untuk menampilkan nilai-nilai sebuah

kolom dari sebuah tabel.

8 DBComboBox Komponen visual berbentuk list, box yang dapat digulung.

Digunakan untuk menampilkan nilai-nilai sebuah kolom dari

sebuah tabel, nilai dari kolom tersebut dapat di-edit.

9 DBCheckBox Komponen visual berbentuk check box, digunakan untuk

menampilkan atau mengubah sebuah data field bertipe

boolean pada record yang sedang aktif.

10 DBRadioGroup Komponen visual untuk menampilkan sejumlah pilihan

berbentuk radio button.

11 DBLookupListBox DBLookupListBox adalah sebuah komponen visual berbentuk

list box dimana item-item yang ditampilkan dapat diambil dari

sebuah dataset, secondary data source, data field atau key.

12 DBLookupCombobox DBLookupListBox adalah sebuah komponen visual berbentuk

combo box dimana item-item yang ditampilkan dapat diambil

dari sebuah dataset, secondary data source, data field atau

key.

13 DBRichEdit DBRichEdit adalah sebuah multiline edit control yang dapat

digunakan untuk menampilkan dan meng-ubah sebuah rich

10

1 3 5 7 9 11 13 15

2 4 6 8 12 14

Page 3: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-3

edit memo field dalam sebuah dataset.

14 DBCtrlGrid DBCtrlGrid adalah sebuah control yang dapat menampilkan

banyak field dari banyak record dalam sebuah format tabular

grid. Tiap cell dalam sebuah grid menampilkan banyak fields

dari sebuah record.

15 DBChart Untuk menampilkan data dalam bentuk grafik.

KOMPONEN ADO

The components on the ADO page of the Component palette let you connect to database

information using ActiveX Data Objects (ADO)

Keterangan:

No Komponen Keterangan

1 ADOConnection Digunakan untuk membangun koneksi dan

menyediakan berbagai layanan dengan basis data

melalui ADO.

2 ADOCommand Menjalankan perintah SQL pada basis data ADO.

3 ADODataSet Menampilkan data dari satu atau lebih tabel dalam

sebuah basis data ADO dan mengijinkan komponen-

komponen visual untuk memanipulasi data yang ada

dengan cara menghubungkan komponen-komponen

visual tersebut dengan dengan komponen data

source.Komponen ini dapat digunakan untuk

menggantikan komponen ADOTable, ADOQuery atau

ADOStoredProc.

4 ADOTable Menyajikan data dari sebuah tabel pada sebuah

basis data melalui ADO dan mengijinkan komponen-

komponen visual untuk memanipulasi data yang ada

dengan cara menghubungkan komponen-komponen

visual tersebut dengan dengan komponen data

source.

5 ADOQuery Menggunakan perintah-perintah SQL untuk

menampilkan data dari sebuah tabel fisik pada basis

data melalui ADO dan mengijinkan komponen-

komponen visual untuk memanipulasi data yang ada

dengan cara menghubungkan komponen-komponen

visual tersebut dengan dengan komponen data

source.

6 ADOStoreProc Digunakan untuk mengakses stored Procedure

(perintah tersimpan) pada server melalui ADO.

7 RDSConnection Digunakan untuk mengelola sejumlah data ketika

sebuah Objek recordset berpindah dari satu proses

atau mesin ke proses atau mesin lainnya.

Gunakanlah TRDSConnection ketika membangun

multi-tier applications yang menggunakan bussiness

Object (Applications Servers).

1 2 3 4 5 6 7

Page 4: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-4

MEMBANGUN BASIS DATA

Pertama-tama buatlah basis data Anda pada Access (Aktifkan Ms.Access), simpan dengan

nama Barang.mdb. Berikut ini struktur tabelnya:

Tabel Supplier

Field Type Size

Kode_Supplier * Text 7

Nama_Supplier Text 50

Alamat Text 100

Kota Text 30

Kode_pos Number Long Int.

Telepon Number Long Int.

Contact_Person Text 40

Tabel Stok

Field Type Size

Kode_Barang* Text 6

Desk_Barang Text 100

Kode_Supplier Text 7

Stok_tersedia Number Long Int.

Stok_minimum Number Long Int.

Harga Number [Format = “Rp. ”#] Long Int.

MENCIPTAKAN ANTARMUKA Basis data digunakan untuk menyimpan data, untuk memanipulasi data yang disimpan pada

basis data kita terlebih dahulu harus mengetahui bagaimana mengakses basis data yang telah

dibuat. Perhatikan langkah-langkah menghubungkan Basis data Ms. Access pada Delphi

menggunakan ADO. Tempatkan komponen-komponen berikut, sehingga tampilannya

menyerupai gambar di bawah ini:

DBNavigator

1

n

ADOConnection

ADOTable

DataSource

DBGrid

Page 5: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-5

Klik ganda ikon ADOConnection1, setelah muncul kotak dialog (gambar 1) berikut klik pilihan

Use Connection String lalu klik tombol Build...

Pada pilihan OLE DB Provider(s); (gambar 2),

pilih

Microsoft Jet 4.0 OLE DB Provider

Lalu klik Next >>

Selanjutnya akan Tab Connection (gambar 3)

akan aktif. Pada Tab ini klik tombol builder

(Tombol dengan tiga buah titik)Di sebelah

kolom isian Select or Enter a database name.

Cari dan pilihlah basis data yang akan Anda

Gunakan (gambar 4), setelah dipilih klik

Tombol Test Connection untuk menguji apakah

Anda sudah terkoneksi dengan basis data(gambar 5).

1 2

3

4

5

Page 6: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-6

Selanjutnya ubah properti dari komponen berikut:

Object/Komponen Properti/Event

ADOConnection1 LoginPrompt = false

ADOTable1 Connection = ADOConnection1

TableName = Supplier

Active = True

DataSource1 DataSet = ADOTable1

DBGrid1 DataSource = DataSource1

ReadOnly = True

DBNavigator1 DataSource = DataSource1

ShowHints = True

DBEdit1 DataSource = DataSource1

DataField = Kode_Supplier

DBEdit2 DataSource = DataSource1

DataField = Nama_Supplier

DBEdit3 DataSource = DataSource1

DataField = Alamat

DBEdit4 DataSource = DataSource1

DataField = Kota

DBEdit5 DataSource = DataSource1

DataField = Kode_Pos

DBEdit6 DataSource = DataSource1

DataField = Telepon

DBEdit7 DataSource = DataSource1

DataField = Contact_person

Untuk Label1 s/d Label8 ubah properti Caption menjadi seperti gambar di bawah ini,

Untuk Font sesuaikan dengan selera Anda.

Berikut ini nama-nama

tombol pada DBNavigator:

No Nama Tombol

1 First

2 Prior(Previous)

3 Next

4 Last

5 Insert

6 Delete

7 Edit

8 Post(Save)

9 Cancel

10 Refresh

Bagaimana memilih Tombol

DBNavigator yang akan ditampilkan?

Bagaimana memindahkan fungsi

DBNavigator ke dalam komponen

Button?

1 10 9 8 7 6 5 4 3 2

Page 7: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-7

Berikut ini gambar pembantu untuk mengubah Connection dan memilih TableName.

Simpanlah semua project Anda (Save Unit dan Project). Setelah disimpan jalankan Program

Anda(F9).

MENGGUNAKAN KOMPONEN ADOTABLE

Berikut ini kita coba untuk membuat aplikasi untuk mengisi tabel Stok, pada kasus ini kita

menggunakan dua buah komponen tabel dan DataSource. Data Kode_suplier yang akan

disimpan pada tabel Stok didapat dari field kode_supplier pada tabel supplier untuk

menampilkan data Kode_supplier pada tabel Supplier kita menggunakan komponen

DblookupCombobox. Sisanya meng-akses tabel Stok. Siapkan antarmuka-nya, misalkan

seperti gambar dibawah ini:

Page 8: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-8

Ubah properti dan lengkapi event dari komponen-komponen di atas.

Object/Komponen Properti/Event

Form1 Tambahkan Variabel Tambah, ubah : boolean;

ADOConnection1 Set koneksi ke basis data Anda.

LoginPrompt = False

ADOTable1 Connection = ADOConnection1

TableName = Supplier

Active = True

DataSource1 DataSet = ADOTable1

ADOTable2 Connection = ADOConnection1

TableName = Stok

Active = True

DataSource2 DataSet = ADOTable2

DBLookupCombobox1 ListSource = DataSource1

ListField = Kode_supplier

KeyField = Kode_Supplier

DBGrid1 DataSource = DataSource2

ReadOnly = True;

EVENT OnCellClick

// tampilkan data yang ada ke kolom isian edit1.Text := dbgrid1.Fields[0].AsString; edit2.Text := dbgrid1.Fields[1].AsString; DBLookupCombobox1.Text := dbgrid1.Fields[2].AsString; edit3.Text := dbgrid1.Fields[3].AsString; edit4.Text := dbgrid1.Fields[4].AsString; edit5.Text := dbgrid1.Fields[5].AsString;

Edit1 s/d Edit5 Text = ‘’(dikosongkan)

Contoh penempatan variabel lihat gambar halaman 19

Page 9: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-9

Button1 Caption = &Tambah

EVENT OnClick

// kosongkan kolom isian

edit1.Text := ''; edit2.Text := ''; edit3.Text := ''; edit4.Text := ''; edit5.Text := ''; Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Tambah := true; // mode tambah diaktifkan

Button2 Caption = &Ubah

EVENT OnClick

Button1.Enabled := false; // tombol Tambah dinon-aktifkan

Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Ubah := true; // mode ubah diaktifkan

Button3 Caption = &Hapus

EVENT OnClick

if edit1.Text = '' then

begin Showmessage('Pilih record yang akan dihapus!'); exit; //keluar dari procedure ini end else begin

Page 10: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-10

if (messagedlg('Anda yakin untuk menghapus record dengan kode barang '+ dbgrid1.Fields[0].AsString +'?',mtConfirmation,[mbYes, mbNo],0))= mrYes Then begin // jika tombol Yes ditekan maka ADOTable2.Delete; // hapus record terpilih dbgrid1cellclick(dbgrid1.Columns[0]);//panggilprocedureDBGrid1CellClick(Column:TColumn) end; end;

Button4 Caption = &Simpan

EVENT OnClick

if Tambah = true then begin ADOTable2.InsertRecord([edit1.text, edit2.text, dblookupcombobox1.text, edit3.text, edit4.text, edit5.text]); Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan Button4.Enabled := false; // tombol Simpan dinon-aktifkan Tambah := false; // mode tambah di non-aktifkan end; if ubah = true then begin ADOTable2.Edit; ADOTable2.FieldByName('kode_barang').AsVariant := edit1.Text; ADOTable2.FieldByName('desk_barang').AsVariant := edit2.Text; ADOTable2.FieldByName('kode_supplier').AsVariant := dblookupcombobox1.Text; ADOTable2.FieldByName('stok_tersedia').AsVariant := edit3.Text; ADOTable2.FieldByName('stok_minimum').AsVariant := edit4.Text; ADOTable2.FieldByName('harga').AsVariant := edit5.Text; ADOTable2.Post; Button1.Enabled := true; // tombol Tambah diaktifkan Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan

Page 11: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-11

Button4.Enabled := false; // tombol Simpan dinon-aktifkan ubah := false; // mode tambah di non-aktifkan end;

Button5 Caption = &First

EVENT OnClick ADOTAble2.First; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Button6 Caption = &Prior

EVENT OnClick ADOTAble2.Prior; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Button7 Caption = &Next

EVENT OnClick ADOTAble2.Next; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Button8 Caption = &Last

EVENT OnClick ADOTAble2.Last; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Untuk Label1 s/d Label7 ubah Caption-nya menjadi seperti tampilan berikut ini.

Page 12: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-12

Setelah properti dari komponen-komponen yang ada telah diubah maka tampilan program

Anda akan seperti gambar di atas. SAVE ALL lalu Run...

MENGENAL SQL

SQL Singkatan dari Structured Query Language dan kadang-kdang dibaca dengan ’sequel’.

SQL adalah bahasa database yang ampuh dan dapat dipakai untuk menyelesaikan masalah-

masalah yang besar. Pada saat ini SQL menjadi standar untuk bekerja dengan database

Client/Server. SQl mempunyai fungsi-fungsi berikut:

- Data Definiton. Anda dapat mendefinisikan struktur tabel, tipe data dari setiap field di

dalam tabel dan hubungan referensial dari field-field tertentu ke field-field pada tabel

lain.

- Data Retrieval. Aplikasi client memakai SQL, untuk meminta data dari server. SQL

juga mengijinkan client mendefinisikan data yang akan dibaca dan bagaimana data

tersebut di-retrieve.

- Data Integrity. Anda dapat menjaga integritas data dengan berbagai konstrain

integritas sebagai bagian dari tabel atau terpisah dari tabel.

- Data Processing. SQL mengijinkan client mengubah, menambah, menghapus data

dari server.

- Security. Anda dapat memproteksi data dengan mendefinisikan hak akses, view dan

batasan pengaksesan pada objek-objek database.

- Concurent access. SQl mengatur pengaksessan secara simultan sehingga satu

pengaksessan tidak mengganggu pengaksesan lainnya.

SQL dapat diakses dari delphi dan Delphi dapat memakai perintah SQL untuk manipulasi tabel.

Untuk bahasa SQL dari Delphi menggunakan ADO Anda memerlukan komponen ADOQuery.

Perintah-perintah SQL selengkapnya dapat dilihat pada Local SQl help (Start >> Program >>

Borland delphi 5 >> Help >> Borland Database Engine >> Local SQL Guide).

Menggunakan ADOQUERY

Hal penting dari Komponen ADOQuery adalah property SQL. Property tersebut dapat diakses

dari Object Inspector pada saat mendesain form atau dari program(dituliskan melalui coding).

Property SQL bertipe TString artinya berisi daftar string. Jika Anda menggunakan property SQl

pada saat mendesain form, Anda memasukan SQL statis. Sebaliknya SQL dinamik

mengubah pernyataan-pernyataan SQL pada saat program dijalankan berdasarkan berbagai

kondisi. Program berikut ini menggunakan konsep SQL dinamik.

Page 13: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-13

Siapkan antarmuka seperti dibawah ini:

Ubah properti dan komponennya sehingga menyerupai gambar berikut ini:

Daftar properti dan event yang di ubah dapat dilihat pada halaman berikut.

Page 14: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-14

Object/Komponen Properti/Event

Form1 Ketikkan procedure TampilkanSemuaDataStok; (sebelum kalimat Private)

Lalu ketik coding berikut (setelah kalimat implementation dan {$R. *DFM})

procedure TForm1.TampilkanSemuaDataStok;

begin //tampilkan semu data pada tabel Stok ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM stok'); ADOQuery1.ExecSQL; ADOQuery1.Open;

end;

Tambahkan Variabel Tambah, ubah : boolean; Kodebarang : string;

EVENT OnActive

procedure TForm1.FormActivate(Sender: TObject); var akhir : string; // tempat simpan record terakhir

begin // ambil data kode supplier dari tabel suplier ADOQuery1.Close; // tutup Query ADOQuery1.SQL.Clear; // bersihkan perintah SQl sebelumnya ADOQuery1.SQL.Add('SELECT kode_suplier FROM suplier'); ADOQuery1.ExecSQL; // jalankan perintah SQL ADOQuery1.Open; // Aktifkan Query // bersihkan kolom pilihan kode supplier Combobox1.Text := ''; Combobox1.Items.Clear; // tempatkan pointer data ke record paling akhir ADOQuery1.Last; // simpan data ke variabel akhir akhir := ADOQuery1.Fields[0].AsString;

Lihat gambar halaman 19

Page 15: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-15

ADOQuery1.First; // tempatkan pointer ke record awal Combobox1.Items.Add(ADOQuery1.Fields[0].AsString); repeat ADOQuery1.Next; Combobox1.Items.Add(ADOQuery1.Fields[0].AsString); until ADOQuery1.Fields[0].AsString = akhir; //panggil procedure TampilkanSemuaDataStok TampilkanSemuaDataStok;

end;

ADOConnection1 Set koneksi ke basis data Anda (Barang.mdb).

LoginPrompt = False

ADOQuery1 Connection = ADOConnection1

DataSource1 DataSet = ADOQuery1

Combobox1 Text = ‘’ (dikosongkan)

DBGrid1 DataSource = DataSource1

ReadOnly = True;

EVENT OnCellClick

// tampilkan data yang ada ke kolom isian edit1.Text := dbgrid1.Fields[0].AsString; edit2.Text := dbgrid1.Fields[1].AsString; combobox1.Text := dbgrid1.Fields[2].AsString; edit3.Text := dbgrid1.Fields[3].AsString; edit4.Text := dbgrid1.Fields[4].AsString; edit5.Text := dbgrid1.Fields[5].AsString;

Edit1 s/d Edit5 Text = ‘’(dikosongkan)

Button1 Caption = &Tambah

Page 16: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-16

EVENT OnClick

// kosongkan kolom isian Combobox1.Text := ''; edit1.Text := ''; edit2.Text := ''; edit3.Text := ''; edit4.Text := ''; edit5.Text := ''; Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Tambah := true; // mode tambah diaktifkan

Button2 Caption = &Ubah

EVENT OnClick

Button1.Enabled := false; // tombol Tambah dinon-aktifkan Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Ubah := true; // mode ubah diaktifkan kodebarang := edit1.Text; //simpan kode barang yang akan diubah datanya

Button3 Caption = &Hapus

EVENT OnClick

if edit1.Text = '' then begin Showmessage('Pilih record yang akan dihapus!'); exit; //keluar dari procedure ini end else begin if (messagedlg('Anda yakin untuk menghapus record dengan kode barang '+

Page 17: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-17

dbgrid1.Fields[0].AsString +'?',mtConfirmation,[mbYes, mbNo],0))= mrYes Then begin // jika tombol Yes ditekan maka ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('DELETE * FROM stok WHERE kode_barang = :v1'); ADOQuery1.Parameters[0].Value := edit1.Text; ADOQuery1.ExecSQL; TampilkanSemuaDataStok; dbgrid1cellclick(dbgrid1.Columns[0]);//panggil procedureDBGrid1CellClick(Column :

TColumn) end; end;

Button4 Caption = &Simpan

EVENT OnClick

if Tambah = true then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('INSERT INTO stok (kode_barang, desk_barang, kode_supplier, stok_tersedia, stok_minimum, harga) VALUES (:v0, :v1, :v2, :v3, :v4, :v5)'); ADOQuery1.Parameters[0].Value := edit1.Text; ADOQuery1.Parameters[1].Value := edit2.Text; ADOQuery1.Parameters[2].Value := combobox1.Text; ADOQuery1.Parameters[3].Value := edit3.Text; ADOQuery1.Parameters[4].Value := edit4.Text; ADOQuery1.Parameters[5].Value := edit5.Text; ADOQuery1.ExecSQL; TampilkanSemuaDataStok; Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan Button4.Enabled := false; // tombol Simpan dinon-aktifkan Tambah := false; // mode tambah di non-aktifkan

Page 18: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-18

end; if ubah = true then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('UPDATE stok SET kode_barang = :v0, desk_barang = :v1, kode_supplier= :v2, stok_tersedia = :v3, stok_minimum = :v4, harga = :v5 WHERE kode_barang = :v6'); ADOQuery1.Parameters[0].Value := edit1.Text; ADOQuery1.Parameters[1].Value := edit2.Text; ADOQuery1.Parameters[2].Value := combobox1.Text; ADOQuery1.Parameters[3].Value := edit3.Text; ADOQuery1.Parameters[4].Value := edit4.Text; ADOQuery1.Parameters[5].Value := edit5.Text; ADOQuery1.Parameters[6].Value := kodebarang; ADOQuery1.ExecSQL; TampilkanSemuaDataStok; Button1.Enabled := true; // tombol Tambah diaktifkan Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan Button4.Enabled := false; // tombol Simpan dinon-aktifkan ubah := false; // mode tambah di non-aktifkan end;

Button5 Caption = &First

EVENT OnClick ADOQuery1.First; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Button6 Caption = &Prior

EVENT OnClick ADOQuery1.Prior; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Button7 Caption = &Next

Page 19: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-19

EVENT OnClick ADOQuery1.Next; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Button8 Caption = &Last

EVENT OnClick ADOQuery1.Last; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)

Untuk Label1 s/d Label7 ubah Caption-nya menjadi seperti tampilan pada halaman 13.

Page 20: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-20

Tuliskan Procedure/function yang Anda buat disini.

Tuliskan Variabel1) dan Tipe datanya yang

Anda buat disini. (setelah variable Form1 :

TForm1;)

1) Variabel yang diletakan di sini dapat diakses

oleh semua procedure yang terdapat pada

Form ini dan tidak dapat diakses oleh Form lain.

Tuliskan Procedure lengkap yang telah Anda deklarasikan disini.

Agar variabel pada form ini dapat diakses oleh form

lain, tuliskan variabel dan tipe datanya di sini. Kalimat {Public Declaration} boleh Anda hapus.

Page 21: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-21

Dinamic Connections Using ADOConnection

Connection string adalah property pada ADOConnection, property ini berguna sebagai

parameter penghubung dengan basis data melalui ADO. Pada contoh-contoh sebelumnya kita

menggunakan cara koneksi statis, maksudnya koneksi ke basisdata dilakukan pada saat

merancang program. Berikut ini cara mengkoneksikan basis data secara dinamis. Dengan cara

ini Anda tidak perlu membongkar program untuk menghubungkan antarmuka dengan basis

data.

Gambar kiri merupakan rancangan antarmuka dan gambar kanan hasil dari rancangan..

Berikut ini daftar properti dan event yang diubah pada rancangan antarmuka.

Object/Komponen Property/Event

ADOConnection1 -

Memo1 Lines = klik tombol Ambil untuk menyeting lokasi

basis data Anda..

ReadOnly = true

Image1

[Page Additional]

Picture = {pilih gambar Anda..}

OpenPictureDialog

[Page Dialogs]

-

Button1 Caption = &Ambil

EVENT OnClick

Tambahkan sebuah variabel ConnString : String;

Sehingga procedure lengkap-nya akan terlihat sebagaimana berikut

procedure TForm1.Button1Click(Sender: TObject); var connString : string;

begin if opendialog1.Execute then ConnString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ opendialog1.FileName +';Persist Security Info=False'; ADOConnection1.ConnectionString := ConnString; ADOConnection1.LoginPrompt := false; // ubah property LoginPrompt menjadi false ADOConnection1.Connected := true; //aktifkan koneksi dengan basis data Showmessage(‘Koneksi Database diaktifkan’);

end;

Page 22: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-22

Membuat Menu

Berikut ini cara membuat menu utama pada delphi, tempatkan komponen MainMenu [Page

Standard]. Untuk mengisikan menu, klik kanan komponen MainMenu1 pilih MenuDesigner.

Lihat gambar dibawah ini, selain dengan klik kanan, MenuDesigner dapat ditampilkan dengan

cara Klik Ganda pada komponen MainMenu.

Selanjutnya Delphi akan menampilkan dialog Menu designer, seperti yang terlihat pada

gambar dibawah ini. Untuk Membuat menu Anda Klik lokasi menu yang akan ditampilkan (klik

bagian kotak dengan garis putus-putus di sisi kanan atau bawah), setelah ditandai lokasi menu

akan berwarna biru, isi properti Caption dengan menu yang Anda inginkan.

Membuat Sub Menu

Untuk membuat sub menu, tunjuk menu yang akan dibuatkan sub menu-nya lalu klik kanan,

pilih Create Submenu. Untuk lebih jelasnya lihat gambar pada halaman selanjutnya...

Tanda separator dibuat

dengan mengisikan Caption dengan tanda minus (-)

ShortCut Dapat Anda pilih pada Properti ShortCut

Page 23: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-23

perlakuan untuk menambah sub menu sama dengan menambahkan menu.

Buatlah menu berikut:

File Setting Help

Input > Data Supplier PathDB

Data Stok

--------

Exit

Page 24: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-24

Menggabungkan Project

Apabila Anda bekerja secara team, dimana setiap orang memiliki tugas yang berbeda dan

pada akhirnya aplikasi yang Anda buat harus digabungkan menjadi sebuah aplikasi utama. Ada

beberapa persyaratan yang harus dipenuhi dalam pengabungan project, diantaranya:

1. Setiap nama Form pada project anak sebaiknya berbeda dengan nama Form pada

project utama.

2. Nama Form dan Unit yang digunakan pada setiap project anak harus berbeda satu

sama lainnya.

3. Apabila program aplikasi menggunakan basis data gunakan Database yang sama, baik

nama basis data, nama table-tabel dalam basis data dan struktur dari tabel-tabel yang

digunakan.

Berikut ini langkah-langkah mengabungkan Project. Klik Tombol AddFileToProject (lihat

gambar).

Selanjutnya akan muncul dialog Add to Project. Melalui dialog ini pilih file (*.Pas) yang akan

digabungkan, setelah dipilih tekan tombol Open (pada gambar di bawah ini tombol Buka).

Apabila muncul Error seperti yang terlihat pada halaman berikut, berarti Pada project utama

telah memiliki nama Form atau Unit yang sama dengan file project yang akan digabung.

Page 25: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-25

Jika yang sama adalah nama Form, maka Anda tinggal mengubah nama dari salah satu Form

(yang diubah dapat nama dari form pada Project utama atau nama dari Project anak). Untuk

mengganti nama dari From adalah dengan mengubah property Name (lihat gambar), klik form

yang akan diganti namanya, setelah nama diganti lalu save.

Nama yang sama

Page 26: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-26

Menghubungkan Unit/Form

Setelah semua file project anak sudah tergabung pada Project Utama selanjutnya, kita harus

menghubungkan unit/form induk dengan unit/form anak. Fungsi dari menghubungkan

unit/Form ialah untuk memudahkan dalam pemanggilan Form. Caranya pada menu utama pilih

File >> Use Unit (shortcut-nya = Alt+F11). Setelah muncul dialog UseUnit pilihlah unit yang

akan digabungkan, lalu tekan OK.

Selanjutnya Delphi akan menambahkan klausa

Uses NamaUnit; pada Code editor.

PS : Pada contoh ini MenuUtama (Unit1) akan

menggunakan/terhubung dengan Form1

(SetConn). Dengan demikian Form MenuUtama

dapat memanggil Form1 tetapi Form1 Tidak

dapat memanggil MenuUtama.

Agar Form2 dapat terhubung dengan

MenuUtama. Aktifkan Form2 lalu UseUnit

MenuUtama.

Apabila sebuah Form sebut saja Form1 terhubung dengan Form2, maka dari Form1

Programmer dapat memakai procedure yang ada di dalam Form2 dan mengubah property

Form dan Komponen yang ditempatkan pada Form2. Sekarang Gabungkan semua Form yang telah Anda buat sebelumnya (DataSupplier,

DataStok dan Setting DB).

PR: Buatlah dua buah Form, Form1 menggunakan Komponen MainMenu.

1. Form1 memanggil Form2.

2. Form1 mengubah Properti Form2

3. Form1 mengubah property yang ada pada Form2.

Page 27: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-27

Mutiple Document Interface (MDI)

Hasil pada kasus sebelumnya (halaman 25), Form yang dipanggil akan menutupi form

pemanggil. Tipe aplikasi seperti ini disebut Single Document Interface (SDI), tipe lain dari

penyusunan Dokumen adalah Multiple Document Interface (MDI). Form dalam MDI dibedakan

menjadi 2 macam, yaitu : Form MDI Induk(MDIForm) dan Form MDI Anak(MDIChild).

MDIChild akan akan selalu ditempatkan berada di dalam MDIForm, MDIForm dapat memuat

banyak MDIChild. Salah satu contoh Aplikasi dari MDI adalah Adobe Photoshop.

Sekarang buka kembali project sebelumnya (project yang ada menu-nya dan semua form

yang ada telah terhubung). Ikuti langkah-langkah menyusun Aplkasi berbasis tampilan MDI:

1. Tentukanlah Form yang akan dijadikan MDIForm-nya (pilih Form dengan menu), ubah

properti FormStyle menjadi fsMDIForm (lihat gambar 1).

2. Setelah MDIForm atau Form Induk telah ditentukan selanjutnya menggubah Opsi

Project(lihat gambar 2).

3. Setelah dialog Project Options muncul, pindahkan Form yang ada kecuali Form Utama

dari kolom Auto-create forms ke kolom Available forms, caranya anda pilih (klik) form

yang akan dipilih lalu tekan tombol dengan tanda > (lihat gambar pada halaman 28).

4. Pengubahan Opsi Project sudah.., pada langkah ini tampilkan form yang ada dengan

cara meng-klik tombol view form (jika Anda lupa lihat Modul bagian 1 hal. 19) pada

toolbar. Selanjutnya ubah properti FormStyle dari form-form (INGAT !! jgn ubah

FormStyle dari Form Induk) tersebut menjadi fsMDIChild.

1 2

Page 28: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-28

Perhatikan gambar Menu Utama di bawah ini.

Untuk menambahkan kode program pada menu, apabila menu designer masih tampil maka

tutuplah. Selanjutnya Anda cukup memilih menu yang akan ditambahkan programnya. Contoh

apabila saya ingin menambahkan coding untuk menu input stok barang, maka saya klik File

>> input >> stok barang...(lihat gambar)

Selanjutnya kita menuliskan programnya, untuk lebih jelas tentang MDI lihat tabel berikut:

Klik tombol ini untuk memindahkan

form dari kolom Auto-create forms ke kolom Available forms

Page 29: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-29

Object/Komponen Property/Event

Form MenuUtama

-------------

Menu Input Data Supplier

(File >> input >> Data

Supplier)

EVENT Onclick

TdataSupplier.Create(Self);

Catatan : Untuk Data Supplier, Formnya saya beri nama DataSupplier. Untuk mengubah nama form

lihat hal. 25, Coding lengkapnya akan terlihat seperti ini:

procedure TMenuUtama.DataSupplier1Click(Sender: TObject);

begin TdataSupplier.Create(Self);

end;

Form MenuUtama

-------------

Menu Input Data Stok (File

>> input >> Data Stok)

EVENT Onclick

TdataSupplier.Create(Self);

Catatan : Untuk Data Stok, Formnya saya beri nama DataStok. Untuk mengubah nama Form lihat hal.

25, Coding lengkapnya akan terlihat seperti ini:

procedure TMenuUtama.DataStok1Click(Sender: TObject);

begin TdataStok.Create(Self);

end;

Form MenuUtama

-------------

Menu Setting Path DB (File

>> Setting >> PathDB)

EVENT Onclick

TdataSupplier.Create(Self);

Catatan : Untuk setting connection, Formnya saya beri nama PathDB. Untuk mengubah nama form

lihat hal. 25, Coding lengkapnya akan terlihat seperti ini:

procedure TMenuUtama.PathDB1Click(Sender: TObject);

begin TPathDB.Create(Self);

end;

Page 30: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-30

Form MenuUtama

-------------

Menu Exit (File >> Exit )

EVENT Onclick

Coding lengkapnya akan terlihat seperti ini:

procedure TMenuUtama.Exit1Click(Sender: TObject);

begin Application.Terminate; //perintah ini juga dapat digunakan untuk menutup aplikasi SDI.

end;

Form DataSupplier Tambahkan Sebuah EVENT OnClose

Pada event tersebut tuliskan program berikut

Action := cafree;

Form DataStok Tambahkan Sebuah EVENT OnClose

Pada event tersebut tuliskan program berikut

Action := cafree;

Form PathDB Tambahkan Sebuah EVENT OnClose

Pada event tersebut tuliskan program berikut

Action := cafree;

PS : nilai sebuah aplikasi diantaranya dinilai dari

+ Tata letak objek seperti: tombol, tabel dan gambar.

+ Kombinasi warna yang digunakan.

+ Ketersedian fungsi singkat (Shortcut), shortcut disini dapat berbentuk kombinasi tombol keyboard atau tombol dengan simbol-simbol

khusus untuk fungsi khusus.

+ Pemilihan komponen yang digunakan untuk mengolah data.

+ Jumlah Komponen yang digunakan.

+ Algoritma pemrograman.

+ Metode tampilan yang digunakan, semisal aplikasi dengan jumlah form yang sama, untuk aplikasi berjenis MDI akan lebih kecil ukurannya

dibandingkan dengan SDI .

Page 31: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-31

Membuat laporan

Untuk membuat laporan, tambahkan sebuah Form baru (klik tombol New Form pada toolbar),

lalu aktifkan page Qreport pada Component pallete.

Pada nomor-nomor yang tertera gambar page QReport di atas adalah komponen-komponen

yang paling sering digunakan. Keterangan lengkapnya lihat tabel di bawah ini:

No Komponen Keterangan

1 QuickRep Komponen ini adalah komponen dasar dari penyusunan

laporan, komponen ini dapat diumpamakan sebagai lembar

laporan.

2 QRSubDetail Digunakan untuk menampilkan detil dari data, umumnya

digunakan pada master-detail report.

3 QRBand Digunakan sebagai kolom pembagi laporan, QRBand ini

dapat diubah menjadi Title, Coloumn Header, Summary,

PageFooter, PageHeader dll.

4 QRLabel Umumnya digunakan sebagai teks keterangan, sifatnya

statis (tidak dapat berubah-ubah seperti halnya QRDBText).

5 QRDBText Untuk menampilkan data teks yang terdapat dalam basis

data (teks yang ditampilkan dapat berubah-ubah sesuai

dengan teks yang dirujuk pada basis data).

6 QRSysData Digunakan untuk menampilkan data sistem seperti: tanggal,

jam, Page number, jumlah record dsb. Pilihlah data sistem

yang akan ditampilkan pada laporan dengan cara mengubah

property Data pada komponen ini.

7 QRMemo Digunakan penampil data multiteks.

8 QRImage Digunakan untuk menampilkan citra/gambar.

9 QRDBImage Digunakan untuk menampilkan data citra yang terdapat

dalam basis data.

Pada Form baru tadi tambahkan komponen QuickRep, untuk melakukan seting terhadap

laporan semisal ukuran kertas yang akan digunakan, klik ganda pada QuickRep-nya.

Selanjutnya dialog setting reports akan muncul (lihat gambar pada hal. 32). Ubahlah seting

ukuran kertas, lebar margin kiri, margin kanan, atas dan bawah. Jenis Font yang akan

digunakan dan lain sebagainya, sesuaikan laporan dengan kebutuhan atau keinginan Anda.

Untuk menerapkan setingan Anda tekan tombol Apply, Untuk menerapkan dann sekaligus

menutup kotak dialog ini tekan OK.

Setelah ukuran kertas laporan disesuaikan, tambahkan QRBand pada QuickRep sebanyak 4

buah...

1 9 2 4 5 8 3 6 7

Page 32: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-32

Ubah property dari 3 QRBand..

Object/Komponen Property/Event

QRBand1 - {secara default band yang ditambahkan ke report akan

bertipe Title (rbTitle)}

QRBand2 BandType = rbDetail

QRBand3 BandType = rbSummary

QRBand4 BandType = rbPageFooter

Frame:

- DrawTop = True

Pada QRBand1, QRBand2, QRBand3 masing-masing tempatkan sebuah QRLabel, Pada

QRBand4 tempatkan sebuah QRSysData. Ubah Property dari komponen-komponen berikut;

Object/Komponen Property/Event

QRLabel1 (simpan pada

QRBand1 [Title])

Caption = INI JUDUL LAPORAN

Font = ARIAL

- Size = 14

- Bold = True

QRLabel2 (simpan pada

QRBand2 [Detail])

Caption = ini label pada kolom detail

QRLabel3 (simpan pada

QRBand4 [Summary])

Caption = ini label pada kolom Summary / kesimpulan

QRSysData (simpan pada

QRBand4 [Page Footer])

- {Propety Data defaultny adalah qrstime, Anda dapat

ubah sesuai dengan pilihan yang disediakan}

Setelah selesai, lihatlah hasil yang dicetak oleh printer, caranya klik kanan pada QuickRep lalu

pilih menu Preview. Untuk lebih jelasnya lihatlah pada halaman 33.

Page 33: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-33

Selanjutnya kita akan membuat laporan yang sesungguhnya… berpindahlah ke halaman

berikutnya.

Tekan tombol ini

untuk menutup Preview

Tekan tombol ini untuk Print

Page 34: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-34

Laporan Data Supplier

Buatlah komponen-komponen laporan seperti yang terlihat pada gambar berikut:

selanjutnya ubah property dari komponen-komponen berikut:

Object/Komponen Property/Event

ADOConnection1 Set koneksi ke basis data barang.MDB

LoginPrompt = False

ADOTable1 Connection = ADOConnection1

TableName = Supplier

Active = True

QuickRep1 Dataset = ADOTable1

QRImage1 Picture = {pilih gambar yang ada sebagai pengganti logo

perusahaan}

QRBand1 Bandtype = rbTitle

QRBand2 Bandtype = rbColoumnHeader

Color = clGrey

QRBand3 Bandtype = rbDetail

QRBand4 Bandtype = rbSummary

Color = clSilver

QRBand5 Bandtype = rbPageFooter

Page 35: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-35

QRLabel1 Caption = AMIK JAYA ABADI

Font = {sesuaikan dengan kebutuhan/keinginan Anda}

QRLabel2 {pada Gambar

terletak di kolom Summary}

Caption = Jumlah Record :

Color = clSilver

QRExpr1 {= QRExpression,

pada gambar tertulis (none)

di kolom Summary}

Expression = pada kolom ini klik tombol Builder (tombol

dng. 3 titik), setelah muncul dialog expression, klik

tombol function. Setelah muncul dialog Expression

Wizzard, pilih COUNT pada kolom Available Function. Klik

tombol Continue >> OK.

Color = clSilver

QRLabel3 Caption = Kode Supplier

Color = clGrey

QRLabel4 Caption = Nama Supplier

Color = clGrey

QRLabel5 Caption = Alamat

Color = clGrey

QRLabel6 Caption = Kota

Color = clGrey

QRLabel7 Caption = Kode Pos

Color = clGrey

QRLabel8 Caption = Telepon

Color = clGrey

QRLabel9 Caption = Contact Person

Color = clGrey

QRDBText1 DataSet = ADOTable1

DataField = Kode_Supplier

QRDBText2 DataSet = ADOTable1

DataField = Nama_Supplier

QRDBText3 DataSet = ADOTable1

DataField = Alamat

QRDBText4 DataSet = ADOTable1

DataField = Kota

QRDBText5 DataSet = ADOTable1

DataField = Kode_Pos

QRDBText6 DataSet = ADOTable1

DataField = Telepon

QRDBText7 DataSet = ADOTable1

DataField = Contact_Person

Dengan Asumsi bahwa table Supplier telah terisi, lihat hasilnya setelah di preview akan terlihat

seperti berikut.

Page 36: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-36

Laporan Data Stok (Master-Detail Report)

Selanjutnya kita akan mencoba untuk membuat laporan berbentuk master-detail, untuk

membuat laporan ini, tambahkan komponen berikut pada rancangan laporan di atas. Sehingga

rancangan laporannya akan seperti gambar ini.

Komponen tambahan

Page 37: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-37

Property dari komponen tambahan yang diubah:

Object/Komponen Property/Event

DataSource1 DataSet = ADOTable1

ADOTable2 Connection = ADOConnection1

TableName = Stok

MasterSource = DataSource1

MasterField = klik tombol builder yang terdapat pada

kolom ini, setelah muncul dialog Field Link Designer.

Pada kolom Detail Fields klik Kode_Suplier, lalu pada

kolom Master Fields klik Kode_Supplier lalu tekan tombol

Add (tombol yang ada diantara kedua kolom Detail Fields

dan Master Fields). OK.

Active = True

Dari Page Qreport Ambil

Komponen QRSubDetail

Dataset = ADOTable2

QRDBText8 DataSet = ADOTable2

DataField = Kode_Barang

QRDBText9 DataSet = ADOTable2

DataField = Desk_Barang

QRDBText10 DataSet = ADOTable2

DataField = Stok_Minimum

QRDBText11 DataSet = ADOTable2

DataField = Stok_Tersedia

QRDBText12 DataSet = ADOTable2

DataField = Harga

Ganti nama Form untuk laporan ini menjadi FLaporan lalu SAVE ALL, Preview untuk melihat

hasilnya (contoh hasil preview dapat dilihat pada halaman 38).

PS : Penulisan Coding untuk menampilkan Preview dan untuk melalukan Print Laporan tanpa

Preview.

Contoh coding untuk menampilkan preview laporan yang dijalankan pada saat tombol Button1

di klik

Procedure FMenuUtama.Button1Click(sender : TObject); Begin FLaporan.QuickRep1.Preview; End;

Sedang untuk langsung print Coding lengkapnya adalah:

Procedure FMenuUtama.Button1Click(sender : TObject); Begin FLaporan.QuickRep1.Print; End;

Page 38: BASIS DATA dan KOMPONEN BASIS DATA - …thevold3mort.tripod.com/downloads/Delphi2.pdf · BDE juga dapat berhubungan dengan SQL Server seperti ... a Windows-based distributed object

Pemrograman Delphi : Bagian II – Agung Wibowo - 2005

II-38

Selamat Mencoba dan Berkarya…