Membuat Aplikasi dengan Visual Basic.Net 2008 – 3

Ok, sorry rada telat postingnya.. kemarin sempat ada proyek n juga beberapa hari kemarin lagi sakit.

Langsung aja, di tutorial ke-2 kemarin kita telah sedikit mengenal tentang LINQ dan juga telah membuat suatu form barang. Kali ini kita akan mencoba menambahkan kode-kode yang akan diproses oleh tiap tombol dalam form barang tersebut. Untuk kali ini validasi dalam setiap proses akan diabaikan terlebih dahulu, nanti pasti menyusul…ūüėČ

Sebagai tambahan, lebih tepatnya “update”, pada tiap tabel dalam database semua yang bertype nchar di ubah ke nvarchar.. tanya kenapa??

Sebelum dilanjutkan, ada baiknya semua kode-kode dalam form barang di hapus dahulu, kecuali, kode-kode di bawah ini:

  1. Public Class frmBarang
  2. Private Sub frmBarang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  3. End Sub
  4. End Class

1. Dekarasi beberapa variabel umum
Masukkan kode berikut pada bagian atas setelah Public Class frmBarang :

  1. Private db As New DataClasses1DataContext
  2. Private edit As Boolean

1.a. Sub Procedure buka
Digunakan untuk mengunci dan membuka TextBox dan ComboBox dalam frmBarang:

  1. Private Sub buka(ByVal t As Boolean)
  2. Dim daftarTextBox = From myControl In Me.Controls _
  3. Where TypeOf myControl Is TextBox _
  4. Select myControl
  5. For Each myTeksBoks As TextBox In daftarTextBox
  6. If t Then
  7. myTeksBoks.Enabled = True
  8. Me.cmbKodeKategori.Enabled = True
  9. Else
  10. myTeksBoks.Enabled = False
  11. Me.cmbKodeKategori.Enabled = False
  12. End If
  13. Next
  14. End Sub

1.b. Sub Procedure isiCombo
Digunakan untuk mengisi daftar kategori untuk ComboBox pada frmBarang:

  1. Private Sub isiCombo()
  2. Me.cmbKodeKategori.ResetText()
  3. Dim cmbKate = From kategori In db.kategoris _
  4. Select kategori.NmKategori
  5. For Each kate As String In cmbKate
  6. Me.cmbKodeKategori.Items.Add(kate)
  7. Next
  8. End Sub

1.c. Sub Procedure resData
Digunakan untuk me-refresh (mengisi) data dalam DataGridView1 dengan data yang baru (Kodenya sedikit berbeda dari tutorial 2 kemarin):

  1. Private Sub resData()
  2. Dim qBarang = From barang In db.barangs _
  3. Join kategori In db.kategoris _
  4. On kategori.KDKategori Equals barang.KDKategori _
  5. Select Kode = barang.KDBarang, Nama = barang.NmBarang, _
  6. Kategori = kategori.NmKategori, Jumlah = barang.Jumlah, Harga = barang.HargaJual
  7. Me.DataGridView1.DataSource = qBarang
  8. End Sub

1.d. Sub Procedure dgKlik
Digunakan untuk mengisi tiap TextBox dan ComboBox berdasarkan data yang ada dalam DataGridView1 saat setiap kali data dalam DataGridView1 dipilih.

  1. Private Sub dgKlik()
  2. Try
  3. Me.txtKodeBarang.Text = Me.DataGridView1.Item(0, Me.DataGridView1.CurrentRow.Index).Value
  4. Me.txtNamaBarang.Text = Me.DataGridView1.Item(1, Me.DataGridView1.CurrentRow.Index).Value
  5. Me.txtJumlah.Text = Me.DataGridView1.Item(3, Me.DataGridView1.CurrentRow.Index).Value
  6. Me.txtHarga.Text = Me.DataGridView1.Item(4, Me.DataGridView1.CurrentRow.Index).Value
  7. Dim dkate = From kategori In db.kategoris _
  8. Where kategori.NmKategori Is Me.DataGridView1.Item(2, Me.DataGridView1.CurrentRow.Index).Value _
  9. Select kategori.NmKategori
  10. Me.cmbKodeKategori.Text = dkate.Single
  11. Catch ex As Exception
  12. MessageBox.Show(“Error:¬†“ &¬†ex.Message)
  13. End Try
  14. End Sub

1.e. Sub Procedure resTeks
Digunakan untuk mengosongkan semua TextBox dan Combobox dalam frmBarang :

  1. Private Sub resTeks()
  2. isiCombo()
  3. Dim daftarTextBox = From myControl In Me.Controls _
  4. Where TypeOf myControl Is TextBox _
  5. Select myControl
  6. For Each myTeksBoks As TextBox In daftarTextBox
  7. myTeksBoks.Text¬†=¬†“”
  8. Next
  9. End Sub

1.f. Function katPerNama
Digunakan untuk mengambil kode Kategori barang berdasarkan nama kategorinya :

  1. Private Function katPerNama(ByVal n As String) As Integer
  2. Dim kat As Integer = 0
  3. Dim kate = From kategori In db.kategoris _
  4. Where kategori.NmKategori Is n _
  5. Select kategori.KDKategori
  6. kat = kate.Single
  7. Return kat
  8. End Function

2. DataGridView1_Click
Pada designer view, double klik Control DataGridView1 > akan masuk ke dalam tampilan Code View.  Pada bagian Method Name, pilih Click. Lihat Gambar :
DataGridView1_Method
Ketikkan kode berikut pada bagian  DataGridView1_Click :

  1. Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.Click
  2. dgKlik()
  3. End Sub

3. Sub Procedure Saat Tombol Edit Diklik
Double klik tombol edit dan masukkan kode berikut :

  1. Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEdit.Click
  2. Me.cmdBaru.Text¬†=¬†“Batal”
  3. Me.cmdEdit.Enabled = False
  4. Me.cmdHapus.Enabled = False
  5. Me.cmdSimpan.Enabled = True
  6. edit = True
  7. buka(True)
  8. Me.txtKodeBarang.Enabled = False
  9. Me.txtNamaBarang.Focus()
  10. End Sub

4. Sub Procedure Saat Tombol Baru Diklik
Double klik tombol baru dan masukkan kode berikut :

  1. Private Sub cmdBaru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBaru.Click
  2. If Me.cmdBaru.Text¬†=¬†“Baru” Then
  3. Me.cmdBaru.Text¬†=¬†“Batal”
  4. Me.resTeks()
  5. buka(True)
  6. Me.DataGridView1.Enabled = False
  7. Me.cmdSimpan.Enabled = True
  8. Me.cmdEdit.Enabled = False
  9. Me.cmdHapus.Enabled = False
  10. Me.cmdKeluar.Enabled = False
  11. Me.txtKodeBarang.Focus()
  12. Else
  13. Me.cmdBaru.Text¬†=¬†“Baru”
  14. buka(False)
  15. Me.DataGridView1.Enabled = True
  16. edit = False
  17. Me.cmdSimpan.Enabled = False
  18. Me.cmdEdit.Enabled = True
  19. Me.cmdHapus.Enabled = True
  20. Me.cmdKeluar.Enabled = True
  21. dgKlik()
  22. End If
  23. End Sub

5. Sub Procedure Saat Tombol Simpan Diklik
Double klik tombol simpan dan masukkan kode berikut :

  1. Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSimpan.Click
  2. ‘Validasi¬†data¬†inputan,¬†akan¬†dijelaskan¬†nanti…
  3. If edit Then
  4. Dim updatebrg = (From barang In db.barangs _
  5. Where barang.KDBarang = Me.txtKodeBarang.Text).ToList()(0)
  6. With updatebrg
  7. .NmBarang = Me.txtNamaBarang.Text
  8. .KDKategori = katPerNama(Me.cmbKodeKategori.Text)
  9. .Jumlah = Me.txtJumlah.Text
  10. .HargaJual = Me.txtHarga.Text
  11. End With
  12. Else
  13. Dim brg As New barang With { _
  14. .KDBarang = Me.txtKodeBarang.Text, _
  15. .NmBarang = Me.txtNamaBarang.Text, _
  16. .KDKategori = katPerNama(Me.cmbKodeKategori.Text), _
  17. .Jumlah = Me.txtJumlah.Text, _
  18. .HargaJual = Me.txtHarga.Text}
  19. End If
  20. Try
  21. db.SubmitChanges()
  22. Catch ex As Exception
  23. MessageBox.Show(“Error¬†:” &¬†ex.Message)
  24. End Try
  25. resData()
  26. dgKlik()
  27. buka(False)
  28. Me.cmdSimpan.Enabled = False
  29. Me.cmdBaru.Text¬†=¬†“Baru”
  30. Me.cmdEdit.Enabled = True
  31. Me.cmdKeluar.Enabled = True
  32. edit = False
  33. Me.cmdHapus.Enabled = True
  34. Me.DataGridView1.Enabled = True
  35. End Sub

6. Sub Procedure Saat Tombol Hapus Diklik
Double klik tombol hapus dan masukkan kode berikut :

  1. Private Sub cmdHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHapus.Click
  2. If Me.txtKodeBarang.Text¬†=¬†“” Then Exit Sub
  3. Dim rep¬†As Integer =¬†MessageBox.Show(“Data¬†tersebut¬†akan¬†dihapus?”,¬†“Konfirmasi”,¬†MessageBoxButtons.YesNo,¬†MessageBoxIcon.Question)
  4. If rep = MsgBoxResult.No Then Exit Sub
  5. Dim deleteBrg = (From barang In db.barangs _
  6. Where barang.KDBarang = Me.txtKodeBarang.Text).ToList()(0)
  7. db.barangs.DeleteOnSubmit(deleteBrg)
  8. Try
  9. db.SubmitChanges()
  10. Catch ex As Exception
  11. MessageBox.Show(“Error¬†:” &¬†ex.Message)
  12. End Try
  13. resData()
  14. dgKlik()
  15. End Sub

7. Sub Procedure Saat Tombol Keluar Diklik
Double klik tombol keluar dan masukkan kode berikut :

  1. Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKeluar.Click
  2. Me.Close()
  3. End Sub

Terakhir, tambahkan kode berikut pada bagian frmBarang_Load :

  1. Private Sub frmBarang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2. resData()
  3. isiCombo()
  4. buka(False)
  5. Me.cmdSimpan.Enabled = False
  6. t = False
  7. End Sub

Yups, dengan semua tombol telah memiliki kode masing-masing, coba jalankan program dengan mengklik tanda play atau menekan tombol F5 pada keyboard.
Pada bagian selanjutnya kita akan langsung mencoba membuat form untuk menampilkan data laporan dari data barang yang barusan dibuat..
Selamat bereksperimen semoga sukses…ūüėČ
Kode Selengkapnya :

  1. Public Class frmBarang
  2. Private db As New DataClasses1DataContext
  3. Private edit¬†As Boolean ‘penentuan¬†apakah¬†sedang¬†dalam¬†proses¬†edit¬†atau¬†bukan
  4. Private Sub frmBarang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5. resData()¬†‘memanggil¬†sub¬†resData¬†untuk¬†mengisi¬†data¬†ke¬†dalam¬†DataGridView1
  6. isiCombo()¬†‘mengisi¬†ComboBox¬†kategori
  7. buka(False)¬†‘kunci¬†semua¬†textbox
  8. Me.cmdSimpan.Enabled¬†=¬†False ‘matikan¬†tombol¬†simpan
  9. edit¬†=¬†False ‘variabel¬†edit¬†di¬†atur¬†menjadi¬†false
  10. End Sub
  11. Private Sub buka(ByVal t¬†As Boolean)¬†‘enable¬†dan¬†disable¬†control¬†TextBox¬†dan¬†ComboBox
  12. ‘Pilih¬†semua¬†control¬†yang¬†merupakan¬†TextBox
  13. Dim daftarTextBox = From myControl In Me.Controls _
  14. Where TypeOf myControl Is TextBox _
  15. Select myControl
  16. ‘Looping¬†setiap¬†control¬†TextBox
  17. For Each myTeksBoks As TextBox In daftarTextBox
  18. If t Then
  19. myTeksBoks.Enabled¬†=¬†True ‘textbox¬†aktif
  20. Me.cmbKodeKategori.Enabled¬†=¬†True ‘combobox¬†aktif
  21. Else
  22. myTeksBoks.Enabled = False
  23. Me.cmbKodeKategori.Enabled = False
  24. End If
  25. Next
  26. End Sub
  27. Private Sub isiCombo()¬†‘Mengisi¬†Combobox¬†dengan¬†daftar¬†kategori¬†dari¬†tabel¬†kategori
  28. Me.cmbKodeKategori.ResetText()¬†‘reset¬†Combo¬†kategori
  29. ‘ambil¬†semua¬†nama¬†kategori¬†dari¬†tabel¬†kategori
  30. Dim cmbKate = From kategori In db.kategoris _
  31. Select kategori.NmKategori
  32. ‘looping¬†setiap¬†hasil¬†dari¬†cmbkate¬†dan¬†tambahkan¬†ke¬†dalam¬†combo¬†kategori
  33. For Each kate As String In cmbKate
  34. Me.cmbKodeKategori.Items.Add(kate)
  35. Next
  36. End Sub
  37. Private Sub resData()¬†‘mengisi¬†ulang¬†data¬†ke¬†dalam¬†DataGridView1
  38. Dim qBarang = From barang In db.barangs _
  39. Join kategori In db.kategoris _
  40. On kategori.KDKategori Equals barang.KDKategori _
  41. Select Kode = barang.KDBarang, Nama = barang.NmBarang, _
  42. Kategori = kategori.NmKategori, Jumlah = barang.Jumlah, Harga = barang.HargaJual
  43. Me.DataGridView1.DataSource = qBarang
  44. End Sub
  45. Private Sub resTeks()¬†‘mengosongkan¬†semua¬†combobox¬†dan¬†textbox
  46. isiCombo()
  47. Dim daftarTextBox = From myControl In Me.Controls _
  48. Where TypeOf myControl Is TextBox _
  49. Select myControl
  50. For Each myTeksBoks As TextBox In daftarTextBox
  51. myTeksBoks.Text¬†=¬†“”
  52. Next
  53. End Sub
  54. Private Sub dgKlik()¬†‘sub¬†procedure¬†saat¬†baris¬†dalam¬†DataGridView1¬†diklik
  55. Try
  56. Me.txtKodeBarang.Text = Me.DataGridView1.Item(0, Me.DataGridView1.CurrentRow.Index).Value
  57. Me.txtNamaBarang.Text = Me.DataGridView1.Item(1, Me.DataGridView1.CurrentRow.Index).Value
  58. Me.txtJumlah.Text = Me.DataGridView1.Item(3, Me.DataGridView1.CurrentRow.Index).Value
  59. Me.txtHarga.Text = Me.DataGridView1.Item(4, Me.DataGridView1.CurrentRow.Index).Value
  60. ‘isi¬†combo¬†kategori¬†berdasarkan¬†kategori¬†tiap¬†barang¬†dari¬†DataGridView1
  61. Dim dkate = From kategori In db.kategoris _
  62. Where kategori.NmKategori Is Me.DataGridView1.Item(2, Me.DataGridView1.CurrentRow.Index).Value _
  63. Select kategori.NmKategori
  64. Me.cmbKodeKategori.Text = dkate.Single
  65. Catch ex¬†As Exception¬†‘Jika¬†terjadi¬†error,¬†ya¬†know¬†lah…
  66. MessageBox.Show(“Error:¬†“ &¬†ex.Message)
  67. End Try
  68. End Sub
  69. Private Function katPerNama(ByVal n¬†As String)¬†As Integer ‘mengambil¬†kode¬†kategori¬†berdasarkan¬†nama¬†kategori
  70. Dim kat As Integer = 0
  71. Dim kate = From kategori In db.kategoris _
  72. Where kategori.NmKategori Is n _
  73. Select kategori.KDKategori
  74. kat = kate.Single
  75. Return kat
  76. End Function
  77. Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.Click
  78. dgKlik()¬†‘memanggil¬†sub¬†procedure¬†dgKlik¬†saat¬†DataGridView1¬†diklik.
  79. End Sub
  80. Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEdit.Click
  81. ‘saat¬†tombol¬†edit¬†diklik
  82. Me.cmdBaru.Text¬†=¬†“Batal”
  83. Me.cmdEdit.Enabled = False
  84. Me.cmdHapus.Enabled = False
  85. Me.cmdSimpan.Enabled = True
  86. edit¬†=¬†True ‘sedang¬†dalam¬†proses¬†edit
  87. buka(True)¬†‘buka¬†semua¬†control
  88. Me.txtKodeBarang.Enabled¬†=¬†False ‘kunci¬†txtKodeBarang
  89. Me.txtNamaBarang.Focus()¬†‘Fokuskan¬†cursor¬†pada¬†txtNamaBarang
  90. End Sub
  91. Private Sub cmdBaru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBaru.Click
  92. ‘Tombol¬†baru¬†diklik
  93. ‘lakukan¬†pengeceka¬†apakah¬†sekarang¬†tombol¬†baru¬†atau¬†tombol¬†batal
  94. If Me.cmdBaru.Text¬†=¬†“Baru” Then ‘jika¬†yang¬†diklik¬†tombol¬†baru
  95. Me.cmdBaru.Text¬†=¬†“Batal” ‘ubah¬†text¬†tombol¬†baru¬†menjadi¬†batal
  96. Me.resTeks()¬†‘memanggil¬†sub¬†procedure¬†resTeks¬†:¬†mengosongkan¬†semua¬†teks
  97. buka(True)¬†‘buka¬†semua¬†control
  98. Me.DataGridView1.Enabled¬†=¬†False ‘non¬†aktifkan¬†DataGridView1¬†sehingga¬†tidak¬†bisa¬†diklik
  99. Me.cmdSimpan.Enabled = True
  100. Me.cmdEdit.Enabled = False
  101. Me.cmdHapus.Enabled = False
  102. Me.cmdKeluar.Enabled = False
  103. Me.txtKodeBarang.Focus()¬†‘Fokuskan¬†cursor¬†pada¬†txtKodeBarang
  104. Else ‘jika¬†yang¬†diklik¬†adalah¬†tombol¬†baru¬†dengan¬†teks¬†Batal
  105. Me.cmdBaru.Text¬†=¬†“Baru” ‘ubah¬†teks¬†tombol¬†baru¬†menjadi¬†Baru
  106. buka(False)¬†‘Kunci¬†semua¬†kontrol
  107. Me.DataGridView1.Enabled = True
  108. edit¬†=¬†False ‘pastikan¬†bukan¬†dalam¬†proses¬†edit
  109. Me.cmdSimpan.Enabled = False
  110. Me.cmdEdit.Enabled = True
  111. Me.cmdHapus.Enabled = True
  112. Me.cmdKeluar.Enabled = True
  113. dgKlik()
  114. End If
  115. End Sub
  116. Private Sub cmdSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSimpan.Click
  117. ‘Validasi¬†data¬†inputan,¬†belakangan¬†akan¬†dijelaskan…
  118. If edit¬†Then ‘jika¬†dalam¬†proses¬†edit¬†/¬†tombol¬†edit¬†diklik
  119. Dim updatebrg = (From barang In db.barangs _
  120. Where barang.KDBarang = Me.txtKodeBarang.Text).ToList()(0)
  121. With updatebrg
  122. .NmBarang = Me.txtNamaBarang.Text
  123. .KDKategori = katPerNama(Me.cmbKodeKategori.Text)
  124. .Jumlah = Me.txtJumlah.Text
  125. .HargaJual = Me.txtHarga.Text
  126. End With
  127. Else ‘jika¬†bukan¬†proses¬†edit¬†/¬†tombol¬†baru¬†diklik
  128. Dim brg As New barang With { _
  129. .KDBarang = Me.txtKodeBarang.Text, _
  130. .NmBarang = Me.txtNamaBarang.Text, _
  131. .KDKategori = katPerNama(Me.cmbKodeKategori.Text), _
  132. .Jumlah = Me.txtJumlah.Text, _
  133. .HargaJual = Me.txtHarga.Text}
  134. End If
  135. Try
  136. db.SubmitChanges()¬†‘simpan¬†semua¬†perubahan,¬†baik¬†itu¬†proses¬†update¬†maupun¬†insert
  137. Catch ex As Exception
  138. MessageBox.Show(“Error¬†:” &¬†ex.Message)
  139. End Try
  140. resData()
  141. dgKlik()
  142. buka(False)
  143. Me.cmdSimpan.Enabled = False
  144. Me.cmdBaru.Text¬†=¬†“Baru”
  145. Me.cmdEdit.Enabled = True
  146. Me.cmdKeluar.Enabled = True
  147. edit = False
  148. Me.cmdHapus.Enabled = True
  149. Me.DataGridView1.Enabled = True
  150. End Sub
  151. Private Sub cmdHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHapus.Click
  152. ‘saat¬†tombol¬†hapus¬†diklik
  153. If Me.txtKodeBarang.Text¬†=¬†“” Then Exit Sub ‘jika¬†kodebarang¬†kosong,¬†keluar¬†dari¬†sub¬†procedure
  154. ‘mencoba¬†memastikan¬†apakah¬†data¬†akan¬†benar2¬†dihapus?
  155. Dim rep¬†As Integer =¬†MessageBox.Show(“Data¬†tersebut¬†akan¬†dihapus?”,¬†“Konfirmasi”,¬†MessageBoxButtons.YesNo,¬†MessageBoxIcon.Question)
  156. If rep¬†=¬†MsgBoxResult.No¬†Then Exit Sub ‘jika¬†hasilnya¬†NO,¬†data¬†tidak¬†akan¬†dihapus
  157. Dim deleteBrg = (From barang In db.barangs _
  158. Where barang.KDBarang = Me.txtKodeBarang.Text).ToList()(0)
  159. db.barangs.DeleteOnSubmit(deleteBrg)
  160. Try
  161. db.SubmitChanges()¬†‘simpan¬†semua¬†perubahan¬†ke¬†dalam¬†database
  162. Catch ex As Exception
  163. MessageBox.Show(“Error¬†:” &¬†ex.Message)
  164. End Try
  165. resData()
  166. dgKlik()
  167. End Sub
  168. Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKeluar.Click
  169. Me.Close()¬†‘tutup¬†form
  170. ‘bisa¬†juga¬†menggunakan¬†:¬†Application.Exit()
  171. End Sub
  172. End Class

Sorry kalau masih ada yang keliru atau kesalahan dalam proses penulisan di atas..mohon koreksinya juga.. heheh..e

4 thoughts on “Membuat Aplikasi dengan Visual Basic.Net 2008 – 3

  1. saya kan baru pemula kalau bisa jelaskan funsi” yang ada pada vb tus tutorialnya tolong perbanyak gambarnya karena kalo hanya tex aja say kurang ngarti

    tangks………….

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s