Anda di halaman 1dari 43

1

ACARA II

PRAKTIKUM PEMROGRAMAN KOMPUTER (DELPHI 2)


A; Membuat file database

Praktikum 2.1.1. Membuat File DataBase Yang Diperlukan.

1. Menjalankan Database Desktop

Database Desktop dapat dijalankan dengan salah satu dari dua cara berikut ini :
a. Klik Menu Start Window Pilih Programs Borland Delphi 7 Database Desktop
b. Jika anda telah berada di IDE Delphi, klik Menu Tools Database Desktop

Setelah itu akan muncul tampilan seperti terlihat berikut ini, yang menunjukkan program Database Desktop siap pakai.

2.Membuat Tabel
a. Klik menu File-New- Table
b. Akan tampil kotak dialog Create Table seperti berikut ini

2
Pilihlah tipe tabel yang akan dibuat . Misalnya Paradox 7. Klik OK jika pilihan telah sesuai.

c. Akan ditampilkan Kotak dialog Create Paradox 7 Table.

3
d. Pada kolom Field Name, tentukan nama field yang diinginkan . Nama Field adalah nama pengenal suatu kolom dalam tabel
database. Aturan untuk pemberian nama field adalah sebagai berikut.
Maksimum panjang 25 karakter
Tidak boleh diawali spasi, tidak boleh mengandung spasi.
Harus unik, yaitu tidak boleh ada yang sama dalam satu tabel.
Jangan menggunakan tanda koma (,), tanda pipe (|) dan tanda seru (!).
Hindarkan penggunaan kata perintah SQL, misalnya SELECT, WHERE, COUNT.
e. Tentukan tipe field pada kolom Type. Tipe field dapat dilakukan dengan menekan SpaceBar pada saat kursor berada pada
kolom Type. Tipe field ini menentukan tipe data yang dapat ditampung dalam field. Tipe field yang sering dipakai adalah seperti
berikut ini.
A (Alpha), untuk menampung kumpulan karakter huruf angka dan karakter ASCII yang dapat tercetak. Lebar field tipe ini
adalah anatara 1 sampai 255 byte.

4
N (Number), untuk menampung data angka yang dapat dihitung. Jangkauan yang dapat disimpan adalah dari 10307 sampai
dengan 10308 dengan 15 digit angka signifikan.
$ (Money), sama dengan Number tetapi default-nya data ditampilkan dengan desimal dan pemisah ribuan (sama dengan
Currency). Tipe field ini sangat cocok untuk angka yang menunjukkan nilai uang.
S (Short), untuk menampung bilangan bulat antara -32767 sampai 32767.
I (Long Integer) untuk menampung bilangan bulat dengan nilai antara -2147483648 sampai 2147483647.
D (Date), untuk menampung data tanggal sampai dengan 31 Desember 9999.
T (Time), untuk menampung data waktu dalam 24 jam sampai hitungan milidetik.
M (Memo), untuk menampung data memo. Data memo biasanya dipakai untuk menyimpan data seperti Apha, tetapi isinya
dapat sangat besar dan dapat terdiri atas beberapa baris.
F (Formatted Memo), untuk menampung data memo yang dapat mempunyai format, misalnya font tertentu, warna text dan
lain-lain.
G (Graphic), untuk menampung data gambar.
L ( Logical), untuk menampung fata tipe boolean True dan False.
f. Tentukan lebar field pada kolom Size (jika diperlukan)
g. Pada kolom Key, dapat memberi tanda * dengan menekan sembarang tombol. Field yang diberi tanda Key harus berupa urutan
field dari paling atas. Field yang diberi tanda Key akan dipakai sebagai kunci pengurutan (index) primer.
h. Lengkapi struktur tabel database-nya seperti berikut ini (DbAlsin.db)

Tabel DbAlsin.db
Field Name Type Size Key Keterangan
KdAlsin A 6 * Kode Alsin
NmAlsin A 20 Nama Alsin
JmlTapak S Jumlah Tapak (Bottom)
LbrPerTapak N Lebar Per Tapak
LbrKerja N Lebar Kerja
HrgAlsin N Harga Alsin
UmurEkonAlsin N Umur Ekonomi Alsin
EffKerja N Effisien Kerja
JamKerjaPerThAlsin N Jam Kerja Per Th Alsin

5
i; Klik tombol Save As sampai muncul kotak dialog Save Table As. Pada isian Save in pilihlah folder yang akan dipakai untuk
menyimpan data, misalnya D:\PrakThnAjaran\N+nomhs\Acara02\Data. Pada isian File name isilah nama file databasenya
dengan DbAlsin.

Buatlah secondary index berdasarkan field NmAlsin dan disimpan dengan nama NmAlsin1

j. Klik tombol Save.


k. Untuk keluar dari Database Desktop, pilihlah menu File lalu Exit.

Dengan cara yang sama buatlah Database untuk DbDaya.db, DbHrgBahan.db, dan DbBiayaPengTanah.db

Tabel DbDaya.db
Field Name Type Size Key Keterangan
KdDaya A 6 * Kode Daya
NmDaya A 15 Nama Daya
HPDaya N HP Daya(Traktor)
HrgDaya N Harga Daya (Traktor)
UmurEkonDaya N Umur Ekonomi Daya

6
JamKerjaPerThDaya N Jam Kerja per tahun Daya
KecpKerja N Kecepatan Kerja

Buatlah secondary index berdasarkan field NmDaya dan disimpan dengan nama NmDaya1

Tabel DbHrgBahan.db
Field Name Type Size Key Keterangan
KdBahan A 10 * Kode Bahan
JnsBahan A 20 Jenis Bahan
NmBahan A 20 Nama Bahan
HrgBahan N Harga Bahan

Buatlah secondary index berdasarkan field JnsBahan dan disimpan dengan nama JnsBahan1

Tabel DbBiayaPengTanah.db
Field Name Type Size Key Keterangan
KdPengTanah A 15 * Kode Pengolahan Tanah
KdAlsin A 6 Kode Alsin
NmAlsin A 20 Nama Alsin
KdDaya A 6 Kode Daya
NmDaya A 20 Nama Daya
KapKerja N Kapasitas Kerja
BTetapPerThn N Biaya Tetap per Tahun
BTetapPerJam N Biaya Tetap per Jam
BTdkTetapPerJam N Biaya Tidak Tetap Per Jam
TBiayaPerJam1 N Total Biaya per Jam
TBiayaPerJam2 N Total Biaya Per Jam + keuntungan
TBiayaPerHa1 N Total Biaya per Hektar
TBiayaPerHa2 N Total Biaya Per Hektar + Keuntungan

3. Membuat nama Alias


a. Klik menu Tool-Alias Manager
Akan tampil kotak dialog Alias Manager seperti berikut ini
b. Pilih New pada kotak diaolog Alias Manager.

7
c. Ketik (isikan) DBN+Nomhs anda ( misalkan DBN08888) pada Database alias
d. Carilah folder yang akan di buat nama aliasnya denga Browse, pada Path akan nampak folder anda misalnya
D:\PrakThnAjaran\N08888\Data
e. Kalau sudah benar tekan Ok
f. Selesai lah pembuatan nama Alias pada folder anda.

B; Membuat program Splash

Praktikum 2.2.1. Membuat Splash

8
Pembuatan Form

. Langkah-langkah sebagai berikut


Untuk membuat Splash program aplikasi Perhitingan Biaya Pengolahan Tanah, langka-langkahnya adalah sebagai berikut:
1; Bukalah project baru dengan memilih menu File, New lalu Application, sampai muncul sebuah Form kosong bernama Form1. .
2; Setelah itu, klik icon Save All dan simpan dulu pada folder D:\PrakThnAjaran\NO+nomor mahasiswa anda unit-nya dengan nama
USplash dan beri nama project dengan nama ProgHitungBiaya.
3; Ubah beberapa properti form dan komponen menurut tabel berikut ini

Tab Komponen Property Nilai


Form1 Caption Dikosongkan
Name FSplash

9
System Timer1 Interval 1000
Additional Image1 Picture klik pada Pilihlah gambar

Pembuatan kode program

1. Tekan F12 di b awah private ketikkan X : integer

private
X : Integer;

2. Klik pada Form1 terus Klik Event pada Object Inspector pilih OnCreate klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan sebagai berikut:

procedure TFSplash.FormCreate(Sender: TObject);


begin
Timer1.Enabled := True;
X := 1;
end;

3. Klik pada Timer1 terus Klik Event pada Object Inspector pilih OnTimer klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan sebagai berikut:

procedure TFSplash.Timer1Timer(Sender: TObject);


begin
X := X + 1;
if X = 7 then
begin
FLogin.Show;
FSplash.Destroy;
end;
end;

10
C; Membuat Program Login

Praktikum 2.3.1 Membuat Login

1. Pembuatan Form
.
Langkah-langkah sebagai berikut
Untuk membuat Login program aplikasi Perhitungan Biaya Pengolahan Tanah langka-langkahnya adalah sebagai berikut:
a. Bukalah form baru dengan memilih menu File, New lalu Form, sampai muncul sebuah Form kosong bernama Form1. .
b. Setelah itu, klik icon Save All dan simpan dulu pada folder D:\PrakThnAjaran\NO+nomor mahasiswa anda unit-nya dengan
nama ULogin.
c. Ubah beberapa properti form dan komponen menurut tabel berikut ini

Komponen Komponen Property Nilai


Pallete
Form1 Caption Password
Name FLogin
Additional Bevel1 Shape bsFrame
Style bsLowered

11
Standard Label1 Caption Masukkan Password Anda:
Label2 Caption Login
Label3 Caption Password
Edit1 Text dikosongkan
Edit2 Text dikosongkan
PasswordChar *
Additional BitBtn1 Caption &Login
Kind bkOk
BitBtn2 Caption &Batal
Kind BkNo

2. Pembuatan kode program

a. Klik pada BitBtn1 terus Klik Event pada Object Inspector pilih OnClick klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan sebagai berikut:

procedure TFLogin.BitBtn1Click(Sender: TObject);


begin
If (Edit1.Text = public) then
Begin
With FMenu do
Begin
Alsin1.Enabled := False;
Daya1.Enabled := False;
DafHarga1.Enabled := False;
HitungBiaya1.Enabled := False;
FMenu.Show;
End;
End
Else
If (Edit1.Text = operator) and (Edit2.Text = 12345) then
Begin
FMenu.Show;
End;

12
end;

2. Klik pada BitBtn1 terus Klik Event pada Object Inspector pilih OnClick klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan sebagai berikut:
procedure TFLogin.BitBtn2Click(Sender: TObject);
begin
Application.Terminate;
end;

D; Membuat file database

Praktikum 2.4.1 Membuat Menu

Membuat Menu

13
Komponen Komponen Property Nilai Event
Pallete
Form1 Caption Menu Utama
Name FMenu
Standard MainMenu
Standard Label1 Caption Perhitungan Biaya
Pengolahan Tanah
Additional Image1 Picture klik pada Pilihlah gambar

Pembuatan Form

Langkah-langkah sebagai berikut


Untuk membuat menu utama program aplikasi Perhitungan Biaya Pengolahan Tanah, langka-langkahnya adalah sebagai berikut:
1. Bukalah Formt baru dengan memilih menu File, New lalu Form, sampai muncul sebuah Form kosong bernama Form1.
2. Setelah itu, klik icon Save All dan simpan dulu pada folder D:\ProgHitungBiaya unit-nya dengan nama UMenu
3, Klik ganda pada icon MainMenu yang terdapat pada page Standard dalam Component Palette.
4. Klik ganda pada object MenuUtama untuk menampilkan Menu Designer. Selanjutnya ketik tulisan yang akan ditampilkan sebagai
isikan pertama menu utama, Data.
5. Selanjutnya mengisi submenu Alsin, Daya, dan Daftar Harga.
6. Tekanlah tombol panah kanan dan isikan kedua menu utama Proses
7. Selanjutnya mengisi submenu Perhitungan Biaya
8. Tekanlah tombol panah kanan dan isikan ketiga menu utama Hasil Perhitungan
9. Selanjutnya mengisi submenu Tampil Hasil Perhitungan Biaya
10. Tekanlah tombol panah kanan dan isikan keempat menu utama Laporan
11. Selanjutnya mengisi submenu Daftar Alsin, Daftar Daya, Daftar Harga, Daftar Hasil Pengolahan Tanah.
12. Tekanlah tombol panah kanan dan isikan kelima menu utama Keluar

E; Membuat program

1. Masukkan Data Alsin

14
Praktikum 2.5.1 Membuat Form Data Masukkan Alsin

Nama File : UAlsin.Pas

15
Nama File : UKtAlsin.Pas

Dalam membuat Form untuk mengisi data Alsin, langka-langkahnya adalah sebagai berikut:

Membuat Form
1. Bukalah form baru dengan memilih menu File, New lalu Application, sampai muncul sebuah Form kosong bernama Form1. .

16
2. Setelah itu, klik icon Save All dan simpan dulu pada folder D:\PrakThnAjaran\NO+nomor mahasiswa anda unit-nya dengan nama
UAlsin dan dan proyeknya dengan nama PAlsin .
3. Ubah beberapa properti form dan komponen menurut tabel berikut ini

Tab Komponen Property Nilai Event


Form1 Caption Data Alsin OnActive
Name Falsin OnClose
Standard RadioGroup1 Caption Urutan OnClik
Items
ItemIndex 0
Column 2
BDE Table1 DatabaseName DBN+nomor mhs
anda
Name TAlsin
TableName Pilih DbAlsin.db
Active True
DataAccess DataSource1 DataSet Pilih TAlsin
Name dsAlsin
DataControls DBGrid1 DataSource Pilih dsAlsin
Name DBGridAlsin
Standard Button1 Caption &Tambah OnClik
Name btTambah
Standard Button2 Caption &Edit OnClik
Name btEdit
Standard Button3 Caption &Keluar OnClik
Name btKeluar
Standard Button4 Caption &Cari Kode Alsin OnClik
Name btCariKd

Membuat Form KtAlsin


a. Bukalah form baru dengan memilih menu File, New lalu Form, sampai muncul sebuah Form kosong bernama Form1. .
b Setelah itu, klik icon Save All dan simpan dulu pada folder D:\PrakThnAjaran\NO+nomor mahasiswa anda unit-nya dengan nama
UKtAlsin.

17
c. Ubah beberapa properti form dan komponen menurut tabel berikut ini

Tab Komponen Property Nilai


Form1 Caption Menambah Data
Name FKtAlsin
Standard Edit1 Teks dikosongkan
Standard Edit2 Teks dikosongkan
Standard Edit3 Teks dikosongkan
Standard Edit4 Teks dikosongkan
Standard Edit5 Teks Dikosongkan
ReadOnly True
Standard Edit6 Teks dikosongkan
Standard Edit7 Teks dikosongkan
Standard Edit8 Teks dikosongkan
Standard Edit9 Teks dikosongkan
Standard Label1 Caption Kode Alsin
Standard Label2 Caption Nama Alsin
Standard Label3 Caption Jumlah Tapak
Standard Label4 Caption Lebar Per Tapak
Standard Label5 Caption Lebar Kerja
Standard Label6 Caption Harga Alsin
Standard Label7 Caption Umur Ekonomi
Standard Label8 Caption Effisien Kerja
Standard Label9 Caption Jam Kerja Per Tahun Alsin
Additional BitBtn1 Caption &Ok
Kind bkOK
Additional BitBtn2 Caption &Cancel
Kind bkCancel

Membuat Kode Program

Setelah pada kode Program

18
Var
FAlsin :TFAlsin;

Ketiklah sebagai berikut :

Const
EkeyViol = 9729;
EMin = 9730;
ERequiredField = 9732;
EadaDetil = 9734;

Dan setelah
Implementation
{$R*.DFM}

Ketiklah sebagai berikut

Uses UktAlsin;
Langkah selanjutnya sebagai berikut :

1. Klik pada Form1 terus Klik Event pada Object Inspector pilih OnActivate klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan
TAlsin.Open.

procedure TFAlsin.FormActivate(Sender: TObject);


begin
TAlsin.Open;
end;

2. Klik pada Form1 terus Klik Event pada Object Inspector pilih OnClose klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan TAlsin.Close.

procedure TFAlsin.FormClose(Sender: TObject; var Action: TCloseAction);


begin

19
TAlsin.Close;
end;

3. Klik pada RadioGroup1 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut :
Diantara begin dan end ketikkan tulisan seperti di bawah ini.

procedure TFAlsin.RadioGroup1Click(Sender: TObject);


begin
if RadioGroup1.ItemIndex = 0 then
TAlsin.IndexFieldNames := 'KdAlsin'
else
TAlsin.IndexFieldNames := 'NmAlsin1' ;
end;

4. Klik pada Button1 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

procedure TFAlsin.btTambahClick(Sender: TObject);

Var
JmlTapak1 : integer;
LbrPerTapak1, LbrKerjaAlsin1 : real;
begin
FKtAlsin:= TFKtAlsin.Create (Self) ;

with FKtAlsin do
begin
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '0';
Edit4.Text := '0';
Edit5.Text := '0';
Edit6.Text := '0';
Edit7.Text := '0';

20
Edit8.Text := '0';
Edit9.Text := '0';

Caption := 'Menambah Data';


ActiveControl := Edit1;
end;

FKtAlsin.ShowModal;
if (FKtAlsin.ModalResult = mrok) then
with TAlsin, FKtAlsin do
begin
Append;
FieldByName('KdAlsin').AsString := Edit1.Text;
FieldByName('NmAlsin').AsString := Edit2.Text;
FieldByName('JmlTapak').AsInteger := StrToInt(Edit3.Text);
JmlTapak1 := FieldByName('JmlTapak').AsInteger;
FieldByName('LbrPerTapak').AsFloat :=StrToFloat( Edit4.Text);
LbrPerTapak1 := FieldByName('LbrPerTapak').AsFloat;
LbrKerjaAlsin1 := JmlTapak1 * LbrPerTapak1;
FieldByName('LbrKerjaAlsin').AsFloat := LbrKerjaAlsin1;
FieldByName('HrgAlsin').AsFloat := StrToFloat(Edit6.Text);
FieldByName('UmurEkonAlsin').AsFloat := StrToFloat(Edit7.Text);
FieldByName('EffKerja').AsFloat := StrToFloat(Edit8.Text);
FieldByName('JamKerjaPerThAlsin').AsFloat := StrToFloat(Edit9.Text);

Post;
end;
FKtAlsin.Free;

end;

5. Klik pada Button2 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

21
procedure TFAlsin.btEditClick(Sender: TObject);
Var
JmlTapak1 : integer;
LbrPerTapak1, LbrKerjaAlsin1 : real;
begin
FKtAlsin:= TFKtAlsin.Create (Self) ;

with FKtAlsin do
begin
Edit1.Text := TAlsin.Fields[0].AsString;
Edit2.Text := TAlsin.Fields[1].AsString;
Edit3.Text := IntToStr(TAlsin.Fields[2].AsInteger);
Edit4.Text := FloatToStr(TAlsin.Fields[3].AsFloat);
Edit5.Text := FloatToStr(TAlsin.Fields[4].AsFloat);
Edit6.Text := FloatToStr(TAlsin.Fields[5].AsFloat);
Edit7.Text := FloatToStr(TAlsin.Fields[6].AsFloat);
Edit8.Text := FloatToStr(TAlsin.Fields[7].AsFloat);
Edit9.Text := FloatToStr(TAlsin.Fields[8].AsFloat);

Caption := 'Mengedit Data';


ActiveControl := Edit1;
end;

FKtAlsin.ShowModal;
if (FKtAlsin.ModalResult = mrok) then
with TAlsin, FKtAlsin do
begin
Edit;
FieldByName('KdAlsin').AsString := Edit1.Text;
FieldByName('NmAlsin').AsString := Edit2.Text;
FieldByName('JmlTapak').AsInteger := StrToInt(Edit3.Text);
JmlTapak1 := FieldByName('JmlTapak').AsInteger;
FieldByName('LbrPerTapak').AsFloat :=StrToFloat( Edit4.Text);
LbrPerTapak1 := FieldByName('LbrPerTapak').AsFloat;

22
LbrKerjaAlsin1 := JmlTapak1 * LbrPerTapak1;
FieldByName('LbrKerjaAlsin').AsFloat := LbrKerjaAlsin1;
FieldByName('HrgAlsin').AsFloat := StrToFloat(Edit6.Text);
FieldByName('UmurEkonAlsin').AsFloat := StrToFloat(Edit7.Text);
FieldByName('EffKerja').AsFloat := StrToFloat(Edit8.Text);
FieldByName('JamKerjaPerThAlsin').AsFloat := StrToFloat(Edit9.Text);

Post;
end;
FKtAlsin.Free;
end;

6. Klik pada Button3 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan FAlsin.Close;

procedure TFAlsin.btKeluarClick(Sender: TObject);


begin
FAlsin.close;
end;

7. Klik pada Button4 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

procedure TFAlsin.btCariKdClick(Sender: TObject);


begin
{Menggunakan indeks primer}
TAlsin.IndexFieldNames := 'KdAlsin';
{Mencari data}
if (not TAlsin.FindKey([EKdAlsin.Text])) then
{Jika data tidak ditemukan tampilkan pesan}
Application.MessageBox ('Data tidak ditemukan',
'Information',MB_OK or MB_ICONINFORMATION);
EKdAlsin.Text :='';
ActiveControl := EKdAlsin;

23
end;

8. Klik pada Form terus Klik Event pada Object Inspector pilih OnCreate klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

procedure TFAlsin.FormCreate(Sender : Tobject);


begin
KeyPreview := True;
end;
9. Klik pada TAlsin trus klik Event pada Object Inspector pilih OnPostError klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

Procedure TFAlsin.TalsinPostError(DataSet: TdataSet; E: EdatabaseError, var Action :TdataAction);

Var
IDBIError : Integer;

Begin
If (E is EDBEngineError) then
Begin
iDBIError := (E as EDBEngineError).Errors[0]/ErrorCode;
case iDBIError of
eKeyViol :
{Duplikasi Kd Alat}
Begin
MessageDLG(Kode Alat sama,mtWarning,[mbok],0);
Abort;
End;
End;
End;
End;

10. Klik pada Form terus Klik Event pada Object Inspector pilih OnKeyDown klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

24
procedure TFAlsin.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var
S : array[0..255] of char;
begin
if (Key = vk_F8) then
Begin
StrPCopy (S, Format ('Yakin Kode Alat %s dihapus ?',
[TAlsin.Fields[0].AsString]));
if (Application.MessageBox (S, 'Peringatan',
MB_YESNO or MB_ICONQUESTION) = IDYES) then
{menegaskan pemakai apakah yakin akan menghapus ?}
TAlsin.Delete;
End;
end;

Coba jalankan program PAlsin, masukkan data dibawah ini :


Kalau belum bisa jalan Kilk pada menu Data dan pilih sub menu Alsin terus klik dua kali Alsin antara begin dan end ketikkan
FAlsin.Show;

Kd_Alsin NmAlsin JmlTapak LbrPerTapa LbrKerjaAlsi HrgAlsin UmurEkonAlsi EffKerja JamKerjaPerTh


k n n Alsin
ALS001 Bajak Singkal 4 30 100000 4 0.8 1200
ALS002 Bajak Piringan 5 25 2000000 5 0.8 1500
ALS003 Bajak Rotary 1 150 2500000 6 0.9 2000
ALS004 Garu 1 125 5000000 8 0.7 3000
ALS005 Bajak Pahat 1 50 2500000 7 0.8 3500

25
2. Membuat program Masukkan data Daya

Praktikum 2.5.2 Form Data Masukkan Daya

Nama File : UDaya.Pas

26
Nama File : UKtDaya.Pas

Dalam membuat Form untuk mengisi data Daya, langka-langkahnya adalah sebagai berikut:

Membuat Form Daya


1. Bukalah form baru dengan memilih menu File, New lalu Application, sampai muncul sebuah Form kosong bernama Form1 dan
Project. .
2. Setelah itu, klik icon Save All dan simpan dulu pada folder D:\PrakThnAjaran\NO+nomor mahasiswa anda unit-nya dengan nama
UDaya dan Projectnya dengan PDaya.
3. Ubah beberapa properti form dan komponen menurut tabel berikut ini

Tab Komponen Property Nilai Event


Form1 Caption Data Daya OnActive

27
Name Fdaya OnClose
Standard RadioGroup1 Caption Urutan OnClik
Items
ItemIndex 0
Column 2
Standard Edit1 Name EkdDaya
Text dikosongkan
BDE Table1 DatabaseName D:\ProgHitungBiaya\Data
Name TDaya
TableName Pilih dbDaya.db
Active True
DataAccess DataSource1 DataSet Pilih TDaya
Name dsDaya
DataControls DBGrid1 DataSource Pilih dsDaya
Name DBGridDaya

Standard Button1 Caption &Tambah


Name btTambah
Standard Button2 Caption &Edit
Name btEdit
Standard Button3 Caption &Keluar
Name btKeluar
Standard Button4 Caption &Cari Kode Pemasok
Name btCariKd

Membuat Form KtDaya


1. Bukalah form baru dengan memilih menu File, New lalu Form, sampai muncul sebuah Form kosong bernama Form1. .
2. Setelah itu, klik icon Save All dan simpan dulu pada folder D:\PrakThnAjaran\NO+nomor mahasiswa anda unit-nya dengan nama
UKtDaya.
3. Ubah beberapa properti form dan komponen menurut tabel berikut ini

Tab Komponen Property Nilai


Form1 Caption Data Daya
Name FKtDaya
Standard Edit1 Text dikosongkan

28
Standard Edit2 Text dikosongkan
Standard Edit3 Text dikosongkan
Standard Edit4 Text dikosongkan
Standard Edit5 Text dikosongkan
Standard Edit6 Text dikosongkan
Standard Edit7 Text dikosongkan
Standard Label1 Caption Kode Daya
Standard Label2 Caption Nama Daya
Standard Label3 Caption HP Daya
Standard Label4 Caption Harga Daya
Standard Label5 Caption Umur Ekonomi
Standard Label6 Caption Jam Kerja Per Tahun
Standard Label7 Caption Kecepatan Daya
Additional BitBtn1 Caption &Ok
Kind bkOK
Additional BitBtn2 Caption &Cancel
Kind bkCancel

Membuat Kode Program

1. Klik pada Form1 terus Klik Event pada Object Inspector pilih OnActivate klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan
TDaya.Open.

procedure TFDaya.FormActivate(Sender: TObject);


begin
TDaya.Open;
end;

2. Klik pada Form1 terus Klik Event pada Object Inspector pilih OnClose klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan TDaya.Close.

procedure TFDaya.FormClose(Sender: TObject; var Action: TCloseAction);

29
begin
TDaya.Close;
end;

3. Klik pada RadioGroup1 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut :
Diantara begin dan end ketikkan tulisan seperti di bawah ini.

procedure TFDaya.RadioGroup1Click(Sender: TObject);


begin
if RadioGroup1.ItemIndex = 0 then
TDaya.IndexFieldNames := 'KdDaya'
else
TDaya.IndexFieldNames := 'NmDaya1' ;
end;

4. Klik pada Button1 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

procedure TFDaya.btTambahClick(Sender: TObject);


Var
KdDaya1 :string;
begin
FKtDaya:= TFKtDaya.Create (Self) ;

with FKtDaya do
begin
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '0';
Edit4.Text := '0';
Edit5.Text := '0';
Edit6.Text := '0';
Edit7.Text := '0';

30
Caption := 'Menambah Data';
ActiveControl := Edit1;
end;

FKtDaya.ShowModal;
if (FKtDaya.ModalResult = mrok) then
with TDaya, FKtDaya do
begin
Append;
FieldByName('KdDaya').AsString := Edit1.Text;
FieldByName('NmDaya').AsString := Edit2.Text;
FieldByName('HPDaya').AsFloat := StrToFloat(Edit3.Text);
FieldByName('HrgDaya').AsFloat := StrToFloat(Edit4.Text);
FieldByName('UmurEkonDaya').AsFloat := StrToFloat(Edit5.Text);
FieldByName('JamKerjaPerThDaya').AsFloat := StrToFloat(Edit6.Text);
FieldByName('KecpKerja').AsFloat := StrToFloat(Edit7.Text);

Post;
end;
FKtDaya.Free;

end;

5. Klik pada Button2 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

procedure TFDaya.btEditClick(Sender: TObject);


Var
KdDaya :string;
begin
FKtDaya:= TFKtDaya.Create (Self) ;

with FKtDaya do
begin

31
Edit1.Text := TDaya.Fields[0].AsString;
Edit2.Text := TDaya.Fields[1].AsString;
Edit3.Text := FloatToStr(TDaya.Fields[2].AsFloat);
Edit4.Text := FloatToStr(TDaya.Fields[3].AsFloat);
Edit5.Text := FloatToStr(TDaya.Fields[4].AsFloat);
Edit6.Text := FloatToStr(TDaya.Fields[5].AsFloat);
Edit7.Text := FloatToStr(TDaya.Fields[6].AsFloat);

Caption := 'Mengedit Data';


ActiveControl := Edit1;
end;

FKTDaya.ShowModal;
if (FKTDaya.ModalResult = mrok) then
with TDaya, FKTDaya do
begin
Edit;
FieldByName('KdDaya').AsString := Edit1.Text;
FieldByName('NmDaya').AsString := Edit2.Text;
FieldByName('HPDaya').AsFloat := StrToFloat(Edit3.Text);
FieldByName('HrgDaya').AsFloat := StrToFloat(Edit4.Text);
FieldByName('UmurEkonDaya').AsFloat := StrToFloat(Edit5.Text);
FieldByName('JamKerjaPerThDaya').AsFloat := StrToFloat(Edit6.Text);
FieldByName('KecpKerja').AsFloat := StrToFloat(Edit7.Text);
Post;
end;
FKTDaya.Free;
end;

6. Klik pada Button3 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan FDaya.Close;

procedure TFDaya.btKeluarClick(Sender: TObject);

32
begin
FDaya.close;
end;

7. Klik pada Button4 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

procedure TFDaya.btCariKdClick(Sender: TObject);


begin
{Menggunakan indeks primer}
TDaya.IndexFieldNames := 'KdDaya';
{Mencari data}
if (not TDaya.FindKey([EKdDaya.Text])) then
{Jika data tidak ditemukan tampilkan pesan}
Application.MessageBox ('Data tidak ditemukan',
'Information',MB_OK or MB_ICONINFORMATION);
EKdDaya.Text :='';
ActiveControl := EKdDaya;
end;

8. Klik pada Form terus Klik Event pada Object Inspector pilih OnCreate klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

procedure TFDaya.FormCreate(Sender : Tobject);


begin
KeyPreview := True;
end;

9. Klik pada TDaya trus klik Event pada Object Inspector pilih OnPostError klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

Procedure TFDaya.TDayaPostError(DataSet: TdataSet; E: EdatabaseError, var Action :TdataAction);

Var

33
IDBIError : Integer;

Begin
If (E is EDBEngineError) then
Begin
iDBIError := (E as EDBEngineError).Errors[0]/ErrorCode;
case iDBIError of
eKeyViol :
{Duplikasi Kd Daya}
Begin
MessageDLG(Kode Daya sama,mtWarning,[mbok],0);
Abort;
End;
End;
End;
End;

10. Klik pada Form terus Klik Event pada Object Inspector pilih OnKeyDown klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

procedure TFDaya.FormKeyDown(Sender: TObject; var Key: Word;


Shift: TShiftState);
Var
S : array[0..255] of char;
begin
if (Key = vk_F8) then
Begin
StrPCopy (S, Format ('Yakin Kode Daya %s dihapus ?',
[TDaya.Fields[0].AsString]));
if (Application.MessageBox (S, 'Peringatan',
MB_YESNO or MB_ICONQUESTION) = IDYES) then
{menegaskan pemakai apakah yakin akan menghapus ?}
TDaya.Delete;

34
End;
end;

Coba jalankan program PDaya, masukkan data dibawah ini :


Kalau belum bisa jalan Kilk pada menu Data dan pilih sub menu Daya terus klik dua kali Daya antara begin dan end ketikkan
FDaya.Show;

Kd_Daya Nm_Daya Hp_Daya Hrg_Daya Umur_EkonDaya Jam_KerjaPerThn Kecp_Kerja


TRK001 Traktor Roda 4 90 37800000 10 10000 2.8
TRK002 Traktor Roda 4 120 40850000 15 15000 3.5

Praktikum 2.5.3 Form Data Masukkan Bahan

Nama File : UHrgBahan.Pas

35
Nama File : UKtHrgBahan.Pas

Dalam membuat Form untuk mengisi data Harga Bahan, langka-langkahnya adalah sebagai berikut:

Membuat Form
1. Bukalah form baru dengan memilih menu File, New lalu Application, sampai muncul sebuah Form kosong bernama Form1. .
2. Setelah itu, klik icon Save All dan simpan dulu pada folder D:\PrakThnAjaran\NO+nomor mahasiswa anda unit-nya dengan nama
UHrgBahan dan Project nya dengan nama PHrgBahan.
3. Ubah beberapa properti form dan komponen menurut tabel berikut ini

Tab Komponen Property Nilai Event


Form1 Caption Data Harga Bahan OnActive
Name FHrgBahan OnClose
Standard RadioGroup1 Caption Urutan OnClik

36
Items
ItemIndex 0
Column 2
BDE Table1 DatabaseName DBN+nomor mhs anda
Name TAlsin
TableName Pilih DbHrgBhn.db
Active True
DataAccess DataSource1 DataSet Pilih THrgBhn
Name dsHrgBahan
DataControls DBGrid1 DataSource Pilih dsHrgBahan
Name DBGridHrgBahan
Standard Button1 Caption &Tambah OnClik
Name btTambah
Standard Button2 Caption &Edit OnClik
Name btEdit
Standard Button3 Caption &Keluar OnClik
Name btKeluar
Standard Button4 Caption &Cari Kode Hrg Bahan OnClik
Name btCariKd

Tab Komponen Property Nilai


Form1 Caption Menambah Data
Name FKtHrgBahan
Standard Edit1 Teks Dikosongkan
Standard Edit2 Teks Dikosongkan
Standard Edit3 Teks Dikosongkan
Standard Edit4 Teks Dikosongkan
Standard Label1 Caption Kode Jenis Bahan
Standard Label2 Caption Nama Jenis Bahan
Standard Label3 Caption Nama Bahan
Standard Label4 Caption Harga
Additional BitBtn1 Caption &Ok
Kind bkOK

37
Additional BitBtn2 Caption &Cancel
Kind bkCancel

Membuat Kode Program

1. Klik pada Form1 terus Klik Event pada Object Inspector pilih OnActivate klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan
THrgBahan.Open.

procedure TFHrgBahan.FormActivate(Sender: TObject);


begin
THrgBahan.Open;
end;
2. Klik pada Form1 terus Klik Event pada Object Inspector pilih OnClose klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan THrgBahan.Close.

procedure TFHrgBahan.FormClose(Sender: TObject; var Action: TCloseAction);


begin
THrgBahan.Close;
end;

3. Klik pada RadioGroup1 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut :
Diantara begin dan end ketikkan tulisan seperti di bawah ini.

procedure TFHrgBahan.RadioGroup1Click(Sender: TObject);


begin
if RadioGroup1.ItemIndex = 0 then
THrgBahan.IndexFieldNames := 'KdBahan'
else
THrgBahan.IndexFieldNames := 'JnsBahan' ;
end;

4. Klik pada Button1 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

38
procedure TFHrgBahan.btTambahClick(Sender: TObject);
Var
KdBahan1 :string;
begin
FKtHrgBahan:= TFKtHrgBahan.Create (Self) ;

with FKtHrgbahan do
begin
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '';
Edit4.Text := '';

Caption := 'Menambah Data';


ActiveControl := Edit1;
end;

FKtHrgBahan.ShowModal;
if (FKtHrgBahan.ModalResult = mrok) then
with THrgBahan, FKtHrgBahan do
begin
Append;
FieldByName('KdBahan').AsString := Edit1.Text;
FieldByName('JnsBahan').AsString := Edit2.Text;
FieldByName('NmBahan').AsString := Edit3.Text;
FieldByName('HrgBahan').AsFloat := StrToFloat(Edit4.Text);

Post;
end;
FKtHrgBahan.Free;

end;

39
5. Klik pada Button2 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

procedure TFHrgBahan.btEditClick(Sender: TObject);


Var
KdBahan :string;
begin
FKtHrgBahan:= TFKtHrgBahan.Create (Self) ;

with FKtHrgBahan do
begin
Edit1.Text := THrgBahan.Fields[0].AsString;
Edit2.Text := THrgBahan.Fields[1].AsString;
Edit3.Text := THrgBahan.Fields[2].AsString;
Edit4.Text :=FloatToStr(THrgBahan.Fields[3]).AsFloat;

Caption := 'Mengedit Data';


ActiveControl := Edit1;
end;

FKtHrgBahan.ShowModal;
if (FKtHrgBahan.ModalResult = mrok) then
with THrgBahan, FKtHrgBahan do
begin
Edit;
FieldByName('KdBahan').AsString := Edit1.Text;
FieldByName('JnsBahan').AsString := Edit2.Text;
FieldByName('NmBahan').AsString := Edit3.Text;
FieldByName('HrgBahan').AsFloat :=StrToFloat( Edit4.Text);

Post;
end;
FKtHrgBahan.Free;
end;

40
6. Klik pada Button3 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan FHrgBahan.Close;

procedure TFHrgBahan.btKeluarClick(Sender: TObject);


begin
FHrgBahan .close;
end;

7. Klik pada Button4 terus Klik Event pada Object Inspector pilih OnClik klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan Close;

procedure TFHrgBahan.btCariKdClick(Sender: TObject);


begin
{Menggunakan indeks primer}
THrgBahan.IndexFieldNames := 'KdBahan';
{Mencari data}
if (not THrgBahan.FindKey([EKdHrgBahan.Text])) then
{Jika data tidak ditemukan tampilkan pesan}
Application.MessageBox ('Data tidak ditemukan',
'Information',MB_OK or MB_ICONINFORMATION);
EKdHrgBahan.Text :='';
ActiveControl := EKdHrgBahan;
end;

8. Klik pada Form terus Klik Event pada Object Inspector pilih OnCreate klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

procedure TFHrgBahan.FormCreate(Sender : Tobject);


begin
KeyPreview := True;
end;

41
9. Klik pada THrgBahan trus klik Event pada Object Inspector pilih OnPostError klik dua kali sehingga muncul sebagai berikut :
Diantara begin dan end ketikkan tulisan ;

Procedure TFHrgBahan.THrgBahanPostError(DataSet: TdataSet; E: EdatabaseError, var Action :TdataAction);

Var
IDBIError : Integer;

Begin
If (E is EDBEngineError) then
Begin
iDBIError := (E as EDBEngineError).Errors[0]/ErrorCode;
case iDBIError of
eKeyViol :
{Duplikasi Kd Bahan}
Begin
MessageDLG(Kode Bahan sama,mtWarning,[mbok],0);
Abort;
End;
End;
End;
End;

10. Klik pada Form terus Klik Event pada Object Inspector pilih OnKeyDown klik dua kali sehingga muncul sebagai berikut : Diantara
begin dan end ketikkan tulisan ;

procedure TFHrgBahan.FormKeyDown(Sender: TObject; var Key: Word;


Shift: TShiftState);
Var
S : array[0..255] of char;
begin
if (Key = vk_F8) then
Begin

42
StrPCopy (S, Format ('Yakin Kode Bahan %s dihapus ?',
[THrgBahan.Fields[0].AsString]));
if (Application.MessageBox (S, 'Peringatan',
MB_YESNO or MB_ICONQUESTION) = IDYES) then
{menegaskan pemakai apakah yakin akan menghapus ?}
THrgBahan.Delete;
End;
end;

Coba jalankan program PHrgBahan, masukkan data dibawah ini :


Kalau belum bisa jalan Kilk pada menu Data dan pilih sub menu HargaBahan terus klik dua kali Pemasok antara begin dan end
ketikkan FHrgBahan.Show;

KdBahan JnsBahan NmBahan HrgBahan


JB001 Pelumas Olie 15000
JB002 Bahan Bakar Solar 4500
JB003 Bahan Bakar Bensin 6500
JB003 Biaya Tenaga Upah 50000
JB004 Biaya Operator Upah 100000
JB005 Pajak dan Asuransi Pajak dan Asuransi 0,03
JB006 Bunga Bank Bunga 0,12
JB007 Keuntungan Keuntungan 0,10

43