Desain dan implementasi application layer sistem sirkulasi berbasis web studi kasus: Perpustakaan Pusat IPB
DESAIN DAN IMPLEMENTASI APPLICATION LAYER
SISTEM SIRKULASI BERBASIS
WEB
(STUDI KASUS: PERPUSTAKAAN PUSAT IPB)
Oleh :
Samuel Dwi Cahya
G64101049
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
(2)
DESAIN DAN IMPLEMENTASI APPLICATION LAYER
SISTEM SIRKULASI BERBASIS
WEB
(STUDI KASUS: PERPUSTAKAAN PUSAT IPB)
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Oleh :
Samuel Dwi Cahya
G64101049
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
(3)
ABSTRAK
SAMUEL DWI CAHYA. Desain dan Implementasi
Application Layer
Sistem Sirkulasi Berbasis
Web
(Studi Kasus: Perpustakaan Pusat IPB). Dibimbing oleh KUDANG BORO SEMINAR dan
HARI AGUNG ADRIANTO.
Pencatatan transaksi merupakan salah satu hal yang penting dalam sebuah perpustakaan. Proses
pencatatan dapat dilakukan dengan berbagai cara, salah satunya dengan menggunakan perangkat
lunak yang memudahkan pencatatan. Penggunaan sistem manajemen basis data yang tidak sesuai
dalam pencatatan transaksi dapat mengakibatkan kurangnya keakuratan dari data. Untuk itu perlu
dikembangkan perangkat lunak yang menggunakan sistem manajemen basis data yang tepat.
Tujuan dari penelitian ini adalah untuk mengembangkan lapisan aplikasi sistem sirkulasi
Perpustakaan Pusat Institut Pertanian Bogor (IPB) dengan perbaikan pada sistem manajemen basis
data. Sistem dibangun dengan menerapkan arsitektur
three
tier
menggunakan konsep
web service.
Penelitian ini menghasilkan lapisan aplikasi dari dua subsistem utama sistem sirkulasi.
Subsistem pertama yaitu sistem sirkulasi perpustakaan yang ditujukan bagi pegawai perpustakaan
dan dijalankan dalam lingkungan jaringan perpustakaan. Sistem ini memiliki fungsi-fungsi
sirkulasi perpustakaan seperti fungsi peminjaman, pengembalian, perpanjangan, pemesanan, dan
penghitungan denda. Di samping fungsi-fungsi tersebut diperlukan juga fungsi-fungsi tambahan
seperti untuk manajemen anggota, manajemen operator, informasi status suatu koleksi, manajemen
konfigurasi, dan manajemen hari libur. Subsistem kedua yaitu sistem perpanjangan pinjaman dan
pembatalan pesanan secara
online
yang ditujukan bagi anggota perpustakaan yang terdaftar.
(4)
Judul : Desain dan Implementasi
Application Layer
Sistem Sirkulasi
Berbasis
Web
(Studi Kasus: Perpustakaan Pusat IPB)
Nama : Samuel Dwi Cahya
NRP
: G64101049
Menyetujui :
Pembimbing I,
Pembimbing II,
Dr. Ir. Kudang Boro Seminar, M.Sc
Hari Agung Adrianto, S.Kom
NIP 131475575
NIP 132311918
Mengetahui :
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Dr. Ir. Yonny Koesmaryono, MS
NIP 131473999
Tanggal Lulus :
(5)
RIWAYAT HIDUP
Penulis lahir di Jakarta pada tanggal 21 Juli 1983, anak dari pasangan Decky Wibowo dan
Juliani. Penulis merupakan anak kedua dari dua bersaudara.
Tahun 2001 penulis lulus dari SMU Negeri 14 Jakarta dan pada tahun yang sama melanjutkan
kuliah ke Institut Pertanian Bogor (IPB), Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu
Pengetahuan Alam melalui jalur Ujian Masuk Perguruan Tingi Negeri (UMPTN).
Di akhir perkuliahan, penulis berkesempatan mengikuti Praktik Lapang (PL) selama dua bulan
(26 Januari-25 Maret 2005) di Pusat Data dan Informasi Departemen Pertanian, Jakarta. Pada
bulan Oktober 2005 hingga Januari 2006, penulis bekerja kembali di Departemen Pertanian,
Jakarta sebagai pegawai magang.
(6)
PRAKATA
Puji syukur kepada Tuhan Yesus Kristus karena atas karunia-Nya skripsi ini berhasil
diselesaikan. Skripsi ini mengambil judul Desain dan Implementasi
Application Layer
Sistem
Sirkulasi Berbasis
Web
(Studi Kasus: Perpustakaan Pusat IPB).
Penulis menyampaikan terima kasih kepada semua pihak yang telah membantu dalam
penulisan karya ilmiah ini khususnya kepada Bapak Dr. Ir. Kudang Boro Seminar, M.Sc dan
Bapak Hari Agung, S.Kom yang telah membimbing dengan penuh ketekunan dan kesabaran
hingga selesainya penulisan karya ilmiah ini. Selanjutnya, penulis juga ingin mengucapkan terima
kasih kepada Bapak Drs. B. Mustafa, M.Lib atas kesediaannya menjadi penguji sidang.
Untuk Papi dan Mami, Rosalyn, Tante Hwie Tjoe serta Yosa di rumah yang senantiasa
memahami kesibukan penulis serta kasih sayang, perhatian, dukungannya selama ini dan menjadi
pendengar yang baik atas semua cerita dan keluh kesah selama penyusunan skripsi.
Rasa terima kasih yang sebesar-besarnya juga penulis ucapan kepada Mas Jiwo dan Mas Bayu
yang telah sangat membantu dalam penyusunan program dan tulisan serta kepada Ratna dan
Henny rekan se-tim yang telah berbagi ilmu dan memberikan dorongan dalam pengerjaan skripsi
ini. Tak lupa penulis juga ucapkan terima kasih kepada Rossi, Priyo, Bagus, Holan, Faris,
Khaman, dan teman-teman seperjuangan Ilkom 38 untuk pengalaman dan kenangan yang tak
terlupakan, dan keluarga besar Batu Karang untuk support dan doanya. Serta semua pihak yang
tidak dapat disebutkan satu per satu. God bless you all.
Semoga karya ilmiah ini dapat bermanfaat. Amin.
Bogor, Juli 2006
(7)
DAFTAR ISI
Halaman
DAFTAR GAMBAR... vi
DAFTAR LAMPIRAN ... vii
PENDAHULUAN
Latar Belakang... 1
Tujuan Penelitian ... 1
Ruang Lingkup Penelitian... 1
Manfaat Penelitian ... 1
TINJAUAN PUSTAKA
PHP ... 1
Arsitektur
Three Tier
... 2
Data Services Layer
... 2
Business Logic Layer
... 2
Presentation
Layer
... 2
Web
Service
... 2
XML ... 3
SOAP ... 3
NuSOAP ... 4
WSDL ... 4
METODE PENELITIAN ... 4
HASIL DAN PEMBAHASAN
Komunikasi Pengguna ... 5
Pemodelan... 6
Konstruksi... 8
Spesifikasi Implementasi ... 9
Pengujian ... 9
Penggunaan... 10
Gambaran Umum Sistem ... 10
Kelebihan Sistem ... 10
Keterbatasan Sistem... 10
KESIMPULAN DAN SARAN
Kesimpulan ... 10
Saran ... 11
DAFTAR PUSTAKA... 11
(8)
DAFTAR GAMBAR
Halaman
1
Arsitektur
three tier
... 2
2
Ilustrasi pesan SOAP... 3
3
Proses dalam NuSOAP... 4
4
Tahapan metode rekayasa web ... 4
5
Hirarki pengguna... 6
6
Arsitektur SIPISIS... 7
7
Lapisan arsitektur sistem ... 7
(9)
DAFTAR LAMPIRAN
Halaman
1
Keterangan
service
... 13
2
Deskripsi
error
... 16
3
Deskripsi basis data ... 18
4
Data Flow Diagram
, tingkat 1 ... 20
5
Data Flow Diagram
Sistem Sirkulasi, tingkat 2 untuk Application Layer (2)... 20
6
Data Flow Diagram
Sistem
online
perpanjangan pinjaman dan pembatalan pesanan,
tingkat 2 untuk Application Layer (2) ... 21
7
Data Flow Diagram
Sistem Sirkulasi, tingkat 3 untuk Transaksi (2.1) ... 22
8
Data Flow Diagram
Sistem Sirkulasi, tingkat 3 untuk Manage
User
(2.2) ... 23
9
Data Flow Diagram
Sistem Sirkulasi, tingkat 3 untuk Manage Operator (2.3)... 24
10
Data Flow Diagram
Sistem Sirkulasi, tingkat 3 untuk Hari Libur (2.4) ... 25
11 Gambaran implementasi pada server... 26
12 Use case sistem sirkulasi perpustakaan ... 27
13 Use case sistem
online
perpanjangan pinjaman dan pembatalan pesanan... 27
14 WSDL Sistem sirkulasi perpustakaan ... 28
15 Contoh output
service
user info... 43
(10)
1
PENDAHULUAN
Latar Belakang
Perpustakaan merupakan hal yang wajib
bagi sebuah institusi pendidikan. Di tengah
harga buku yang mahal, perpustakaan
memberikan solusi yang tepat bagi para
anggotanya. Dalam setiap hari sebuah
perpustakaan melakukan banyak transaksi
yang berkaitan dengan peminjaman koleksi.
Sebagai contoh pada Perpustakaan Pusat
Institut Pertanian Bogor (IPB) terdapat 37.412
transaksi dalam periode Januari 2003 sampai
Maret 2004. Dengan adanya kemudahan
dalam proses pencatatan transaksi membuat
perpustakaan
dapat
meningkatkan
pelayanannya.
Proses pencatatan transaksi harian di
Perpustakaan
Pusat
IPB
selama
ini
menggunakan SIPISIS, dimana aplikasi pada
client
dapat secara langsung mengakses basis
data yang berada di
server
. Ketika terjadi
perubahan pada aplikasi di
client
maka
seluruh
client
harus diinstall dengan aplikasi
yang baru. Basis data yang digunakan dalam
proses transaksi ini yaitu basis data CDS/ISIS
yang tidak sepenuhnya mendukung proses
transaksi
sehingga
sering
mengalami
kerusakan. Hal ini mengakibatkan proses
pencatatan
transaksi
tidak
terjamin
keakuratannya.
Alasan-alasan
tersebut
merupakan
alasan
utama
dilakukannya
penelitian ini.
Dalam penelitian ini sistem dibangun
menggunakan arsitektur
three
tier
, dimana
aplikasi dibagi ke dalam lapisan antarmuka,
aplikasi, dan basis data. Pada arsitektur ini
seluruh aplikasi dan basis data terdapat di
server
sehingga perubahan yang terjadi cukup
dilakukan pada
server
. Namun hal ini belum
cukup jika sistem ingin dikembangkan lebih
lanjut dengan aplikasi yang lebih kompleks.
Aplikasi baru yang dikembangkan harus
dibangun dari awal walaupun aplikasi yang
sama sudah tersedia pada situs lain.
Perkembangan teknologi memungkinkan
pengembang sistem menyatukan aplikasi yang
dibuat oleh pengembang sistem lain ke dalam
sistem yang dibuatnya. Hal ini dimungkinkan
dengan adanya
web service
. Pengembang
sistem tidak harus dari awal mengembangkan
sistemnya melainkan hanya memakai
service
yang sudah disediakan pengembang lain.
Web
service
memungkinkan penyatuan antara
sistem sirkulasi dengan sistem publikasi
katalog, dimana sistem sirkulasi mengambil
informasi dari buku atau koleksi lain dari
sistem publikasi katalog.
Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk
mengembangkan
sistem
sirkulasi
Perpustakaan Pusat IPB dengan perbaikan
pada sistem manajemen basis data. Sistem
dibangun dengan menerapkan arsitektur
three
tier
menggunakan konsep
web service
.
Tujuan yang lebih luas yaitu agar sistem
dapat disatukan dengan sistem sirkulasi
maupun sistem publikasi katalog perpustakaan
fakultas maupun jurusan yang ada di
lingkungan IPB.
Ruang Lingkup Penelitian
Sistem yang dibangun dibatasi pada ruang
lingkup Perpustakaan Pusat IPB maupun
perpustakaan fakultas yang terhubung dengan
jaringan Perpustakaan Pusat IPB.
Sistem
yang
dikembangkan
dalam
penelitian ini terbatas pada lapisan
aplikasi
sistem
sirkulasi
perpustakaan.
Lapisan
antarmuka
sistem
dikembangkan
oleh
penelitian Widyaningsih (2006). Basis data
yang digunakan adalah basis data relasional.
Manfaat Penelitian
Aplikasi yang dihasilkan pada penelitian
ini diharapkan dapat membantu proses
pencatatan
sirkulasi
peminjaman
pada
Perpustakaan Pusat IPB dan meminimalkan
kerusakan pada basis data. Aplikasi yang
berbasis
web
service
diharapkan dapat mudah
diintegrasikan dengan aplikasi lain sehingga
mempermudah dalam proses pengembangan
aplikasi lain.
TINJAUAN PUSTAKA
PHP
PHP (PHP
Hypertext
Preprossesor
) adalah
sebuah bahasa pemrograman
server
side
berlisensi
gratis
yang
pada
mulanya
dikembangkan oleh Rasmus Lerdorf pada
tahun 1995 untuk membuat situs pribadinya
(Prasetyo 2005).
PHP digunakan untuk mempuat
aplikasi-aplikasi
berbasis
web
secara
dinamis.
Kekuatan utama dari PHP adalah konektivitas
basis data dengan
web.
Beberapa alasan digunakannya PHP dalam
penelitian ini, antara lain karena PHP dan
(11)
2
bahasa pemrograman berbasis
web
lainnya
dapat berjalan pada
platform
yang
berbeda-beda, PHP bersifat
open
source
dan
freeware
sehingga dukungannya bersifat luas dan terus
dikembangkan oleh banyak pihak, selain itu
PHP mudah dalam penggunaannya.
Arsitektur
Three Tier
Three tier
adalah suatu konsep dimana
sebuah aplikasi dibagi ke dalam tiga lapisan
atau lapisan, lapisan paling atas adalah
data
services
, lapisan yang kedua adalah
bussiness
services
dan yang paling bawah atau yang
ketiga adalah
presentation
services
yang
berhubungan langsung dengan pengguna.
Struktur fisik dari arsitektur
three tier
dapat
dilihat pada Gambar 1.
Tujuan dari konsep
three tier
adalah untuk
mempermudah
dalam
proses
changing
requirement
(perubahan kebutuhan) dan
menyembunyikan
kerumitan
proses
terdistribusi dari pengguna. Arsitekur
three
tier
dapat meningkatkan kemampuan sistem,
fleksibilitas,
kemudahan
perawatan,
penggunaan
kembali,
dan
kemudahan
pengembangan (Comella
et al.
2004).
Gambar 1 Arsitektur
three tier
(MSDN
Library 2005)
Data Services Layer
Data
services
layer
terdiri
atas
penyimpanan data, baik terstruktur maupun
tidak
terstruktur,
yang
mengatur
dan
menyediakan akses ke data. Lapisan ini yang
menjamin konsistensi data dengan metode
seperti
data locking
. Koneksi antar lapisan
dapat berubah secara dinamis tergantung pada
permintaan pengguna akan data dan
service
.
Pada penelitian ini lapisan
data services
dikembangkan menjadi lapisan basis data.
Business Logic Layer
Business logic
meliputi aturan-aturan
proses jalannya suatu aplikasi. Lapisan ini
menghubungkan pengguna yang terdapat pada
lapisan antarmuka dengan data yang terdapat
pada lapisan data. Kode program pada lapisan
ini harus dibangun dengan keamanan yang
baik sebab input dari pengguna tidak dikontrol
oleh lapisan ini.
Lapisan ini meningkatkan kemampuan
sistem, fleksibilitas, kemudahan perawatan,
penggunaan kembali, dan pengembangan
karena adanya pemusatan proses
logic
.
Pemusatan proses
logic
membuat perubahan
lebih mudah untuk dilakukan. Pada arsitektur
yang lain jika terjadi perubahan dalam sebuah
fungsi atau
service
maka setiap aplikasi lain
harus diubah.
Sebagai tambahan, lapisan ini yang
mengatur
transaksi-transaksi
dan
asynchronous
queuing
untuk
menjamin
penyelesaian dari setiap transaksi. Lapisan ini
dapat dibagi ke dalam beberapa unit dengan
fungsi yang berbeda, pada kasus ini
arsiteksturnya sering disebut
multi layer
.
Aturan
business
logic
perpustakaan
diterjemahkan ke dalam kode untuk lapisan
aplikasi
Presentation Layer
Lapisan
presentasi
meliputi
seluruh
antarmuka sistem. Lapisan ini tidak hanya
menyediakan antarmuka kepada pengguna
untuk
berinteraksi
dengan
aplikasi,
memasukkan
data,
ataupun
hanya
menampilkan hasil, tetapi lapisan ini juga
memanipulasi dan memformat data yang
diterima
client
dari
server
. Pada aplikasi
web
,
lapisan ini dijalankan pada
web
browser.
Lapisan presentasi diterjemahkan menjadi
antarmuka sistem.
Web Service
Web
service
merupakan sebuah standar
komunikasi di antara berbagai aplikasi yang
berbeda-beda.
Web
service
dapat berjalan
pada berbagai
platform
maupun
framework
.
Menurut konsorsium W3C, definisi
web
service
adalah:
a software system designed
to support interoperable machine- to-machine
interaction over network. It has an interface
described in a machine-processable format
(Specially WSDL). Other system interact with
the Web service in a manner prescribed by its
description using SOAP messages, typically
(12)
3
conveyed using HTTP with an XML
serialization in conjunction with other
web-related standards.
Web service
adalah perangkat lunak
aplikasi dimana terjadi pertukaran data antara
client
dan
server
menggunakan XML sebagai
standar untuk mengirim
request
dan data.
C
lient
dan
server
, keduanya dapat berupa
web
server
atau
alat
elekronik
lainnya.
Pengoperasian
web service
sebenarnya sama
seperti ketika mengirim
form
HTML dan
menerima halaman
web
sebagai responnya.
Perbedaannya
hanya
web
service
menggunakan XML bukan HTML (Fuecks
2002).
Web service
umumnya menggunakan
HTTP sebagai protokol pengiriman pesannya
sehingga dapat melewati
firewall
sama seperti
halaman
web
.
Keuntungan menggunakan
web service
di
antaranya yaitu,
1.
Dapat digunakan pada berbagai
platform
dan bahasa pemrograman yang berbeda
karena
menggunakan
XML
sebagai
bahasanya.
2.
Menggunakan HTTP sebagai protokolnya
sehingga dapat digunakan pada
server
ataupun sistem operasi yang berbeda.
3.
Pada sisi
client
tidak memikirkan dari
mana data berasal. Yang diperlukan pada
client
hanyalah metode dan properti yang
diperlukan.
4.
Aplikasi dapat dijalankan dimana saja
selama terhubung ke jaringan
internet
atau
intranet
.
5.
Basis
data
terpisah
menjadi
satu
komponen tersendiri sehingga pada sisi
client
tidak terdapat SQL.
6.
Web
service
dapat mengatasi kendala
sulitnya integrasi antar aplikasi.
Kerugian mengunakan
web service:
1. Terdapat
overhead
dalam transfer data
yang disebabkan penggunaan XML untuk
pengkodean data, yang tidak seefisien
penggunaan data biner.
2. Kurang fleksibel. Karena penggunaan
protokol
HTTP yang bersifat
stateless
,
layanan
web
service
umumnya sederhana
dan tidak membutuhkan koneksi persisten.
XML
XML atau
Extensible Markup Language
merupakan suatu metode untuk menyimpan
data terstruktur dalam suatu file teks. Tujuan
dari pengembangan XML adalah untuk
menghindari kekurangan yang umum ditemui
dalam
pengembangan
aplikasi,
seperti
kurangnya ektensibilitas, serta ketergantungan
pada
platform
tertentu (Prasetyo 2005).
XML
menawarkan
fleksibilitas,
mempercepat proses bisnis, mengurangi
waktu pengembangan, dan meningkatkan
efisiensi.
SOAP
Simple Object Access Protocol
atau SOAP
adalah protokol untuk pertukaran informasi
dengan desentralisasi dan terdistribusi. SOAP
menyediakan jalan untuk berkomunikasi antar
aplikasi meskipun berbeda sistem operasi,
teknologi atau bahasa pemrogramannya.
Dalam komunikasinya, SOAP menggunakan
protokol HTTP sehingga didukung oleh
semua
browser
dan
server
. Sedangkan pesan
SOAP yang dikirim menggunakan XML
(Siswoutomo 2004).
Alasan
digunakannya
SOAP
dalam
penelitian ini adalah karena SOAP dirancang
untuk menangani masalah pengiriman pesan
yang lebih kompleks dibanding protokol
lainnya, selain itu SOAP juga didukung oleh
banyak bahasa pemrograman selain PHP.
Ilustrasi sebuah pesan SOAP dapat dilihat
pada Gambar 2.
Gambar 2 Ilustrasi pesan SOAP
(Siswoutomo
2004)
HTTP
Header
SOAP
Envelope
SOAP
Header
SOAP
Body
Body
sub-
element itinerary
Header Block passenger
Header Block reservation
(13)
4
Pesan SOAP adalah dokumen XML yang
berisi elemen-elemen berikut:
1.
Envelope element
yang
mengidentifikasi-kan dokumen XML sebagai sebuah pesan
SOAP. Elemen ini bersifat wajib.
2.
Elemen
header
yang berisisi informasi
header
. Elemen ini bersifat opsional.
3.
Elemen
body
yang berisi panggilan dan
merespon informasi. Elemen ini wajib.
4.
Fault element
yang berisi pesan kesalahan
yang terjadi pada waktu proses. Elemen ini
opsional (Siswoutomo 2004).
Operasi dalam SOAP dilakukan dengan
menyampaikan nama metode atau operasi
yang ingin digunakan ke call()
method
. Jika
service
menyediakan WSDL (
Web Service
Describing Language
) maka kelas soapclient
akan mengambil URL dari WSDL tersebut
sebagai
parameter
konstruktornya,
dan
menggunakan kelas WSDL untuk melakukan
parsing file WSDL dan mengekstrak data.
Jika
service
tidak menyediakan WSDL
maka yang diambil untuk parameter dari
konstruktornya adalah URL dari
service
bukan URL dari WSDL. Operasi yang terjadi
masih menggunakan call()
method
dari
soapclient, tetapi detail yang disediakan
WSDL harus digunakan sebagai parameter
(Ayala
et al
. 2002).
NuSOAP
NuSOAP merupakan salah satu alat yang
tersedia untuk pemrogram PHP yang ingin
bekerja dengan layanan SOAP. NuSOAP
terdiri atas kelas-kelas PHP yang membuat
pengguna dapat mengirim dan menerima
SOAP
message
melalui protokol HTTP.
Keunggulan
dari
NuSOAP
adalah
kesederhanaannya
dan
kecepatannya.
Kelebihan lainnya yaitu NuSOAP ditulis dari
kode PHP murni sehingga semua pengembang
sistem yang menggunakan PHP, tidak
tergantung pada
web server
atau keterbatasan
akses, dapat menggunakan NuSOAP.
NuSOAP dikembangkan oleh Dietrich
Ayala. NuSOAP pertama kali dikembangkan
untuk proyek bernama SOAPx4, kemudian ia
disewa oleh perusahaan bernama NuSphere
untuk pengembangan lebih lanjut sehingga
SOAPx4 berubah nama menjadi NuSOAP.
Dengan NuSOAP pengembang tidak lagi
memikirkan bagaimana pesan XML dibentuk,
dikirim dan diterima semua dilakukan oleh
NuSOAP (Siswoutomo 2004). Proses yang
terjadi dalam NuSOAP dapat dilihat pada
Gambar 3.
Gambar 3 Proses dalam NuSOAP (Ayala
et
al
. 2002)
WSDL
WSDL
(
Web
Service
Describing
Language
) adalah format XML untuk
menjelaskan
web service
. WSDL merupakan
dokumen yang ditulis dalam bahasa XML
yang bersifat
machine readable
bukan
human
readable
. Oleh karena itu, dokumen tersebut
dapat
dimanfaatkan
untuk
melakukan
otomatisasi proses pengintegrasian layanan ke
aplikasi
requestor
(Siswoutomo 2004).
METODE PENELITIAN
Metode
pengembangan
sistem
yang
digunakan dalam penelitian ini adalah metode
rekayasa web (
web engineering
)
seperti yang
dikemukakan oleh Pressman (2005). Gambar
4 menjelaskan proses yang terdapat pada
metode rekayasa web.
Gambar 4 Tahapan metode rekayasa web
(Pressman 2005)
Tahapan dari metode rekayasa web adalah
sebagai berikut :
1.
Komunikasi
pengguna
(
Customer
communication
)
Dalam
rekayasa
web,
komunikasi
pengguna dibagi menjadi dua tugas utama
yaitu analisis bisnis dan formulasi. Analisis
(14)
5
bisnis menentukan konteks dari aplikasi yang
dibuat, prediksi kemungkinan terjadinya
perubahan dalam penggunaan atau perubahan
dalam kebutuhan sistem, dan penyatuan antara
aplikasi yang akan dibuat dengan aplikasi lain
yang terkait, basis data dan fungsi-fungsi
lainnya.
Formulasi adalah pengumpulan kebutuhan
pengembangan sistem. Tujuannya adalah
untuk menentukan masalah yang harus
ditangani
oleh
aplikasi,
batasan-batasan
pengembangan sistem, serta kemungkinan
terjadinya perubahan.
Hal yang harus diperhatikan pada saat
formulasi adalah:
Tujuan utama (kebutuhan bisnis) dari
pembuatan aplikasi.
Tujuan yang harus dipenuhi dari aplikasi.
Siapa yang akan menggunakan aplikasi.
2.
Perencanaan
Yang dilakukan selama tahap perencanaan
adalah mendefinisikan tugas yang akan
dikerjakan, jadwal pengembangan sistem
(
project duration
), menghitung estimasi biaya
secara keseluruhan yang dibutuhkan dalam
mengembangkan
aplikasi
web
,
dan
mengevaluasi resiko yang mungkin muncul
pada saat mengembangkan aplikasi
web
.
Pada penelitian ini tahapan perencanaan
dilakukan
bersamaan
dengan
tahap
komunikasi pengguna. Dalam penelitian tidak
ada estimasi biaya yang dilakukan.
3.
Pemodelan
Tahap pemodelan ini terdiri atas dua
bagian, yaitu :
Analisis
Mengadakan survei dan observasi untuk
mengumpulkan kebutuhan sistem. Pada tahap
ini juga dilakukan penelitian terhadap sistem
yang
telah
dipakai
sebelumnya
untuk
mengetahui fasilitas yang sudah tersedia dan
fasiltas mana yang harus ditambah.
Perancangan
Fase perancangan menentukan spesifikasi
tentang bagaimana sistem dapat memenuhi
kebutuhan informasi. Perancangan mencakup
aktifitas perencanaan yang menghasilkan
spesifikasi sistem yang dapat menjawab
permasalahan pada sistem analisis. Spesifikasi
ini digunakan sebagai dasar pengembangan
perangkat lunak, akusisi perangkat keras,
pengujian sistem dan aktifitas lainnya pada
fase implementasi. Fase ini mencakup
perencanaan data dan proses.
4.
Konstruksi
Fase
konstruksi
atau
implementasi
mencakup akusisi perangkat keras dan lunak,
pengembangan perangkat lunak, pengujian
program dan prosedur.
5.
Penggunaan
Pada tahap ini dilakukan evaluasi oleh
pengguna sistem. Sistem akan kembali
dimodifikasi sesuai dengan hasil dari evaluasi
tersebut.
HASIL DAN PEMBAHASAN
Komunikasi Pengguna
Proses pencatatan transaksi perpustakaan
dilakukan setiap hari. Oleh karena itu
dibutuhkan sistem yang dapat mempermudah
proses pencatatan tersebut. Dengan kemajuan
teknologi internet dan jaringan maka proses
pencatatan transaksi perpanjangan pinjaman
dan pembatalan pesan secara
online
dapat
dilakukan dimana saja dan kapan saja.
Namun, untuk transaksi sistem perpustakaan
hanya dapat dilakukan di dalam lingkungan
perpustakan karena hak akses terbatas pada
pegawai perpustakaan dan bentuk fisik dari
koleksi yang harus disentuh.
Dalam
pengembangan
aplikasi
ini,
komunikasi pengguna dilakukan dengan
wawancara
dengan
pengelola
sistem
perpustakaan ditambah dengan pengembangan
dari aplikasi yang sudah ada.
Dari wawancara dengan pengelola sistem
perpustakaan diperoleh keterangan tentang
sistem yang akan dibangun. Sistem yang akan
dibangun memiliki dua subsistem. Subsistem
pertama yaitu sistem sirkulasi perpustakaan
yang ditujukan bagi pegawai perpustakaan
dan dijalankan dalam lingkungan jaringan
perpustakaan. Sistem ini memiliki
fungsi-fungsi sirkulasi perpustakaan, sebagai berikut:
fungsi
peminjaman,
pengembalian,
perpanjangan, pemesanan, dan penghitungan
denda. Di samping fungsi-fungsi tersebut
diperlukan juga fungsi-fungsi
tambahan
seperti untuk manajemen anggota, operator,
dan hari libur. Subsistem kedua yaitu sistem
perpanjangan
pinjaman
dan
pembatalan
pesanan secara
online
yang ditujukan bagi
anggota perpustakaan yang terdaftar.
(15)
6
Sistem
dibangun
menggunakan
web
service
dengan tujuan untuk mempermudah
penyatuan dengan aplikasi lain yang terkait
seperti
sistem
katalog
dan
dokumen
elektronik. Konsep
three
tier
memungkinkan
pengembangan dilakukan secara terpisah
dalam setiap lapisannya. Selain itu antarmuka
dari sistem dapat dikembangkan oleh siapa
saja yang ingin memanfaatkan sistem ini.
Pemodelan
a. Analisis
1. Analisis pengguna sistem
Lapisan aplikasi yang dibangun tidak
dapat langsung diakses oleh pengguna,
melainkan harus melalui lapisan antarmuka.
Pengguna dari sistem sirkulasi perpustakaan
merupakan operator yang bertugas pada
perpustakaan
dan
anggota
aktif
dari
perpustakaan. Hirarki dari pengguna sistem
dapat dilihat pada Gambar 5.
Semua operator memiliki hak yang sama.
Pembagian hak terhadap operator dapat
dilakukan pada lapisan antarmuka, dimana
antarmuka dapat dibedakan untuk setiap
operator.
Gambar 5 Hirarki pengguna
Anggota perpustakaan disebut sebagai
user
dalam sistem.
User
hanya memiliki akses
untuk melihat pinjaman dan pesanan yang
dimiliki secara
online
. Transaksi yang dapat
dilakukan
user
terbatas pada penggantian
password
,
perpanjangan
pinjaman
dan
pembatalan pesanan secara
online
.
2.
Analisis kebutuhan pengguna
Kebutuhan pengguna antara lain:
-
Membutuhkan
sistem
sirkulasi
yang
mudah digunakan.
-
Membutuhkan
sistem
sirkulasi
yang
handal.
-
Membutuhkan sistem yang mudah untuk
dikembangkan dan dapat disatukan dengan
aplikasi lain.
-
Membutuhkan sistem yang mudah dalam
pemeliharaan data.
3. Analisis isi
Sistem harus memiliki beberapa fasilitas di
antaranya yaitu:
-
Sistem transaksi
Bagian ini merupakan inti dari sistem
sirkulasi yang mengatur segala jenis
transaksi yang ada. Semua proses transaksi
dilakukan oleh objek
user
sedangkan
operator bertugas unuk mencatat transaksi
-
Manajemen
user
Bagian ini yang mengatur
user
atau
anggota perpustakaan. Hak akses ada pada
operator, sedangkan
user
hanya berhak
untuk mengganti
password
untuk masuk
ke dalam sistem perpanjangan pinjaman
dan pembatalan pesan secara
online
.
-
Manajemen operator
Bagian ini yang mengatur operator atau
pegawai perpustakaan yang menggunakan
sistem sirkulasi. Hak akses ada pada
operator.
Operator
tidak
dapat
menciptakan maupun menghapus dirinya
sendiri, semua harus dilakukan oleh
operator lain. Hal ini bertujuan untuk
mempermudah
proses
penelusuran
transaksi.
- Manajemen konfigurasi
Manajemen konfigurasi terdiri atas
penambahan maupun pengurangan
jenis-jenis pinjaman dan kategori
user
.
- Info koleksi
Bagian ini berfungsi untuk melihat
status suatu koleksi apakah sedang
dipinjam atau apakah sedang dipesan.
Keluaran dari bagian ini adalah informasi
dari peminjam atau pemesan (jika ada).
-
Manajemen hari libur
Bagian ini mengatur tentang hari libur
yang ada di perpustakaan. Hak akses
sepenuhnya diatur oleh operator
Hari libur dimasukkan ke dalam sistem
karena dibutuhkan dalam penghitungan
keterlambatan dan denda.
(16)
7
b. Perancangan
1. Perancangan arsitektur
Sistem
dikembangkan
menggunakan
arsitektur
three tier
yang terdiri atas tiga
lapisan yaitu lapisan data, lapisan aplikasi,
lapisan antarmuka. Arsitektur
three tier
memungkinkan pemisahan pengembangan
antara data, antarmuka dan logika aplikasi.
Penelitian ini hanya mengembangkan
business
logic
atau logika aplikasi dari keseluruhan
sistem perpustakaan ke dalam lapisan aplikasi.
Pada SIPISIS, aplikasi terletak pada
komputer
client
sedangkan basis data terdapat
di
server
. Jika terjadi perubahan pada aplikasi
di
client
maka seluruh
client
harus di install
dengan
aplikasi
baru.
Hal
ini
dapat
merepotkan jika memiliki jumlah
client
yang
banyak. SIPSIS juga dapat diletakkan pada
komputer
server
. Namun, akses terhadap
sistem menjadi lambat. Arsitektur SIPISIS
dapat dilihat pada Gambar 6.
Gambar 6 Arsitektur SIPISIS
Gambar 7 Lapisan arsitektur sistem
Pada penelitian ini aplikasi maupun basis
data terletak pada server. Pemanggilan
aplikasi dilakukan melalui
web browser
.
Perubahan
pada
lapisan aplikasi
tidak
mempengaruhi
antarmuka
dari
sistem.
Arsitektur sistem diadaptasi dari penelitian
Sujiwo (2005). Rancangan arsitektur dapat
dilihat pada Gambar 7
2. Perancangan isi
Sistem sirkulasi dibagi ke dalam enam
fungsi utama seperti yang telah dijelaskan
pada bagian analisis isi. Masing-masing
fungsi tersebut memiliki beberapa
service
yang dapat dilihat pada Tabel 1. Fungsi-fungsi
tersebut tidak berdiri sendiri, masing-masing
fungsi
saling
memiliki
keterkaitan.
Keterangan
service
beserta masukan dan
keluarannya secara lengkap dapat dilihat pada
Lampiran 1.
Setiap
service
memiliki masukan yang
berbeda dan tipe data masukan dari antarmuka
harus sesuai dengan tipe data yang diterima
service
. Ketidaksesuaian dapat mengakibatkan
kegagalan dalam eksekusi
service
. Keluaran
dari
service
dapat berupa
array
maupun kode
error
. Lampiran 2 menjelaskan deskripsi dari
kode
error
tersebut.
Tabel 1 Daftar
service
berdasarkan fungsinya
Fungsi
Service
Transaksi
Peminjaman, pengambilan
pesanan, pengembalian,
perpanjangan, pemesanan,
pembatalan pesanan,
perpanjangan oleh
user
,
pembatalan pesan oleh
user
,
dan pembayaran denda
Manajemen
user
Cek
user
,
user
info, tambah
user
, ganti
password
oleh
user
,
update
user
, hapus user, bebas
pustaka, lihat pinjaman, lihat
pesanan, cek pinjaman
maksimum, dan cek
keterlambatan.
Manajemen
operator
Operator info, tambah operator,
update operator, hapus operator
Manajemen
hari libur
Tambah hari libur, hapus hari
libur, lihat hari libur, tambah
hari libur tertentu
Manajemen
konfigurasi
Lihat kategori
user
, tambah
kategori
user
, hapus kategori
user
, lihat jenis pinjaman,
tambah jenis pinjaman, hapus
jenis pinjaman.
Info koleksi Lihat status pinjaman dari
koleksi, lihat status pesanan
dari koleksi.
(17)
8
3. Perancangan basis data
Sistem manajemen basis data yang dipakai
dalam SIPISIS adalah CDS/ISIS. Alasan
dipilihnya CDS/ISIS karena kemampuannya
untuk menyimpan basis data bibliografis yang
sangat baik. Namun, ketika CDS/ISIS
digunakan juga dalam proses pencatatan
transaksi timbul berbagai masalah baru seperti
kesalahan pencatatan transaksi dan kesulitan
analisis data karena data yang tidak konsisten.
Sistem manajemen basis data (DBMS)
yang digunakan pada penelitian ini yaitu
PostgreSQL. Alasan dipilihnya PostgreSQL
menggantikan
CDS/ISIS
yaitu
karena
PostgreSQL mendukung proses transaksi, di
mana keberhasilan dari transaksi tersebut
terjamin. Jika terjadi kegagalan di tengah
transaksi maka transaksi tersebut tidak akan
dicatat dalam basis data.
Dalam penelitian ini digunakan
database
abstraction library
ADOdb (
Active Data
Objects Data Base
) untuk akses ke basis data.
Alasan penggunaan ADOdb yaitu karena
dukungannya terhadap banyak DBMS di
antaranya yaitu MySQL, Oracle, Microsoft
SQL Server, Sybase, Sybase SQL Anywhere,
Informix, PostgreSQL, FrontBase, Interbase,
Foxpro, Microsoft Access, dan DBMS
lainnya. Pergantian jenis sistem manajemen
basis data dapat dilakukan dengan mudah,
hanya mengganti koneksi ke basis data tanpa
mengubah keseluruhan kode SQL dalam
program.
Basis data yang dibangun terdiri atas 13
tabel. Struktur basis data tidak berbeda jauh
dengan struktur basis data yang lama. Hal ini
ditujukan
untuk
mempermudah
proses
perpindahan data dari basis data CDS/ISIS ke
basis data yang baru. Keterangan tabel dalam
basis data dapat dilihat pada Lampiran 3.
4. Perancangan proses
Gambar 8 Diagram konteks
Dalam perancangan proses ini dibuat
diagram yang menjelaskan aliran-aliran data
pada sistem. Diagram konteks sistem dapat
dilihat pada Gambar 8. Diagram aliran data
dapat dilihat pada Lampiran 4-10.
Konstruksi
Lapisan
aplikasi
diimplementasikan
sebagai aplikasi
web service
menggunakan
protokol SOAP dalam bahasa PHP. Gambaran
umum implementasi pada
server
dapat dilihat
pada Lampiran 11.
Pada lapisan aplikasi terdapat semua
service
yang ada pada sistem sirkulasi. Setiap
service
memiliki masukan dan keluaran yang
berbeda. Masukan dan keluaran dari setiap
service
dapat dilihat pada Lampiran 1.
Pengembang antarmuka harus mengetahui
nama metode, masukan, dan keluaran dari
service
agar dapat menggunakan
service
-service
ini.
Pada
implementasi
service
bagian
transaksi seperti pinjam, perpanjang, kembali,
dan pesan tidak dilakukan pemeriksaan
terhadap status suatu koleksi atau status dari
user
yang akan dikenakan transaksi. Proses
pemeriksaan dilakukan pada
service
lain. Hal
ini dilakukan agar terjadi efisiensi dalam
penulisan kode program, kemudahan dalam
penelusuran kesalahan, serta kemudahan
dalam pengembangan selanjutnya. Penyatuan
antar
service
dilakukan
pada
tingkat
antarmuka.
Sistem terdiri atas tiga kelas yaitu kelas
operator,
user
dan
session
. Masing-masing
kelas dibentuk di dalam file yang berbeda.
Use case
dari sistem dapat dilihat ada
Lampiran 12 dan 13. Kelas
user
memiliki
fungsi untuk melakukan transaksi. Contoh
kelas
user
dengan fungsi peminjaman dapat
dilihat pada kode berikut ini:
class user {
public function __construct($user_id) {
$ret=$this->db->Execute("select * from users where user_id=?", array ($user_id));
$urow = $ret->FetchRow(); $user_id=$urow['user_id']; }
function pinjam(param) {
$this->db->Execute("insert into loan (user_id, book_id, book_condition, loan_type, loan_date
(18)
9
,loan_mdt_return_date,
borrow_trans_id, renew_counter) values (?,?,?,?,?,?,?,?)", array($user_id, $book_id, P, $loan_type, $today ,
$loan_mdt_return_date,
$borrow_trans_id, $renew_counter)); }
}
Kelas operator memiliki fungsi untuk
mencatat setiap transaksi yang terjadi. Contoh
kode untuk kelas operator dengan fungsi
peminjaman dapat dilihat pada tulisan di
bawah ini:
class operator {
function pinjam (param) { $this->db->Execute("insert into transaction(operator_id, time, user_id, transaction_type_id) values (?,?,?,?)", array($operator_id, $today, $user_id, 1)); }
}
Pembentukan
service
dilakukan dengan
membentuk objek-objek dari kelas yang sudah
dibangun. Setiap fungsi mewakili sebuah
service
. Penelitian menghasilkan 40
service
yang
digunakan
untuk
pengembangan
antarmuka. Di bawah ini adalah contoh
pembentukan
service
untuk peminjaman.
function pinjam (param){
$operator = new
operator($operator_id); $user = new user($user_id); $ok=$operator->pinjam($user_id); $ok=$user->pinjam($book_id, $loan_type, $operator_id); }
Pembentukan
service
kemudian dilakukan
dengan pemanggilan kelas soap_server dari
NuSOAP. Metode yang dipilih kemudian di
register ke dalam objek soap_server yang
telah dibentuk.
$method_list = array(... 'pinjam'=>'pinjam', ...
); ...
$server=new soap_server;
foreach (array_keys($method_list) as $method_name){
$server->register ($method_name); }
$server->service($HTTP_RAW_POST_DATA);
Jika tidak menggunakan WSDL maka
informasi yang diberikan kepada pengembang
antarmuka adalah URL, nama metode dan
parameter yang digunakan dari
service
. Pada
penelitian ini file WSDL dibangun dengan
tujuan untuk memudahkan pengembang
membangun antarmuka dengan bahasa selain
PHP. WSDL dapat dilihat pada Lampiran 15.
Contoh
kode
pada
client
untuk
pemanggilan
service
user_info dapat dilihat
pada kode di bawah ini, sedangkan contoh
hasil pemanggilan
service
user_info dapat
dilihat pada Lampiran 15.
require_once "nusoap.php"; ... $param=array('session_id'=>$session_id ,'user_id'=>$user_id); $client=new soapclientw('http://localhost/services /services.php'); $operation='user_info'; $response=$client->call($operation, $param); ... print_r ($response);
Spesifikasi Implementasi
Implementasi dirancang dan dibangun
dengan perangkat keras dan perangkat lunak
sebagai berikut:
Perangkat keras pengembangan:
1.
Prosesor Intel Celeron 1400 MHz
2.
Memori 256 MB
3.
Harddisk
40 GB
4. Monitor
5. Alat input:
keyboard
dan
mouse
Perangkat keras server:
1. Prosesor Intel Pentium 4 2,26 GHz
2. Memori 768 MB
3
. Harddisk
2x40 GB
4. Jaringan Komputer 10/100 Mbps
Perangkat lunak:
1.
Sistem operasi: Microsoft Windows XP
Professional
2.
Web server
: Apache 2.0.54
3.
DBMS: PostgreSQL 8.0.3
4.
Scripting
language
: PHP 5.0.5
5.
Antarmuka basis data: PHPPgAdmin 4.0.1
6.
WSDL
generator
: Zend Studio 5.0.0
Enterprise Edition
7.
Editor teks: Macromedia Dreamweaver
MX 2004
Pengujian
Tahap pengujian sistem dilakukan dengan
metode
black-box testing
, dimana setiap
(19)
10
service
diuji dengan memasukkan input, baik
yang benar maupun salah, dan dilihat apakah
keluarannya sesuai dengan yang diharapkan.
Semua
service
sudah diuji dengan hasil sesuai
dengan skenario pengujian. Hasil pengujian
dapat dilihat pada Lampiran 16.
Penggunaan
Pada tahap ini hasil penelitian disatukan
dengan antarmuka dari sistem kemudian
diperiksa
oleh
pegawai
perpustakaan.
Modifikasi terhadap sistem dilakukan sesuai
dengan saran dari pegawai perpustakaan.
Gambaran Umum Sistem
Sistem yang dibangun merupakan lapisan
aplikasi dari sistem sirkulasi perpustakaan.
Sistem ini menghasilkan beberapa
service
yang digunakan dalam sistem sirkulasi. Di
antaranya
yaitu
untuk
peminjaman,
pengembalian,
perpanjangan,
pemesanan,
pembayaran denda,
session
, bebas pustaka,
manajemen
user
dan operator, dan manajemen
hari libur.
Setiap
service
memiliki masukan dan
keluaran yang berbeda. Proses pemeriksaan
session
dilakukan setiap
service
dijalankan.
Hal ini dilakukan untuk menjamin operator
masih dalam keadaan aktif. Jika operator tidak
aktif selama 30 menit maka secara otomatis
session
akan berakhir dan operator harus
login
kembali.
Beberapa
service
yang menulis ke dalam
dua atau lebih tabel yang berbeda dilindungi
oleh proses
commit
dan
rollback
. Jika terjadi
kegagalan
transaksi
maka
transaksi
sebelumnya yang berkaitan akan dihapus atau
dikembalikan ke keadaan sebelum terjadi
transaksi.
Beberapa
service
saling
memiliki
ketergantungan,
dimana
service
harus
menjalankan proses lain sebelum
service
itu
dijalankan. Ketergantungan ini diatur di dalam
lapisan antarmuka.
Kelebihan Sistem
1.
Pembangunan antarmuka dapat dilakukan
pada
platform
dan bahasa pemrograman
yang berbeda yang mendukung konsep
web service
.
2.
Aplikasi dapat disatukan dengan aplikasi
lain dan tidak dibatasi dengan perbedaan
bahasa pemrograman.
3.
Dapat digunakan oleh perpustakaan pada
umumnya yang memiliki standar operasi
yang sama.
4.
Jika terjadi perubahan antarmuka dari
sistem maka kode utama program tidak
diubah, begitu juga jika kode program
pada lapisan aplikasi berubah maka
antarmuka tidak perlu diubah.
5.
Mudah
berganti
DBMS
karena
menggunakan
ADOdb
database
abstraction library
(
Active Data Objects
Data Base
).
6.
Jika terjadi kegagalan dalam transaksi
maka transaksi akan dikembalikan pada
kondisi awal dan transaksi tidak akan
dicatat ke dalam basis data.
Keterbatasan Sistem
1.
Sistem yang dibangun belum mendukung
untuk penggunaan basis data yang lebih
dari satu atau basis data terdistribusi.
Belum ada mekanisme
locking
untuk
pemrosesan secara paralel.
2.
Tampilan antarmuka harus menyesuaikan
dengan lapisan aplikasi. Jika pengembang
antarmuka tidak menggunakan WSDL
maka
pengembang
tersebut
harus
mengetahui masukan, keluaran dan nama
service
yang akan dipakai.
3.
Jika terjadi kegagalan dalam lapisan
aplikasi maka seluruh sistem akan tidak
dapat berjalan.
KESIMPULAN DAN SARAN
Kesimpulan
Sistem sirkulasi Perpustakaan Pusat IPB
terdiri atas dua subsistem utama yaitu sistem
sirkulasi yang diperuntukkan untuk mencatat
transaksi yang terjadi di dalam perpustakaan
dan
sistem
pembatalan
pesan
dan
perpanjangan pinjaman secara
online
. Sistem
sirkulasi terdiri atas beberapa bagian pokok di
antaranya yaitu bagian pengaturan transaksi,
pengaturan
user
, pengaturan operator, dan
pengaturan hari libur.
Aplikasi yang dibangun berbasis
web
yang
dapat diakses dimana saja selama terhubung
dengan jaringan internet atau intranet.
Sistem dibangun dengan menerapkan
arsitektur
three tier
menggunakan konsep
web
service
. Hal ini membuat pengembangan
(20)
11
aplikasi dapat dilakukan terpisah antar
lapisan-lapisannya
dan
tidak
saling
mempengaruhi.
Saran
Pengembangan lebih lanjut dari sistem ini
yaitu dengan memanfaatkan sistem basis data
yang terdistribusi sehingga sistem dapat
terintegrasi dalam satu lingkungan kampus.
Semua perpustakaan dapat memanfaatkan
sistem yang sama dengan basis data yang
berbeda
dan
peningkatan
dalam
sisi
keamanannya.
Sistem
dapat
dikembangkan
dengan
penambahan
service-service
baru seperti
untuk pemesanan secara
online
, pengolahan
data dan pembuatan laporan.
DAFTAR PUSTAKA
Ayala D, Browne C, Chopra V, Sarang P,
Apshankar K, McAllister T. 2002.
Professional Open Source Web Services
.
http://dietrich.ganx4.com/download.php?u
rl=/nusoap/downloads/7469_Chap08.pdf
[19 Juni 2006]
Campbell SD.
Web
Services with NuSOAP
.
2002.
http://www.zend.com/zend/tut/
tutorial-campbell.php. [13 Januari 2006]
Comella S, Clements P, Rogers F, Sadoski D.
2004.
Three Tier Software Architectures
.
http://www.sei.cmu.edu/str/descriptions/th
reetier_body.html [5 Oktober 2005]
Fuecks H. 2002
.
Build your own Web Service
with
PHP
and
XML-RPC
.
http://www.sitepoint.com/article/own-
web
-service
-php-xml-rpc
[30 Oktober 2005]
[Microsoft]
MSDN
Library
Microsoft
Corporation. 2005.
Building an N-Tier
Application
in
.NET.
http://msdn.microsoft.com/library/default.
asp?url=/library/en-us/dndotnet/html/
buildntierapp.asp [5 Oktober 2005]
Prasetyo DD. 2005.
Solusi Menjadi Web
Master melalui Manajemen Web dengan
PHP.
Jakarta:
PT.
Elex
Media
Komputindo.
Pressman RS. 2005.
Software Engineering: A
Practitioner s Approach,
Ed.ke-6. New
York: McGraw-Hill Companies, Inc.
Siswoutomo W. 2004.
Membangun Web
Service Open Souce menggunakan PHP
.
Jakarta: PT. Elex Media Komputindo.
Sujiwo MA. 2005
. Desain dan Implementasi
Sistem Publikasi Katalog dan Dokumen
Elektronik Terdistribusi di Perpustakaan
IPB
[skripsi]. Bogor: Departemen Ilmu
Komputer. Institut Pertanian Bogor.
Widyaningsih
R.
2006.
Pengembangan
Antarmuka Sistem Sirkulasi Berbasis Web
(Studi Kasus: Perpustakaan Pusat IPB)
[skripsi].
Bogor:
Departemen
Ilmu
Komputer. Institut Pertanian Bogor.
(21)
(22)
13
Lampiran 1 Keterangan
service
output No. Nama Service Input
Sukses Gagal Fungsi 1 Login operator_id (string),
password (string)
session_id Error code (22/34) Login operator untuk memperoleh session id
2 login_user user_id (string), password (string)
session_id Error code (9/34) Login user untuk memperoleh session id
3 Logout session_id (string) 0 Error code (24/25) Keluar dari sistem 4 Operator_info session_id (string),
operator_id (string)
Array (operator_id, name, password)
Error code (32) Digunakan untuk mengambil info dari operator
5 add_operator session_id (string), operator_id (string), add_operator_id (string), name (string), password (string)
0 Error code (3/4/32) Digunakan untuk menambah operator baru
6 delete_opt session_id (string), operator_id (string), del_operator_id (string)
0 Error code (4/5/6/32) Digunakan untuk menghapus operator
7 update_opt session_id (string), operator_id (string), old_operator_id (string), new_operator_id (string), name (string), password (string)
0 Error code (3/4/5/32) Digunakan untuk mengubah info dari operator
8 cek_user session_id (string), user_id (string)
0 (User is exist) Error code (9/18/32) Digunakan untuk memeriksa keberadaan user
9 user_info session_id (string), user_id (string) Array (user_id, nama, condition, address, category, reg_date, exp_date, note, password, faculty, num_loan, max_loan)
Error code(32) Digunakan untuk mengambil informasi tentang user 10 add_user session_id (string),
operator_id (string), user_id (string), name (string), address(string), category (string), exp_date (timestamp), note (string), password (string), faculty (string)
0 Error
code(4/7/8/32/34/35)
Digunakan untuk menambah user baru
11 update_user session_id (string), user_id (string), new_user_id (string), condition (string), name (string), address (string), category (string), exp_date (timestamp), note (string), password (string), faculty (string), operator_id (string)
0 Error
code(4/7/8/9/32/34/35)
Digunakan untuk mengubah informasi dari user 12 delete_user session_id (string),
operator_id (string), user_id (string)
0 Error code(4/9/32) Digunakan untuk menghapus user
13 bebas_pustaka session_id (string), operator_id (string), user_id (string)
0 Error code(4/32) Digunakan untuk membebaspustakakan user
(23)
14
output No. Nama Service Input
Sukses Gagal Fungsi user_id (string),
old_password (string), new_password (string)
oleh user
15 cek_max session_id (string), user_id (string)
0 (pinjaman belum maksimum)
Error code(21/32) Digunakan untuk memeriksa jumlah pinjaman user apakah sudah maksimal atau belum 16 cek_late session_id (string),
user_id (string)
0 (ada pinjaman yang terlambat)
Error code(10/12/32) Digunakan untuk memeriksa apakah terdapat keterlambatan pemulangan koleksi
17 Get_loan session_id (string), user_id (string) Array (status, book_id, loan_date, loan_mdt_return _date, telat, amount)
Error code(10/11/32) Digunakan untuk mengambil pinjaman-pinjaman yang dilakukan oleh user
18 Get_pesan session_id (string), user_id (string) Array (status, book_id, order_date, order_date, order_available_ date)
Error code(31/32) Digunakan untuk mengambil keterangan peminjaman yang dilakukan oleh user
19 pinjam session_id (string), user_id (string), book_id (string), operator_id (string), loan_type (integer)
0 Error
code(4/11/13/32/34)
Digunakan untuk melakukan peminjaman
20 extend session_id (string), user_id (string), book_id (string), loan_type (integer), operator_id (string)
0 Error
code(4/10/11/20/32)
Digunakan untuk proses perpanjangan oleh operator 21 user_extend session_id (string),
user_id (string), book_id (string)
0 Error
code(4/10/11/16/20/32
Digunakan untuk proses perpanjangan oleh user
22 kembali session_id (string), user_id (string), book_id (string), operator_id (string)
0 Error code(4/32) Digunakan untuk proses pengembalian 23 pesan session_id (string),
user_id (string), book_id (string), operator_id (string)
0 Error
code(4/10/15/16/32/34)
Digunakan untuk proses pemesanan
24 ambil_pesan session_id (string), operator_id (string), user_id (string), book_id (string), loan_type (integer)
0 Error
code(4/11/13/32/34)
Digunakan untuk proses peminjaman, dimana sudah terjadi transaksi pesan sebelumnya 25 cancel_pesan session_id (string),
user_id (string), book_id (string), operator_id (string)
0 Error code(4/31/32) Digunakan untuk membatalkan pesanan leh operator
26 user_cancel_pesan session_id (string), user_id (string), book_id (string)
0 Error code(4/31/32) Digunakan untuk membatalkan pesanan oleh user
27 bayar_denda session_id (string), operator_id (string), user_id (string), book_id (string)
0 Error code(4/10/11/32) Digunakan untuk pembayaran denda keterlambatan 28 category session_id (string) Array
(id_category, description, max_loan, renew_counter)
Error code(32) Digunakan untuk mengambil jenis kategori dari user
29 loan_type session_id (string) Array (loan_type_id, description, fine_amount)
Error code(32) Digunakan untuk mengambil jenis-jenis peminjaman 30 add_loan_type session_id (string),
loan_type_id (integer),
0 Error
code(4/27/28/29/32/34)
Digunakan untun menambah jenis peminjaman
(24)
15
output No. Nama Service Input
Sukses Gagal Fungsi duration (integer),
metric (string), fine_amount (integer) 31 delete_loan_type session_id (string),
loan_type_id (integer)
0 Error code(4/11/32) Digunakan untuk menghapus jenis pinjaman
32 add_user_category session_id(string), id_category (string), description (string), max_loan (integer), renew_counter (integer)
0 Error
code(4/29/30/32/34)
Digunakan untuk menambah jenis-jenis dari user
33 delete_user_category session_id (string), id_category (string)
0 Error code(4/8/32) Digunakan untuk menghapus jenis-jenis user
34 error_message error_code (integer) Error description Error description Digunakan untuk menampilkan deskripsi dari kode error tertentu 35 cek_buku_pesan session_id (string),
book_id (string)
0 (buku tidak dipesan)
Error code(32)/ Array (pesan_by, tanggal_pesan, tanggal_pesan_dapat_ diambil)
Digunakan untuk memeriksa status pesanan dari sebuah koleksi 36 cek_buku_pinjam session_id (string),
book_id (string)
0 (buku tidak dipinjam)
Error code(32) Array(loan_by, loan_available_date)
Digunakan untuk memeriksa status pinjaman dari sebuah koleksi
37 certain_dayoff session_id (string), year (integer), certain_day (integer)
0 Error code(4/32/33/34) Digunakan untuk menambah hari libur tertentu dalam satu tahun. 38 dayoff session_id (string),
begin_date (timestamp), end_date (timestamp), note (string)
0 Error code(4/32/34) Digunakan untuk menambah hari libur dengan periode tertentu 39 view_dayoff session_id (string) Array (off_date,
note)
Error code(32) Digunakan untuk menampilkan hari libur
40 delete_dayoff session_id (string), date (timestamp)
0 Error code(4/17/32) Digunakan untuk menghapus hari libur
(25)
16
Lampiran 2 Deskripsi
error
error
_
code
Deskripsi
1
Gagal koneksi ke basis data
2
Operator tidak terdapat dalam basis data
3
Operator id sudah terpakai
4
Tidak dapat mengakses basis data
5
Tidak ada operator untuk di update atau di hapus
6
Operator tidak dapat menghapus dirinya sendiri
7
User id sudah terpakai
8
Salah kategori
user
9
User
tidak ada
10
Tidak ada pinjaman
11
Jenis pinjaman salah
12
Tidak ada pinjaman yang terlambat
13
Buku sedang dipinjam
14
Buku tidak sedang dipesan
15
Buku tidak sedang dipinjam
16
Buku sudah dipesan
17
Tidak ada hari libur
18
User
tidak aktif
19
Tidak ada pinjaman untuk diperpanjang
20
Tidak dapat melakukan perpanjangan
21
Pinjaman sudah maksimum
22
Operator tidak ada atau password salah
23
Tidak dapat menciptakan session baru
24
Tidak ada session untuk diakhiri
25
Tidak dapat mengakhiri session
27
Loan type id sudah terpakai
28
Metric yang dipakai salah
29
Nilai harus integer
30
User
category sudah terpakai
31
Tidak ada pesanan
32
Tidak ada session
34
Input tidak boleh kosong
33
Format hari salah
35
Kondisi
user
salah
36
Hari libur sudah ada
37
Password
user
salah
(26)
17
Lampiran 3 Deskripsi basis data
Tabel users
Column Type Not Null Description user_id character varying(15) NOT NULL primary key Name character varying(30)
Condition Character varying (3) NOT NULL Address character varying(50)
Category character varying(10) NOT NULL
reg_date Date NOT NULL
exp_date Date NOT NULL
Note Text
Password character varying(35) NOT NULL Faculty character varying(30)
Tabel dayoff
Column Type Not Null Description
off_date date NOT NULL primary key
note character(30)
Tabel error
Column Type Not Null Description error_code character varying(10) NOT NULL primary key
description Text NOT NULL
Tabel fine
Column Type Not Null Description
fine_id Integer (serial) NOT NULL primary key
transact_id character varying(15) NOT NULL
Amount character varying(10) NOT NULL
fine_status character varying(10) NOT NULL
fine_date timestamp without time zone NOT NULL
fine_left character varying(10) NOT NULL
inst_no character varying(15) NOT NULL
user_id character varying(30) NOT NULL
book_id character varying(30) NOT NULL
Tabel loan
Column Type Not Null Description
loan_id Integer (serial) NOT NULL primary key
user_id character varying(15) NOT NULL
book_id character varying(15) NOT NULL
book_condition character varying(10) NOT NULL
loan_mdt_return_date timestamp without time zone NOT NULL
loan_returned timestamp without time zone
(27)
18
Lampiran 3 (lanjutan)
Column Type Not Null Description
borrow_trans_id Integer NOT NULL
return_trans_id Integer NOT NULL Default = 0
renew_trans_id Integer NOT NULL Default = 0
renew_counter Integer NOT NULL
loan_date timestamp without time zone NOT NULL
loan_type Integer NOT NULL
Tabel loan_type
Column Type Not Null Description
loan_type_id Integer NOT NULL primary key
Duration Integer NOT NULL
Metric character varying(3) NOT NULL
fine_amount Integer NOT NULL
description character varying(200) NOT NULL
Tabel operator
Column Type Not Null Description oprt_id character varying(15) NOT NULL primary key Name character varying(35)
Password character varying(35) NOT NULL
Tabel pesan
Column Type Not Null Description
order_id Integer (serial) NOT NULL Primary key
user_id Character varying(15) NOT NULL
book_id Character varying(15) NOT NULL
order_date timestamp without time zone NOT NULL
order_available_date timestamp without time zone NOT NULL order_take_date timestamp without time zone
order_trans_id Integer NOT NULL
loan_by Character varying(15) NOT NULL
stat_pesan Integer NOT NULL
Tabel sessions
Column Type Not Null Description
session_id character varying(50) NOT NULL primary key
oprt_id character varying(15) NOT NULL
Host character varying(30) NOT NULL
Start timestamp without time zone NOT NULL
Stop timestamp without time zone NOT NULL
(28)
19
Lampiran 3 (lanjutan)
Tabel transaction
Column Type Not Null Description
transact_id Integer (serial) NOT NULL primary key
operator_id character varying(15) NOT NULL
Time timestamp without time zone NOT NULL
user_id character varying(15) NOT NULL
transaction_type_id character varying(3) NOT NULL
Tabel transaction_type
Column Type Not Null Description
transaction_type_id Integer NOT NULL primary key
transaction_code character(3) NOT NULL
description Text NOT NULL
Tabel user_category
Column Type Not Null Description id_category character varying(15) NOT NULL primary key
description Text NOT NULL
max_loan Integer NOT NULL Default = 0
renew_counter Integer NOT NULL Default = 0
Tabel userhistory
Column Type Not Null Description
userhist_id Integer (serial) NOT NULL primary key
oprt_id character varying(15) NOT NULL
Time timestamp without time zone NOT NULL
transaction_type_id character varying(10) NOT NULL
user_id character varying(15) NOT NULL
(1)
43
</input> <output>
<soap:body namespace="urn:perpus" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output> </operation>
<operation name="user_info">
<soap:operation soapAction="urn:servicesAction"/> <input>
<soap:body namespace="urn:perpus" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input> <output>
<soap:body namespace="urn:perpus" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output> </operation>
<operation name="view_dayoff">
<soap:operation soapAction="urn:servicesAction"/> <input>
<soap:body namespace="urn:perpus" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input> <output>
<soap:body namespace="urn:perpus" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output> </operation> </binding>
<service name="perpusService">
<port name="servicesPort" binding="typens:servicesBinding"> <soap:address location="http://localhost/new/services/services.php"/> </port>
</service> </definitions>
Lampiran 15 Contoh output service user info Lampiran 14 (lanjutan)
(2)
44
Lampiran 16 Hasil Pengujian
Service yang di uji Nilai Input
Skenario Pengujian Hasil yang diharapkan
Benar Operator memasukkan
user name dan
password yang benar
Output berupa session id Login
Salah
Operator memasukkan
username dan
password yang salah, dan input kosong
Output berupa kode error
Benar User memasukkan
username dan
password yang benar
Output berupa session id login_user
User memasukkan
username dan
password yang salah, dan input kosong
Output berupa kode error
Benar Memasukkan input
session id yang benar
Output = 0 / tidak ada kesalahan Logout
Salah Memasukkan input
session id yang salah
Output berupa kode error
Benar Memasukkan operator
id yang benar
Output berupa array yang berisi informasi dari operator id Operator_info
Salah Memasukkan operator
id yang salah
Output berupa array kosong
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan add_operator
Salah Memasukkan input
salah (operator id sudah terpakai, input kosong, atau yang lainnya)
Output berupa kode error
Benar Memasukkan operator
id yang benar
Output = 0 / tidak ada kesalahan delete_opt
Salah Memasukkan operator
id yang salah atau operator id kosong
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan update_opt
Salah Memasukkan input
yang salah (operator id sudah terpakai, input kosong, atau yang lainnya)
Output berupa kode error
Benar Memasukkan input
user id yang benar
Output = 0 / user exist
cek_user
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
user id yang benar
Output berupa array yang berisi keterangan dari user
user_info
Salah Memasukkan input
user id yang salah
Output berupa array kosong
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan add_user
Salah Memasukkan input
yang salah
Output berupa kode error
(3)
45
Service yang di uji Nilai Input
Skenario Pengujian Hasil yang diharapkan
yang benar
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan delete_user
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan bebas_pustaka
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan change_password
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / Jumlah pinjaman belum maksimum
cek_max
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / Ttidak ada pinjaman yang terlambat
cek_late
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output berupa array pinjaman dari
user (jika ada) get_loan
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output berupa array pesanan dari user
(jika ada) get_pesan
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan pinjam
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan extend
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan user_extend
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan kembali
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan pesan
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan ambil_pesan
Salah Memasukkan input
yang salah
Output berupa kode error Lampiran 16 (Lanjutan)
(4)
46
Service yang di uji Nilai Input
Skenario Pengujian Hasil yang diharapkan
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan cancel_pesan
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan user_cancel_pesan
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan bayar_denda
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan session
id yang benar
Output berupa array kategori dari user
Category
Salah Memasukkan session
id yang salah
Output berupa kode error
Benar Memasukkan session
id yang benar
Output berupa array jenis-jenis pinjaman
loan_type
Salah Memasukkan session
id yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan add_loan_type
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan delete_loan_type
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan add_user_category
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan delete_user_category
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
kode error yang benar
Output berupa penjelasan kode error error_message
Salah Memasukkan input
kode error yang salah
Output berupa pesan kode error tidak terdapat dalam basis data
cek_buku_pesan Benar Memasukkan input
yang benar
Output = 0 / Buku tidak dipesan atau output berupa array yang berisi keterangan dari pemesan dan tanggal buku dipesan
cek_buku_pinjam Benar Memasukkan input
yang benar
Output = 0 / Buku tidak dipinjam atau output berupa array yang berisi keterangan dari peminjam dan kapan buku dikembalikan
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan certain_dayoff
Salah Memasukkan input
yang salah
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan Dayoff
Salah Memasukkan input Output berupa kode error
(5)
47
Service yang di uji Nilai Input
Skenario Pengujian Hasil yang diharapkan
yang salah
Benar Memasukkan bulan
dan tahun yang sesuai
Output berupa array yang berisi hari libur sesuai dengan bulan dan tahun yang dimasukkan atau array kosong jika tidak ada hari libur
view_dayoff
Salah Memasukkan bulan
dan tahun yang salah (Bukan integer, nilai bulan yang salah, nilai tahun yang kosong)
Output berupa kode error
Benar Memasukkan input
yang benar
Output = 0 / tidak ada kesalahan delete_dayoff
Salah Memasukkan input
yang benar (format tanggal yang salah, input kosong, atau tidak ada hari libur yang dihapus)
Output berupa kode error Lampiran 16 (Lanjutan)
(6)
This document was created with Win2PDF available at http://www.daneprairie.com.