57
Lampiran
Kode Program 1. Kode Program untuk Login
Imports BussinessLayerLib
PublicClassLogin
PrivateSub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles LoginBtn.Click
MyPrincipal.Login(UsernameTxt.Text, PasswordTxt.Text) If Threading.Thread.CurrentPrincipal.Identity
IsNothingOrElseNot
Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated Then
LabelVerifikasi.Text = "Maaf, Username/Password anda salah!!"
Else
Dim fm AsNewHalamanUtama
Me.Visible = False
PrivateSub Login_Load(ByVal sender AsObject, ByVal e As
System.EventArgs) HandlesMe.Load UsernameTxt.Focus() EndSub
PrivateSub Button3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Me.Close()
EndSub EndClass
Imports System.Security.Principal
Imports DataAcessLayer
PublicClassMyPrincipal
ImplementsIPrincipal
#Region"Data Members"
Private _Identity AsMyIdentity = MyIdentity.NotAutt
PrivateShared _instance AsMyPrincipal
Private _username AsString = "" Private _idrole AsString = "" Private _role AsNewList(OfString) Private _ds AsDataSet = Nothing #EndRegion
#Region"Constructors"
PrivateSubNew(ByVal username AsString, ByVal password
PrivateSub EmployeeInfo(ByVal username AsString, ByVal pass AsString)
_ds = GetLoginInfo(username)
IfNot IsNothing(_ds) Then
Dim UsrName AsString =
_ds.Tables(0).Rows(0).Item("NamaPetugas") Dim Psword AsString =
_ds.Tables(0).Rows.Item(0).Item("Password") If (UsrName.ToLower = username.ToLower And Psword.Equals(pass)) Then
Me._Identity = NewMyIdentity(username)
ForEach dr AsDataRowIn _ds.Tables(1).Rows
_role.Add(dr.Item("idRole"))
#Region"Shared Methods"
PublicSharedSub Login(ByVal username AsString, ByVal
password AsString)
_instance = NewMyPrincipal(username, password) Threading.Thread.CurrentPrincipal = _instance EndSub
PublicSharedFunction GetLoginInfo(ByVal username AsString)
Dim obj As Data.DataSet
obj =
CType(IdentityData.GetInfoUser(GetType(MyPrincipal),
username), DataSet)
Return obj
EndFunction
PublicSharedFunction GetInstance() AsMyPrincipal
Return _instance
EndFunction
PublicSharedFunction Gettitle(ByVal username AsString,
ByVal password AsString) AsMyPrincipal
Dim obj AsNewMyPrincipal(username, password)
Return obj
EndFunction #EndRegion
PublicReadOnlyProperty Identity As
System.Security.Principal.IIdentityImplements System.Security.Principal.IPrincipal.Identity Get
Return _Identity
EndGet EndProperty
PublicFunction IsInRole(ByVal role AsString)
AsBooleanImplements
System.Security.Principal.IPrincipal.IsInRole
ReturnMe._role.Contains(role)
Imports System.Security.Principal
PublicClassMyIdentity
ImplementsIIdentity
PublicSharedReadOnly NotAutt AsNewMyIdentity
Private _name AsString = ""
PrivateSubNew()
Me._name = "" EndSub
FriendSubNew(ByVal name AsString)
IfString.IsNullOrEmpty(name) Then
ThrowNewArgumentException(name)
EndIf
Me._name = name EndSub
PublicReadOnlyProperty AuthenticationType
AsStringImplements
System.Security.Principal.IIdentity.AuthenticationType Get
Return"MyApp" EndGet
EndProperty
PublicReadOnlyProperty IsAuthenticated AsBooleanImplements
System.Security.Principal.IIdentity.IsAuthenticated Get
ReturnNotString.IsNullOrEmpty(Me._name)
EndGet EndProperty
PublicReadOnlyProperty Name AsStringImplements
System.Security.Principal.IIdentity.Name Get
ReturnMe._name
EndGet EndProperty EndClass
Kode Program 2. Kode Program untuk Tambah Anggota
PrivateSub AddButton_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles AddButton.Click
TxtNamaAnggota.Focus() GroupBox1.Enabled = True
ForEach a AsControlIn Panel1.Controls
IfTypeOf a IsTextBoxThen
a.BackColor = Color.Azure
CType(a, TextBox).ReadOnly = False
EndIf Next
PublicSharedFunction NewObject() AsMembers Dim obj AsNewMembers
obj.Isnew = True
Return obj
EndFunction
PrivateSub FillMember()
_busobj = MemberInfoList.GetObjectMembers ListView1.Items.Clear()
ForEach a AsMemberInfoIn _busobj
Dim lvi AsNewListViewItem
lvi.Text = a.IDMember
PrivateSub BtnSimpan_Click_1(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click
ForEach c AsControlIn Panel3.Controls
IfTypeOf c IsTextBoxThen If c.Text.Trim.Length = 0 Then
ErrorProvider1.SetError(c, "harus
If _obj.Isnew = TrueThen _obj =
Members.InsertMember(TxtNamaAnggota.Text, TxtAlamat.Text, TxtTelpon.Text, TxtKota.Text, CmbJenisKelamin.Text) Else
_obj = Members.UpdateMembers(Label1.Text, TxtNamaAnggota.Text, TxtKota.Text, CmbJenisKelamin.Text, TxtAlamat.Text, TxtTelpon.Text)
EndIf
FillMember() clearTxt() EndSub
PublicSharedFunction InsertMember(ByVal nama AsString,
ByVal alamat AsString, ByVal notelpon AsString, ByVal kota
AsString, ByVal jeniskelamin AsString) AsMembers
Dim obj AsNewMembers
obj = IdentityData.InsertMembers(GetType(Members), nama, alamat, notelpon, kota, jeniskelamin)
Return obj
PublicSharedFunction InsertMembers(ByVal myobject AsType,
ByVal nama AsString, ByVal alamat AsString, ByVal notelpon
AsString, ByVal Kota AsString, ByVal Jeniskelamin
AsString)
Dim myobj AsObject = Activator.CreateInstance(myobject, True)
Using cn AsNewSqlConnection(Utility.KoneksiSQL)
Try
cn.Open()
Using cm AsNewSqlCommand("INSERT INTO TblMembers (Nama,
Alamat,Telpon, JenisKelamin, Kota) VALUES (@Nama, @Alamat,@Telpon, @JenisKelamin, @kota)", cn) cm.Parameters.AddWithValue("@Nama", nama)
Catch ex AsException
Throw ex
Kode Program 3. Kode Program untuk Ubah Buku
PrivateSub BtnKmkEdit_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnKmkEdit.Click
PublicSharedFunction GetobjectBooks(ByVal id AsString)
PublicSharedFunction GetobjectBooks(ByVal myobject AsType,
ByVal id AsString) AsObject
Dim myobj AsObject = Activator.CreateInstance(myobject, True)
Dim dr AsSqlDataReader = Nothing
Dim Query AsString = "SELECT * FROM TblBuku WHERE IdBook=@id"
Using cn AsNewSqlConnection(Utility.KoneksiSQL)
Try
cn.Open()
Using cm AsNewSqlCommand(Query, cn)
cm.Parameters.AddWithValue("@id", id) dr = cm.ExecuteReader
While dr.Read
Dim Judul AsFieldInfo = myobject.GetField("_Judul",
BindingFlags.Instance OrBindingFlags.NonPublic) Judul.SetValue(myobj, dr.Item("Judul"))
Dim Vol AsFieldInfo = myobject.GetField("_Vol",
BindingFlags.Instance OrBindingFlags.NonPublic) If IsDBNull(dr.Item("Vol")) Then
Vol.SetValue(myobj, "NULL") Else
Vol.SetValue(myobj, dr.Item("Vol"))
EndIf
Dim idbuku AsFieldInfo = myobject.GetField("_IdBook",
BindingFlags.Instance OrBindingFlags.NonPublic) idbuku.SetValue(myobj, dr.Item("IdBook"))
Dim Jenis AsFieldInfo = myobject.GetField("_Jenis",
BindingFlags.Instance OrBindingFlags.NonPublic) Jenis.SetValue(myobj, dr.Item("Jenis"))
Dim Pengarang AsFieldInfo =
myobject.GetField("_Pengarang", BindingFlags.Instance OrBindingFlags.NonPublic)
Pengarang.SetValue(myobj, dr.Item("Pengarang"))
Dim Penerbit AsFieldInfo = myobject.GetField("_Penerbit",
HargaBuku.SetValue(myobj, dr.Item("HargaBuku")) Dim HargaSewa AsFieldInfo =
myobject.GetField("_HargaSewa", BindingFlags.Instance OrBindingFlags.NonPublic)
HargaSewa.SetValue(myobj, dr.Item("HargaSewa"))
Dim Tanggal AsFieldInfo =
myobject.GetField("_TanggalBeli", BindingFlags.Instance OrBindingFlags.NonPublic)
Tanggal.SetValue(myobj, dr.Item("TanggalBeli"))
Dim Lokasi AsFieldInfo = myobject.GetField("_Lokasi",
BindingFlags.Instance OrBindingFlags.NonPublic) Lokasi.SetValue(myobj, dr.Item("Lokasi"))
Dim Status AsFieldInfo = myobject.GetField("_Status",
BindingFlags.Instance OrBindingFlags.NonPublic) Status.SetValue(myobj, dr.Item("Status"))
EndWhile EndUsing
Catch ex AsException
Throw ex
PrivateSub SaveKomikBtn_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles SaveKomikBtn.Click
MsgBox("Anda yakin untuk menyimpan ?",
MsgBoxStyle.YesNo) If _obj.Isnew = TrueThen
_obj = Books.InsertBooks(TxtKdBuku.Text, TxtJudul.Text, ComboJenis.Text, TxtVol.Text,
TxtPengarang.Text, TxtPenerbit.Text, TxtHargaBuku.Text, TxtHargaSewa.Text, DTPTanggalBeli.Value, TxtLokasi.Text, ComboStatus.Text)
Else
_obj = Books.UpdateBooks(TxtKdBuku.Text, TxtJudul.Text, ComboJenis.Text, TxtVol.Text,
PublicSharedFunction UpdateBooks(ByVal IdBook AsString,
ByVal Judul AsString, ByVal Jenis AsString, ByVal Volume
AsString, ByVal Pengarang AsString, ByVal penerbit
AsString, ByVal hargabuku AsInteger, ByVal hargasewa
AsInteger, ByVal tanggal AsDate, ByVal lokasi AsString,
ByVal status AsString) AsBooks
Dim obj AsNewBooks
obj = IdentityData.UpdateBooks(GetType(Books), IdBook, Judul, Jenis, Volume, Pengarang, penerbit, hargabuku, hargasewa, tanggal, lokasi, status)
Return obj
EndFunction
PublicSharedFunction UpdateBooks(ByVal myobject AsType,
ByVal Idbooks AsString, ByVal judul AsString, ByVal Jenis
AsString, ByVal Volume AsString, ByVal pengarang AsString,
ByVal penerbit AsString, ByVal Hargabuku AsInteger, ByVal
hargasewa AsInteger, ByVal tanggal AsDate, ByVal lokasi
AsString, ByVal Status AsString)
Dim myobj AsObject = Activator.CreateInstance(myobject, True)
Using cn AsNewSqlConnection(Utility.KoneksiSQL)
Try
cn.Open()
Using cm AsNewSqlCommand("UPDATE TblBuku SET Judul=@Judul,
Vol=@vol,Jenis=@Jenis,Pengarang=@Pengarang, Penerbit=@Penerbit, HargaBuku=@HargaBuku, HargaSewa=@HargaSewa, TanggalBeli=@TanggalBeli,
Lokasi=@Lokasi , Status =@status WHERE IdBook=@IdBook", cn)
Catch ex AsException
Kode Program 4. Kode Program untuk Peminjaman Buku
PrivateSub BtnOke_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnOke.Click
ForEach Data AsTransaksiInfoIn _obj
jumlahbukudipinjam()
If Data.TotalBuku + jumlah - Data.JumlagBukukembali > 10 Then
Labelbukuyangtelahdipinjam.Text = "Hari ini Anda telah meminjam ="& Data.TotalBuku - Data.JumlagBukukembali &" Buku"
LblSisabukudapatdipinjam.Text = "Sisa buku yang dapat dipinjam = "& 10 - Data.TotalBuku + Data.JumlagBukukembali
Exit Sub EndIf
If DateDiff(DateInterval.Day, Data.TanggalPinjam, Date.Now, FirstDayOfWeek.Monday) < 1 Or
Data.JumlagBukukembali = Data.TotalBuku Then totalbaru = Data.totalbayar + TxtHargaTotal.Text
jumlahbaru = Data.TotalBuku + jumlah
Transaksi.UpdateDatasewaTambahan(TxtId.Text, jumlahbaru, totalbaru)
EndIf Next Else
Transaksi.InsertToDaftarSewa(TxtId.Text, Date.Now, jumlah, TxtHargaTotal.Text)
EndIf
ForEach a AsControlIn GroupBox3.Controls
IfTypeOf a IsTextBoxThen
If a.BackColor = Color.Gold Then jumlah += 1 obj =
Transaksi.InsertTransaksi(Date.Now, TxtId.Text, a.Text, "BelumKembali")
PublicSharedFunction InsertTransaksi(ByVal tanggal AsDate,
ByVal idanggota AsString, ByVal idbook AsString, ByVal
status AsString) AsTransaksi Dim obj AsNewTransaksi
obj =
IdentityData.NewTransaksi(GetType(Transaksi), tanggal, idanggota, idbook, status)
Return obj
EndFunction
PublicSharedFunction NewTransaksi(ByVal myobject AsType,
ByVal tanggal AsDate, ByVal idanggota AsString, ByVal
idbook AsString, ByVal status AsString)
Dim myobj AsObject = Activator.CreateInstance(myobject, True)
Using cn AsNewSqlConnection(Utility.KoneksiSQL)
Try
cn.Open()
Using cm AsNewSqlCommand("INSERT INTO TblTransaksi
(TglPeminjaman, Idanggota,idbuku, Status) VALUES (@TglPeminjaman, @Idanggota,@idbuku, @status)", cn)
Catch ex AsException
Throw ex
Kode Program 5.Kode Program untuk Pengembalian
P
rivateSub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
infomember()
ListView1.Items.Clear() filllistview()
EndSub
PrivateSub filllistview()
_obj =
TransaksiInfolist.Bukudipinjam(txtidanggota.Text)
ForEach a AsTransaksiInfoIn _obj
DateTimePicker1.Value = a.TanggalPinjam Dim lvi AsNewListViewItem
ListView1.Items.Add(lvi) Next
EndSub
PrivateSub infomember()
Dim _info AsDataSet = Nothing
_info = Transaksi.GetMemberinfo(txtidanggota.Text) If IsNothing(_info) Then
MsgBox("tidak ada member dengan ID tersebut") Exit Sub
EndIf With _info
LabelNama.Text = _info.Tables(0).Rows(0).Item("Nama") LabelAlamat.Text = _info.Tables(0).Rows(0).Item("Alamat") LabelTelpon.Text = _info.Tables(0).Rows(0).Item("Telpon") Exit Sub
EndWith EndSub
PublicSharedFunction Bukudipinjam(ByVal idanggota
AsString) AsTransaksiInfolist
Dim obj AsTransaksiInfolist
obj =
CType(IdentityData.GetBukudipinjam(GetType(TransaksiInfoli
st), GetType(TransaksiInfo), idanggota),
TransaksiInfolist)
Return obj
EndFunction
PublicSharedFunction GetBukudipinjam(ByVal myobject
AsType, ByVal mymember AsObject, ByVal idAnggota AsString) AsObject
Dim mylist AsObject = Activator.CreateInstance(myobject, True)
Dim Query AsString = "Select t.idTransaksi, t.idbuku, t.tglPeminjaman, b.judul, b.hargasewa FROM tblTransaksi t inner join TblBuku b on (b.idbook=t.idbuku) WHERE
t.idAnggota=@id and b.status='dipinjam' and t.status='belumkembali'"
Dim dr AsSqlDataReader = Nothing
Using cn AsNewSqlConnection(Utility.KoneksiSQL)
Try
cn.Open()
Using cm AsNewSqlCommand(Query, cn)
cm.Parameters.AddWithValue("@id", idAnggota)
dr = cm.ExecuteReader
While dr.Read
Dim mychild AsObject = Activator.CreateInstance(mymember, True)
mymember.GetField("_idTransaksi",
BindingFlags.Instance
mymember.GetField("_Idbook", BindingFlags.Instance OrBindingFlags.NonPublic).SetValue(mychild,
dr.Item("IdBuku"))
mymember.GetField("_Judul", BindingFlags.Instance OrBindingFlags.NonPublic).SetValue(mychild, dr.Item("Judul"))
mymember.GetField("_tanggalPinjam", BindingFlags.Instance OrBindingFlags.NonPublic).SetValue(mychild,
dr.Item("TglPeminjaman"))
mymember.GetField("_HargaSewa", BindingFlags.Instance OrBindingFlags.NonPublic).SetValue(mychild,
dr.Item("HargaSewa"))
mylist.add(mychild) EndWhile
EndUsing
Catch ex AsException
Throw ex
Return mylist
EndFunction
PrivateSub Button2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnOke.Click
Dim bukukembali AsInteger = 0 Dim jumlahsebelumnya AsInteger = 0 For i = 0 To ListView1.Items.Count - 1 If ListView1.Items.Item(i).Checked = TrueThen
Books.UpdatestatusBooks(ListView1.Items.Item(i).SubItems(1
Dim dendalama AsDecimal
_obj = TransaksiInfolist.DaftarPenyewaan()
ForEach Data AsTransaksiInfoIn _obj
jumlahsebelumnya = Data.JumlagBukukembali Next
EndIf
Transaksi.UpdateDatasewa(txtidanggota.Text, Date.Now, TxtDenda.Text + dendalama, jumlahsebelumnya + bukukembali) ListView1.Items.Clear()
MsgBox("Buku Telah Kembali") filllistview()
PublicSharedFunction Datasewaperanggota(ByVal id AsString) AsTransaksiInfolist
Dim obj AsTransaksiInfolist
obj =
CType(IdentityData.GetDaftarsewaPeranggota(GetType(Transak
siInfolist), GetType(TransaksiInfo), id),
TransaksiInfolist)
Return obj
EndFunction
PublicSharedFunction GetDaftarsewaPeranggota(ByVal
myobject AsType, ByVal mymember AsObject, ByVal idanggota
AsString) AsObject
Dim mylist AsObject = Activator.CreateInstance(myobject, True)
Dim Query AsString = "Select idsewa, idanggota, tglpinjam, tglkembali, totalbuku, totalbayar, denda,
jumlahBukukembali from TbldaftarSewa where idanggota=@id" Dim dr AsSqlDataReader = Nothing
Using cn AsNewSqlConnection(Utility.KoneksiSQL)
Try
cn.Open()
Using cm AsNewSqlCommand(Query, cn)
cm.Parameters.AddWithValue("@id", idanggota)
dr = cm.ExecuteReader
While dr.Read
Dim mychild AsObject = Activator.CreateInstance(mymember, True)
mymember.GetField("_idSewa",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild, dr.Item("IdSewa"))
mymember.GetField("_idanggota", BindingFlags.Instance OrBindingFlags.NonPublic).SetValue(mychild,
dr.Item("IdAnggota"))
mymember.GetField("_tanggalPinjam", BindingFlags.Instance OrBindingFlags.NonPublic).SetValue(mychild,
dr.Item("TglPinjam"))
mymember.GetField(
"_tanggalKembali"
,
mymember.GetField("_tanggalKembali", BindingFlags.Instance OrBindingFlags.NonPublic).SetValue(mychild,
dr.Item("TglKembali")) EndIf
mymember.GetField("_TotalBuku",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild, dr.Item("TotalBuku"))
mymember.GetField("_TotalBayar",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild, dr.Item("Totalbayar"))
If IsDBNull(dr.Item("Denda")) Then
mymember.GetField("_denda",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild, CType(0,
Decimal))
Else
mymember.GetField("_denda",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild, dr.Item("Denda"))
EndIf
If IsDBNull(dr.Item("JumlahBukuKembali")) Then
mymember.GetField("_JumlahBukuKembali",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild, CType(0,
Decimal))
Else
mymember.GetField("_JumlahBukuKembali",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild, dr.Item("JumlahBukuKembali"))
EndIf
mylist.add(mychild) EndWhile
EndUsing
Catch ex AsException
Throw ex
Return mylist
Kode Program 6. Kode Program untuk Menampilkan Buku Distributor
Imports UserInterfaceRentBook.ServiceDistributorMNC
PublicClassFormDistributorMNC
PrivateSub FormDistributorMNC_Load(ByVal sender AsObject,
ByVal e As System.EventArgs) HandlesMe.Load
ListView1.Items.Clear() Dim svc AsNewServiceSoapClient
Dim list AsDataBuku() = svc.GetListBook ForEach a AsDataBukuIn list
Dim lvi AsNewListViewItem
lvi.Text = a.ISBN
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
PublicClassService
Inherits System.Web.Services.WebService
<WebMethod()> _
PublicFunction GetListBook() AsDataBuku()
Dim infobook AsNewBooks()
Dim daftar(infobook.Rows.Count - 1) AsDataBuku Dim index AsInteger
ForEach a As Data.DataRowIn infobook.Rows
With daftar(index)
.ISBN = a.Item("ISBN")
Return daftar
EndFunction
StructureDataBuku
Public ISBN AsString
Public Judul AsString
Public Pengarang AsString
Public Harga AsDecimal
Public Tanggal AsDate
Public Sinopsis AsString
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
PublicClassBooks
InheritsDataTable
Private _tglParameter AsDate = NewDate(1990, 1, 1)
PublicSubNew()
Dim tgl AsString = "" Dim bln AsInteger = 0 Dim thn AsInteger = 0 If Month(Date.Now) = 1 Then tgl = Day(Date.Now) bln = 12
thn = Year(Date.Now) - 1 Else
tgl = Day(Date.Now) bln = Month(Date.Now) - 1 thn = Year(Date.Now) EndIf
_tglParameter = tgl &"-"& bln &"-"& thn getinfobook(_tglParameter)
EndSub
PublicSub getinfobook(ByVal tanggal AsDate)
Using cn AsNewSqlConnection("Data
Source=Kurniawan-PC\SQLEXPRESS; Database=M&CBookStore; User id=sa; Password=salatiga;")
Try
cn.Open()
Using cm AsNewSqlCommand("Select * from DataBuku Where
TanggalTerbit >@tanggal", cn)
cm.Parameters.AddWithValue("@tanggal", tanggal)
Me.Load(cm.ExecuteReader) EndUsing
Catch ex AsException
Throw ex
Finally
cn.Close() EndTry