T0 Lampiran Institutional Repository | Satya Wacana Christian University: Perancangan Aplikasi Pengelolaan Persewaan Buku Komik dengan WebServer Sebagai Service Info Buku

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
fm.ShowDialog()
Me.Visible = True
LabelVerifikasi.Text = ""
PasswordTxt.Text = ""
UsernameTxt.Text = ""

EndIf
EndSub
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
AsString)
EmployeeInfo(username, password)
EndSub
PrivateSubNew()
EndSub
#EndRegion

57

58

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"))
Next
_ds.Dispose()
_ds = Nothing
EndIf
EndIf
EndSub
#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)
EndFunction
EndClass

59

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
_obj = Members.NewObject

EndSub

60

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
lvi.SubItems.Add(a.NamaMembers)
lvi.SubItems.Add(a.JenisKelamin)
lvi.SubItems.Add(a.AlamatMember)
lvi.SubItems.Add(a.Kota)
lvi.SubItems.Add(a.NoTelponMembers)

ListView1.Items.Add(lvi)
Next
EndSub
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
diisi")
Exit Sub
Else
ErrorProvider1.SetError(c, "")
EndIf
EndIf
Next
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
EndFunction

61


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)
cm.Parameters.AddWithValue("@Alamat", alamat)
cm.Parameters.AddWithValue("@Telpon", notelpon)
cm.Parameters.AddWithValue("@Kota", Kota)
cm.Parameters.AddWithValue("@JenisKelamin", JenisKelamin)
cm.ExecuteNonQuery()
EndUsing
Catch ex AsException
Throw ex
Finally
cn.Close()
EndTry
EndUsing
Return myobj
EndFunction

Kode Program 3. Kode Program untuk Ubah Buku
PrivateSub BtnKmkEdit_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnKmkEdit.Click
If ListViewKomik.SelectedItems.Count = 0 Then
MsgBox("Tidak ada data terpilih")
Exit Sub
EndIf
_obj =
Books.GetobjectBooks(ListViewKomik.SelectedItems(0).Text)
With _obj
TxtKdBuku.Enabled = False
TxtKdBuku.Text = .IDBook
TxtJudul.Text = .JudulBuku
TxtVol.Text = .VolumeBuku
ComboJenis.Text = .JenisBuku
TxtPengarang.Text = .Pengarang
TxtPenerbit.Text = .Penerbit
TxtHargaBuku.Text = .HargaBuku
TxtHargaSewa.Text = .HargaSewa
DTPTanggalBeli.Value = .TanggalBeli
TxtLokasi.Text = .LokasiBuku
ComboStatus.Text = .StatusBuku
EndWith
GroupBox1.Enabled = True
FillKomik()
EndSub

62

PublicSharedFunction GetobjectBooks(ByVal id AsString)
AsBooks
Dim obj AsNewBooks
obj.Isnew = False
obj = IdentityData.GetobjectBooks(GetType(Books),
id)
Return obj
EndFunction
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",
BindingFlags.Instance OrBindingFlags.NonPublic)
Penerbit.SetValue(myobj,
dr.Item("Penerbit"))

63

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
Finally
dr.Close()
cn.Close()
EndTry
EndUsing
Return myobj
EndFunction
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,
TxtPengarang.Text, TxtPenerbit.Text, TxtHargaBuku.Text,
TxtHargaSewa.Text, DTPTanggalBeli.Value, TxtLokasi.Text,
ComboStatus.Text)
EndIf
clearTxt()
FillKomik()
GroupBox1.Enabled = False
EndSub

64

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)
cm.Parameters.AddWithValue("@IdBook", Idbooks)
cm.Parameters.AddWithValue("@Judul", judul)
cm.Parameters.AddWithValue("@Vol", Volume)
cm.Parameters.AddWithValue("@Jenis", Jenis)
cm.Parameters.AddWithValue("@Pengarang", pengarang)
cm.Parameters.AddWithValue("@Penerbit", penerbit)
cm.Parameters.AddWithValue("@HargaBuku", Hargabuku)
cm.Parameters.AddWithValue("@HargaSewa", hargasewa)
cm.Parameters.AddWithValue("@TanggalBeli", tanggal)
cm.Parameters.AddWithValue("@Lokasi",
lokasi)
cm.Parameters.AddWithValue("@Status",
Status)
cm.ExecuteNonQuery()
EndUsing
Catch ex AsException
Throw ex
Finally
cn.Close()
EndTry
EndUsing
Return myobj
EndFunction

65

Kode Program 4. Kode Program untuk Peminjaman Buku
PrivateSub BtnOke_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnOke.Click
Dim jumlahbaru AsInteger = 0
Dim totalbaru AsDecimal = 0
_obj =
TransaksiInfolist.Datasewaperanggota(TxtId.Text)
IfNot _obj.Count = 0 Then
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")
Books.UpdatestatusBooks(a.Text, "dipinjam")
EndIf
EndIf
Next
UnvisibleButton()
MsgBox("Transaksi sukses")
clearTxt()
TxtId.Text = ""
GroupBox2.Enabled = False
EndSub

66

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)
cm.Parameters.AddWithValue("@TglPeminjaman", tanggal)
cm.Parameters.AddWithValue("@Idanggota", idanggota)
cm.Parameters.AddWithValue("@idbuku",
idbook)
cm.Parameters.AddWithValue("@Status",
status)
cm.ExecuteNonQuery()
EndUsing
Catch ex AsException
Throw ex
Finally
cn.Close()
EndTry
EndUsing
Return myobj
EndFunction

Kode Program 5.Kode Program untuk Pengembalian
PrivateSub 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
lvi.Text = a.idTransaksi
lvi.SubItems.Add(a.IDbuku)
lvi.SubItems.Add(a.JudulBuku)
lvi.SubItems.Add(a.HargaSewa)

67

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
OrBindingFlags.NonPublic).SetValue(mychild,
dr.Item("IdTransaksi"))

68

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
Finally
dr.Close()
cn.Close()
EndTry
EndUsing
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
).Text, "Tersedia")
Transaksi.UpdatestatusTransaksi(ListView1.Items(i).Text,
"Kembali")
bukukembali += 1
EndIf
Next
Dim dendalama AsDecimal
_obj = TransaksiInfolist.DaftarPenyewaan()
ForEach a AsTransaksiInfoIn _obj
dendalama = a.Denda
Next
_obj =
TransaksiInfolist.Datasewaperanggota(txtidanggota.Text)
IfNot _obj.Count = 0 Then
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()
EndSub

69

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"))
If IsDBNull(dr.Item("TglKembali")) Then

70

mymember.GetField("_tanggalKembali",
BindingFlags.Instance
OrBindingFlags.NonPublic).SetValue(mychild,
NewDate(1990, 1, 1))
Else
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
Finally
dr.Close()
cn.Close()
EndTry
EndUsing
Return mylist
EndFunction

71

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
lvi.SubItems.Add(a.Judul)
lvi.SubItems.Add(a.Pengarang)
lvi.SubItems.Add(a.Harga)
lvi.SubItems.Add(a.Tanggal)
lvi.SubItems.Add(a.Sinopsis)
ListView1.Items.Add(lvi)
Next
EndSub
EndClass
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
PublicClassService
Inherits System.Web.Services.WebService
_
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")
.Judul = a.Item("Judul")
.Pengarang = a.Item("Pengarang")
.Harga = a.Item("Harga")
.Tanggal = a.Item("TanggalTerbit")
.Sinopsis = a.Item("Sinopsis")
EndWith
index += 1
Next
Return daftar
EndFunction
StructureDataBuku
Public ISBN AsString
Public Judul AsString
Public Pengarang AsString
Public Harga AsDecimal
Public Tanggal AsDate
Public Sinopsis AsString
EndStructure
EndClass

72

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=KurniawanPC\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
EndUsing
EndSub
EndClass

73

Lembar Bimbingan Tugas Akhir