Diberdayakan oleh Blogger.

Jumat, 23 Desember 2011

Belajar Visual Basic 34. MDI, MDI Child dan SDI



Setelah menjadikan semua form menjadi MDI Child (kecuali frmMenu), selintas kita sebenarnya telah menggunakan 3 jenis form yang berbeda sesuai dengan kegunaannya. Ketiga form itu adalah: MDI Form, MDI Child, dan SDI Form. Perhatikan pada project explorer perbedaan ketiga jenis form tersebut yang dibedakan oleh icon masing-masingnya.

Pada gambar dibawah ini ada 4 buah form yakni frmBarang, frmMenu, frmPelanggan, dan frmPengguna. frmBarang dan frmPelanggan berada dalam Modus MDI Child. Diwakili dengan gambar form yang agak kabur yang didepannya terdapat sebuah form kecil. Sedangkan frmMenu adalah representasi dari MDI Form yang ditunjukkan dengan gambar sebuah Form dengan sebuah form kecil yang agak kabur didepannya. Sedangkan frmPengguna mewakili SDI Form yang ditunjukkan dengan icon sebuah From.
MDI, MDI Child dan SDI

Kamis, 22 Desember 2011

Belajar Visual Basic 33. Menu Program: MDI Child



Sebelumnya telah disinggung tentang MDI Child. Namun saya belum menjelaskan apa itu MDI Child. MDI Child merupakan “form-form anak” yang terdapat dalam sebuah MDI Form. Yang dimaksud dengan anak disini, adalah form yang memenuhi kriteria pendekatan Multiple Document Interface. Artinya form yang berada didalam form induknya, bukan terpisah.

Adapun langkah-langkah yang harus dilakukan untuk menambahkan MDI Child adalah sebagai berikut:
  • Karena secara default formdi visual basic merupakan SDI, maka property MDIChild-nya harus diset menjadi true
Ini adalah sebuah propertyyang dimiliki oleh setiap form di VB kecuali MDI Form. Property ini akan membuat sebuah form menjadi “anak” dari MDI Form. Oleh karena itu property ini mensyaratkan harus ada sebuah MDI Form dalam project sehingga property ini bisa diset menjadi true. Kalau tidak ini akan memberikan pesan error.

  • Jadikan semua form kecuali MDI Form menjadi MDI Child
Karena ini merupakan programuntuk Inventori. Maka diasumsikan bahwa semua form akan dijadikan sebagai anak dari frmMenu. Sehingga kita perlu menge-set semua property MDIChild form yang lain menjadi true.
Property MDIChild


Rabu, 21 Desember 2011

Belajar Visual Basic 32. Menu Program: Menambahkan MDI Form



Untuk membuat program menjadi bentuk MDI, maka diperlukan MDI Form Menu Sebagai Form Utama yang akan memanggil form-formlain. Langkah-langkah yang harus dilakukan adalah sebagai berikut:
  •  Klik menu Project > Add MDI Form
Langkah ini juga bisa dilakukan dengan mengklik kanan pada project explorer dam memilih add > MDI Form. Sama dengan langkah menambahkan form yang baru sebelumnya.
  • Ganti Namenya MDIFormdengan Dengan frmMenu, kemudian save
Biasakan untuk selalu menyimpan filefisik form sesuai dengan name yang tertera pada project explorer. Hal ini bertujuan untuk memudahkan dalam sisi pengorganisasian file nantinya.

Menambahkan MDI Form Menu

  • Dalam satu project hanya boleh terdapat 1 MDI form saja
Sebagai catatan. Kita tidak mungkin untuk membuat lebih dari 1 MDI Form dalam satu buah project. Tidak mungkin sebuah program memiliki banyak program utama bukan?.  Satu catatan lagi, MDI Form dalam project kita bukan berarti semua form yang lain adalah MDI Child. Kita masih mungkin untuk menggunakan form yang bukan MDI Child. Oh ya, apa itu MDI Child?, kita akan bahas sebentar lagi.

Selasa, 20 Desember 2011

Belajar Visual Basic 31. Menu Program SDI dan MDI


Menggunakan program yang memiliki lebih dari 1 form akan membutuhkan sebuah menu untuk mengakses masing-masing form yang ada. Akan sangat merepotkan jika kita harus mengatur start up object dari project setiap kita akan menjalankan program. Dan tidak akan mungkin melakukannya pada saat project kita telah terkompilasi menjadi .exe

Document Interface: Single vs Multple Dalam pembuatan program dengan menggunakan menu. Ada 2 pendekatan yang biasanya digunakan. Yakni Single Document Interface (SDI), dan Multiple Document Interface (MDI). Masing-masing mempunyai manfaat dan keunggulannya. Berikut karakteristik kedua pendekatan:
  • Single Document Interface
Untuk pendekatan ini form Induk (form yang memiliki menu, yang akan memanggil form lainnya) terpisah dari form anak. Hanya 1 form yang bisa dibuka dalam 1 waktu. Form anak bisa ditarik keluar dari form induk. Merupakan bentuk form default yang ada pada VB.
Contoh penggunaan Single Document Interface (SDI)

  • Multiple Document Interface
Form anak tergabung dalam form utama (induk). Banyak form bisa dimanfaatkan dalam satu waktu tanpa perlu menutup form yang lain. Kita akan menggunakan pendekatan ini untuk membuat prjInventori.
Contoh penerapan Multiple Document Interface (MDI)

Walaupun terdapat 2 buah pendekatan, bukan berarti kita harus memilih salah satu pendekatan. Keduanya bisa kita manfaatkan dalam satu buah program. Kita memilih SDI dan MDI berdasarkan kepentingan aplikasi.

Senin, 12 Desember 2011

Belajar Visual basic 30. Pengaturan Form > Menentukan form yang pertama kali dijalankan


Karena jumlah form yang lebih dari 1. Maka kita harus bisa menentukan form mana yang dijalankan terlebih dahulu. Visual Basictidak dapat menjalankan semua form sekaligus dalam 1 waktu. Untuk itu diperlukan langkah-langkah berikut ini:

Klik kanan pada nama projectdi project explorer (prjInventori), kemudian klik prjInventori Properties (Lihat gambar dibawah):

prjInventori Properties


Pada combo Startup Object, pilih nama form yang akan pertama kali dijalankan, kemudian klik OK.
Pada combo pilihan startup object ada beberapa opsi yang umumnya merupakan nama dari form yang kita buat. Satu-satunya yang bukan nama form adalah Sub Main. Yang dimaksud dengan Sub Main adalah prosedur utama yang kita letakkan di module.Module adalah kumpulan prosedur, dia tidak memiliki antar muka seperti halnya form.  
Memilih sub atau form yang pertama kali dijalankan


 



Minggu, 11 Desember 2011

Belajar Visual Basic 29. Pengaturan Form > Menambah Form



Setelah selesai dengan frmBarang. Kita akan menambahkan beberapa form baru dengan karakteristik yang mirip. Yakni tabel tbPelanggan dan tbDistributor. Terlebih dahulu kita akan membahas tentang tata cara pengaturan penambahan formyang baru dibuat, dan mengatur form mana yang pertama kali akan dijalankan oleh VB pada saat modus run time program.

Menambah Form 

Untuk menambahkan formdalam project, kita lakukan langkah-langkah berikut: 

Klik kanan pada project explorer kemudian pilih Add>Form.

 

Dari menu pop up yang muncul ada pilihan form, MDI Form, Module, class Module dan lain-lain. Itu adalah beberapa opsi yang bisa dipilih untuk ditambahkan kedalam project. Untuk menambahkan form kita memilih form. 

Pada jendela add form yang muncul pilih form kemudian klik Open.

Add form
Ada banyak jenis form yang disediakan oleh Visual Basic. Ini merupakan template yang bisa digunakan untuk kondisi-kondisi tertentu. Seperti about dialog digunakan untuk menampilkan informasi tentang aplikasi yang sedang digunakan. Log in dialog digunakan untuk membuat form login program. Untuk menambahkan form yang kosong kita pilih opsi form.
Form kosong
Jika langkah yang dilakukan sudah benar pada jendela projectexplorer sudah muncul satu form buah baru(lihat gambar dibawah), 
 
Form baru pada project explorer




selanjutnya dimodifikasi name nya sesuai dengan yang diinginkan kemudian setelah itu di Save.
Yunizal, Edri (2009). Pemrograman Berorientasi Objek: Implementasi Aplikasi Inventory. Batusangkar: STAIN Batusangkar Press

Sabtu, 10 Desember 2011

Belajar Visual Basic 28. Kode program untuk form_load


Setelah menambahkan prosedur untuk simpan dan hapus record. Langkah selanjutnya adalah menambahkan fasilitas untuk form load. Apa itu event load?, yang dimaksud dengan form_load adalah saat ketika form itu dibentuk, dari tidak ada menjadi ada, dimana semua komponen-komponen control nya ”dipanggil” satu persatu. Pada saat ini, adalah saat yang paling tepat untuk inisialisasi program. Dimana saat yang bagus untuk membersihkan layar, menambahkan opsi-opsi dan lain sebagainya. Yang intinya adalah berguna untuk menyediakan form yang benar-benar siap pakai kepada si pengguna program.

Karena kita mempunyai combocbosatuan yang seharusnya berisi daftar satuan yang dipakai. Maka langkah pengisian combo juga dilakukan disaat form_load ini. Langkah-langkahnya adalah sebagai berikut:

Karena kita mempunyai combocbosatuan yang seharusnya berisi daftar satuan yang dipakai. Maka langkah pengisian combo juga dilakukan disaat form_load ini. Langkah-langkahnya adalah sebagai berikut:

  • Double click pada form frmbarang
Langkah ini akan mengaktifkan pengetikan kode untuk event default pada form, yakni event from_load

  • Pada prosedur form_load Tambahkan teks
Txtkode.text=""
    cboSatuan.AddItem "RIM"
    cboSatuan.AddItem "PCS"
    cboSatuan.AddItem "DUS"
    cboSatuan.AddItem "BOX"

  • Penjelasannya adalah sebagai berikut:
Txtkode.text=""

Perintah ini berguna untuk mengosongkan form. Kok bisa begitu?, ketika perintah ini dipanggil diasumsikan bahwa txtkode.text=”” artinya, akan perintah ini secara tidak langsung juga telah memanggil prosedur cmdbersih_click

cboSatuan.AddItem "RIM"
    cboSatuan.AddItem "PCS"
    cboSatuan.AddItem "DUS"
    cboSatuan.AddItem "BOX"

Langkah berikutnya adalah menambahkan RIM, PCS, DUS, dan BOX kedalam cboSatuan. Perintah .AddItem akan menambahkan masing-masingnya kedalam cboSatuan.

Setelah selesai membuat event form_load berarti kita telah selesai membuat form entri untuk tbbarang dalam database. Dengan konsep yang menyerupai form input dari Visdata.

Edri Yunizal (2009). Pemrograman Berorientasi Objek: Implementasi Aplikasi Inventory. Batusangkar: Stain Batusangkar Press

Rabu, 13 Juli 2011

Belajar Visual Basic 27. Kode program untuk Entri Barang: Menghapus data dalam tabel


Kita sudah membahas tentang cara penyimpanan record baik yang baru maupun yang mengedit record yang sudah ada. 

Untuk menghapus record kita harus terlebih dahulu menemukan record yang akan dihapus, baru kemudian menghapus data yang terkait dengan record tersebut. 

Jika kita misalkan dengan proses yang ada pada Visdata, pertama-tama buka database inventori.mdb, buka tabel rbbarang, gunakan scroll record untuk mencari record yang akan dihapus, ketika ditemukan klik tombol delete. 

Jika kita ingin menyajikannya dalam bentuk source code aplikasi, tentu saja ada beberapa langkah yang harus kita perbaiki.


Begini, program kita sediakan sebuah tombol delete, yang berfungsi untuk menghapus ”record yang ditemukan”. 

Jadi proses tidak diawali dengan pencarian record, tapi terlebih dahulu menghapus data, ketika tombol delete di click. Maka akan dilakukan pencarian record, jika ditemukan, dilakukan penghapusan record. Jika record yang dicari tidak ditemukan, maka ditampilkan pesan bahwa data tersebut tidak ditemukan.

Langkah yang harus dilakukan adalah:

  • Double click pada cmdHapus
Gunakan langkah ini untuk memanggil prosedur default dari cmdHapus, yakni cmdHapus_click

  • Diantara kalang pada prosedur cmdHapus_click Tambahkan teks berikut:
           
Dim dbBarang As Database
    Dim rsBarang As Recordset
    Set dbBarang = OpenDatabase(App.Path & "\inventori.mdb")
    Set rsBarang = dbBarang.OpenRecordset("tbbarang")
    rsBarang.Index = "idxkode"
    rsBarang.Seek "=", txtKode.Text
    If rsBarang.NoMatch Then
          MsgBox "data barang tersebut tidak ditemukan!", vbCritical, "Kesalahan!"
     Else
          rsBarang.Delete
          txtkode.text=""
    End If

  • Penjelasan:
Langkah-langkah yang akan dilakukan kurang lebih sama dengan apa yang dilakukan sebelumnya dalam prosedur penyimpanan record

Seperti telah dibahas sebelumnya, langkah pertama adalah memasukkan database kedalam variabel dbBarang, kemudian memasukkan tabel kedalam variabel rsBarang. Langkah selanjutnya adalah mengaktifkan index idxkode.

Agar bisa melakukan pencarian dengan menggunakan txtkode melalui perintah seek,  hasil dari perintah seek adalah ditemukan atau tidak ditemukannya data yang sesuai dengan index. Jika ditemukan, maka data akan dihapus dari tabel tbbarang, diikuti dengan pengosongan form (txtkode.text=”” akan memicu event txtkode_change, karena isi dari txtkode kosong, maka akan dipanggil event cmdbersih_click). Sedangkan jika data tidak ditemukan (nomatch=true) maka akan ditampilkan pesan dengan msgbox bahwa data tersebut tidak ditemukan.

Minggu, 10 Juli 2011

Belajar Visual Basic 26. Kode program untuk Entri Barang: Pencarian dengan txtkode


frmBarang
Sebelum pengguna melakukan simpan tentunya terlebih dahulu melakukan input data. Setiap data yang diinputkan, sebagaimana telah dijelaskan sebelumnya bisa diwakili oleh sebuah field saja. Yakni field kode, jika kode yang diinputkan seharusnya si pengguna sudah diberitahu bahwa kode itu telah pernah diinputkan atau belum. Kita dapat menambahkan beberapa perintah pada event txtkode_change.

Event change pada txtkode adalah saat si pengguna mengubah isi txtkode di form. Mengubah berarti menambahkan huruf atau bisa juga menghilangkan huruf. Setiap terjadi perubahan huruf maka event ini akan terjadi. Jadi bisa kita asumsikan begini, setiap si pengguna mengetikkan huruf, kita periksa isi txtkode yang ada sekarang, apakah kode tersebut sudah ada dalam tabel tbbarang?, jika belum maka field-field yang lain harus kita kosongkan.

Untuk menandakan bahwa belum ada field yang sesuai dengan kode tersebut. Jika ternyata kode tersebut sudah ada dalam tbbarang. Maka field lain yang berhubungan dengan tabel tersebut harus kita munculkan. Agar si pengguna menyadari bahwa dia sekarang bukan sedang mengentrikan data yang baru lagi. Prosedur ini sangat berguna bagi si pengguna yang ingin mengedit sebuah record tertentu.

  • Double click pada txtkode
Langkah ini dilakukan untuk mengaktifkan event default pada textbox yakni event change.

  • Pada event txtkode_change, tambahkan teks sebagai berikut:
            Dim dbBarang As Database
    Dim rsBarang As Recordset
     Set dbBarang = OpenDatabase(App.Path & "\inventori.mdb")
    Set rsBarang = dbBarang.OpenRecordset("tbbarang")
     If txtKode.Text = "" Then
          cmdBersih_Click
Exit sub
     End If
    rsBarang.Index = "idxkode"
    rsBarang.Seek "=", txtKode.Text
    If Not rsBarang.NoMatch Then
          txtNama.Text = rsBarang!nama
          cboSatuan.Text = rsBarang!satuan
          txtHarga.Text = rsBarang!harga
          txtStok.Text = rsBarang!stok
        Else
              cmdBersih_Click
    End If
 Penjelasan:
If txtKode.Text = "" Then
     cmdBersih_Click
       Exit sub
  End If
 Pertama-tama kita harus memeriksa apakah txtkode sudah diisi oleh sipengguna atau belum. Jika ternyata belum diisi, kita harus mengosongkan form dengan memanggil event cmdBersih_click. Dan kemudian keluar dari event ini. Jika ternyata txtkode sudah terisi, kita lanjutkan ke perintah berikut:
If Not rsBarang.NoMatch Then
          txtNama.Text = rsBarang!nama
          cboSatuan.Text = rsBarang!satuan
          txtHarga.Text = rsBarang!harga
          txtStok.Text = rsBarang!stok
        Else
              cmdBersih_Click
    End If
Baris pertama akan memeriksa apakah isi dari txtkode sudah ada dalam database atau belum. Jika ternyata not rsBarang.Nomatch (nomatch=tidak ketemu, not nomatch berarti ketemu), maka tampilkan isi dari rsBarang ke dalam form.

Perintah berikut txtNama.text=rsBarang!nama, artinya mengisi txtnama dengan isian field nama dari tabel tbarang. Begitu seterusnya dengan cbosatuan, txtharga, dan txtstok.

Jika ternyata txtkode yang dicari tidak ada dalam tbbarang, maka jalankan perintah untuk membersihkan formnya. Jadi prinsip utama, jika kode sudah ada: tampilkan, jika kode belum ada? Kosongkan form!