Anda di halaman 1dari 28

41 | Su t o n o

PERTEMUA 3
PEMROGRAMAN DESTOP

Pokok Bahasan
a. Membuat Menu Utama
b. Membuat Login Aplikasi
c. component DateTimePicker,Timer,ProgressBar
d. Memanggil Data Pada table Lain dengan perulangan
e. Penggunaan component AdoTable,membuat Prosedur
f. Pencarian Menggunakan Kata Kunci, fungsi IntToStr dan fungsi Random
Kasus Umum
Buat datamaster yang meliputi
1. Master Data vendor
2. Master Data Item dimana satu item bisa di miliki oleh 2 vendor atau satu item bisa memiliki
2 atau lebih system pembayaran, dam dalam data master item memuat informasi Stok
keseluruhan dan stok by vendor atau stok by status payment
3. Master Group Item

A. Membuat Struktur Menu


1. Pada Component Pallete Pilih Standart kemudian clik MainMenu(Menus) setelah itu
clik pada Halaman Home
2. Double Clik Pada MainMenu1 di Halaman Home
3. Pada Halaman Home.MainMenu1 ubah Caption Menjadi &File
4. Masih Pada Halaman Home.MainMenu1 aktifkan kotak kosong persegi panjang Dan
Pada Caption seperti Di bawah Ini

Double Klik Pada Menu Exit ketik Sintak Sebagai Berikut: untuk keluar aplikasi

Application.Terminate;

Close (Tanda X ) Halaman Tersebut.

Pemrograman Destop Univeritas Suryakancana Cianjur


42 | Su t o n o

Sehingga setelah di Kompiler akan tampil seperti di bawah ini

Cara Menambahkan Status Bar dan Timer


1. Tambahkan Status Bar dan Timer pada Form Utama
2. ada status bar tambahkan 4 buah panel, cara nya klik 2x pada statusbar lalu klik add new
(ins) sebanyak 4 kali. Lalu atur width nya menjadi 150.
3. Pada timer ubah interval nya menjadi 500
4. Selanjutnya klik 2x pada timer dan masukan koding berikut :
StatusBar1.Panels[0].Text:='Tanggal : '+DateToStr(date);
StatusBar1.Panels[1].Text:='Jam : '+TimeToStr(time);
Statusbar1.Panels[2].Text:='Status : Connected';
Statusbar1.Panels[3].Text:='Login us : Sutono';

B. Membuat Form Login


Kasus:
 Buat form untuk membuat user dengan pass, dimana kita bisa mengetahui kapan user
tersebut di tulis dalam database dan di ubah dalam database, kemudian beri kode jika
kode 0=admin,1-Staff EDP,2-Staff Merchandaiser dengan nama table TKunci,jika
user sudah ada muncul peringatan user sudah ada.
 Buatlah sebuah form Authorized / login dimana user memasukan user dan pass, untuk
memindahkan cursor dari text user ke pass harus dengan kondisi Enter, jika user dan
pass sama dengan dalam database maka muncul form utama , jika tidak muncul
peringatan salah pass atau user.

Pemrograman Destop Univeritas Suryakancana Cianjur


43 | Su t o n o

Design table

Skenario Design Form


1. Untuk memindahkan cursor pada kolom UID dan kolom Nama User harus dengan Action
Enter
2. Ada konfirmasi pass , jika kolom pass tidak sama dengan kolom pass konfirmasi tidak
sama system akan memberikan peringatan atau tikda bisa melakukan simpan data
3. Pada LOV bagian sudah otomatis di simpan pada Hard Code (adalah praktik
pengembangan perangkat lunak yang menyisipkan data secara langsung ke dalam kode
sumber program atau objek yang dapat dieksekusi lainnya, sebagai lawan dari
memperoleh data dari sumber eksternal atau menghasilkannya pada saat run-time.)
4. Pada tombol simpan ada pengecekan validasi jika setiap kolom belum lengkap di isi ada
pesan bawaha inputan belum lengkap
5. Tombol simpan sudah ada cek validasi jika data sudah ada maka lakukan action tambah
data jika data sudah ada maka lakukan Ubah Data
6. Pada tombol hapus , hapus data sesuai dengan data yang tertera di kolom UID

Pemrograman Destop Univeritas Suryakancana Cianjur


44 | Su t o n o

Komponen Properties Nilai


ADOConnection1 ConectionString Provider=MSDASQL.1;Persist Security
Info=False;User ID=root;Data
Source=MySqlCon;Initial
Catalog=db_destop;
LoginPromt False
Connected True
ADOQuery1 Sql Select *from tlogin
Connection ADOConnection1
Active True
DataSource Dataset AdoQuery1
DataGrid1 DataSource DataSource1

Saat Event Enter pada Txt_UID


if key=#13 then
txt_Pass1.SetFocus;

Pengecekan Konfirmasi Pass


procedure TForm_MaintenenceUser.txt_Pass1KeyPress(Sender: TObject;
var Key: Char);
VAR pass,pass1 :STRING;

begin
pass:=txt_Pass.Text;
pass1:=txt_Pass1.Text;

if key=#13 then
begin
if (pass)=(pass1) then
Lov_Bagian.SetFocus
else
begin
ShowMessage('Pass Tidak Sama Dengan konfirmasi Pass');
txt_Pass.SetFocus;
end;
end;
end;

Pemrograman Destop Univeritas Suryakancana Cianjur


45 | Su t o n o

Tombol Simpan

procedure TForm_MaintenenceUser.cmd_SimpanClick(Sender: TObject);


//'*memberikan Variabel*'/
var user,nama,pass1,pass2,sts,sts1,TglCrete : string;

begin
//'*inisialisai variabel*'/
user:= txt_UID.Text;
nama:=txt_User.Text;
pass1:=txt_Pass.Text;
pass2:=txt_Pass1.Text;
sts:=LeftStr(Lov_Bagian.Text,1);
sts1:='1';
TglCrete:=FormatDateTime('yyyy-mm-dd',date);

if
(txt_UID.Text<>'')and(txt_User.Text<>'')and(txt_Pass.Text<>'')and(txt_Pass1.Text<>'')
then
begin
//'*query data*'/
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tlogin where
UID='+QuotedStr(txt_UID.Text);
ADOQuery1.Active:=True;

//'*Cek Data*'/
if ADOQuery1.RecordCount>0 then
begin
MessageDlg('Data Sudah Ada, Apakah Mau Di Update',mtWarning,[mbOK],0);
if Application.MessageBox('Apakah Data Akan DI
Perbaharui','Informasi',MB_YESNO or MB_ICONINFORMATION)=IDYES then
begin
//'*Update Data*'/
with ADOQuery1 do
begin
Active:=False;
SQL.Clear;
SQL.Text:='Update tlogin set
nama="'+txt_User.Text+'",pass="'+txt_Pass1.Text+'",
kode="'+sts+'",keterangan="'+Lov_Bagian.Text+'",date_Modify="'+
FormatDateTime('yyyy-mm-dd',date) +'" where UID='+QuotedStr(txt_UID.Text);
ExecSQL;

MessageDlg('Data Sudah Di Perbaharui',mtInformation,[mbOK],0);


txt_UID.Text:='';
txt_User.Text:='';
txt_Pass.Text:='';
txt_Pass1.Text:='';

end;
//'*Tampilkan Semua Data*'/
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tlogin';

Pemrograman Destop Univeritas Suryakancana Cianjur


46 | Su t o n o

ADOQuery1.Active:=True;

end
else
exit;
end
else
//'*Insert Data*'/
with ADOQuery1 do
begin
Active:=False;
SQL.Clear;
SQL.Text:='insert into
Tlogin(UID,nama,pass,status,kode,keterangan,date_create,date_Modify)values('+QuotedS
tr(txt_UID.Text)+

','+QuotedStr(txt_User.Text)+','+QuotedStr(txt_Pass1.Text)+','+QuotedStr(sts1)+','+Quote
dStr(sts)+','+QuotedStr(Lov_Bagian.Text)+
',"'+ formatdatetime('yyyy-mm-dd',Tanggal_Create.Date) +'","'+
formatdatetime('yyyy-mm-dd',Tanggal_Create.Date)+'")';
ExecSQL;

MessageDlg('Data Sudah Di Simpan',mtInformation,[mbOK],0);


txt_UID.Text:='';
txt_User.Text:='';
txt_Pass.Text:='';
txt_Pass1.Text:='';
end;

//'*Tampilkan Semua Data*'/


ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tlogin';
ADOQuery1.Active:=True;
end
else
begin
MessageDlg('Ada Parameter Yang Kurang',mtWarning,[mbOK],0);
exit;
end;
end;

Coding Pada Event Form On Created


procedure TForm_MaintenenceUser.FormCreate(Sender: TObject);
begin
Lov_Bagian.Items.Add('0-Admin');
Lov_Bagian.Items.Add('1-Staff EDP');
Lov_Bagian.Items.Add('2-Staff Merchandaiser');
end;

Pemrograman Destop Univeritas Suryakancana Cianjur


47 | Su t o n o

Tombol Hapus
procedure TForm_MaintenenceUser.cmd_hapusClick(Sender: TObject);
begin

if (txt_UID.Text<>'')and(txt_User.Text<>'')and(txt_Pass.Text<>'')and(txt_Pass1.Text<>'') then
begin
if messagedlg('Apakah User Dengan Kode '''+ txt_UID.Text
+'''...?',mtinformation,[mbyes,mbno],0)=mryes then
begin
ADOQuery1.Delete;
//'*Tampilkan Semua Data*'/
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tlogin';
ADOQuery1.Active:=True;

MessageDlg('Data Sudah Di Hapus',mtInformation,[mbOK],0);


txt_UID.Text:='';
txt_User.Text:='';
txt_Pass.Text:='';
txt_Pass1.Text:='';
end
else
exit;
end
else
begin
MessageDlg('Ada Parameter Yang Kurang Lengkap',mtWarning,[mbOK],0);
exit;
end;
end;

Tombol Clear
procedure TForm_MaintenenceUser.Button2Click(Sender: TObject);
begin
txt_UID.Text:='';
txt_User.Text:='';
txt_Pass.Text:='';
txt_Pass1.Text:='';
txt_UID.SetFocus;
end;

C. Membuat Form Login


Skenario Design Form
1. Buat design form untuk form login dimana setiap kali user memasukan user dan pass
cursor akan pindah jika di menekan tombol tab atau enter
2. Lakukan pengecekan pada table login , jika user dan pass sama dengan yang ada di table
login maka login berhasil
3. Sertakan pada form login progress bar untuk melakukan proses pengecekan user pada
table login
4. Jika user dan pass sama dengan database panggil menu utama

Pemrograman Destop Univeritas Suryakancana Cianjur


48 | Su t o n o

Komponen Properties Nilai


ADOConnection1 ConectionString Provider=MSDASQL.1;Persist Security
Info=False;User ID=root;Data
Source=MySqlCon;Initial
Catalog=db_destop;
LoginPromt False
Connected True
ADOQuery1 Sql Select *from tlogin
Timer1 Enable False
ProgressBar1 Visible False

Pada Tombol LOGIN


procedure TForm_Login.cmd_LoginClick(Sender: TObject);
begin
Bar1.Visible:=True;
Timer1.Enabled:=True;
end;

Pemrograman Destop Univeritas Suryakancana Cianjur


49 | Su t o n o

Pada Timer1
procedure TForm_Login.Timer1Timer(Sender: TObject);
begin
timer1.Interval := 10;
bar1.Position := bar1.Position +1;
if bar1.Position = 100 then
begin
bar1.Position := 0;
timer1.Enabled := false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from TLOGIN where UID='+
QuotedStr(txt_Login.Text)+' and Pass='+QuotedStr(txt_Pass.Text));
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then
begin
Application.MessageBox('Maap, Username tersebut tidak ada !!!',
'Informasi',MB_OK or MB_ICONINFORMATION);
exit;
end
else
begin
showmessage ('Login Aplikasi Berhasil !');
Form_Utama.Show;
Hide;
exit;
end
end;
end;

D. Membuat Form Vendor


Skenario Design Form
1. Buatlan design form dengan yang menginformasikan data sebuah vendor pada perusahaan
retail
2. Setiap text / edit masukan key=#13 untuk memindahkan cursor pada tek berikutknya
3. Validasi kode vendor jika kode vendor panjang nya tidak 5 digit maka akan keluar
peringan informasi validasi kurang lengkap.

Pemrograman Destop Univeritas Suryakancana Cianjur


50 | Su t o n o

4. Pada kololom kode vendor jika data sudah ada lakukan validasi untuk menampilkan data
5. Masukan Adoquery dan Adotable untuk operasi masukan data, ubah data.
6. Pada tombol hapus jika kode vendor masih kosong , validasi akan memberikan informasi
ada parameter yang kurang buat menghapus data
7. Pada tombol Find munculkan Form Baru untuk melakukan pencarian By Kode Vendor
dan By Nama Vendor dengan Kata Kunci
8. Keluarkan Report untuk mencetak Data Vendor

Komponen Properties Nilai


ADOConnection1 ConectionString Provider=MSDASQL.1;Persist Security
Info=False;User ID=root;Data
Source=MySqlCon;Initial
Catalog=db_destop;
LoginPromt False
Connected True
ADOQuery1 Sql select *from tSupplier
Active True
AdoTable1 TableName Tsupplier
Active True

Adotable Merupakan komponen yang dapat digunakan untuk mengakses data pada table
tunggal dari suatu database.

Pemrograman Destop Univeritas Suryakancana Cianjur


51 | Su t o n o

Design Table

Pemrograman Destop Univeritas Suryakancana Cianjur


52 | Su t o n o

Pada Event OnKeyPress Txt_KodeV


procedure TForm_Supplier.txt_KodeVKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then

if (txt_KodeV.Text='') then
begin
MessageDlg('Ada Paramter Yang Kurang',mtWarning,[mbOK],0);
txt_KodeV.SetFocus;
end
else
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tSupplier where
SupplierId='+QuotedStr(txt_KodeV.Text) ;
ADOQuery1.Open;
if ADOQuery1.RecordCount=0 then
begin
MessageDlg('Kode Vendor Tidak Di Temukan',mtWarning,[mbOK],0);
txt_Nama.SetFocus;
end
else
begin
txt_Nama.Text:=ADOQuery1['NamaSupplier'];
txt_Person.Text:=ADOQuery1['KontakPerson'];
txt_Alamat.Text:=ADOQuery1['Alamat'];
txt_Telp.Text:=ADOQuery1['Telepon'];
txt_FAX.Text:=ADOQuery1['Fax'];
TXT_email.Text:=ADOQuery1['Email'];
txt_komisi.Text:=ADOQuery1['Komisi'];
end;

end;

end;

Pemrograman Destop Univeritas Suryakancana Cianjur


53 | Su t o n o

Membuat Prosedur Bersih adalah sebuah fungsi atau prosedur baru untuk memberiskan
area form dari inputan user gunakan CTR+SHIFT+C untuk menggenerit prosedur baru pada
Delphi

procedure TForm_Supplier.Bersih;
begin
txt_KodeV.Text:='';
txt_Nama.Text:='';
txt_Person.Text:='';
txt_Alamat.Text:='';
txt_Telp.Text:='';
txt_FAX.Text:='';
TXT_email.Text:='';
txt_komisi.Text:='';
end;

Coding PAda Tombol Simpan


procedure TForm_Supplier.cmd_saveClick(Sender: TObject);
var Tgl_Opn :string;
begin
Tgl_Opn:= formatdatetime('yyyy-mm-dd',Date);

if Length(txt_KodeV.Text)<>5 then
begin
ShowMessage('Panjang Kode Vendor Harus 5 Digir');
exit;
end;
if
(txt_KodeV.Text<>'')and(txt_Nama.Text<>'')and(txt_Person.Text<>'')and(txt_Alamat.Te
xt<>'')and(txt_Telp.Text<>'')and(txt_FAX.Text<>'')and(TXT_email.Text<>'')and(txt_ko
misi.Text<>'') then
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;

Pemrograman Destop Univeritas Suryakancana Cianjur


54 | Su t o n o

ADOQuery1.SQL.Text:='select *from tSupplier where


SupplierId='+QuotedStr(txt_KodeV.Text) ;
ADOQuery1.Open;

if ADOQuery1.RecordCount=0 then
begin
ADOTable1.Open;
ADOTable1.Append;
ADOTable1['SupplierID']:=txt_KodeV.Text;
ADOTable1['NamaSupplier']:=txt_Nama.Text;
ADOTable1['KontakPerson']:=txt_Person.Text;
ADOTable1['Alamat']:=txt_Alamat.Text;
ADOTable1['Telepon']:=txt_Telp.Text;
ADOTable1['FAX']:=txt_FAX.Text;
ADOTable1['Email']:=TXT_email.Text;
ADOTable1['Komisi']:=txt_komisi.Text;
ADOTable1['Date_crt']:= Tgl_Opn;
ADOTable1['Date_Modify']:=Tgl_Opn;
ADOTable1.Post;
ShowMessage('Data Sudah Di Simpan');
bersih; //*-- memangil Funsgi*/
end
else
begin
ADOTable1.Edit;
ADOTable1['NamaSupplier']:=txt_Nama.Text;
ADOTable1['KontakPerson']:=txt_Person.Text;
ADOTable1['Alamat']:=txt_Alamat.Text;
ADOTable1['Telepon']:=txt_Telp.Text;
ADOTable1['FAX']:=txt_FAX.Text;
ADOTable1['Email']:=TXT_email.Text;
ADOTable1['Komisi']:=txt_komisi.Text;
ADOTable1['Date_crt']:= Tgl_Opn;
ADOTable1['Date_Modify']:=Tgl_Opn;

Pemrograman Destop Univeritas Suryakancana Cianjur


55 | Su t o n o

ADOTable1.Post;
ShowMessage('Data Sudah Di Ubah');
bersih; /**Memanggil Prosedur */
end;
end
else
begin
ShowMessage('Ada Paramer Yang Kurang Lengkap');
txt_KodeV.SetFocus;
end;
end;

Coding Pada Tombol Hapus

procedure TForm_Supplier.cmd_HapusClick(Sender: TObject);


begin
if txt_KodeV.Text='' then
begin
ShowMessage('Kode Vendor belum Di Isi');
exit;
end;

ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tSupplier where
SupplierId='+QuotedStr(txt_KodeV.Text) ;
ADOQuery1.Open;

if ADOQuery1.RecordCount=0 then
begin
ShowMessage('Kode Vendor Tidak Di Temukan');
exit;
end
else

Pemrograman Destop Univeritas Suryakancana Cianjur


56 | Su t o n o

begin
ADOQuery1.Delete;
bersih;
ShowMessage('Kode Vendor Sudah Di Hapus');
end;
end;

Pencarian Data
a. Pencarian untuk semua data
ADOQuery1.SQL.Text:='select *from tSupplier where Alamat like'+
QuotedStr('%'+Txt_Cari.Text+'%');

Coding Form OnCreate


procedure TForm_Find_Supp.FormCreate(Sender: TObject);
begin
LOV_Cari.Items.Add('Nama Vendor');
LOV_Cari.Items.Add('Alamat Vendor');
end;

Pemrograman Destop Univeritas Suryakancana Cianjur


57 | Su t o n o

Coding OnClik pada Lov_Cari


procedure TForm_Find_Supp.LOV_CariClick(Sender: TObject);
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tSupplier' ;
ADOQuery1.Active:=True;
Txt_Cari.Text:='';
Txt_Cari.SetFocus;
end;

Coding OnChane pada Text_cari


procedure TForm_Find_Supp.Txt_CariChange(Sender: TObject);
begin
if (LOV_Cari.Text='Nama Vendor') then
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tSupplier where NamaSupplier like'+
QuotedStr('%'+Txt_Cari.Text+'%');
ADOQuery1.Active:=True;

end;

if (LOV_Cari.Text='Alamat Vendor') then


begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tSupplier where Alamat like'+
QuotedStr('%'+Txt_Cari.Text+'%');
ADOQuery1.Active:=True;
end;
end;

Pemrograman Destop Univeritas Suryakancana Cianjur


58 | Su t o n o

E. Membuat Form Katagory dan Sub KataGory


Skenario Design Form
1. Buat form katagory product dengan ketentuan kodekatagory dan nama katagory
2. Untuk membuat kode katagory otomatis dengan menggunakan tombol yang di awalai
dengan huruf “G” di ikuti dengan angka 3 digit , jika jumlah digit kurang 4 digit maka
kosogkan pada kolom text jika jumlah 4 digit maka cusrsor akan pindah ke kolom
keterangan
3. Buat design form sub katargory dengan mambuat table baru, yang nantinya akan berelasi
dengan table katagory dimana satu katagory bisa mempunya beberapa sub katagory
dengan contoh sebagai berikut
4. Pada tombol simpan di sub katagory akan menyimpan kode Katagory pada Lov katagory
dengan 4 digit pertama

Design Form Katagory

Pemrograman Destop Univeritas Suryakancana Cianjur


59 | Su t o n o

Design Tabel dan Komponen yang di gunakan

Komponen Properties Nilai


ADOConnection1 ConectionString Provider=MSDASQL.1;Persist Security
Info=False;User ID=root;Data
Source=MySqlCon;Initial
Catalog=db_destop;
LoginPromt False
Connected True
ADOQuery1 Sql select *from tkatagory
Active True
DataSource DataSet AdoQuery1
DBGrid1 DataSource DataSource1

Codding Pada Tombol ADD

Pemrograman Destop Univeritas Suryakancana Cianjur


60 | Su t o n o

procedure TForm_CataGory.ADDClick(Sender: TObject);


begin
txt_KodeC.Text:='G'+IntToStr((Random(10)*99));
if Length(txt_KodeC.Text)=4 then
begin
txt_NameC.SetFocus;
txt_NameC.Text:='';
end
else
begin
txt_KodeC.Text:='';
txt_NameC.Text:='';
end;
end;

Codding Pada Tombol Keluar


procedure TForm_CataGory.Button1Click(Sender: TObject);
begin
close;
end;
Codding Pada Tombol Hapus
procedure TForm_CataGory.cmd_hapusClick(Sender: TObject);
begin
if (txt_KodeC.Text<>'')and(txt_NameC.Text<>'') then
begin
if messagedlg('Apakah Kode Katagory '''+ txt_KodeC.Text +'''.Akan Di
hapus?',mtinformation,[mbyes,mbno],0)=mryes then
begin
ADOQuery1.Delete;
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tkatagory';
ADOQuery1.Active:=True;

Pemrograman Destop Univeritas Suryakancana Cianjur


61 | Su t o n o

MessageDlg('Data Sudah Di Hapus',mtInformation,[mbOK],0);


txt_KodeC.Text:='';
txt_NameC.Text:='';
end
else
exit;
end
else
begin
MessageDlg('Ada Parameter Yang Kurang Lengkap',mtWarning,[mbOK],0);
exit;
end;
end;

Codding Pada Event DBGrid1 OnCellKlik


procedure TForm_CataGory.DBGrid1CellClick(Column: TColumn);
begin
txt_KodeC.Text:=ADOQuery1.FieldValues['KodeKatagory'];
txt_NameC.Text:=ADOQuery1.FieldValues['NamaKatagory'];
end;

Codding Pada Tombol Simpan


procedure TForm_CataGory.cmd_SimpanClick(Sender: TObject);
begin
if (txt_KodeC.Text<>'')and(txt_NameC.Text<>'') then
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tkatagory where KodeKatagory
='+QuotedStr(txt_KodeC.Text);

Pemrograman Destop Univeritas Suryakancana Cianjur


62 | Su t o n o

ADOQuery1.Active:=True;

if ADOQuery1.RecordCount=0 then
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='insert into tkatagory
value('+QuotedStr(txt_KodeC.Text)+','+QuotedStr(txt_NameC.Text)+')';
ADOQuery1.ExecSQL;

MessageDlg('Data Sudah Di Simpan',mtWarning,[mbOK],0);


txt_KodeC.Text:='';
txt_NameC.Text:='';
txt_KodeC.SetFocus;

ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tkatagory';
ADOQuery1.Active:=True;
end
else
begin
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='update tkatagory set
NamaKatagory='+QuotedStr(txt_NameC.Text)+' where KodeKatagory
='+QuotedStr(txt_KodeC.Text);
ADOQuery1.ExecSQL;

MessageDlg('Data Sudah Di Ubah',mtWarning,[mbOK],0);


txt_KodeC.Text:='';
txt_NameC.Text:='';
txt_KodeC.SetFocus;

Pemrograman Destop Univeritas Suryakancana Cianjur


63 | Su t o n o

ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select *from tkatagory';
ADOQuery1.Active:=True;
end;
end
else
begin
MessageDlg('Ada Parameter Yang Kurang',mtWarning,[mbOK],0);
exit;
end;

end;

Design Form SUB Katagory

Pemrograman Destop Univeritas Suryakancana Cianjur


64 | Su t o n o

Komponen Properties Nilai


ADOConnection1 ConectionString Provider=MSDASQL.1;Persist Security
Info=False;User ID=root;Data
Source=MySqlCon;Initial
Catalog=db_destop;
LoginPromt False
Connected True
ADOKatagory Sql select *from tkatagory
Active True
ADOSubKatagory Sql select a.SubKatagory,a.Deskripsi,
a.KodeKatagory,b.namaKatagory
from tsubkatagory a,tkatagory b
where
a.kodeKatagory=b.KodeKatagory
Active True
DataSource DataSet ADOSubKatagory
DBGrid1 DataSource DataSource1

Codding Form OnCreate


procedure TForm_SubKatagory.FormActivate(Sender: TObject);
begin
//tampilkan seluruh tabel yang ada di katagory
ADOKatagory.Active:=False;
ADOKatagory.SQL.Clear;
ADOKatagory.SQL.Text:='select *from tkatagory';
ADOKatagory.Open;

if ADOKatagory.RecordCount>0 then
begin
LOv_Katagory.Clear;
ADOKatagory.First;
while not ADOKatagory.Eof do
begin

Pemrograman Destop Univeritas Suryakancana Cianjur


65 | Su t o n o

LOv_Katagory.Items.Add(ADOKatagory.Fields[0].AsString+'-
'+ADOKatagory.Fields[1].AsString);
ADOKatagory.Next;
end;
end;
end;

Codding Tombol ADD


procedure TForm_SubKatagory.ADDClick(Sender: TObject);
begin
txt_KDSUBC.Text:='S'+IntToStr((Random(10)*99));
if Length(txt_KDSUBC.Text)=4 then
begin
txt_Nama.SetFocus;
txt_Nama.Text:='';
end
else
begin
txt_KDSUBC.Text:='';
txt_Nama.Text:='';
end;
end;

Codding Tombol Hapus


procedure TForm_SubKatagory.cmd_hapusClick(Sender: TObject);
begin
if (txt_KDSUBC.Text<>'')and(txt_Nama.Text<>'') then
begin
if messagedlg('Apakah Kode Sub Katagory '''+ txt_KDSUBC.Text +'''.Akan Di
hapus?',mtinformation,[mbyes,mbno],0)=mryes then
begin
ADOSubKatagory.Close;
ADOSubKatagory.SQL.Text:='delete from tsubkatagory where
subkatagory='+QuotedStr(txt_KDSUBC.Text);
ADOSubKatagory.ExecSQL;

MessageDlg('Data Sudah Di Hapus',mtInformation,[mbOK],0);

Pemrograman Destop Univeritas Suryakancana Cianjur


66 | Su t o n o

tampilall;
end;
end;
end;

Procedur Baru Tampilkan All


procedure TForm_SubKatagory.tampilall;
begin
ADOSubKatagory.Active:=False;
ADOSubKatagory.SQL.Clear;
ADOSubKatagory.SQL.Text:='select *from tsubkatagory';
ADOSubKatagory.Active:=True;
txt_KDSUBC.Text:='';
txt_Nama.Text:='';

end;

Codding Tombol Simpan


procedure TForm_SubKatagory.cmd_SimpanClick(Sender: TObject);
var KodeKatag:string;

begin
KodeKatag:=LeftStr(LOv_Katagory.Text,4);

if (txt_KDSUBC.Text<>'')and(txt_Nama.Text<>'') then
begin
ADOSubKatagory.Active:=False;
ADOSubKatagory.SQL.Clear;
ADOSubKatagory.SQL.Text:='select *from tsubkatagory where
kodekatagory='+QuotedStr(KodeKatag)+' and
subkatagory='+QuotedStr(txt_KDSUBC.Text);

Pemrograman Destop Univeritas Suryakancana Cianjur


67 | Su t o n o

ADOSubKatagory.Active:=True;

if ADOSubKatagory.RecordCount=0 then
begin
ADOSubKatagory.Active:=False;
ADOSubKatagory.SQL.Clear;
ADOSubKatagory.SQL.Text:='insert into tsubkatagory
value('+QuotedStr(KodeKatag)+','+QuotedStr(txt_KDSUBC.Text)+','+QuotedStr(txt_Na
ma.Text)+')';
ADOSubKatagory.ExecSQL;

MessageDlg('Data Sudah Di Simpan',mtWarning,[mbOK],0);

//--**Memanggil Prosedur Baru--*//


tampilall;
end
else
begin
ADOSubKatagory.Active:=False;
ADOSubKatagory.SQL.Clear;
ADOSubKatagory.SQL.Text:='update tsubkatagory set
Deskripsi='+QuotedStr(txt_Nama.Text)+' where
kodekatagory='+QuotedStr(KodeKatag)+' and
subkatagory='+QuotedStr(txt_KDSUBC.Text);
ADOSubKatagory.ExecSQL;

MessageDlg('Data Sudah Di Ubah',mtWarning,[mbOK],0);

//--**Memanggil Prosedur Baru--*//


tampilall;
end;
end
else
begin
MessageDlg('Ada Parameter Yang Kurang Lengkap',mtWarning,[mbOK],0);

Pemrograman Destop Univeritas Suryakancana Cianjur


68 | Su t o n o

exit;
end;
end;

Codding DBGrid1CellClick on CellClik


procedure TForm_SubKatagory.DBGrid1CellClick(Column: TColumn);
begin
txt_KDSUBC.Text:=ADOSubKatagory.FieldValues['SubKatagory'];
txt_Nama.Text:=ADOSubKatagory.FieldValues['Deskripsi'];
LOv_Katagory.Text:=ADOSubKatagory.FieldValues['KodeKatagory']
end;

Pemrograman Destop Univeritas Suryakancana Cianjur

Anda mungkin juga menyukai