Anda di halaman 1dari 10

ContohAplikasiDatabaseMahasiswa

Tabel

Form

ListingProgram
unit untDataMhs;
interface
uses
Windows, Messages, strUtils, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, WinSkinData, jpeg,
ComCtrls, DB, DBTables;
type
TfrmDataMhs = class(TForm)
Panel1: TPanel;
Label3: TLabel;
edtNim: TEdit;
Label4: TLabel;
edtNama: TEdit;
Label5: TLabel;
Label6: TLabel;
btnSimpan: TBitBtn;
btnBatal: TBitBtn;
Panel2: TPanel;
btnTambah: TBitBtn;
btnEdit: TBitBtn;
btnHapus: TBitBtn;
btnKeluar: TBitBtn;
Panel3: TPanel;
btnCariData: TBitBtn;
edtCari: TEdit;
Panel4: TPanel;
DBGrid1: TDBGrid;
lblJudul: TLabel;
lblKet: TLabel;
Timer1: TTimer;
Timer2: TTimer;
SkinData1: TSkinData;
lblJurusan: TLabel;
edtTmpLahir: TEdit;
Label2: TLabel;
dtpTglLahir: TDateTimePicker;
Label8: TLabel;
edtAlamat: TEdit;
Label9: TLabel;
Label10: TLabel;
cboCari: TComboBox;
Label11: TLabel;
tbMhs: TTable;
dsMahasiswa: TDataSource;
btnCari: TBitBtn;
btnLaporan: TBitBtn;
Label1: TLabel;
lblJenjang: TLabel;
Label12: TLabel;
lblP_Studi: TLabel;
cboAgama: TComboBox;
Label7: TLabel;
rbtLaki: TRadioButton;

rbtPerempuan: TRadioButton;
procedure RefreshDatabase;
procedure Blank;
procedure TextActive;
procedure TextDeactive;
procedure SaveRecord;
procedure FormActivate(Sender: TObject);
procedure btnTambahClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnHapusClick(Sender: TObject);
procedure btnSimpanClick(Sender: TObject);
procedure btnBatalClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure edtNamaEnter(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure cboCariChange(Sender: TObject);
procedure edtCariChange(Sender: TObject);
procedure edtCariKeyPress(Sender: TObject; var Key: Char);
procedure btnCariDataClick(Sender: TObject);
procedure edtNimKeyPress(Sender: TObject; var Key: Char);
procedure btnKeluarClick(Sender: TObject);
private
{ Private declarations }
public
Tanya : integer;
Button : string;
Blink : Boolean;
{ Public declarations }
end;
var
frmDataMhs: TfrmDataMhs;
implementation
{$R *.dfm}
procedure TfrmDataMhs.RefreshDatabase;
begin
tbMhs.Close;
tbMhs.Open;
tbMhs.Filtered := False;
end;
procedure TfrmDataMhs.Blank;
begin
edtNim.Clear;
edtNama.Clear;
edtTmpLahir.Clear;
edtAlamat.Clear;
lblJurusan.Caption := 'xxxxxxxxxxxxxxx';
lblJenjang.Caption := 'xxxxxxxxxxxxxxx';
lblP_Studi.Caption := 'xxxxxxxxxxxxxxx';

cboAgama.ItemIndex := -1;
rbtLaki.Checked := False;
rbtLaki.Checked := False;
edtCari.Clear;
cboCari.ItemIndex := -1;
end;
procedure TfrmDataMhs.TextActive;
begin
edtNim.Enabled := True;
edtNama.Enabled := True;
rbtLaki.Enabled := True;
rbtPerempuan.Enabled := True;
cboAgama.Enabled := True;
edtTmpLahir.Enabled := True;
dtpTglLahir.Enabled := True;
edtAlamat.Enabled := True;
edtNim.SetFocus;
btnSimpan.Enabled := True;
btnBatal.Enabled := True;
end;
procedure TfrmDataMhs.TextDeactive;
begin
edtNim.Enabled := False;
edtNama.Enabled := False;
rbtLaki.Enabled := False;
rbtPerempuan.Enabled := False;
cboAgama.Enabled := False;
dtpTglLahir.Enabled := False;
edtAlamat.Enabled := False;
btnSimpan.Enabled := False;
btnBatal.Enabled := False;
lblKet.Visible := False;
Timer1.Enabled := False;
end;
procedure TfrmDataMhs.SaveRecord;
begin
tbMhs['Nim'] := edtNim.Text;
tbMhs['Nama'] := edtNama.Text;
if rbtLaki.Checked then
tbMhs['J_Kelamin'] := 'L'
else
tbMhs['J_Kelamin'] := 'P';
tbMhs['Tempat_Lahir'] := edtTmpLahir.Text;
tbMhs['Tgl_Lahir'] := dtpTglLahir.Date;
tbMhs['Alamat'] := edtAlamat.Text;
tbMhs['Agama'] := cboAgama.Text;
tbMhs['Jurusan'] := lblJurusan.Caption;
tbMhs['Jenjang'] := lblJenjang.Caption;
tbMhs['P_Studi'] := lblP_Studi.Caption;

tbMhs.Post;
RefreshDatabase;
end;
procedure TfrmDataMhs.FormActivate(Sender: TObject);
begin
Blank;
TextDeactive;
RefreshDatabase;
lblKet.Visible := False;
end;
procedure TfrmDataMhs.btnTambahClick(Sender: TObject);
begin
Button := 'T';
Blank;
TextActive;
end;
procedure TfrmDataMhs.btnEditClick(Sender: TObject);
begin
Button := 'U';
Blank;
lblKet.Visible := True;
lblKet.Caption := 'klik record yang akan diedit';
Timer1.Enabled := True;
RefreshDatabase;
end;
procedure TfrmDataMhs.btnHapusClick(Sender: TObject);
begin
Button := 'H';
Blank;
lblKet.Visible := True;
lblKet.Caption := 'klik record yang akan dihapus';
Timer1.Enabled := True;
RefreshDatabase;
end;
procedure TfrmDataMhs.btnSimpanClick(Sender: TObject);
begin
if Button = 'T' then
begin
if (edtNim.Text = '') or (edtNama.Text = '') or (lblJurusan.Caption =
'xxxxxxxxxxxxxxx') or (edtTmpLahir.Text = '') or (edtAlamat.Text = '') or
(cboAgama.Text = '') then
begin
Application.MessageBox('semua data harus diisi lengkap','Error',MB_OK +
MB_ICONERROR);
edtNim.SetFocus;
end

else
begin
if tbMhs.Locate('Nim',edtNim.Text,[]) then
begin
Application.MessageBox('ditemukan nim mahasiswa yang sama','Error',MB_OK
+ MB_ICONERROR);
edtNim.SetFocus;
end
else
begin
tbMhs.Append;
SaveRecord;
Tanya := Application.MessageBox('data tersimpan' + chr(10) + 'tambah
data lagi','Question',MB_YESNO + MB_ICONQUESTION);
if Tanya = 6 then
btnTambah.Click
else
btnBatal.Click;
end;
end;
end;
if Button = 'U' then
begin
if (edtNim.Text = '') or (edtNama.Text = '') or (lblJurusan.Caption =
'xxxxxxxxxxxxxxx') or (edtTmpLahir.Text = '') or (edtAlamat.Text = '') or
(cboAgama.Text = '') then
begin
Application.MessageBox('semua data harus diisi lengkap','Error',MB_OK +
MB_ICONERROR);
edtNim.SetFocus;
end
else
begin
tbMhs.Edit;
SaveRecord;
Tanya := Application.MessageBox('data tersimpan' + chr(10) + 'edit data
lagi','Question',MB_YESNO + MB_ICONQUESTION);
if Tanya = 6 then
btnEdit.Click
else
btnBatal.Click;
end;
end;
end;
procedure TfrmDataMhs.btnBatalClick(Sender: TObject);
begin
frmDataMhs.Activate;
Button := 'N';
end;
procedure TfrmDataMhs.DBGrid1CellClick(Column: TColumn);
begin
if Button = 'U' then

begin
if tbMhs.IsEmpty then
begin
Application.MessageBox('tidak ada data yang dapat diedit','Error',MB_OK +
MB_ICONERROR);
btnBatal.Click;
end
else
begin
TextActive;
edtNim.Text := tbMhs['Nim'];
edtNama.Text := tbMhs['Nama'];
if tbMhs['J_Kelamin'] = 'L' then
rbtLaki.Checked
else
rbtPerempuan.Checked;
edtTmpLahir.Text := tbMhs['Tempat_Lahir'];
dtpTglLahir.Date := tbMhs['Tgl_Lahir'];
edtAlamat.Text := tbMhs['Alamat'];
cboAgama.Text := tbMhs['Agama'];
lblJurusan.Caption := tbMhs['Jurusan'];
lblJenjang.Caption := tbMhs['Jenjang'];
lblP_Studi.Caption := tbMhs['P_Studi'];
edtNim.Enabled := False;
edtNama.SetFocus;
end;
end;
if Button = 'H' then
begin
if tbMhs.IsEmpty then
begin
Application.MessageBox('tidak ada data yang dapat dihapus','Error',MB_OK +
MB_ICONERROR);
btnBatal.Click;
end
else
begin
Tanya := Application.MessageBox('anda yakin akan menghapus data
ini?','Confirmation',MB_YESNO + MB_ICONQUESTION);
if Tanya = 6 then
begin
tbMhs.Delete;
RefreshDatabase;
end
else
btnBatal.Click;
end;
end;
end;
procedure TfrmDataMhs.edtNamaEnter(Sender: TObject);
begin
if Button = 'T' then
begin

if tbMhs.Locate('Nim',edtNim.Text,[]) then
begin
Application.MessageBox('ditemukan kode menu yang sama','Happy Family Error',MB_OK + MB_ICONERROR);
edtNim.SetFocus;
end;
end;
end;
procedure TfrmDataMhs.Timer1Timer(Sender: TObject);
begin
if lblKet.Left <= 500 then
lblKet.Left := lblKet.Left + 1
else
lblKet.Left := 8;
end;
procedure TfrmDataMhs.Timer2Timer(Sender: TObject);
begin
Blink := not Blink;
if Blink then
lblJudul.Font.Color := clBlue
else
lblJudul.Font.Color := clRed;
end;
procedure TfrmDataMhs.cboCariChange(Sender: TObject);
begin
if cboCari.ItemIndex = 0 then
edtCari.MaxLength := 6
else if cboCari.ItemIndex = 1 then
edtCari.MaxLength := 50
else if cboCari.ItemIndex = 2 then
edtCari.MaxLength := 30;
edtCari.Clear;
edtCari.SetFocus;
end;
procedure TfrmDataMhs.edtCariChange(Sender: TObject);
begin
btnCari.Click;
end;
procedure TfrmDataMhs.edtCariKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
btnCari.Click;
if key = #27 then
begin
edtCari.Clear;
tbMhs.Filtered := False;
end;
end;
procedure TfrmDataMhs.btnCariDataClick(Sender: TObject);

begin
tbMhs.Filtered := False;
if edtCari.Text = '' then
tbMhs.Filtered := False
else if cboCari.ItemIndex = 0 then
begin
tbMhs.Filter := 'Nim =' + QuotedStr(edtCari.Text + '*');
tbMhs.Filtered := True;
end
else if cboCari.ItemIndex = 1 then
begin
tbMhs.Filter := 'Nama =' + QuotedStr(edtCari.Text + '*');
tbMhs.Filtered := True;
end
else if cboCari.ItemIndex = 2 then
begin
tbMhs.Filter := 'Jurusan =' + QuotedStr(edtCari.Text + '*');
tbMhs.Filtered := True;
end;
end;
procedure TfrmDataMhs.edtNimKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
if Length(edtNim.Text) = 9 then
begin
if MidStr(edtNim.Text, 3, 2) = '10' then
begin
lblJurusan.Caption := 'Manajemen Informatika';
lblJenjang.Caption := 'D-3';
lblP_Studi.Caption := 'Manajemen Informatika';
edtNama.SetFocus;
end
else if MidStr(edtNim.Text, 3, 2) = '11' then
begin
lblJurusan.Caption := 'Manajemen Informatika';
lblJenjang.Caption := 'S1';
lblP_Studi.Caption := 'Sistem Informasi';
edtNama.SetFocus;
end
else if MidStr(edtNim.Text, 3, 2) = '21' then
begin
lblJurusan.Caption := 'Teknik Informatika';
lblJenjang.Caption := 'S1';
lblP_Studi.Caption := 'Teknik Informatika';
edtNama.SetFocus;
end
else
begin
Application.MessageBox('nim yang diinputkan salah','Error',MB_OK +
MB_ICONERROR);
lblJurusan.Caption := 'xxxxxxxxxxxxxxx';
edtNim.SetFocus;
end;
end

else
begin
Application.MessageBox('nim yang diinputkan kurang dari 9
karakter','Error',MB_OK + MB_ICONERROR);
edtNim.SetFocus;
end;
end;
end;
procedure TfrmDataMhs.btnKeluarClick(Sender: TObject);
begin
Tanya := Application.MessageBox('yakin keluar dari program?', 'Konfirmasi', MB_YESNO
+ MB_ICONQUESTION);
if Tanya = 6 then
begin
Application.MessageBox('Terima Kasih......', 'Byee.. Byee..', MB_OK +
MB_ICONINFORMATION);
Application.Terminate;
end;
end;
end.

Anda mungkin juga menyukai