Seri Belajar Pemrograman Delphi
Seri Belajar Pemrograman Delphi
Materi : Pengelolaan Satu File Data Oleh : Abd.Rohim Sebuah perusahaan meminta sebuah program aplikasi untuk mengelola persediaan barang. Perusahaan tersebut bergerak dibidang penjualan komputer dan aksesoriesnya. Data barang yang ingin disimpan dalam betuk file adalah : Kode barang, Nama barang, Katagori (Unit, Aksesories, Periperal) satuan, dan jumlah barang yang tersedia. Sebagai tahap awal buatlah program untuk menginput, edit dan delete dan cetak data barang. Langkah penyelesaian: A. Buatlah sebuah File/tabel untuk data barang dengan menggunakan Database Desktop B. Rancanglah bentuk tampilan program sehingga user atau operator merasa mudah untuk menggunakannya. C. Implementasikan bentuk rancangan tersebut pada Delphi. A. Langkah membuat File barang 1. Bukalah Database Desktop dengan cara mengklik tombol Start kemudian pilih Program, Delphi 3 dan Database Desktop. Atau jika sedang berada pada IDE Delphi klick menu Tools dan pilih Database Desktop 2. Pada lingkungan database desktop klick menu File kemudian pilih New dan Table. 3. Tentukan tipe tabel. misalkan paradox 7 4. Isikan data ini sbb: Field Name Type Size Kode A 5 Nama A 25 Katagori S Satuan A 5 Jumlah S 5. Tentukan Frimarykey dari file tersebut. Double klick pada kolom Key & baris Kode sampai terlihat ‘*’ 6. Simpanlah file tesebut. Click Save As. Tunjukan tempat penyimpanan datanya dan beri nama filenya. 7. Pembuatan file telah selesai tutuplah Database Desktop dengan mengklik menu file dan pilih exit. 8. Bukalah aplikasi Database Explorer dengan cara mengklik tombol Star pilih Program, Delphi 3 dan Database Explorer. Atau jika sedang dalam IDE Delphi klik menu DataBase kemudian pilih Explorer 9. Klik menu object pilih New dan pada form new database alias klik OK 10. Tuliskan nama aliasnya “Stock” dan tekan Enter 11. Pindahkan kursor mouse ke jendela Definition klik pada baris ke empat pada tabel tersebut (PATH) sampai muncul tombol ... , klik tombol tersebut, pilihlah direktori tempat menyimpan file diatas. 12. Simpanlah nama alias tadi. Klik menu Object pilih Apply dan klik OK 13. Keluarlah dari Database Explorer. Klik menu Object pilih Exit B. Rancangan program dapat dilihat pada Lampiran 1 C. Implementasi pada Delphi. Untuk mengimplementasikan rancangan program yang telah dibuat ada dua cara atau pendekatan, yang pertama secara tidak langsung. Maksudnya adalah setiap dilakukan pengisian dan pengeditan data, data yang baru disimpan dalam dalam variabel memori dan setelah dinyatakan yakin untuk disimpan baru dilakukan penyimanan ke file. Proses editing datanya mengunakan komponen Edit. Yang kedua secara langsung. Maksudnya adalah setiap dilakukan pengisian data dan pengeditan data dilakukan langsung pada file tersebut. Hal ini dimungkinkan dengan menggunakan komponen DbEdit Untuk membandingkan kedua cara ini pada latihan ini akan dibuat program untuk kedua cara tsb.
ARSys Software Developed
1
Cara Pertama 1. Buka program Delphi. klick Start pilih program, pilih Borland Delphi 3 dan klick Delphi 3. Jika anda sedang berada pada lingkungan IDE delphi, tutup aplikasi yang ada (click menu File dan pilih Close All) dan buka aplikasi baru (klik menu File dan pilih New Aplication) 2. klik pada daerah properti. gantilah nilai-nilai yang ada pada properti tsb. BorderStyle=bsDialog, Caption = Pengelolaan Data Barang, Name = fmMain, Position = po ScreenCenter. 3. Untuk lebih amannya simpan dahulu aplikasi ini. Klik Menu File pilih Save All, Gantilah Unit1 dengan Main1 dan Project1 dengan Kasus1A 4. Pada komponen pallete Standar klik Panel, pindahkan mouse pada daerah form klik pada form. Pada form Properti isikan Align = alTop, BevelOuter = bvLowered, Caption = ‘’ (Kosong). 5. Pada komponen pallete Standar klik Panel, pindahkan mouse pada daerah form klik pada form. Pada form Properti isikan Align = alButton, BevelOuter = bvLowered, Caption = ‘’ (Kosong). 6. Klik komponen pallete Data Access, klik komponen Table, pindahkan kursor mouse pada form dan klik. pada form properti isikan DataBaseName= Stock, Name = tbBarang,TableName = Barang.Db, Active = True. 7. klik komponen table yang ada pada form, klik kanan sehingga tampil submenu dan pilih Field Editor. Pada form filed Editor klik kanan dan pilihlah Add Fields dan klik OK 8. pada komponen pallete Data Access klik DataSource, pindahkan kursor mouse pada form tempatkan disebelah komponen Table, dan klik. Pada form properti isiskan Name = dsBarang, DataSet = dsBarang. 9. Tekan tombol Ctrl-S secara bersamaan (Untuk menyimpan program). lakukanlah hal ini sesering mungkin atau setiap ada perubahan. 10. Klik komponen Pallete DataControl, klik komponen Grid, pindahkan kursor mouse pada form tempatkan dibawah panel yang atas dan klik. aturlah posisinya supaya kelihatan rapi dan bagus. 11. Pada form properti isikan DataSouce = dsBarang, double klik diatas kata +Options isikan dgEditing = False, dgRowSelect = true, dgAlwayShowSelect = true 12. Klik komponen Pallete Standar, klik Button, tempatkan kursor mouse pada Panel bawah klik disebelah pojok kiri. Pada form properti isikan Caption = &Input, Name = Input. 13. Klik komponen button yang ada pada komponen pallete, pindahkan kursor mouse disebelah kanan button Input. Pada form properti isikan Caption = &Edit, Name = Edit. 14. Klik komponen button yang ada pada komponen pallete, pindahkan kursor mouse disebelah kanan button Edit. Pada form properti isikan Caption = &Delete, Name = Delete. 15. Klik komponen button yang ada pada komponen pallete, pindahkan kursor mouse disebelah kanan button Delete. Pada form properti isikan Caption = C&etak, Name = Cetak. 16. Klik komponen Pallete Addition, klik BitBtn tempatkan kursor mouse pada form panel bawah disebalah pojok kanan dan klik. Pada form properti isikan Kind = bkClose, Name = Close Sekarang akan dibuat form kedua sesuai dengan gambar 2 1. Pada daerah ToolBar klik NewForm, aturlah form tersebut sehingga bentuknya sesuai dengan gambar 2 2. Pada form properti isikan BorderStyle = bsDialog, Caption = Barang, Name = fmEdBarang, Position = poCenter 3. Klik komponen pallete Standar. klik Panel, bawa kursor mouse pada form dan klik, Pada form Properti isikan Align = alTop, BevelOuter = bvLowered, Caption =‘’ 4. Klik Panel, bawa kursor mouse pada form dan klik, Pada form Properti isikan Align = alButton, BevelOuter = bvLowered, Caption =‘’ 5. Klik Label pada komponen pallete Standar, pindahkan kursor mouse pada form diatas panel 1. pada form properti isikan Align = alClient, Caption = ‘’ double klik pada Font gantilah bentuk huruf menjadi Bold - 14, Name = KetProses, Layout = tlCenter 6. Buatlah lima Label tempatkan sesuai dengan gambar 2, isi Caption untuk masing masing label sesuai dengan judulnya. 7. Butalah lima Edit, Isilah Name sesuai dengan Caption pada label, kosongkan properti Text untuk semua Edit. 2 ARSys Software Developed
Seri Belajar Pemrograman Delphi
Seri Belajar Pemrograman Delphi
8. Klik komponen palette Addition, klik BitBtn, bawa kursor mouse ada form diatas panel 2 dan klik, isikan Kind = bkOK 9. Klik komponen BitBtn, tempatkan kursor mouse disebelah Bitbtn OK dan klik, isikan Kind = bkCancel 10. Simpanlah form ini dengan nama EdBarang
fmEdBarang.ActiveControl := fmEdBarang.Nama; fmEdBarang.ShowModal; if fmEdBarang.ModalResult=mrOK then begin tbBarang.Edit; {Merubah satu record kosong} {mengisikan nilai-nilai pada setiap fieldnya} tbBarangNama.Value := fmEdBarang.Nama.Text; tbBarangKatagori.Value := StrToInt(fmEdBarang.Katagori.Text); tbBarangSatuan.Value := fmEdBarang.Satuan.text; tbBarangJumlah.Value := StrToInt(fmEdBarang.Jumlah.text); tbBarang.Post; end; end; 5. Double klik pada Button Delete dan tuliskan perintah berikut ini procedure TfmMain1.DeleteClick(Sender: TObject); var S : array [0..255] of char; begin StrPCopy (S, Format ( 'Anda yakin Barang %s dihapus?', [tbBarangNama.Value])); if (Application.MessageBox ( S, 'Peringatan', MB_YESNO or MB_ICONQUESTION) = IDYES) then tbBarang.Delete; end;
Setelah form-formnya sudah siap tinggal menambahan beberapa statement untuk prosedur-prosedur yang dibutuhkan. Pada rancangan program ini sebagai pengendali utama dari program adalah form fmMain1. Ikuti langkah-langkah berikut ini: 1. Aktifkan form tersebut sehingga tampil seperti gambar 1 2. Klik menu File pilih Use Unit, sorot Edbarang dan klik OK 3. Double klik pada Button Input dan tuliskan perintah berikut ini procedure TfmMain1.InputClick(Sender: TObject); begin {Mengkosongkan isi variabel TEdit} with fmEdBarang do begin Kode.Text := ''; Nama.Text := ''; Katagori.text := ''; Satuan.text := ''; Jumlah.text := ''; end; {Mengatur bentuk tampilan program} fmEdBarang.KetProses.Caption :='Entry Data Barang'; fmEdBarang.Kode.Enabled := true; fmEdBarang.Kode.ReadOnly := false; fmEdBarang.Kode.Color := clWindow; fmEdBarang.ActiveControl := fmEdBarang.Kode; fmEdBarang.ShowModal; if fmEdBarang.ModalResult=mrOK then begin tbBarang.Insert; {Menambahkan satu record kosong} {mengisikan nilai-nilai pada setiap fieldnya} tbBarangKode.Value := fmEdBarang.Kode.Text; tbBarangNama.Value := fmEdBarang.Nama.Text; tbBarangKatagori.Value := StrToInt(fmEdBarang.Katagori.Text); tbBarangSatuan.Value := fmEdBarang.Satuan.text; tbBarangJumlah.Value := StrToInt(fmEdBarang.Jumlah.text); tbBarang.Post; end; end; 4. Double klik pada Button Edit dan tuliskan perintah berikut ini procedure TfmMain1.EditClick(Sender: TObject); begin {Memindahkan data yang ada direcord aktif ke variabel TEdit} with fmEdBarang do begin Kode.Text := tbBarangKode.Value; Nama.Text := tbBarangNama.Value; Katagori.text := IntToStr(tbBarangKatagori.Value); Satuan.text := tbBarangSatuan.Value; Jumlah.text := IntToStr(tbBarangJumlah.Value); end; {Mengatur bentuk tampilan program} fmEdBarang.KetProses.Caption :='Edit Data Barang'; fmEdBarang.Kode.Enabled := false; fmEdBarang.Kode.ReadOnly := true; fmEdBarang.Kode.Color := clInactiveCaption;
ARSys Software Developed
3
Selanjutnya akan dibuat form untuk pencetakan data 1. Buka form baru. Pada properti isikan Nama =fmCetakBarang 2. Simpanlah form tsb dengan nama Cetakbarang 3. Klik komponen pallete Qreport, klik QuickRep, pindahkan mouse pada form dan klik, atur posisinya supaya menutupi semua form 4. Tempelkan komponen Table dan DataSource pada form ini lakukan hal yang sama seperti cara pertama no. 6 dan 8 5. Klik pada daerah putih (mengaktifkan Quickrep). isikan pada properti DataSet = Stock, Name = qrListBarang 6. Klik pada form, Klik kanan (menampilkan menu popup) pilih Report Setting, klik-lah Pageheader, ColumnHeader dan Detailheader, Klik OK 7. Klik pageHeader, klik komponen pallete Qreport, klik QRLabel, klik dipojok kiri pada pageHeader. pada properti isikan Caption = ARSys Software developed. untuk tampilan rubahlah jenis huruf pada font 8. Klik ColumnHeader, isikan pada daerah ini 6 QRLabel , isi Caption dengan urutan No, Kode Barang, Nama Barang, Katagori, Satuan, Jumlah 9. Klik detailHeader, Klik QRExpr, tempatkan dibawah QRLabel No.pada properti klik Expression, pada kotak Aviable Function pilih Count, klik Add dan klik OK 10. pada komponen pallete Qreport klik QRDbText, tepatkan dibawah QRLabel Kode, isikan pada properti DataSet =dsBarang, DataField = Kode, lakukan hal yang sama untuk filed yang lainya, datafiled sesuaikan dengan QRLabelnya 11. Untuk melihat tampilan cetakan klik kanan pilih Preview
Pembuatan form cetakan sudah selesai tinggal menyambungkannya dengan form yang lain yang akan dipanggil pada form Main1. Aktifkan form main1, double klik button Cetak dan tuliskan perintah berikut: procedure TfmMain1.CetakClick(Sender: TObject); begin fmCetakBarang.qrListBarang.Preview; 4 ARSys Software Developed
Seri Belajar Pemrograman Delphi
Seri Belajar Pemrograman Delphi
end;
Cara Kedua Pada cara kedua ini bentuk tampilan (form-form) akan di buat sama dengan yang pertama. Untuk lebih memahami tentang perbedaannya akan dibuat program baru tidak memodifikasi program yang telah ada. Ikutilah langkah-langkah berikut ini. 1. Buatlah sebuah direktori baru untuk menyimpan program atau project ini 2. Buka program Delphi. klick Start pilih program, pilih Borland Delphi 3 dan klick Delphi 3. Jika anda sedang berada pada lingkungan IDE delphi, tutup aplikasi yang ada (click menu File dan pilih Close All) dan buka aplikasi baru (klik menu File dan pilih New Aplication) 3. klik pada daerah properti. gantilah nilai-nilai yang ada pada properti tsb. BorderStyle=bsDialog, Caption = Pengelolaan Data Barang, Name = fmMain, Position = po ScreenCenter. 4. Untuk lebih amannya simpan dahulu aplikasi ini. Klik Menu File pilih Save All, Gantilah Unit1 dengan Main2 dan Project1 dengan Kasus1B 5. Pada komponen pallete Standar klik Panel, pindahkan mouse pada daerah form klik pada form. Pada form Properti isikan Align = alTop, BevelOuter = bvLowered, Caption = ‘’ (Kosong). 6. Pada komponen pallete Standar klik Panel, pindahkan mouse pada daerah form klik pada form. Pada form Properti isikan Align = alButton, BevelOuter = bvLowered, Caption = ‘’ (Kosong). 7. Klik komponen Pallete DataControl, klik komponen Grid, pindahkan kursor mouse pada form tempatkan dibawah panel yang atas dan klik. aturlah posisinya supaya kelihatan rapi dan bagus. Biarkan pada grid ini hanya kelihatan satu kolom. 8. Klik komponen Pallete DataControl, klik komponen Navigator, pindahkan kursor mouse pada form tempatkan dibawah panel yang atas di pojok kiri dan klik. Pada form properti double klik pada kata +VisibleButton, Gantilah nilai-nilai mulai dari nbInsert sampai nbRefresh menjadi false. 9. Klik komponen Pallete Standar, klik Button, tempatkan kursor mouse pada Panel bawah klik disebelah pojok kiri. Pada form properti isikan Caption = &Input, Name = Input. 10. Klik komponen button yang ada pada komponen pallete, pindahkan kursor mouse disebelah kanan button Input. Pada form properti isikan Caption = &Edit, Name = Edit. 11. Klik komponen button yang ada pada komponen pallete, pindahkan kursor mouse disebelah kanan button Edit. Pada form properti isikan Caption = &Delete, Name = Delete. 12. Klik komponen button yang ada pada komponen pallete, pindahkan kursor mouse disebelah kanan button Delete. Pada form properti isikan Caption = Ce&tak, Name = Cetak. 13. Klik komponen Pallete Addition, klik BitBtn tempatkan kursor mouse pada form panel bawah disebalah pojok kanan dan klik. Pada form properti isikan Kind = bkClose, Name = Close 14. Simpan kembali program ini.
Lampiran 1
Gambar 1
Gambar 2
Bentuk Cetakan
Catatan Pada form ini grid dengan navigator sengaja belum dihubungkan dengan sebuah file (DataSource masih kosong) karena tabelnya akan dibuat atau ditempatkan pada sebuah Data Modul. Jika kita lihat pada program sebelumnya (Kasus1A) ada dua form yang menggunakan komponen tabel yang sama, selain kelihatanya tidak bagus juga ada pekerjaan yang sama dilakukan berulang, oleh sebab itu perlu digunakan data modul. Membuat Data Modul 1. Klik Menu file pilih New Data Module, pada form properti isikan Name = dmStock 2. Klik komponen pallete Data Access, klik komponen Table, pindahkan kursor mouse pada form data module dan klik. pada form properti isikan DataBaseName= Stock, Name = tbBarang,TableName = Barang.Db, Active = True. 3. Klik komponen table yang ada pada data module, klik kanan sehingga tampil submenu dan pilih Field Editor. Pada form field Editor klik kanan dan pilihlah Add Fields dan klik OK 4. pada komponen pallete Data Access klik DataSource, pindahkan kursor mouse pada form data module tempatkan disebelah komponen Table, dan klik. Pada form properti isiskan Name = dsBarang, DataSet = tbBarang. 5. Simpanlah data modul tersebut, tekan Ctrl-S, isikan nama filenya = DataModulStock
Menghubungkan data modul dengan form Main
ARSys Software Developed
5
ARSys Software Developed
6
Seri Belajar Pemrograman Delphi
Seri Belajar Pemrograman Delphi
1. Aktifkan form Main 2. Klik menu file pilih Use Unit, klik kata DataModulStock dan klik OK 3. Aktifkan komponen Grid (klik pada daerah grid) isikan pada form properti DataSource= dmStock.dsBarang 4. Untuk mengatur judul pada grid tsb misalkan judulnya ingin di tengah , Klik kanan pilih Columns Editor, Klik Add All Fields, klik pada Kode, pada form properti double klik pada kata +Title, isilah Alignment=taCenter. Lakukan hal yang sama untuk field yang lainya. 5. Aktifkan komponen Navigator isikan pada form properti DataSource= dmStock.dsBarang 6. Simpan kembali program ini Membuat from kedua (seperti Gambar 2) 1. Pada daerah ToolBar klik NewForm, aturlah form tersebut sehingga bentuknya sesuai dengan gambar 2 2. Pada form properti isikan BorderStyle = bsDialog, Caption = Barang, Name = fmEdBarang, Position = poCenter 3. Klik komponen pallete Standar. klik Panel, bawa kursor mouse pada form dan klik, Pada form Properti isikan Align = alTop, BevelOuter = bvLowered, Caption =‘’ 4. Klik Panel, bawa kursor mouse pada form dan klik, Pada form Properti isikan Align = alButton, BevelOuter = bvLowered, Caption =‘’ 5. Klik Label pada komponen pallete Standar, pindahkan kursor mouse pada form diatas panel 1. pada form properti isikan Align = alClient, Caption = ‘’ double klik pada Font gantilah bentuk huruf menjadi Bold - 14, Name = KetProses, Layout = tlCenter 6. Buatlah lima Label tempatkan sesuai dengan gambar 2, isi Caption untuk masing masing label sesuai dengan judulnya. 7. Klik menu file pilih Use Unit, klik kata DataModulStock dan klik OK 8. Klik Komponen pallete Data Control, klik DBEdit, klik pada form disebelah kanan Kode, isikan pada properti DataSource= dmStock.dsBarang, DataField= Kode, Name= Kode, Lakukan hal yang sama untuk field-field yang lain 9. Klik komponen palette Addition, klik BitBtn, bawa kursor mouse ada form diatas panel 2 dan klik, isikan Kind = bkOK 10. Klik komponen BitBtn, tempatkan kursor mouse disebelah Bitbtn OK dan klik, isikan Kind = bkCancel 11. Simpanlah form ini dengan nama EdBarang Untuk menghubungkan forma Main dengan EdBarang Ikuti langkah-langkah berikut ini: 1. Aktifkan form tersebut sehingga tampil seperti gambar 1 2. Klik menu File pilih Use Unit, sorot Edbarang dan klik OK 3. Double klik pada Button Input dan tuliskan perintah berikut ini procedure TfmMain.InputClick(Sender: TObject); begin fmEdBarang.KetProses.Caption :='Entry Data Barang'; fmEdBarang.Kode.Enabled := true; fmEdBarang.Kode.ReadOnly := false; fmEdBarang.Kode.Color := clWindow; fmEdBarang.ActiveControl := fmEdBarang.Kode; dmStock.tbBarang.Insert; fmEdBarang.ShowModal; if fmEdBarang.ModalResult=mrOK then dmStock.tbBarang.Post else dmStock.tbBarang.Cancel; end;
4. Double klik pada Button Edit dan tuliskan perintah berikut ini procedure TfmMain.EditClick(Sender: TObject); begin
ARSys Software Developed
7
fmEdBarang.KetProses.Caption :='Edit Data Barang'; fmEdBarang.Kode.Enabled := false; fmEdBarang.Kode.ReadOnly := true; fmEdBarang.Kode.Color := clInactiveCaption; fmEdBarang.ActiveControl := fmEdBarang.Nama; dmStock.tbBarang.Edit; fmEdBarang.ShowModal; if fmEdBarang.ModalResult=mrOK then dmStock.tbBarang.Post else dmStock.tbBarang.Cancel; end; 5. Double klik pada Button Delete dan tuliskan perintah berikut ini procedure TfmMain.DeleteClick(Sender: TObject); var S : array [0..255] of char; begin StrPCopy (S, Format ( 'Anda yakin Barang %s dihapus?', [dmStock.tbBarangNama.Value])); if (Application.MessageBox ( S, 'Peringatan', MB_YESNO or MB_ICONQUESTION) = IDYES) then dmStock.tbBarang.Delete; end; Untuk form cetak coba anda buat sendiri seperti yang telah dibuat dulu tampa menggunakan komponen table dan DataSource. Untuk mengambil data dari tabelnya gunakan Data Module Sampai pada bagian ini diharapkan telah dipahami materi pokok dan materi bawaan (yang tersirat). diantaranya • Membuat form dan menghubungkan atau memanggil sebuah form (ShowModal, Show, Active). • Mengisi properti-properti penting dari sebuah form • Pemahaman tentang tabel, datasource, data field, dan komponen visual untuk manipulasi sebuah tabel. • Dapat mengambil kesimpulan dari dua model atau bentuk penyelesaian. Sebagai tambahan diantara keduanya bisa dipadukan misalnya untuk data field yang berjenis huruf ( Alpa), bilangan, currency bisa mengunakan cara pertama, tetapi jika jenis data fieldnya berupa tanggal dan diinginkan bentuk tanggal seperti datetimepicker maka gunakanlah cara pertama. • Dalam bentuk penulisan source program untuk mempersingkat penulisan gunkanlah statemen with do • Jika anda mendapat kesulitan atau ingin mengetahui penjelasan tentang sesuatu gunkanlah tombol F1. Misalkan jika anda ingin mengetahui apa itu tabel maka aktifkan tabel yang ada di form atau di data modul, kemudian tekan tombol F1, tetapi jika anda ingin mengetahui nilai sebuah properti misalkan DataBaseName pada sebuah Tabel maka klik pada properti tabel pada bagian DataBaseName kemudian tekan F1. Jika anda hanya mengetahui namanya saja misalkan NOW apa artinya ini ? pada source program tuliskan kata NOW kemudian tempatkan kursor pada pada kata now tersebut dan tekan F1. Bagian terakhir dari modul ini akan membahas contoh permasalahan yang paling sering dihadapi dalam penangan file ini. Misalkan ada kasus seperti ini; dalam struktur file ada field Quantity dan Harga, sementara diinginkan selalu tampil (dalam Grid) ada Total Harga (Perkalian antara Quantity dengan Harga) apakah harus ditambahkan field baru pada struktur filenya ? atau gimana ?, kasus lain misalnya dalam struktur file field Katagori Barang berbentuk nomor saja tetapi pada saat entri data dan saat menampilkan data ingin ditampikan namanya dari katagori tersebut. Harus bagaimanakah jika kejadianya seperti ini.
ARSys Software Developed
8
Seri Belajar Pemrograman Delphi Dalam Delphi permasalahan ini cukup mudah ditanggani, dengan menggunakan field tambahan (Field Bayangan atau maya) yang sifat tidak permanen disimpan dalam sebuah file tetapi ini hanya merupakan sebuah variabel yang berjenis field, untuk membuatnya dengan menggunkan filed editor. Kita langsung saja pada permasalahan diatas seperti sfesifikasi program yang ada diawal modul ini. 1. Buka program Kasus pertama (Kasus1A.Dpr) 2. Aktifkan komponen Table. Klik komponen tabel yang ada form 3. Klik kanan pada komponen table, pilih field editor dan klik. selanjutnya akan tampil kotak fields Editor 4. Klik kanan pada daerah kotak tersebut kemudian pilih New Fields dan klik. Dan akan muncul form New Fields. 5. Isikan pada Name = KategoriNM, Type = String, FieldType = Calculated dan klik OK 6. Pindahkan posisi KategoriNM menjadi dibawah Kategori dengan cara men-drag KategoriNM dan menempatkanya dibawah Kategori. 7. Klik komponen Table pada forma Main (untuk mengaktifkan) 8. Klik Events disebelah komponen, kemudian pilihlah OnCalFields dan Double Klik, tuliskan program berikut ini procedure TfmMain1.tbBarangCalcFields(DataSet: TDataSet); begin case tbBarangKatagori.Value of 1: tbBarangKategoriNM.Value :='Unit'; 2: tbBarangKategoriNM.Value :='Aksesories'; 3: tbBarangKategoriNM.Value :='Periperal'; end; end; 9. Kembali lagi ke form (Klik Toggle), klik pada daerah grid kemudian klik kanan, pilih Coloum Editor, klik AddAllFields. Hasilnya pada grid akan ditampilkan seluruh field yang ada pada editor ini, sementara kita tidak menginginkan adanya nomor kategori oleh sebab itu kita bisa menghapusnya. Sorot Kategori (No. 2) kemudian klik tombol Delete. Sampai disini kita bisa melihat tampilan kategori yang ditampilkan dengan namanya. selanjutnya kita akan membuat perubahan untuk form kedua agar dalam entrian yang ditampilkan atau di entri bukan nomor kategori tetapi nama dari kategori, tetapi disimpanya masih tetap nomor kategori. 1. Klik tombol Select Form From List, pilih fmEdBarang dan klik OK 2. Hapuslah Edit Kategori (aktifkan EditKategori tekan tombol delete) 3. Pada Komponen pallete Standar pilih komponen ComboBox, Tempatkan pada posisi edit kategori yang baru dihapus. 4. Isikan pada properti ComboBox, Items=Unit, Aksesories,Periperal, Style= csDropDownList Aktifkan source program Main1, Pada prosedure InputClick hapuslah baris program Katagori.text:=''; dan hapus baris tbBarangKatagori.Value:= StrToInt(fmEdBarang.Katagori.Text); kemudian ganti dengan tbBarangKatagori.Value := fmEdBarang.ComboBox1.ItemIndex; 5. Pada prosedur EditClick hapuslah baris Katagori.text := IntToStr (tbBarangKatagori.Value); dan ganti dengan ComboBox1.ItemIndex := tbBarangKatagori.Value; Hapuslah baris tbBarangKatagori.Value := StrToInt(fmEdBarang.Katagori.Text); dan gantilah dengan tbBarangKatagori.Value := fmEdBarang.ComboBox1.ItemIndex; Sampai sini entry data dan tampil data telah selesai tinggal cetak data, cobalah buat sendiri untuk cetak datanya, untuk menampilkan nama katogorinya prosesnya hampir sama dengan yang sebelumnya. Selamat Mencoba
ARSys Software Developed
9
Seri Belajar Pemrograman Delphi
Seri Belajar Pemrograman Delphi
Materi : Pengelolaan Beberapa File Data Oleh : Abd. Rohim
Selanjutnya kita akan bahas mengenai file Master-Detail. Model file ini banyak sekali terdapat dalam permasalahan umum, misalnya sebuah Faktur pembelian atau penjualan, Kartu Studi Mahasiswa, Kartu Peminjaman buku diperpustakaan dll, kesemuanya mempunyai keteraturan yang sama. Dalam faktur terdapat data-data sbb: No. Faktur, Tanggal faktur, Kepada atau Dari (Konsumen/Produsen), Nomor urut, Nama barang, Satuan, Jumlah barang, Harga, Total. Jika digambarkan dalam sebuah tabel akan berbentuk sbb: No.Faktur Tanggal Kepada NamaBarang Satuan Jumlah Harga Total
Materi selanjutnya adalah penggeloaan beberapa file data. Kata beberapa disini bisa berarti dua buah file atau lebih. Bila terdapat dua atau lebih file dalam suatu database ini akan selalu menunjukan hubungan diantara file-file tersebut. Pembentukan lebih dari satu file biasanya dimaksudkan untuk mengilangkan redundansi data dan memudahkan dalam penggeloaan dari database tersebut jika terjadi proses pada database (Input, Edit, Delete). Hubungan antara dua file ada yang bersifat Melengkapi/menjelaskan/memberikan keterangan dari suatu field, bisanya field tersebut selalu menjadi sebuah foreigkey. Selain itu ada juga hubungan yang bersifat ketergantungan artinya suatu file (Anak) tidak akan mempunyai artinya bila tidak ada file (Induk), bentuk seperti ini sering disebut dengan Master-Detail atau Induk-Anak.
Jika dimasukan satu buah transaksi sbb No.Faktur Tanggal Kepada 1 01/01/99 Adi 1 01/01/99 Adi 1 01/01/99 Adi
Contoh kasus (untuk model yang pertama) yang akan diambil dalam modul ini akan mengembangkan kasus pada modul sebelumnya. Pada kasus tersebut diinginkan untuk menampilkan kategori dalam bentuk sebuah kata (Unit, Aksesories, Periperal) sementara saat disimpan dalam file yang ditulis hanya nomor urutnya saja (0,1,2). Hal ini dibuat seperti ini guna mengatisipasi perkembangan dimasa mendatang, jika terjadi pemambahan kategori maka tidak perlu merubah source program tetapi cukup dengan menambahkan jenis kategorinya saja.
dari tabel akan terlihat ada tiga field yang ditulis berulang (No. Faktur, Tanggal, Kepada). Dalam teori database, dalam file tersebut ada redudansi oleh sebab itu harus dipecah untuk menghilangkan redudansi tersebut, sehingga bentuknya akan menjadi seperti berikut:
Untuk itu perlu dibuatkan sebuah file/tabel baru untuk menyimpan nama kategori dengan struktur sbb: (Gunakan DataBase Desktop) FieldName Type Size Key No S * NamaKat A 15 Simpanlah file tersebut dengan nama Kategori Pada Database Desktop tersebut isikan langsung seperti berikut 0 Unit 1 Aksesories 2 Periperal Selanjutnya bukalah program KASUS1B.DPR (Langsung ke File) dan lakukan langkah-langkah berikut ini. 1. Buka Form data Module. Klik Select Unit From List (Pada SpeedBar), Pilih dataModulStock dan klik OK 2. Klik tombol Toggle Unit/Form 3. Klik Komponen Pallete Data Access, Klik Table, Tempatkan kursor mouse pada form data Module dan klik, Isikan pada form properti nilai-nilai sbb: DatabaseName=Stock, Name=tbKategori, TableName=Kategori.db, Active=true 4. Klik DataSource, tepatkan kursor mouse pada form dan klik, isikan Name=dsKategori, DataSet=tbKategori 5. Klik tbBarang, klik kanan pilih field editor, Pada field editor klik kanan pilih New Field dan Klik hingga tampil form. Isikan Name=KategoriNM, Type=String, FieldType=LookUp, KeyField=Kategori, DataSet=tbKategori, LookUpKey=No, ResultField=NamaKet. dan Klik OK, Selanjutnya drag-lah sehingga Field KategoriNM berada dibawah kategori 6. Aktifkan Form Main sehingga tampil formnya. Klik pada daerah grid, Klik kanan pilih kolom editor dan klik, Klik pada tulisan Kode dan klik, tekan tombol shift (jangan dilepas) klik Jumlah sehingga semua data disorot dan klik tombol delete. Klik tombol Add All Fields, Klik kategori dan klik delete. Tutuplah form tersebut. 7. Klik Select Unit From List (Pada SpeedBar), double klik pada EdBarang. Klik tombol Toggle Unit/Form. 8. Klik DBEdit kategori dan tekan tombol delete 9. Klik Komponen Pallete Data Control, Klik DBLookupComboBox1 dan klik pada form untuk mengganti yang dihapus. isikan sbb: DataSource= dmStock.dsBarang, DataFields= Kategori ,ListSource=dmStock.dsKategori, ListField= NamaKet, KeyField=No, Name=Kategori 10. Simpanlah Seluruh program 11. Jalankan programnya.
ARSys Software Developed
1
Tabel-A No.Faktur 1 Tabel-B No. Faktur 1 1 1
Tanggal 01/01/99
NamaBaran g Kopi Gula Susu
dimana seseorang membeli tiga macam barang maka data yang akan disimpan NamaBarang Kopi Gula Susu
Satuan buah buah kaleng
Jumlah 10 10 1
Harga 1000 500 5000
Total 10000 5000 5000
Kepada Adi
Unit
Jumlah
Harga
Total
buah buah kalen g
10 10 1
1000 500 5000
10000 5000 5000
Tabel-A biasanya disebut dengan Master/Induk dan Tabel-B disebut dengan Detail/Anak yang dihubungkan dengan sebuah key (No.Faktur). Dalam proses manipulasi terhadap filenya (Input, Edit dan Delete) untuk file-file tersebut sama dengan yang dilakukan pada modul sebelumnya, bisa dengan cara tidak langsung (dengan Tedit) atau dengan cara langsung (TDBEdit) atau kombinasi diantara keduanya. Tetapi sebelumya kedua file tersebut harus dikaitkan dahulu dan harus diketahui secara persis nama yang kan menjadi induk dan mana yang akan menjadi anak. Sebagai bahan latihan untuk mengkaitkan antara dua tabel yang saling berhubungan akan digunakan database yang yang disediakan oleh delphi (DBDEMOS). Ada dua file yang terkait erat yaitu file Orders dan File Items. Kedua file ini dihubungkan oleh sebuah field OrderNo. Lakukanlah langkah-langkah berikut ini. 1. Bukalah project baru. Klik menu File kemudian pilih New Aplication 2. Pada Properti isikan Caption=Contoh Program Master Detail, Name=fmMasterDetail, Position-poScreenCenter, 3. Klik tombol Save All pada SpeedBar, Pindahkan direktori kedirektori kerja anda, ganti Unit1 menjadi MasterDetail Project1 menjadi KasusB 4. Klik Komponen Pallete Data Access, Klik table, klik pada form dikiri atas isikan data-data sbb: DataBaseName=DBDEMOS, Name=tbMaster, TableName=ORDERS.DB, Klik DataSource pada komponen pallete, Klik kembali pada form disebelah table, isikan Dataset=tbMaster, Name= dsMaster. 5. Klik table, klik pada form isikan data-data sbb: DataBaseName=DBDEMOS, Name=tbDetail, TableName= ITEMS.DB, Klik DataSource pada komponen pallete, Klik kembali pada form disebelah table, isikan dataset=tbDetail, Name=dsDetail, MasterSource=DataSource1. Double klik pada MasterFields, Klik OrderNo pada DetailField, Klik OrderNo pada MasterField, Klik tombol Add, dan Klik tombol OK (Bold = cara untuk menghubungkan/mengkaitkan dua buah file, Orders=Master dan Items=Anak)
ARSys Software Developed
2
Seri Belajar Pemrograman Delphi 6. Klik Komponen Pallete Data Control, Klik Navigator, klik pada form dibagian atas, isikan pada properti sbb: DataSource= dsMaster, ShowHints=true 7. Klik DBGrid pada komponen pallete, klik pada form dibawah navigator (atur posisi, besar kecilnya supaya bagus). isikan pada properti DataSource=dsMaster 8. Klik DBGrid pada komponen pallete, klik pada form dibawah Grid yang tadi (atur posisi, besar kecilnya supaya bagus). isikan pada properti DataSource=dsDetail 9. Simpanlah progam ini 10. Coba jalankan (RUN) ikuti langkah selanjutnya 11. Klik tombol-tombol First Record, Next Record, Prior Record dan Last Record, akan terlihat jika posisi record pada Mater berubah maka pada anaka pun akan berubah. Pencarian record (yang sama OrderNo-nya) dilakukan secara otomatis oleh delphinya sendiri sesuai perintah no 5 diatas. 12. Klik tombol Insert (+) pada grid yang atas disediakan satu baris kosong, sementara pada grid yang dibawah isinya kosong. Klik tombol cancel.
ARSys Software Developed
3