Anda di halaman 1dari 31

Rancangan Sistem Informasi Perpustakaan Berbasis Objek

Diajukan untuk memenuhi tugas Matakuliah Testing dan Implementasi Sistem

Oleh :
Karina Virgi Agustha

10512376

SI-09

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
2015

1.

Deskripsi Umum Sistem


Sistem informasi yang dirancang pada laporan ini merupakan sistem informasi

manajemen perpustakaan yang berfungsi bagi pustakawan untuk mengelola informasi


yang meliputi data keanggotaan, koleksi pustaka, peminjaman, pengembalian, serta bagi
anggota dan pengunjung untuk dapat melakukan pencarian koleksi pustaka dengan
mudah. Sistem informasi perpustakaan ini dirancang untuk diterapkan pada sebuah
universitas.
Berikut merupakan dua tipe pengguna yang dapat mengakses sistem, yaitu:
1. Pustakawan, memiliki hak akses terhadap seluruh menu pengelolaan dan
pencarian yang tersedia, tentunya setelah berhasil melakukan login.
2. Pengunjung (mahasiswa, dosen, karyawan), baik yang telah menjadi anggota
maupun belum, diberikan hak akses terhadap menu pencarian koleksi pustaka
(baik koleksi umum maupun khusus) pada komputer khusus yang disediakan.
Hal ini bertujuan untuk memudahkan pengunjung dalam mendapatkan
informasi meliputi ketersediaan serta lokasi pustaka pada rak buku.
Selain itu, terdapat peraturan standar yang disesuaikan dengan sistem informasi
perpustakaan yang dirancang, yaitu sebagai berikut:
1. Pengunjung dipersilahkan membaca pustaka di perpustakaan, baik anggota
maupun bukan anggota.
2. Pengunjung yang ingin meminjam koleksi harus terdaftar sebagai sebagai
anggota.
3. Koleksi yang dikategorikan ke dalam koleksi khusus hanya diperbolehkan
untuk dibaca di perpustakaan dan tidak dapat dipinjam untuk dibawa ke luar
perpustakaan.

4. Proses pendaftaran anggota dan peminjaman dilakukan oleh petugas


perpustakaan dengan biaya sebesar Rp 40.000. Calon anggota harus
memenuhi persyaratan yang ditentukan yaitu membawa KTP dan KTM
(untuk mahasiswa), Kartu Tanda Pegawai (untuk dosen dan karyawan).
Masa aktif anggota adalah satu tahun semenjak pendaftaran dan nantinya
diperbolehkan untuk melakukan perpanjangan dengan biaya yang sama yaitu
Rp 40.000.
5. Seorang anggota dapat melakukan peminjaman lebih dari satu pustaka dalam
satu waktu.
6. Jumlah total peminjaman pustaka dibatasi sebanyak 5 dan dapat dilakukan
dengan beberapa peminjaman terpisah.
7. Seorang anggota dapat mengembalikan pustaka yang dipinjam tidak dalam
waktu yang bersamaan walaupun pustaka-pustaka tersebut dipinjam pada
waktu yang sama.
8. Lama peminjaman yaitu selama 14 hari.
9. Bagi anggota yang terlambat mengembalikan koleksi akan didenda sesuai
dengan ketentuan nominal denda, yaitu Rp 1000/hari.

2.

Diagram UML
1) Use Case

Terdiri dari dua aktor yaitu petugas perpustakaan dan pengunjung (yang
merupakan generalisasi dari anggota dan bukan anggota), serta lima use case
utama.

2) Skenario Use Case


2.1.Nama Use Case: Pendaftaran
Aktor

: Pengunjung (bukan anggota)

Deskripsi

: Kegiatan pendaftaran menjadi anggota.

Kondisi Awal

: Pendeskripsian tata cara, persyaratan dan biaya

Aksi Aktor
1. Melengkapi

persyaratan

Tanggapan Sistem (Petugas)


yang

dibutuhkan (KTM untuk mahasiswa,


Kartu Tanda Pegawai bagi dosen
dan karyawan).
2. Validasi kelengkapan persyaratan.
Alternatif jalur nomor 2.

Laporkan hasil validasi ke calon anggota dan kembalikan persyaratan untuk


dilengkapi.
3. Membayar biaya pendaftaran
4. Memproses

pendaftaran

calon

anggota.
Kondisi Akhir:
1. Calon anggota terdaftar menjadi anggota
2. Calon anggota mendapat kartu anggota dengan masa aktif selama satu
tahun.

2.2.Nama Use Case: Perpanjangan


Aktor

: Anggota (non aktif)

Deskripsi

: Kegiatan perpanjangan masa aktif keanggotaan

Kondisi Awal

: Anggota non aktif

Aksi Aktor

Tanggapan Sistem (Petugas)

1. Melakukan perpanjangan di loket


dengan membawa kartu anggota
lama serta tanda pengenal (KTP atau
KTM)
2. Validasi kecocokan data, jika valid
maka

melakukan

perpanjangan
anggota

masa

non

pemrosesan
aktif
aktif

bagi
yang

bersangkutan.
Alternatif jalur nomor 3.
Laporkan hasil validasi ke anggota non aktif dan kembalikan persyaratan.
Kondisi Akhir:
Anggota non aktif kembali aktif dan mendapat kartu anggota baru dengan masa
aktif selama satu tahun.

2.3.Nama Use Case: Koleksi Pustaka


Aktor

: Pengunjung

Deskripsi

: Perpustakaan menyediakan akses bagi pengunjung


terhadap koleksi yang dimiliki

Kondisi Awal

: Penyediaan koleksi dan informasi

Aksi Aktor

Tanggapan Sistem (Petugas)

1. Pencarian koleksi
Alternatif jalur 2.
Jika pustaka tidak ditemukan maka pengunjung meninggalkan perpustakaan
2. Membaca pustaka di perpustakaan

2.4.Nama Use Case: Peminjaman


Aktor

: Anggota

Deskripsi

: Kegiatan peminjaman pustaka oleh anggota.

Kondisi Awal

: Pustaka Tersedia

Aksi Aktor
1. Melakukan
membawa

Tanggapan Sistem (Petugas)

peminjaman
pustaka

yang

dengan
akan

dipinjam serta kartu anggota.


2. Cek masa aktif anggota.
Alternatif jalur nomor 2.
Jika masa aktif habis maka tolak peminjaman dan.
3. Cek

jumlah

peminjaman

yang

dimiliki dan belum dikembalikan.


Alternatif jalur nomor 3.
Jika jumlah peminjaman yang belum dikembalikan sama dengan 5, maka tolak
peminjaman. Arahkan anggota untuk mengembalikan terlebih dahulu.
4. Memproses peminjaman
Kondisi Akhir:
Peminjaman tercatat dan pustaka dipinjam.

2.5.Nama Use Case: Pengembalian


Aktor

: Anggota

Deskripsi

: Kegiatan pengembalian pustaka oleh anggota.

Kondisi Awal

: Pustaka peminjaman

Aksi Aktor

Tanggapan Sistem (Petugas)

1. Melakukan pengembalian dengan


membawa

pustaka

yang

akan

dikembalikan serta kartu anggota.


2. Cek

keterlambatan

dan

hitung

pustaka

saat

denda keterlambatan.
3. Cek

kondisi

dikembalikan
keadaan

baik,

(apakah

dalam

rusak,

maupun

dihilangkan oleh anggota)


Alternatif jalur 2 dan 3.
Jika pustaka yang dikembalikan masih dalam keadaan baik maka pengembalian
diproses secara langsung.
4. Hitung dan catat biaya denda dan
ganti rugi.
5. Membayar denda dan ganti rugi.
6. Memproses pengembalian
Kondisi Akhir:
Pengembalian tercatat

3) Diagram Aktivitas
2.1. Aktivitas Pendaftaran

2.2. Aktivitas Perpanjangan

2.3. Aktivitas Koleksi Pustaka

2.4. Aktivitas Peminjaman

2.5. Aktivitas Pengembalian

4) Diagram Class
Menggambarkan struktur sistem dari segi pendefinisian kelas-kelas
yang akan dibuat untuk membangun sistem. Kelas memiliki atribut dan
metode/operasi. Atribut merupakan variabel-variabel yang dimiliki oleh suatu
kelas sedangkan metode/operasi adalah fungsi-fungsi yang dimiliki oleh suatu
kelas.
Diagram kelas mendeskripsikan jenis-jenis objek dalam sistem dan
berbagai hubungan statis yang terdapat di antara mereka. Diagram kelas juga
menunjukkan property dan operasi sebuah kelas dan batasan-batasan yang
terdapat dalam hubungan-hubungan objek tersebut. Berikut merupakan gambar
diagram kelas yang disusun berdasarkan diagram usecase dan scenario yang
telah dirancang sebelumnya.

Berikut merupakan bagan berisi class-class satuan lengkap dengan


atribut dan metodenya. Total terdapat 10 class.

Berikut merupakan diagram class yang telah terelasi serta lengkap


dengan nilai dependensinya.

5) Diagram Objek
Menggambarkan struktur sistem dari segi penamaan objek dan jalannya
objek dalam sistem. Pada diagram objek harus dipaastikan semua kelas yang
sudah didefinisikan pada diagram kelas harus dipakai objeknya, karena jika
tidak, pendefinisian kelas itu tidak dapat dipertanggungjawabkan. Berikut
merupakan diagram objek yang disusun berdasarkan diagram kelas yang telah
dirancang sebelumnya. Berikut merupakan gambar diagramnya.

6) Diagram Sequence
6.1. Pendaftaran

6.2. Perpanjangan

6.3. Pencarian koleksi pustaka

6.4. Peminjaman

6.5. Pengembalian

7) Diagram Komponen
Sistem informasi perpustakaan yang dirancang, diberi nama SIPRUS (SI
Perpustakaan For Us) adalah berupa aplikasi berbasis web yang dibangun
menggunakan bahasa pemrograman PHP, HTML, Javascript, JQuery, Ajax,
CSS yang diintegrasikan dengan framework CodeIgniter (mendukung konsep
MVC) serta framework Bootstrap yang berfungsi mempercantik bagian frontend. Selain itu, aplikasi SIPRUS juga memanfaatkan penggunaan database
MySQL. Berikut adalah gambaran komponen-komponen SIPRUS disajikan
dalam bentuk diagram komponen.

3.

Dokumentasi Source Code (Halaman Login)


Berikut merupakan sekelumit dokumentasi dari source code pembangunan

SIPRUS. Sesuai dengan konsep MVC dan framework CodeIgniter, maka akan saya bagi
menjadi tiga bagian yaitu model, view dan controller. Berikut adalah hierarki dan
fungsinya.
3.1. Model (CI_Model)
Model dalam CodeIgniter dimaksudkan sebagai metode pemodelan
data. Berikut adalah model data yang digunakan.
M_anggota (model data anggota) terdiri dari fungsi:
read_anggota ($limit, $start)
rows_data_anggota ()
rows_pendaftaran_anggota ($tahun)
getanggota ($id)
daftaranggota ($new_data)
catatkekas ($new_data)
ubahanggota ($new_data, $id)
rows_data_pinjam_by_anggota ($new_data)
rows_data_perpanjangan_by_anggota ($new_data)
delete_data ($id)#untuk hapus data kaos
get_datatables ()
count_filtered ()
count_all ()
get_by_id ($id)

perpanjangan ($new_data)

M_auth (model data auth)


cek_user_admin ($data)

M_denda (model data denda)


get_datatables ()
count_filtered ()
count_all ()
get_by_id ($id)
save ($data)
update ($where, $data)
delete_by_id ($id)
catatkekas ($new_data)

M_kas (model data kas)


get_datatables ()
count_filtered ()
count_all ()
get_by_id ($id)
save ($data)
update ($where, $data)
delete_by_id ($id)

M_peminjaman (model data peminjaman)


get_datatables ()
count_filtered ()
count_all ()
get_by_id ($id)
save ($data)
update ($where, $data)
delete_by_id ($id)
simpan ($new_data)

M_pengembalian (model data pengembalian)


get_datatables ()
count_filtered ()
count_all ()
get_by_id ($id)
save ($data)
update ($where, $data)
delete_by_id ($id)
catatdenda ($new_data)

M_petugas (model data petugas)


read_data ($limit, $start)
rows_data_petugas ()
create_data ($new_data)
get_data ($id)
update_data ($new_data, $id)
delete_data ($id)

M_pustaka (model data pustaka)


get_datatables ()
count_filtered ()
count_all ()
get_by_id ($id)
tambahpustaka ($new_data)
read_data_kategori ()
getpustaka ($id)
ubahpustaka ($new_data, $id)

gudangkan ($new_data, $id)

delete_data ($id)#untuk hapus data kaos

rows_data_pinjam_by_buku ($datapus)

3.2. View
Bertanggung jawab terhadap tampilan website. Terdiri dari halaman
yang ditulis dengan berbagai bahasa seperti HTML, Javascript, css, dan
lainnya kemudian dipadukan dengan bahasa PHP.
Folder auth
o login.php
Folder v_dashboard
o Folder v_anggota

Detailanggota.php

Masteranggota.php

Pendaftaran.php

Ubahanggota.php

o Folder v_kas

kas.php

o Folder v_konfigurasisistem

datapetugas.php

konfigurasi.php

o Folder v_peminjaman

peminjamam.php

o Folder v_pengembalian

peminjamam.php

o Folder v_petugas

Detailpetugas.php

Masterpetugas.php

tambahpetugas.php

Ubahpetugas.php

o Folder v_pustaka

Detailpustaka.php

Masterpustaka.php

tambahpustaka.php

Ubahpustaka.php

o atas.php
o template_dashboard.php
o transaksi.php

o welcome.php
template_front.php
welcome_page.php
3.3. Controller (CI_Controller)
Controller berfungsi menjembatani antara view dan model karena
didalamnya terdapat algoritma yang berguna untuk mentransformasikan data
dan logika agar dapat dilihat dan dioperasikan. Berikut adalah daftar
controllernya.
Anggota

(Untuk

pengaturan

data

anggota),

terdiri

dari

fungsi/method:
index ()#fungsi default untuk menampilkan halaman master anggota di
bagian data master
detailanggota ()#fungsi untuk menampilkan detail anggota di bagian
master anggota
pendaftaran ()#fungsi untuk menyimpan data pendaftaran anggota
baru
get_detail_anggota ($id)#fungsi menampilkan data detail anggota
pada jendela modal di halaman transaksi perpanjangan
pendaftaranpilih ()#fungsi pemilihan tipe keanggotan pada halaman
transaksi pendaftaran
ubahanggota ()#fungsi untuk menyimpan data anggota yang diubah
pada halaman ubah anggota
hapusanggota ()#fungsi untuk menghapus data anggota pada
halaman detail anggota
simpanperpanjangan ()#fungsi untuk memproses perpanjangan
anggota pada transaksi perpanjangan anggota

Auth (untuk pengaturan login dan autentifikasi), terdiri dari


fungsi/method:
index ()#fungsi default untuk menampilkan halaman login
login ()#fungsi untuk memproses validasi inputan login
logout ()#fungsi memproses logout petugas dari sistem

Dashboard (untuk pengaturan halaman petugas), terdiri dari


fungsi/method:
index ()#fungsi default yang dipanggil untuk menampilkan halaman
dashboard setelah petugas berhasil login
transaksi ()#fungsi untuk menampilkan halaman transaksi dari menu
sidebar
kas ()#fungsi untuk menampilkan halaman transaksi dari menu sidebar
konfigurasi ()#fungsi untuk menampilkan halaman konfigurasi sistem
dari menu sidebar
menupetugas ()#fungsi untuk menampilkan halaman ganti username
dan password dari menu sidebar
ubahkonfigurasi ()#fungsi untuk memproses pengubahan data
konfigurasi sistem
ubahdatapetugas ()#fungsi untuk memproses pengubahan data
username dan password petugas pada halaman ganti username dan
password
daftar_anggota ()#fungsi untuk menampilkan tabel data anggota di
halaman transaksi peminjaman
daftar_anggota_perpanjangan ()#fungsi untuk menampilkan tabel data
anggota di halaman transaksi perpanjangan
daftar_peminjaman ()#fungsi untuk menampilkan tabel data
peminjaman di halaman transaksi pengembalian
daftar_denda ()#fungsi untuk menampilkan tabel data denda di halaman
transaksi pembayaran denda
daftar_kas ()#fungsi untuk menampilkan tabel data kas di halaman log
kas perpustakaan

Homepage (untuk pengaturan halaman pengunjung), terdiri dari


fungsi/method:
index ()#fungsi untuk menampilkan halaman utama aplikasi bagi
pengunjung
daftar_pustaka_homepage ()#fungsi untuk menampilkan tabel daftar
pustaka pada halaman utama pengunjung

Peminjaman (untuk pengaturan transaksi peminjaman), terdiri dari


fungsi/method:
index ()#fungsi untuk menampilkan halaman transaksi peminjaman
setelah pemilihan anggota di halaman transaksi
simpanbaru ()#fungsi untuk memproses penyimpanan data peminjaman
baru

Pengembalian (untuk pengaturan transaksi pengembalian), terdiri


dari fungsi/method:
ajax_get_by_id ($id)#fungsi untuk menampilkan jendela modal detail
peminjaman pada halaman transaksi pengembalian
simpan_pengembalian ()#fungsi untuk memproses transaksi
pengembalian
get_denda_by_id ($id)#fungsi untuk menampilkan jendela modal
konfirmasi pembayaran denda
simpanpembayaran ()#fungsi untuk memproses transaksi pembayaran
denda

Petugas (untuk pengaturan data petugas), terdiri dari fungsi/method:


index ()#fungsi default untuk menampilkan halaman master petugas di
bagian data master
tambahpetugas ()#fungsi untuk menampilkan halaman tambah petugas
di bagian data master petugas beserta proses penyimpanannya
ubahdata ()#fungsi untuk menampilkan halaman ubah data petugas di
bagian data master petugas beserta proses penyimpanannya
hapuspetugas ()#fungsi untuk memproses penghapusan data petugas
di bagian data master petugas

Pustaka (untuk pengaturan data pustaka), terdiri dari fungsi/method:


index ()#fungsi default untuk menampilkan halaman master pustaka
dari menu sidebar
daftar_pustaka ()#fungsi untuk menampilkan tabel daftar anggota
pada halaman master anggota

bukutersedia ()#fungsi untuk menampilkan tabel daftar anggota pada


halaman transaksi peminjaman
get_detail_pustaka($id)
#fungsi menampilkan data detail pustaka pada jendela modal di
halaman transaksi peminjaman
tambahpustaka ()#fungsi menampilkan halaman penambahan
pustaka baru dan memprosesnya
ubahpustaka ()#fungsi menampilkan halaman pengubahan data
pustaka dan memprosesnya
detailpustaka ()#fungsi menampilkan halaman detail pustaka pada
master pustaka
hapus ()#fungsi memproses penghapusan pustaka pada halaman
master pustaka

4.

Pengujian Black Box


Metode yang digunakan adalah metode equivalence partitioning yang

memanfaatkan domain inputan. Metode ini dipilih karena bertujuan untuk menguji
adanya kesalahan perancangan interface, utamanya dalam penginputan data sehingga
sangatlah berguna agar menghindari kesalahan pemrosesan, seperti kegagalan input data
ke database karena tipe data yang diinputkan tidak sesuai.
Berikut merupakan test case dan hasil pengujian black yang dilakukan terhadap
SIPRUS.
4.1. Pendaftaran

Nama, alamat dan kota merupakan inputan bertipe range.


Nama (8 30 huruf dan dibolehkan memakai spasi)

Valid = (Karina Virgi, Virgi Agustha, lalalalalalalala)

Invalid = (12345678, ---------------, ???????????)

Invalid = (Kar, Rin, Na)

Alamat (1-100 karakter alphanumeric serta tanda titik, koma, dan petik)
Valid

= (Bandung, Juara, lalalalalalalala)

Invalid =
(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
-, ???????????)

Invalid = (\\,{}, //)

--------------

Kota (1-30 karakter huruf)


Valid

= (Jember, Juara, lalalalalalalala)

Invalid =

(++++++++++++++=================,

--------------

-, ???????????)

Invalid = (123456,{}, //)

Untuk inputan pada form di aplikasi web ini, keseluruhannya telah


menggunakan fungsi validasi seperti di atas, sehingga pengujian black boxnya adalah
sama.

4.2. Harga pada ubah Pustaka (kondisi input: harga khusus)

Valid

(1100,2000.0)

Invalid

(aa,bb,cc)

Invalid

(..,//,??)

4.3. Pemilihan save atau batal (kondisi input: boolean)

Valid

(save, batal)

Invalid

(ya, tidak)

4.4. Menu Transaksi (kondisi input: himpunan)

Valid

= (Pendaftaran Anggota, Perpanjangan Anggota,


Pembayaran Denda)

Invalid

= (close, back, history)

Invalid

= (1,2,3)

Anda mungkin juga menyukai