Seri Belajar Pemrograman Delphi ARSys So

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