Academia.eduAcademia.edu

LAPORAN TUGAS BESAR

LAPORAN TUGAS BESAR PEMROGRAMAN VISUAL Oleh : M Syahid Pebriadi (J1F108005) UNIVERSITAS LAMBUNG MANGKURAT FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM PROGRAM STUDI ILMU KOMPUTER BANJARBARU 2010 LAPORAN TUGAS BESAR PEMROGRAMAN VISUAL APLIKASI “Syahid Tiket” Aplikasi “Syahid Tiket” merupakan sebuah aplikasi yang menangani penjualan tiket. Aplikasi ini dibuat dengan menggunakan Borland Delphi 7. User akan dihadapkan kepada sebuah interface yang mana user dapat melakukan pembelian tiket melalui interface tersebut. Data yang masuk akan disimpan dalam database yang telah di buat. Langkah-langkah yang harus dilakukan untuk membuat aplikasi ini akan dibagi menjadi dua kategori, yaitu pembuatan database, serta perancangan desain & coding.  Pembuatan Database Database yang digunakan adalah database desktop yang terintegrasi dengan Borland Delphi 7. Langkah-langka yang dilakukan : - Pertama-tama membuat tabel hrgtkt, untuk menampung data harga tiket. - Kedua, membuat tabel kdtket, untuk menampung data kode tiket. - Ketiga, membuat tabel kndraan, untuk menampung data mobil. - Keempat, membuat tabel pemesan, untuk menampung data pembeli tiket.  Terakhir, menyimpan nama alias/database dengan nama tiket. Perancangan Desain & Coding Selanjutnya membuat rancangan desain dan pembuatan coding/listing untuk menyempurnakan aplikasi ini. 1. Membuat Form Login - Membuat desain pada form seperti gambar di bawah ini. - Mengatur properties seperti pengaturan di bawah ini. TAB KOMPONEN Standard Button1 PROPERTIES KETERANGAN Name btadmin Caption Admin Button2 Additional - Image1 Name user Caption user Picture (TJPEGImage) Stretch True Kemudian mengetikan listing seperti di bawah ini. //(Listing Untuk tombol btadmin, event OnClick) procedure TLogin.btadminClick(Sender: TObject); begin admin.Show; login.hide; end; //(Listing Untuk tombol btadmin, event OnMouseMove) procedure TLogin.btadminMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin btadmin.Hint:='Klik Admin Untuk Masuk Ke Privasi'; btadmin.ShowHint:=true; end; //(Listing Untuk tombol user, OnMouseMove) procedure TLogin.userMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin user.Hint:='Klik User Untuk Memesan Tiket'; user.ShowHint:=true; end; //(Listing Untuk tombol user, event OnClick) procedure TLogin.userClick(Sender: TObject); begin psntkt.show; login.Hide; end; - Menyimpan form tersebeut dengan nama frmlogin. 2. Membuat Form Pesan Tiket - Selanjutnya membuat desain seperti gambar di bawah ini. - Mengatur properties komponen seperti di bawah ini. TAB KOMPONEN RadioGroup1 Standard PROPERTIES KETERANGAN Caption Pilihan Items Groupbox1 Caption Pesan Tiket Cek Jumlah Tiket Penumpang ComboBox1 Text --- TUJUAN --- ComboBox2 Text --- PILIH MOBIL --- Name pn Text 0 1 2 3 4 5 6 7 Pn2 ComboBox3 Items Name Text ComboBox4 Items ComboBox5 Name 0 1 2 3 4 5 Pn3 Text Combobox6 Name 0 1 2 3 4 Combobox2 Memo1 Name Memo1 Caption Batal Name Batal Caption Batal Name Batal Caption Batal Name btlck Caption Cek Name cek Name Picture cktkt (TJPEGImage) Stretch True Picture (TJPEGImage) Stretch True DataSource1 Dataset Query1 DataSource2 Dataset Query3 Active True AutoRefresh True DatabaseName tiket Active True AutoRefresh True DatabaseName tiket Items Button1 Button2 Button3 Button4 Panel1 Image1 Additional Image2 DataAccess Query1 Query3 SQL BDE Table1 Table2 Table3 select * from kndraan Active True AutoRefresh True DatabaseName tiket TableName kdtket.db Active True AutoRefresh True DatabaseName Tiket TableName hrgtket.db Active True Table4 - AutoRefresh True DatabaseName tiket TableName kndraan.db Active True AutoRefresh True DatabaseName tiket TableName pemesan.db System Timer1 Name Timer1 Win32 DateTimePicker1 Name DateTimePicker1 Menambahkan beberapa procedure di bawah ini. procedure isicbbox; procedure nonaktif; procedure kosong; - Mengetikan listing seperti di bawah ini. //(procedure mengisi combobox) procedure Tpsntkt.isicbbox; var angka, angka2,i,j:integer; begin angka:=table1.RecordCount; for i:=1 to angka do begin table1.RecNo:=i; combobox1.Items.Add(table1.FieldValues['Kode_Tiket']+' ( '+ table1.Fieldvalues['Tujuan']+' )'); end; angka2:=table3.RecordCount; for j:=1 to angka2 do begin table3.RecNo:=j; combobox2.Items.Add(table3.FieldValues['Jenis']); combobox3.Items.Add(table3.FieldValues['Jenis']); end; end; //(procedure menonaktifkan komponen) procedure Tpsntkt.nonaktif; begin datetimepicker1.Date:=Now; combobox1.Enabled:=false; datetimepicker1.Enabled:=false; groupbox1.Enabled:=false; pesan.Enabled:=false; combobox3.Enabled:=false; nm.Enabled:=false; no.Enabled:=false; end; //(procedure mengosongkan) procedure Tpsntkt.kosong; begin radiogroup1.ItemIndex:=-1; pn.Text:='0'; pn2.Text:='0'; pn3.Text:='0'; nm.Clear; no.Clear; combobox1.Text:=' --- TUJUAN ---'; combobox3.Text:='--- PILIH MOBIL ---'; end; //(Lisitng pada Form Pesan Tiket, event OnCreate) procedure Tpsntkt.FormCreate(Sender: TObject); begin psntkt.Constraints.MaxHeight:=458; psntkt.Constraints.MaxWidth:=419; psntkt.Constraints.MinHeight:=458; psntkt.Constraints.MinWidth:=419; isicbbox; nonaktif; cktkt.Visible:=false; end; //(Listing pada Timer1, event OnTimer) procedure Tpsntkt.Timer1Timer(Sender: TObject); var j:integer; begin j:=length(label6.Caption); label6.Left:=label6.Left - 5; if label6.Left< -(5*j) then label6.Left:= 400; end; //(Listing untuk combobox1, event OnChange) procedure Tpsntkt.ComboBox1Change(Sender: TObject); var kode,kode2:string; kd:integer; begin kode:=combobox1.Text; kode2:=copy(kode,6,1); kd:=strtoint(kode2); case kd of 1:label6.Caption:='Kode 01 Untuk Keberangkatan Pagi'; 2:label6.Caption:='Kode 02 Untuk Keberangkatan Siang'; 3:label6.Caption:='Kode 03 Untuk Keberangkatan Sore'; end; combobox3.Enabled:=true; end; //(Listing untuk radiogroup1, event OnClick) procedure Tpsntkt.RadioGroup1Click(Sender: TObject); begin case radiogroup1.ItemIndex of 0:begin combobox1.Enabled:=true; datetimepicker1.Enabled:=true; combobox1.Text:=' -- TUJUAN --'; nm.Enabled:=true; no.Enabled:=true; end; 1:begin combobox1.Enabled:=false; datetimepicker1.Enabled:=false; groupbox1.Enabled:=false; combobox1.Text:=' -- TUJUAN --'; combobox1.Enabled:=false; radiogroup1.Enabled:=false; cktkt.Left:=128; cktkt.Top:=136; memo1.Clear; combobox2.Text:='-- Lihat Tiket --'; cktkt.Visible:=true; batal.Enabled:=false; end; end; end; //(Listing untuk tombol pesan, event OnClick) procedure Tpsntkt.PesanClick(Sender: TObject); var x,y:integer; hargatotal,harga:real; begin x:=combobox1.Items.Count; for y:=0 to x do begin if combobox1.ItemIndex=y then begin table2.RecNo:=y+1; frmrinci.tkt3.Caption:=table2.FieldValues['Harga']; end; end; if (pn.Text='0') and (pn2.Text='0') and (pn3.Text='0') then messagedlg('Maaf,,Pilih Jumlah Penumpang Terlebih Dahulu', mtInformation,[mbOK],0) else begin harga:=strtofloat(frmrinci.tkt3.caption); hargatotal:=(strtofloat(pn.Text)*harga)+((strtofloat(pn2.Text)*harga)*0.2)+( (strtofloat(pn3.Text)*harga)*0.5); frmrinci.total.Caption:=floattostr(hargatotal); frmrinci.show; frmrinci.tkt.Caption:=copy((ComboBox1.Text),1,6); frmrinci.brkt2.Caption:=copy((combobox1.Text),7,15); frmrinci.tb.Caption:=copy((combobox1.Text),7,15); frmrinci.pnm.Caption:='Dewasa : '+pn.Text+' Anak-Anak : '+pn2.Text+' Bayi : '+pn3.Text; frmrinci.pnm2.Caption:='Dewasa : '+pn.Text+' Anak-Anak : '+pn2.Text+' Bayi : '+pn3.Text; frmrinci.sttanggal.Caption:=datetostr(datetimepicker1.Date); frmrinci.stnm.Caption:=nm.Text; frmrinci.stno.Caption:=no.Text; table4.Append; table4['Nama_Pembeli']:=nm.Text; table4['Kode_Tiket']:=frmrinci.tkt.Caption; table4['Tujuan']:=frmrinci.tb.Caption; table4['Dewasa']:=pn.Text; table4['Anak']:=pn2.Text; table4['Bayi']:=pn3.Text; table4['Tanggal']:=frmrinci.sttanggal.Caption; table4['Harga']:=frmrinci.tkt3.Caption; table4['Harga_Total']:=frmrinci.total.Caption; table4.Post; kosong; psntkt.Close; end; end; //(Listing untuk tombol batal, event OnClick) procedure Tpsntkt.batalClick(Sender: TObject); begin nonaktif; kosong; login.Show; psntkt.Close; end; //(Listing Untuk Tombol btlck, event OnClick) procedure Tpsntkt.btlckClick(Sender: TObject); begin batal.Enabled:=true; radiogroup1.Enabled:=true; cktkt.Visible:=false; end; //(Listing Untuk combobox3, event OnChange) procedure Tpsntkt.ComboBox3Change(Sender: TObject); begin groupbox1.Enabled:=true; pesan.Enabled:=true; end; //(Listing Untuk tombol cek, event OnClick) procedure Tpsntkt.CekClick(Sender: TObject); begin memo1.Clear; query3.Active:=true; query3.SQL.Clear; query3.SQL.Add('select Jenis="'+combobox2.Text+'"'); query3.ExecSQL; Muatan from kndraan where query3.Open; query3.RecNo:=1; memo1.Lines.Add('Jumlah Tiket Yang Tersisa Untuk transportasi '+combobox2.Text+ ' sebanyak '+inttostr(query3.FieldValues['Muatan'])+' kursi'); query3.Close; end; //(Listing pada Form pesan Tiket, event OnClose) procedure Tpsntkt.FormClose(Sender: TObject; var Action: TCloseAction); begin kosong; end; //(Listing untuk EditText no, event OnMouseMove) procedure Tpsntkt.noMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var n,m:integer; ntk:string; begin n:=table4.RecordCount; if n=0 then no.Text:='1' else if n<>0 then begin table4.RecNo:=n; ntk:=table4.FieldValues['No_Tiket']; m:=strtoint(ntk)+1; no.Text:=inttostr(m); end; end; 3. Membuat Form Rincian - Membuat desain form seperti di bawah ini. - Mengatur properties seperti di bawah ini. TAB Standard KOMPONEN PROPERTIES KETERANGAN Label1 Name tkt Label2 Name Brkt2 Label3 Name tb Label4 Name pnm Label5 Name pnm2 Label6 Name Tkt3 Label7 Name Total Caption Batal Name Batal2 Caption Ok Name ok StaticText1 Name stno StaticText2 Name stnm StaticText3 Name sttanggal DataSource1 Name DataSource1 Button1 Button2 Additional DataAccess BDE Query2 Active True AutoRefresh True DatabaseName tiket Select * from SQL - Mengetikan listing di bawah ini. //(Listing untuk tombol batal2, event OnClick) procedure TFrmRinci.batal2Click(Sender: TObject); begin query2.Active:=true; query2.SQL.Clear; query2.SQL.Add('delete from pemesan where No_Tiket="'+ stno.Caption+'"'); query2.ExecSQL; psntkt.Show; psntkt.nonaktif; frmrinci.Hide; end; //(Listing untuk tombol ok, event OnClick) procedure TFrmRinci.okClick(Sender: TObject); begin messagedlg('Terima Kasih Telah Memesan Tiket', mtInformation,[mbOk],0); psntkt.Show; psntkt.kosong; psntkt.nonaktif; close; end; 4. Membuat Form Admin - Membuat tampilan desain seperti di bawah ini. pemesan - Mengatur properties seperti di bawah ini. TAB KOMPONEN Additional Image1 Standard - PROPERTIES KETERANGAN Picture (TJPEGImage) Stretch true EditText1 Name Edit1 EditText2 Name Edit2 Mengetikan listing di bawah ini. //(listing untuk edit2, event OnChange) procedure Tadmin.Edit2Change(Sender: TObject); begin if (edit1.Text='admin') and (edit2.Text='admin') then begin edit1.Text:=''; edit2.Text:=''; edit1.SetFocus; admin.Hide; utama.Show; end; end; 5. Membuat Form Utama - Membuat tampilan seperti gambar di bawah ini. - Mengatur properties seperti di bawah ini. TAB Standard KOMPONEN PROPERTIES KETERANGAN EditText1 Name kd EditText2 Name jrs EditText3 Name brkt EditText4 Name hrg EditText5 Name kd2 EditText6 Name jrs2 EditText7 Name brkt2 EditText8 Name hrg2 EditText9 Name edcari EditText10 Name kd3 EditText11 Name kd4 EditText12 Name mbl EditText13 Name mbl2 EditText14 Name muat Combobox1 Name cbkd Combobox2 Name cbknd Combobox3 Name cbcari CheckBox1 Name ckb1 CheckBox2 Name ckb2 Button1 Button2 Button3 Button4 Button5 Button6 MainMenu1 Query1 Caption Tambah Name bttambah Caption Edit Name btedit Caption Edit Name Btedit2 Caption Tambah Name bttambah Caption Lihat Name btlihat Caption Lihat Name btlihat2 Name MainMenu1 Active False AutoRefresh True DatabaseName Tiket SQL tblhrg Active True AutoRefresh True DatabaseName Tiket TableName Hrgtkt.db Name tblkd Active True AutoRefresh True DatabaseName Tiket TableName kdtkt.db Name tblmbl Active True AutoRefresh True DatabaseName Tiket TableName kndraan.db DataSource1 DataSet Query1 DbGrid1 DataSource DataSource1 DbGrid2 DataSource DataSource2 BDE Table2 Table3 DataControls hrgtkt Name Table1 DataAccess select * from kdtket, - Membuat beberapa procedure. procedure hilangkan; procedure isi; procedure kunci; - Kemudian mengetikan listing di bawah ini. //(Listing untuk procedure hilangkan) procedure Tutama.hilangkan; begin edtdata.Visible:=false; tmbhdata.Visible:=false; dftrtkt.Visible:=false; psntkt.Visible:=false; edtmbl.Visible:=false; tmbhmbl.Visible:=false; end; //(Listing untuk procedure kunci) procedure Tutama.kunci; begin kd2.Enabled:=false; jrs2.Enabled:=false; brkt2.Enabled:=false; hrg2.Enabled:=false; btedit.Enabled:=false; end; //(Listing untuk procedure isi) procedure Tutama.isi; var i,j:integer; begin j:=tblkd.RecordCount; for i:=1 to j do begin tblkd.RecNo:=i; cbkd.Items.Add(tblkd.FieldValues['Kode_Tiket']); end; end; //(Listing untuk form utama, event OnCreate) procedure Tutama.FormCreate(Sender: TObject); begin isi; utama.Constraints.MaxHeight:=389; utama.Constraints.MaxWidth:=251; utama.Constraints.MinHeight:=389; utama.Constraints.MinWidth:=251; image1.Left:=0; image1.Top:=0; hilangkan; end; //(Listing untuk tombol update, event OnClick) procedure Tutama.UpdateClick(Sender: TObject); begin image1.Visible:=false; hilangkan; kunci; edtdata.Visible:=true; edtdata.Left:=0; edtdata.Top:=0; end; //(Listing untuk tombol tambah, event OnClick) procedure Tutama.TambahClick(Sender: TObject); begin image1.Visible:=false; hilangkan; tmbhdata.Visible:=true; tmbhdata.Left:=0; tmbhdata.Top:=0; end; //(Listing untuk submenu tiket, event OnClick) procedure Tutama.TiketClick(Sender: TObject); begin image1.Visible:=false; hilangkan; dftrtkt.Visible:=true; dftrtkt.Left:=0; dftrtkt.Top:=0; btlihat.Enabled:=false; end; //(Listing untuk submenu pesan, event OnClick) procedure Tutama.PesanClick(Sender: TObject); begin image1.Visible:=false; hilangkan; psntkt.Visible:=true; psntkt.Left:=0; psntkt.Top:=0; btlihat2.Enabled:=false; end; //(Listing untuk submenu close, event OnClick) procedure Tutama.Close1Click(Sender: TObject); begin login.show; utama.Close; end; //(Listing untuk tombol tiket, event OnClick) procedure Tutama.bttambahClick(Sender: TObject); begin if kd.Text='' then messagedlg('Tolong Isi Yang Kosong',mtInformation,[mbOk],0) else if jrs.Text='' then messagedlg('Tolong Isi Yang Kosong',mtInformation,[mbOk],0) else if brkt.Text='' then messagedlg('Tolong Isi Yang Kosong',mtInformation,[mbOk],0) else if hrg.Text='' then messagedlg('Tolong Isi Yang Kosong',mtInformation,[mbOk],0) else begin tblkd.Append; tblkd['Kode_Tiket']:=kd.Text; tblkd['Tujuan']:=kd.Text; tblkd['Keberangkatan']:=kd.Text; tblkd.Post; tblhrg.Append; tblhrg['Harga']:=hrg.Text; tblhrg.Post; end; end; //(Listing untuk EditText kd, event OnChange) procedure Tutama.kdChange(Sender: TObject); var i,j:integer; begin j:=tblkd.RecordCount; if (length(kd.Text)=3) then for i:=1 to j do begin tblkd.RecNo:=i; if (copy((tblkd.FieldValues['Kode_Tiket']),1,3)=copy((kd.Text),1,3)) then begin messagedlg('Kode Sudah Ada',mtWarning,[mbOk],0); exit; end; end; if (length(kd.Text)=6) then begin if (copy(kd.Text,5,2)='01') then brkt.Text:='Pagi' else if (copy(kd.Text,5,2)='02') then brkt.Text:='Siang' else if (copy(kd.Text,5,2)='03') then brkt.Text:='Malam' else messagedlg('Kode Angka Salah !!!',mtWarning,[mbOk],0); end; end; //(Listing untuk combobox cbkd, event OnChange) procedure Tutama.cbkdChange(Sender: TObject); var a:integer; begin a:=cbkd.ItemIndex; if cbkd.ItemIndex=a then; begin tblkd.RecNo:=a+1; tblhrg.RecNo:=a+1; kd2.Text:=tblkd.FieldValues['Kode_Tiket']; jrs2.Text:=tblkd.FieldValues['Tujuan']; brkt2.Text:=tblkd.FieldValues['Keberangkatan']; hrg2.Text:=tblhrg.FieldValues['Harga']; end; kd2.Enabled:=true; jrs2.Enabled:=true; brkt2.Enabled:=true; hrg2.Enabled:=true; btedit.Enabled:=true; end; //(Listing untuk combobox cbknd, event OnChange) procedure Tutama.cbkndChange(Sender: TObject); var a:integer; begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from kndraan'); query1.ExecSQL; query1.Open; a:=cbknd.ItemIndex; if cbknd.ItemIndex=a then; begin query1.RecNo:=a+1; kd3.Text:=query1.FieldValues['Kode_Kendaraan']; mbl.Text:=query1.FieldValues['Jenis']; end; kd3.Enabled:=true; mbl.Enabled:=true; btedit2.Enabled:=true; end; //(Listing untuk tombol btedit, event OnClick) procedure Tutama.bteditClick(Sender: TObject); begin tblkd.Edit; tblkd['Kode_Tiket']:=kd2.Text; tblkd['Tujuan']:=jrs2.Text; tblkd['Keberangkatan']:=brkt2.Text; tblkd.Post; tblhrg.Edit; tblhrg['Harga']:=hrg2.Text; tblhrg.Post; cbkd.Clear; isi; end; //(Listing untuk tombol btlihat, event OnClick) procedure Tutama.btlihatClick(Sender: TObject); begin if (ckb1.Checked=true) and (ckb2.Checked=false) then begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from kdtket order by Kode_Tiket'); query1.ExecSQL; query1.Open; end else if (ckb1.Checked=false) and (ckb2.Checked=true) then begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from hrgtkt order by Kode_Tiket'); query1.ExecSQL; query1.Open; end else if (ckb1.Checked=true) and (ckb2.Checked=true) then begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select a.Kode_Tiket, a.Tujuan, a.Keberangkatan, b.Harga'+ ' from kdtket a, hrgtkt b '+ ' where a.Kode_Tiket=b.Kode_Tiket order by Kode_Tiket'); query1.ExecSQL; query1.Open; end; end; //(Listing untuk checkbox ckb, event OnClick) procedure Tutama.ckb1Click(Sender: TObject); begin btlihat.Enabled:=true; end; //(Listing untuk checkbox ckb, event OnClick) procedure Tutama.ckb2Click(Sender: TObject); begin btlihat.Enabled:=true; end; //(Listing untuk EditText edcari, event OnClick) procedure Tutama.edcariChange(Sender: TObject); begin btlihat2.Enabled:=true; end; //(Listing untuk tombol btlihat2, event OnClick) procedure Tutama.btlihat2Click(Sender: TObject); begin case cbcari.ItemIndex of 0:begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from pemesan where Nama_Pembeli like "%'+ edcari.Text+'%"'); query1.ExecSQL; query1.Open; if query1.RecordCount=0 then messagedlg('Data Tidak Ada',mtInformation,[mbOk],0); end; 1:begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from pemesan where Kode_Tiket like "%'+ edcari.Text+'%"'); query1.ExecSQL; query1.Open; if query1.RecordCount=0 then messagedlg('Data Tidak Ada',mtInformation,[mbOk],0); end; 2:begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from pemesan where Tanggal like "%'+ edcari.Text+'%"'); query1.ExecSQL; query1.Open; if query1.RecordCount=0 then messagedlg('Data Tidak Ada',mtInformation,[mbOk],0); end; end; end; //(Listing untuk submenu update kendaraan, event OnClick) procedure Tutama.UpdateKendaraan1Click(Sender: TObject); var i,j:integer; begin image1.Visible:=false; hilangkan; edtmbl.Visible:=true; edtmbl.Left:=0; edtmbl.Top:=0; query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('select * from kndraan'); query1.ExecSQL; query1.Open; j:=query1.RecordCount; for i:=1 to j do begin query1.RecNo:=i; cbknd.Items.Add(query1.FieldValues['Kode_Kendaraan']); end; end; //(Listing untuk tombol btedit2, event OnClick) procedure Tutama.btedit2Click(Sender: TObject); var i,j:integer; begin query1.Close; query1.Active:=true; query1.SQL.Clear; query1.SQL.Add('update kndraan set Kode_Kendaraan= "'+kd3.Text+ '", Jenis= "'+mbl.Text+ '" where Kode_Kendaraan= "'+cbknd.Text+'"'); query1.ExecSQL; cbknd.Clear; query1.SQL.Clear; query1.SQL.Add('select * from kndraan'); query1.ExecSQL; query1.Open; j:=query1.RecordCount; for i:=1 to j do begin query1.RecNo:=i; cbknd.Items.Add(query1.FieldValues['Kode_Kendaraan']); end; end; //(Listing untuk submenu tambah kendaraan, event OnClick) procedure Tutama.tambahKendaraan1Click(Sender: TObject); begin image1.Visible:=false; hilangkan; tmbhmbl.Visible:=true; tmbhmbl.Left:=0; tmbhmbl.Top:=0; end; //(Listing untuk tombol bttambah2, event OnClick) procedure Tutama.bttambah2Click(Sender: TObject); begin if (kd4.Text='') or (mbl2.Text='') or (muat.Text='') then messagedlg('Maaf!!!,,Isi Yag Kosong',mtInformation,[mbOk],0) else begin tblmbl.Append; tblmbl['Kode_Kendaraan']:=kd4.Text; tblmbl['Jenis']:=mbl2.Text; tblmbl['Muatan']:=muat.Text; tblmbl.Post; end; end; //(Listing untuk tombol pmk, event OnClick) procedure Tutama.PmkClick(Sender: TObject); begin lprn.QuickRep1.Prepare; lprn.QuickRep1.Preview; end; 6. Membuat Form Laporan - Membuat tampilan di bawah ini. - Mengubah properties seperi di bawah ini. TAB KOMPONEN PROPERTIES KETERANGAN HasColumnHeader = True QuickRep1 Bands HasDetail=True HasSummary=True QRDBText1 QRDBText2 QReport QRDBText3 QRDBText4 QRDBText5 BDE Table1 DataField Tanggal DataSet Table1 DataField No_Tiket DataSet Table1 DataField Kode_Tiket DataSet Table1 DataField Harga DataSet Table1 DataField Harga_Total DataSet Table1 Active True AutoRefresh True DatabaseName tiket TableName Pemesan.db