Desain dan implementasi application layer sistem sirkulasi berbasis web studi kasus: Perpustakaan Pusat IPB

(1)

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.