• Tidak ada hasil yang ditemukan

Lampiran 1 : Kuisioner Pengujian Aplikasi Sistem Perpustakaan untuk Pengurus Perpustakaan KUISIONER

N/A
N/A
Protected

Academic year: 2021

Membagikan "Lampiran 1 : Kuisioner Pengujian Aplikasi Sistem Perpustakaan untuk Pengurus Perpustakaan KUISIONER"

Copied!
51
0
0

Teks penuh

(1)

KUISIONER

Berilah penilaian anda mengenai aplikasi sistem perpustakaan ini dengan memilih angka antara 1 – 4 (angka 4 merupakan penilaian yang tertinggi)

1. Tampilan dari aplikasi sistem perpustakaan 1 2 3 4 5 2. Kemudahan Penggunaan aplikasi ini 1 2 3 4 5 3. Fasilitas-fasilitas yang ada 1 2 3 4 5 4. Penilaian aplikasi secara keseluruhan 1 2 3 4 5

Silahkan tuliskan komentar atau saran anda pada kolom yang sudah tersedia untuk pengembangan aplikasi ini di masa yang akan datang :

Nama :

Lama bekerja :

(2)

Susunan pengurus Perpustakaan Solomon Hall adalah sebagai berikut:

• Ketua umum : Kwo Kuang

• Wakil ketua : Lucy Kumala

• Bendahara : Yu Ching

• Sekretaris : Erna Hartanti

• Inventaris : Daniel

• Finishing : Margaret

• Promosi : Yucca

• Koord. Shift I : Suk Lien

• Koord. Shift II : Welly Sudjioadi

• Koord. Shift III : Yu Siauw Tjen Team work

Promosi : Susan, Jimmy Bambang Finishing : Robby, Hartanto, Margaret Inventaris : Azwan, Ivan, Lucy

Shift I : Margaret, Daniel Yu Ching

Shift II : Erna, Sah Ban, Yong Yao

Shift III : Djufri, Lokhmarno

(3)

Pengklasifikasian koleksi perpustakaan Solomon Hall

KODE JENIS BUKU KODE JENIS KASET

A Cerita A I Instrumen

B Kesaksian, Biografi A II Praise

C Doktrin Alkitab A III Praise and Worship D Kehidupan Kristen A IV Worship

E Pendidikan, Psikologi A V Praise

F Penginjilan B I Praise and Worship

G English B II Worship

H Pengajaran PA Alkitab B III Lagu anak-anak I Lain-lain B IV Mandarin

Mandarin B V Christmas

Khotbah

Mandarin

KODE JENIS CD KODE JENIS VCD

A Instrument V A Cerita Alk Kartun B I Praise V B Cerita Alk Non Kartun B II Praise and Worship V C Kristen Praktis B III Worship V D Psikologi

C I Praise V E Tokoh-tokoh alkitab C II Praise and Worship V F Karaoke

C III Worship V G Sejarah

C IV Lagu anak-anak V H Tokoh-tokoh kristen

M Mandarin V I Discovery

N Christmas V J Kesaksian

Sp Special DOC Document

(4)

JUDUL TUGAS AKHIR : Perancangan dan Pembuatan Sistem Pengolahan, Sirkulasi dan Katalog dari Perpustakaan Solomon Hall

NRP : 26499114

NAMA : Robby Daniel Umboh

Dosen Pembimbing I : Arlinah Imam Rahardjo, SIP, MLIS

Dosen Pembimbing II : Arie Wirawan Margono, S kom

TAHUN LULUS : 2004/2005

(5)

aplikasinya menggunakan Borland Delphi 7.0.

Implementasi pada Microsoft Access

Membangun database adalah langkah awal dari pembuatan suatu aplikasi dan konsep manajemen database adalah konsep yang dipakai untuk membangun database tersebut.

Pembuatan Database

Langkah pertama adalah pembuatan database dengan nama

“SolomonHall”. Untuk membuat database ini, pertama-tama membuka aplikasi microsoft access 2000. Klik Blank Access Database setelah aplikasi ini terbuka dan tekan ok dan simpan dengan nama SolomonHall. Bentuk tampilan dapat dilihat pada Gambar 4.1.

Gambar 4.1. Database SolomonHall

(6)

Pembuatan Tabel

Pembuatan tabel pada Microsoft Access dilakukan pada database

“SolomonHall” sesuai dengan rancangan tabel pada ERD yang telah dibuat sebelumnya, yaitu dengan cara pilih menu Create Table in Design View pada database yang sesuai dan mengisi field-field yang akan ditampilkan, dapat dilihat pada Gambar 4.2.

Gambar 4.2. Design view Tabel pada Microsoft Access 2000

Hasilnya akan tampak di bawah ini dengan isi field login adalah admin,

isi field password adalah admin dan isi field status adalah administrator.

(7)

Gambar 4.3. Datasheet view Tabel login pada Microsoft Access 2000

Setelah membuat tabel-tabel yang diperlukan, hasilnya terlihat seperti pada Gambar 4.4. berikut ini:

Gambar 4.4. Hasil pembuatan tabel-tabel dalam database SolomonHall

Koneksi Database

Untuk koneksi database digunakan Microsoft ODBC Administrator, dan

database dengan nama “SolomonHall”. Setelah itu masukkan alamat file database

yang telah dibuat sebelumnya. Gambar 4.5. menunjukkan cara setting ODBC.

(8)

Gambar 4.5. Koneksi Delphi 7.0 dengan Microsoft Access 2000

Implementasi Program

Langkah selanjutnya dari pembuatan suatu aplikasi membangun database adalah coding atau pengkodean yang menggunakan Borland Delphi 7.0.

Program di bawah ini adalah program yang digunakan untuk dapat menjalankan SolomonHall.exe.

Form Login

Form login adalah form yang pertama kali aktif ketika program dijalankan, dimana dilakukan pengecekan username, password dan status user.

Hanya user yang telah tersimpan datanya yang bisa menjalankan program.

Kemudian program akan mengaktifkan semua menu untuk bagian administrator,

mengaktifkan menu file dan transaksi bila memilih bagian katalog, mengaktifkan

(9)

menu file dan transaksi sirkulasi bila memilih bagian sirkulasi, dan mengaktifkan menu file dan master data koleksi buku dan audio visual, data subyek judul, data penerbit dan jenis audio visual.

Di bawah ini adalah contoh procedure untuk pengecekan username, password, status dan menu yang diaktifkan sesuai dengan statusnya:

procedure Tfrm_login.btn_okClick(Sender: TObject);

begin

Query1.Close;

Query1.SQL.Text :='select * from login where username=:p1';

Query1.ParamByName('p1').AsString :=edt_username.Text;

Query1.Open;

if not Query1.Eof then begin

//jika username benar

if edt_password.Text=Query1.FieldByName('password').AsString then

begin

//jika password benar

if cmb_status.Text=Query1.fieldbyname('status').AsString then

begin

//jika status benar

StatusLogin :=edt_username.Text;

//visible semua menu

frm_main.File1.Visible :=true;

frm_main.Logout1.Visible :=true;

frm_main.Exit1.Visible :=true;

frm_main.Master1.Visible :=true;

frm_main.Tablebukuav1.Visible :=true;

frm_main.Tablepenerbit1.Visible :=true;

frm_main.Tablejenisav1.Visible :=true;

frm_main.tablesubyek1.Visible :=true;

frm_main.tablestandar1.Visible :=true;

frm_main.Member1.Visible :=true;

frm_main.Operator1.Visible :=true;

frm_main.Transaksi1.Visible :=true;

frm_main.Katalog1.Visible :=true;

frm_main.sirkulasi1.Visible :=true;

frm_main.Laporan1.Visible :=true;

//cek bagian (Katalog, Sirkulasi, dll) case cmb_status.ItemIndex of

0 : begin

frm_main.Master1.Visible :=false;

frm_main.Laporan1.Visible :=false;

frm_main.sirkulasi1.Visible :=false;

end;

1 : begin

(10)

frm_main.Master1.Visible :=false;

frm_main.Laporan1.Visible :=false;

frm_main.Katalog1.Visible :=false;

end;

2 : begin

frm_main.Transaksi1.Visible :=false;

frm_main.tablestandar1.Visible :=false;

frm_main.Member1.Visible :=false;

frm_main.Operator1.Visible :=false;

frm_main.Laporan1.Visible :=false;

end;

end;

modalresult:=mrok;

frm_main.Show;

end else begin

//jika status salah

messagedlg('Bagian tidak sesuai !!!',mtError,[mbok],0);

cmb_status.ItemIndex :=0;

cmb_status.SetFocus;

end;

end else begin

//jika password salah

messagedlg('Input Password Salah !!!',mtError,[mbok],0);

edt_password.Text :='';

edt_password.SetFocus;

end;

end else begin

//jika username salah

messagedlg('Input Username Salah !!!',mtError,[mbOK],0);

edt_password.Text :='';

edt_username.Text :='';

cmb_status.ItemIndex :=0;

edt_username.SetFocus;

end;

Query1.close;

end;

Form Main

Form ini akan ditampilkan apabila username, password dan status yang

diinputkan pada form login sudah benar. Form ini berisi menu lengkap yang

terdiri dari File, Master, Transaksi, Laporan dan Help. Pada menu ini terdapat

sub menu- sub menu lain. Pada saat login berhasil, form main akan mengupdate

(11)

beberapa data yang perlu. Berikut adalah data yang perlu diupdate saat program dipanggil:

procedure Tfrm_main.UpdateDataSirkulasi;

var

lama_terlambat : integer;

biaya_denda, total_denda : Currency;

begin

//cari data pinjaman yg terlambat dikembalikan Query1.Close;

Query1.SQL.Text :='select p.*, ''Buku'' as Jenis '+

'from table_pinjam p, table_buku_av ba, table_judul_buku jb '+

'where p.kode_pinjaman=ba.no_induk and ba.no_katalog=jb.no_katalog and '+

'p.tgl_batas_kembali<:p1 '+

'UNION '+

'select p.*, jna.bentuk_av as Jenis '+

'from table_pinjam p, table_buku_av ba, table_judul_av jda, table_jenis_av jna '+

'where p.kode_pinjaman=ba.no_induk and ba.no_katalog=jda.kode_av and '+

'jda.kode_jenis_av=jna.kode_jenis_av and p.tgl_batas_kembali<:p1 ';

Query1.ParamByName('p1').AsDateTime :=date;

Query1.Open;

while not query1.Eof do begin

//hitung brp lama keterlambatan

lama_terlambat :=DaysBetween(date,

Query1.fieldbyname('tgl_batas_kembali').AsDateTime);

//lama keterlambatan dlm satuan minggu lama_terlambat :=ceil(lama_terlambat/7);

//ambil biaya denda (berbeda, berdsrkan jenis) Query2.Close;

Query2.SQL.Text :='select nilai from table_standar where standar=:p1';

if Query1.FieldByName('Jenis').AsString='Buku' then Query2.ParamByName('p1').AsString :='denda_buku'

else if Query1.FieldByName('Jenis').AsString='Kaset' then Query2.ParamByName('p1').AsString :='denda_kaset'

else if Query1.FieldByName('Jenis').AsString='Compact Disc' then Query2.ParamByName('p1').AsString :='denda_cd'

else if Query1.FieldByName('Jenis').AsString='Video Compact Disc' then Query2.ParamByName('p1').AsString :='denda_vcd';

Query2.Open;

biaya_denda :=Query2.fieldbyname('nilai').AsCurrency;

//hitung total denda

total_denda :=lama_terlambat * biaya_denda;

//update besar dan status denda

Query2.Close;

(12)

Query2.SQL.Text :='update table_pinjam set denda=:p1, status_denda=''Tunggakan'' where kode_pinjaman=:p2';

Query2.ParamByName('p1').AsCurrency :=total_denda;

Query2.ParamByName('p2').AsString

:=Query1.fieldbyname('kode_pinjaman').AsString;

Query2.ExecSQL;

Query1.Next;

end;

//hapus data pesanan yg sdh melewati tgl batas pesanan Query1.Close;

Query1.SQL.Text :='delete from table_pesan where tgl_batas_pesan<:p1';

Query1.ParamByName('p1').AsDateTime :=date;

Query1.ExecSQL;

end;

Contoh program pada form main yang memanggil sub-sub menu, dapat dilihat seperti di bawah ini:

procedure Tfrm_main.Logout1Click(Sender: TObject);

begin

frm_main.Hide;

frm_login.ShowModal;

end;

procedure Tfrm_main.Exit1Click(Sender: TObject);

begin close;

end;

procedure Tfrm_main.Member1Click(Sender: TObject);

begin

frm_data_member.ShowModal;

end;

procedure Tfrm_main.About1Click(Sender: TObject);

begin

frm_about.ShowModal;

end;

procedure Tfrm_main.Tablebukuav1Click(Sender: TObject);

begin

frm_table_buku_av.ShowModal;

end;

procedure Tfrm_main.Table_judulav1Click(Sender: TObject);

begin

with frm_table_judul_av do begin

btn_new.Enabled:=true;

btn_delete.Enabled:=true;

btn_edit.Enabled:=true;

(13)

mode:='normal';

ShowModal;

end;

end;

procedure Tfrm_main.Tablejenisav1Click(Sender: TObject);

begin

frm_table_jenis_av.ShowModal;

end;

procedure Tfrm_main.tablestandar1Click(Sender: TObject);

begin

frm_table_standar.ShowModal;

end;

procedure Tfrm_main.tablesubyek1Click(Sender: TObject);

begin

with frm_table_subyek do begin

btn_new.Enabled:=true;

btn_delete.Enabled:=true;

btn_edit.Enabled:=true;

btn_close.Enabled:=true;

mode :='normal';

ShowModal;

end;

end;

procedure Tfrm_main.Tablepenerbit1Click(Sender: TObject);

begin

frm_table_penerbit.ShowModal;

end;

procedure Tfrm_main.Table_judul1Click(Sender: TObject);

begin

with frm_table_judul_buku do begin

btn_new.Enabled:=true;

btn_delete.Enabled:=true;

btn_edit.Enabled:=true;

mode:='normal';

ShowModal;

end;

end;

procedure Tfrm_main.Katalog1Click(Sender: TObject);

begin

frm_data_katalog.ShowModal;

end;

(14)

procedure Tfrm_main.Operator1Click(Sender: TObject);

begin

frm_table_operator.ShowModal;

end;

Form Master Member

Form ini digunakan untuk menyaring, menambah, menghapus dan merubah data member perpustakaan serta menutup form master member yang telah dibuka. Form ini ditunjukkan oleh gambar 4.6. berikut ini

Gambar 4.6. Bentuk form master member

program dibawah ini digunakan untuk melakukan pencarian data member perpustakaan berdasarkan field yang telah diisi pada form master member.

Program ini dapat mencari data pada tabel member berdasarkan kode member,

nama member, komisi, alamat, kota, telp, hp, fax, email, kode pos, tanggal daftar,

tanggal selesai dan deskripsi.

(15)

procedure Tfrm_data_member.SetupSQL;

var

where:string;

begin

where:='';

if chb_kode.Checked then

where:=where+' Kode_Member like ''%'+edt_kode.text+'%'' and ';

if chb_nama.Checked then where:=where+' Nama_Member like ''%'+edt_nama.text+'%'' and ';

if chb_komisi.Checked then where:=where+' Komisi like ''%'+cmb_komisi.text+'%'' and ';

if chb_alamat.Checked then where:=where+' alamat like ''%'+edt_alamat.text+'%'' and ';

if chb_kota.Checked then where:=where+' kota like ''%'+edt_kota.text+'%'' and ';

if chb_tgl_daftar.Checked then where:=where+'tgl_daftar>=:t1 and tgl_daftar<=:t2 and ';

if chb_tgl_selesai.Checked then where:=where+'tgl_selesai>=:t3 and tgl_selesai<=:t4 and ';

if chb_telp.Checked then where:=where+' telp like ''%'+edt_telp.text+'%'' and ';

if chb_hp.Checked then where:=where+' hp like ''%'+edt_hp.text+'%'' and ';

if chb_fax.Checked then where:=where+' fax like ''%'+edt_fax.text+'%'' and ';

if chb_email.Checked then where:=where+' email like ''%'+edt_email.text+'%'' and ';

if chb_kodepos.Checked then where:=where+' kodepos like ''%'+edt_kodepos.text+'%'' and ';

if where<>'' then //memeriksa apakah where ada isi begin

delete(where, length(where)-4, 4); //hapus variabel where dr posisi 4 dr belakang sebanyak 4 text atau menghapus tulisan 'and' where :=' where '+where;//var where diisi kata where dan isi var where

end;

TQuery(dbg_m.DataSource.DataSet{mengakses datasource dari Dbgrid master yi sql_m1}).SQL.Text:=sql_awal+where;

//isi parameter tgl daftar if chb_tgl_daftar.checked then begin

TQuery(dbg_m.DataSource.DataSet).parambyname('t1').AsDateTime:=dtp _tgl_daftar1.DateTime;

TQuery(dbg_m.DataSource.DataSet).parambyname('t2').AsDateTime:=dtp _tgl_daftar2.DateTime;

end;

//isi parameter tgl selesai if chb_tgl_selesai.checked then begin

TQuery(dbg_m.DataSource.DataSet).parambyname('t3').AsDateTime:=dtp

_tgl_selesai1.DateTime;

(16)

TQuery(dbg_m.DataSource.DataSet).parambyname('t4').AsDateTime:=dtp _tgl_selesai2.DateTime;

end;

end;

Dengan penekanan tombol new dan edit pada form data member, maka akan ditampilkan form isian member seperti berikut ini:

Gambar 4.6. Bentuk form input member baru

Form input dan edit adalah sama. Yang menjadi perbedaan antara form input dan edit data member adalah judul form dan isi form, jika pada inputan data member mempunyai judul form input data member, maka edit member mempunyai judul form edit data member. Perbedaan yang kedua adalah saat kita menekan tombol new, maka tiap nilai DBEdit adalah kosong (‘’); tetapi nilai DBEdit adalah data terakhir yang dipilih untuk penekanan tombol edit.

Di dalam mengisikan member baru, diperlakukan fungsi generate kode member. Berikut adalah program fungsi tersebut:

procedure Tfrm_isian_member.dbe_nama_memberChange(Sender:

TObject);

var

(17)

s,ch:string;

ct:byte;

begin

if (dbe_nama_member.text<>'') and

(copy(dbe_nama_member.text,1,1)<>' ') then begin

s:=copy(dbe_nama_member.text,1,1);

s:=uppercase(s);

//tambahkan no pada kode ct:=1;

table1.open;

while not table1.EOF do begin

if copy(table1.fieldbyname('kode_member').asstring,1,1)=s then

if

strtoint(copy(table1.fieldbyname('kode_member').asstring,2,3))=ct then

inc(ct);

table1.next;

end;

table1.close;

ch:=inttostr(ct);

while length(ch)<3 do ch:='0'+ch;

s:=s+ch;

dbe_kode_member.text:=s;

end;

end;

Sedangkan untuk menginputkan data anggota yang akan diisikan pada form isian member dan setelah itu merefresh tabel member yang ada pada form master member, dapat dilihat pada program di bawah ini:

procedure Tfrm_data_member.btn_newClick(Sender: TObject);

var Month,Day,Year:word;

begin

with frm_isian_member do begin

jns_form:=1;

TQuery(dbe_kode_member.DataSource.DataSet).ParamByName('kode_membe r').AsString := '';

DateTimePicker1.Date:=date;

DecodeDate(Date,Year,Month,Day);

inc(Year);

DateTimePicker2.Date:=EncodeDate(Year, Month, Day);

showmodal;

end;

(18)

refresh;

end;

Program di bawah ini untuk mengedit data member yang telah dipilih menjadi sesuai dengan data member yang baru diisikan pada form edit member lalu merefresh tabel member yang ada pada form master member.

procedure Tfrm_data_member.btn_editClick(Sender: TObject);

begin

if not dbg_m.DataSource.DataSet.Eof then begin

with frm_isian_member do begin

jns_form:=2;

TQuery(dbe_kode_member.DataSource.DataSet).ParamByName('kode_membe r').AsString

:=self.dbg_m.DataSource.DataSet.FieldByName('kode_member').asstrin g;

showmodal;

end;

refresh;

end else

showmessage('Data tidak ada.');

end;

Jika menekan tombol new atau edit, maka akan ditampilkan form isian member dimana perintah new akan menampilkan form isian member dalam keadaan kosong sedangkan perintah edit akan menampilkan form isian member dengan data lama yang dipilih. Berikut adalah program yang dijalankan bila telah melakukan pengisian pada form isian member:

procedure Tfrm_isian_member.btn_okClick(Sender: TObject);

begin

if dbe_kode_member.Text = '' then

showmessage('Kode Member belum diisi') else

if dbe_nama_member.Text = '' then

showmessage('Nama Member belum diisi') else

begin

TQuery(dbe_kode_member.DataSource.DataSet).FieldByName('tgl_daftar ').AsDateTime :=DateTimePicker1.Date;

TQuery(dbe_kode_member.DataSource.DataSet).FieldByName('tgl_selesa

i').AsDateTime :=DateTimePicker2.Date;

(19)

TQuery(dbe_kode_member.DataSource.DataSet).ApplyUpdates;

close;

end;

end;

Program dibawah ini berfungsi untuk menghapus data member dari tabel member berdasarkan data yang telah dipilih oleh user. Sebelumnya data benar- benar dihapus dari database, user dipastikan apakah akan menghapus member tersebut.

procedure Tfrm_data_member.btn_deleteClick(Sender: TObject);

begin

if not dbg_m.DataSource.DataSet.Eof then begin

if messagedlg('Delete record ?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

//delete record

TQuery(dbg_m.DataSource.DataSet).Delete;

TQuery(dbg_m.DataSource.DataSet).ApplyUpdates;

refresh;

end;

end else

showmessage('Data tidak ada.');

end;

Program di bawah ini digunakan untuk mengembalikan ke bentuk default atau menampilkan kembali semua data member yang sebelumnya telah disaring lalu merefresh DBGrid master member.

procedure Tfrm_data_member.SpeedButton2Click(Sender: TObject);

begin

chb_kode.Checked :=false;

chb_nama.Checked :=false;

chb_komisi.Checked :=false;

chb_alamat.Checked :=false;

chb_kota.Checked :=false;

chb_telp.Checked :=false;

chb_hp.Checked :=false;

chb_fax.Checked :=false;

chb_email.Checked :=false;

chb_kodepos.Checked :=false;

chb_tgl_daftar.Checked :=false;

chb_tgl_selesai.Checked :=false;

edt_kode.text :='';

edt_nama.text :='';

(20)

cmb_komisi.ItemIndex :=0;

edt_alamat.text :='';

edt_kota.text :='';

edt_telp.text :='';

edt_hp.text :='';

edt_fax.text :='';

edt_email.text :='';

edt_kodepos.text :='';

//set tgl daftar & tgl selesai dtp_tgl_daftar1.Date :=Date;

dtp_tgl_daftar2.Date :=Date;

dtp_tgl_selesai1.Date :=Date;

dtp_tgl_selesai2.Date :=Date;

refresh;

end;

Di bawah ini adalah bentuk laporan member yang akan ditampilkan.

Gambar 4.8. Bentuk form laporan member

Program di bawah ini digunakan untuk menampilkan laporan seluruh

anggota member dari tabel member beserta username yang saat itu login dan

tanggal hari itu.

(21)

procedure Tfrm_data_member.SpeedButton1Click(Sender: TObject);

begin

frm_laporan_member.QuickRep1.Preview;

end;

Perintah-perintah pada menu Master: Data Subyek Judul, Data Penerbit, Jenis Audio Visual, Data Standar, Operator secara garis besar memiliki kode program yang serupa. Disamping itu juga mempunyai cara kerja/penggunaan yang konsisten untuk memudahkan user.

Form Master Judul buku.

Form ini adalah form yang akan dipanggil oleh form buku av bila terjadi penambahan buku baru. Di dalam form akan ada dilakukan pemilihan subyek buku dengan memanggil form subyek. Berikut ini adalah program untuk memanggil form subyek saat melakukan pengisian judul buku baru:

procedure Tfrm_isian_table_judul_buku.dbg_mEditButtonClick(

Sender: TObject);

begin

with frm_table_subyek do begin

mode :='browse';

btn_new.Enabled:=false;

btn_edit.Enabled:=false;

btn_delete.Enabled:=false;

btn_close.Enabled:=false;

ShowModal;

Self.dbg_m.DataSource.DataSet.Edit;

Self.dbg_m.DataSource.DataSet.FieldByName('no_katalog').AsString :=dbe_no_katalog.Text;

Self.dbg_m.DataSource.DataSet.FieldByName('kode_subyek').AsString :=kode_subyek;

Self.dbg_m.DataSource.DataSet.FieldByName('nama_subyek').AsString :=nama_subyek;

end;

end;

Tombol yang digunakan untuk melakukan transaksi diatas menggunakan

mode browse. Fungsi browse digunakan untuk memudahkan pengambilan data

(22)

penerbit atau subyek sehingga data tidak perlu diketik, hal ini membantu untuk menghindari salah ketik.

Form Master Data Buku dan Audio Visual

Terdapat master lain yang bentuk penyaringannya sedikit berbeda dengan master member diatas, yaitu master data koleksi buku dan audio visual.

Dibawah ini adalah program penyaringan pada master data koleksi buku dan audio visual:

procedure Tfrm_table_buku_av.SetupSQL;

begin

if chb_no_katalog.Checked then

TQuery(dbg_m.DataSource.DataSet).ParamByName('no_katalog').AsSt ring :='%'+edt_no_katalog.Text+'%'

else

TQuery(dbg_m.DataSource.DataSet).ParamByName('no_katalog').AsSt ring :='%';

if chb_no_induk.Checked then

TQuery(dbg_m.DataSource.DataSet).ParamByName('no_induk').AsStri ng :='%'+edt_no_induk.Text+'%'

else

TQuery(dbg_m.DataSource.DataSet).ParamByName('no_induk').AsStri ng :='%';

if chb_keterangan.Checked then

TQuery(dbg_m.DataSource.DataSet).ParamByName('keterangan').AsSt ring :='%'+cmb_keterangan.Text+'%'

else

TQuery(dbg_m.DataSource.DataSet).ParamByName('keterangan').AsSt ring :='%';

if chb_judul.Checked then

TQuery(dbg_m.DataSource.DataSet).ParamByName('judul').AsString :='%'+edt_judul.Text+'%'

else

TQuery(dbg_m.DataSource.DataSet).ParamByName('judul').AsString :='%';

end;

Pada procedure SetupSQL dalam master data koleksi buku dan audio visual, pengecekan penyaringan adalah sama, tetapi menggunakan metode yang berbeda karena dirasa lebih mudah penggunaannya pada query berparameter.

Sedangkan pada inputan dan edit master koleksi data buku dan audio

visual juga terdapat sedikit perbedaan dengan master yang lain. Di bawah ini akan

ditampilkan gambar form inputan dan edit master koleksi data buku dan audio

visual.

(23)

Gambar 4.9. Bentuk form input data buku dan audio visual

Akibat hubungan many to many antara tabel subyek dengan tabel buku dan tabel audio visual, maka muncul tabel baru. Kedua tabel ini diberi nama tabel judul buku subyek dan tabel judul av subyek.

Berikut akan ditampilkan perintah sql dari master data buku dan audio visual:

a. sql_m1 adalah query yang melakukan pemanggilan-pemanggilan komponen- komponen field yang diperlukan untuk ditampilkan pada DBGrid. Berikut adalah perintah query tersebut:

select ba.*, jb.judul_seri, jb.nama_pengarang_utama, 'Buku' as Jenis

from Table_buku_av ba, table_judul_buku jb where ba.no_katalog=jb.no_katalog and

(ba.no_induk like :no_induk and ba.no_katalog like :no_katalog and

ba.keterangan like :keterangan and jb.judul_seri like :judul)

UNION

select ba.*, jda.judul_av, jda.penyanyi, jna.bentuk_av as Jenis

(24)

from Table_buku_av ba, table_judul_av jda, table_jenis_av jna where ba.no_katalog=jda.kode_av and

jda.kode_jenis_av=jna.kode_jenis_av and

(ba.no_induk like :no_induk and ba.no_katalog like :no_katalog and

ba.keterangan like :keterangan and jda.judul_av like :judul)

Dari perintah tersebut diatas, akan dipilih semua master data koleksi buku dan audio visual dari table_buku_av, field yang ditampilkan adalah: judul seri, nama pengarang utama dari tabel judul buku, dan membuat field jenis yang isinya buku. Union merupakan salah satu perintah sql untuk menggabungkan tabel buku dan tabel audio visual. Di dalam perintah ini, akan dipanggil semua field dari tabel buku dan audio visual, field judul av dan penyanyi dari tabel judul av, dll.

b. sql_m2 adalah query untuk melakukan insert dan edit data koleksi buku dan audio visual. Inilah perintah query tersebut:

Perintah query insert:

insert into table_buku_av

(no_induk, no_katalog, keterangan, deskripsi) values

(:no_induk, :no_katalog, :keterangan, :deskripsi)

Perintah query update/edit : update table_buku_av set

no_katalog = :no_katalog, keterangan = :keterangan, deskripsi = :deskripsi where

no_induk = :OLD_no_induk

Untuk penginputan, penghapusan, perubahan dan menutup form data

master buku dan audio visual, hampir sama dengan program penginputan,

penghapusan, perubahan dan penutupan form master member diatas.

(25)

Form Transaksi Sirkulasi

Form transaksi sirkulasi digunakan untuk mencatatkan semua aktivitas sirkulasi, seperti peminjaman, perpanjangan, pengembalian dan pemesanan koleksi bahan pustaka. Di bawah ini adalah form untuk penyaringan berdasarkan atas kode member dan no induk koleksi bahan pustaka. Kedua pencarian tersebut menampilkan data anggota perpustakaan pada DBText. Pencarian berdasarkan kode member menampilkan data anggota pada DBText, sedangkan pencarian berdasarkan no induk menampilkan data anggota yang sedang melakukan peminjaman koleksi bahan pustaka tersebut. Di bawah ini akan ditampilkan gambar form transaksi sirkulasi:

Gambar 4.10. Bentuk form transaksi sirkulasi

Di bawah adalah program pencarian anggota perpustakaan berdasarkan kedua

dasar pencarian diatas:

(26)

procedure Tfrm_data_sirkulasi.btn_searchClick(Sender: TObject);

var

kode_member : string;

begin

//jika pencarian berdsrkan kode member if cmb_by.ItemIndex=0 then

kode_member :=edt_keyword.Text else

begin

with dtm_sirkulasi do begin

Query1.Close;

Query1.SQL.Text :='select kode_member from table_pinjam where kode_pinjaman=:p1';

Query1.ParamByName('p1').AsString :=edt_keyword.Text;

Query1.Open;

kode_member :=Query1.fieldbyname('kode_member').AsString;

end;

end;

//tampilkan data member

dbt_kode.DataSource.DataSet.Close;

TQuery(dbt_kode.DataSource.DataSet).ParamByName('p1').AsString :=kode_member;

dbt_kode.DataSource.DataSet.Open;

//tampilkan data pinjaman dbg1.DataSource.DataSet.Close;

TQuery(dbg1.DataSource.DataSet).ParamByName('p1').AsString :=kode_member;

dbg1.DataSource.DataSet.Open;

//tampilkan data pesanan dbg2.DataSource.DataSet.Close;

TQuery(dbg2.DataSource.DataSet).ParamByName('p1').AsString :=kode_member;

dbg2.DataSource.DataSet.Open;

//jika data ditemukan

if not dbt_kode.DataSource.DataSet.Eof then begin

//aktifkan tombol2

btn_pinjam.Enabled :=true;

btn_kembali.Enabled :=true;

btn_perpanjang.Enabled :=true;

btn_batal_pinjam.Enabled :=true;

btn_bayar.Enabled :=true;

btn_pesan.Enabled :=true;

btn_batal_pesan.Enabled :=true;

end else begin

ShowMessage('Data Kode Member tidak ditemukan');

(27)

//non-aktifkan tombol2 btn_pinjam.Enabled :=false;

btn_kembali.Enabled :=false;

btn_perpanjang.Enabled :=false;

btn_batal_pinjam.Enabled :=false;

btn_bayar.Enabled :=false;

btn_pesan.Enabled :=false;

btn_batal_pesan.Enabled :=false;

end;

end;

Setelah berhasil menemukan kode anggota, maka tombol peminjaman, pengembalian, pemesanan, pengembalian dan pembayaran denda akan diaktifkan.

Di bawah ini adalah program yang akan memanggil procedure peminjaman, bila menekan tombol button pinjam:

procedure Tfrm_data_sirkulasi.btn_pinjamClick(Sender: TObject);

var

max_pinjam, jml_pinjam : integer;

begin

//cek apakah membership sdh habis if

dbt_kode.DataSource.DataSet.FieldByName('tgl_selesai').AsDateTime

>= date then begin

//cek apakah ada tunggakan with dtm_sirkulasi do begin

Query1.Close;

Query1.SQL.Text :='select * from table_pinjam where kode_member=:p1 and status_denda=''Tunggakan''';

Query1.ParamByName('p1').AsString :=dbt_kode.Caption;

Query1.Open;

//jika tdk ada tunggakan if query1.Eof then

begin

//cek apakah jml pinjaman sdh max

//ambil jml pinjaman yg diijinkan di table standar Query1.Close;

Query1.SQL.Text :='select nilai from table_standar where standar=''max_pinjam''';

Query1.Open;

max_pinjam :=Query1.fieldbyname('nilai').AsInteger;

//ambil jml pinjaman member saat ini Query1.Close;

Query1.SQL.Text :='select count(*) as jum from

table_pinjam where kode_member='''+dbt_kode.DataSource.DataSet.fieldbyname('kode_memb

er').AsString+'''';

Query1.Open;

jml_pinjam :=Query1.fieldbyname('jum').AsInteger;

(28)

if jml_pinjam < max_pinjam then begin

with frm_isian_sirkulasi do begin

jns_form:=1;

showmodal;

end;

refresh;

end else

showmessage('Jumlah pinjaman sudah maksimum');

end else

showmessage('Tunggakan pinjaman belum dilunasi');

end;

end else

showmessage('Membership sudah habis');

end;

Data anggota yang meminjam koleksi bahan pustaka akan disimpan dalam tabel pinjam. Jika menekan tombol batal pinjam, maka data akan dihapus dari tabel pinjam. Koleksi bahan pustaka yang dipinjam akan ditampilkan pada DBGrid1. Pada program peminjaman ini akan dilakukan pengecekan apakah membership sdh habis, apakah ada tunggakan dan apakah jml pinjaman sdh max.

Di bawah ini adalah procedure yang akan dilakukan bila kita menekan button perpanjangan pada form sirkulasi:

procedure Tfrm_data_sirkulasi.btn_perpanjangClick(Sender:

TObject);

var

max_perpanjangan, lama_pinjam, count_perpanjangan : integer;

status_sirkulasi : string;

begin

//cek apakah membership sdh habis if

dbt_kode.DataSource.DataSet.FieldByName('tgl_selesai').AsDateTime

>= date then begin

//cek apakah ada tunggakan with dtm_sirkulasi do begin

Query1.Close;

Query1.SQL.Text :='select * from table_pinjam where kode_member=:p1 and status_denda=''Tunggakan''';

Query1.ParamByName('p1').AsString :=dbt_kode.Caption;

Query1.Open;

(29)

//jika tdk ada tunggakan if query1.Eof then

begin

//cek apakah koleksi tsb sdg dipesan Query1.Close;

Query1.SQL.Text :='select

p.kode_pesanan,p.kode_member,m.nama_member ' +

'from table_pesan p, table_member m ' + 'where p.kode_pesanan=:p1 and p.kode_member=m.kode_member';

Query1.ParamByName('p1').AsString

:=dbg1.DataSource.DataSet.fieldbyname('kode_pinjaman').AsString;

Query1.Open;

//jika sdg tdk dipesan if query1.Eof then begin

//cek apakah sdh max perpanjangan

//ambil nilai max perpanjangan dr table standar Query1.Close;

Query1.SQL.Text :='select nilai from table_standar where standar=''max_perpanjangan''';

Query1.Open;

max_perpanjangan

:=Query1.fieldbyname('nilai').AsInteger;

status_sirkulasi

:=dbg1.DataSource.DataSet.FieldByName('status_sirkulasi').AsString

;

if (status_sirkulasi='Peminjaman') or (strtoint(status_sirkulasi[length(status_sirkulasi)])<max_perpanja ngan) then

begin

if MessageDlg('Perpanjang koleksi:

'+dbg1.DataSource.DataSet.fieldbyname('kode_pinjaman').AsString+#1 3+

dbg1.DataSource.DataSet.fieldbyname('judul_seri').AsString, mtConfirmation, [mbOK, mbCancel], 0)=mrOk then

begin

//ambil lama pinjam dr table standar Query1.Close;

Query1.SQL.Text :='select nilai from table_standar where standar=''lama_pinjam''';

Query1.Open;

lama_pinjam :=Query1.fieldbyname('nilai').AsInteger;

//ambil jml perpanjangan saat ini if status_sirkulasi='Peminjaman' then count_perpanjangan :=0

else

count_perpanjangan

:=strtoint(status_sirkulasi[length(status_sirkulasi)]);

//lakukan perpanjangan koleksi

(30)

inc(count_perpanjangan);

Query1.Close;

Query1.SQL.Text :='update table_pinjam set tgl_batas_kembali=:p1,status_sirkulasi=:p2 where kode_pinjaman=:p3 and kode_member=:p4';

Query1.ParamByName('p1').AsDateTime :=Date+lama_pinjam;

Query1.ParamByName('p2').AsString :='Perpanjangan '+inttostr(count_perpanjangan);

Query1.ParamByName('p3').AsString

:=dbg1.DataSource.DataSet.fieldbyname('kode_pinjaman').AsString;

Query1.ParamByName('p4').AsString :=dbt_kode.Caption;

Query1.ExecSQL;

refresh;

end;

end else

ShowMessage('Perpanjangan koleksi sdh maksimum');

end else

ShowMessage('Koleksi tersebut sedang dipesan oleh :

'+Query1.fieldbyname('kode_member').AsString+' : '+Query1.fieldbyname('nama_member').AsString);

end else

showmessage('Tunggakan pinjaman belum dilunasi');

end;

end else

showmessage('Membership sudah habis');

end;

Procedure diatas akan menambahkan waktu pengembalian koleksi tetapi tidak mengubah tanggal peminjamannya.

Di bawah ini adalah procedure yang akan dijalankan bila kita menekan button pengembalian yang ada dalam form transaksi sirkulasi:

procedure Tfrm_data_sirkulasi.btn_kembaliClick(Sender: TObject);

begin

//cek apakah koleksi yg akan dikembalikan ada tunggakan if

dbg1.DataSource.DataSet.FieldByName('status_denda').AsString<>'Tun ggakan' then

begin

//jika tdk ada tunggakan

(31)

if MessageDlg('Kembalikan koleksi:

'+dbg1.DataSource.DataSet.fieldbyname('kode_pinjaman').AsString+#1 3+

dbg1.DataSource.DataSet.fieldbyname('judul_seri').AsString, mtConfirmation, [mbOK, mbCancel], 0)=mrOk then

begin

with dtm_sirkulasi do begin

//hapus data dr table pinjam Query1.Close;

Query1.SQL.Text :='delete from table_pinjam where kode_pinjaman=:p1 and kode_member=:p2';

Query1.ParamByName('p1').AsString

:=dbg1.DataSource.DataSet.fieldbyname('kode_pinjaman').AsString;

Query1.ParamByName('p2').AsString

:=dbt_kode.DataSource.DataSet.fieldbyname('kode_member').AsString;

Query1.ExecSQL;

//input data ke table history pinjam Query1.Close;

Query1.SQL.Text :='insert into table_history_pinjam values(:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8)';

Query1.ParamByName('p1').AsString

:=dbg1.DataSource.DataSet.fieldbyname('kode_pinjaman').AsString;

Query1.ParamByName('p2').AsString

:=dbt_kode.DataSource.DataSet.fieldbyname('kode_member').AsString;

Query1.ParamByName('p3').AsDateTime

:=dbg1.DataSource.DataSet.fieldbyname('tgl_pinjam').AsDateTime;

Query1.ParamByName('p4').AsDateTime

:=dbg1.DataSource.DataSet.fieldbyname('tgl_batas_kembali').AsDateT ime;

Query1.ParamByName('p5').AsDateTime :=Date;

Query1.ParamByName('p6').AsCurrency

:=dbg1.DataSource.DataSet.fieldbyname('denda').AsCurrency;

Query1.ParamByName('p7').AsString

:=dbg1.DataSource.DataSet.fieldbyname('status_denda').AsString;

Query1.ParamByName('p8').AsString

:=dbg1.DataSource.DataSet.fieldbyname('status_sirkulasi').AsString

;

Query1.ExecSQL;

refresh;

end;

end;

end else

showmessage('Tunggakan pinjaman belum dilunasi');

end;

Program ini akan menghapus data pinjaman anggota tersebut pada

DBGrid1 dan mencatatkannya pada tabel history pinjam.

(32)

Di bawah ini adalah procedure yang akan dijalankan bila menekan button pemesanan:

procedure Tfrm_data_sirkulasi.btn_pesanClick(Sender: TObject);

var

max_pesan, jml_pesan : integer;

begin

//cek apakah membership sdh habis if

dbt_kode.DataSource.DataSet.FieldByName('tgl_selesai').AsDateTime

>= date then begin

//cek apakah ada tunggakan with dtm_sirkulasi do begin

Query1.Close;

Query1.SQL.Text :='select * from table_pinjam where kode_member=:p1 and status_denda=''Tunggakan''';

Query1.ParamByName('p1').AsString :=dbt_kode.Caption;

Query1.Open;

//jika tdk ada tunggakan if query1.Eof then

begin

//cek apakah jml pesanan sdh max

//ambil jml pesanan yg diijinkan di table standar Query1.Close;

Query1.SQL.Text :='select nilai from table_standar where standar=''max_pesan''';

Query1.Open;

max_pesan :=Query1.fieldbyname('nilai').AsInteger;

//ambil jml pesanan member saat ini Query1.Close;

Query1.SQL.Text :='select count(*) as jum from table_pesan where

kode_member='''+dbt_kode.DataSource.DataSet.fieldbyname('kode_memb er').AsString+'''';

Query1.Open;

jml_pesan :=Query1.fieldbyname('jum').AsInteger;

if jml_pesan < max_pesan then begin

with frm_isian_sirkulasi do begin

jns_form:=2;

showmodal;

end;

refresh;

end else

showmessage('Jumlah pesanan sudah maksimum');

end else

showmessage('Tunggakan pinjaman belum dilunasi');

(33)

end;

end else

showmessage('Membership sudah habis');

end;

Setelah dapat melalui kondisi diatas, maka akan dicatat pemesanan atau peminjaman koleksi bahan pustaka. Di bawah ini adalah form inputan transaksi sirkulasi:

Gambar 4.11. Bentuk form inputan transaksi sirkulasi

Sebelum benar-benar disetujui, maka akan dilakukan pengecekan lagi untuk peminjaman dan pemesanan. Program pengecekan tersebut, seperti tampak di bawah ini:

procedure Tfrm_isian_sirkulasi.btn_okClick(Sender: TObject);

var

pinjam, pesan : boolean;

lama_pinjam, lama_pesan : integer;

kode_member, nama_member : string;

begin

if edt_no_induk.Text = '' then

showmessage('No Induk belum diisi')

else

(34)

begin

//jika melakukan peminjaman if jns_form=1 then

begin

//cek apakah no induk tsb sdg dipinjam with dtm_sirkulasi do

begin

Query1.Close;

Query1.SQL.Text :='select p.kode_pinjaman, m.kode_member, m.nama_member ' +

'from table_pinjam p, table_member m ' + 'where p.kode_pinjaman=:p1 and p.kode_member=m.kode_member';

Query1.ParamByName('p1').AsString :=edt_no_induk.Text;

Query1.Open;

if Query1.Eof then pinjam :=false else

begin

pinjam :=true;

kode_member

:=Query1.fieldbyname('kode_member').AsString;

nama_member

:=Query1.fieldbyname('nama_member').AsString;

end;

end;

if not pinjam then begin

//cek apakah no induk tsb sdg dipesan with dtm_sirkulasi do

begin

Query1.Close;

Query1.SQL.Text :='select p.kode_pesanan, m.kode_member, m.nama_member ' +

'from table_pesan p, table_member m ' +

'where p.kode_pesanan=:p1 and p.kode_member=m.kode_member';

Query1.ParamByName('p1').AsString :=edt_no_induk.Text;

Query1.Open;

if Query1.Eof then pesan :=false else

begin

pesan :=true;

kode_member

:=Query1.fieldbyname('kode_member').AsString;

nama_member

:=Query1.fieldbyname('nama_member').AsString;

end;

end;

if not pesan then begin

//ambil lama pinjam dr table standar with dtm_sirkulasi do

begin

(35)

Query1.Close;

Query1.SQL.Text :='select nilai from table_standar where standar=''lama_pinjam''';

Query1.Open;

lama_pinjam :=Query1.fieldbyname('nilai').AsInteger;

//lakukan peminjaman koleksi Query1.Close;

Query1.SQL.Text :='insert into table_pinjam values(:p1,:p2,:p3,:p4,:p5,:p6,:p7)';

Query1.ParamByName('p1').AsString :=edt_no_induk.Text;

Query1.ParamByName('p2').AsString :=lb_kode_member.Caption;

Query1.ParamByName('p3').AsDateTime :=date;

Query1.ParamByName('p4').AsDateTime :=date+lama_pinjam;

Query1.ParamByName('p5').AsCurrency :=0;

Query1.ParamByName('p6').AsString :='Lunas';

Query1.ParamByName('p7').AsString :='Peminjaman';

Query1.ExecSQL;

frm_data_sirkulasi.refresh;

close;

end;

end else

ShowMessage('Koleksi dengan no induk tsb sudah dipesan oleh : '+kode_member+' - '+nama_member);

end else

ShowMessage('Koleksi dengan no induk tsb sudah dipinjam oleh : '+kode_member+' - '+nama_member);

end else begin

//jika melakukan pemesanan

//cek apakah no induk tsb sdg dipinjam with dtm_sirkulasi do

begin

Query1.Close;

Query1.SQL.Text :='select kode_pinjaman,kode_member from table_pinjam where kode_pinjaman='''+edt_no_induk.Text+'''';

Query1.Open;

if Query1.Eof then pinjam :=false else

begin

pinjam :=true;

kode_member

:=Query1.fieldbyname('kode_member').AsString;

end;

end;

if pinjam then begin

//cek apakah dipinjam oleh diri sendiri

if not(kode_member=lb_kode_member.Caption) then

(36)

begin

//cek apakah no induk tsb sudah dipesan org lain with dtm_sirkulasi do

begin

Query1.Close;

Query1.SQL.Text :='select p.kode_pesanan, m.kode_member, m.nama_member ' +

'from table_pesan p, table_member m ' +

'where p.kode_pesanan=:p1 and p.kode_member=m.kode_member';

Query1.ParamByName('p1').AsString :=edt_no_induk.Text;

Query1.Open;

if Query1.Eof then pesan :=false else

begin

pesan :=true;

kode_member

:=Query1.fieldbyname('kode_member').AsString;

nama_member

:=Query1.fieldbyname('nama_member').AsString;

end;

end;

if not pesan then begin

//ambil lama pesan dr table standar with dtm_sirkulasi do

begin

Query1.Close;

Query1.SQL.Text :='select nilai from table_standar where standar=''lama_pesan''';

Query1.Open;

lama_pesan :=Query1.fieldbyname('nilai').AsInteger;

//lakukan pemesanan koleksi Query1.Close;

Query1.SQL.Text :='insert into table_pesan values(:p1,:p2,:p3,:p4)';

Query1.ParamByName('p1').AsString :=edt_no_induk.Text;

Query1.ParamByName('p2').AsString :=lb_kode_member.Caption;

Query1.ParamByName('p3').AsDateTime :=date;

Query1.ParamByName('p4').AsDateTime :=date+lama_pesan;

Query1.ExecSQL;

frm_data_sirkulasi.refresh;

close;

end;

end else

ShowMessage('Koleksi dengan no induk tsb sudah dipesan oleh : '+kode_member+' - '+nama_member);

end

(37)

else

ShowMessage('Koleksi dengan no induk tsb sdg anda pinjam');

end else

ShowMessage('Koleksi dengan no induk tsb sedang tidak dipinjam');

end;

end;

end;

Program diatas akan benar-benar mencatatkan peminjaman dan pemesanan koleksi bahan pustaka oleh anggota perpustakaan. Data koleksi bahan pustaka yang dipinjam akan dicatat pada DBGrid1, sedang data koleksi bahan pustaka yang dipesan akan dicatatkan pada DBGrid2.

Form Transaksi katalog

Form transaksi katalog ini diperuntukkan bagi member perpustakaan,

tetapi selain itu form ini juga dapat dibuka oleh bagian admin. Form transaksi

katalog ini akan bisa mencari semua koleksi bahan pustaka yang diinginkan oleh

member. Berikut ini adalah gambar form transaksi katalog:

(38)

Gambar 4.12. Bentuk form transaksi katalog

Teknik untuk searching bahan pustaka adalah sama dengan teknik search yang sudah dilakukan pada form data master.

Bab ini akan membahas mengenai pengujian sistem dari sistem yang telah dibuat. Pengujian sistem ini bertujuan untuk mengetahui apakah masih ada yang kurang, atau masih ada kesalahan dari sistem yang telah dibuat.

Pengujian Login

Pada halaman pertama akan muncul login untuk user, agar dapat

mengakses aplikasi ini. Terdapat empat macam status login yaitu login untuk

katalog, sirkulasi, pengolahan & inventaris serta login untuk admin. Seperti pada

Gambar 5.1.

(39)

Gambar 5.1. Gambar Form Login

Apabila username, password atau status yang dimasukkan dalam form login tidak sesuai atau tidak terdapat dalam database, maka akan keluar pesan seperti pada gambar 5.2.

Dibawah ini adalah contoh tampilan apabila status yang diinputkan pada saat login tidak sesuai atau tidak terdapat dalam database.

Gambar 5.2. Pesan Kesalahan Login

Pengujian Input dan Edit member

Input member hanya dapat dilakukan oleh admin saja, dengan memilih

menu master-operator dan klik new pada form tabel operator. Di bawah ini adalah

contoh bentuk form input member:

(40)

Gambar 5.3. Form Input Member

Kemudian dengan mengklik tombol OK maka data ini akan masuk ke dalam tabel member pada database SolomonHall.

Jika mengklik tombol edit maka akan keluar Form seperti gambar 5.4

yang semua data fieldnya sesuai dengan data pada dbgrid yang dipilih. Kemudian

data ini dapat diubah-ubah.

(41)

Gambar 5.4. Form Edit Member

Kemudian dengan mengklik tombol OK maka data ini akan diupdate/diganti dengan data yang baru dirubah.

Pengujian Search Member dan Hapus Data Member

Admin dapat mencari member yang diinginkan dengan mengklik menu

master kemudian member. Akan keluar form data member seperti gambar 5.5.

(42)

Gambar 5.5. Gambar Form Search member

Jika menekan tombol delete, maka data yang terpilih di DBgrid akan dihapus. Sebelum data yang dipilih dihapus dari tabel, maka akan diberi konfirmasi untuk memastikannya, seperti gambar 5.6.

Gambar 5.6. Gambar Delete Data Member

(43)

Pengujian Form Master Buku dan Audio Visual

Bentuk form untuk input data buku dan audio visual akan diperlihatkan di bawah ini:

Gambar 5.7. Gambar form input buku atau audio visual baru

Pengujian Form Data Transaksi Sirkulasi

Input transaksi sirkulasi dapat dilakukan oleh bagian sirkulasi dan admin, dimana bagian sirkulasi dan admin harus login terlebih dahulu. Setelah memasuki form main dapat melakukan pilihan sub menu transaksi dan klik bagian sirkulasi.

Form transaksi akan muncul seperti gambar 5.8. berikut:

(44)

Gambar 5.8. Gambar form transaksi sirkulasi

Jika pencarian kode member yang dilakukan berdasarkan kode member atau no. induk tidak ada, maka akan muncul pesan sebagai berikut ini:

Gambar 5.9. Pesan input kode member tidak berhasil

Jikalau pencarian berdasarkan kode member atau no. induk berhasil,

maka akan diaktifkan tombol peminjaman, perpanjangan, pengembalian dan

pemesanan serta tombol-tombol yang lain seperti tampak pada gambar di bawah

ini:

(45)

Gambar 5.10. Gambar form transaksi sirkulasi saat input berhasil

Pengujian transaksi peminjaman

Setelah tombol-tombol pada form transaksi sirkulasi dapat ditekan, maka pertama-tama akan dilakukan pengujian pada tombol peminjaman. Pada saat kita menekan tombol peminjaman, maka akan dilakukan pengecekan antara lain:

a. Apakah keanggotaan yang berlaku 1 tahun sudah expired? Untuk mengetahui

tanggal kadaluarsa member, maka perlu diadakan hubungan dengan tabel

member. Di bawah ini akan ditampilkan pesan bahwa keanggotaan sudah

expired:

(46)

Gambar 5.11. Peringatan membership sudah habis

b. Apakah ada tunggakan? Untuk mengetahui status ‘tunggakan’, maka perlu dihubungkan dengan field kode_member dan status pinjam dari tabel pinjam.

Akan muncul pesan ‘Tunggakan pinjaman belum dilunasi’ bila memang ada tunggakan. Di bawah ini akan ditampilkan pesan larangan pinjam karena adanya tunggakan:

Gambar 5.12. Peringatan adanya tunggakan

c. Apakah koleksi bahan pustaka yang dipinjam sudah maksimal? Untuk

pengecekan ini maka perlu untuk berhubungan dengan tabel standar yang

mencatat setiap standar yang berlaku dalam perpustakaan. Di bawah ini akan

ditampilkan display yang menampilkan pesan bahwa pinjaman sudah

maksimal:

(47)

Gambar 5.13. Peringatan pinjaman koleksi sudah maksimal

Jika melewati semua kondisi diatas maka anggota dapat melakukan peminjaman. Di bawah ini akan ditampilkan form yang akan ditampilkan ketika klik tombol peminjaman:

Gambar 5.14. Gambar form inputan peminjaman

Jika sudah sudah dapat melewati semua kondisi diatas dan dapat melakukan peminjaman maka sebelum disetujui maka akan dilakukan pengecekan lagi seperti berikut ini:

a. apakah no induk tsb sdg dipinjam? Untuk mengetahui apakah no induk tersebut

sedang dipinjam atau tidak, maka perlu dihubungkan dengan tabel pinjam dan

(48)

tabel member untuk mengetahui kode pinjaman dan detil peminjam koleksi bahan pustaka tersebut. Jika koleksi tersebut memang dipinjam, maka akan ditampilkan pesan ‘Koleksi dengan no induk tsb sudah dipinjam oleh : '. Di bawah ini akan ditampilkan pesan seperti diatas:

Gambar 5.15. Peringatan bahwa no induk yang dicari sedang dipinjam

b. apakah no induk tsb sdg dipesan? Untuk mengetahui apakah no induk tersebut sedang dipesan atau tidak, maka perlu dihubungkan dengan tabel pesan dan tabel member untuk mengetahui kode pesanan dan detil pemesan koleksi bahan pustaka tersebut. Jika koleksi tersebut memang dipesan, maka akan ditampilkan pesan ‘Koleksi dengan no induk tsb sudah dipesan oleh : '. Di bawah ini akan ditampilkan pesan seperti diatas:

Gambar 5.16. Peringatan no induk sedang dipesan

Pengujian transaksi perpanjangan

Di dalam tombol peminjaman ini akan diadakan pengecekan sebagai berikut:

a. Apakah koleksi tersebut sedang dipinjam? Untuk mengetahui kode pesanan dan

anggota yang meminjam, maka perlu untuk dihubungkan dengan tabel pesan

(49)

dan tabel member. Di bawah ini akan ditampilkan pesan bahwa koleksi yang akan diperpanjang sedang dipesan:

Gambar 5.17. Koleksi yang akan diperpanjang sedang dipesan

b. Apakah sudah maksimal dalam melakukan perpanjangan? Untuk melakukan pengecekan ini maka perlu dihubungkan dengan tabel standar.

Di bawah ini akan ditampilkan form pesan bahwa perpanjangan sudah maksimal:

Gambar 5.18. Pesan perpanjangan koleksi sudah maksimal

Pengujian transaksi pengembalian

Pada saat anggota perpustakaan mengembalikan koleksi bahan pustaka yang dipinjam, maka akan dilakukan pengecekan apakah ada tunggakan yang masih belum dilunasi? Jika tidak ada tunggakan, maka data koleksi dan member akan dihapus dari DBGrid peminjaman dan disimpan dalam Tabel history pinjam. Pesan adanya tunggakan dapat dilihat di gambar 5.12.

Pengujian transaksi pemesanan

(50)

Pada saat melakukan pemesanan koleksi bahan pustaka, akan dilakukan beberapa pengecekan seperti berikut ini apakah jumlah pemesanan sudah maksimal? Untuk mengetahui jumlah pesanan maka perlu untuk dihubungkan dengan tabel pesan dalam database. Pengecekan berupa masa keanggotaan dan tunggakan adalah sama dengan tabel-tabel sebelumnya.

Setelah dapat melakukan pemesanan & sebelum disetujui, maka akan dilakukan pengecekan terhadap pesanan, seperti:

a. apakah no. induk tersebut sedang dipinjam? Untuk mengetahui apakah koleksi bahan pustaka sedang dipesan, maka perlu dihubungkan dengan field kode pinjaman dari tabel pinjam, karena kode pinjaman adalah sama dengan no induk koleksi bahan pustaka. Jika koleksi yang ingin dipesan sedang tidak dipinjam, maka anggota perpustakaan dianjurkan untuk melakukan peminjaman hari itu saja. Di bawah ini adalah form yang akan ditampilkan apabila no. induk tersebut sedang tidak dipinjam:

Gambar 5.19. Koleksi yang akan dipesan sedang dipinjam

b. apakah dipinjam oleh diri sendiri? Di bawah ini adalah form yang akan

ditampilkan apabila no. induk tersebut sedang dipinjam oleh diri sendiri:

(51)

Gambar 5.20. Koleksi dipesan oleh diri sendiri

c. apakah no induk tersebut sudah dipesan org lain? Jika memang koleksi sedang

dipesan, maka akan keluar pesan seperti pada gambar 5.17.

Referensi

Dokumen terkait

dan kedua dicontohkan sebagai sebuah antena batang yang dapat diperpanjang dan diperpendek dengan jumlah ruas tertentu. Satu ruas antena dipandang sebagai satu satuan

Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development

Pada zona ini raw meal dari preheater akan mengalami pemanasan hingga 1200 ºC dan proses yang terjadi adalah proses penguraian secara maksimum dari unsure –

3 UNTUK TRANSAKSI PELANGGAN DI AUSTARALIA DAN SELANDIA BARU, KETENTUAN DALAM PERNYATAAN GARANSI INI, KECUALI SEJAUH YANG DIIZINKAN OLEH HUKUM, TIDAK MENGECUALIKAN, MEMBATASI,

Kesimpulan yang bisa diambil dari penelitian ini adalah peringkat dalam menentukan motivasi belajar mahasiswa dikampus yang berkaitan dengan lingkungan kampus

Setelah melakukan penelitian tentang deiksis persona dalam film Maleficent, penulis melihat bahwa deiksis lainnya seperti deiksis tempat, deiksis waktu, deiksis

terbobot. Metode ini diselesaikan dengan melakukan penjumlahan dari perkalian matriks ternormalisasi dengan vektor bobot dan nilai terbesar yang dipilih sebagai

Dalam keadaan terpaksa, misalnya pasien tidak mungkin untuk diangkut ke kota/rumah sakit besar, sedangkan tindakan darurat harus segera diambil maka seorang dokter atau bidan