• Tidak ada hasil yang ditemukan

Pencarian Data

Dalam dokumen DAFTAR ISI - PEMROGRAMAN DELPHI (Halaman 98-102)

ClientDataSet menyediakan berbagai method untuk mencari data pada ClientDataSet. Pencarian dapat dilakukan dengan indeks atau tanpa indeks.

6.12.1. Locate

Method Locatedigunakan untuk pencarian data tanpa menggunakan indeks. Method ini digunakan untuk mencarirecordberdasarkan satufieldatau lebih. Contohnya sebagai berikut ini.

functionLocate(constKeyFields: string; constKeyValues : Variant;

Options : TLocateOptions) : Boolean;override;

Parameter pertama, KeyFields, adalah nama field‐ field yang akan dicari nilainya, dipisahkan oleh titik‐ koma bila lebih dari satufield. Contoh : ‘Name;Birthday’.

Parameter kedua, KeyValues, berisi nilai‐ nilai field yang akan dicari. Jumlah nilai yang akan dicari harus sama dengan jumlahfieldpada parameterKeyFields.

Parameter ketiga,Options, bertipe TLocateOptions, menentukan bagaimana pencarian dilakukan.

TLocateOptions Keterangan

IoPartialKey Method Locate akan mencari record pertama yang nilai field pada parameter KeyField‐ nya diawali dengan nilai yang terdapat pada KeyValues. Hal ini hanya berlaku pada field bertipe string.

IoCasseInsensitive Method Locate akan mengabaikan huruf kapitak atau huruf kecil jika mencari field yang bertipe string.

Method Locatemengembalikan nilaiTruebila adarecordyang sesuai dengan kriteria dan mengembailkan nilai False jika tak ada record yang sesuai dengan kriteria. Jika Method Locatemenemukan record yang dimaksud, pointer record aktif dari dataset akan melompat ke record tersebut sehingga record yang diketemukan itu menjadi record aktif. Contoh berikut ini mencari record yang nilai field ‘Name’‐ nya adalah ‘Clark Kent’.

ClientDataSet1.Locate(‘Name’, ‘Clark Kent’, [ ]); 6.12.2. Lookup

Method Lookup digunakan untuk pencarian data tanpa menggunakan indeks. Method Lookup mempunyai konsep yang serupa dengan method Locate. Perbedaannya adalah Method Lookup tidak mengubah pointer record aktif, hanya mengembalikan nilai dari satu atau lebih field dari record yang ditemukan.Method Lookupdidefinisikan sebagai berikut :

functionLookup(constKeyFields : string;constKeyValue : Variant;

KeyFields dan KeyValue berisi nama field dan nilai yang akan dicari. ResultFields berisi field‐ field yang datanya diinginkan dari record yang ditemukan. Contoh berikut ini akan mengembalikan nilai tanggal lahir dari karyawan yang bernama Ari Siswoyo. :

var

V : Variant; begin

V := ClientDataSet1.Lookup(‘Nama’, ‘Ari Siswoyo’, ‘TglLahir’); end;

6.12.3. FindKey

Method FindKeydigunakan untuk pencarian datadengan menggunakan indeks. Method FindKeymencari record yang nilai field indeks yang aktif sesuai dengan parameter input yang diberikan. Method ini mempunyai satu parameter, yaitu nilaifieldyang akan dicari.

Parameter ini berupaarray of const. Contoh : ifClientDataSet.FindKey([ 25])then

ShowMessage(‘Found ID 25’); …

ifClientDataSet.FindKey([‘Doe’, ‘John’])then ShowMessage(‘Found John Doe’);

Anda harus memastikan bahwa nilai yang Anda cari sesuai dengan indeks yang aktif. Kode program di bawah ini memastikan indeks yang digunakan oleh dataset.

ClientDataSet.IndexName := ‘byID’; ifClientDataSet.FindKey([ 25])then

ShowMessage(‘Found ID 25’); …

ClientDataSet.IndexName := ‘byName’; ifClientDataSet.FindKey([‘Doe’, ‘John’])then

ShowMessage(‘Found John Doe’); 6.12.4. FindNearest

Method FindNearest digunakan untuk pencarian data dengan menggunakan indeks. Method ini sama dengan method FindKey, hanya saja FindNearest mencari record pertama yang lebih besar atau sama dengan nilai yang diberikan. Hal ini tergantung kepada nilaiproperty KeyExclusive.

Jika KeyExclusivebernilaiFalse (default),FindNearestakan mencarirecordpertama yang lebih besar atau sama dengan nilai yang diberikan. Jika KeyExclusivebernilaiTrue, FindNearest akan mencarirecordyang lebih besar dari nilai yang diberikan.

Jika method FindNearest tidak menemukan record yang sesuai, pointer record aktif akan melompat ke akhirdataset.

6.12.5. GotoKey

Method GotoKey digunakan untuk pencarian data dengan menggunakan indeks. Pola kerjanya sama dengan method FindKey, hanya saja kita dapat mengeset nilai dari field‐ field yang akan dicari sebelum memanggilmethod GotoKey. Contoh :

ClientDataSet.IndexName := ‘byID’; ClientDataSet.SetKey;

ClientDataSet.FieldByName (‘ID’).AsInteger := 25; ClientDataSet.GotoKey;

6.12.6. GotoNearest

Method GotoNearest digunakan untuk pencarian data dengan menggunakan indeks. Method ini mempunyai pola yang serupa dengan method GotoKey. Perbedaannya adalah GotoNearest mencari record pertama yang lebih besar atau sama dengan nilai yang diberikan. Hal ini tergantung kepada nilai property KeyExclusive.

JikaKeyExclusivebernilaiFalse (default),GotoNearestakan mencarirecordpertama yang lebih besar atau sama dengan nilai field yang diset setelah pemanggilan method SetKey atau EditKey. Jika KeyExclusive bernilai True, GotoNearest akan mencari record yang lebih besar dari nilai field yang diset setelah pemanggilanmethod SetKeyatauEditKey.

Jika method GotoNearest tidak menemukan record yang dicari, pointer record aktif akan melompat ke akhirdataset.

6.13. Aggregate

ClientDataSet dapat menghasilkan nilai yang dikalkulasi dari sekumpulan record di ClientDataSet. Nilai yang dihasilkan tersebut di‐ update secara otomatis jika ada perubahan data. Hal ini disebut dengan istilahmaintained‐ aggregate.Aggregatebiasanya digunakan untuk mengetahui informasi tentang jumlah darifieldtertentu diClientDataSet, atau misalnya nilai terbesar, nilai terkecil, nilai rata‐ rata dari nilaifield tertentu dan lain‐ lain.

6.13.1. Membuat Aggregate

ClientDataSet mempunyaiproperty Aggregatesyang merupakan kumpulan definisiaggregateyang Anda buat. Ikuti langkah‐ langkah berikut ini untuk membuat aggregate baru.

 Klik tombol edit property Aggregates di Object Inspector dari komponen ClientDataSet untuk menampilkancollection editoryang berisi daftaraggregate.

 Klik tombolAdd Newdaricollection editoruntuk menambahaggregate.  Setproperty Expressionuntuk setiapaggregateyang Anda buat.

Anda dapat menggunakan beberapa operator untuk membuat ekspresiaggregate, yaitu :Sum, untuk menghitung total nilai dari suatufield numericatau ekspresi.

Avg, untuk menghitung nilai rata‐ rata dari suatufield numeric,field date, atau ekspresi.

Min, untuk menghitung nilai minimum dari suatufield numeric,field string,field date, atau ekspresi.Max, untuk menghitung nilai maksimum dari suatu field numeric, field string, field date, atau

ekspresi.

Contoh ekspresiaggregateyangvalidadalah :  Sum(Field1),

 Sum(Field1*Field2),  Max(Field1)‐ Max(Field2),  Avg(Field1)*1000.

Contoh ekspresiaggregateyang tidakvalidadalah :  Max(Sum(Field1))

Tidak valid karena menggunakanaggregatebertingkat.  Count(Field1)+Field2

Tidak valid karene menggunakanaggregatedanfield. 6.13.2. Membuat Aggregate Field

Aggregate field adalah field yang menampilkan nilai daru maintained aggregate. Jangan membuat aggregate langsung melalui property Aggregate dari ClientDataSet jika Anda ingin membuat field aggregate‐ nya. Untuk membuat aggregate field, tampilkan field editordaridataset, lalupilih menu New Field.FormdialogNew Fieldakan tampil seperti di bawah ini.

Gambar 5‐ 8. Aggregate Field

Isi Name dengan nama field Aggregate. Isi component dengan nama komponen field, biasanya Delphi akan memberikan nama secara otomatis merupakan gabungan dari nama dataset dan nama field. Isi Type dengan tipe data field. Isi Size dengan ukuran dari field. Setelah itu, pilih Field Type dengan Aggregate. Klik tombolOK.

Membangun sebuah aplikasi database, dapat diartikan bekerja dengan dua bagian aplikasi yang berbeda. Yang pertama adalah bagian back‐ endatau aplikasi server penyedia data, dan yang kedua adalahfront‐ end atau media antarmuka yang berhubungan langsung denganuser. Untungnya bahasa pemrograman Delphi memberikan banyak alternative koneksiserverbasis data, diantaranya, adalah MS‐ SQL Server, MS‐ Access, Oracle, Interbase, Firebird, MySQL, dan lain‐ lain.

Untuk keperluan penulisan materi dalam buku ini, penulis memilih menggunakan komponen ADO sebagai media koneksi ke MS‐ Access.

Dalam dokumen DAFTAR ISI - PEMROGRAMAN DELPHI (Halaman 98-102)

Dokumen terkait