Welcome to
Website...
***Fricles A Sianturi***
Thanks for
visiting...!!!

zwani.com myspace graphic comments
Myspace Christian Graphics

PANTUN HANGOLUAN TOIS HAMAGOAN

DAFTAR BLOG DOSEN DI STMIK BUDIDARMA MEDAN


Ingatlah selalu Akan Nama YESUS

SURGA DI TELAPAK KAKI IBU,KARENA ITU HORMATILAH KEDUA ORANG TUAMU

Kamis, 26 Januari 2012

Membuat Aplikasi Dengan Visual Basic .NET 2008

   Ok, sorry rada telat postingnya.. kemarin sempat ada proyek n juga beberapa hari kemarin lagi sakit.
Langsung aja, ditutorial ke-2kemarin 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:
view plaincopy to clipboardprint?
1.    Public Class frmBarang 
2.     
3.     Private Sub frmBarang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
4.     
5.     End Sub 
6.    End Class 


1. Dekarasi beberapa variabel umum


Masukkan kode berikut pada bagian atas setelah Public Class frmBarang :
view plaincopy to clipboardprint?
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:
view plaincopy to clipboardprint?
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.     
6.            For Each myTeksBoks As TextBox In daftarTextBox 
7.                If t Then 
8.                    myTeksBoks.Enabled = True 
9.                    Me.cmbKodeKategori.Enabled = True 
10.                Else 
11.                    myTeksBoks.Enabled = False 
12.                    Me.cmbKodeKategori.Enabled = False 
13.                End If 
14.            Next 
15.        End Sub 


1.b. Sub Procedure isiCombo


Digunakan untuk mengisi daftar kategori untuk ComboBox pada frmBarang:
view plaincopy to clipboardprint?
1.    Private Sub isiCombo() 
2.        Me.cmbKodeKategori.ResetText() 
3.        Dim cmbKate = From kategori In db.kategoris _ 
4.                     Select kategori.NmKategori 
5.     
6.        For Each kate As String In cmbKate 
7.            Me.cmbKodeKategori.Items.Add(kate) 
8.        Next 
9.    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):
view plaincopy to clipboardprint?
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.     
8.        Me.DataGridView1.DataSource = qBarang 
9.    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.
view plaincopy to clipboardprint?
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.     
8.            Dim dkate = From kategori In db.kategoris _ 
9.                        Where kategori.NmKategori Is Me.DataGridView1.Item(2, Me.DataGridView1.CurrentRow.Index).Value _ 
10.                        Select kategori.NmKategori 
11.            Me.cmbKodeKategori.Text = dkate.Single 
12.     
13.        Catch ex As Exception 
14.            MessageBox.Show("Error: " & ex.Message) 
15.        End Try 
16.    End Sub 


1.e. Sub Procedure resTeks
   Digunakan untuk mengosongkan semua TextBox dan Combobox dalam frmBarang :
view plaincopy to clipboardprint?
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 :
view plaincopy to clipboardprint?
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 :





Ketikkan kode berikut pada bagian  DataGridView1_Click :
view plaincopy to clipboardprint?
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 :
view plaincopy to clipboardprint?
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 :
view plaincopy to clipboardprint?
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 :
view plaincopy to clipboardprint?
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.     
4.        If edit Then 
5.            Dim updatebrg = (From barang In db.barangs _ 
6.                    Where barang.KDBarang = Me.txtKodeBarang.Text).ToList()(0) 
7.     
8.            With updatebrg 
9.                .NmBarang = Me.txtNamaBarang.Text 
10.                .KDKategori = katPerNama(Me.cmbKodeKategori.Text) 
11.                .Jumlah = Me.txtJumlah.Text 
12.                .HargaJual = Me.txtHarga.Text 
13.            End With 
14.     
15.        Else 
16.            Dim brg As New barang With { _ 
17.                    .KDBarang = Me.txtKodeBarang.Text, _ 
18.                    .NmBarang = Me.txtNamaBarang.Text, _ 
19.                    .KDKategori = katPerNama(Me.cmbKodeKategori.Text), _ 
20.                    .Jumlah = Me.txtJumlah.Text, _ 
21.                    .HargaJual = Me.txtHarga.Text} 
22.        End If 
23.     
24.        Try 
25.            db.SubmitChanges() 
26.     
27.        Catch ex As Exception 
28.            MessageBox.Show("Error :" & ex.Message) 
29.        End Try 
30.     
31.        resData() 
32.        dgKlik() 
33.        buka(False) 
34.        Me.cmdSimpan.Enabled = False 
35.        Me.cmdBaru.Text = "Baru" 
36.        Me.cmdEdit.Enabled = True 
37.        Me.cmdKeluar.Enabled = True 
38.        edit = False 
39.        Me.cmdHapus.Enabled = True 
40.        Me.DataGridView1.Enabled = True 
41.    End Sub 


6. Sub Procedure Saat Tombol Hapus Diklik


Double klik tombol hapus dan masukkan kode berikut :
view plaincopy to clipboardprint?
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.     
6.        Dim deleteBrg = (From barang In db.barangs _ 
7.                    Where barang.KDBarang = Me.txtKodeBarang.Text).ToList()(0) 
8.     
9.        db.barangs.DeleteOnSubmit(deleteBrg) 
10.     
11.        Try 
12.            db.SubmitChanges() 
13.        Catch ex As Exception 
14.            MessageBox.Show("Error :" & ex.Message) 
15.        End Try 
16.     
17.        resData() 
18.        dgKlik() 
19.     
20.    End Sub 


7. Sub Procedure Saat Tombol Keluar Diklik


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


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

Tidak ada komentar:

Posting Komentar