1. Membuat project
Setelah masuk ke dalam IDE Visual Studio, buat project baru lewat menu ‘File > New Project’ dengan nama ‘TutorialVB.NET’.
[Klik gambar untuk memperbesar]
2. Membuat Database
Database yang akan digunakan adalah SQLServer 2005 Express Edition. Pada jendela ‘Solution Explorer’ (atau tekan kombinasi tombol CTRL+R untuk menampilkan Solution Explorer), klik kanan pada project ‘TutorialVB.NET’ > Add > New Item
Database yang akan digunakan adalah SQLServer 2005 Express Edition. Pada jendela ‘Solution Explorer’ (atau tekan kombinasi tombol CTRL+R untuk menampilkan Solution Explorer), klik kanan pada project ‘TutorialVB.NET’ > Add > New Item
Pada jendela yang muncul, pilih ‘Service-based Database’ dan beri nama ‘Database1.mdf’
Klik ‘Add’ maka sebuah jendela baru ‘Data Source Configuration Wizard’ akan tampil. Klik ‘Finish’ untuk menambahkan Datasource baru tersebut ke dalam project.
Tampilan pada ‘Solution Explorer’ akan menjadi seperti ini:
Database1.mdf telah ditambahkan ke dalam Solution Explorer
3. Membuat tabel
Pada bagian kiri dari IDE, buka panel ‘Server Explorer’pada (atau dengan mengklik kombinasi tombol CTRL+ALT+S). Klik kanan pada node ‘Table’ dan pilih ‘Add New Table’. Klik ‘Save’ dan beri nama ‘tblBarang’.
Pada bagian kiri dari IDE, buka panel ‘Server Explorer’pada (atau dengan mengklik kombinasi tombol CTRL+ALT+S). Klik kanan pada node ‘Table’ dan pilih ‘Add New Table’. Klik ‘Save’ dan beri nama ‘tblBarang’.
Kita akan membuat tabel barang. Buatlah field-field baru seperti tampilan berikut:
Selanjutnya field pada KdBarang akan
dijadikan sebagai ‘primary key’ dengan nilai auto increment sebanyak 1.
Caranya, klik kanan pada baris KdBarang dan pilih ‘Set Primary Key’
untuk menjadikan field KdBarang sebagai primary key pada tabel ini.
Pada bagian kiri dari field KdBarang
akan muncul tanda kunci berwarna kuning yang menandakan bahwa field
KdBarang tersebut merupakan sebuah ‘Primary Key’/’Index’.
Selanjutnya kita akan membuat
incremental value untuk field KdBarang dengan merubah nilai dari
‘Identity Specification’. Caranya: Pada bagian bawah dari table
designer, dalam tab ‘Column Properties’, ubah nilai (IsIdentity) menjadi
‘Yes’ dengan ‘Identity Increment’ = 1 dan ‘Identity Seed’
= 1. Ini akan menjadikan nilai dari KdBarang menjadi auto increment
sehingga bisa mengurangi kemungkinan duplikasi kode barang dalam proses
transaksi. Lihat gambar:
Jadikan Default Value dari field ‘Jumlah’, ‘Harga’ dan ‘Dihapus’ menjadi nilai 0.
4. Menambah Module
Kita akan lanjutkan dengan menambah modul baru ke dalam project. Kegunaan atau fungsi dari modul ini nantinya adalah untuk menyimpan prosedur dan fungsi-fungsi serta variabel public yang akan digunakan oleh setiap class dalam project.
Kita akan lanjutkan dengan menambah modul baru ke dalam project. Kegunaan atau fungsi dari modul ini nantinya adalah untuk menyimpan prosedur dan fungsi-fungsi serta variabel public yang akan digunakan oleh setiap class dalam project.
Pertama-tama, tambahkan folder baru ke
dalam project dengan cara klik kanan pada project ‘TutorialVB.NET’ >
‘Add’ > ‘New Folder’ dan beri nama ‘Functions’. Kemudian klik kanan
pada folder ‘Functions’ yang baru ditambahkan tadi kemudian pilih ‘Add’
> ‘Module’ untuk menambah modul baru ke dalam project. Beri nama
modul baru tersebut dengan nama ‘PublicFunctions’.
5. Menulis kode untuk public functions
Pada modul yang baru dibuat tadi (PublicFunction.vb), ketikkan kode berikut:
Pada modul yang baru dibuat tadi (PublicFunction.vb), ketikkan kode berikut:
- Imports System.Data.SqlClient 'Untuk proses ke database
- Imports System.IO 'Untuk proses penyimpanan log error
- Module PublicFunctions
- 'Deklarasikan DBConnection sebagai object dari SQLConnection dengan string koneksi dari Database1ConnectionString
- Public DBConnection As New SqlConnection(My.Settings.Database1ConnectionString)
- Public ErrorLog As Boolean = True 'Aktifkan error log
- Public lastSQL As String = "" 'String perintah sql terakhir
- Public Function OpenConnection(ByRef RetMessage As String) As SqlConnection
- Try
- DBConnection.Open()
- Catch ex As SqlException
- RetMessage = ex.Message
- Return Nothing
- Catch ex As Exception
- RetMessage = ex.Message
- Return Nothing
- End Try
- Return DBConnection
- End Function
- Public Function DoSqlDataView(ByVal str As String) As DataView
- Try
- Dim da As SqlDataAdapter
- Dim ds As DataSet
- Dim dv As DataView
- da = New SqlDataAdapter(str, DBConnection)
- ds = New DataSet
- da.Fill(ds)
- dv = New DataView(ds.Tables(0))
- Return dv
- Catch e As Exception
- 'Jika terjadi kesalahan, simpan pesan kesalahan ke dalam file
- saveerrormessage(e.Message, e.StackTrace, e.<a rel="nofollow" target="_blank" title="Source" href="http://www.indosourcecode.blogspot.com">Source</a>)
- End Try
- Return New DataView
- End Function
- Public Function DoSqlCommand(ByVal str As String) As Boolean
- Try
- lastSQL = str
- Dim cm As SqlCommand
- cm = New SqlCommand(str, DBConnection)
- cm.ExecuteNonQuery()
- Return True
- Catch e As Exception
- 'Jika terjadi kesalahan, simpan pesan kesalahan ke dalam file
- saveerrormessage(e.Message, e.StackTrace, e.<a rel="nofollow" target="_blank" title="Source" href="http://www.indosourcecode.blogspot.com">Source</a>)
- Return False
- End Try
- End Function
- Public Function GetIdentity(ByVal pFromTableName As String) As Integer
- Dim str As String
- Dim dv As DataView
- Dim iIdentity As Integer
- str = "SELECT @@IDENTITY as myValue FROM " & pFromTableName
- dv = DoSqlDataView(str)
- If dv.Count > 0 Then
- iIdentity = CInt(dv(0)(0))
- End If
- Return iIdentity
- End Function
- Public Function PrepareStr(ByVal strValue As String) As String
- Try
- If strValue.Trim() = "" Then
- Return "''"
- Else
- strValue = strValue.Replace("'", "''")
- Return "'" & strValue.Trim & "'"
- End If
- Catch e As Exception
- saveerrormessage(e.Message, e.StackTrace, e.<a rel="nofollow" target="_blank" title="Source" href="http://www.indosourcecode.blogspot.com">Source</a>)
- Return "''"
- End Try
- End Function
- Public Sub saveerrormessage(ByVal Message As String, ByVal stacktrace As String, ByVal <a rel="nofollow" target="_blank" title="source" href="http://www.indosourcecode.blogspot.com">source</a> As String)
- If ErrorLog = True Then
- Dim errout As System.IO.StreamWriter
- Dim errfilename As String = "RtError.txt" 'RtError merupakan nama file yang akan digunakan
- If Not File.Exists(errfilename) Then
- 'file untuk menyimpan log error belum ada, buat baru..
- errout = File.CreateText(errfilename)
- Else
- errout = File.AppendText(errfilename)
- End If
- 'Buka dan tulis pesan error ke dalam file
- errout.WriteLine("******* TutorialVB.NET RUNTIME ERROR *******")
- errout.WriteLine("Date :" + CStr(Now()))
- errout.WriteLine("MSG :" + Message)
- errout.WriteLine("SQL :" + lastSQL)
- errout.WriteLine("SOURCE :" + source)
- errout.WriteLine("STACK :" + stacktrace)
- errout.Flush()
- errout.Close()
- End If
- End Sub
- End Module
6. Menambah kontrol ListView ke dalam form
Sekarang masuk ke tahap desain form . Kembali ke ‘Solution Explorer’, pada ‘Solution Explorer’ klik dua kali pada form ‘Form1’.
Sekarang masuk ke tahap desain form . Kembali ke ‘Solution Explorer’, pada ‘Solution Explorer’ klik dua kali pada form ‘Form1’.
Buka panel ‘Toolbox’ pada bagian kiri
(tekan kombinasi tombol CTRL+ALT+X untuk membuka panel ‘Toolbox’), dan
pilih kontrol ListView. Klik tahan dan geser kontrol ListView ke dalam
form.
Atur posisi dan ukuran dari ListView
yang baru dimasukkan tadi sesuai selera dan ubah nama kontrol menjadi
‘LvBarang’ melalui panel ‘Properties’(tekan tombol F4 saat kontrol
sedang dipilih untuk menampilkan panel ‘Properties’).
Selanjutnya akan kita tambahkan
kolom-kolom baru pada kontrol ‘LvBarang’ dengan klik kanan pada
‘LvBarang’ dan pilih ‘Edit Columns’.
Pada kotak dialog ‘ColumnHeader
Collection editor’ yang muncul, klik tombol ‘Add’ untuk menambah kolom
baru. Masukkan ‘cKdBarang’ pada bagian ‘Name’ dan ‘Kode’ pada bagian
‘Text’.
Tambahkan 3 anggota kolom berikutnya dengan nama dan text masing-masing:
Name: cNoBarang, Text: No. Barang
Name: cNmBarang, Text: Nama
Name: cJumlah, Text:Jumlah
Name: cHarga, Text:Harga
Name: cNoBarang, Text: No. Barang
Name: cNmBarang, Text: Nama
Name: cJumlah, Text:Jumlah
Name: cHarga, Text:Harga
Klik OK untuk menutup kotak dialog ‘ColumnHeader Collection Editor’.
Masih pada LvBarang, pada panel ‘Properties’, ubah nilai ‘FullRowSelect’=True, ‘MultiSelect’=False dan ‘View’=Details.
Masih pada LvBarang, pada panel ‘Properties’, ubah nilai ‘FullRowSelect’=True, ‘MultiSelect’=False dan ‘View’=Details.
7. Menambah kontrol Textbox dan Label ke dalam form
Tampilkan panel Toolbox, pilih kontrol Texbox dan geser ke dalam form (cara hampir sama dengan cara memasukkan kontrol ListView ke dalam form). Masukkan 4 buah kontrol textbox. Atur posisi dan ukuran masing-masing Textbox sesuai selera. Properti name untuk setiap Textbox adalah sebagai berikut (atur melalui panel ‘Properties’ dengan menekan tombol F4 saat kontrol sedang dipilih):
Tampilkan panel Toolbox, pilih kontrol Texbox dan geser ke dalam form (cara hampir sama dengan cara memasukkan kontrol ListView ke dalam form). Masukkan 4 buah kontrol textbox. Atur posisi dan ukuran masing-masing Textbox sesuai selera. Properti name untuk setiap Textbox adalah sebagai berikut (atur melalui panel ‘Properties’ dengan menekan tombol F4 saat kontrol sedang dipilih):
Nama untuk masing-masing Textbox:
Name: TbNoBarang
Name: TbNmBarang
Name: TbJumlah
Name: TbHarga
Name: TbNoBarang
Name: TbNmBarang
Name: TbJumlah
Name: TbHarga
Tambahkan juga 4 buat kontrol Label ke dalam form..
Nama dan Text untuk masing-masing Label:
Name: LbNoBarang, Text: No.:
Name: LbNmBarang, Text:Nama:
Name: LbJumlah, Text: Jumlah:
Name: LbHarga, Text: Harga:
Nama dan Text untuk masing-masing Label:
Name: LbNoBarang, Text: No.:
Name: LbNmBarang, Text:Nama:
Name: LbJumlah, Text: Jumlah:
Name: LbHarga, Text: Harga:
Atur ukuran dan posisi kontrol-kontrol Texbox tersebut menjadi seperti gambar berikut..
8. Menambah kontrol Button ke dalam form
Pada panel ‘Toolbox’ pilih kontrol ‘Button’, klik tahan dan geser ke dalam form. Ganti properti Name dari kontrol Button tersebut melalui panel ‘Properties’.
Pada panel ‘Toolbox’ pilih kontrol ‘Button’, klik tahan dan geser ke dalam form. Ganti properti Name dari kontrol Button tersebut melalui panel ‘Properties’.
Tambahkan 5 kontrol Button ke dalam form, dengan property Name dan Text untuk masing-masing Button:
Name: cmdBaru, Text: Baru
Name: cmdEdit, Text: Edit
Name: cmdSimpan, Text: Simpan
Name: cmdHapus, Text: Hapus
Name: cmdTutup, Text: Tutup
Name: cmdBaru, Text: Baru
Name: cmdEdit, Text: Edit
Name: cmdSimpan, Text: Simpan
Name: cmdHapus, Text: Hapus
Name: cmdTutup, Text: Tutup
Atur lokasi dan posisi kelima kontrol Button tersebut seperti gambar:
9. Menulis kode
Ok, setelah user interface (UI) untuk form1 telah jadi, kini saatnya kita mulai menulis kode untuk Form1.
Ok, setelah user interface (UI) untuk form1 telah jadi, kini saatnya kita mulai menulis kode untuk Form1.
Pilih Form1.vb dari daftar object pada
panel ‘Solution Explorer’. Klik kanan pada Form1.vb dan pilih ‘View
Code’ atau dengan menekan tombol ‘F7’ pada keyboard.
Pada ‘Code View’ yang baru dibuka hanya akan terdapat 2 baris kode :
Pada ‘Code View’ yang baru dibuka hanya akan terdapat 2 baris kode :
- Public Class Form1
- End Class
Sebelum melanjutkan ke penulisan kode
pada Form1, kita akan membuat modul baru yang akan memuat daftar field
dari dalam tabel barang yang telah dibuat .
10. Module TableList.vb
Melalui modul ini kita akan membuat Class-class untuk setiap tabel dalam database. Setiap Class dalam modul ini akan mewakili nama tabel dalam database.. dan setiap konstanta dalam modul ini akan mewakili nama dari setiap field dalam tabel tblBarang.
Melalui modul ini kita akan membuat Class-class untuk setiap tabel dalam database. Setiap Class dalam modul ini akan mewakili nama tabel dalam database.. dan setiap konstanta dalam modul ini akan mewakili nama dari setiap field dalam tabel tblBarang.
Tambahkan modul baru ke dalam project di
dalam folder ‘Functions’. Klik kanan pada folder ‘Functions’ dan pilih
‘Add’ > ‘Module’.
Ubah nama modul menjadi ‘TableList.vb’ dan klik tombol ‘Add’.
Ubah nama modul menjadi ‘TableList.vb’ dan klik tombol ‘Add’.
Dalam modul TableList.vb, tambahkan
Class baru dengan nama tblBarang. Di dalam class tblBarang, tambahkan
beberapa konstanta public sebagai wakil dari field-field dalam tabel
tblBarang:
- Module TableList
- Public Class tblBarang
- Public Const _tablename As String = "tblBarang" 'Nama tabel
- Public Const KdBarang As String = "KdBarang" 'Field KdBarang dalam tabel
- Public Const NoProduk As String = "NoProduk" 'Field NoBarang dalam tabel
- Public Const NmBarang As String = "NmBarang" 'Field NmBarang dalam tabel
- Public Const Jumlah As String = "Jumlah" 'Field Jumlah dalam tabel
- Public Const Harga As String = "Harga" 'Field Harga dalam tabel
- Public Const Dihapus As String = "Dihapus" 'Field Dihapus dalam tabel
- End Class
- End Module
11. PublicSQLBuilder
Setelah class dari tblBarang dibuat saatnya kita masuk ke bagian PublicSQLBuilder. Modul PublicSQLBuilder merupakan suatu module yang akan digunakan untuk memudahkan kita dalam mengeksekusi perintah-perintah SQL ke dalam database. Modul ini terdiri dari beberapa classs.
Setelah class dari tblBarang dibuat saatnya kita masuk ke bagian PublicSQLBuilder. Modul PublicSQLBuilder merupakan suatu module yang akan digunakan untuk memudahkan kita dalam mengeksekusi perintah-perintah SQL ke dalam database. Modul ini terdiri dari beberapa classs.
Class-class dalam modul PublicSQLBuilder terdiri dari:
Class SQLCaseWhenObject
Class SQLDataObject
Class SQLGroupStatement
Class SQLJoinStatement
Class SQLOrderStatement
Class SQLStringField
Class SQLTabelField
Class SQLWhereField
Class SQLCaseWhenObject
Class SQLDataObject
Class SQLGroupStatement
Class SQLJoinStatement
Class SQLOrderStatement
Class SQLStringField
Class SQLTabelField
Class SQLWhereField
Class SQLInsertBuilder
Class SQLSelectBuilder
Class SQLUpdateBuilder
Class SQLSelectBuilder
Class SQLUpdateBuilder
Dalam menggunakan PublicSQLBuilder ini,
tidak diperbolehkan menghapus data dalam database. Sebagai penggantinya,
gunakan field ‘Dihapus’ yang terdapat dalam tabel tblBarang.
Contoh penggunaan PublicSQLBuilder:
Untuk menjalankan perintah SELECT:
Untuk menjalankan perintah SELECT:
- Dim sqlSelect As New SQLSelectBuilder
- With sqlSelect
- .AddTable(tblBarang._tablename)
- .AddField(tblBarang.KdBarang)
- .AddField(tblBarang.NmBarang)
- .AddField(tblBarang.NoProduk)
- .AddField(tblBarang.Jumlah)
- .AddField(tblBarang.Harga)
- .AddWhere(tblBarang.Dihapus, "=", 0)
- End With
Untuk mendapatkan hasil dari statement di atas, gunakan property ‘getsqlcommand’
sqlSelect.getsqlcommand
sqlSelect.getsqlcommand
Hasil dari sqlSelect.getsqlcommand adalah:
“SELECT KdBarang, NmBarang, NoProduk, Jumlah, Harga FROM tblBarang WHERE Dihapus = 0”
“SELECT KdBarang, NmBarang, NoProduk, Jumlah, Harga FROM tblBarang WHERE Dihapus = 0”
Untuk statement WHERE yang lebih dari satu gunakan keyword “AND”:
- .AddField(tblBarang.Harga)
- .AddWhere(tblBarang.Dihapus, "=", 0)
- .AddWhere(“AND”, tblBarang.Harga, ">", 100)
Untuk menjalankan perintah INSERT:
- Dim sqlInsert As New SQLInsertBuilder
- With sqlInsert
- .AddTable(tblBarang._tablename)
- .AddField(tblBarang.NoProduk, TbNoBarang.Text)
- .AddField(tblBarang.NmBarang, TbNmBarang.Text)
- .AddField(tblBarang.Jumlah, TbJumlah.Text)
- .AddField(tblBarang.Harga, TbHarga.Text)
- End With
Hasil dari sqlInsert.getsqlcommand untuk statement di atas adalah:
“INSERT INTO tblBarang(NoProduk, NmBarang, Jumlah, Harga) VALUES (1,2,3,4)”
“INSERT INTO tblBarang(NoProduk, NmBarang, Jumlah, Harga) VALUES (1,2,3,4)”
PublicSQLBuilder akan dibahas lebih lanjut pada saat penulisan koding ke dalam Form1
12. Menyatukan semua Fungsi dan Module ke dalam Form1
Kita kembali ke Form1. Tampilkan tampilan ‘Code View’ untuk Form1. Kita akan mencoba mengetik kode perintah untuk mengisi LvBarang dengan data-data dari database.
Yang akan kita lakukan adalah:
- Menampilkan data barang saat pertama kali form dibuka
- Menambah data baru ke dalam tabel tblBarang saat tombol simpan diklik.
- Meng-update data lama ke dalam tabel tblBarang saat tombol simpan diklik.
- Membedakan proses edit dan simpan saat tombol-tombol atau LvBarang diklik.
- Mengambil nilai dari KdBarang saat item dalam control LvBarang dipilih kemudian disimpan ke dalam variabel KdBarang.
Kita kembali ke Form1. Tampilkan tampilan ‘Code View’ untuk Form1. Kita akan mencoba mengetik kode perintah untuk mengisi LvBarang dengan data-data dari database.
Yang akan kita lakukan adalah:
- Menampilkan data barang saat pertama kali form dibuka
- Menambah data baru ke dalam tabel tblBarang saat tombol simpan diklik.
- Meng-update data lama ke dalam tabel tblBarang saat tombol simpan diklik.
- Membedakan proses edit dan simpan saat tombol-tombol atau LvBarang diklik.
- Mengambil nilai dari KdBarang saat item dalam control LvBarang dipilih kemudian disimpan ke dalam variabel KdBarang.
.Menampilkan data barang saat pertama kali form dibuka
Dalam ‘Code View’ dari Form1, pada dropdown ‘Class Name’ di bagian kiri, pilih ‘(Form 1 Events)’ dan pada dropdown ‘Method Name’ di bagian kanan pilih ‘Load’.
Dalam ‘Code View’ dari Form1, pada dropdown ‘Class Name’ di bagian kiri, pilih ‘(Form 1 Events)’ dan pada dropdown ‘Method Name’ di bagian kanan pilih ‘Load’.
Ketikkan kode berikut dalam Sub Form1_Load:
- loadData()
Sehingga menjadi :
- Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- loadData()
- End Sub
Berikut kode untuk sub loadData() :
- Private Sub loadData()
- 'Menampilkan data dari database ke kontrol ListView LvBarang
- 'Di sini kita mulai menggunakan PublicSQLBuilder
- 'Deklarasikan sqlSelect sebagai Class SQLSelectBuilder
- Dim sqlSelect As New SQLSelectBuilder
- With sqlSelect
- .AddTable(tblBarang._tablename) 'Menambah tabel barang ke daftar tabel yang akan digunakan
- .AddField(tblBarang.KdBarang) 'Menambah KdBarang ke daftar Field yang akan diambil
- .AddField(tblBarang.NmBarang) 'Menambah NmBarang ke daftar Field
- .AddField(tblBarang.NoProduk) 'Menambah NoProduk ke daftar Field
- .AddField(tblBarang.Jumlah) 'Menambah Jumlah ke daftar Field
- .AddField(tblBarang.Harga) 'Menambah Harga ke daftar Field
- .AddWhere(tblBarang.Dihapus, "=", 0) 'Hanya memilih barang yang belum dihapus (Dihapus = 0)
- End With
- 'Hasil dari sqlSelect pada property getsqlcommand dengan cara di atas adalah:
- 'SELECT KdBarang, NmBarang, NoProduk, Jumlah, Harga from tblBarang WHERE Dihapus = 0
- Dim dv As New Data.DataView
- dv = DoSqlDataView(sqlSelect.getsqlcommand)
- If dv.Count <> 0 Then
- 'Mengosongkan daftar barang dari dalam kontrol LvBarang
- LvBarang.Items.Clear()
- 'Loop sampai semua data terbaca
- For i As Integer = 0 To dv.Count - 1 'Menggunakan -1 agar nilai i dan nilai index dari dv sesuai
- 'Deklarasikan lv sebagai ListViewItem yang akan ditambahkan ke dalam kontrol LvBarang
- 'Tambahkan setiap nilai yang didapat dari database (dalam dataview dv) ke dalam object lv
- Dim lv As New ListViewItem(CStr(dv(i)(tblBarang.KdBarang))) 'Mengambil nilai dari KdBarang pada index ke i
- With lv.SubItems
- .Add(CStr(dv(i)(tblBarang.NoProduk)))
- .Add(CStr(dv(i)(tblBarang.NmBarang)))
- .Add(CStr(dv(i)(tblBarang.Jumlah)))
- .Add(CStr(dv(i)(tblBarang.Harga)))
- End With
- 'Mengisi control LvBarang dengan isi dari lv
- Me.LvBarang.Items.Add(lv)
- Next
- End If
- End Sub
Kiranya penjelasan dari kode di atas cukup jelas sehingg belum perlu untuk dijabarkan lagi..
Jika dijalankan (dengan menekan tombol
F5 pada keyboard) maka aplikasi akan menampilkan data-data barang yang
terdapat dalam tabel barang yang memiliki nilai Dihapus = 0.
Untuk proses edit dan tambah data
barang, kita tambahkan lagi 2 sub prosedur masing-masing untuk menambah
data baru dan satunya lagi untuk meng-update data yang lama..
.Menambah data baru ke dalam tabel tblBarang saat tombol simpan diklik.
Tambahkan kode berikut ke dalam Form1:
Tambahkan kode berikut ke dalam Form1:
- Private Sub tambahData()
- 'Deklarasikan sqlInsert sebagai SQLInsertBuilder dari modul PublicSQLBuilder (Persiapan menambah data baru)
- Dim sqlInsert As New SQLInsertBuilder
- With sqlInsert
- .AddTable(tblBarang._tablename) 'Nama tabel yang akan dipakai
- .AddField(tblBarang.NoProduk, TbNoBarang.Text) 'Menambah isi NoProduk dengan nilai pada TbNoBarang
- .AddField(tblBarang.NmBarang, TbNmBarang.Text) 'Menambah isi NmBarang dengan nilai pada TbNmBarang
- .AddField(tblBarang.Jumlah, TbJumlah.Text) 'Menambah isi Jumlah dengan nilai pada TbJumlah
- .AddField(tblBarang.Harga, TbHarga.Text) 'Menambah isi Harga dengan nilai pada TbHarga
- End With
- If DoSqlCommand(sqlInsert.getsqlcommand) Then 'Menjalankan perintah dari sqlInsert menggunakan DoSqlCommand
- 'Nilai dari KdBarang terakhir belum bisa diketahui, untuk mengetahui nilai dari suatu field yang
- 'bertipe auto increment bisa dengan menggunakan fungsi GetIdentity
- 'Mengambil nilai dari KdBarang yang baru dimasukkan
- Dim KdBarangTerakhir As Integer = GetIdentity(tblBarang._tablename)
- MessageBox.Show("Data berhasil disimpan dengan kode " & KdBarangTerakhir, Me.Text)
- Else
- MessageBox.Show("Gagal menyimpan data.", Me.Text)
- End If
- End Sub
Kemudian tekan kombinasi tombol SHIFT+F7
untuk kembali ke Designer View. Dari Designer View, klik dua kali
tombol simpan, maka kita akan kembali ke dalam Code View. Ketikkan
perintah berikut di dalam sub cmdSimpan_Click()
- tambahData()
Sekarang kita sudah bisa menambah data
pada database. Coba jalankan aplikasi dengan menekan tombol F5 pada
keyboard, masukkan data-data dan klik tombol Simpan untuk mencoba
hasilnya..
.Meng-update data lama ke dalam tabel tblBarang saat tombol simpan diklik.
Tambahkan kode berikut ke dalam Form1:
Tambahkan kode berikut ke dalam Form1:
- Private Sub updateData(Optional ByVal hapus As Boolean = False)
- 'Deklarasi sqlUpdate sebagai SQLUpdateBuilder (Persiapan mengupdate data lama)
- Dim sqlUpdate As New SQLUpdateBuilder
- With sqlUpdate
- .AddTable(tblBarang._tablename) 'Nama tabel yang akan diupdate
- .AddField(tblBarang.NoProduk, TbNoBarang.Text) 'Update nilai NoProduk dengan nilai dari TbNoBarang
- .AddField(tblBarang.NmBarang, TbNmBarang.Text) 'Update nilai NmBarang dengan nilai dari TbNmBarang
- .AddField(tblBarang.Jumlah, TbJumlah.Text) 'Update nilai Jumlah dengan nilai dari TbJumlah
- .AddField(tblBarang.Harga, TbHarga.Text) 'Update nilai Harga dengan nilai dari TbHarga
- 'Bila hapus bernilai TRUE, maka data akan dihapus
- If hapus Then
- .AddField(tblBarang.Dihapus, 1)
- End If
- .AddWhere(tblBarang.KdBarang, "=", Me.KdBarang) 'Kode dari barang yang akan dihapus
- End With
- If DoSqlCommand(sqlUpdate.getsqlcommand) Then 'Menjalankan perintah dari sqlUpdate menggunakan DoSqlCommand
- MessageBox.Show("Data berhasil diupdate", Me.Text)
- Else
- MessageBox.Show("Gagal mengupdate data.", Me.Text)
- End If
- End Sub
Kembali ke Designer View, klik 2 kali
pada tombol simpan untuk tambahkan kode berikut yang akan meng-update
data dalam tblBarang.
Ubah kode dalam sub cmdSimpan_Click() sehingga menjadi seperti berikut:
- 'Jika tidak sedang dalam kondisi Edit maka panggil prosedur tambahData, dan sebaliknya
- If _sedangEdit = False Then
- tambahData()
- Else
- updateData()
- End If
. Membedakan proses edit dan simpan saat tombol-tombol atau LvBarang diklik.
Karena untuk proses tambah dan edit menggunakan satu tombol (cmdSimpan) maka ada beberapa logika yang perlu kita tambahkan.
Karena untuk proses tambah dan edit menggunakan satu tombol (cmdSimpan) maka ada beberapa logika yang perlu kita tambahkan.
Sebelumnya nonaktifkan tombol Simpan saat Form pertama kali ditampilkan, tambahkan kode cmdSimpan.Enabled = False :
- Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- 'Tampilkan data saat pertama kali Form1 di tampilkan
- loadData()
- 'Nonaktifkan tombol simpan
- cmdSimpan.Enabled = False
- End Sub
Pertama-tama kita buat sebuah
variabel _sedangEdit dan beberapa sup prosedur yang masing-masing
terdiri dari ‘Membuka textbox’, ‘Mengunci textbox’ dan ‘Mengosongkan
textbox’.
Masukkan kode seperti di bawah ini ke dalam Form1:
- Private _sedangEdit As Boolean = False
- Sub _kunciTeks()
- Me.TbHarga.Enabled = False
- Me.TbJumlah.Enabled = False
- Me.TbNmBarang.Enabled = False
- Me.TbNoBarang.Enabled = False
- End Sub
- Sub _bukaTeks()
- Me.TbHarga.Enabled = True
- Me.TbJumlah.Enabled = True
- Me.TbNmBarang.Enabled = True
- Me.TbNoBarang.Enabled = True
- End Sub
- Sub _resetTeks()
- Me.TbHarga.Text = ""
- Me.TbJumlah.Text = ""
- Me.TbNmBarang.Text = ""
- Me.TbNoBarang.Text = ""
- End Sub
Kita mulai dari cmdBaru..
Kembali ke Designer View dan klik 2 kali tombol Baru (cmdBaru), kita akan dibawa kembali ke Code View..
Ketikkan kode berikut pada sub cmdBaru_Click()
Kembali ke Designer View dan klik 2 kali tombol Baru (cmdBaru), kita akan dibawa kembali ke Code View..
Ketikkan kode berikut pada sub cmdBaru_Click()
- _sedangEdit = False 'Ini bukan proses edit
- _resetTeks() 'Kosongkan textbox
- KdBarang = 0 'Pastikan nilai pada variabel KdBarang = 0
- If cmdBaru.Text = "Baru" Then 'Jika text cmdBaru = Baru
- cmdSimpan.Enabled = True 'Aktifkan cmdSimpan
- cmdEdit.Enabled = False 'Nonaktifkan cmdEdit
- cmdHapus.Enabled = False 'Nonaktifkan cmdHapus
- cmdBaru.Text = "Batal" 'Ubah text cmdBaru menjadi Batal
- KdBarang = 0
- _bukaTeks() 'Aktifkan Textbox
- Else 'Jika text pada cmdBaru = Batal
- cmdBaru.Text = "Baru" 'Ubah text pada cmdBaru menjadi Baru
- cmdSimpan.Enabled = False 'Nonaktifkan cmdSimpan
- cmdEdit.Enabled = True 'Aktifkan cmdEdit
- cmdHapus.Enabled = True 'Aktifkan cmdHapus
- _kunciTeks() 'Nonaktifkan semua textbox
- End If
Untuk cmdEdit:
Pertama-tama kita perlu mengambil nilai dari KdBarang dari barang yang dipilih dalam LvBarang. Kembali ke ‘Designer View’, klik 2 kali LvBarang, kita akan diajak kembali ke tampilan ‘Code View’. Pada bagian kanan dari ‘Code View’, ubah Method name menjadi Click:
Pertama-tama kita perlu mengambil nilai dari KdBarang dari barang yang dipilih dalam LvBarang. Kembali ke ‘Designer View’, klik 2 kali LvBarang, kita akan diajak kembali ke tampilan ‘Code View’. Pada bagian kanan dari ‘Code View’, ubah Method name menjadi Click:
dan ketikkan kode berikut ke dalam sub LvBarang_Click()
- Private Sub LvBarang_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LvBarang.Click
- 'Validasi: apakah di dalam kontrol LvBarang terdapat barang? Jika tidak ada, keluar dari Sub
- If LvBarang.Items.Count = 0 Then
- Exit Sub
- End If
- 'Jika tidak ada barang yang dipilih, tampilkan pesan
- If LvBarang.SelectedItems.Count = 0 Then
- MessageBox.Show("Data tidak tersedia.", Me.Text)
- Exit Sub
- End If
- 'Mengambil nilai dari KdBarang pada barang yang terdapat pada index 0 dari item yang dipilih dari dalam LvBarang
- KdBarang = CInt(LvBarang.SelectedItems(0).SubItems(0).Text)
- 'Mengisi tiap textbox dengan nilai dari barang yang dipilih dalam LvBarang
- Me.TbNoBarang.Text = LvBarang.SelectedItems(0).SubItems(1).Text
- Me.TbNmBarang.Text = LvBarang.SelectedItems(0).SubItems(2).Text
- Me.TbJumlah.Text = LvBarang.SelectedItems(0).SubItems(3).Text
- Me.TbHarga.Text = LvBarang.SelectedItems(0).SubItems(4).Text
- End Sub
Kembali ke ‘Designer View’, klik 2 kali pada tombol cmdEdit dan masukkan kode berikut ke dalam sub cmdEdit_Click()
- If KdBarang = 0 Then 'Jika belum ada barang yang dipilih dari dalam LvBarang, maka tampilkan pesan
- MessageBox.Show("Silahkan pilih barang dari daftar.", Me.Text)
- Exit Sub
- End If
- _sedangEdit = True 'Ubah variabel _sedangEdit menjadi True
- _bukaTeks() 'Aktifkan textbox
- cmdBaru.Text = "Batal" 'Ubah text pada cmdBaru menjadi "Batal"
- cmdSimpan.Enabled = True 'Aktifkan cmdSimpan
- cmdEdit.Enabled = False 'Nonaktifkan cmdEdit
- cmdHapus.Enabled = False 'Nonaktifkan cmdHapus
Untuk tombol cmdHapus:
Kembali ke ‘Designer View’, klik 2 kali pada cmdHapus dan masukkan kode berikut ke dalam sub cmdHapus_Click()
Kembali ke ‘Designer View’, klik 2 kali pada cmdHapus dan masukkan kode berikut ke dalam sub cmdHapus_Click()
- Private Sub cmdHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHapus.Click
- 'Jika tidak ada barang yang dipilih, tampilkan pesan
- If KdBarang = 0 Then
- MessageBox.Show("Tidak ada barang yang dipilih.", Me.Text)
- Exit Sub
- End If
- 'Tampilkan pesan konfirmasi penghapusan data
- If MessageBox.Show("Ingin menghapus barang ini?", Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then
- Exit Sub
- End If
- 'Mulai proses penghapusan dengan memanggil prosedur updateData dengan mengatur nilai 'hapus' menjadi True
- updateData(True)
- 'Kosongkan textbox
- _resetTeks()
- 'Muat ulang semua data untuk melihat perubahan
- loadData()
- End Sub
Untuk cmdTutup:
Kembali ke Designer View, klik 2 kali tombol cmdTutup dan masukkan kode berikut ke dalam sub cmdTutup_Click()
Kembali ke Designer View, klik 2 kali tombol cmdTutup dan masukkan kode berikut ke dalam sub cmdTutup_Click()
- Me.Close()
Selesai….. Coba jalankan aplikasi dengan menekan tombol F5 pada keyboard.
Sumber: www.idfreelance.net
Sumber: www.idfreelance.net
Tidak ada komentar:
Posting Komentar