You are on page 1of 23

BAB IV

HASIL
A. Membuat File Database
B. Membuat Program Splash
Praktikum 2.2.1 Membuat Splash

Gambar 4.1 Praktikum 2.2.1


unit USplash;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls;

type
TFSplash = class(TForm)
Timer1: TTimer;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
X: Integer;
{ Private declarations }
public
{ Public declarations }
end;

var
FSplash: TFSplash;

implementation

uses Ulogin;

{$R *.dfm}

procedure TFSplash.FormCreate(Sender: TObject);


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

procedure TFSplash.Timer1Timer(Sender: TObject);


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

C. Membuat Program Login


Praktikum 2.3.1 Membuat Login

Gambar 4.2 Praktikum 2.3.1


unit Ulogin;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TFlogin = class(TForm)
Bevel1: TBevel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Flogin: TFlogin;

implementation

uses Umenu;

{$R *.dfm}

procedure TFlogin.BitBtn1Click(Sender: TObject);


begin
if(Edit1.Text='public')then
Begin
with Fmenu do
Begin

Fmenu.show;
end;
end
Else
if (Edit1.Text = 'operator') and (Edit2.Text = '12345') then
Begin
FMenu.Show;
end;
end;

procedure TFlogin.BitBtn2Click(Sender: TObject);


begin
Application.Terminate;
end;

end.

D. Membuat File Databse


Praktikum 2.4.1 Membuat Menu

Gambar 4.3 Praktikum 2.4.1


unit Umenu;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, Menus;

type
TFMenu = class(TForm)
MainMenu1: TMainMenu;
Data1: TMenuItem;
Alsin1: TMenuItem;
Daya1: TMenuItem;
DaftarHarga1: TMenuItem;
Proses1: TMenuItem;
PerhitunganBiaya1: TMenuItem;
HasilPerhitungan1: TMenuItem;
ampilHasilPerhitunganBiaya1: TMenuItem;
Laporan1: TMenuItem;
DaftarAlsin1: TMenuItem;
DaftarDaya1: TMenuItem;
DaftarHarga2: TMenuItem;
DaftarHasil1: TMenuItem;
PengolahanTanah1: TMenuItem;
Keluar1: TMenuItem;
Label1: TLabel;
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
end;

var
FMenu: TFMenu;

implementation

{$R *.dfm}
end.
E. Membuat Program
Praktikum 2.5.1 Membuat Form Data Alsin

Gambar 4.4 Praktikum

Gambar 4.5 Praktikum 2.5.1


unit Ualsin;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, ExtCtrls, Grids, DBGrids;

type
TFAlsin = class(TForm)
TAlsin: TTable;
DBGridAlsin: TDBGrid;
RadioGroup1: TRadioGroup;
dsAlsin: TDataSource;
btTambah: TButton;
btEdit: TButton;
btKeluar: TButton;
btCariKd: TButton;
EKdAlsin: TEdit;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RadioGroup1Click(Sender: TObject);
procedure btEditClick(Sender: TObject);

procedure btTambahClick(Sender: TObject);


procedure btKeluarClick(Sender: TObject);
procedure btCariKdClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TAlsinPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);

private
{ Private declarations }
public
{ Public declarations }
end;

var
FAlsin: TFAlsin;
Const
EkeyViol =9729;
EMin =9730;
ErequiredField = 9732;
EadaDetil =9734;

implementation

Uses UktAlsin

{$R *.dfm} ;

procedure TFAlsin.FormActivate(Sender: TObject);


begin
Talsin.Open;
end;

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


begin
TAlsin.Close;
end;

procedure TFAlsin.RadioGroup1Click(Sender: TObject);

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

procedure TFAlsin.btTambahClick(Sender: TObject);


Var
JmlTapak : integer;
LbrPerTapak1, LbrKerja : 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';
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);
JmlTapak :=FieldByName('JmlTapak').Asinteger;
FieldByName('LbrPerTapak').AsFloat := StrToFloat(Edit4.Text);
LbrPerTapak1 :=FieldByName('LbrPerTapak').AsFloat;
LbrKerja :=JmlTapak*LbrPerTapak1;
FieldByName('LbrKerja').AsFloat := LbrKerja;
FieldByName('HrgAlsin').AsFloat :=StrToFloat(Edit6.Text);
FieldByName('UmurEkonAlsin').AsFloat :=StrToFloat(Edit7.Text);
FieldByName('EffKerja').AsFloat :=StrToFloat(Edit8.Text);
FieldByName('JumlahKerjaPerThn').AsFloat :=StrToFloat(Edit9.Text);
Post;
end;
FKtAlsin.Free;
end;

procedure TFAlsin.btEditClick(Sender: TObject);


Var
JmlTapak1 : integer;
LbrPerTapak1, LbrKerja1 : 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;
LbrKerja1 := JmlTapak1 * LbrPerTapak1;
FieldByName('LbrKerja').AsFloat := LbrKerja1;
FieldByName('HrgAlsin').AsFloat := StrToFloat(Edit6.Text);
FieldByName('UmurEkonAlsin').AsFloat := StrToFloat(Edit7.Text);
FieldByName('EffKerja').AsFloat := StrToFloat(Edit8.Text);
FieldByName('JumlahKerjaPerThn').AsFloat := StrToFloat(Edit9.Text);

Post;
end;
FKtAlsin.Free;
end;

procedure TFAlsin.btKeluarClick(Sender: TObject);


begin
FAlsin.Close;
end;
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;
end;

procedure TFAlsin.FormCreate(Sender: TObject);


begin
KeyPreview := True;
end;

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;
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 dohapus ?',
[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;

end.

Praktikum 2.5.2 Form Data Masukkan Daya

Gambar 4.6 Praktikum


2.5.2
Gambar 4.7 Praktikum 2.5.2
unit UDaya;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, ExtCtrls;

type
TFdaya = class(TForm)
RadioGroup1: TRadioGroup;
EkdDaya: TEdit;
TDaya: TTable;
dsDaya: TDataSource;
DBGridDaya: TDBGrid;
btTambah: TButton;
btEdit: TButton;
btKeluar: TButton;
btCariKid: TButton;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RadioGroup1Click(Sender: TObject);
procedure btTambahClick(Sender: TObject);
procedure btEditClick(Sender: TObject);
procedure btKeluarClick(Sender: TObject);
procedure btCariKidClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TDayaPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fdaya: TFdaya;
const
EKeyViol=9729;
Emin=9730;
ErequiredField =9732;
EAdaDetil =9734;

implementation

uses UKtDaya;

{$R *.dfm}

procedure TFdaya.FormActivate(Sender: TObject);


begin
TDaya.Open;
end;

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


begin
TDaya.Close;
end;

procedure TFdaya.RadioGroup1Click(Sender: TObject);


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

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';

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;

procedure TFdaya.btEditClick(Sender: TObject);


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

with FKtDaya do
begin
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;

procedure TFdaya.btKeluarClick(Sender: TObject);


begin
FDaya.Close;
end;

procedure TFdaya.btCariKidClick(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;

procedure TFdaya.FormCreate(Sender: TObject);


begin
KeyPreview := True;
end;

procedure TFdaya.TDayaPostError(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 Daya}
Begin
MessageDLG('Kode Daya sama',mtWarning,[mbok],0);
Abort;
End;
End;
End;
end;

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


Shift: TShiftState);
Var
S : array[0..255] of char;
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;
End;

end.

Praktikum 2.5.3 Form Data Masukkan Bahan

Gambar 4.8

Gambar 4.9

unit UHrgBahan;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, DBTables;

type
TFHrgBahan = class(TForm)
RadioGroup1: TRadioGroup;
THrgBahan: TTable;
dsHrgBahan: TDataSource;
DBGridHrgBahan: TDBGrid;
btTambah: TButton;
btEdit: TButton;
btKeluar: TButton;
btCariKd: TButton;
EKdHrgBahan: TEdit;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RadioGroup1Click(Sender: TObject);
procedure btTambahClick(Sender: TObject);
procedure btEditClick(Sender: TObject);
procedure btKeluarClick(Sender: TObject);
procedure btCariKdClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure THrgBahanPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FHrgBahan: TFHrgBahan;
const
EkeyViol =9729;
EMin =9730;
ERequiredField =9732;
EadaDetil =9734;

implementation

{$R *.dfm}

uses UKtHrgBahan;

procedure TFHrgBahan.FormActivate(Sender: TObject);


begin
THrgBahan.Open;
end;

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


begin
THrgBahan.Close;
end;

procedure TFHrgBahan.RadioGroup1Click(Sender: TObject);


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

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('KdBahan').AsString := Edit3.Text;
FieldByName('HrgBahan').AsFloat := StrToFloat(Edit4.Text);

Post;
end;
FKtHrgBahan.Free;

end;

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;

procedure TFHrgBahan.btKeluarClick(Sender: TObject);


begin
FHrgBahan.Close;
end;

procedure TFHrgBahan.btCariKdClick(Sender: TObject);


begin
THrgBahan.IndexFieldNames := 'KdBahan';
if (not THrgBahan.FindKey([EKdHrgBahan.Text])) then
Application.MessageBox ('Data tidak ditemukan',
'Information',MB_OK or MB_ICONINFORMATION);
EKdHrgBahan.Text :='';
ActiveControl := EKdHrgBahan;
end;

procedure TFHrgBahan.FormCreate(Sender: TObject);


begin
KeyPreview := True;
end;

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 :
Begin
MessageDLG('Kode Bahan Sama',mtWarning,[mbok],0);
Abort;
end;
end;
end;
end;

procedure TFHrgBahan.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 Bahan %s dihapus ?',
[THrgBahan.Fields[0].AsString]));
if (Application.MessageBox (S,'Peringatan',
MB_YESNO or MB_ICONQUESTION) = IDYES) then
THrgBahan.Delete;
end;
end;

end.

You might also like