Membuat Program input dan edit data dengan VB.NET 2005 dan SQL Server 2005 (hampir 100% murni coding)

Posted by dragon on Sunday, 20 June 2010

Program Input, Edit, Hapus (Manipulasi data) merupakan program standar yang selalu ada pada saat seorang programmer membuat aplikasi.
Kebisaan membuat program dari zaman Basic, Pascal, clipper, foxpro sampai ke Visual Basic 5 dan Visual Basic 6 yang selalu mengandalkan kode program dalam membangun program, bagi saya masih terbawa bawa ke era Visual yang telah didukung dengan Wizard.
Pada artikel kali ini saya coba memaparkan cara membuat program Input, Edit, Hapus dengan mengambil contoh pengolahan data supplier, hampir 100% saya pakai code program.
Contoh yang dibahas sifatnya sangat dasar sekali, jadi untuk rekan rekan yang sudah sangat berpengalaman dalam pemrograman dimohon saran dan info yang membangun demi kebaikan kemampuan programming dimasa datang.
Untuk rekan pemula mudahan mudahan artikel ini bisa membantu dalam memperdalam pengetahuan programming
Mari kita mulai saja.
Siapkan sebuah database di SQL Server 2005, pada komputer saya servernya saya beri nama ISLAM, dengan nama database GUDANG
Untuk server pembaca silahkan sesuaikan sendiri sesuai keinginan.
Kita lanjutkan
Buat table supplier dengan susunan field seperti gambar berikut :
Sekarang aktifkan Visual Basic.NET 2005 dan buat sebuah project baru namanya juga terserah anda. (saya sendiri memberi nama project ini GUDANG)
Siapkan sebuah Module baru yang berfungsi untuk membuat koneksi kedatabase atau tempat menyimpan fungsi atau prosedur yang kita butuhkan dalam pembuatan program.
Langkah pembuatan module : klik kanan nama project yang ada di Window Solution Explorer, lalu pilih Add –> Module. Secara default VB akan memberi nama Module1.
berikut ini gambar Solution Explorer :
Pada jendela Code program Module1 masukkan kode berikut :
Imports System.Data.SqlClient
Module Module1
Public Function Koneksi() As SqlConnection
Dim Conn As New SqlConnection
Conn = New SqlConnection(“server=islam; database=gudang; user=sa;password=intan;”)
Conn.Open()
Return Conn
End Function
End Module
Sekali lagi untuk nama server, database, user dan password sesuaikan dengan komputer yang anda pakai.
Tahap selanjutnya siapkan form baru dengan contoh disain seperti gambar berikut.
Komponen yang ada pada form terdiri dari 6 Label (text label sesuaikan dengan gambar),
6 Buah Textbox Masing masing diberi nama :
TextKode
TextNama
TextAlamat
TextTelepon
TextKontakPerson
TextEmail
6 Buah Button, masing diberi nama :
ButtonTambah
ButtonSimpan
ButtonHapus
ButtonUpdate
ButtunKeluar
Buttun1 (Loading data)
1 Buah DatagridView dengan nama GridSupplier.
Saatnya Coding……,
Setelah semua komponen tersusun dalam Form saat kita melakukan coding program.
Pada Menu Bar, pilih menu View à Code
Pada bagian atas ketikan kode berikut untuk meng-import Class Data SQL sehingga kita bisa melakukan koneksi ke database.
Imports System.Data.SqlClient
Selanjutnya pelajari code program berikut baris perbaris sambil memperhatikan komentar kode program yang saya sisipkan pada setiap prosedur.
Kode komentar selalu diawali dengan tanda kutip satu (‘)
Public Class Supplier
‘ Siapkan variabel keneksi
Dim koneksi = Module1.Koneksi
‘Prosedur load form (aktifkan denfan double klik pada form)
Private Sub Supplier_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘ panggil prosedur PanggilData
PanggilData()
ButtonSimpan.Enabled = False
ButtonHapus.Enabled = False
ButtonUpdate.Enabled = False
End Sub
‘Prosedur membuat datagridview memiliki warna Alternate
Sub GridBerwarna()
With Me.GridSupplier
.RowsDefaultCellStyle.BackColor = Color.BlanchedAlmond
.AlternatingRowsDefaultCellStyle.BackColor = Color.Azure
End With
End Sub
‘ Prosedur panggildata
Sub PanggilData()
Dim Adapter As New SqlDataAdapter(“select * from supplier”, Module1.Koneksi)
Dim dt As New DataTable(“Supplier”)
Adapter.Fill(dt)
GridSupplier.DataSource = dt
Call GridBerwarna()
End Sub
‘Prosedur Form kosong (berfungsi untuk mengosongkan TetxBox dangan pengaturan focus)
Sub FormKosong()
TextKode.Text = “”
TextNama.Text = “”
TextAlamat.Text = “”
TextTelepon.Text = “”
TextKontakPerson.Text = “”
TextEmail.Text = “”
TextKode.Focus()
End Sub
‘Prosedur mengaktifkan TextBox
Sub FormHidup()
TextKode.Enabled = True
TextNama.Enabled = True
TextAlamat.Enabled = True
TextTelepon.Enabled = True
TextKontakPerson.Enabled = True
TextEmail.Enabled = True
End Sub
‘Prosedure Mengatur Button dan Textbox
Sub FormNormal()
Call FormKosong()
ButtonTambah.Enabled = True
ButtonHapus.Enabled = False
ButtonSimpan.Enabled = False
ButtonKeluar.Text = “&Keluar”
End Sub
‘Prosedur untuk tambah data
Private Sub ButtonTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonTambah.Click
Call FormHidup()
Call FormKosong()
Call PanggilData()
ButtonSimpan.Enabled = True
ButtonTambah.Enabled = False
ButtonHapus.Enabled = False
ButtonUpdate.Enabled = False
ButtonKeluar.Text = “&Normal”
TextKode.Focus()
End Sub
‘Prosedur untuk simpan data
Private Sub ButtonSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSimpan.Click
Dim Sql As String = String.Empty
‘Cek Kode
‘Uji data apakah textKode tidak kosong
If TextKode.Text <> “” Then
‘Jika tidak kosong tambahkan data
Sql = “INSERT INTO Supplier(KodeSupplier,NamaSupplier,AlamatSupplier,Telepon,KontakPerson,email)” _
& ” VALUES (‘” & TextKode.Text & “‘,’” & TextNama.Text & “‘, ‘” & TextAlamat.Text & “‘, ‘” _
& TextTelepon.Text & “‘, ‘” & TextKontakPerson.Text & “‘, ‘” & TextEmail.Text & “‘)”
‘ Periksa hati-hati tanda kutip untuk setiap variabel, salah ketik mengakibatkan query anda tidak akan terbaca.
‘ Persiapan execusi Query Insert
Dim command As New SqlCommand(Sql, Module1.Koneksi)
command.ExecuteNonQuery()
Module1.Koneksi.Close()
‘ sampaikan pesan bahwa data telah tersimpan.
MessageBox.Show(“Data dengan kode “ & TextKode.Text & ” Sudah disimpan”, “Simpan data Sukses”, MessageBoxButtons.OK, MessageBoxIcon.Information)
‘ sampaikan juga pesan jika penyimpanan gagal.
Else
MessageBox.Show(“Isikan dulu data”, “Simpan Gagal”, MessageBoxButtons.OK, MessageBoxIcon.Information)
TextKode.Focus()
End If
‘ Panggil prosedur FormKosong dan prosedur panggil data.
Call FormKosong()
Call PanggilData()
End Sub
‘ ini prosedur untuk mengganti tab jadi enter dan prosedur untuk mencari apakah data pada text kode sudah pernah ada atau belum untuk menghindari redudansi data.
Private Sub TextKode_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextKode.KeyPress
If e.KeyChar = Chr(Keys.Enter) Then
‘mengirim key tab
SendKeys.Send(“{tab}”)
End If
‘buat koneksi untuk pencarian data yang sudah ada
Dim Adapter As New SqlDataAdapter(“SELECT * from Supplier where KodeSupplier = ‘” _
& TextKode.Text & “‘”, Module1.Koneksi)
Dim dt As New DataTable(“Supplier”)
Adapter.Fill(dt)
‘Jika data yang dicari ada
If dt.Rows.Count <> 0 Then
MessageBox.Show(“Data dengan kode “ & TextKode.Text & ” Sudah ada, inputkan data lain”, “Ditemukan data yang sama”, MessageBoxButtons.OK, MessageBoxIcon.Information)
TextKode.Text = ” “
End If
GridSupplier.DataSource = dt
End Sub
‘ ini prosedur untuk mengganti tab jadi enter
Private Sub TextNama_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextNama.KeyPress
‘tab to enter
If e.KeyChar = Chr(Keys.Enter) Then
‘mengirim key tab
SendKeys.Send(“{tab}”)
End If
End Sub
‘ ini prosedur untuk mengganti tab jadi enter
Private Sub TextAlamat_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextAlamat.KeyPress
‘tab to enter
If e.KeyChar = Chr(Keys.Enter) Then
‘mengirim key tab
SendKeys.Send(“{tab}”)
End If
End Sub
‘ ini prosedur untuk mengganti tab jadi enter
Private Sub TextTelepon_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextTelepon.KeyPress
‘tab to enter
If e.KeyChar = Chr(Keys.Enter) Then
‘mengirim key tab
SendKeys.Send(“{tab}”)
End If
End Sub
‘ ini prosedur untuk mengganti tab jadi enter
Private Sub TextKontakPerson_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextKontakPerson.KeyPress
‘tab to enter
If e.KeyChar = Chr(Keys.Enter) Then
‘mengirim key tab
SendKeys.Send(“{tab}”)
End If
End Sub
‘ ini prosedur untuk mengganti tab jadi enter
Private Sub TextEmail_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextEmail.KeyPress
‘tab to enter
If e.KeyChar = Chr(Keys.Enter) Then
‘mengirim key tab
SendKeys.Send(“{tab}”)
End If
End Sub
‘prosedur untuk menghapus data
Private Sub ButtonHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonHapus.Click
If GridSupplier.CurrentRow.Index > -1 Then
Dim Sql As String = String.Empty
Sql = “Delete from Supplier where KodeSupplier = ‘” & TextKode.Text & “‘”
Dim command As New SqlCommand(Sql, Module1.Koneksi)
command.ExecuteNonQuery()
Module1.Koneksi.Close()
MessageBox.Show(“Data dengan kode “ & TextKode.Text & ” Sudah dihapus”, “Penghapusan Sukses”, MessageBoxButtons.OK, MessageBoxIcon.Information)
Call FormKosong()
Call PanggilData()
ButtonHapus.Enabled = False
ButtonUpdate.Enabled = False
Else
MessageBox.Show(“Pilih dulu data yang akan dihapus”, “Tidak ada data yang akan dihapus”, MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
‘prosedur untuk Update data
Private Sub ButtonUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonUpdate.Click
Dim Sql As String = String.Empty
‘Cek Kode
‘Update
Sql = “UPDATE Supplier SET KodeSupplier= ‘” & TextKode.Text & “‘,” _
& “NamaSupplier=’” & TextNama.Text & “‘,AlamatSupplier = ‘” & TextAlamat.Text & “‘,” _
& “Telepon=’” & TextTelepon.Text & “‘,KontakPerson = ‘” & TextKontakPerson.Text & “‘,” _
& “email = ‘” & TextEmail.Text & “‘ WHERE kodeSupplier = ‘” & TextKode.Text & “‘”
Dim command As New SqlCommand(Sql, Module1.Koneksi)
command.ExecuteNonQuery()
Module1.Koneksi.Close()
MessageBox.Show(“Data dengan kode “ & TextKode.Text & ” Sudah diupdate”, “Update data Sukses”, MessageBoxButtons.OK, MessageBoxIcon.Information)
Call FormKosong()
Call PanggilData()
ButtonHapus.Enabled = False
ButtonUpdate.Enabled = False
End Sub
Private Sub ButtonKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonKeluar.Click
If ButtonKeluar.Text = “&Keluar” Then
Me.Close()
Else
Call FormNormal()
End If
End Sub
‘prosedur untuk loading data ke dataqridview (refresh data, setelah dilakukan query
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Call PanggilData()
End Sub
‘ini prosedur yang sangat berperan,karena prosedure ini akan membuat setiap baris yang cel yang kita klik pada data grid view, maka isi dari setiap field akan dikirim kedalam textbox, sehingga kita dapat melakukan manipulasi data.
Prosedure ini mirip dengan Binding manager, Insyallah akan kita bahas pada artikel berikutnya.
Private Sub GridSupplier_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles GridSupplier.CellClick
Dim i As Integer
i = GridSupplier.CurrentRow.Index
TextKode.Text = GridSupplier.Item(0, i).Value
TextNama.Text = GridSupplier.Item(1, i).Value
TextAlamat.Text = GridSupplier.Item(2, i).Value
TextTelepon.Text = GridSupplier.Item(3, i).Value
TextKontakPerson.Text = GridSupplier.Item(4, i).Value
TextEmail.Text = GridSupplier.Item(5, i).Value
ButtonHapus.Enabled = True
ButtonUpdate.Enabled = True
End Sub
End Class

{ 3 comments... read them below or add one }

Muchlis Amrulloh said...

sipppppppppppp terimakasihhhh

Hasan Ashari said...

command.ExecuteNonQuery() ERROR !!!, mohon pencerahan

Ita said...

Gan blh mntk source nya gak

Post a Comment