Kamis, 05 April 2018

RANCANGAN PROGRAM PERPUSTAKAAN MENGGUNAKAN Ms. VISUAL BASIC 2010


RANCANGAN PROGRAM
PERPUSTAKAAN STMIK MERCUSUAR
BERBASIS MICROSOFT VISUAL BASIC 2010

 UJIAN AKHIR SEMESTER



Oleh :

DEWI RATNA SARI
1757201051







PROGRAM STUDI SISTEM INFORMASI
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER MERCUSUAR
BEKASI
2017









KATA PENGANTAR

Puji dan syukur kehadirat Allah SWT, atas limpahan rahmat dan hidayahnya kepada kita. Dengan rahmatnya itulah makalah ini dapat diselesaikan. shalawat dan salam selalu tercurah kepada suri taulan dan abadi dan kekasih kita Nabi Muhammad SAW, sosok pembawa cahaya kebenaran yang Alhamdulillah sampai pada diri kita sehingga menjadi nikmat bagi kita bersama. Atas berkat rahmat dan karunia-Nya saya telah berhasil menyusun Makalah ini.
            Program yang kami susuan dalama makalah ini, merupakan jawaban tugas Ujian Akhir Semester untuk mata kuliah Pemrograman Visual Basic yang diampu oleh Dosen : Abdur Rohman, S.Kom.
Pada program ini, dibuat 4 buah form sebagai berikut :
1.    Form Buku
2.    Form Anggota
3.    Form Peminjaman
4.    Form Cetak Kwitansi
Selain itu, pada program ini dibuat juga 1 module untuk mengkoneksikan database ke form pada Visual Basic, lalu dibuat juga MySQL sebagai databasenya dan juga membuat output berupa kwitansi peminjaman dengan Crystal Report
Program dibuat dan disusun berdasarkan hasil dari beberapa sumber seperti : buku dan internet (youtube, blog pribadi, situs matakuliah, situs universitas yang relevan) maupun jurnal mata kuliah yang berkaitan dengan pemrograman visual basic.
Bekasi, Januari 2018
         Penyusun,


        Dewi Ratna Sari



PERANCANGAN PROGRAM PERPUSTAKAAN
·      RANCANGAN DATABASE
Berikut ini adalah struktur tampilan database MySQL yang diakses melalui localhost// dengan App Xampp versi 1.7.3.

Nama database yang digunakan adalah dbperpustakaan. Pada dbperpustakaan terdapat 4 tabel yang saling berelasi yaitu :
-          Tabel Buku (tblbuku)
-          Tabel Anggota (tblanggota)
-          Tabel Detail peminjaman (tbldetailpeminjaman)
-          Tabel Peminjaman (tblpeminjaman).

·      Struktur Tabel

Ø  Rancangan Tabel Buku
Tabel buku ini berfungsi untuk menyimpan data buku yang ada di dalam perpustakaan.
Nama Tabel     : tblbuku
Primary Key    : KodeBuku
Field-fieldnya adalah sebagai berikut :




Gambar Tampilan Strukture tblbuku
Table yang ada didalam database diatas berjudul tblbuku yang terdiri dari 12 field yang berisi Kodebuku sampai Display. Untuk font style yang digunakan adalah Latin1_Swedia_Ci_1. Fungsi table diatas adalah menambah, menginput, edit, dan menghapus data buku yang kemudian disimpan didalam database. Fungsi tersebut akan masuk dalam sub Browse contoh tampilan browse adalah sebagai berikut :

Gambar Tampilan Browse tblbuku
Ø Rancangan Tabel Anggota
Form ini berfungsi untuk menginput dan menampilkan data anggota dalam perpustakaan.
Nama Tabel     : tblanggota
Primary Key    : KodeAnggota
Field-fieldnya adalah sebagai berikut :

Gambar Tampilan Strukture tblanggota
Table yang ada didalam database diatas berjudul tblanggota yang terdiri dari 5 field yang berisi KodeAnggota sampai Email. Untuk font style yang digunakan adalah Latin1_Swedia_Ci_1. Fungsi table diatas adalah menambah, menginput, edit, dan menghapus data anggota yang kemudian disimpan didalam database. Fungsi tersebut akan masuk dalam sub Browse contoh tampilan browse adalah sebagai berikut :

Gambar Tampilan Browse tblanggota
Ø Rancangan Tabel Detail Peminjaman
Form ini berfungsi untuk menginput dan menampilkan detail peminjamana buku.
Nama Tabel     : tbldetailpeminjaman
Primary Key    : notransaksi
Field-fieldnya adalah sebagai berikut :

Gambar Tampilan Strukture tbldetailpeminjaman
Table yang ada didalam database diatas berjudul tbldetailpeminjaman yang terdiri dari 3 field yang berisi notransaksi sampai Email. Untuk font style yang digunakan adalah Latin1_Swedia_Ci_1. Fungsi table detail peminjaman adalah untuk memasukan no transaksi, dan memasukan harga sewa sesuai kode buku. Fungsi tersebut akan masuk dalam sub Browse contoh tampilan browse adalah sebagai berikut :


Gambar Tampilan Browse tbldetailpeminjaman
Ø Rancangan Tabel Peminjaman
Form ini berfungsi untuk menampilkan semua relasi pada tabel sebelumnya, data yang telah di simpan dapat di cetak langsung.
Nama Tabel     : tblpeminjaman
Primary Key    : notransaksi, tanggal, kodeanggota, total
Field-fieldnya adalah sebagai berikut :

Gambar Tampilan Strukture tblpeminjaman
Table yang ada didalam database diatas berjudul tblpeminjaman yang terdiri dari 4 field yang berisi notransaksi sampai Total. Untuk font style yang digunakan adalah Latin1_Swedia_Ci_1. Contoh browse tampilan browse adalah sebagai berikut :

Gambar Tampilan Browse tblpeminjaman

·      MODUL KONEKSI
Ø Persiapan
Model Koneksi database yang dipakai menggunakan oledbconnection, program dapat digunakan dalam model stand alone computer. Module/Mod Koneksi ini digunakan untuk menghubungkan atau mengkoneksikan database MySQL dengan form pada Visual Basic. Penambahan module tersebut pada Visual Basic 2010 dapat dilakukan dengan cara Instal terlebih dahulu .net connector tambahkan referensi MySql ke dalam Project dengan mengklik Project >> properties >> pilih References >> Add>> .Net Pilih Mysql.data.dll
Ø Koneksi Database
Tambahkan sebuah module baru (klik project >> Module >> Add )

Gambar Koneksi Database
Setelah itu diisi dengan script code dibawah ini untuk mengkoneksikannya :
Imports Microsoft.VisualBasic
Imports MySql.Data.MySqlClient
Public Class Koneksi
    Protected tbluser = New DataTable
    Protected SQL As String
    Protected Cn As MySqlConnection
    Protected Cmd As MySqlCommand
    Protected Da As MySqlDataAdapter
    Protected Ds As DataSet
    Protected Dt As DataTable

Public Function OpenConn() As Boolean
        Cn = New MySqlConnection("server=localhost;User Id=root;database=dbperpustakaan;Convert Zero Datetime=True")
        Cn.Open()
        If Cn.State <> ConnectionState.Open Then
            Return False
        Else
            Return True
        End If
    End Function
    Public Sub CloseConn()
        If Not IsNothing(Cn) Then
            Cn.Close()
            Cn = Nothing
        End If
    End Sub
    Public Function ExecuteQuery(ByVal Query As String) As DataTable
        If Not OpenConn() Then
            MsgBox("Koneksi Gagal..!!", MsgBoxStyle.Critical, "Access Failed")
            Return Nothing
            Exit Function
        End If
        Cmd = New MySqlCommand(Query, Cn)
        'Cmd = New OleDb.OleDbCommand(Query, Cn)
        'Da = New OleDb.OleDbDataAdapter
        Da = New MySqlDataAdapter
        Da.SelectCommand = Cmd
        Ds = New Data.DataSet
        Da.Fill(Ds)
        Dt = Ds.Tables(0)
        Return Dt
        Dt = Nothing
        Ds = Nothing
        Da = Nothing
        Cmd = Nothing
        CloseConn()
    End Function
    Public Sub ExecuteNonQuery(ByVal Query As String)
        If Not OpenConn() Then
            MsgBox("Koneksi Gagal..!!", MsgBoxStyle.Critical, "Access Failed..!!")
            Exit Sub
        End If
        Cmd = New MySqlCommand(Query, Cn)
        Cmd.Connection = Cn
        Cmd.CommandType = CommandType.Text
        Cmd.CommandText = Query
        Cmd.ExecuteNonQuery()
        Cmd = Nothing
        CloseConn()
    End Sub
End Class

·      RANCANGAN INTERFACE DENGAN KODING

1. Form Buku

Gambar Tampilan Form Buku

Form Buku ini berfungsi untuk menginput dan menampilkan data buku-buku dalam sebuah perpustakaan. Didalam form ini menggunakan 2 group Box, 11 Text Box, 13 Label, 1 panel, dan 2 Combo Box yang digunakan untuk penginputan data detail sebuah buku. Juga menggunakan 7 Button untuk tombol  Display, Simpan, Baru, Hapus, Cari, Batal dan Keluar yang masing-masing tombol memiliki fungsi tersendiri. Selain itu juga menggunakan 1 buah ListView sebagai tampilan data buku yang sudah tersambung dengan database tblbuku.
Berikut ini adalah tampilan script code dari Form Buku :
Public Class FormBuku
    Dim SQL As String
    Dim Proses As New Koneksi
    Dim tblbuku As DataTable
    Public MyListItem As ListViewItem
    Dim x As Integer
    Sub Header()
        ListView1.Columns.Add("No", 35, HorizontalAlignment.Center)
        ListView1.Columns.Add("Kode Buku", 84, HorizontalAlignment.Center)
        ListView1.Columns.Add("Judul", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Pengarang", 80, HorizontalAlignment.Center)
    End Sub
    Sub Tampil()
        Dim i As Integer
        Dim urut As Integer
        Dim jml As Double
        urut = 1
        jml = 0
        Try
            If ListView1.Items.Count > 0 Then
                ListView1.Clear()
            End If
            ListView1.View = View.Details
            Call Header()
            tblbuku = Proses.ExecuteQuery("Select * from tblbuku")
            For i = 0 To tblbuku.Rows.Count - 1
                With tblbuku.Rows(i)
                    MyListItem = ListView1.Items.Add(urut)
                    MyListItem.SubItems.Add(.Item("KodeBuku").ToString)
                    MyListItem.SubItems.Add(.Item("Judul").ToString)
                    MyListItem.SubItems.Add(.Item("Pengarang").ToString)
                End With
                urut = urut + 1
            Next
        Catch exp As Exception
            MsgBox("Program Error" & vbCrLf & Err.Description)
        End Try
        Me.ListView1.FullRowSelect = True
    End Sub
    Private Sub Form_Buku_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Tampil()
        Call Nonaktif()
        Me.Cbokategori.Items.Add("Buku Cerita")
        Me.Cbokategori.Items.Add("Buku Teks Pelajaran")
        Me.Cbokategori.Items.Add("Majalah")
        Me.Cbokategori.Items.Add("Kamus")
    End Sub
    Sub tampilfoto()
        Me.PictureBox1.ImageLocation = Me.Txtfoto.Text
        Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    End Sub
    Sub Nonaktif()
        Btnsimpan.Enabled = False
        Txtkode.Enabled = False
        Txtjudul.Enabled = False
        Cbopenerbit.Enabled = False
        Txtpengarang.Enabled = False
        Txtthn.Enabled = False
        Cbokategori.Enabled = False
        Txtjml.Enabled = False
        Txtsewa.Enabled = False
        Txtsumber.Enabled = False
        Txtket.Enabled = False
        Txtlokasi.Enabled = False
        Txtfoto.Enabled = False
        Txtkode.BackColor = Color.White
        Txtjudul.BackColor = Color.White
        Cbopenerbit.BackColor = Color.White
        Txtpengarang.BackColor = Color.White
        Txtthn.BackColor = Color.White
        Cbokategori.BackColor = Color.White
        Txtjml.BackColor = Color.White
        Txtsewa.BackColor = Color.White
        Txtsumber.BackColor = Color.White
        Txtket.BackColor = Color.White
        Txtlokasi.BackColor = Color.White
        Txtfoto.BackColor = Color.White
    End Sub
    Sub Aktif()
        Txtkode.Enabled = True
        Txtjudul.Enabled = True
        Cbopenerbit.Enabled = True
        Txtpengarang.Enabled = True
        Txtthn.Enabled = True
        Cbokategori.Enabled = True
        Txtjml.Enabled = True
        Txtsewa.Enabled = True
        Txtsumber.Enabled = True
        Txtket.Enabled = True
        Txtlokasi.Enabled = True
        Txtfoto.Enabled = True
        Txtkode.BackColor = Color.Aquamarine
        Txtjudul.BackColor = Color.Aquamarine
        Cbopenerbit.BackColor = Color.Aquamarine
        Txtpengarang.BackColor = Color.Aquamarine
        Txtthn.BackColor = Color.Aquamarine
        Cbokategori.BackColor = Color.Aquamarine
        Txtjml.BackColor = Color.Aquamarine
        Txtsewa.BackColor = Color.Aquamarine
        Txtsumber.BackColor = Color.Aquamarine
        Txtket.BackColor = Color.Aquamarine
        Txtlokasi.BackColor = Color.Aquamarine
        Txtfoto.BackColor = Color.Aquamarine
    End Sub
    Sub Bersih()
        Txtjudul.Text = ""
        Cbopenerbit.Text = ""
        Txtpengarang.Text = ""
        Txtthn.Text = ""
        Cbokategori.Text = ""
        Txtjml.Text = ""
        Txtsewa.Text = ""
        Txtsumber.Text = ""
        Txtlokasi.Text = ""
        Txtcari.Text = ""
        Txtket.Text = ""
        Txtfoto.Text = ""
        Call Tampil()
        Nonaktif()
        Btnsimpan.Enabled = False : Btnhapus.Enabled = False
        Btnbaru.Enabled = False : Btnkeluar.Enabled = True
        Txtkode.Enabled = True
        Txtkode.Focus()
        Call tampilfoto()
    End Sub
    Sub Simpan()
        SQL = "Insert Into tblbuku " & _
               "(KodeBuku,Judul,Pengarang,Penerbit,ThnTerbit,BiayaSewa,Kategori,Jumlah,Sumber,Keterangan,Lokasi,Display)" & _
               "Values" & _
               "('" & Txtkode.Text & _
               "','" & Txtjudul.Text & _
               "','" & Txtpengarang.Text & _
               "','" & Cbopenerbit.Text & _
               "','" & Txtthn.Text & _
               "','" & Txtsewa.Text & _
               "','" & Cbokategori.Text & _
               "','" & Txtjml.Text & _
               "','" & Txtsumber.Text & _
               "','" & Txtket.Text & _
               "','" & Txtlokasi.Text & _
               "','" & Txtfoto.Text & "')"
        Proses.ExecuteNonQuery(SQL)
        MessageBox.Show("Data Baru Telah Di Simpan..!!", "Penyimpanan Sukses", MessageBoxButtons.OK, _
        MessageBoxIcon.Information)
        Call Bersih()
    End Sub
    Sub UpdateData()
        SQL = "Update tblbuku Set judul = '" & Txtjudul.Text & _
            "', Pengarang='" & Txtpengarang.Text & _
            "', Penerbit='" & Cbopenerbit.Text & _
            "', ThnTerbit='" & Txtthn.Text & _
            "', BiayaSewa='" & Txtsewa.Text & _
            "', Kategori='" & Cbokategori.Text & _
            "', Jumlah='" & Txtjml.Text & _
            "', Sumber='" & Txtsumber.Text & _
            "', Keterangan='" & Txtket.Text & _
            "', Lokasi='" & Txtlokasi.Text & _
            "', Display='" & Txtfoto.Text & _
            "' where KodeBuku = '" & Txtkode.Text & "'"
        Proses.ExecuteNonQuery(SQL)
        MessageBox.Show("Data Telah Diubah..!!", "SUKSES", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Call Bersih()
    End Sub
    Sub Hapus()
        SQL = "Delete From tblbuku Where KodeBuku ='" & Txtkode.Text & "'"
        Proses.ExecuteNonQuery(SQL)
        MessageBox.Show("Data Telah Dihapuus..!!", "HAPUS", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Call Bersih()
    End Sub

    Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsimpan.Click
        If Me.Txtkode.Text = "" Then
            Exit Sub
        End If
        If Me.BtnSimpan.Text = "Simpan" Then
            Call Simpan()
        Else
            Call UpdateData()
        End If
    End Sub

    Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        On Error Resume Next
        Me.Txtkode.Text = ListView1.SelectedItems(0).SubItems(1).Text
        Me.Btnhapus.Enabled = True
        Me.BtnBatal.Enabled = True
        Me.BtnSimpan.Enabled = True
    End Sub

    Private Sub Txtkode_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Txtkode.KeyDown
        If e.KeyCode = Keys.Enter Then
            Me.Txtjudul.Focus()
        End If
    End Sub
    Private Sub Txtkode_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtkode.TextChanged
        If Len(Txtkode.Text) < 6 Then Exit Sub
        tblbuku = Proses.ExecuteQuery("Select * From tblbuku Where KodeBuku='" & Txtkode.Text & "'")
        If tblbuku.Rows.Count > 0 Then
            With Me
                .Txtjudul.Text = tblbuku.Rows(0).Item("Judul")
                .Cbopenerbit.Text = tblbuku.Rows(0).Item("Penerbit")
                .Txtpengarang.Text = tblbuku.Rows(0).Item("pengarang")
                .Txtthn.Text = tblbuku.Rows(0).Item("ThnTerbit")
                .Txtkode.Text = tblbuku.Rows(0).Item("KodeBuku")
                .Cbokategori.Text = tblbuku.Rows(0).Item("Kategori")
                .Txtjml.Text = tblbuku.Rows(0).Item("Jumlah")
                .Txtsewa.Text = tblbuku.Rows(0).Item("BiayaSewa")
                .Txtsumber.Text = tblbuku.Rows(0).Item("Sumber")
                .Txtket.Text = tblbuku.Rows(0).Item("Keterangan")
                .Txtlokasi.Text = tblbuku.Rows(0).Item("Lokasi")
                .Txtfoto.Text = tblbuku.Rows(0).Item("Display")
            End With
            Call Aktif()
            Txtjudul.Enabled = True
            Txtjudul.Focus()
            Btnsimpan.Text = "Update"
        Else
            Call Bersih()
            Call Aktif()
            Txtkode.Enabled = False
            Txtkode.Focus()
            Btnsimpan.Text = "Simpan" : Btnsimpan.Enabled = True
            Btnhapus.Enabled = False : Btnbatal.Enabled = True
        End If
    End Sub

    Private Sub Btnhapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnhapus.Click
        Dim Pesan As String
        Pesan = MsgBox("Yakin Akan Hapus Berkas Ini..!!??", MsgBoxStyle.YesNo, "Hapus")
        If Pesan = MsgBoxResult.Yes Then
            Hapus()
        Else
            Exit Sub
        End If
    End Sub

    Private Sub BtnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnkeluar.Click
        Me.Close()
    End Sub

    Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnbatal.Click
        Call Nonaktif()
        Call Bersih()
        BtnBaru.Enabled = True
        BtnSimpan.Enabled = True
        BtnSimpan.Text = "Simpan"
        Txtkode.Text = ""
    End Sub

    Private Sub BtnBaru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnbaru.Click
        Me.Txtkode.Focus()
        Call Aktif()
        Call Bersih()
        Me.Txtkode.Text = ""
        Me.Txtkode.Focus()
    End Sub

    Private Sub Btnphoto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnphoto.Click
        OpenFileDialog1.Filter = "File Gambar (*.jpg)|*.jpg|png (*.png)|*.png"
        OpenFileDialog1.ShowDialog()
    End Sub

    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
        Me.Txtfoto.Text = OpenFileDialog1.FileName
        Call tampilfoto()
    End Sub

    Private Sub Txtjudul_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Txtjudul.KeyDown
        If e.KeyCode = Keys.Enter Then
            If Me.Txtjudul.Text = "" Then
                MsgBox("Tidak Boleh Kosong!!")
                Txtjudul.Focus()
            Else
                Cbokategori.Focus()
            End If
        End If
    End Sub
    Private Sub Txtjudul_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtjudul.TextChanged
        Dim kata As String
        kata = Txtjudul.Text
        Txtjudul.Text = kata.Replace(" ", "")
        Txtjudul.SelectionStart = Txtjudul.Text.Length
        Txtjudul.Text = Txtjudul.Text.ToUpper
    End Sub

    Private Sub Txtthn_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txtthn.KeyPress
        If (Not e.KeyChar = ChrW(Keys.Back) And _
            ("0123456789").IndexOf(e.KeyChar) = -1) Or _
        (e.KeyChar = "'" And Txtthn.Text.ToCharArray() _
         .Count(Function(c) c = ",") > 0) Then
            e.Handled = True
        End If
    End Sub
End Class

2. Form Anggota


Gambar Tampilan Form Anggota

Form ini berfungsi untuk menginput dan menampilkan data anggota dalam perpustakaan, Pada Form Anggota ini berisi 5 textBox, 2 RadioBox, 5 button, 5 Label, dan ListView  yang digunakan untuk penginputan data para anggota dan terhubung ke database tblanggota.
Berikut ini adalah tampilan script code dari Form Anggota :
Public Class FormAnggota
    Dim SQL As String
    Dim proses As New Koneksi
    Dim tblanggota As DataTable
    Public MyListItem As ListViewItem
    Dim x As Integer
    Sub header()
        ListView1.Columns.Add("No", 35, HorizontalAlignment.Center)
        ListView1.Columns.Add("Kode Anggota", 84, HorizontalAlignment.Center)
        ListView1.Columns.Add("Nama Anggota", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Jenis Kelamin", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Alamat", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Email", 80, HorizontalAlignment.Center)
    End Sub
    Sub tampil()
        Dim i As Integer
        Dim urut As Integer
        Dim jml As Double
        urut = 1
        jml = 0
        Try
            If ListView1.Items.Count > 0 Then
                ListView1.Clear()
            End If
            ListView1.View = View.Details
            Call header()
            tblanggota = proses.ExecuteQuery("Select * from tblanggota")
            For i = 0 To tblanggota.Rows.Count - 1
                With tblanggota.Rows(i)
                    MyListItem = ListView1.Items.Add(urut)
                    MyListItem.SubItems.Add(.Item("KodeAnggota").ToString)
                    MyListItem.SubItems.Add(.Item("Nama").ToString)
                    MyListItem.SubItems.Add(.Item("JenisKelamin").ToString)
                    MyListItem.SubItems.Add(.Item("Alamat").ToString)
                    MyListItem.SubItems.Add(.Item("Email").ToString)
                End With
                urut = urut + 1
            Next
        Catch exp As Exception
            MsgBox("Program Error" & vbCrLf & Err.Description)
        End Try
        Me.ListView1.FullRowSelect = True
    End Sub
    Sub nonaktif()
        Btnsimpan.Enabled = False
        Txtkodeanggota.Enabled = False
        Txtnama.Enabled = False
        Txtjenkel.Enabled = False
        Txtalamat.Enabled = False
        txtemail.Enabled = False
        Txtkodeanggota.BackColor = Color.SteelBlue
        Txtnama.BackColor = Color.SteelBlue
        Txtjenkel.BackColor = Color.SteelBlue
        Txtalamat.BackColor = Color.SteelBlue
        txtemail.BackColor = Color.SteelBlue
    End Sub
    Sub aktif()
        Txtkodeanggota.Enabled = True
        Txtnama.Enabled = True
        Txtjenkel.Enabled = True
        Txtalamat.Enabled = True
        txtemail.Enabled = True
        Txtkodeanggota.BackColor = Color.SkyBlue
        Txtnama.BackColor = Color.SkyBlue
        Txtjenkel.BackColor = Color.SkyBlue
        Txtalamat.BackColor = Color.SkyBlue
        txtemail.BackColor = Color.SkyBlue
    End Sub
    Sub simpan()
        Dim xKodeAnggota, xNama, XJenisKelamin, xAlamat, xEmail As String
        Dim Tanya As String
        Tanya = MsgBox("APAKAH DATA AKAN DI SIMPAN?", MsgBoxStyle.YesNo + MessageBoxIcon.Question)
        If Tanya = vbNo Then
            Exit Sub
        Else
        End If
        xKodeAnggota = Me.Txtkodeanggota.Text
        xNama = Me.Txtnama.Text
        XJenisKelamin = Me.Txtjenkel.Text
        xAlamat = Me.Txtalamat.Text
        xEmail = Me.txtemail.Text
        SQL = "Insert Into tblanggota " & _
            "(KodeAnggota,Nama,JenisKelamin,Alamat,Email)" & _
           " Values " & _
           "('" & xKodeAnggota & _
            "','" & xNama & _
            "','" & XJenisKelamin & _
           "','" & xAlamat & _
           "','" & xEmail & "')"
        proses.ExecuteNonQuery(SQL)
        MessageBox.Show("Data Baru telah disimpan..!!", "Penyimpanan Sukses", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Call bersih()
    End Sub
    Sub updatedata()
        SQL = "Update tblanggota Set Nama = '" & Txtnama.Text & _
            "', JenisKelamin='" & Txtjenkel.Text & _
            "', Alamat='" & Txtalamat.Text & _
         "', Email='" & txtemail.Text & _
            "' where KodeAnggota = '" & Txtkodeanggota.Text & "'"
        proses.ExecuteNonQuery(SQL)
        MessageBox.Show("Data Telah Diubah..!!", "SUKSES", _
                        MessageBoxButtons.OK, MessageBoxIcon.Information)
        Call bersih()
    End Sub
    Sub bersih()
        Txtnama.Text = ""
        Txtjenkel.Text = ""
        Txtalamat.Text = ""
        txtemail.Text = ""
        Call tampil()
        nonaktif()
        Btnsimpan.Enabled = False : Btnbatal.Enabled = False
        Btnkeluar.Enabled = True : Btnhapus.Enabled = False
        Txtkodeanggota.Enabled = True
        Txtkodeanggota.Focus()
    End Sub
    Sub hapus()
        SQL = "Delete From tblanggota Where KodeAnggota ='" & Txtkodeanggota.Text & "'"
        proses.ExecuteNonQuery(SQL)
        MessageBox.Show("Data Telah Dihapuus..!!", "HAPUS", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Call bersih()
    End Sub
    Private Sub FormAnggota_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        tampil()
        Call nonaktif()
    End Sub

    Private Sub Btnsimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsimpan.Click
        If Me.Txtkodeanggota.Text = "" Then
            Exit Sub
        End If
        If Me.Btnsimpan.Text = "Simpan" Then
            Call simpan()
        Else
            Call updatedata()
        End If
    End Sub

    Private Sub Btnhapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnhapus.Click
        Dim Pesan As String
        Pesan = MsgBox("Yakin Akan Hapus Berkas Ini..!!??", MsgBoxStyle.YesNo, "Hapus")
        If Pesan = MsgBoxResult.Yes Then
            hapus()
        Else
            Exit Sub
        End If
        Call tampil()
    End Sub

    Private Sub Btnbatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnbatal.Click
        Call nonaktif()
        Call bersih()
        Btnsimpan.Enabled = True
        Btnsimpan.Text = "Simpan"
        Txtkodeanggota.Text = ""
    End Sub

    Private Sub Btnkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnkeluar.Click
        Me.Close()
    End Sub

    Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        On Error Resume Next
        Me.Txtkodeanggota.Text = ListView1.SelectedItems(0).SubItems(1).Text
        Me.Btnhapus.Enabled = True
        Me.Btnbatal.Enabled = True
        Me.Btnsimpan.Enabled = True
    End Sub

    Private Sub Txtkodeanggota_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Txtkodeanggota.KeyDown
        If e.KeyCode = Keys.Enter Then
            Me.Txtnama.Focus()
        End If
    End Sub

    Private Sub Txtkodeanggota_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtkodeanggota.TextChanged
        If Len(Txtkodeanggota.Text) < 10 Then Exit Sub
        tblanggota = proses.ExecuteQuery("Select * From tblanggota Where KodeAnggota='" & Txtkodeanggota.Text & "'")
        If tblanggota.Rows.Count > 0 Then
            With Me
                .Txtnama.Text = tblanggota.Rows(0).Item("Nama")
                .Txtjenkel.Text = tblanggota.Rows(0).Item("JenisKelamin")
                .Txtalamat.Text = tblanggota.Rows(0).Item("Alamat")
                .txtemail.Text = tblanggota.Rows(0).Item("Email")
            End With
            Call aktif()
            Txtnama.Enabled = True
            Txtnama.Focus()
            Btnsimpan.Text = "Update"
        Else
            Call bersih()
            Call aktif()
            Txtkodeanggota.Enabled = False
            Txtkodeanggota.Focus()
            Btnsimpan.Text = "Simpan" : Btnsimpan.Enabled = True
            Btnhapus.Enabled = False : Btnbatal.Enabled = True
        End If
    End Sub

    Private Sub Rdlaki_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rdlaki.CheckedChanged
        If (Rdlaki.Checked) Then
            Txtjenkel.Text = "Laki-Laki"
        End If
    End Sub

    Private Sub Rdperempuan_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rdperempuan.CheckedChanged
        If (Rdperempuan.Checked) Then
            Txtjenkel.Text = "Perempuan"
        End If
    End Sub

    Private Sub BtnBaru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBaru.Click
        Me.Txtkodeanggota.Focus()
        Call aktif()
        Call bersih()
        Me.Txtkodeanggota.Text = ""
        Me.Txtkodeanggota.Focus()
    End Sub
End Class


3. Form Peminjaman

Gambar Tampilan Form Peminjaman

Form Peminjaman merupakan form yang digunakan sebagai alat output yang mengahsilkan kwitansi apabila data telah disimpan. Pada form ini kita dapat memasukan Kode Anggota yang akan otomatis muncul nama, lalu kita cukup memasukan Kode Buku yang akan dipinjam lalu enter maka buku yang akan di pinjam tersebut akan muncul pada DataGridView. Form peminjaman menggunakan 8 Label, 5 button, 1 DataGridView, 6 textBox, 1 comboBox, 1 DateTimePicker, dan Timer. Apabila data akan disimpan dan di cetak di klik Yes maka akan menghasilkan output berupa Kwitansi.

Berikut adalah tampilan script code pada Form Peminjaman :
Public Class FormPeminjaman
    Dim SQL As String
    Dim Proses As New Koneksi
    Dim tbltransaksi, tbluser As DataTable
    Public MyListItem As ListViewItem
    Dim x As Integer
    Private Sub FormPeminjaman_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call Kode_Otomatis()
        Call comboKode()
    End Sub

    Sub Kode_Otomatis()
        SQL = " SELECT COUNT(notransaksi) AS JUMLAH_DATA" & _
        " FROM tblpeminjaman " & _
        " WHERE day(tanggal) =" & Date.Now.Day
        tbltransaksi = Proses.ExecuteQuery(SQL)
        Dim noAkhir As Integer = 0
        With tbltransaksi.Rows(0)
            noAkhir = .Item("JUMLAH_DATA")
        End With
        Dim xBULAN As String = Format(Now, "MM")
        Dim xTAHUN As String = Format(Now, "yy")
        Dim xHARI As String = Format(Now, "dd")
        Dim xNOMER As String = "0"
        noAkhir = noAkhir + 1
        xNOMER = Microsoft.VisualBasic.Right(("00" & noAkhir), 2)
        Me.TxtTransaksi.Text = xTAHUN & xBULAN & xHARI & "-" & xNOMER
    End Sub
    Sub bersih()
        Me.Cbokodeanggota.Text = ""
        Me.Txtnama.Text = ""
        Me.TxtTransaksi.Text = ""
        Me.Txtkodebuku.Text = ""
        Me.DataGridView1.Rows.Clear()
        Me.Txtbayar.Text = ""
        Me.Txttotal.Text = ""
        Me.Txtkembalian.Text = ""
    End Sub
    Sub comboKode()
        Try
            tbluser = Proses.ExecuteQuery("Select * from tblanggota")
            For i = 0 To tbluser.Rows.Count - 1
                With tbluser.Rows(i)
                    Me.Cbokodeanggota.Items.Add(.Item("KodeAnggota"))
                End With
            Next
        Catch ex As Exception
            MsgBox("Program error" & vbCrLf & Err.Description)
        End Try
    End Sub

    Sub isiTxtNama()
        On Error Resume Next
        SQL = ("Select * From tblanggota Where KodeAnggota ='" & Trim(Me.Cbokodeanggota.Text) & "'")
        tbluser = Proses.ExecuteQuery(SQL)
        For i = 0 To tbluser.Rows.Count - 1
            With tbluser.Rows(i)
                Me.Txtnama.Text = .Item("Nama")
            End With
        Next
    End Sub
    Sub tampilbuku()
        On Error Resume Next
        SQL = ("Select * From tblbuku Where KodeBuku ='" & Trim(Me.Txtkodebuku.Text) & "'")
        tbluser = Proses.ExecuteQuery(SQL)
        If tbluser.Rows.Count = 0 Then
            MsgBox("Kode tidak tersedia")
        End If
        For i = 0 To tbluser.Rows.Count - 1
            With tbluser.Rows(i)
                Me.DataGridView1.Rows.Add(.Item("KodeBuku"), .Item("Judul"), .Item("BiayaSewa"))
                Me.Txtkodebuku.Text = ""
            End With
        Next
    End Sub
    Sub totalsewa()
        Dim totalsewa As Double = 0
        Dim xdata As Double = 0
        For aa As Integer = 0 To Me.DataGridView1.Rows.Count - 1
            xdata = Me.DataGridView1.Item(2, aa).Value
            totalsewa = totalsewa + xdata
        Next
        Txttotal.Text = totalsewa
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Call totalsewa()
    End Sub
    Sub simpan()
        Dim xNotrans, xTanggal, XkodeAnggota, xTotal As String
        Dim Xkodebuku, Xjudul, Xharga As String
        If Me.Txtbayar.Text = "" Then
            MsgBox("Masukkan pembayaran")
            Txtbayar.Focus()
            Exit Sub
        End If
        Dim Tanya As String
        Tanya = MsgBox("APAKAH DATA AKAN DI SIMPAN dan DICETAK?", MsgBoxStyle.YesNo + MessageBoxIcon.Question)
        If Tanya = vbNo Then
            Exit Sub
        Else
        End If
        ''''''
        xNotrans = Me.TxtTransaksi.Text
        XkodeAnggota = Me.Cbokodeanggota.Text
        xTanggal = Format(Me.DateTimePicker1.Value, "yyyy-MM-dd")
        xTotal = Me.Txttotal.Text
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        SQL = "Insert Into tblpeminjaman " & _
            "(notransaksi,tanggal,kodeanggota,total)" & _
           " Values " & _
           "('" & xNotrans & _
            "','" & xTanggal & _
            "','" & XkodeAnggota & _
           "','" & xTotal & "')"
        Proses.ExecuteNonQuery(SQL)
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        For CC = 0 To Me.DataGridView1.Rows.Count - 1
            Xkodebuku = Me.DataGridView1.Item(0, CC).Value
            Xjudul = Me.DataGridView1.Item(1, CC).Value
            Xharga = Me.DataGridView1.Item(2, CC).Value
            If Xkodebuku <> "" Then
                SQL = "Insert Into tbldetailpeminjaman " & _
                    "(notransaksi,kodebuku,HargaSewa)" & _
                   " Values " & _
                   "('" & xNotrans & _
                   "','" & Xkodebuku & _
                   "','" & Xharga & "')"
                Proses.ExecuteNonQuery(SQL)
            End If
        Next
        MessageBox.Show("Data Baru telah disimpan..!!", "Penyimpanan Sukses", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Call printKwitansi()
        Call bersih()
    End Sub

    Private Sub Btnbaru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnbaru.Click
        Call Kode_Otomatis()
    End Sub
    Sub printKwitansi()
        If Me.TxtTransaksi.Text = "" Then
            MsgBox("NO.Transaksi DIPILIH..", MessageBoxIcon.Information)
            Exit Sub
        End If

        Dim AA As New FormCetakKwitansi
        Dim Laporan As New CrystalReport1
        Laporan.RecordSelectionFormula = "{tblpeminjaman1.notransaksi}='" & Me.TxtTransaksi.Text & "'"
        With AA.CrystalReportViewer1
            .ReportSource = Laporan
            .Zoom(60)
            .Refresh()
        End With
        AA.Show()
    End Sub

    Private Sub Cbokodeanggota_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cbokodeanggota.SelectedIndexChanged
        Call isiTxtNama()
    End Sub
    Private Sub Txtkodebuku_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Txtkodebuku.KeyDown
        If e.KeyCode = Keys.Enter Then
            tampilbuku()
        End If
    End Sub
    Private Sub Btncetak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btncetak.Click
        Call printKwitansi()
    End Sub
    Private Sub Btnsimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnsimpan.Click
        Call simpan()
    End Sub
    Private Sub Btnkeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnkeluar.Click
        Me.Close()
    End Sub
    Private Sub Txtbayar_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtbayar.TextChanged
        On Error Resume Next
        Txtkembalian.Text = Val(Me.Txtbayar.Text - Me.Txttotal.Text)
    End Sub
    Private Sub Btnbatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnbatal.Click
        Call bersih()
    End Sub
    Private Sub Txttotal_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txttotal.TextChanged
        Call totalsewa()
    End Sub
End Class


4. Form Cetak Kwitansi

Gambar Tampilan form Cetak Kwitansi

Pada form ini menggunakan 1 buah objek Crystal Report Viewer untuk menampilkan desain kwitansi peminjaman.

Tampilan dari Crystal Report Kwitansi Peminjaman


5. Hasil Cetak Kwitansi



PENUTUP

Dari pembahasan diatas dapat di simpulkan bahwa dengan adanya program perputakaan Pengelolaan data dapat dilakukan dengan cepat, hal ini dirasakan lebih menguntungkan jika dibandingkan dengan sistem manual, Penyimpanan data di dalam media komputer akan lebih hemat dan aman serta dapat digunakan berkali-kali dan dapat diperbaharui isinya, akan diperoleh informasi yang cepat, tepat, akurat dan handal, akan memberikan pelayanan yang baik kepada konsumen, Data mudah diakses dan disimpan serta mudah untuk di pertanggungjawabkan, Kebutuhan proses pengolahan data yang segera dan terus menerus.
Demikianlah hasil dari Laporan Dokumentasi untuk Ujian Akhir Semester ini saya susun, besar harapan saya, kiranya hasil yang saya susun ini dapat bermanfaat dalam pengembangan ilmu pendidikan khususnya dalam dunia pemrograman Visual Basic.Net. Karena keterbatasan pengetahuan dan kemampuan yang saya miliki saat ini, saya menyadari hasil dari tugas ini masih jauh dari sempurna, Oleh karena itu saran dan kritik yang membangun sangat diharapkan agar dapat menjadi lebih baik lagi dimasa yang akan datang.


3 komentar:

RANCANGAN PROGRAM PERPUSTAKAAN MENGGUNAKAN Ms. VISUAL BASIC 2010

RANCANGAN PROGRAM PERPUSTAKAAN STMIK MERCUSUAR BERBASIS MICROSOFT VISUAL BASIC 2010   UJIAN AKHIR SEMESTER Oleh : D...