0% found this document useful (0 votes)
49 views16 pages

Koding Acara 2

This document contains code for a program to manage land clearing (alsin) data in Indonesian. It includes code for forms to display, add, edit and search alsin records stored in a database table. Functions are defined to open and close the form, handle radio button clicks to change the sorting of records, and button clicks to add, edit and exit records. Error handling is also defined. The form contains fields and a grid to display the alsin data fields.

Uploaded by

Rio Hatta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views16 pages

Koding Acara 2

This document contains code for a program to manage land clearing (alsin) data in Indonesian. It includes code for forms to display, add, edit and search alsin records stored in a database table. Functions are defined to open and close the form, handle radio button clicks to change the sorting of records, and button clicks to add, edit and exit records. Error handling is also defined. The form contains fields and a grid to display the alsin data fields.

Uploaded by

Rio Hatta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Praktikum 2.2.

1 Membuat Splash

Kode Program : implementation

unit USplash; uses ULogin;


{$R *.dfm}
interface
procedure TFSplash.FormCreate(Sender:
TObject);
uses
begin
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms, Timer1.Enabled := True;
Dialogs, jpeg, ExtCtrls; X := 1;
end;
type
TFSplash = class(TForm) procedure TFSplash.Timer1Timer(Sender:
TObject);
Timer1: TTimer;
begin
Image1: TImage;
X := X + 1;
procedure FormCreate(Sender: TObject);
if X = 7 then
procedure Timer1Timer(Sender:
TObject); begin
private FLogin.Show;
X : Integer; FSplash.Destroy;
{ Private declarations } end;
public end;
{ Public declarations }
end; end.

var
FSplash: TFSplash;
Praktikum 2.3.1 Membuat Login

Kode Program :
end;
unit ULogin;
var
interface FLogin: TFLogin;

uses implementation
Windows, Messages, SysUtils, Variants, uses UMenu;
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
{$R *.dfm}

type
procedure TFLogin.BitBtn1Click(Sender:
TFLogin = class(TForm) TObject);
Bevel1: TBevel; begin
Label1: TLabel; If (Edit1.Text = 'public') then
Label2: TLabel; Begin
Label3: TLabel; With FMenu do
Edit1: TEdit; Begin
Edit2: TEdit; Alsin1.Enabled := False;
BitBtn1: TBitBtn; Daya1.Enabled := False;
BitBtn2: TBitBtn; DaftarHarga1.Enabled := False;
procedure BitBtn1Click(Sender: PerhitunganBiaya1.Enabled := False;
TObject);
FMenu.Show;
procedure BitBtn2Click(Sender:
TObject); End;

private End

{ Private declarations } Else

public If (Edit1.Text = 'operator') and (Edit2.Text


= '12345') then
{ Public declarations }
Begin Data1: TMenuItem;
FMenu.Show; Alsin1: TMenuItem;
End; Daya1: TMenuItem;
end; DaftarHarga1: TMenuItem;
procedure TFLogin.BitBtn2Click(Sender: Proses1: TMenuItem;
TObject);
PerhitunganBiaya1: TMenuItem;
begin
HasilPerhitungan1: TMenuItem;
Application.Terminate;
end; ampilHasilPerhitunganBiaya1:
TMenuItem;
Laporan1: TMenuItem;
end.
Keluar1: TMenuItem;
DaftarAlsin1: TMenuItem;
Praktikum 2.4.1 Membuat Menu
DaftarDaya1: TMenuItem;
DaftarHarga2: TMenuItem;
Kode Program :
DaftarHasilPengolahanTanah1:
TMenuItem;
unit UMenu; private
{ Private declarations }
interface public
{ Public declarations }
uses end;
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
var
Dialogs, Menus, jpeg, ExtCtrls, StdCtrls;
FMenu: TFMenu;

type
implementation
TFMenu = class(TForm)
MainMenu1: TMainMenu;
{$R *.dfm}
Label1: TLabel;
Image1: TImage;
end.
Praktikum 2.5.1 Program Alsin

Kode Program : procedure btEditClick(Sender: TObject);


unit UAlsin; procedure btKeluarClick(Sender:
TObject);
procedure btCariKdClick(Sender:
interface TObject);
procedure FormCreate(Sender: TObject);
uses procedure TAlsinPostError(DataSet:
Windows, Messages, SysUtils, Variants, TDataSet; E: EDatabaseError;
Classes, Graphics, Controls, Forms, var Action: TDataAction);
Dialogs, StdCtrls, Grids, DBGrids, DB, procedure FormKeyDown(Sender:
DBTables, ExtCtrls; TObject; var Key: Word;
Shift: TShiftState);
type private
TFAlsin = class(TForm) { Private declarations }
RadioGroup1: TRadioGroup; public
TAlsin: TTable; { Public declarations }
dsAlsin: TDataSource; end;
DBGridAlsin: TDBGrid; var
btTambah: TButton; FAlsin: TFAlsin;
btEdit: TButton; Const
btKeluar: TButton; EkeyViol = 9729;
btCariKd: TButton; EMin = 9730;
EkdAlsin: TEdit; ERequiredField = 9732;
procedure FormActivate(Sender: EadaDetil = 9734;
TObject);
implementation
procedure FormClose(Sender: TObject;
var Action: TCloseAction); Uses UktAlsin;
procedure RadioGroup1Click(Sender: {$R *.dfm}
TObject);
procedure btTambahClick(Sender:
TObject);
procedure TFAlsin.FormActivate(Sender: begin
TObject);
Edit1.Text := '';
begin
Edit2.Text := '';
TAlsin.Open;
Edit3.Text := '0';
end;
Edit4.Text := '0';
procedure TFAlsin.FormClose(Sender:
TObject; var Action: TCloseAction); Edit5.Text := '0';

begin Edit6.Text := '0';

TAlsin.Close; Edit7.Text := '0';

end; Edit8.Text := '0';


Edit9.Text := '0';

procedure
TFAlsin.RadioGroup1Click(Sender: Caption := 'Menambah Data';
TObject);
ActiveControl := Edit1;
begin
end;
if RadioGroup1.ItemIndex = 0 then
TAlsin.IndexFieldNames := 'KdAlsin'
FKtAlsin.ShowModal;
else
TAlsin.IndexFieldNames := 'NmAlsin1';
if (FKtAlsin.ModalResult = mrok) then
end;
with TAlsin, FKtAlsin do
begin
procedure TFAlsin.btTambahClick(Sender:
TObject); Append;
FieldByName('KdAlsin').AsString :=
Edit1.Text;
Var
FieldByName('NmAlsin').AsString :=
JmlTapak1 : integer; Edit2.Text;
LbrPerTapak1, LbrKerjaAlsin1 : real; FieldByName('JmlTapak').AsInteger :=
begin StrToInt(Edit3.Text);

FKtAlsin:= TFKtAlsin.Create (Self); JmlTapak1 :=


FieldByName('JmlTapak').AsInteger;
FieldByName('LbrPerTapak').AsFloat :=
with FKtAlsin do StrToFloat(Edit4.Text);
LbrPerTapak1 := Edit2.Text := TAlsin.Fields[1].AsString;
FieldByName('LbrPerTapak').AsFloat;
Edit3.Text :=
LbrKerjaAlsin1 := JmlTapak1 * IntToStr(TAlsin.Fields[2].AsInteger);
LbrPerTapak1;
Edit4.Text :=
FieldByName('LbrKerja').AsFloat := FloatToStr(TAlsin.Fields[3].AsFloat);
LbrKerjaAlsin1;
Edit5.Text :=
FieldByName('HrgAlsin').AsFloat := FloatToStr(TAlsin.Fields[4].AsFloat);
StrToFloat(Edit6.Text);
Edit6.Text :=
FloatToStr(TAlsin.Fields[5].AsFloat);
FieldByName('UmurEkonAlsin').AsFloat :=
StrToFloat(Edit7.Text); Edit7.Text :=
FloatToStr(TAlsin.Fields[6].AsFloat);
FieldByName('EffKerja').AsFloat :=
StrToFloat(Edit8.Text); Edit8.Text :=
FloatToStr(TAlsin.Fields[7].AsFloat);

FieldByName('JamKerjaPerThAlsin').AsFlo Edit9.Text :=
at := StrToFloat(Edit9.Text); FloatToStr(TAlsin.Fields[8].AsFloat);

Post; Caption := 'Mengedit Data';

end; ActiveControl := Edit1;

FKtAlsin.Free; end;

end; FKtAlsin.ShowModal;
if (FKtAlsin.ModalResult = mrok) then

procedure TFAlsin.btEditClick(Sender: with TAlsin, FKtAlsin do


TObject); begin
Var Edit;
JmlTapak1 : integer; FieldByName('KdAlsin').AsString :=
LbrPerTapak1, LbrKerjaAlsin1 : real; Edit1.Text;

begin FieldByName('NmAlsin').AsString :=
Edit2.Text;
FKtAlsin:=TFKtAlsin.Create (Self);
FieldByName('JmlTapak').AsInteger :=
with FKtAlsin do StrToInt(Edit3.Text);
begin JmlTapak1 :=
FieldByName('JmlTapak').AsInteger;
Edit1.Text := TAlsin.Fields[0].AsString;
FieldByName('LbrPerTapak').AsFloat := TAlsin.IndexFieldNames := 'KdAlsin';
StrToFloat(Edit4.Text);
{Mencari data}
LbrPerTapak1 :=
FieldByName('LbrPerTapak').AsFloat; if (not TAlsin.FindKey([EKdAlsin.Text]))
then
LbrKerjaAlsin1 := JmlTapak1 *
LbrPerTapak1; {Jika data tidak ditemukan tampilkan
pesan}
FieldByName('LbrKerjaAlsin').AsFloat
:= LbrKerjaAlsin1; Application.MessageBox ('Data tidak
ditemukan',
FieldByName('HrgAlsin').AsFloat :=
StrToFloat(Edit6.Text); 'Information', MB_OK or
MB_ICONINFORMATION);

FieldByName('UmurEkonAlsin').AsFloat := EKdAlsin.Text := '';


StrToFloat(Edit7.Text); ActiveControl := EKdAlsin;
FieldByName('EffKerja').AsFloat := end;
StrToFloat(Edit8.Text);

FieldByName('JamKerjaPerThAlsin').AsFlo procedure TFAlsin.FormCreate(Sender:


at := StrToFloat(Edit9.Text); TObject);
begin

Post; KeyPreview := True;

end; end;

FKtAlsin.Free;
end; procedure
TFAlsin.TAlsinPostError(DataSet:
TDataSet; E: EDatabaseError;
procedure TFAlsin.btKeluarClick(Sender: var Action: TDataAction);
TObject);
begin
Var
FAlsin.close;
IDBIError : Integer;
end;

Begin
procedure TFAlsin.btCariKdClick(Sender:
TObject); If (E is EDBEngineError) then

begin Begin

{Menggunakan indeks primer} iDBIError := (E as


EDBEngineError).Errors[0].ErrorCode;
case iDBIError of
eKeyViol : end.
{Duplikasi Kd Alat} Praktikum 2.5.2 Program Daya
Begin
MessageDLG('Kode Alat sama', Kode Program :
mtWarning,[mbok],0);
Abort;
unit UDaya;
End;
End;
interface
End;
end;
uses
Windows, Messages, SysUtils, Variants,
procedure TFAlsin.FormKeyDown(Sender: Classes, Graphics, Controls, Forms,
TObject; var Key: Word;
Dialogs, StdCtrls, Grids, DBGrids, DB,
Shift: TShiftState); DBTables, ExtCtrls;
Var
S : array [0..255] of char; type
begin TFDaya = class(TForm)
if (Key = vk_F8) then RadioGroup1: TRadioGroup;
Begin EkdDaya: TEdit;
StrPCopy (S, Format ('Yakin Kode Alat TDaya: TTable;
%s dihapus ?',
dsDaya: TDataSource;
[TAlsin.Fields[0].AsString]));
DBGridDaya: TDBGrid;
if (Application.MessageBox (S,
'Peringatan', btTambah: TButton;

MB_YESNO or btEdit: TButton;


MB_ICONQUESTION) = IDYES) then btKeluar: TButton;
{menegaskan pemakai apakah yakin btCariKd: TButton;
akan menghapus ?}
procedure FormActivate(Sender:
TAlsin.Delete; TObject);
End; procedure FormClose(Sender: TObject;
end; var Action: TCloseAction);
procedure RadioGroup1Click(Sender: uses UKtDaya;
TObject);
procedure btTambahClick(Sender:
TObject); {$R *.dfm}

procedure btEditClick(Sender: TObject);


procedure btKeluarClick(Sender: procedure TFDaya.FormActivate(Sender:
TObject); TObject);

procedure btCariKdClick(Sender: begin


TObject); TDaya.Open;
procedure FormCreate(Sender: TObject); end;
procedure TDayaPostError(DataSet:
TDataSet; E: EDatabaseError;
procedure TFDaya.FormClose(Sender:
var Action: TDataAction); TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: begin
TObject; var Key: Word;
TDaya.Close;
Shift: TShiftState);
end;
private
{ Private declarations }
procedure
public TFDaya.RadioGroup1Click(Sender:
{ Public declarations } TObject);

end; begin
if RadioGroup1.ItemIndex = 0 then

var TDaya.IndexFieldNames := 'KdDaya'

FDaya: TFDaya; else

Const TDaya.IndexFieldNames := 'NmDaya1';

EkeyViol = 9729; end;

EMin = 9730;
ERequiredField = 9732; procedure TFDaya.btTambahClick(Sender:
TObject);
EadaDetil = 9734;
Var
KdDaya1 :string;
implementation
begin
FKtDaya:= TFKtDaya.Create (Self);
FieldByName('JamKerjaPerThDaya').AsFlo
at := StrToFloat(Edit6.Text);
with FKtDaya do FieldByName('KecpKerja').AsFloat :=
begin StrToFloat(Edit7.Text);

Edit1.Text := '';
Edit2.Text := ''; Post;

Edit3.Text := '0'; end;

Edit4.Text := '0'; FKtDaya.Free;

Edit5.Text := '0';
Edit6.Text := '0'; end;

Edit7.Text := '0';
procedure TFDaya.btEditClick(Sender:
TObject);
Caption := 'Menambah Data';
Var
ActiveControl := Edit1;
KdDaya :string;
end;
begin
FKtDaya:= TFKtDaya.Create (Self);
FKtDaya.ShowModal;
if (FKtDaya.ModalResult = mrok) then
with FKtDaya do
with TDaya, FKtDaya do
begin
begin
Edit1.Text := TDaya.Fields[0].AsString;
Append;
Edit2.Text := TDaya.Fields[1].AsString;
FieldByName('KdDaya').AsString :=
Edit1.Text; Edit3.Text :=
FloatToStr(TDaya.Fields[2].AsFloat);
FieldByName('NmDaya').AsString :=
Edit2.Text; Edit4.Text :=
FloatToStr(TDaya.Fields[3].AsFloat);
FieldByName('HPDaya').AsFloat :=
StrToFloat(Edit3.Text); Edit5.Text :=
FloatToStr(TDaya.Fields[4].AsFloat);
FieldByName('HrgDaya').AsFloat :=
StrToFloat(Edit4.Text); Edit6.Text :=
FloatToStr(TDaya.Fields[5].AsFloat);
FieldByName('UmurEkonDaya').AsFloat
:= StrToFloat(Edit5.Text);
Edit7.Text := procedure TFDaya.btKeluarClick(Sender:
FloatToStr(TDaya.Fields[6].AsFloat); TObject);
begin
Caption := 'Mengedit Data'; FDaya.close;
ActiveControl := Edit1; end;
end;
procedure TFDaya.btCariKdClick(Sender:
TObject);
FKtDaya.ShowModal;
begin
if (FKtDaya.ModalResult = mrok) then
{Menggunakan indeks primer}
with TDaya, FKTDaya do
TDaya.IndexFieldNames := 'KdDaya';
begin
{Mencari data}
Edit;
if (not TDaya.FindKey([EKdDaya.Text]))
FieldByName('KdDaya').AsString := then
Edit1.Text;
{Jika data tidak ditemukan tampilkan
FieldByName('NmDaya').AsString := pesan}
Edit2.Text;
Application.MessageBox ('Data tidak
FieldByName('HPDaya').AsFloat := ditemukan',
StrToFloat(Edit3.Text);
'Information', MB_OK or
FieldByName('HrgDaya').AsFloat := MB_ICONINFORMATION);
StrToFloat(Edit4.Text);
EKdDaya.Text :='';
FieldByName('UmurEkonDaya').AsFloat := ActiveControl := EKdDaya;
StrToFloat(Edit5.Text);
end;

FieldByName('JamKerjaPerThDaya').AsFlo
at := StrToFloat(Edit6.Text); procedure TFDaya.FormCreate(Sender:
FieldByName('KecpKerja').AsFloat := TObject);
StrToFloat(Edit7.Text); begin
Post; KeyPreview := True;
end; end;
FKtDaya.Free;
end; procedure
TFDaya.TDayaPostError(DataSet:
TDataSet; E: EDatabaseError;
var Action: TDataAction); StrPCopy (S, Format ('Yakin Kode Daya
%s dihapus ?',
[TDaya.Fields[0].AsString]));
Var
if (Application.MessageBox (S,
IDBIError : Integer; 'Peringatan',
MB_YESNO or MB_ICONQUESTION)
begin = IDYES) then

If (E is EDBEngineError) then {menegaskan pemakai apakah yakin akan


menghapus ?}
Begin
TDaya.Delete;
iDBIError := (E as
EDBEngineError).Errors[0].ErrorCode; End;
case iDBIError of end;

eKeyViol :
{Duplikasi Kd Daya} end.

Begin
MessageDLG('Kode Daya sama', Praktikum 2.5.3 Program Harga Bahan
mtWarning,[mbok],0);
Abort;
Kode Program :
End;
End; unit UHrgBahan;
End;
end; interface

procedure TFDaya.FormKeyDown(Sender: uses


TObject; var Key: Word;
Windows, Messages, SysUtils, Variants,
Shift: TShiftState); Classes, Graphics, Controls, Forms,
Var Dialogs, StdCtrls, Grids, DBGrids, DB,
S : array [0..255] of char; DBTables, ExtCtrls;

begin
if (Key = vk_F8) then type

Begin TFHrgBahan = class(TForm)


RadioGroup1: TRadioGroup;
dsHrgBahan: TDataSource; end;
DBGridHrgBahan: TDBGrid;
btTambah: TButton; var
btEdit: TButton; FHrgBahan: TFHrgBahan;
btKeluar: TButton;
btCariKd: TButton; Const
EKdHrgBahan: TEdit; EkeyViol = 9729;
THrgBahan: TTable; EMin = 9730;
procedure FormActivate(Sender: ERequiredField = 9732;
TObject);
EadaDetil = 9734;
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure RadioGroup1Click(Sender: implementation
TObject);
procedure btTambahClick(Sender: uses UKtHrgBahan;
TObject);
procedure btEditClick(Sender: TObject);
{$R *.dfm}
procedure btKeluarClick(Sender:
TObject);
procedure btCariKdClick(Sender: procedure
TFHrgBahan.FormActivate(Sender:
TObject); TObject);
procedure FormCreate(Sender: TObject); begin
procedure THrgBahanPostError(DataSet: THrgBahan.Open;
TDataSet; E: EDatabaseError;
end;
var Action: TDataAction);
procedure TFHrgBahan.FormClose(Sender:
procedure FormKeyDown(Sender: TObject; var Action: TCloseAction);
TObject; var Key: Word;
begin
Shift: TShiftState);
THrgBahan.Close;
private
end;
{ Private declarations }
procedure
public TFHrgBahan.RadioGroup1Click(Sender:
{ Public declarations } TObject);
begin with THrgBahan, FKtHrgBahan do
if RadioGroup1.ItemIndex = 0 then begin
THrgBahan.IndexFieldNames := Append;
'KdBahan'
FieldByName('KdBahan').AsString :=
else Edit1.Text;
THrgBahan.IndexFieldNames := FieldByName('JnsBahan').AsString :=
'JnsBahan'; Edit2.Text;
end; FieldByName('NmBahan').AsString :=
Edit3.Text;
FieldByName('HrgBahan').AsFloat :=
procedure StrToFloat(Edit4.Text);
TFHrgBahan.btTambahClick(Sender:
TObject);
Var Post;
KdBahan1 :string; end;
begin FKtHrgBahan.Free;
FKtHrgBahan:= TFKtHrgBahan.Create
(Self);
end;

with FKtHrgBahan do
procedure TFHrgBahan.btEditClick(Sender:
begin TObject);
Edit1.Text := ''; Var
Edit2.Text := ''; KdBahan :string;
Edit3.Text := ''; begin
Edit4.Text := ''; FKtHrgBahan:= TFKtHrgBahan.Create
(Self);

Caption := 'Menambah Data';


with FKtHrgBahan do
ActiveControl := Edit1;
begin
end;
Edit1.Text :=
THrgBahan.Fields[0].AsString;
FKtHrgBahan.ShowModal; Edit2.Text :=
if (FKtHrgBahan.ModalResult = mrok) THrgBahan.Fields[1].AsString;
then
Edit3.Text := FHrgBahan.close;
THrgBahan.Fields[2].AsString;
end;
Edit4.Text :=
FloatToStr(THrgBahan.Fields[3].AsFloat);
procedure
TFHrgBahan.btCariKdClick(Sender:
Caption := 'Mengedit Data'; TObject);
ActiveControl := Edit1; begin
end; {Menggunakan indeks primer}
THrgBahan.IndexFieldNames :=
'KdBahan';
FKtHrgBahan.ShowModal;
{Mencari data}
if (FKtHrgBahan.ModalResult = mrok)
then if (not
THrgBahan.FindKey([EKdHrgBahan.Text])
with THrgBahan, FKtHrgBahan do ) then
begin {Jika data tidak ditemukan tampilkan
Edit; pesan}

FieldByName('KdBahan').AsString := Application.MessageBox ('Data tidak


Edit1.Text; ditemukan',

FieldByName('JnsBahan').AsString := 'Information', MB_OK or


Edit2.Text; MB_ICONINFORMATION);

FieldByName('NmBahan').AsString EKdHrgBahan.Text :='';


:= Edit3.Text; ActiveControl := EKdHrgBahan;
FieldByName('HrgBahan').AsFloat := end;
StrToFloat(Edit4.Text);

procedure TFHrgBahan.FormCreate(Sender:
Post; TObject);
end; begin
FKtHrgBahan.Free; KeyPreview := True;
end; end;

procedure procedure
TFHrgBahan.btKeluarClick(Sender: TFHrgBahan.THrgBahanPostError(DataSet:
TObject); TDataSet;
begin
E: EDatabaseError; var Action: if (Key = vk_F8) then
TDataAction);
Begin
StrPCopy (S, Format ('Yakin Kode Bahan
Var %s dihapus ?',
IDBIError : Integer; [THrgBahan.Fields[0].AsString]));
if (Application.MessageBox (S,
'Peringatan',
begin
MB_YESNO or MB_ICONQUESTION)
If (E is EDBEngineError) then = IDYES) then
Begin {menegaskan pemakai apakah yakin akan
iDBIError := (E as menghapus ?}
EDBEngineError).Errors[0].ErrorCode; THrgBahan.Delete;
case iDBIError of End;
eKeyViol : end;
{Duplikasi Kd Bahan}
Begin end.
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

You might also like