1 Bab 6 Memilih Data 6.1 Dasar Pemikiran Bab ini membahas cara memilih data dengan menggunakan Range dan filter. Setelah semuanya selesai dipraktekkan, saudara diharapkan dapat menangani cara memilih data pada tabel berdasarkan kriteria yang dikehendaki. 6.2 Tujuan Topik Diharapkan dapat menangani cara memilih data pada tabel berdasarkan kriteria yang dikehendaki. 6.3 Membuat Proyek Dan Form Diasumsikan bahwa proyek kalkulasi dan form kalkulasi dalam keadaan terbuka, lalu ikuti langkah-langkah dibawah ini : 1. 2. 3. 4. 5. Pilih menu File Save Project As … Ketikkan Range pada kotak edit File name : dan klik tombol Save. Pilih menu File Save AS… Ketikkan FRange pada kotak Edit File name : dan klik tombol Save. Melalui jendela Object Inspektor, lakukan perubahan-perubahan properti seperti dibawah ini: Properti Caption Name Isi Program Range FormRange 6. Lalu simpan dengan perintah File Save All. 6.2.1 Menambah Kode Kejadian OnCreate Milik Form Ikuti langkah-langkah sebagai beikut ini : 1. Klik pada daerah form yang tidak mengandung komponen sama sekali. 2. Klik tab Events pada jendela Object Inspektor. 3. Klik ganda pada sel OnCreate. 4. Tuliskan kode berikut ini, sehingga kode lengkap untuk kejadian OnCreate menjadi seperti berikut ini. begin TableDosen.Open; // Menentukan range record TableDosen.SetRange([2],[7]); end; 2 5. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. Kode diatas untuk menampilkan record dengan KD_DOSEN sama dengan 2 hingga 7 , Setelah Anda pilih maka langsung dieksekusi (RUN) dengan F9 maka akan menampilkan tampilan gambar 6.1 seperti dibawah ini. Gambar 6.1 Gambar record kode dosen 2 hingga 7 Selanjutnya ubahlah kode pada kejadian OnCreate milik form menjadi : TableDosen.Open; // Menentukan range record // Dengan Indexnamadosen TableDosen.IndexName := 'IndexNamaDosen'; TableDosen.SetRange(['A'],['D']); Kode diatas, kunci yang digunakan untuk menentukan range NAMA DOSEN dari Huruf awal A hingga D, untuk lebih jelasnya lihat gambar 6.2 dibawah ini. Gambar 6.2 Gambar dua record ditampilkan 6.2.2 SetRangeStart, SetRangeENd, ApplyRange dan KeyExclusive Pernyataan yang menggunakan metode SetRangeStart digunakan untuk mengawali defenisi kriteria awal range yang akan dibentuk. Pernyataan berikutnya digunakan untuk mengisikan nilai awal range yang dikehendaki. 3 Untuk melihat berbagai efek metode diatas, ubah kode pada kejadian OnCreate milik form sebagai berikut : TableDosen.Open; // Menentukan range record Sesuaikan dengan kode dosen di Tabel TableDosen.SetRangeStart; TableDosen.FieldByName('KD_DOSEN').Value := 1; TableDosen.KeyExclusive := False; TableDosen.SetRangeEnd; TableDosen.FieldByName('KD_DOSEN').Value := 3; TableDosen.KeyExclusive := False; TableDosen.ApplyRange; Kalau program dijalankan maka hasilnya seperti gambar 6.3 dibawah ini. Gambar 6.3 Record Kode Dosen 2 hingga 4 Selanjutnya ubahlah kode : TableDosen.SetRangeEnd; TableDosen.FieldByName('KD_DOSEN').Value := 3; TableDosen.KeyExclusive := False; Menjadi TableDosen.SetRangeEnd; TableDosen.FieldByName('KD_DOSEN').Value := 3; TableDosen.KeyExclusive := True; Dengan menggunakan kode diatas, program akan menghasilkan record-record seperti berikut ini. 4 Gambar 6.4 Record Kode Dosen 2 dan 3 saja Selanjutnya ubah juga KeyExclusive pada SetRangeStart menjadi bernilai True, sehingga kodenya menjadi : TableDosen.SetRangeEnd; TableDosen.FieldByName('KD_DOSEN').Value := 3; TableDosen.KeyExclusive := False; Menjadi TableDosen.SetRangeEnd; TableDosen.FieldByName('KD_DOSEN').Value := 3; TableDosen.KeyExclusive := True; Dengan menggunakan kode diatas, program akan menghasilkan record-record seperti berikut ini. Gambar 6.5 Hanya menampilkan record yang ketiga saja 6.3 Memfilter Data Bila Anda bermaksud memilih record tertentu berdasarkan field yang tidak berkedudukan sebagai kunci, Anda perlu menanganinya dengan cara menuliskan kriteria pada kejadian OnFilterRecord milik komponen Table. Oleh karena itu, buka kembali file Kalkulasi. 6.3.1 Membuat Proyek Dan Form 5 Diasumsikan bahwa proyek kalkulasi dan form kalkulasi dalam keadaan terbuka, lalu ikuti langkah-langkah dibawah ini : 1. 2. 3. 4. 5. Pilih menu File Save Project As … Ketikkan Filter pada kotak edit File name : dan klik tombol Save. Pilih menu File Save AS… Ketikkan FFilter pada kotak Edit File name : dan klik tombol Save. Melalui jendela Object Inspektor, lakukan perubahan-perubahan properti seperti dibawah ini: Properti Isi Caption Program Filter Name FormFilter 6. Lalu simpan dengan perintah File Save All. 6.3.2 Menuliskan Kode Kejadian Pada OnFilterRecord Untuk melihat berbagai efek metode diatas, ubah kode pada kejadian OnFilterRecord milik form sebagai berikut : 1. 2. 3. 4. Klik pada komponen Table yang terdapat pada form. Klik tab Events pada jendela Object Inspektor. Klik ganda pada sel OnClick. Tuliskan kode berikut ini, sehingga kode lengkap untuk kejadian OnFilterRecord menjadi seperti berikut ini. begin Accept := TableDosen.FieldByName('JENKEL').Value = True; end; 5. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. 6. Klik pada CheckBox yang terdapat pada Component Palette. 7. Letakkan penunjuk mouse di bawah pojok kiri bawah tombol berjudul Awal dan kemudian kliklah. Hasil langkah ini seperti gambar 6.6 dibawah ini. Gambar 6.6 Keadaan setelah checkBox di tambahkan. 6 8. Melalui Object Inspector , lakukan perubahan properti dengan ketentuan : Properti Isi Caption Penerapan Filter Name CheckBoxFilter Jika berhasil maka akan tampil seperti gambar 6.7 dibawah ini. Gambar 6.7 Tulisan pada CheckBox telah diubah 9. Anda perlu menuliskan kode pada kejadian OnClick milik CheckBox. 10. Klik pada komponen CheckBox dan pada tab Event serta tambahkan kode seperti dibawah ini. If checkBoxFilter.Checked then TableDosen.Filtered := True Else TableDosen.Filtered := False; 11. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. Kode yang Anda tuliskan pada kejadian OnFilterRecord hanya akan memberikan efek memfilter kalau properti Filtered milik TableDosen dibuat menjadi True. Untuk lebih jelasnya, coba Anda jalankan program tersebut, maka akan tampil seperti gambar 6.8 dibawah ini. Gambar 6.8 Sebelum Penerapan Filter digunakan 7 Setelah itu, coba Anda Klik Penerapan Filter, maka akan tampil tampilan seperti gambar 6.9 di bawah ini. Gambar 6.9 Setelah Penerapan Filter Terlihat, bahwa hanya Dosen yang berjenis Kelamin Pria saja yang ditampilkan. 6.3.3 Memfilter Lebih Dari Satu Bentuk suatu kondisi, dimana Anda juga dapat membuat dua pilihan atau lebih. Misalkan Anda ingin menampilkan Dosen yang berjenis kelamin Pria dan berstatus Dosen Tidak Tetap, maka Anda dapat menuliskan kode program sebagai berikut : Accept := (TableDosen.FieldByName('JENKEL').Value = True) And (TableDosen.FieldByName('STATUS').Value = False) ; Caranya adalah : 1. Klik tabel yang ada pada form. 2. Klik tab Event dan ubah kode kejadian OnFilteredRecord milik TableDosen dan tuliskan perintah diatas. 3. Lakukan penyimpanan dengan dengan memilik File Save. 4. Selanjutnya eksekusi program Anda dengan menekan F9, jika berhasil maka akan tampil seperti gambar 6.10 dibawah ini. 8 Gambar 6.10 Setelah dua kodisi diterapkan 6.4 Program Pemilih Record Sekarang Anda akan dibimbing untuk membuat program yang dapat menggabungkan penggunaan range dan filter. Ketika program dijalankan, pemakai dapat memilih kriteria pilihan record berdasarkan tombol radio yang telah disediakan. 6.4.1 Membuat Proyek Dan Form Diasumsikan bahwa proyek kalkulasi dan form kalkulasi dalam keadaan terbuka, lalu ikuti langkah-langkah dibawah ini : 1. 2. 3. 4. 5. Pilih menu File Save Project As … Ketikkan Pilih pada kotak edit File name : dan klik tombol Save. Pilih menu File Save AS… Ketikkan FPilih pada kotak Edit File name : dan klik tombol Save. Melalui jendela Object Inspektor, lakukan perubahan-perubahan properti seperti dibawah ini: Properti Caption Name Isi Program Record FormPilih 6. Lalu simpan dengan perintah File Save All. 6.4.2 Menambah Komponen RadioGroup Langkah selanjutnya Anda perlu menambah sebuah komponen RadioGroup yang berada pada halaman Standart ke form dengan desain gambar sebagai berikut : 9 Gambar 6. 11 Desain yang telah dilengkapi dengan tiga record Ikuti langkah-langkah sebagai beikut ini : 1. Pada halaman Standart pada komponen Palette, kliklah ikon RadioGroup 2. Aturlah komponen seperti gambar 6.11 diatas. 3. Melalui Object Inspector , lakukan perubahan properti dengan ketentuan : Properti Caption Name . Isi Kriteria RadioGroupKriteria 4. Sorot properti Items dan kemudian klik pada 5. Ketikkan : Seluruh Record Pria Wanita Seperti gambar 6.12 dibawah ini : . Gambar 6.12 String List Editor 6. Klik tombol OK. 7. Agar salah satu record langsung terpilih, maka pada properti ItemIndex ubah menjadi 0 ( Item Index milik RadioGroup) dan Columns menjadi 3. 8. Jika berhasil, maka akan tampil seperti gambar 6.13 berikut ini : 10 Gambar 6.13 Setelah dilengkapi dengan pemilih record. 6.4.3 Menuliskan Kode Kejadian Pada FilterRecord Untuk melihat berbagai efek metode diatas, ubah kode pada kejadian FilterRecord milik TabelDosen sebagai berikut : 1. 2. 3. 4. Klik pada komponen Table yang terdapat pada form. Klik tab Events pada jendela Object Inspektor. Klik ganda pada sel OnFilterRecord.. Tuliskan kode berikut ini, sehingga kode lengkap untuk kejadian FilterRecord menjadi seperti berikut ini. Accept := TableDosen.FieldByName('JENKEL').Value; 5. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. 6.4.4 Menuliskan Kode Kejadian OnClick Milik RadioGroup. Untuk melihat berbagai efek metode diatas, ubah kode pada kejadian OnClick milik RadioGroup sebagai berikut : 1. 2. 3. 4. Klik pada komponen RadioGroup yang terdapat pada form. Klik tab Events pada jendela Object Inspektor. Klik ganda pada sel OnClick.. Tuliskan kode berikut ini, sehingga kode lengkap untuk kejadian FilterRecord menjadi seperti berikut ini. 11 Case RadioGroupKriteria.ItemIndex of 0: begin TableDosen.CancelRange; TableDosen.Filtered :=True; end; 1: begin TableDosen.SetRangeStart; TableDosen.FieldByName('KD_DOSEN').Value :=1; TableDosen.KeyExclusive := False; TableDosen.SetRangeEnd; TableDosen.FieldByName('KD_DOSEN').Value :=6; TableDosen.KeyExclusive := True; TableDosen.ApplyRange; end; 2: begin TableDosen.CancelRange; TableDosen.Filtered := True; end; End; 5. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. 6. Setelah itu, eksekusi form Anda dengan tombol F9. Jika berhasil, maka akan tampil sesuai dengan gambar 6.14 dibawah ini. Gambar 6.14 Gambar Tiga Pemilih Recod 6.5 Program Dinamis Sekarang Anda dituntun agar dapat membuat program yang dinamis, yang dapat menerima batas awal dan batas akhir dari suatu range ketika program dijalankan. 12 6.5.1 Membuat Proyek Dan Form Diasumsikan bahwa proyek kalkulasi dan form kalkulasi dalam keadaan terbuka, lalu ikuti langkah-langkah dibawah ini : 1. 2. 3. 4. 5. Pilih menu File Save Project As … Ketikkan Dinamis pada kotak edit File name : dan klik tombol Save. Pilih menu File Save AS… Ketikkan FDinamis pada kotak Edit File name : dan klik tombol Save. Melalui jendela Object Inspektor, lakukan perubahan-perubahan properti seperti dibawah ini: Properti Caption Name Isi Program Yang Dinamis FormDinamis 6. Lalu simpan dengan perintah File Save All. 6.5.2 Menambah Komponen BitBtn Langkah selanjutnya Anda perlu menambah tiga komponen bitbtn yang berada pada halaman Additional pada Component Palette ke form dengan desain gambar sebagai berikut : 1. Melalui Object Inspector , lakukan perubahan properti dengan ketentuan : Properti Caption Name Caption Name Caption Name Isi Batas Awal BitBtnBAwal Batas Akhir BitBtnBAkhir Proses BitBtnProses Apabila berhasil, akan menghasilkan gambar sebagai berikut : Gambar 6.15 Ketiga tombol BitBtn telah ditambahkan 13 2. Program ini menggunakan dua buah variabel yaitu BAwal dan BAkhir yang akan dituliskan pada bagaian Privat milik form. Untuk melakukannya, ikuti langkahlangkah sebagai berikut : 3. Carilah baris yang berisi Private, kemudian tuliskan seperti dibawah ini : private { Private declarations } BAwal, BAkhir : Integer; public { Public declarations } end; 6.5.3 Menambah Kode Batas Awal Ikuti langkah-langkah berikut ini : 1. 2. 3. 4. Klik tombol Batas Awal Klik tab Events pada jendela Object Inspector. Klik ganda pada sel OnClick Tuliskan kode sebagai berikut : Var StringMasukan : String; begin StringMasukan := InputBox('BAwal','Masukkan Kode Dosen :',''); if StringMasukan ='' then Exit; Try BAwal := StrToInt(StringMasukan); Except MessageDlg('Nilai Yang Anda Masukkan Salah' + Chr(10)+ Chr(13)+ 'Kode Dosen Dianggap Sama Dengan Nol', mtInformation, [mbok], 0); BAwal := 0; End; End; 5. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. 6. Bila berhasil akan menampilkan gambar 6.16 sebagai berikut : 14 Gambar 6.16 Memasukkan Kode Awal Dosen 6.5.4 Menambah Kode Batas Akhir Ikuti langkah-langkah berikut ini : 1. 2. 3. 4. Klik tombol Batas Akhir Klik tab Events pada jendela Object Inspector. Klik ganda pada sel OnClick Tuliskan kode sebagai berikut : Var StringMasukan : String; begin StringMasukan := InputBox('BAkhir','Masukkan Kode Dosen :',''); if StringMasukan ='' then Exit; Try BAkhir := StrToInt(StringMasukan); Except MessageDlg('Nilai Yang Anda Masukkan Salah' + Chr(10)+ Chr(13)+ 'Kode Dosen Dianggap Sama Dengan Nol', mtInformation, [mbok], 0); Bakhir := 0; end; end; 5. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. 6. Bila berhasil akan menampilkan gambar 6.17 sebagai berikut : 15 Gambar 6.17 Memasukkan Kode Akhir Dosen 6.5.5 1. 2. 3. 4. 5. Menambah Kode Kejadian Tombol Proses Ikuti langkah-langkah berikut ini : Klik tombol Proses Klik tab Events pada jendela Object Inspector. Klik ganda pada sel OnClick Tuliskan kode sebagai berikut : begin TableDosen.SetRangeStart; TableDosen.FieldByName('KD_DOSEN').Value := BAwal; TableDosen.KeyExclusive := False; TableDosen.SetRangeEnd; TableDosen.FieldByName('KD_DOSEN').Value := BAkhir; TableDosen.KeyExclusive := False; TableDosen.ApplyRange; end; 6. Klik tombol Minimize atau F12 untuk menyembunyikan editor kode. 7. Setelah selesai, maka tahap selanjutnya adalah menjalankan (mengeksekusi) program, jika berhasil maka akan muncul tampilan seperti gambar 6.18 dibawah ini. Gambar 6.18 Menampilkan Kode Dosen 2 hingga 7