BAB IV
IMPLEMENTASI DAN PEMBAHASAN SISTEM

4.1 Implementasi Sistem
Tahap implementasi adalah tahap akhir dalam membangun sebuah sistem. Pada tahap ini dilakukan pengujian atas sistem yang telah dirancang sebelumnya. Pada pembahasan untuk implementasi sistem ini, penulis hanya akan membahas garis – garis besar dari sistem yang dikembangkan. Pada implementasi sistem ini terdapat menu Login, input data yang meliputi input data anggota, transaksi yang meliputi proses peminjaman dan pengembalian, dan output berupa laporan.
4.1.1 Langkah – langkah menjalankan program
Saat sistem pertama kali dijalankan akan ditampilkan menu login dimana terdapat dua login yang membedakan yaitu antara petugas dan administrator.
4.1.2 Menu login
Menu login merupakan menu dimana pengguna akan masuk ke dalam tampilan yang digunakan untuk menangani input data, transaksi maupun pembuatan laporan untuk masuk ke dalam menu utama masukkan user name dan password kemudian klik login.

Gambar 4.1 Tampilan menu login

4.1.3 Menu data input anggota
Digunakan untuk menginputkan data anggota perpustakaan yang selanjutnya akan disimpan dalam database anggota dengan menginputkan nama, alamat, jenis kelamin, nomor telepon, dan status maka nomor anggota akan muncul secara otomatis kemudian simpan untuk menyimpan data dan batal untuk membatalkannya. Berikut tampilan menu input data anggota :

       Gambar 4.2 Tampilan menu anggota

4.1.4 Menu transaksi
Merupakan inti dimana sirkulasi data perpustakaan berada. Terdapat transaksi peminjaman untuk melayani peminjaman buku, pengembalian untuk pengembalian buku, dan perpanjangan untuk memperpanjang buku yang dipinjam untuk melakukan proses transaksi inputkan nomor anggota setelah di enter maka nama, nomor pinjam, tanggal akan keluar secara otomatis . Masukkan no inventaris maka kode buku, judul buku akan keluar otomatis. klik tambah data transaksi peminjaman akan tersimpan. Jika akan melakukan transaksi baru klik transaksi baru, tombol batal untuk membatalkan.  Berikut tampilan menu transaksi peminjaman:

     	Gambar 4.3 Tampilan menu transaksi peminjaman

Menu pengembalian yang digunakan untuk melakukan transaksi pengembalian buku untuk menjalankan transaksi pengembalian isikan nomor anggota klik enter maka nama dan data pada grid akan muncul secara otomatis. Berikut tampilannya :

                		Gambar 4.4 tampilan transaksi pengembalian

Jika diklik pada grid maka akan keluar rincian Menu denda untuk mengetahui jumlah denda pada saat pengembalian buku. Berikut tampilannya :
 
     Gambar 4.5 Tampilan menu denda
Menu perpanjangan digunakan untuk memperpanjang peminjaman buku. Berikut tampilannya :
                  		  
		  	Gambar 4.6 tampilan menu perpanjangan
Jika diklik dua kali pada grid maka akan mucul tampilan :

Gambar 4.7 tampilan validasi perpanjangan
Setelah di klik ok maka proses perpanjangan telah selesai.
4.1.5 Menu Laporan daftar anggota
 	Menu laporan data anggota adalah merupakan output atau hasil yang diperoleh dari input dari data anggota yang dimasukkan. Berikut tampilan laporan data anggota :

Gambar 4.8 Tampilan laporan daftar anggota

4.1.6 Menu laporan transaksi peminjaman
	Menu dalam laporan peminjaman ini merupakan output dari transaksi peminjaman yang telah dilakukan oleh anggota. Berikut tampilan laporan transaksi peminjaman :

                 Gambar 4.9 Tampilan laporan peminjaman buku per periode

4.1.7 Menu laporan transaksi pengembalian
	Menu dalam laporan pengembalian ini merupakan output dari transaksi pengembalian yang telah dilakukan oleh anggota. Dalam laporan ini dipilih berdasarkan pada tanggal yang diinputkan. Berikut tampilan laporan transaksi pengembalian :

Gambar 4.10 Tampilan laporan pengembalian buku per periode

4.2 Pembahasan sistem 
4.2.1 Menu Login
Menu Login digunakan untuk masuk ke dalam menu program utama yaitu menu transaksi, input data, laporan.
Kode yang akan di gunakan dalam menetukan status login dan penjelasannya adalah:
rs.Open "SELECT * FROM T_user" & _
     " WHERE username = '" & Text1.Text & "'" & _
     " AND password = '" & Text2.Text & "'", mydb, adOpenStatic
Kode program ini digunakan untuk melihat apakah data yang dimasukan oleh pengguna sesuai dengan data yang ada dalam database.
4.2.2 Menu Input Data Anggota
Input data anggota digunakan untuk memasukkan data yang terdapat pada tabel anggota. Terdapat tiga tombol yaitu:
1.	Tombol Simpan 
Tombol simpan digunakan untuk menyimpan apa yang telah di inputkan dari form ke dalam table anggota. Berikut potongan Kode yang digunakan :
rs.Open "SELECT no_anggota FROM T_ANGGOTA WHERE nama LIKE '" & Text2.Text & "'", mydb, adOpenStatic
If rs.EOF Then
rs2.Open "SELECT status_anggota FROM T_Anggota_dt" & _
" WHERE anggota='" & Combo1.Text & "'", mydb, adOpenStatic
mydb.Execute "INSERT INTO T_Anggota VALUES('" & Text1.Text &   "','" & _Text2.Text & "','" & _
jk & "','" & _Text3.Text & "','" & _
Text4.Text & "','" & _                                                 rs2.Fields("status_anggota") & "','" & _
   		nama & "')"

	   Kode diatas digunakan untuk melakukan penyimpanan data  ke dalam tabel anggota.
2.	Tombol batal
Tombol batal di gunakan untuk  membatalkan penginputan data dari form ke dalam table anggota. Berikut potongan kode yang digunakan :
Private Sub Command2_Click()
Text2.Enabled = True
Option1.Enabled = True
Option2.Enabled = True
Combo1.Enabled = True
Text1.text = “ “
Text2.text = “ “
		
	Potongan kode di atas untuk membatalkan input data anggota perpustakaan. 
3.	Tombol keluar 
Tombol keluar digunakan untuk keluar dari menu input data anggota. Berikut ini kode yan di gunakan:
Private Sub Command3_Click()
Call Buka(True)
Unload Me 

		Unload me merupakan tombol perintah keluar dari menu.
4.2.3 Menu transaksi
Menu transaksi tediri dari 3 sub menu, yaitu peminjaman, pengembalian dan perpanjangan. 
1.	Menu peminjaman
Menu peminjaman digunakan untuk transaksi peminjaman oleh anggota, adapun untuk proses peminjaman data yang harus dimasukkan adalah nomor anggota. 
   rs.Open "SELECT no_anggota, nama FROM T_Anggota " & _
            " WHERE no_anggota = '" & Text1.Text & "'", mydb, adOpenStatic
    If rs.EOF Then
        MsgBox "Nomor Anggota tidak terdaftar !", vbOKOnly, "INFO"
        Text1.Text = ""
        rs.Close
        Exit Sub
Else
        K_Pinjam
        Text2.Text = rs.Fields("nama")
        Text3.Text = no_pinjam
        Text1.Enabled = False
        Text5.Enabled = True
        Command4.Enabled = True
        Text5.SetFocus
        rs.Close
mydb.Execute "INSERT INTO T_trans VALUES('" & Text3.Text & "','" & _
      Date & "','" & _
Text1.Text & "')"
        Call gridd
        
    End If
    
End If
End Sub

Potongan kode di atas untuk mengisikan nomor anggota jika tidak ada maka akan muncul validasi “nomor anggota tidak terdaftar  !” tetapi jika ada maka akan mengambil dari fungsi  ‘k_pinjam’ sehingga field nama, no_pinjam akan terisi secara otomatis. Dan kemudian akan menginputkan data ke table trans.
2.	Menu pengembalian
Menu pengembalian digunakan untuk transaksi pengembalian buku oleh anggota.
    	rs.Open "SELECT no_anggota, nama FROM T_Anggota " & _
" WHERE no_anggota = '" & Text1.Text & "'", mydb, adOpenStatic
   	 If rs.EOF Then
        MsgBox "Nomor Anggota tidak terdaftar !", vbOKOnly, "INFO"
        Text1.Text = ""
        rs.Close
        grid1.Enabled = False
        Exit Sub
        
    Else
        rs2.Open "SELECT T_trans.no_pinjam FROM T_transpinjam, T_trans" & _
 " WHERE status_buku=" & 0 & "" & _
 " AND no_anggota='" & Text1.Text & "'", mydb, adOpenStatic
                 
       If rs2.EOF Then
       MsgBox "Anggota " & rs.Fields("nama") & " Tidak memiliki Pinjaman !", vbOKOnly, "INFO"
                Text1.Text = ""
                rs.Close
                rs2.Close
                Exit Sub
            End If
        rs2.Close
        
        Text2.Text = rs.Fields("nama")
        Text1.Enabled = False
        Command2.Enabled = True
        rs.Close
        Call grid
        
    	End If
End If
End Sub 

Maksud dari kode di atas adalah mengisikan mengisikan nomor anggota jika tidak ada maka akan muncul validasi “nomor anggota tidak terdaftar  !”. Jika tidak melakukan peminjaman buku maka akan keluar validasi berdasar anggota dan nama “tidak memiliki pinjaman”. 
3.	Menu perpanjangan 
Menu perpanjangan di gunakan untuk memperpanjang peminjaman buku yang di lakukan oleh anggota.
rs.Open "SELECT tgl_pinjam, T_opsi.perpanjang,(tgl_pinjam + T_transpinjam.perpanjang + telat) as kembali" & _
        " FROM T_trans, T_transpinjam, T_opsi" & _
        " WHERE (T_trans.no_pinjam = T_transpinjam.no_pinjam) " & _
        " AND no_anggota='" & Text1.Text & "'" & _
        " AND T_transpinjam.status_buku =" & 0 & "" & _
        " AND T_transpinjam.perpanjang = " & 0 & "" & _
  " AND no_inventaris='" & grid1.TextMatrix(grid1.Row, 2) &     "'" & _
        " ORDER BY T_trans.no_pinjam", mydb, adOpenStatic

Potongan kode di atas adalah untuk menampilkan perpanjangan yang  akan muncul tanggal kembali jika di klik pada grid. Dimana data akan menampilkan tanggal pinjam dan tanggal kembali secara otomatis.
4.2.4 output data peminjaman
Menu ini digunakan untuk menghasilkan keluaran atau laporan dari data peminjaman dalam laporan ini dapat melihat semu transaksi yang ada ataupun di pilih berdasarkan harian ataupun perioode peminjamannya.
sql = "SELECT T_inventaris.no_inventaris, T_buku.kode_buku, judul, " _& " nama_kategori, penerbit, pengarang, T_anggota.no_anggota, " _& " nama, tgl_pinjam, tgl_pinjam + perpanjang + 7 as tgl_kembali" _& " FROM T_buku, T_kategori, T_inventaris, T_anggota, T_trans, T_transpinjam" _& " Where T_buku.kode_kategori = T_kategori.kode_kategori " _
        & " AND T_inventaris.kode_buku = T_buku.kode_buku " _
        & " AND T_anggota.no_anggota = T_trans.no_anggota " _
        & " AND T_trans.no_pinjam = T_transpinjam.no_pinjam "_
        & " AND T_inventaris.no_inventaris = T_transpinjam.no_inventaris" _
        & " AND tgl_pinjam >='" & date1.Value & "' " _
        & " AND tgl_pinjam <='" & date2.Value & "' " _
        & " ORDER BY tgl_pinjam"
    
    Set rsb = mydb.Execute(sql)
    If rsb.EOF Then
        MsgBox "DATA YANG DIMINTA KOSONG!", vbOKOnly, "INFO"
        Exit Sub
    End If
    
    data.Commands(9).CommandText = sql
    L_PinjamPeriode.Sections("Section4").Controls("label11").Caption = Format(Date, "dd/mm/yyyy")
    L_PinjamPeriode.Refresh
    L_PinjamPeriode.Show
    
End If
End Sub
	 
	Potongnan program di atas untuk menampilkan laporan per periode dimana transaksi peminjaman di ambil dari tabel T_buku, T_kategori, T_inventaris, T_anggota, T_trans, T_transpinjam. Apabila datanya tidak di temukan akan menampilkan pesan data yang diminta kosong.