Membuat Program Penjualan Visual Basic 2 : Membuat Form Buku
Pada tutorial ke 2 ini kita belajar bagaimana membuat form untuk program penjualan buku yang akan kita buat. Dan setelah itu Form form berikutnya akan menyusul.
B. MEMBUAT FORM
- Buatlah project baru dengan memilih FILE – NEW PROJECT – STANDARD EXE.
– Buatlah sebuah form baru (jika belum terbuka secara otomatis) dengan cara memilih ADD FORM – FORM.
1. Membuat FORM BUKU
– Isilah form kosong yang baru kita buat tadi dengan isi dan properties sebagai berikut:
NAME
|
CAPTION/TEXT
|
KETERANGAN
|
TAMBAHAN
|
|
Label1 | Jenis buku | Label | ||
Label2 | Kode buku | Label | ||
Label3 | Judul buku | Label | ||
Label4 | Pengarang | Label | ||
Label5 | Penerbit | Label | ||
Label6 | Tahun terbit | Label | ||
Label7 | Harga | Label | ||
Label8 | Stok | Label | ||
Label9 | Masukan kode | Label | ||
Cbojenis |
-
|
Combo Box | ||
Txtkd1 |
-
|
Textbox | ||
Txtkode |
-
|
Textbox | ||
Txtjudul |
-
|
Textbox | ||
Txtkarang |
-
|
Textbox | ||
Txtterbit |
-
|
Textbox | ||
Txttahun |
-
|
Textbox | ||
Txtharga |
-
|
Textbox | ||
Txtstok |
-
|
Textbox | ||
Txtfind |
-
|
Textbox | ||
Cmdadd | &add | Command Button | ||
Cmdclear | &clear | Command Button | ||
Cmdsave | &save | Command Button | ||
Cmdedit | &edit | Command Button | ||
Cmddelete | &delete | Command Button | ||
Cmdexit | &exit | Command Button | ||
Data1 |
-
|
Data | ||
Dbgrid1 |
-
|
Dbgrid | Data source : data1 | |
Buku | Data Buku | Form | ||
Cmdprint | Command Button | Jika punya Crystal Report | ||
CR |
-
|
Crystal Report | Jika punya Crystal Report |
- Simpan Form Buku yang telah kita buat dengan nama BUKU.frm
- Adapun LISTING PROGRAM dari Form buku ini adalah:
Private Sub Form_Load() Data1.DatabaseName = App.Path & "/buku.mdb" Data1.RecordSource = "select * from Table_buku order by Kode_buku" Cbojenis.additem “AGAMA” Cbojenis.additem “KOMPUTER” Cbojenis.additem “PENDIDIKAN” Cbojenis.additem “UMUM” Cbojenis.additem “NOVEL” Cbojenis.additem “KOMIK” End Sub 'APP.PATH digunakan untuk menyambungkan form ini ke database dan kelebihannya adalah apabila program yang anda buat dipindahkan ke folder atau tempat lain, anda tidak perlu susah payah untuk menyambungkan databasenya lagi. 'DATABASENAME berisi database yang telah kita buat (buku.mdb). 'RECORDSOURCE berisi table yang kita buat pada database tersebut (table_buku). 'SELECT disini adalah salah satu perintah SQL untuk memilih suatu data. 'Tanda * maksudnya adalah Semua data. 'ORDER BY maksudnya data diurutkan berdasarkan field tertentu (kode_buku). 'ADDITEM berguna agar ketika kita meng klick suatu combobox maka disitu akan muncul daftar tulisan yang kita tulis pada combobox tersebut (cbojenis) contohnya: Agama, komik, dll. Sub aktif() TXTKODE.Enabled = True TXTJUDUL.Enabled = True TXTKARANG.Enabled = True TXTTERBIT.Enabled = True TXTTAHUN.Enabled = True TXTHARGA.Enabled = True TXTSTOK.Enabled = True End Sub Sub nonaktif() TXTJUDUL.Enabled = False TXTKARANG.Enabled = False TXTTERBIT.Enabled = False TXTTAHUN.Enabled = False TXTHARGA.Enabled = False TXTSTOK.Enabled = False End Sub 'ENABLED digunakan untuk memilih apakah suatu objek bisa dipakai ketika form dijalankan atau tidak. 'Jika ENABLED = TRUE maka object tersebut bisa dipakai. 'Jika ENABLED = FALSE maka object tersebut tidak bisa dipakai. Private Sub Form_Activate() Call nonaktif TXTKODE.Enabled = False txtkd1.Enabled = False CBOJENIS.Enabled = False CMDCLEAR.Enabled = False CMDSAVE.Enabled = False CMDEDIT.Enabled = False CMDDELETE.Enabled = False End Sub 'Isi dari ACTIVATE adalah objek objek yang dijalankan pertama kali ketika form dijalankan. 'CALL digunakan untuk memanggil suatu sub tertentu dan akan mengeksekusi isi dari sub tersebut. 'Untuk contoh diatas CALL NONAKTIF maksudnya dia akan memanggil Sub Nonaktif dan mengeksekusi isi dari sub tersebut (lihat isi dari sub nonaktif diatas). Jadi kita tidak perlu menulis ulang isi dari sub yang kita panggil sehingga hanya memanggil nama sub tersebut saja. 'Tapi perintah CALL tidak dipakai juga tidak apa apa jadi langsung tulis aja disitu misalkan NONAKTIF. Private Sub CBOJENIS_Click() TXTKODE.Enabled = True TXTKODE.Text = "" TXTKODE.SetFocus If CBOJENIS.Text = "AGAMA" Then txtkd1.Text = "AG" Else If CBOJENIS.Text = "KOMPUTER" Then txtkd1.Text = "KP" Else If CBOJENIS.Text = "PENDIDIKAN" Then txtkd1.Text = "PD" Else If CBOJENIS.Text = "UMUM" Then txtkd1.Text = "UM" Else If CBOJENIS.Text = "NOVEL" Then txtkd1.Text = "NV" Else If CBOJENIS.Text = "KOMIK" Then txtkd1.Text = "KM" End If End If End If End If End If End If End Sub 'SET FOCUS digunakan agar posisi kursor pindah ke suatu objek yang diinginkan. 'Maksud dari logika IF diatas adalah: 'Jika cbojenis yang ada di form = AGAMA, maka isi dari txtkd1 yang ada di form adalah AG. 'Selain itu Jika cbojenis yang ada di form = KOMPUTER, maka isi dari txtkd1 yang ada di form adalah KP. Selain itu …….. dan seterusnya. 'Logika IF harus diakhiri dengan END IF. Private Sub TXTKODE_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Data1.Recordset.FindFirst "Kode_buku=’" & (txtkd1.Text & TXTKODE.Text) & "’" & "" If Not Data1.Recordset.NoMatch Then MsgBox "Kode sudah ada !", vbOKOnly, "peringatan" Else Call aktif TXTJUDUL.SetFocus End If End If If Not (IsNumeric(Chr(KeyAscii)) Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub 'IF KEY ASCII =13 Digunakan apabila anda menggunakan suatu objek dengan cara menekan enter. 'FINDFIRST digunakan untuk melakukan pencarian. Untuk contoh diatas dilakukan proses pencarian kode buku yang ada pada database yang isinya sama dengan tulisan yang ada di txtkd1 dan txtkode. 'NO MATCH maksudnya apabila data yang kita cari di database tidak ditemukan. 'MSGBOX adalah perintah untuk memunculkan suatu pesan. 'Maksud dari logika pencarian tadi adalah jika anda memasukan kode baru dan ternyata kode tersebut telah ada di database maka akan muncul pesan tadi. Disinilah proses pencarian data terjadi. 'Sedangkan 'If Not (IsNumeric(Chr(KeyAscii)) Or KeyAscii = vbKeyBack) Then ' Beep ' KeyAscii = 0 'End If 'Digunakan agar pengguna program / user tidak dapat memasukan data ke dalam objek kecuali data itu berupa angka atau nomor. Private Sub TXTFIND_Change() Data1.RecordSource = "SELECT*FROM Table_buku WHERE Kode_buku LIKE’*" & TXTFIND.Text & "*’" DBGrid1.Refresh Data1.Refresh CMDEDIT.Enabled = True CMDDELETE.Enabled = True If Data1.Recordset.EOF Then MsgBox "DATA TIDAK ADA !" CMDEDIT.Enabled = False CMDDELETE.Enabled = False End If If TXTFIND.Text = "" Then CMDEDIT.Enabled = False CMDDELETE.Enabled = False End If End Sub 'Maksud dari logika pencarian diatas adalah melakukan pencarian data dari Table buku yang mana Field Kode Bukunya mirip seperti apa yang kita tulis pada txtfind (walaupun hanya 1 huruf saja). 'EOF kepanjangan dari End Of File atau akhir dari file tapi yang dimaksud disini adalah apabila data yang kita cari tidak kita temukan. 'REFRESH digunakan untuk merefresh (menyegarkan kembali) atau maksudnya adalah objek tersebut di Load atau dimuat ulang agar terlihat efek dari perubahannya. Sub kosong() TXTJUDUL.Text = "" TXTKARANG.Text = "" TXTTERBIT.Text = "" TXTTAHUN.Text = "" TXTHARGA.Text = "" TXTSTOK.Text = "" End Sub 'Yang dimaksud dengan tanda "" adalah bahwa isi dari objek tersebut kosong. Private Sub CMDADD_Click() Call kosong CBOJENIS.Enabled = True CMDADD.Enabled = False CMDCLEAR.Enabled = True CMDSAVE.Enabled = True CMDEDIT.Enabled = False CMDDELETE.Enabled = False TXTFIND.Enabled = False End Sub Private Sub CMDCLEAR_Click() txtkd1.Text = "" TXTKODE.Text = "" CBOJENIS.Text = "" TXTKODE.Enabled = False CBOJENIS.Enabled = False txtkd1.Enabled = False Call kosong Call nonaktif TXTFIND.Text = "" CMDADD.Enabled = True CMDSAVE.Enabled = False CMDCLEAR.Enabled = False TXTFIND.Enabled = True End Sub Private Sub CMDSAVE_Click() With Data1.Recordset .AddNew !Kode_buku = (txtkd1.Text & TXTKODE.Text) !Judul_buku = TXTJUDUL.Text !Jenis_buku = CBOJENIS.Text !Karang_buku = TXTKARANG.Text !Terbit_buku = TXTTERBIT.Text !Tahun_buku = TXTTAHUN.Text !Harga_buku = Val(TXTHARGA.Text) !Stok_buku = Val(TXTSTOK.Text) .Update End With Data1.Refresh DBGrid1.Refresh MsgBox "data telah disimpan" Call nonaktif CMDADD.Enabled = True CMDCLEAR.Enabled = False CMDEDIT.Enabled = False CMDDELETE.Enabled = False TXTFIND.Enabled = True CMDSAVE.Enabled = False Call kosong TXTKODE.Text = "" txtkd1.Text = "" CBOJENIS.Text = "" TXTKODE.Enabled = False CBOJENIS.Enabled = False End Sub 'Perintah WITH digunakan untuk menyingkat tulisan logika yang kita buat. 'WITH harus diakhiri dengan END WITH 'Contoh diatas adalah With data1.recordset 'lalu setelahnya muncul tulisan .AddNew dan !Kode_buku = (txtkd1.Text & TXTKODE.Text) dst… 'tulisan asli dari tulisan tersebut jika tanpa memakai With adalah: 'data1.recordset.AddNew 'data1.recordset!kode_buku = ……. dan seterusnya… 'Rumus utama dari perintah SAVE sebenarnya adalah: 'Data1.recordset.Addnew 'Data1.recordset!NamaFileDiDatabase = NamaObjekYangAdaDiForm 'Data1.recordset.update Private Sub CMDEDIT_Click() If CMDEDIT.Caption = "&EDIT" Then Call tampil Call aktif CMDSAVE.Enabled = False CMDCLEAR.Enabled = False CMDADD.Enabled = False CMDDELETE.Enabled = False CMDEDIT.Caption = "&UPDATE" TXTFIND.Enabled = False Else With Data1.Recordset .Edit !Kode_buku = (txtkd1.Text & TXTKODE.Text) !Judul_buku = TXTJUDUL.Text !Jenis_buku = CBOJENIS.Text !Karang_buku = TXTKARANG.Text !Terbit_buku = TXTTERBIT.Text !Tahun_buku = TXTTAHUN.Text !Harga_buku = Val(TXTHARGA.Text) !Stok_buku = Val(TXTSTOK.Text) .Update End With Call kosong CMDEDIT.Caption = "&EDIT" CMDADD.Enabled = True CMDEDIT.Enabled = False Call nonaktif TXTFIND.Text = "" TXTKODE.Text = "" txtkd1.Text = "" CBOJENIS.Text = "" TXTFIND.Enabled = True End If End Sub 'Maksud dari logika IF yang pertama (CAPTION) adalah Jika cmdedit bertuliskan “Edit” maka ……….dst 'Jika tidak (bertuliskan ”update”) maka ………………….dst 'Rumus utama dari perintah EDIT/UPDATE sebenarnya adalah: 'Data1.recordset.Edit 'Data1.recordset!NamaFileDiDatabase = NamaObjekYangAdaDiForm 'Data1.recordset.update Sub tampil() On Error Resume Next With Data1.Recordset CBOJENIS.Text = !Jenis_buku txtkd1.Text = Left(!Kode_buku, 2) TXTKODE.Text = Right(!Kode_buku, 4) TXTJUDUL.Text = !Judul_buku TXTKARANG.Text = !Karang_buku TXTTERBIT.Text = !Terbit_buku TXTTAHUN.Text = !Tahun_buku TXTHARGA.Text = !Harga_buku TXTSTOK.Text = !Stok_buku End With End Sub 'Dibagian tombol Edit/Update yang sebelumnya ada tulisan CALL TAMPIL fungsinya untuk memanggil Sub Tampil seperti yang diatas ini. Maksudnya ketika user menekan tombol Edit maka data yang akan di Edit/diRubah ditampilkan pada tiap textbox dan combobox yang ada di form. 'ON ERROR RESUME NEXT berfungsi apabila terjadi kesalahan atau Error, maka kesalahan tersebut diabaikan dan langsung menuju ke perintah berikutnya. 'Maksud dari logika diatas adalah: 'CBOJENIS.Text = !Jenis_buku 'Isi dari cbojenis yang ada di form adalah field jenis buku yang ada di database. dan seterusnya… 'txtkd1.Text = Left(!Kode_buku, 2) 'Isi dari txtkd1 yang ada di form adalah field kode buku yang ada di database diambil 2 huruf dari kiri. 'contoh: jika kode adalah AG0010 maka txtkd1 isinya adalah “AG” 'TXTKODE.Text = Right(!Kode_buku, 4) 'Isi dari txtkode yang ada di form adalah field kode buku yang ada di database diambil 4 huruf dari kanan. 'contoh: jika kode adalah AG0010 maka txtkd1 isinya adalah “0010” Private Sub CMDDELETE_Click() CMDADD.Enabled = False CMDCLEAR.Enabled = False CMDEDIT.Enabled = False a = MsgBox("YAKIN ANDA MAU MENGAHAPUS DATA INI ?", vbQuestion + vbYesNo, "KONFIRMASI") If a = vbYes Then Data1.Recordset.Delete TXTKODE.Text = "" txtkd1.Text = "" CBOJENIS.Text = "" Call kosong MsgBox "DATA TELAH BERHASIL DIHAPUS", vbOKOnly, "INFO" TXTFIND.Text = "" TXTFIND.Enabled = True Data1.Refresh DBGrid1.Refresh CMDADD.Enabled = True Else CMDDELETE.Enabled = False CMDADD.Enabled = True TXTFIND.Text = "" TXTFIND.Enabled = True End If End Sub 'Maksud dari logika MSGBOX diatas adalah sebagai berikut: 'Huruf ”a” disini dinilai sama dengan Msgbox atau pesan (untuk penampungan nilai sementara). 'VBQUESTION + VBYESNO digunakan untuk memunculkan tombol YES dan NO pada saat pesan tersebut muncul. 'Jika pada Msgbox atau pesan dipilih tombol YES, maka program dibawahnya akan dijalankan. 'VBOKONLY digunakan untuk memunculkan tombol OKE saja pada saat pesan tersebut muncul. 'FORMAT MSGBOX : 'Msgbox “IsiPesan”, JenisTombolPesan, ”JudulPesan” 'Rumus utama dari perintah DELETE adalah Data1.Recordset.Delete Private Sub CMDEXIT_Click() Unload Me End Sub Private Sub CMDPRINT_Click() ‘CR.ReportFileName = App.Path & "\BUKU.rpt" ‘CR.WindowState = crptMaximized ‘CR.RetrieveDataFiles ‘CR.Action = 1 End Sub
PERHATIAN: CMDPRINT hanya dipakai jika anda mempunyai software pembuat laporan yang bernama CRYSTAL REPORT. Jika tidak punya, silahkan hapus rumusnya. Tapi jika anda punya, gunakan listing program tersebut dan hilangkan tanda petik di depan rumusnya. Untuk keterangan lebih lanjut baca Tutorial Membuat Laporan dengan Crystal Report.
- Jangan lupa untuk mengganti Name dari form ini di properties menjadi ”Buku” dan menyimpannya dengan nama ”Buku.frm”.
Selesai Juga Dech Tutorialnya....
Terimakasih Atas Kunjungannya....
Semoga Ilmu Yang Sedikit Ini Bermanfaat....
Jangan Lupa Like Post Ini Ya.... Terimakasih....
0 komentar:
Posting Komentar