Sabtu, 07 Maret 2015

Sistem Aplikasi Gudang Buku - UAS Pemograman Visual (VB.Net dan Microsoft Access)


Program sederhana ini hanya menggunakan Toolbox: TextBox, Label, Button, ComboBox, DataGridView…
Buatkan dulu databasenya di Ms. Access dengan nama database UAS2015 .
Tabel dengan nama tbl_buku [ID,Judul,Penerbit,Penulis,Tebal,Harga,Stock]


Ini source codenya :

Imports System.Data.OleDb
Public Class Form1
    ' Added By Redza, 07 Maret 2015
    ' iniTehKoneksi ke DB
    Dim iniTehKoneksi As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\MR - College\uas\UAS2015.accdb")
    Dim alertBerhasilSimpan As String = "Data Berhasil Tersimpan"
    Dim alertGagalSimpan As String = "Data Gagal Tersimpan"
    Dim alertBerhasilEdit As String = "Data Berhasil Diperbaharui"
    Dim alertGagalEdit As String = "Data Gagal Diperbaharui"
    Dim alertBerhasilHapus As String = "Data Berhasil Dihapus"
    Dim alertGagalHapus As String = "Data Gagal Dihapus"
    Dim alertFieldKosong As String = "Field masih ada yang kosong"

    Sub tampilkanGrid()
        iniTehKoneksi.Close()
        iniTehKoneksi.Open()

        Me.Tbl_bukuTableAdapter.Fill(Me.UAS2015DataSet.tbl_buku)
        Dim da As New OleDb.OleDbDataAdapter("Select * From tbl_buku", iniTehKoneksi)
        Dim ds As New DataSet
        da.Fill(ds, "tbl_buku")
        Tbl_bukuDataGridView.DataSource = ds.Tables("tbl_buku")
        Tbl_bukuBindingSource.DataSource = ds.Tables("tbl_buku")


    End Sub

    Sub kosongkanPerlengkapanTempur()
        IDTextBox.Text = String.Empty
        JudulTextBox.Text = String.Empty
        PenerbitTextBox.Text = String.Empty
        PenulisTextBox.Text = String.Empty
        TebalTextBox.Text = String.Empty
        HargaTextBox.Text = String.Empty
        StockTextBox.Text = String.Empty
        CariTextBox.Text = String.Empty
        ComboBox1.Text = String.Empty
    End Sub

    Sub matiHidupkanPerlengkapanTempur(Optional ByVal onoff As Boolean = True)
        IDTextBox.Enabled = onoff
        JudulTextBox.Enabled = onoff
        PenerbitTextBox.Enabled = onoff
        PenulisTextBox.Enabled = onoff
        TebalTextBox.Enabled = onoff
        HargaTextBox.Enabled = onoff
        StockTextBox.Enabled = onoff
    End Sub

    Sub matiHidupkanBtn(ByVal a As Boolean, ByVal b As Boolean, ByVal c As Boolean, ByVal d As Boolean)
        btnTambah.Enabled = a
        btnSimpan.Enabled = b
        btnEdit.Enabled = c
        btnHapus.Enabled = d
    End Sub

    Sub combo()
        ComboBox1.Items.Clear()
        ComboBox1.Items.Add("Judul")
        ComboBox1.Items.Add("Penerbit")
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            'TODO: This line of code loads data into the 'DBInventoryDataSet1.TblBarang’ table. You can move, or remove it, as needed.
            Call tampilkanGrid()
            Call matiHidupkanPerlengkapanTempur(False)
            Call matiHidupkanBtn(True, False, True, True)
            Call combo()

        Catch ex As Exception
            MsgBox(ex.Message.ToString())
        End Try
    End Sub

    Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambah.Click
        If btnTambah.Text.ToLower = "tambah" Then
            Call kondisiForm()
            Call matiHidupkanBtn(True, True, False, False)
        ElseIf btnTambah.Text.ToLower = "batal" Then
            Call kondisiForm(False)
            Call matiHidupkanBtn(True, False, True, True)
            btnEdit.Text = "Edit"
        End If
    End Sub

    Sub kondisiForm(Optional ByVal tambah As Boolean = True, Optional ByVal kosongkan As Boolean = True)

        If tambah Then
            Call matiHidupkanPerlengkapanTempur()
            If kosongkan Then
                Call kosongkanPerlengkapanTempur()
            End If
            IDTextBox.Focus()
            btnTambah.Text = "Batal"
        Else
            If kosongkan Then
                Call kosongkanPerlengkapanTempur()
            End If
            IDTextBox.Focus()
            btnTambah.Text = "Tambah"
            Call matiHidupkanPerlengkapanTempur(False)
            Call tampilkanGrid()
        End If

    End Sub

    Sub cekKosongDimana()
        If IDTextBox.Text = String.Empty Then
            IDTextBox.Focus()
            Exit Sub
        End If
        If JudulTextBox.Text = String.Empty Then
            JudulTextBox.Focus()
            Exit Sub
        End If
        If PenerbitTextBox.Text = String.Empty Then
            PenerbitTextBox.Focus()
            Exit Sub
        End If
        If PenulisTextBox.Text = String.Empty Then
            PenulisTextBox.Focus()
            Exit Sub
        End If
        If TebalTextBox.Text = String.Empty Then
            TebalTextBox.Focus()
            Exit Sub
        End If
        If HargaTextBox.Text = String.Empty Then
            HargaTextBox.Focus()
            Exit Sub
        End If
        If StockTextBox.Text = String.Empty Then
            StockTextBox.Focus()
            Exit Sub
        End If
    End Sub

    Sub simpanData()
        Dim simpan As New OleDbCommand
        iniTehKoneksi.Close()
        iniTehKoneksi.Open()
        simpan.Connection = iniTehKoneksi
        simpan.CommandType = CommandType.Text
        simpan.CommandText = "INSERT INTO tbl_buku VALUES ('" & IDTextBox.Text & "', '" & JudulTextBox.Text & "', '" & PenerbitTextBox.Text & "','" & PenulisTextBox.Text & "','" & TebalTextBox.Text & "','" & HargaTextBox.Text & "','" & StockTextBox.Text & "')"
        simpan.ExecuteNonQuery()
    End Sub

    Sub updateData()
        iniTehKoneksi.Close()
        iniTehKoneksi.Open()
        Dim edit As New OleDbCommand
        edit.Connection = iniTehKoneksi
        edit.CommandType = CommandType.Text
        edit.CommandText = "UPDATE tbl_buku set Judul = '" & JudulTextBox.Text & "',Penerbit = '" & PenerbitTextBox.Text & "', Penulis = '" & PenulisTextBox.Text & "', Tebal = '" & TebalTextBox.Text & "', Harga = '" & HargaTextBox.Text & "', Stock = '" & StockTextBox.Text & "' WHERE ID = '" & IDTextBox.Text & "'"
        edit.ExecuteNonQuery()
    End Sub

    Sub hapusData(ByVal id As String)
        iniTehKoneksi.Close()
        iniTehKoneksi.Open()
        Dim hapus As New OleDbCommand
        hapus.Connection = iniTehKoneksi
        hapus.CommandType = CommandType.Text
        hapus.CommandText = "DELETE FROM tbl_buku WHERE ID = '" & id & "'"

        hapus.ExecuteNonQuery()
    End Sub

    Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
        Try
            If IDTextBox.Text <> String.Empty And JudulTextBox.Text <> String.Empty And PenerbitTextBox.Text <> String.Empty And PenulisTextBox.Text <> String.Empty And TebalTextBox.Text <> String.Empty And HargaTextBox.Text <> String.Empty And StockTextBox.Text <> String.Empty Then
                Try
                    Call simpanData()
                    MsgBox(alertBerhasilSimpan)
                    Call kondisiForm(False)
                    Call matiHidupkanBtn(True, False, True, True)
                Catch ex As Exception
                    MsgBox(alertGagalSimpan)
                End Try
            Else
                MsgBox(alertFieldKosong)
                Call cekKosongDimana()
                Call matiHidupkanBtn(True, True, False, False)
            End If
        Catch ex As Exception
            MsgBox(ex.Message.ToString())
        End Try

    End Sub

    Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCari.Click
        Try
            If ComboBox1.Text <> String.Empty And CariTextBox.Text <> String.Empty Then
                iniTehKoneksi.Close()
                iniTehKoneksi.Open()
                If ComboBox1.Text.ToLower = "judul" Then
                    iniTehKoneksi.Close()
                    iniTehKoneksi.Open()
                    'tampilkan ke grid
                    Dim ca As New OleDb.OleDbDataAdapter("Select * From tbl_buku WHERE Judul LIKE '%" & CariTextBox.Text & "%'", iniTehKoneksi)
                    Dim cs As New DataSet
                    ca.Fill(cs, "tbl_buku")
                    Tbl_bukuDataGridView.DataSource = cs.Tables("tbl_buku")

                ElseIf ComboBox1.Text.ToLower = "penerbit" Then
                    iniTehKoneksi.Close()
                    iniTehKoneksi.Open()
                    Dim cari As New OleDbCommand
                    cari.Connection = iniTehKoneksi
                    cari.CommandType = CommandType.Text
                    cari.CommandText = "SELECT * FROM tbl_buku WHERE Penerbit LIKE '%" & CariTextBox.Text & "%'"
                    Dim dr As OleDbDataReader
                    dr = cari.ExecuteReader
                    If dr.HasRows = True Then
                        dr.Read()
                        IDTextBox.Text = dr("ID")
                        JudulTextBox.Text = dr("Judul")
                        PenerbitTextBox.Text = dr("Penerbit")
                        PenulisTextBox.Text = dr("Penulis")
                        TebalTextBox.Text = dr("Tebal")
                        HargaTextBox.Text = dr("Harga")
                        StockTextBox.Text = dr("Stock")

                        Call kondisiForm(True, False)
                        matiHidupkanBtn(True, False, True, True)
                    End If

                    'tampilkan ke grid
                    Dim ca As New OleDb.OleDbDataAdapter("Select * From tbl_buku WHERE Penerbit LIKE '%" & CariTextBox.Text & "%'", iniTehKoneksi)
                    Dim cs As New DataSet
                    ca.Fill(cs, "tbl_buku")
                    Tbl_bukuDataGridView.DataSource = cs.Tables("tbl_buku")
                Else
                    MsgBox("Filter By '" & ComboBox1.Text & "' Tidak Tersedia")
                End If
            Else
                MsgBox("Silahkan isi field 'Filter By' atau teks pencariannya")
            End If
        Catch ex As Exception
            MsgBox(ex.Message.ToString())
        End Try
    End Sub

    Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
        Try
            If btnEdit.Text.ToLower = "edit" Then
                Dim baris As Integer
                With Tbl_bukuDataGridView
                    baris = .CurrentRow.Index
                    IDTextBox.Text = .Item(0, baris).Value
                    JudulTextBox.Text = .Item(1, baris).Value
                    PenerbitTextBox.Text = .Item(2, baris).Value
                    PenulisTextBox.Text = .Item(3, baris).Value
                    TebalTextBox.Text = .Item(4, baris).Value
                    HargaTextBox.Text = .Item(5, baris).Value
                    StockTextBox.Text = .Item(6, baris).Value
                End With
                matiHidupkanBtn(True, False, True, False)
                btnEdit.Text = "Update"
                btnTambah.Text = "Batal"
                Call matiHidupkanPerlengkapanTempur()
                IDTextBox.Enabled = False
                JudulTextBox.Focus()
            ElseIf btnEdit.Text.ToLower = "update" Then
                If IDTextBox.Text <> String.Empty And JudulTextBox.Text <> String.Empty And PenerbitTextBox.Text <> String.Empty And PenulisTextBox.Text <> String.Empty And TebalTextBox.Text <> String.Empty And HargaTextBox.Text <> String.Empty And StockTextBox.Text <> String.Empty Then
                    Try
                        Call updateData()
                        MsgBox(alertBerhasilEdit)
                        Call kondisiForm(False)
                    Catch ex As Exception
                        MsgBox(alertGagalSimpan)
                    Finally
                        btnEdit.Text = "Edit"
                        Call matiHidupkanPerlengkapanTempur(False)
                        Call kosongkanPerlengkapanTempur()
                        Call matiHidupkanBtn(True, False, True, True)
                    End Try
                Else
                    MsgBox(alertFieldKosong)
                    Call cekKosongDimana()
                    Call matiHidupkanBtn(True, False, True, False)
                End If

            End If
        Catch ex As Exception
            MsgBox(ex.Message.ToString())
        End Try
    End Sub

    Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapus.Click
        Try
            Try
                Dim baris As Integer
                Dim ID As String
                With Tbl_bukuDataGridView
                    baris = .CurrentRow.Index
                    ID = .Item(0, baris).Value
                End With

                Dim q = MsgBox("Data akan dihapus?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Konfirmasi")
                If q = vbYes Then
                    hapusData(ID)
                End If

                Call kondisiForm(False)
                MsgBox(alertBerhasilHapus)
            Catch ex As Exception
                MsgBox(alertGagalHapus)
            Finally
                matiHidupkanPerlengkapanTempur(False)
                kosongkanPerlengkapanTempur()
                Call matiHidupkanBtn(True, False, True, True)
            End Try

        Catch ex As Exception
            MsgBox(ex.Message.ToString())
        End Try

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'TODO: This line of code loads data into the 'DBInventoryDataSet1.TblBarang’ table. You can move, or remove it, as needed.
        Call tampilkanGrid()
        Call kosongkanPerlengkapanTempur()
        Call matiHidupkanPerlengkapanTempur(False)
        Call matiHidupkanBtn(True, False, True, True)
        Call combo()
    End Sub
End Class