Sesi Pencarian Data 10 10.1 Metode-Metode Pencarian Pencarian data sangat berguna pada data yang sangat banyak, karena akan memudahkan. Delphi memiliki beberapa metode pencarian data, antara lain: FindNearest Merupakan prosedur yang berguna untuk mencari data yang mendekati dengan data yang dicari. Misalnya kita dapat mencari data pegawai yang memiliki nama depan Yeni. Syaratnya, data yang dicari harus terdapat pada indeks. FindKey Merupakan fungsi yang berguna untuk mencari data secara tepat. Misalnya mencari pegawai yang bernama Yeni Silviani Megawati. Nilai kembalian dari fungsi ini akan bernilai TRUE jika ada record yang benar-benar cocok, sebaliknya mengembalikan FALSE. Locate Merupakan fungsi untuk mencari suatu data yang tidak diindeks. Hasilnya TRUE jika benar-benar ada record yang cocok. 10.2 Metode FindNearest Sekarang kita akan membuat aplikasi yang akan menggunakan metode FindNearest. Kita masih menggunakan tabel pegawai yang dibuat pada Sesi 8. Langkah-langkah pembuatan aplikasinya adalah sebagai berikut: 1. Buatlah aplikasi baru, kemudian simpan di lokasi yang Anda inginkan. 2. Siapkan satu komponen Table, DataSource, DBNavigator, dan DBGrid. 3. Siapkan juga satu komponen Panel, kemudian di dalam panel tersebut masukkan satu komponen Label, Edit, dan BitBtn. 4. Kemudian atur-atur propertinya sebagai berikut: DAD – Sesi 10: Pencarian Data 1 Komponen Table1 DataSource1 DBNavigator DBGrid Properti DatabaseName TableName IndexName Name Active Dataset Name DataSource Align ShowHints DataSource Option Nilai DBPegawai Datapeg.db IndexNamaPeg tPegawai True tPegawai dsPegawai dsPegawai alTop True dsPegawai Caption Caption Name Text Name Kind Caption (kosongkan) Nama Pegawai : edCari (kosongkan) btnClose bkClose Pencarian Data Pegawai dgRowSelect True dgAlwaysShowSelection True Panel1 Label1 Edit1 BitBtn1 Form1 5. Sehingga, tampilannya akan seperti gambar berikut ini: Gambar 1. Rancangan program pencarian data pegawai. DAD – Sesi 10: Pencarian Data 2 6. Pada event OnShow Form1, ketikkan kode program berikut: procedure TForm1.FormShow(Sender: TObject); begin //Posisikan kursor pada edCari edCari.SetFocus; end; 7. Kemudian, pada event OnKeyPress edCari, ketikkan kode program berikut: procedure TForm1.edCariKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin tPegawai.FindNearest([edCari.Text]); end; end; 8. Setelah dijalankan, hasilnya akan seperti gambar berikut. Gambar 2. Tampilan program pencarian data menggunakan FindNearest. Pada contoh tampilan di atas, teks yang dijadikan keyword pencarian adalah “Yen”. Karena menggunakan FindNearest, maka ditemukan record yang memiliki nama “Yeni Silviani Megawati”, dikarenakan nama depannya mengandung kata “Yen.” 10.3 Metode FindKey Dalam menggunakan metode ini, kita masih menggunakan aplikasi yang sama dengan sebelumnya. Tetapi dengan sedikit perubahan pada beberapa properti komponen-komponen tertentu. Perubahannya berdasarkan pada tabel berikut ini. DAD – Sesi 10: Pencarian Data 3 Komponen tPegawai Label1 Properties IndexName Caption Nilai (kosongkan) Nomor Pegawai Sehingga, tampilan rancangan program akan seperti berikut ini: Gambar 3. Rancangan program pencarian data. Pada event OnKeyPress edCari, kode programnya menjadi seperti berikut: procedure TForm1.edCariKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if not tPegawai.FindKey([edCari.Text]) then ShowMessage('Nomor pegawai ' + edCari.Text + ' tidak terdaftar!'); end; end; Setelah dijalankan, tampilannya akan seperti berikut ini: DAD – Sesi 10: Pencarian Data 4 Gambar 4. Tampilan program pencarian data menggunakan FindKey. 10.4 Metode Locate Kita masih menggunakan aplikasi yang sama, dengan sedikit perubahan sesuai dengan tabel berikut. Komponen tPegawai Label1 Properties IndexName Caption Nilai (kosongkan) Nama Pegawai Sehingga, tampilan rancangan program akan seperti berikut ini: DAD – Sesi 10: Pencarian Data 5 Gambar 5. Rancangan program pencarian data. Pada event OnKeyPress edCari, kode programnya menjadi seperti berikut: procedure TForm1.edCariKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin tPegawai.Locate('NamaPeg', edCari.Text, [loCaseInsensitive, loPartialKey]); end; end; Setelah dijalankan, tampilannya akan seperti berikut ini: Gambar 6. Tampilan program pencarian data menggunakan Locate. DAD – Sesi 10: Pencarian Data 6 Penjelasan : Pernyataan tPegawai.Locate('NamaPeg', edCari.Text, [loCaseInsensitive, loPartialKey]); menyatakan bahwa kita melakukan pencarian kata edCari.Text di field NamaPeg tanpa memperdulikan huruf besar/kecil (loCaseInsensitive) dan tanpa harus lengkap seluruhnya (loPartialKey). Dengan parameter seperti itu, hasilnya akan sama saja dengan metode FindNearest. Jika loPartialKey dihilangkan, metode ini akan sama dengan FindKey (tentunya dengan mengisikan IndexNamaPeg di properti IndexName terlebih dahulu). 10.5 Mengatur Tampilan TDBGrid Kita akan mencoba mengatur tampilan TDBGrid agar “enak” dipandang oleh user. Langkahlangkahnya adalah sebagai berikut: 1. Bukalah aplikasi sebelumnya. 2. Pertama-tama kita coba masukkan field kalkulasi JenisKelamin seperti yang sudah kita lakukan pada Sesi 9. Jangan lupa juga untuk masukkan kode program pada event OnCalcFields tPegawai. 3. Klik kanan pada DBGrid, kemudian pilih Columns Editor…, sehingga akan muncul tampilan berikut ini: Gambar 7. Tampilan Columns Editor. DAD – Sesi 10: Pencarian Data 7 4. Klik kanan pada daerah kosong di Columns Editor tersebut, kemudian pilih Add All Fields. Hal ini akan mengakibatkan tampilan Columns Editor seperti gambar di bawah ini. Gambar 8. Columns Editor setelah dimasukkan semua field-nya. 5. Hapuslah baris yang bertuliskan 3 – Kelamin. 6. Masih pada tampilan Columns Editor. Aturlah properti masing-masing kolom sebagai berikut: Kolom Properti DBGrid1.Columns[0] Title Alignment Caption DBGrid1.Columns[1] Title Alignment Caption DBGrid1.Columns[2] Title Alignment Caption DBGrid1.Columns[3] Title Alignment Caption Nilai taCenter ID taCenter Nama Pegawai taCenter Tgl Lahir taCenter Jenis Kelamin 7. Tutuplah Columns Editor tersebut karena sudah tidak diperlukan. 8. Sekarang, coba jalankan program dan lihat perubahannya. DAD – Sesi 10: Pencarian Data 8 Gambar 9. Tampilan program pencarian data yang sudah "diperbaharui". 10.6 Latihan Buatlah indeks baru agar data bisa terurut berdasarkan tanggal lahir. Buat juga program pencarian pada data-data barang yang sudah dibuat pada latihan sesi sebelumnya. DAD – Sesi 10: Pencarian Data 9