Visual Basic
Visual Basic
0 Handout
A. Mengenal Microsoft Visual Basic 6.0 Visual Basic adalah bahasa pemrogramam berbasis Microsoft Windows yang merupakan Object Oriented Programming (OOP), yaitu pemrograman berorientasi objek, Visual Basic menyediakan objek-objek yang sangat kuat, berguna dan mudah. Beberapa kemampuan atau manfaat dari Visual Basic diantaranya : o Untuk Membuat program aplikasi berbasis Windows. o Untuk Membuat ActiveX, File Help, Aplikasi Internet, dan sebagainya. o Menguji program (debugging) dan menghasilkan program akhir berakhiran EXE yang bersifat executable atau dapat langsung dijalankan. Keistimewaan Visual Basic 6.0 1. Memiliki compiler andal yang dapat menghasilkan file executable yang lebih cepat dan lebih efesien dari sebelumnya. 2. Memiliki beberapa tambahan sarana Wizard yang baru. 3. Tambahan kontrol-kontrol baru yang lebih canggih serta peningkatan kaidah struktur bahasa Visual Basic. 4. Sarana akses data yang lebih cepat dan andal untuk membuat aplikasi database yang berkemampuan tinggi. 5. Visual Basic 6.0 memiliki beberapa versi atau edisi yang disesuaikan dengan kebutuhan pemakainya. Ada Beberapa Hal yang harus dipahami dalam mempelajari Visual Basic : o Objek Sering disebut entity adalah sesuatu yang bisa dibedakan dengan lainnya. Pada dasarnya seluruh benda didunia ini bisa dikatakan sebagai objek, contoh : mobil, komputer, radio, dll. Dalam Visual Basic objek-objek yang dimaksud disebut kontrol. Jenis-jenis kontrol antara lain : Label, Textbox, Combo Box, List Box, dan masih banyak lagi. Properti Sering disebut atribut, adalah ciri-ciri yang menggambarkan suatu objek. Misalnya disebut objek mobil jika mempunyai ban, spion, rem, dll. Event Suatu kejadian yang menimpa objek. Bagaimana jika mobil didorong, ditabrak, dicat, dsb. Metode Kemampuan yang dimiliki oleh suatu objek. Contohnya jika mobil berbelok, mundur, dan maju.
B. Lingkungan Kerja Visual Basic 6.0 Komponen Visual Basic 1. Project adalah sekumpulan modul/program aplikasi itu sendiri, projek disimpan dalam file berextension .VBP biasanya berisi form-form. 2. Form adalah objek yang dipakai untuk tempat bekerja program aplikasi.
3. Toolbox adalah alat berisi icon-icon atau komponen untuk memasukan objek tertentu kedalam form. Tambahan Komponen : Klik kanan pada toolbox > komponen atau add tab. 4. Properties adalah untuk menentukan setting suatu objek, menentukan cara kerja dari objek saat program dijalankan misal warna, huruf, dll. 5. Kode Program adalah serangkaian tulisan perintah yang akan dilaksanakan jika suatu objek dijalankan. 2
4 5
Latihan 1 :
Membuat Interface :
Mengatur Properties Objek Label1 Label2 Label3 Label4 Label5 Label6 Text1 Text2 Text3 Text4 Text5 Command1 Command2 Command3 Properties Nilai Kenalan Yukk Nim Nama Kelas Alamat Telpon TxtNim TxtNama TxtKelas TxtAlamat TxtTelp &OK CmdNama &Hapus CmdHapus &Exit CmdExit
Caption
Name
Latihan 2 : Coding Form : Private Sub CmdBersih_Click() Text1.Text = "" OptBiru.Value = False OptHijau.Value = False OptMerah.Value = False Optmiring.Value = False OptTebal.Value = False Optsize.Value = False OptKuning.Value = False OptPutih.Value = False OptHitam.Value = False End Sub
Objek Option1 Option2 Option3 Option4 Option5 Option6 Option7 Option8 Option9 Text1 Command1
Properties
Caption Name
Text Name
Nilai Biru OptBiru Hijau OptHijau Merah OptMerah Miring OptMiring Tebal OptTebal Size OptSize Kuning OptKuning Putih OptPutih Hitam OptHitam Visual Basic Text1 CmdKeluar &Keluar CmdBersih &Bersih
Private Sub CmdKeluar_Click() End End Sub Private Sub OptBiru_Click() Text1.ForeColor = vbBlue End Sub Private Sub Optebal_Click() Text1.FontBold = True End Sub Private Sub OptHijau_Click() Text1.ForeColor = vbGreen End Sub Private Sub OptHitam_Click() Text1.BackColor = vbBlack End Sub Private Sub OptKuning_Click() Text1.BackColor = vbYellow End Sub Private Sub OptMerah_Click() Text1.ForeColor = vbRed End Sub Private Sub Optmiring_Click() Text1.FontItalic = True
End Sub
Private Sub Optsize_Click() Text1.FontSize = 20 End Sub
Objek Label1 Label2 Label3 Text1 Text2 Text3 Command1 Command2 Command3
Textbox, Properties Text Selalu Dikosongkan
Properties Caption
Nilai Nilai A Nilai B Nilai C TxtA TxtB TxtC CmdAB A+B CmdHapus &Hapus CmdExit &Exit 5
Dim Nilai As Integer Private Sub CmdAB_Click() TxtC.Text = (Val(TxtA.Text) Val(TxtB.Text)) * Nilai End Sub Private Sub CmdExit_Click() End End Sub Private Sub CmdHapus_Click() TxtA.Text = "" TxtB.Text = "" TxtC.Text = "" End Sub Private Sub Form_Load() Nilai = 10 End Sub
Digunakan untuk mengatur tampilan tanggal dan waktu contohnya : print format (D,Generasi Date), Angka dan karakter, ex : printformat (1234.3, ##,##0,00 yang hasilnya = 1,234.30.
Objek Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Label11 Label12 Label13 Label14 Frame1 Command1
Caption
Timer1 Text1 Text2 Text3 Text4 Text5 Text6 Text7 Text8 Text9 Listing Form :
Name
Nilai FUNGSI STRING Arial, Italic TULISKAN KATA RIGHT UPPER CASE LEFT Lower case GENERAL DATE SHORT DATE MEDIUM DATE LONG DATE TANGGAL HARI INI JAM SEKARANG Lblsekarang (kosong) Lbljam (kosong) PENGAMBILAN TEXT KLIK DISINI UNTUK INPUT TANGGAL Command1 100 Txtkata Txtright Txtuppercase Txtleft Txtlowercase TxtGeneraldate Txtshortdate Txtmediumdate Txtlongdate jam = Now lblsekarang.Caption = Format(hariini, "DDDD / DD - MMMM - YYYY") Lbljam.Caption = Format(jam, "hh:mm:ss Am/Pm") End Sub Private Sub txtkata_Change() txtkata.SetFocus txtright = Right(txtkata, 7) txtleft = Left(txtkata, 7) txtupper = UCase(txtkata) txtlower = LCase(txtkata) End Sub
Private Sub Command1_Click() a = InputBox("MASUKKAN TANGGALNYA..", "INPUT TANGGAL") txtgeneraldate = Format(a, "General date") txtshortdate = Format(a, "Short date") txtmediumdate = Format(a, "Medium date") txtlongdate = Format(a, "Long date") End Sub Private Sub Timer1_Timer() Dim hariini As Variant Dim jam As Variant hariini = Now
OPERATOR
1. Operator Aritmatika Aritmatika Pangkat ( ^ ) Negatif ( - ) Kali dan Bagi ( *, / ) Pembagian Bulat ( \ ) Sisa Bagi (Mod) Tambah dan Kurang (+,-) Pembagian String (&) Komparasi Sama ( = ) Tidak Sama ( <> ) Kurang dari ( < ) Lebih Dari ( > ) Kurang dari atau sama ( <= ) Lebih dari atau sama (>=) Logika Not And Or Xor Eqv Imp
Coding Form : Private Sub CmdTambah_Click() TxtHasil.Text = Val(TxtA.Text) + Val(TxtB.Text) End Sub Private Sub CmdKurang_Click() TxtHasil.Text = Val(TxtA.Text) Val(TxtB.Text) End Sub Private Sub CmdKali_Click() TxtHasil.Text = Val(TxtA.Text) * Val(TxtB.Text) End Sub Private Sub CmdBagi_Click() TxtHasil.Text = Val(TxtA.Text) / Val(TxtB.Text) End Sub Private Sub CmdBersih_Click() TxtA.Text = "" TxtB.Text = "" TxtHasil.Text = "" TxtA.SetFocus End Sub Private Sub CmdSelesai_Click() pesan = MsgBox("Yakin Nich Mau Keluar", 32 + 1, "Konfirmasi") If pesan = vbOK Then End End If End Sub
Objek
Label1 Label2 Label3 Frame1 Frame2 Text1 Text2 Text3 Command1 Command2 Command3 Command4 Command5 Command6
Properties
Caption
Nilai
Nilai A Nilai B Hasil TxtA TxtB TxtHasil CmdTambah + CmdKali X CmdKurang CmdBagi : CmdBersih &Bersih CmdExit E&xit
Name Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption
2. Operator Perbandingan (Relasi) Operator = <> < > <= >= Like Ls Keterangan Sama dengan Tidak Sama dengan Lebih Kecil Lebih Besar Lebih Kecil atau sama dengan Lebih Besar atau sama dengan Mempunyai ciri yang sama Sama referensi objek
Private Sub CmdBERSIH_Click() TxtA = "" TxtB = "" TxtHasil = "" TxtKet = "" TxtA.SetFocus End Sub Private Sub CmdKELUAR_Click() pesan = MsgBox("Yakin Nich Mau Keluar?", vbQuestion + vbYesNo, "Konfirmasi") If pesan = vbYes Then End End If End Sub Private Sub CmdProses_Click() If Val(TxtA) > Val(TxtB) Then TxtHasil = "A > B" TxtKet = "Nilai A lebih besar dari nilai B" ElseIf Val(TxtA) < Val(TxtB) Then TxtHasil = "A < B" TxtKet = "Nilai A lebih kecil dari nilai B" Else
TxtHasil = "A = B" TxtKet = "Nilai A sama dengan nilai B" End If End Sub Private Sub Form_Load() TxtHasil.Enabled = False TxtKet.Enabled = False End Sub Private Sub TxtA_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TxtB.SetFocus End If End Sub
PERCABANGAN/SELEKSI KONDISI
1. IFTHENELSEEnd If/ If Tunggal Bentuk Umum (BU) : If <Kondisi> Then <Pernyataan-1/Aksi-1> Else <Pernyataan-2/Aksi-1> End If 2. IFMajemuk BU : If <Kondisi-1> Then <Aksi-1/ Pernyataan-1> Elseif <Kondisi-2> Then <Aksi-2/Pernyataan-2> Elseif <Kondisi-n> Then <Aksi-n/Pernyataan-n> Else <aksi-default> End If 3. Select Case End Select Digunakan untuk mengeksekusi sejumlah pernyataan sesuai dengan ekspresi yang ada. Selain itu ekspresi bisa berupa range nilai tertentu atau beberapa ekspresi sekaligus. BU : Select Case <Variabel-ekspresi> Case is <ekspresi-1> <pernyataan-1> Case is <ekspresi-2> <pernyataan-2> Case is <ekspresi-n> <pernyataan-n> Lat 1 : Case else <pernyataan-default> End Select Objek Properties Option1 Caption Name Option2 Caption Name Option3 Caption Name Frame1 Caption Nilai Kepiting Saus Tiram Optmenu (0) Udang Asam Manis Optmenu (1) Cumi Lada Hitam Optmenu (2) Menu Makanan
10
Private Sub cmdhitung_Click() txtTotal = Val(txtHarga) * Val(txtJumlah) If txtJumlah >= 5 Then txtDiskon = 0.15 * txtTotal Else txtDiskon = 0 End If txtBayar = Val(txtTotal) - Val(txtDiskon) End Sub Private Sub cmdkeluar_Click() pesan = MsgBox("Yakin Mau Udahan ...!!!", 36, "Konfirmasi") If pesan = vbYes Then Unload Me End Sub Private Sub cmdlagi_Click() Optmenu(0) = 0 Optmenu(1) = 0 Optmenu(2) = 0 Lat 2 :
txtHarga = "" txtJumlah = "" txtTotal = "" txtDiskon = "" txtBayar = "" End Sub Private Sub Optmenu_Click(Index Integer) Select Case Index Case 0 txtHarga = 20000 Case 1 txtHarga = 15000 Case 2 txtHarga = 12000 End Select txtJumlah.SetFocus End Sub As
Private Sub cmdclear_Click() txtkode.Text = "" txtjenis.Text = "" txtharga.Text = "" txtkode.Text = "" txtjumbel.Text = "" txtbayar.Text = "" txtpot.Text = "" txtppn.Text = ""
txttotal.Text = "" txtubar.Text = "" txtukem.Text = "" txtkode.SetFocus End Sub Private Sub cmdexit_Click() pesan = MsgBox("Yakin Nich Mau Keluar", vbQuestion + vbYesNo, "Konfirmasi")
11
If pesan = vbYes Then End End If End Sub Private Sub cmdhitung_Click() txtbayar.Text = Val(txtjumbel.Text) * Val(txtharga.Text) If txtjumbel.Text > 5 Then txtpot.Text = 0.1 * Val(txtbayar.Text) Else txtpot.Text = 0 End If txtppn.Text = 0.05 * Val(txtbayar.Text) txttotal.Text = Val(txtbayar.Text) Val(txtpot.Text) + Val(txtppn.Text) End Sub Private Sub Timer1_Timer() Label12.Caption = Format(Date, "ddmmmm-yyyy") Label13.Caption = Format(Time, "hh:mm:ss:am/pm") End Sub Private Sub txtkode_Change() If Val(txtkode.Text) = 1 Then txtjenis.Text = "Roti Coklat" txtharga.Text = 1500
ElseIf Val(txtkode.Text) = 2 Then txtjenis.Text = "Roti Keju" txtharga.Text = 2000 ElseIf Val(txtkode.Text) = 3 Then txtjenis.Text = "Roti Kismis" txtharga.Text = 2500 Else txtjenis = "Roti Lapis" txtharga.Text = 3000 End If If Val(txtkode.Text) > 4 Then MsgBox "kode yang anda masukkan salah!", vbOKOnly, indo End If End Sub Private Sub txtubar_LostFocus() txtukem.Text = Val(txtubar.Text) Val(txttotal.Text) If (txtubar) >= (txttotal) Then ps1 = MsgBox("Terima Kasih", 32, "Toko") Else ps2 = MsgBox("Dilarang Ngutang!!!", 16, "Toko") txtubar = "" txtukem = "" End If End Sub
Desain Form :
12
Layout :
Objek Frame1 Frame2 Option1 Option2 Option3 Label1 Shape1 Shape2 Shape3 Command1 Command2
Properties Caption (Name) Caption (Name) Caption (Name) Caption Caption Forecolor (Name) Shape (Name) Shape (Name) Shape (Name) Caption (Name) Caption
Nilai Menu Pilihan Gambar OptLingkaran Lingkaran OptElips Elips OptSegiEmpat SegiEmpat Label1 Biru ShpOval 2 Oval ShpSegiEmpat 0 Rectangle ShpLingkaran 3 Circle CmdBersih &Bersih CmdKeluar &Keluar Sub gambar_tersembunyi() Me.ShpLingkaran.Visible = False Me.ShpOval.Visible = False Me.ShpSegiEmpat.Visible = False Label1 = "" End Sub Private Sub CmdBersih_Click() Call bersih End Sub
Listing Form : Sub bersih() Call gambar_tersembunyi OptLingkaran.Value = False Me.OptElips.Value = False Me.OptSegiEmpat.Value = False Label1 = "" End Sub
13
Private Sub CmdKeluar_Click() End End Sub Private Sub Form_Load() Call gambar_tersembunyi Call bersih End Sub Private Sub OptElips_Click() Call gambar_tersembunyi Me.ShpOval.Visible = True Label1.Caption = "Bentuk Elips" Label1.FontSize = 20 End Sub B. Function
Private Sub OptLingkaran_Click() Call gambar_tersembunyi Me.ShpLingkaran.Visible = True Label1.Caption = "Bentuk Lingkaran" Label1.FontSize = 20 End Sub Private Sub OptSegiEmpat_Click() Call gambar_tersembunyi Me.ShpSegiEmpat.Visible = True Label1.Caption = "Bentuk SegiEmpat" Label1.FontSize = 20 End Sub
Listing Form : Function kell() kell = 2 * (3.14 * Val(TxtJari)) End Function Function luas() luas = 3.14 * Val(TxtJari) * Val(TxtJari) End Function Sub kosong() TxtJari = "" TxtKeliling = "" TxtLuas = "" TxtJari.SetFocus End Sub
Private Sub CmdExit_Click() End End Sub Private Sub CmdHitung_Click() TxtKeliling = kell TxtLuas = luas End Sub Private Sub CmdLagi_Click() kosong End Sub
14
PERULANGAN (LOOPING)
1. Do.While (Suatu Nilai Awal) Penyeleksian kondisi dijalankan pada awal proses, dimana pernyataan akan dilaksanakan selama kondisi bernilai True. Perintah akan dijalankan minimal 0 kali. BU : Do While <Kondisi> Pernyataan 1 Pernyataan 2 Loop Latihan : Listing Form : Private Sub Form_Activate() Dim I As Integer I=0 Do While I <= 10 Form4.Print I I=I+1 Loop End Sub 2. Do Until Pernyataan akan dijalankan selama nilai batas belum tercapai atau kondisi bernilai False, perintah dijalankan minimal satu kali. BU : Do Until <Kondisi> Pernyataan 1 Pernyataan 2 Loop List Form : Private Sub CmdExit_Click() pesan = MsgBox("Yakin Nich Mau Keluar", 32 + 1, "Konfirmasi") If pesan = vbOK Then End End If End Sub Private Sub CmdLagi_Click() TxtAwal = "" TxtAkhir = "" End Sub Ex : I = 1 Do Until I > 10 I=I+1 Form1.Print Looping; I Loop Private Sub CmdUlangi_Click() Dim angka As Integer TxtAwal.SetFocus angka = TxtAwal Do Until angka < 10 angka = angka + 1 Loop TxtAkhir = angka - 1 TxtAkhir.SetFocus End Sub Ex : I =1 Do While I <= 5 Print Loop Ke ;I I=I+1
15
3. ForNext Akan mengulang pernyataan sebanyak yang telah ditentukan. Penentuan ini berupa nilai awal, nilai akhir, dan nilai selang. Selang dapat berupa penambahan atau pengurangan. BU : For nm_variabel = n_awal To n_akhir Step n_selang Pernyataan 1 Pernyataan 2 Next nm_variabel Listing Form : Dim intjumlah, intangka As Integer Dim intawal, intakhir As Integer Private Sub CmdExit_Click() End End Sub Private Sub CmdHitung_Click() intjumlah = 0 intawal = TxtAwal intakhir = TxtAkhir For intangka = intawal To intakhir intjumlah = intjumlah + intangka Next intangka TxtJumlah = intjumlah TxtJumlah.SetFocus End Sub 4. WhileWend Digunakan untuk mengeksekusi suatu blok ekspresi dengan jumlah perulangan tak terhingga. Untuk menghentikan menggunakan Ctrl + Break. BU : While <Kondisi> Statement1 Statement2 Wend Ex: I = 0 While I < 10 I=I+1 Print Loop Ke ; I Wend
5. ExitDo Digunakan untuk menghindari OverFlow pada suatu perulangan dengan pernyataan Exit dan harus menggunakan if untuk menilai keadaan. BU : Do While nm_variabel = nilai_batas Pernyataan 1 Pernyataan 2 .. If kondisi tertentu Then Exit Do End If Loop Ex : Dim I as Integer I=1 Do While I > 0 I=I+1 Print Loop Ke ;I If I = 5 Then Exit Do End If Loop
16
Nilai CboKode
Private Sub CboKODE_Click() If CboKODE = "IND" Then TxtJENIS = "INDIA" TxtSTUDIO = "1" ElseIf CboKODE = "KMD" Then TxtJENIS = "KOMEDI" TxtSTUDIO = "2" Else TxtJENIS = "ACTION" TxtSTUDIO = "3" End If End Sub Private Sub Form_Load() CboKODE.AddItem "IND" CboKODE.AddItem "KMD" CboKODE.AddItem "ACT" End Sub Private Sub Opt1_Click(Index As Integer) If Opt1(0).Value = True Then TxtHARGA = 50000 ElseIf Opt1(1).Value = True Then TxtHARGA = 30000 Else TxtHARGA = 15000 End If TxtJumbel.SetFocus End Sub
Private Sub TxtBAYAR_Change() TxtKEMBALI = Val(TxtBAYAR) Val(TxtTOTAL) End Sub Private Sub TxtJumbel_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Val(TxtJumbel) >= 6 Then TxtDISKON = 0.1 * TxtHARGA ElseIf Val(TxtJumbel) >= 3 Then TxtDISKON = 0.05 * TxtHARGA Else TxtDISKON = 0 End If TxtTOTAL = Val(TxtHARGA) * Val(TxtJumbel) - Val(TxtDISKON) TxtBAYAR.SetFocus End If End Sub Private Sub TxtNAMA_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then CboKODE.SetFocus End If End Sub
17
Objek Listbox
Nilai LstKode
Private Sub CmdIsi_Click() TxtNip.Text = "" TxtNama.Text = "" CboGolongan.Text = "" TxtPokok.Text = "" TxtTransport.Text = "" TxtTunjangan.Text = "" TxtGaji.Text = "" TxtNip.SetFocus End Sub Private Sub CmdIsi_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then CmdSelesai.SetFocus End If End Sub Private Sub CboGolongan_Click() Select Case CboGolongan.ListIndex Case 0 TxtPokok.Text = 1000000 TxtTransport.Text = 75000 Case 1 TxtPokok.Text = 1250000 TxtTransport.Text = 100000 Case 2 TxtPokok.Text = 1500000 TxtTransport.Text = 125000 Case 3 TxtPokok.Text = 1750000 TxtTransport.Text = 150000 Case 4 TxtPokok.Text = 2000000 TxtTransport.Text = 175000
Case 5 TxtPokok.Text = 2500000 TxtTransport.Text = 200000 End Select End Sub Private Sub CboGolongan_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then LstKode.SetFocus End If End Sub Private Sub CmdSelesai_Click() End End Sub Private Sub LstKode_Click() Select Case LstKode.ListIndex Case 0 TxtTunjangan.Text = 1000000 TxtGaji.Text = Val(TxtPokok.Text) + Val(TxtTransport.Text) + Val(TxtTunjangan.Text) Case 1 TxtTunjangan .Text = 1250000 TxtGaji .Text = Val(TxtPokok.Text) + Val(TxtTransport.Text) + Val(TxtTunjangan.Text) Case 2 TxtTunjangan.Text = 1500000 TxtGaji.Text = Val(TxtPokok.Text) + Val(TxtTransport.Text) + Val(TxtTunjangan.Text)
18
Case 3 TxtTunjangan.Text = 1750000 TxtGaji.Text = Val(TxtPokok.Text) + Val(TxtTransport.Text) + Val(TxtTunjangan.Text) Case 4 TxtTunjangan.Text = 2000000 TxtGaji.Text = Val(TxtPokok.Text) + Val(TxtTransport.Text) + Val(TxtTunjangan.Text) Case 5 TxtTunjangan.Text = 2500000 TxtGaji.Text = Val(TxtPokok.Text) + Val(TxtTransport.Text) + Val(TxtTunjangan.Text) End Select End Sub Private Sub LstKode_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then CmdIsi.SetFocus End If End Sub
Private Sub TxtNama_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then CboGolongan.SetFocus End If End Sub Private Sub TxtNip_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TxtNama.SetFocus End If End Sub Private Sub Form_Load() Dim I As Integer For I = 1 To 6 CboGolongan.AddItem "A" & CStr(I) Next For I = 1 To 6 LstKode.AddItem CStr(I) Next End Sub
ARRAY
* Pada Isi Data, Masukan nama teman anda akan terus muncul berdasarkan Hasil Input Banyak Data Listing Form : Private Sub CmdData_Click() Dim X(5) As String, Y As Byte, Z As Byte List1.Clear Z = InputBox("Masukan Banyak Data ", "Banyak Data") For Y = 1 To Z X(Y) = InputBox("Masukan Nama Teman Anda", "Isi Data") Next Y For Y = 1 To Z List1.AddItem X(Y)
19
Next Y End Sub Private Sub CmdKELUAR_Click() pesan = MsgBox("Yakin Ingin Keluar ?", vbQuestion + vbYesNo, "Informasi") If pesan = vbYes Then Unload Me End If End Sub Latihan 1:
Ketentuan Soal : 1. Jika Kode Oli = PZL, maka Merk Oli = Penzoil dan Harga Oli = 35000 Kode Oli = AG, maka Merk Oli = Agip dan Harga Oli = 30000 Kode Oli = TO, maka Merk Oli = Top One dan Harga Oli = 27500 Kode Oli =MS, maka Merk Oli = Mesrandan Harga Oli = 20000 2. Biaya Service : Untuk Mobil = 5000 dan Motor = 3500 3. Untuk Pembayaran didapat dari Harga Oli * Jumlah Beli + Biaya Service 4. Jika Pembayaran > 80000, maka mendapatkan potongan 10 % dari pembayaran 5. PPN didapat dari 5% Pembayaran 6. Untuk Total didapat dari Pembayaran Potongan + PPN 7. Untuk Uang Kembali Otomatis muncul ketika memasukkan uang bayar 8. Buatlah Pesan untuk Tombol Keluar Listing Form : Private Sub CmdCLEAR_Click() TxtKODE = "" TxtJUMLAH = "" TxtPEMBAYARAN = "" TxtPOTONGAN = "" TxtPPN = "" TxtTOTAL = "" TxtMERK = "" TxtHARGA = "" TxtSERVICE = "" TxtBAYAR = "" TxtKEMBALI = "" Option1(0).Value = False Option1(1).Value = False End Sub
20
Private Sub CmdHITUNG_Click() If Option1(0).Value = True Then TxtPEMBAYARAN = Val(TxtJUMLAH) * Val(TxtHARGA) + 5000 ElseIf Option1(1).Value = True Then TxtPEMBAYARAN = Val(TxtJUMLAH) * Val(TxtHARGA) + 3500 End If If TxtPEMBAYARAN > 80000 Then TxtPOTONGAN = 0.1 * Val(TxtPEMBAYARAN) Else TxtPOTONGAN = 0 End If TxtPPN = 0.05 * Val(TxtPEMBAYARAN) TxtTOTAL = Val(TxtPEMBAYARAN) Val(TxtPOTONGAN) + Val(TxtPPN) TxtBAYAR.SetFocus End Sub Private Sub CmdKELUAR_Click() Keluar = MsgBox("YAKIN MAU KELUAR APLIKASI INI?", vbQuestion + vbOKCancel, "TOKO OLI MOBIL DAN MOTOR FORMULA") If Keluar = vbOK Then Unload Me End If End Sub Private Sub Combo1_Click() Dim kode kode = Combo1.Text Select Case kode Case "PZL" Latihan 2 :
TxtMERK = "Penzoil" TxtHARGA = 35000 Case "AG" TxtMERK = "Agip" TxtHARGA = 30000 Case "TO" TxtMERK = "Top One" TxtHARGA = 27500 Case "MS" TxtMERK = "Mesran" TxtHARGA = 20000 End Select End Sub Private Sub Form_Load() Combo1.AddItem "PZL" Combo1.AddItem "AG" Combo1.AddItem "TO" Combo1.AddItem "MS" End Sub Private Sub Option1_Click(Index Integer) If Option1(0).Value = True Then TxtSERVICE = 5000 Else TxtSERVICE = 3500 End If TxtJUMLAH.SetFocus End Sub Private Sub TxtBAYAR_Change() TxtKEMBALI = Val(TxtBAYAR) Val(TxtTOTAL) End Sub As
Private Sub Form_Load() Combo1.AddItem "MPT" Combo1.AddItem "GRD" Combo1.AddItem "BTV" End Sub
21
Ketentuan Soal : 1. Jika Kode Pesawat = MPT, maka Nama Pesawat : Merpati Air Lines Kode Pesawat = GRD, maka Nama Pesawat : Garuda Kode Pesawat = BTV, maka Nama Pesawat : Batavia 2. Untuk Kelas MPT, Jika Kelas = Executive, Harga =1500000, Jika Kelas =Bisnis, Harga =900000, Jika Kelas = Ekonomi, Harga =500000 GRD, Jika Kelas = Executive, Harga =1200000, Jika Kelas =Bisnis, Harga =800000, Jika Kelas = Ekonomi, Harga =400000 BTV, Jika Kelas = Executive, Harga =1000000, Jika Kelas =Bisnis, Harga =700000, Jika Kelas = Ekonomi, Harga =300000 3. Total Didapat dari Harga Tiket * Jumlah Tiket Listing Form : Private Sub Chkkelas_Click(Index As Integer) If Combo1 = "MPT" Then Select Case Index Case 0 txtHarga = 1500000 Case 1 txtHarga = 900000 Case 2 txtHarga = 500000 End Select ElseIf Combo1 = "GRD" Then Select Case Index Case 0 txtHarga = 1200000 Case 1 txtHarga = 800000 Case 2 txtHarga = 400000 End Select Else Select Case Index Case 0 txtHarga = 1000000 Case 1 txtHarga = 700000 Case 2 txtHarga = 300000 End Select End If Exit Sub Select Case Index Case 0 txtHarga = Executive Case 1 txtHarga = Bisnis Case 2 txtHarga = Ekonomi End Select txtJumlah.SetFocus End Sub Private Sub cmdhitung_Click() txtTotal = Val(txtHarga) * Val(txtJumlah) End Sub Private Sub cmdlagi_Click() Combo1.Text = "Kode" Chkkelas(0) = 0 Chkkelas(1) = 0 Chkkelas(2) = 0 txtNama = "" txtHarga = "" txtJumlah = "" txtTotal = "" Combo1.SetFocus End Sub Private Sub Combo1_Click() Select Case Combo1.Text Case "MPT" txtNama = "Merpati Air Lines" Case "GRD" txtNama = "Garuda Indonesia" Case "BTV" txtNama = "Batavia Air Lines" End Select txtHarga = "" Chkkelas(0) = 0 Chkkelas(1) = 0 Chkkelas(2) = 0 End Sub
22
A. Pengertian Database
Database adalah kumpulan beberapa data yang saling berhubungan berdasarkan kode-kode tertentu sehingga membentuk sebuah sistem.
Secara hirarki database bisa digambarkan sebagai berikut :
Character
Field
Record
File
Database
Character sebagai satuan data terkecil dikumpulkan menjadi field (kolom), kumpulan field membentuk sebuah record (baris), beberapa record disimpan dalam file (tabel), dan kumpulan file akan membentuk sebuah database. Ada beberapa tipe field yang digunakan dalam pembuatan tabel pada database Visual Basic 6.0 : Tipe Field Long Currency Single Double Date/Time Text Memo Fungsi Digunakan untuk menampung data numerik untuk bilangan bulat Digunakan untuk menampung data numerik. Kelebihannya adalah currency tidak akan melakukan pembulatan bilangan pada operasi matematik Digunakan untuk menampung data numerik untuk bilangan pecahan Fungsinya sama dengan single Digunakan untuk menampung data tanggal atau jam Digunakan untuk menyimpan data karakter dengan daya tampung sebesar 255 karakter Sama dengan text tetapi dapat menampung sampai dengan 64.000 karakter
B. Membuat Database dan Tabel Untuk membuat Database dengan Visual Data Manager, Langkah-langkahnya : 1. Pilih Menu Add-Ins pada menu utama Visual Basic, lalau pilih Visual Data Manager 2. Pilih : File/New/Microsoft Access/Version 7.0 MDB 3. Berikanlah nama pada database yang akan dibuat. Dengan nama Rental Mobil sebelumnya tentukan dahulu tempat penyimpanan, simpan pada folder masing-masing . 4. Klik Kanan pada Properties, pilih New Table
23
6. Buatlah Beberapa field sebagai berikut : Name Kd_Mobil Nama_Mobil Jumlah_Mobil Harga_Sewa Type Text Text Byte Double Size 5 10
7. Jika telah selesai mengisikan field, klik Ok C. Membuat Index Index Data adalah urutan data pada tabel Database. Index data diperlukan terutama untuk pencarian data dengan cepat dan pengelompokan data. Cara membuat Index : o Pada Tampilan Table Structure, pilih Add Index
24
o o o
Ketik nama index, yaitu misalnya Kode pada kolom Name Klik kunci index pada Available Fields, otomatis Indexed Fields akan muncul. Tentukan pilihan index (Primary, Unique, IgnoreNulls). Primary digunakan sebagai pengenal suatu record, jika tabel yang bersangkutan dihubungkan dengan tabel lain (dalam satu tabel hanya boleh ada satu primary key). Unique dipilh jka ingin index bersifat unik. IgnoreNulls digunakan untuk mengabaikan field yang kosong.
D. Mengisi Data Pada Tabel Untuk mengisikan data pada tabel, Double klik pada nama tabel tersebut atau klik kananOpen :
Pada pengisian Klik Add, isi setiap fieldnya lalu klik Update. Fungsi menu yang ada pada tabel barang : o Add : menambah record baru. o Update : mengoreksi record. o Delete : menghapus record aktif. o Find : mencari record. o Refresh : menampilkan ulang setelah record mengalami perubahan. o Close : menutup tabel.
25
Jumlah Mobil 5 6 8 9 7
Koneksikan Database dengan cara : Object Properties Data1 DatabaseName RecordSource Text1 Name DataSource DataField Name DataSource DataField Name DataSource DataField Name DataSource DataField Name Caption Picture Style ToolTipText Name Caption
Nilai (Klik tombolcari database yang telah dibuat pada folder kerja) Tbl_Mobil TxtKode Data1 Kd_Mobil TxtNama Data1 Nama_Mobil TxtJumlah Data1 Jumlah_Mobil TxtHarga Data1 Harga_Sewa CmdTop <kosongkan> C:\Program Files\Microsoft Studio\Vfp98\Wizard\Graphics\Top 1 Graphical Top CmdPrevious <kosongkan>
Text2
Text3
Text4
Command1
Visual
Command2
26
Command3
Visual
Command4
Visual
Private Sub CmdNEXT_Click() Data1.Recordset.MoveNext If Data1.Recordset.EOF Then MsgBox "Sudah Akhir Record", , "Info" Data1.Recordset.MoveLast End If End Sub Private Sub Cmdsimpan_Click() Data1.Recordset.Update End Sub Private Sub CmdTambah_Click() Data1.Recordset.AddNew End Sub Private Sub CmdTOP_Click() Data1.Recordset.MoveFirst End Sub
1. Buat Database dengan nama : Penjualan, sebelumnya tentukan dahulu tempat penyimpanan difolder masing-masing. 2. Buat Tabel Baru dengan nama : Tbl_Barang
27
10
3. Buat Index dengan nama : Kode dari Kd_Brg 4. Isi Tabel sebanyak 5 Record Kd_Brg BKSD1 PGH01 PGR01 PLG01 PSL2B Nm_Brg Buku Sinar Dunia Penghapus Pengaris Pulpen Gel Warna Pensil 2B Harga 25000 4500 5000 11000 2500 Stok 75 20 30 35 45 Satuan Buah Buah Unit Buah Unit
Microsoft Data Bound Grid Control 5.0 (SP3), Name : DBGrid1 Cara Menambah Objek baru pada Toolbox yaitu dengan : CTRL + T atau Klik kanan pada ToolBox pilih Component, atau Klik menu Project pada menu utama VB, pilih Component. Objek Command1 Command2 Timer1 Data1 Properties Name Enabled Name Enabled Interval DatabaseName RecordSource Name DataSource Nilai CmdSimpan False CmdBatal False 100 (Klik tombolcari database) Tbl_Barang BARANG BARANG
DBGrid1
28
Private Sub CmdCARI_Click() cari = InputBox("Masukan Kode Yang Dicari", "Pencarian") temukan = "kd_brg= ' " & cari & " ' " Barang.Recordset.FindFirst temukan If Barang.Recordset.NoMatch Then MsgBox "Data Tidak Ditemukan", 48, "Informasi" Else tampil End If End Sub Private Sub CmdEND_Click() Barang.Recordset.MoveLast tampil End Sub Private Sub CmdHAPUS_Click() If MsgBox("Yakin Akan Hapus Data ?", vbYesNo + vbQuestion, "Info") = vbYes Then Barang.Recordset.Delete Barang.Recordset.MoveLast tampil End If End Sub Private Sub CmdKELUAR_Click() pesan = MsgBox("Yakin Mau Keluar Program?", vbYesNo + vbQuestion, "Perhatian") If pesan = vbNo Then Cancel = 1 Else End End If End Sub Private Sub CmdNEXT_Click() On Error Resume Next Barang.Recordset.MoveNext tampil If Barang.Recordset.EOF Then MsgBox "Sudah Akhir Record", 48, "Informasi" Barang.Recordset.MoveLast tampil End If End Sub
29
30
Jurusan Manajemen Informatika Komputerisasi Akutansi Teknik Komputer Manajemen Informatika Teknik Komputer
Listing Form : Private Sub CmdTampil_Click() Private Sub Cmdselesai_Click() Data1.RecordSource = Text1.Text Pesan = MsgBox("Yakin Nih Ingin Keluar ?", 32 + 1, "Info") Data1.Refresh If pesan = vbOK Then End Sub End Else Pesan = MsgBox(Ga Jadi Keluar Ah!, vbInformation + vbOkOnly, Informasi) End If End Sub Proses Program : Cara menjalankan program dengan mengetikkan perintah SQL pada Text Box, kemudian klik Command Tampil Data maka data yang dimunculkan pada DBGrid1 akan terseleksi dengan perintah SQL yang diketik. Buatlah perintah SQL dibawah ini : 1. Select nim, nama, kelas from Tbl_Mhs 2. Select * from Tbl_Mhs 3. Select * from Tbl_Mhs where jurusan = Teknik Komputer 4. Select * from Tbl_Mhs where ipk > 3.00 5. Select * from Tbl_Mhs order by nama 6. Select * from Tbl_Mhs order by ipk
31
Relasi One to One adalah hubungan antara file pertama dengan file kedua adalah satu berbanding satu. Latihan : 1. Buat Database Elektronik Simpan difolder masing-masing. 2. Buat Tabel dengan nama : Tbl_Barang Name Kd_Brg Nm_Brg Harga Type Text Text Currency Size 5 20 Kd_Brg LMR2P MSNCI TVL14
3. Buat Index dengan nama Kode 4. Lalu buat Tabel satu lagi dengan nama : Tbl_Jual Name No_Faktur Tanggal Kd_Brg Jml_Beli Total Type Size Text 5 Date/time Text 5 Byte Currency
Objek Data1
Nilai (Klik tombolcari database) Barang Tbl_Barang (Klik tombolcari database) Jual Tbl_Jual
Data2
32
Private Sub CmdBatal_Click() kosong nonaktif CmdTAMBAH.SetFocus End Sub Private Sub CmdKELUAR_Click() pesan = MsgBox("Yakin Nih Ingin Keluar ?", 32 + 1, "Info") If pesan = vbOK Then End End If End Sub Private Sub CmdSIMPAN_Click() Jual.Recordset.AddNew Jual.Recordset!No_Faktur = TxtNo Jual.Recordset!Tanggal = CDate(Tgl.Value) Jual.Recordset!kd_brg = Combo1 Jual.Recordset!Jml_Beli = Val(TxtJumlah) Jual.Recordset!Total = Val(TxtTotal) Jual.Recordset.Update nonaktif CmdTAMBAH.SetFocus End Sub Private Sub CmdTAMBAH_Click() kosong aktif TxtNo.SetFocus End Sub Private Sub Combo1_Change() tampilnama End Sub Private Sub Combo1_Click() tampilnama End Sub
33
3. Buat Index dengan nama : nomor, dengan pilihan index Primary saja 4. Isikan Data pada Tbl_Siswa sebanyak 5 Record 5. Buat Tabel : Tbl_Nilai Name Nim MatKul Nilai Type Text Integer Size 5 15
34
LNM & Asisten Objek Data1 Properties DatabaseName RecordSource Caption DatabaseName RecordSource Visible Nilai (Klik tombolcari database) Tbl_Siswa Data Mahasiswa (Klik tombolcari database) Tbl_Siswa False Data1 Nim Data1 Nama Data1 Kelas Data2
Data2
Sub Tampil() TxtNIM.Text = Data1.Recordset!Nim TxtNama.Text = Data1.Recordset!Nama TxtKELAS.Text = Data1.Recordset!Kelas End Sub Private Sub CmdBack_Click() On Error Resume Next Data1.Recordset.MovePrevious Tampil If Data1.Recordset.BOF Then MsgBox "Sudah Awal Record" Data1.Recordset.MoveFirst Tampil End If End Sub Private Sub Cmddelete_Click() If MsgBox("yakin akan hapus data?", vbYesNo, "info") = vbYes Then Data2.Recordset.Delete Data2.Recordset.MoveLast End If End Sub Private Sub CMDEDIT_Click() DBGrid1.AllowUpdate = True DBGrid1.SetFocus End Sub Private Sub CmdEnd_Click() Data1.Recordset.MoveLast Tampil End Sub
Private Sub CmdExit_Click() End End Sub Private Sub Cmdinput_Click() DBGrid1.SetFocus DBGrid1.Col = 1 Data2.Recordset.AddNew Data2.Recordset!Nim = TxtNIM.Text Data2.Recordset.Update DBGrid1.AllowAddNew = True DBGrid1.AllowUpdate = True DBGrid1.SetFocus End Sub Private Sub CmdNext_Click() On Error Resume Next Data1.Recordset.MoveNext Tampil If Data1.Recordset.EOF Then MsgBox "Sudah Akhir Record" Data1.Recordset.MoveLast Tampil End If End Sub Private Sub CmdSave_Click() DBGrid1.AllowAddNew = False DBGrid1.AllowUpdate = False End Sub Private Sub CmdTop_Click() Data1.Recordset.MoveFirst Tampil End Sub
35
Private Sub Txtnim_Change() Data2.RecordSource = "select * from tbl_nilai where nim='" & TxtNIM.Text & "'" Data2.Refresh End Sub
Pilih Use Connection String lalu klik lalu pada Tab Data link Properties pilih Tab Provider kemudian pilih Microsoft Jet 4.0 OLE DB Provider klik Next. 3. Pada Tab Connection pilih nama Database yang akan digunakan yaitu : Penjualan, klik Test Connection, OK, Klik OK. 4. Pilih Properties RecordSource (Masih pada Adodc1), ), klik lalu pada Tab Property Pages pilih Command Type : 2-adCmdTable, lalu pada Table or Stored Procedure Name pilih tabel yang akan digunakan yaitu : Tbl_Barang, klik Apply, Klik OK. Objek Text1 Text2 Text3 Adodc1 Command5 Visible Name Caption Picture Properties Nilai Adodc1 Kd_Brg Adodc1 Nm_Brg Adodc1 Harga False CmdNew <kosongkan> C:\Program Files\Microsoft Visual Studio\Common\Graphics\Bitmaps\OffCtl Br \Large\Color\New 1 Graphical CmdSave <kosongkan>
DataSource DataField
36
Style Command7 Command8 Command9 Listing Form: Name Caption Name Caption Name Caption
Private Sub Cmdback_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst MsgBox "Awal Record", , "info" End If End Sub Private Sub Cmdbatal_Click() Adodc1.Recordset.CancelUpdate End Sub Private Sub Cmdend_Click() Adodc1.Recordset.MoveLast End Sub Private Sub CmdExit_Click() Pesan = MsgBox("Yakin Nih Ingin Keluar ?", 32 + 1, "Info") If pesan = vbOK Then End Else Pesan = MsgBox(Ga Jadi Keluar Ah!, vbInformation + vbOkOnly, Informasi) End If End Sub Private Sub Cmdhapus_Click() On Error Resume Next If MsgBox("yakin akan hapus data?", vbQuestion + vbYesNo, "info") = vbYes Then Adodc1.Recordset.Delete adAffectCurrent If Adodc1.Recordset.BOF Then
MsgBox "Data udah kosong", , "info" Else Adodc1.Recordset.MoveLast End If End If End Sub Private Sub Cmdnext_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast MsgBox "Akhir Record", , "info" End If End Sub Private Sub Cmdsimpan_Click() On Error Resume Next Adodc1.Recordset.Update MsgBox "data sudah tersimpan", , "penyimpanan" Exit Sub pesan: MsgBox "isikan kode yang lainnya", , "info" Exit Sub End Sub Private Sub Cmdtambah_Click() Adodc1.Recordset.AddNew Text1.SetFocus End Sub Private Sub Cmdtop_Click() Adodc1.Recordset.MoveFirst End Sub
37
Bagian Bagian Data Report : Bagian Report Header Page Header Detail Page Footer Report Footer Keterangan Berisi Judul Laporan Berisi Judul Kolom data yang akan ditampilkan Berisi nama field yang akan ditampilkan pada kolom Berisi catatan kaki di akhir kolom-kolom report Berisi catatan kecil/ keterangan report
Selain Jendela Report, Pada Toolbox akan muncul Tab Data Report yaitu : Nama Kontrol RtpTexBox RptLine Keterangan Kontrol serupa textbox yang hanya menampilkan teks database saat runtime. Kontrol yang dapat menggambar garis secara horizontal, vertical, maupun diagonal.
38
Lalu pada Command1yaitu Lap_Barang Drag ke Data Design (Tempatkan Pada Bagian Detail). Kemudian Atur field-fieldnya Sebagai Berikut
12.
Lalu atur Properties Data Report sebagai berikut : Name DataReport1 DataSource Data Environment1 Data Member Lap_Barang Untuk Melihat Hasilnya yaitu klik MenuBar Project pilih Project1Properties pada Star Up Object pilih Data Report1. lalu Run, Lihatlah Hasilnya.
13.
39
Untuk menyisipkan pilihan baru (menu) diatas sebuah menu Untuk menghapus sebuah menu
Caption Level 1 &File Level 2 &DataBarang &Transaksi Level 3 Name mnuFile mnuDataBarang mnugaris1 mnuTransaksi mnugaris2
40
Private Sub mnuLaporanBarang_Click() DataReport1.Show End Sub Private Sub mnuPenjualan_Click() FrmJual.Show End Sub Private Sub mnuTransaksi_Click() FrmTransaksi.Show End Sub
4. Catatan : FrmBarang : (Form Toko Beruntung), FrmTransaksi : (Form ADODC), dan FrmJual : (Form One to One). 5. Pada MDI Form1 Properties yang dirubah yaitu Picture (Cari Gambar di C:/Master/Full Clipart/Clipart/cari Gambar yang disukai) dan WindowState : 2Maximized. 6. Setelah selesai klik OK dan simpanlah proyek dan formnya dengan nama MDIFrmMenu. 7. Untuk Melihat Hasilnya yaitu klik MenuBar Project pilih Project1Properties pada Star Up Object pilih MDIForm1. lalu Run, maka Hasilnya sebagai berikut :
41
Ketentuan Soal : 1. Buatlah Database : Rental_Film, simpan difolder masing-masing. 2. Buat Tabel : PELANGGAN Kd_pel Nm_pel Alamat Text Text Text 5 20 30
Isi Tabel PELANGGAN : Kd_pel P0001 P0002 P0003 P0004 P0005 Nm_pel Aisyah Fani Reza Hadi Adi Alamat Jakarta Timur Tanjung Priuk Kuningan Bekasi Cawang
Buat Index : Kd_pel, Primary 3. Buat Tabel : VCD Kd_film Judul Harga Text Text Currency 5 25
Isi Tabel VCD : Kd_film F0001 F0002 F0003 F0004 F0005 Judul Pasir Berbisik Manajemen Qolbu Ketika Mas Gagah Pergi Keajaiban Penciptaan Kiamat Sudah Dekat Harga 35000 50000 45000 55000 40000
Buat Index : Kd_film, Primary 4. Buat Tabel : SEWA Kd_sewa Text 5 Tgl_sewa Date/Time Kd_film Text 5 Kd_pel Text 5 Jumlah Integer Bayar Currency Buat Index : Kd_sewa, Primary
Private Sub Cmdbaru_Click() kosong Txtkodepel.SetFocus End Sub Private Sub Cmdbatal_Click() kosong Cmdsimpan.SetFocus End Sub
42
Private Sub Txtkodefilm_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then cari = "kd_film=' " & Txtkodefilm & " ' " VCD.Recordset.FindFirst cari If Data1.Recordset.NoMatch Then MsgBox "Data tidak terdaftar", , "info" Else Txtjudul = VCD.Recordset!judul Txtharga = VCD.Recordset!harga End If End If End Sub Private Sub Txtkodepel_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then cari = "kd_pel=' " & Txtkodepel & " ' " PELANGGAN.Recordset.FindFirst cari If PELANGGAN.Recordset.NoMatch Then MsgBox "pelanggan tidak terdaftar", , "info" Txtkodepel.SetFocus Txtkodepel = "" Else Txtnamapel = PELANGGAN.Recordset!nm_pel End If End If End Sub Private Sub Txtkodesewa_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then cari = "kd_sewa=' " & Txtkodesewa & " ' " SEWA.Recordset.FindFirst cari If SEWA.Recordset.NoMatch Then Txttanggal.SetFocus Else MsgBox "data sudah ada, isikan kode yang lain", , "info" Txtkodesewa.SetFocus Txtkodesewa = "" End If End If End Sub
43
1. 2. 3. 4.
Buat Database dengan nama : Toko_Bunga Buat Tabel : Bunga Isikan Data Tabel sesuai dengan data yang tersedia diForm Harga Bayar dan Discount akan terisi secara otomatis tampil apabila meng-input Jumlah Beli. a. Harga Bayar = Harga Buku * Jumlah Beli b. Mendapat Discount 10 % dari harga Bayar apabila Jumlah Beli >=10 Mendapat Discount 5 % dari Harga Bayar apabila Jumlah Beli >=5 Selain itu tidak dapat Discount c. Total Bayar diperoleh dari Harga-Discount Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF Combo1.AddItem (Data1.Recordset!Kode_Bunga) Data1.Recordset.MoveNext Loop ni: End Sub Sub kosong() TxtNama = "" TxtHarga = "" TxtJumlah = "" TxtHarga = "" TxtDiskon = "" TxtTotal = "" Combo1 = "" End Sub
Dim Tambah As Boolean Sub tampilnama() cari = "Kode_Bunga='" & Combo1.Text & "'" Data1.Recordset.FindFirst cari If Data1.Recordset.NoMatch Then GoTo ni Else TxtNama = Data1.Recordset!Nama_Bunga TxtHarga = Data1.Recordset!Harga_Bunga End If ni: End Sub Sub tampilkode() If Data1.Recordset.RecordCount <= 0 Then GoTo ni End If
44
Latihan 3 : Ketentuan : 1. Buat Database : Restoran 2. Buat 3 buah Tabel yaitu :Tbl_Makanan, Tbl_Minuman, Tbl_Transaksi Tbl_Makanan Kd_Mkn Nama_Mkn Harga_Mkn BS01 Bakso Rudal 6000 BS02 Bakso Super 5500 BS03 Bakso Campur 7000 MA01 Mie Ayam Spc 4500 MA02 Mie Ayam Bawang 6500 Tbl_Minuman
45
3. 4. 5. 6. 7.
Kd_Mn Nama_Mn Harga_Mn AQ01 Aqua Fruit 2500 AQ02 Air Mineral 1000 EJ03 Es Jeruk 3000 TS01 Tea Botol 2000 TS02 Tea Manis 1500 Untuk Tbl_Transaksi desain tabel berisi data dari kedua tabel. Untuk Total Bayar Otomatis muncul ketika Input jumlah makanan dan jumlah minuman dan kursor berada di Uang Bayar. Total Bayar didapat dari = (Harga Makanan * Jumlah Makanan) + (HargaMinuman * Jumlah Minuman). Uang Kembali otomatis muncul ketika memasukkan Uang Bayar. Buatlah Pesan Keluar dan Pesan Tidak Jadi Keluar
Dim Tambah As Boolean Sub kosong() TxtBayar = "" TxtMakan = "" TxtMinum = "" TxtHargaMak = "" TxtHargaMin = "" TxtJmlMakan = "" TxtJmlMinum = "" TxtBayar = "" TxtKembali = "" End Sub
Sub aktif() TxtBayar.Enabled = True TxtMakan.Enabled = True TxtMinum.Enabled = True TxtHargaMak.Enabled = True TxtHargaMin.Enabled = True TxtJmlMakan.Enabled = True TxtJmlMinum.Enabled = True TxtBayar.Enabled = True TxtKembali.Enabled = True End Sub
46
Private Sub CmdSave_Click() Transaksi.Recordset.AddNew Transaksi.Recordset!Nama_Mkn = TxtMakan Transaksi.Recordset!Harga_Mkn = TxtHargaMak Transaksi.Recordset!Jml_Mkn = TxtJmlMakan Transaksi.Recordset!Nama_Mn = TxtMinum Transaksi.Recordset!Harga_Mn = TxtHargaMin Transaksi.Recordset!Jml_Mn = TxtJmlMinum Transaksi.Recordset!Total = TxtTotal Transaksi.Recordset!Bayar = TxtBayar Transaksi.Recordset!Kembali = TxtKembali Transaksi.Recordset.Update End Sub
Private Sub TxtBayar_Change() TxtKembali = Val(TxtBayar) Val(TxtTotal) End Sub Private Sub TxtJmlMinum_Change() TxtTotal = (Val(TxtHargaMak) * Val(TxtJmlMinum) + Val(TxtHargaMin) * Val(jmlminum)) End Sub Private Sub TxtJmlMinum_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TxtBayar.SetFocus End If End Sub
47