You are on page 1of 18

Database dengan

SQL Server Compact Edition

7.1. Mendesain Database


Yang dimaksud mendesain database adalah merancang suatu database yang akan digunakan
dalam suatu aplikasi yang akan dibangun. Database itu sendiri secara umum adalah kumpulan
dari beberapa tabel yang saling berelasi.
Adapun database yang akan kita buat adalah Database Adventori Barang, maka desain tabel yang
akan digunakan adalah sebagai berikut :

Tabel Barang

Nama Field Data Type Length Primery Key


Kode_Brg* nvarchar 5 Yes
Nama_Brg nvarchar 30 No
Stok_Brg numeric 5 No
Harga_Jual money 19 No

7.2. Membuat Database


Setelah mendesain tabel, langkah selanjutnya adalah membuat database tersebut. Pada bab ini,
pembuatan database menggunakan SQL Server Compact Edition yang dilakukan langsung dari
Visual Studio 2008 . Langkah-langkahnya adalah sebagai berikut :
1. Buka project baru dengan template Windows Form Apllication dan beri nama Form
Penjualan.
2. Klik menu Project > Add New Item...
3. Pada jendela Add New Item, pilih Categories Data dan Templates Local Database, dan beri
nama TokoArsia pada kotak Name. Seperti tampilan gambar dibawah (gambar 24).
4. Kemudian klik tombol Add.
Gambar 24. Jendela Add New Item

5. Pada jendela Data Source Configuration Wizard, isikan nama TokoArsiaDataSet pada kotak
DataSet name seperti tampilan gambar 25 dibawah ini.
6. Terakhir, klik tombol Finish.

Gambar 25. Jendela Data Source Configuration Wizard

7.3. Membuat Tabel Barang


Setelah database dibuat, dilanjutkan dengan membuat tabel dan menentukan kolom pada setiap
tabel seperti desain tabel yang kita buat sebelumnya. Caranya adalah :
1. Klik menu View > Server Explorer untuk menampilkan jendela Server Explorer seperti gambar
dibawah ini :
Gambar 26. Jendela Server Explorer

2. Pada jendela Server Explorer, klik kanan pada Tables, dan klik Create Tables untuk membuka
jendela New Table.
3. Isi nama tabel pada Kotak Name menjadi TabelBarang dan isi field-field yang dibutuhkan pada
kolom Column Name, type data pada Data Type, dan panjang karakter di kolom Length.
Jangan lupa mengunci Kode_Brg dengan mengubah Primary menjadi Yes agar kode yang
dimasukkan tidak ganda / tidak sama, kemudian klik tombol OK.

Gambar 27. Jendela New Table untuk TabelBarang

7.4. Mengkonfigurasi Data Source


Buka Jendela Data Source dengan cara klik menu Data > Show Data Sources. Perhatikan pada
panel Data Sources DataSet TokoArsiaDataSet yang terbentuk, belum mendeteksi penambahan
tabel barang pada database, sehingga tidak dapat mengakses data tabel barang.
Untuk menambahkan Tabel Barang yang telah dibuat sebelumnya, ikuti langkah-langkah berikut :
1. Klik kanan pada TokoArsiaDataSet > Configure DataSet with Wizard.
Gambar 28. Jendela Data Source Configuration Wizard

2. Pada jendela Data Source Configuration Wizard, centang semua objek database yang tersedia,
termasuk field-field pada tabel barang.
3. Kemudian klik tombol Finish dan hasil konfigurasi data source akan terlihat seperti gambar
berikut :

Gambar 29. Hasil Konfigurasi DataSource TokoArsiaDataSet

Setelah berhasil mengkonfigurasi, disamping tab Form Design akan muncul file TokoArsiaDataSet
yang berekstensi *.xsd. Dan akan terlihat desain DataSet yang menampilkan
TableAdapterManager seperti gambar berikut :

Gambar 30. File TokoArsiaDataSet.xsd


Gambar 31. Jendela Properties DataAdapter

7.5. Mendesain Antarmuka Aplikasi


Langkah selanjutnya adalah mendesain antarmuka jendela aplikasi untuk mengelola data pada
tabel barang. Untuk lebih jelas lagi ikuti langkah-langkah berikut :
Mendesain Form Tampil
Form Pertama yang dibuat adalah Form Tampil yang digunakan untuk menampilkan data dalam
tabel barang.
1. Bukalah Form baru dan beri nama FormTampil.vb.
2. Tambahkan dan atur properties tiap komponennya pada FormTampil seperti berikut :

Komponen Properties
Form1 (Name) : FormTampil, (Text) : Tabel Data Barang
(Name) : dataSetTampilBarang
DataSet
(DataSetName) : TokoArsiaDataSet
(Name) : bsTampilBarang
BindingSource (Data Source) : dataSetTampilBarang
(Data Member) : TabelBarang
TableAdapter (Name) : TableAdapterTampilBarang
Panel1 (Name) : Panel1
Panel2 (Name) : Panel2, (BorderStyle) : Fixed3D
(Name) : bnTampilBarang
(Dock) : Bottom, (GripStyle) : Hidden
Binding Navigator1
(BindingSource) : bsTampilBarang
(Text) : Navigasi Data Tabel Barang
(Name) : Judul, (Text Align) : MiddleCenter
Label1
(Text) : .:: DATA TABEL BARANG ::.
(Name) : gridDataBarang
DataGridView
(BindingSource) : bsTampilBarang
TextBox1 (Name) : TxtCari
(Name) : CmbCari, (Text) : Kolom
ComboBox1
(Items) : Kode, Nama, Stok, Harga
Button1 (Name) : BtnCari, (Text) : Cari
Button2 (Name) : BtnShow, (Text) : Show All
Button3 (Name) : BtnTambah, (Text) : Tambah
Button4 (Name) : BtnUbah, (Text) : Ubah
Button5 (Name) : BtnHapus, (Text) : Hapus
Button6 (Name) : BtnTutup, (Text) : Tutup

3. Atur komponen tersebut pada jendela FormTampil seperti gambar 31 berikut ini :

Gambar 32. Desain Form Tampil

Konfigurasi Kontrol GridData View


GridDataView digunakan untuk menampilkan data dalam bentuk tabel, komponen ini harus
dihubungkan dengan BindingSource.
1. Klik menu DataGridView Tasks pada GridDataView, pilih properti Choose Data Source :
bsTampilBarang.
Gambar 33. Menu DataGridView Tasks

2. Kemudian klik Edit Columns untuk menambahkan header.


3. Pada jendela Edit Columns, atur properti header Text dan ukuran masing-masing kolom,
seperti gambar berikut :

Gambar 34. Jendela Edit Columns

Membuat TabelAdapter
Langkah selanjutnya adalah membuat tabel Adapter yang digunakan untuk memasukkan,
mengubah, menampilkan dan menghapus data.
1. Buka file TokoArsiaDataSet.xsd melalui jendela Solution Explorer.
Gambar 35. Desain File TokoArsiaDataSet.xsd

2. Terlihat pada TableBarangTableAdapter ada sebuah perintah SQL Fill,GetData ().


3. Pilih Query pada Jendela Toolbox DataSet, dan drag ke dalam area Table Adapter sehingga
muncul jendela TableAdapter Query Configuration Wizard.
4. Klik tombol Next untuk memilih type query yang digunakan.

Gambar 36. Jendela Toolbox DataSet

Gambar 37. Jendela TableAdapter Query Configuration Wizard


Gambar 38. Jendela Choose a Query Type

5. Pada jendela Choose a Query Type, pilih radio button SELECT which return rows.
Selanjutnya klik tombol Next.

Gambar 39. Jendela Specify a SQL SELECT statement

6. Pada jendela Specify a SQL SELECT statement akan tampil perintah SQL seperti gambar
diatas. Klik tombol Query Builder.
7. Pada jendela Query Builder, tuliskan perintah SQL sebagai berikut :
SELECT Kode_Brg, Nama_Brg, Stok_Brg, Harga_Jual
FROM TabelBarang
WHERE Kode_Brg LIKE ?
8. Setelah itu klik Execute Query dan otomatis tanda ? akan berubah menjadi @param1.
9. Masukkan nilai sb001 pada kotak Query Parameter yang muncul. Selanjutnya klik tombol
OK.
10. Klik tombol OK lagi pada Query Builder dan perhatikan statement SQL berubah seperti
dibawah ini :
SELECT Kode_Brg, Nama_Brg, Stok_Brg, Harga_Jual
FROM TabelBarang
WHERE (Kode_Brg LIKE @Param1)

Gambar 40. Jendela Query Builder


Gambar 41. Jendela Query Parameter
11. Klik tombol Next untuk melanjutkan pembuatan TabelAdapter.
12. Pada Jendela Choose Method to Generate, isikan Method Name pada Fill a DataTable
dengan FillByKode dan Methode Name pada Return a Data Table dengan
GetDataByKode, kemudial Klik tombol Next.
13. Akan muncul jendela informasi pembuatan statemen SQL dan method Fill dan GetData. Klik
tombol Finish untuk mengakhiri pembuatan TableAdapter.

Gambar 42. Jendela Choose Methods to Generate

Gambar 43. Jendela Wizard Results


Hasil yang terlihat pada TabelBarangTabelAdapter adalah seperti gambar berikut ini :

Gambar 44. TabelAdapter untuk Kode

Dengan cara yang sama pada langkah-langkah diatas, buatlah statemen TableAdapter sebagai
berikut :

Nama
Statemen
Method/Fungsi
SELECT Kode_Brg, Nama_Brg, Stok_Brg, Harga_Jual
FillByNama
FROM TabelBarang
GetDataByNama
WHERE Nama_Brg LIKE ?
SELECT Kode_Brg, Nama_Brg, Stok_Brg, Harga_Jual
FillByStok
FROM TabelBarang
GetDataByStok
WHERE Stok_Brg LIKE ?
SELECT Kode_Brg, Nama_Brg, Stok_Brg, Harga_Jual
FillByHarga
FROM TabelBarang
GetDataByHarga
WHERE Harga_Jual LIKE ?
SELECT Kode_Brg, Nama_Brg, Stok_Brg, Harga_Jual
FROM TabelBarang
FillByAllKolom WHERE (Kode_Brg LIKE @ParamString) OR
GetDataByAllKolom (Nama_Brg LIKE @ParamString) OR
(Stok_Brg LIKE @ParamDecimal) OR
(Harga_Jual LIKE @ParamDecimal)
UPDATE TabelBarang
Update
SET Nama_Brg=@p2, Stok_Brg=@p3, Harga_Jual=@p4
TabelBarang
WHERE (Kode_Brg=@p1)
SELECT Kode_Brg
Validasi Kode
FROM TabelBarang
GetDataKode
WHERE (Kode_Brg LIKE @valid)
Hasil dati TabelAdapter adalah sebagai berikut :

Gambar 45. Hasil Akhir pembuatan TabelAdapter

Mendesain Form Operasi


Terakhir membuat Form Operasi yang berfungsi untuk menginput, mengubahdan menampilkan
data saat melakukan penghapusan data.
1. Tambahkan Form baru ke dalam Project.
2. Atur komponen sebagai berikut :

Komponen Properties
Form1 (Name) : FormOperasi, (Text) : Input Data Barang
(Name) : GrupData, (Text) : Data Barang
GroupBox1
(Tab Index) : 1
Label1 (Name) : lblKode, (Text) : Kode Barang
Label2 (Name) : lblNama, (Text) : Nama Barang
Label3 (Name) : lblStok, (Text) : Stok Barang
Label4 (Name) : lblHarga, (Text) : Harga Jual
Label5 (Name) : lblRp, (Text) : Rp.
(Name) : KodeBarang, (ASCII Only) : True
MaskedTextBox1 (Mask) : ??000, (Prompt Char) : -spasi-
(Tab Index) : 1
TextBox1 (Name) : NamaBarang, (Tab Index) : 2
(Name) : StokBarang, (Mask) : 000,
MaskedTextBox2
(Prompt Char) : -spasi-, (Tab Index) : 3
(Name) : HargaBarang, (Mask) : 00000000,
MaskedTextBox3
(Prompt Char) : -spasi-, (Tab Index) : 4
(Name) : BtnSimpan, (Text) : Simpan
Button1
(Tab Index) : 5
(Name) : BtnHapus, (Text) : Hapus
Button2
(Tab Index) : 6
(Name) : BtnTutup, (Text) : Tutup
Button3
(Tab Index) : 7
(Name) : dataSetInputBarang
DataSet
(DataSetName) : TokoArsiaDataSet
(Name) : bsInputBarang
BindingSource (DataSetName) : dataSetInputBarang
(DataMember) : TabelBarang
TableAdapter (Name) : InputBarangTableAdapter

Gambar 46. Desain Form Operasi

7.6. Script Form Tampil


Klik ganda pada Form Tampil, dan tuliskan Script berikut ini :
Public Class FormTampil

Friend simpan As Boolean

Private Sub FormTampil_Load(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles MyBase.Load

Me.TabelBarangTableAdapter.Fill(Me.dataSetTampilBarang.T
abelBarang)
End Sub

Private Sub BtnTutup_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles BtnTutup.Click
Me.Dispose()
End Sub

Private Sub BtnShow_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles BtnShow.Click
Me.TabelBarangTableAdapter.Fill(Me.dataSetTampilBarang.T
abelBarang)
End Sub

Private Sub BtnTambah_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles BtnTambah.Click
simpan = True
Me.Enabled = False
FormOperasi.Show()
End Sub

Private Sub BtnHapus_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles BtnHapus.Click
isiKomponenInput()
simpan = False
FormOperasi.Text = "Menghapus Data Tabel Barang"
FormOperasi.KodeBarang.ReadOnly = True
FormOperasi.NamaBarang.ReadOnly = True
FormOperasi.StokBarang.ReadOnly = True
FormOperasi.HargaJual.ReadOnly = True
FormOperasi.BtnHapus.Visible = True
FormOperasi.BtnSimpan.Visible = False
Me.Enabled = False
FormOperasi.Show()
FormOperasi.BtnHapus.Focus()
End Sub

Private Sub BtnUbah_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles BtnUbah.Click
simpan = False
isiKomponenInput()
FormOperasi.Text = "Mengubah Data Tabel Barang"
FormOperasi.KodeBarang.Enabled = False
Me.Enabled = False
FormOperasi.Show()
End Sub

Private Sub isiKomponenInput()


Dim dataKode As New System.Windows.Forms.Binding("text",
Me.bsTampilBarang, "Kode_Brg", True)
Dim dataNama As New System.Windows.Forms.Binding("text",
Me.bsTampilBarang, "Nama_Brg", True)
Dim dataStok As New System.Windows.Forms.Binding("text",
Me.bsTampilBarang, "Stok_Brg", True)
Dim dataHarga As New
System.Windows.Forms.Binding("text", Me.bsTampilBarang,
"Harga_Jual", True)
FormOperasi.KodeBarang.DataBindings.Add(dataKode)
FormOperasi.NamaBarang.DataBindings.Add(dataNama)
FormOperasi.StokBarang.DataBindings.Add(dataStok)
FormOperasi.HargaJual.DataBindings.Add(dataHarga)
End Sub

Private Sub BtnCari_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles BtnCari.Click
On Error Resume Next
Dim cari = TxtCari.Text
Dim kolom = CmbCari.Text

If (Equals("Kode", kolom)) Then


Me.TabelBarangTableAdapter.FillByKode(dataSetTampilB
arang.TabelBarang, cari)
ElseIf (Equals("Nama", kolom)) Then
Me.TabelBarangTableAdapter.FillByNama(dataSetTampilB
arang.TabelBarang, cari)
ElseIf (Equals("Stok", kolom)) Then
Me.TabelBarangTableAdapter.FillByStok(dataSetTampilB
arang.TabelBarang, cari)
ElseIf (Equals("Harga", kolom)) Then
Me.TabelBarangTableAdapter.FillByHarga(dataSetTampil
Barang.TabelBarang, cari)
ElseIf (Equals("Semua", kolom)) Then
Me.TabelBarangTableAdapter.FillByAllKolom(dataSetTam
pilBarang.TabelBarang, cari, Val(cari))
ElseIf (Me.CmbCari.Text = "Kolom") Then
MsgBox("Pilih kolom pencarian")
End If

Dim byk As Integer


byk = Me.dataSetTampilBarang.TabelBarang.Rows.Count

If (byk <= 0) Then


MsgBox("Data tidak ditemukan",
MsgBoxStyle.Information, "Hasil Cari")
Else
MsgBox("Data [" & Me.TxtCari.Text & "] ditemukan ["
& byk.ToString & "]buah", MsgBoxStyle.Information,
"Cari")
End If

Me.TxtCari.Text = ""
Me.CmbCari.Text = "Kolom"
Me.BtnCari.Enabled = False
End Sub

Private Sub CmbCari_SelectedIndexChanged(ByVal sender As


Object, ByVal e As System.EventArgs) Handles
CmbCari.SelectedIndexChanged
If (Me.TxtCari.Text <> "") Then
BtnCari.Enabled = True
End If
End Sub
End Class

7.7. Script Form Operasi


Klik ganda pada Form Tampil, dan tuliskan Script berikut ini :
Public Class FormOperasi
Dim n1, n2 As String
Dim n3, n4 As Double

Private Sub kosong()


Me.KodeBarang.Text = ""
Me.NamaBarang.Text = ""
Me.StokBarang.Text = 0
Me.HargaJual.Text = 0
End Sub

Private Sub FormOperasi_Load(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Me.InputBarangTableAdapter.Fill(Me.dataSetInputBarang.T
abelBarang)
End Sub
Private Sub BtnSimpan_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnSimpan.Click
n1 = Me.KodeBarang.Text
n2 = Me.NamaBarang.Text
n3 = Val(Me.StokBarang.Text)
n4 = Val(Me.HargaJual.Text)

Dim pesan As Object

If (FormTampil.simpan = True) Then


Dim isi As Integer
InputBarangTableAdapter.ValidasiKode(dataSetInputB
arang.TabelBarang, n1)
isi = dataSetInputBarang.TabelBarang.Rows.Count

If (isi <= 0) Then


FormTampil.TabelBarangTableAdapter.Insert(n1,
n2, n3, n4)
Else
MsgBox("Kode sudah ada", MsgBoxStyle.Critical,
"Error kode")
Me.KodeBarang.Text = ""
Me.KodeBarang.Focus()
End If
pesan = "Data telah disimpan"
Else
pesan = "Data" & Me.KodeBarang.Text & "telah
diubah"
End If

MsgBox(pesan, MsgBoxStyle.Information, "Simpan")


FormTampil.TabelBarangTableAdapter.ClearBeforeFill =
True
FormTampil.TabelBarangTableAdapter.Fill(FormTampil.data
SetTampilBarang.TabelBarang)
FormTampil.gridDataBarang.Refresh()
FormTampil.Enabled = True
Me.Dispose()
End Sub

Private Sub BtnTutup_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles BtnTutup.Click
FormTampil.Enabled = True
Me.Dispose()
End Sub

Private Sub BtnHapus_Click(ByVal sender As Object, ByVal e


As System.EventArgs) Handles BtnHapus.Click
n1 = Me.KodeBarang.Text
FormTampil.TabelBarangTableAdapter.Delete(n1)
MsgBox("Data telah dihapus", MsgBoxStyle.Information,
"Hapus")
FormTampil.TabelBarangTableAdapter.ClearBeforeFill =
True
FormTampil.TabelBarangTableAdapter.Fill(FormTampil.data
SetTampilBarang.TabelBarang)
FormTampil.gridDataBarang.Refresh()
Me.BtnHapus.Visible = False
Me.BtnSimpan.Visible = True
FormTampil.Enabled = True
Me.Dispose()
End Sub

Private Sub KodeBarang_LostFocus(ByVal sender As Object,


ByVal e As System.EventArgs) Handles KodeBarang.LostFocus
Dim isi As Integer
InputBarangTableAdapter.ValidasiKode(dataSetInputBarang
.TabelBarang, Me.KodeBarang.Text)
isi = dataSetInputBarang.TabelBarang.Rows.Count

If (Equals(Me.KodeBarang.Text, "")) Then


MsgBox("Tolong isikan Kode Barang",
MsgBoxStyle.Exclamation, "Kode Kosong")
Me.KodeBarang.Text = ""
Me.KodeBarang.Focus()
ElseIf (isi >= 1 And FormTampil.simpan = True) Then
MsgBox("Kode sudah ada", MsgBoxStyle.Exclamation,
"Error Kode")
Me.KodeBarang.Text = ""
Me.KodeBarang.Focus()
End If
End Sub

Private Sub NamaBarang_GotFocus(ByVal sender As Object,


ByVal e As System.EventArgs) Handles NamaBarang.GotFocus
'Membuat Kode menjadi huruf besar
Me.KodeBarang.Text = Me.KodeBarang.Text.ToUpper()
End Sub

End Class

Gambar 47. Hasil Akhir Aplikasi Adventori Barang

You might also like