Nano.M.H

Mikrokontroller

Tugas

unit Unit1;

interface

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

type
TForm1 = class(TForm)
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
Button1: TButton;
ADOQuery1: TADOQuery;
Label1: TLabel;
ednip: TEdit;
Label2: TLabel;
ednama: TEdit;
Label3: TLabel;
edalamat1: TEdit;
Label4: TLabel;

Label5: TLabel;
ednpm: TEdit;
DBGrid1: TDBGrid;
btntambahdata: TButton;
btnhapusdata: TButton;
btnbatalkan: TButton;
btnsimpandata: TButton;
btnlaporan: TButton;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOTable1id: TWideStringField;
ADOTable1nama: TWideStringField;
ADOTable1alamat: TWideStringField;
ADOTable1tanggal: TWideStringField;
ADOTable1jam: TIntegerField;
edip: TEdit;
ednama1: TEdit;
edalamat1: TEdit;
edtanggal: TEdit;
edjam: TEdit;
procedure FormCreate(Sender: TObject);
procedure btntambahdataClick(Sender: TObject);
procedure btnbatalkanClick(Sender: TObject);
procedure ednipKeyPress(Sender: TObject; var Key: Char);
procedure btnsimpandataClick(Sender: TObject);
procedure cbojabatanChange(Sender: TObject);
procedure btnhapusdataClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure FormDestroy(Sender: TObject);
procedure btnlaporanClick(Sender: TObject);
private
procedure tampilanawal(Sender: TObject);
procedure warnatedit(Sender: TObject);
public
{ Public declarations }
end;

var
FrmPegawai: TFrmPegawai;
si : shortint;
KomponenControl : TComponent;

implementation
uses
XPMan, ULaporan;

{$R *.dfm}

procedure TFrmPegawai.tampilanawal(Sender: TObject);
begin

// kosongkan semua data TEDIT, Kode ini berlaku untuk Tcombobox maupun yang lain
for si :=0 to ComponentCount-1 do
begin
if Components[si] is TEdit then TEdit(Components[si]).Clear;
if Components[si] is TEdit then TEdit(Components[si]).Enabled := False;
if Components[si] is TButton then TButton(Components[si]).Enabled := true;
end;

// tambah data item comboboxe
with cbojabatan do begin
AddItem(‘Manager’, cbojabatan);
AddItem(‘Administrasi’, cbojabatan);
AddItem(‘Karyawan’, cbojabatan);
Style := csDropDownList;
ItemIndex := 0;
end;

cbojabatan.Enabled := false;
btnsimpandata.Enabled := false;
btnbatalkan.Enabled := false;
DBGrid1.Enabled := true;
end;

// doactivecontrol digunakan untuk merubah warna komponen tedit secara otomatis
// ketika sedang aktif

procedure TFrmPegawai.warnatedit(Sender : Tobject);
begin
if Assigned(KomponenControl) then begin
// mengubah warna background menjadi putih
(KomponenControl as TEdit).Color := clWhite;
// mengubah warna font menjadi hitam
(KomponenControl as TEdit).Font.Color := clBlack;
end;

if ActiveControl is TEdit then begin
// mengubah warna background menjadi biru langit
(ActiveControl as TEdit).Color := clSkyBlue;
// mengubah warna background menjadi kuning
(ActiveControl as TEdit).Font.Color := clYellow;
KomponenControl := ActiveControl as TEdit;
end;
end;

procedure TFrmPegawai.FormCreate(Sender: TObject);
var
alamatdb, namatabel : WideString;
begin
// Manipulasi cursors crSQLWait agar tidak tampil
Screen.Cursors[crSQLWait] := Screen.Cursors[crDefault];
// batasi penginputan ednip hanya sampai 5 karakter
ednip.MaxLength := 5;

tampilanawal(Sender);
// mengaktifkan procedure doactive control
Screen.OnActiveControlChange := warnatedit;

// atur koneksi pada ADOConnection
// script ini berguna untuk mengatur koneksi database pada aplikasi
// agar aplikasi dapat memproses database yang dipilih di komputer
// manapun tanpa harus mempunyai path/alamat database yang sama.

alamatdb := ExtractFilePath(Application.ExeName) + ‘data.mdb’;
with ADOConnection1 do begin
Connected := False;
LoginPrompt := False;
Mode := cmShareDenyNone;
ConnectionString := ‘Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=ikc;Data Source=’ +
alamatdb + ‘;Persist Security Info=False’;
end;

ADOConnection1.Connected := True;
namatabel := ‘TDKaryawan’;
ADOTable1.TableName := namatabel;
ADOTable1.Open;
FrmPegawai.Caption := ‘Data Pegawai’;
end;

procedure TFrmPegawai.btntambahdataClick(Sender: TObject);
begin
for si :=0 to ComponentCount-1 do
begin
if Components[si] is TEdit then TEdit(Components[si]).Clear;
if Components[si] is TButton then TButton(Components[si]).Enabled := false;
end;
ednip.Enabled := true;
btnsimpandata.Enabled := true; btnbatalkan.Enabled := true;
DBGrid1.Enabled := false;
ednip.SetFocus;
end;

procedure TFrmPegawai.btnbatalkanClick(Sender: TObject);
begin
tampilanawal(sender);
end;

procedure TFrmPegawai.ednipKeyPress(Sender: TObject; var Key: Char);
var
Cur : Currency;
CariData : boolean;
begin
// cek jika bukan tombol enter yang ditekan jangan merespon
if not (key=chr(13)) then exit;
// cek jika panjang teks kurang dari 5 maka tampilkan pesan
if Length(ednip.Text) < 5 then begin
Application.MessageBox(‘Pengisian data harus 5 numerik’, ‘Informasi’,
MB_OK or MB_ICONINFORMATION);
exit;
end;

// waktunya mengecek apakah isi ednip Numerik atau bukan
// dimulai disini
with ADOTable1 do begin
try
Cur := StrToCurr(ednip.Text);
except
Application.MessageBox(‘NIP harus numerik’, ‘Informasi’,
MB_OK or MB_ICONINFORMATION);
exit;
end;
end;
// akhir pengecekan numerik

// cari data jika ada tampilkan datanya

with ADOQuery1 do begin
close;
sql.clear;
sql.add(‘select * from TDKaryawan where nip like ‘+
QuotedStr(ednip.Text));
open;
end;

if ADOQuery1.RecordCount > 0 then begin
ednip.SelectAll; ednip.SetFocus;
ednip.text := ADOQuery1['nip'];
ednama.Text := ADOQuery1['nama'];
edalamat.Text := ADOQuery1['alamat'];
edupah.Text := ADOQuery1['gajih'];
cbojabatan.Text := ADOQuery1['jabatan'];
exit;
end;

// selesai cek data

// jika data tidak ada yang sama
ednama.Enabled := true;
edalamat.Enabled := true;
edupah.Text := ’1500000′;
cbojabatan.Enabled := true;
ednama.SetFocus;
end;

procedure TFrmPegawai.cbojabatanChange(Sender: TObject);
begin
case cbojabatan.ItemIndex of
0 : edupah.Text := ’1500000′;
1 : edupah.Text := ’1000000′;
else
edupah.Text := ’750000′;
end;
end;

procedure TFrmPegawai.btnsimpandataClick(Sender: TObject);
var
s: string;
begin
with ADOTable1 do begin
Append;
FieldByName(‘nip’).AsString := ednip.Text;
FieldByName(‘nama’).AsString := ednama.Text;
FieldByName(‘alamat’).AsString := edalamat.Text;
FieldByName(‘gajih’).AsInteger := StrToInt(edupah.Text);
FieldByName(‘jabatan’).AsString := cbojabatan.Text;
Post;
end;

///tampilkan konfirmasi pengisian data kembali
if (Application.MessageBox(‘data telah berhasil di simpan, isi lagi’,
‘Konfirmasi’, MB_YESNO or MB_ICONQUESTION)=idNO) then begin
tampilanawal(sender);
edupah.Text := ’1500000′;
end else
btntambahdataClick(Sender);
end;

procedure TFrmPegawai.btnhapusdataClick(Sender: TObject);
begin
if (Application.MessageBox(‘anda yakin akan menghapus data ini’,
‘Konfirmasi Penghapusan’, MB_YESNO or MB_ICONQUESTION)=idNO) then begin
Abort;
end else
ADOTable1.Delete;
end;

procedure TFrmPegawai.FormDestroy(Sender: TObject);
begin
Screen.OnActiveControlChange := nil;
end;

procedure TFrmPegawai.DBGrid1CellClick(Column: TColumn);
begin
ednip.Text := ADOTable1nip.Value;
ednama.Text := ADOTable1nama.Value;
edalamat.Text := ADOTable1alamat.Value;
edupah.Text := ADOTable1gajih.AsString;
if ADOTable1jabatan.Value = ‘Manager’ then
cbojabatan.ItemIndex := 0
else if ADOTable1jabatan.Value = ‘Administrasi’ then
cbojabatan.ItemIndex := 1
else
cbojabatan.ItemIndex := 2;

end;

procedure TFrmPegawai.btnlaporanClick(Sender: TObject);
begin
Form1.ShowModal;
end;

end.

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.