Selamat Datang di TyA'oNeRz.blogspot.com !!!

Jam Dinding

Selasa, 16 Agustus 2011

Membuat Program Penjualan Visual Basic 2 : Membuat Form Buku


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
Label1Jenis bukuLabel
Label2Kode bukuLabel
Label3Judul bukuLabel
Label4PengarangLabel
Label5PenerbitLabel
Label6Tahun terbitLabel
Label7HargaLabel
Label8StokLabel
Label9Masukan kodeLabel
Cbojenis
-
Combo Box
Txtkd1
-
Textbox
Txtkode
-
Textbox
Txtjudul
-
Textbox
Txtkarang
-
Textbox
Txtterbit
-
Textbox
Txttahun
-
Textbox
Txtharga
-
Textbox
Txtstok
-
Textbox
Txtfind
-
Textbox
Cmdadd&addCommand Button
Cmdclear&clearCommand Button
Cmdsave&saveCommand Button
Cmdedit&editCommand Button
Cmddelete&deleteCommand Button
Cmdexit&exitCommand Button
Data1
-
Data
Dbgrid1
-
DbgridData source : data1
BukuData BukuForm
Cmdprint&printCommand ButtonJika punya Crystal Report
CR
-
Crystal ReportJika punya Crystal Report
PERHATIAN: untuk memunculkan tool DBGRID jika belum ada maka klick kanan di tempat yang kosong pada TOOLBOX pilih COMPONENTS. Pada bagian CONTROLS pilih dan beri tanda check list pada MICROSOFT DATA BOUND GRID CONTROL 5.0 (SP3).
- 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”.

Demikianlah Tutorial ke 2 dari membuat program penjualan ini. Jika anda masih tertarik silahkan baca tutorial saya yang selanjutnya.  Perjuangan masih sangat panjang. ALLAHU AKBAR !!!

By: OPIX HOLMES
opix.holmes@yahoo.com
http://www.islamicunderground.com
VB DATA BUKU

Tidak ada komentar:

Posting Komentar

Jasa

Photobucket

Kamus

English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified
by : BTF