PENGEMBANGAN APLIKASI STATISTIK PERPUSTAKAAN
MENGGUNAKAN MODEL-VIEW-CONTROLLER
(STUDI KASUS PERPUSTAKAAN IPB)
Oleh:
Firmansyah
G64102053
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
ABSTRAK
FIRMANSYAH. Pengembangan Aplikasi Statistik Perpustakaan menggunakan
Model-View-Controller (Studi Kasus Perpustakaan IPB). Dibimbing oleh AGUS BUONO dan IRMAN
HERMADI.
Statistik perpustakaan merupakan bagian dari laporan kegiatan pelaksanaan suatu perpustakaan. Statistik perpustakaan berguna untuk mengkaji ulang pelaksanaan kegiatan yang dilakukan, bahan pertimbangan pada saat melakukan pengadaan anggaran buku rujukan, peningkatan pelayanan, dan evaluasi kinerja perpustakaan.
Masalah yang dibahas dalam penelitian ini ialah penggunaan cara manual pada sistem penghitungan statistik perpustakaan. Dengan cara manual yang dilaksanakan, muncul hambatan-hambatan dalam pelaksanaanya seperti ketidakakuratan penghitungan statistik yang diakibatkan faktor kelalaian penghitungan manual, ketidakefisien kerja, dan pemborosan waktu.
Penelitian ini bertujuan untuk merancang dan membuat program aplikasi bagi otomatisasi penghitungan statistik perpustakaan. Basisdata yang digunakan dalam aplikasi ini adalah CDS/ISIS yang didesain untuk manajemen komputerisasi basisdata berstruktur non-numerik. Aplikasi dibuat menggunakan bahasa pemrograman PHP dan PHP-OPENISIS sebagai port OPENISIS ke PHP dalam bentuk extension PHP. OPENISIS itu sendiri merupakan command-line
tool untuk membaca basisdata native CDS/ISIS. Untuk tampilan grafik menggunakan JPGRAPH
yaitu sebuah library berorientasi objek lengkap untuk menggambar grafik menggunakan PHP. Aplikasi dikembangkan menggunakan konsep Model-View-Controller (MVC) yang membagi aplikasi menjadi 3 bagian, yaitu bussines logic sebagai Model, tampilan antarmuka sebagai View dan Controller yang mengatur alur kerja sistem.
Aplikasi statistik perpustakaan mempunyai 3 menu utama, yaitu statistik pengunjung, statistik peminjam, dan statistik koleksi. Hasil yang ditampilkan pada statistik pengunjung adalah grafik, data detail, data intensitas, dan report pengunjung perpustakaan per bulan atau per tahun. Hasil yang ditampilkan pada statistik peminjam adalah grafik, data detail, data intensitas, dan
report peminjam perpustakaan per bulan atau per tahun. Disisi lain, hasil yang ditampilkan pada
statistik koleksi adalah grafik, data detail, dan report kelas koleksi yang dipinjam dari perpustakaan per bulan atau per tahun
Dan seandainya pohon-pohon di bumi menjadi pena dan laut (menjadi tinta), ditambahkan kepadanya tujuh langit (lagi) sesudah (kering)nya,
niscaya tidak akan habis-habisnya (dituliskan) Kalimat Allah. Sesungguhnya Allah Maha Perkasa lagi Maha Bijaksana. (Q.S. Luqman: 27)
PENGEMBANGAN APLIKASI STATISTIK PERPUSTAKAAN
MENGGUNAKAN MODEL-VIEW-CONTROLLER
(STUDI KASUS PERPUSTAKAAN IPB)
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
Pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Oleh:
Firmansyah
G64102053
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
Judul : Pengembangan Aplikasi Statistik Perpustakaan Menggunakan
Model-View-Controller (Studi Kasus Perpustakaan IPB)
Nama : Firmansyah
NIM : G64102053
Menyetujui,
Pembimbing I
Ir. Agus Buono, M.Si., M.Kom.
NIP. 132 045 532
Pembimbing II
Irman Hermadi, M.S.
132 321 422
Mengetahui,
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
NIP. 131 473 999
PRAKATA
Alhamdulillah. Puji dan syukur penulis ucapkan kepada Allah SWT karena atas limpahan rahmat dan karunia-Nya penulis dapat menyelesaikan tugas akhir ini dengan baik. Shalawat dan salam tercurah kepada Nabi Muhammad SAW.
Tema yang dipilih untuk tugas akhir ini adalah Pengembangan Aplikasi Statistik Perpustakaan menggunakan Model-View-Controller (Studi Kasus perpustakaan IPB). Yang penulis kerjakan pada tugas akhir ini ialah membuat suatu aplikasi yang dapat mengolah data perpustakaan berbasis CDS/ISIS menjadi data dan grafik statistik.
Terima kasih penulis ucapkan kepada semua pihak yang telah membantu dalam penyelesaian tugas akhir ini, terutama kepada Bapak Ir. Agus Buono, M.Si., M.Kom sebagai pembimbing pertama yang telah banyak mencurahkan waktunya untuk membimbing penulis. Selain itu kepada Bapak Irman Hermadi, M.S. sebagai pembimbing kedua atas saran-saran yang telah diberikan.
Penulis juga ingin mengucapkan rasa terima kasih kepada:
1. Ayah dan Ibu tercinta yang selalu memberikan nasihat, dorongan, doa dan dukungan finansial. Terima kasih atas segala pengorbanan, keringat, dan air mata yang engkau berikan. Sungguh aku tak akan pernah bisa membalasnya. Ya Allah, Izinkan aku untuk selalu berbakti kepadanya di saat dirinya ada maupun sudah tiada seraya berdoa Rabbigfirli waliwalidayya war hamhuma kama rabbayani shagira. Ya Allah, semoga Engkau kumpulkan kami kembali kelak di tempat yang lebih baik bersama orang-orang yang Engkau ridhai.
2. Kakakku Imron, Nurhayati, Nuraini, atas dukungannya secara moril dan finansial. Adikku Adi, Iwan, Fathan, dan Opi , terima kasih atas pengertiannya.
3. Emak, ibu kost yang baik hati. Semoga Allah membalas segala kebaikannya dengan balasan yang berlipat ganda.
4. Mas Sujiwo Tejo yang telah memberikan source code kelas-kelas untuk pengaksesan database CDS/ISIS sehingga pengaksesan menjadi lebih mudah.
5. Ahmad, Zaki, dan Adhi, Teman senasib sepenanggunganku di Ilkom. Terima kasih atas empat tahun persahabatan kita yang indah, lengkap dengan segala suka dukanya. Mudah-mudahan kalian berhasil mencapai segala cita-cita kalian.
6. La Ode, Erus, Tedi, Reza, dan Arif, teman-teman kostanku. Terima kasih atas segala kebaikan dan pengertiannya.
7. Teman-teman Ilkomerz 39 untuk persahabatan, waktu yang tidak akan terulang, dan momen-momen yang tak terlupakan.
8. Pak Effendi, Pak Jatmiko, dan Pak Soleh yang telah mengizinkan penulis menggunakan laboratorium Komputasional. Terima kasih atas kerjasamanya.
9. Semua pihak yang telah membantu dalam penyelesaian tugas akhir ini yang tidak dapat disebutkan satu-persatu.
Semoga karya ilmiah ini dapat bermanfaat dan menjadi amal sholih bagi semua pihak yang terlibat dalam penyusunan skripsi ini.
Bogor, Mei 2007
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta, pada tanggal 12 Mei 1983. Penulis adalah putra keempat dari pasangan Bapak Muhammad Soleh dan Ibu Aan Hasanah.
Pendidikan sekolah menengah ditempuh di SMU Negeri 21 Jakarta dan lulus pada tahun 2002. Pada tahun yang sama penulis diterima menjadi mahasiswa Program Studi Ilmu Komputer Departemen Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor melalui jalur SPMB (Seleksi Penerimaan Mahasiswa Baru).
Selama masa perkuliahan, penulis aktif di Himpunan Mahasiswa Ilmu Komputer (HIMALKOM) FMIPA IPB sebagai Ketua Departemen Kerohanian periode jabatan 2003/2004. Di akhir perkuliahan, penulis berkesempatan mengikuti Praktek Lapang (PL) selama dua bulan (26 Januari – 26 Maret 2006) di Perpustakaan Pusat IPB dengan mengembangkan Aplikasi Statistik Perpustakaan Menggunakan Basisdata CDS/ISIS.
DAFTAR ISI
Halaman DAFTAR TABEL ... ix DAFTAR GAMBAR... ix DAFTAR LAMPIRAN ... ix PENDAHULUAN ... 1 Latar Belakang... 1 Tujuan... 1 Ruang Lingkup ... 1 TINJAUAN PUSTAKA ... 1 Basisdata... 1 PHP... 1 Web Server... 2 Dreamweaver. ... 2 CDS/ISIS. ... 2 MySQL. ... 3 PHP-OPENISIS. ... 3 JPGRAPH... 3Metode Pengembangan Waterfall... 3
Sistem Berorientasi Objek. ... 4
Model-View-Controller. ... 4
Jaringan Saraf Tiruan... 5
JST Propagasi Balik Standar. ... 6
METODE PENELITIAN ... 8 Data ... 8 Lingkungan Pengembangan... 8 PENGEMBANGAN SISTEM ... 8 Analisis ... 8 Perancangan... 11 Implementasi. ... 15
Integrasi dan Pengujian. ... 17
Penggunaan dan Pemeliharaan ... 17
HASIL DAN PEMBAHASAN ... 17
Kelebihan Sistem... 22
Kekurangan Sistem... 22
KESIMPULAN DAN SARAN ... 22
Kesimpulan... 22
Saran... 22
DAFTAR PUSTAKA... 22
DAFTAR TABEL
Halaman
1. Kapasitas yang disediakan dalam CDS/ISIS ... 3
2. Fungsi-fungsi pada Model ... 11
3. Fungsi-fungsi pada View ... 13
DAFTAR GAMBAR
Halaman 1 Arsitektur aplikasi situs ... 22 Hubungan antar bagian MVC ... 5
3 Alur komunikasi antar bagian MVC... 5
4 Arsitektur JST lapis tunggal. ... 6
5 Grafik fungsi sigmoid biner dengan selang (0,1)... 6
6 Grafik fungsi sigmoid bipolar dengan selang (-1,1). ... 7
7 Arsitektur JST propagasi balik ... 7
8 Diagram Konteks... 10
9 DFD level 1 ... 10
10 Layout umum View Aplikasi Statistik Perpustakaan IPB ... 12
11 Diagram Sequences Aplikasi Statistik Perpustakaan IPB... 14
12 Halaman Home ... 18
13 Link Navigasi ... 18
14 Tampilan form menu statistik pengunjung bulanan ... 19
15 Link Navigasi hasil bulanan ... 19
16 Grafik statistik pengunjung bulanan ... 19
17 Data detail pengunjung bulanan ... 20
18 Arsitektur JST pada Aplikasi Statistik Perpustakaan IPB ... 20
19 Data tabel dan grafik persentase kunjungan bulanan ... 21
20 Tabel dan grafik rata-rata intensitas kunjungan per hari... 21
21 Tabel pengunjung tersering ... 21
22 Prediksi pengunjung minggu depan... 21
DAFTAR LAMPIRAN
Halaman 1 DFD level 2 ... 252 Class Diagram... 29
3 Penjelasan kelas Model_Sql pada Aplikasi Statistik Perpustakaan IPB ... 30
4 Penjelasan kelas Model pada Aplikasi Statistik Perpustakaan IPB ... 31
5 Penjelasan kelas View pada Aplikasi Statistik Perpustakaan IPB... 33
6 Penjelasan kelas Controller pada Aplikasi Statistik Perpustakaan IPB... 35
7 Modul modul hasil implementasi. ... 37
8 Tampilan form pengunjung tahunan. ... 38
9 Perancangan tabel basisdata ... 39
10 Tabel keterangan JST ... 40
PENDAHULUAN
Latar BelakangPerpustakaan perguruan tinggi adalah perpustakaan yang terdapat pada perguruan tinggi, fakultas atau jurusan, maupun lembaga yang berafiliasi dengan perguruan tinggi , dengan tujuan utama membantu perguruan tinggi mencapai tujuannya yakni Tri Dharma
(Basuki 1991). Tujuan perpustakaan
perguruan tinggi antara lain: menyediakan informasi untuk masyarakat perguruan tinggi, menyediakan bahan rujuan pada semua tingkat dan strata akademis, menyediakan
ruangan belajar bagi pengunjung;
memberikan jasa peminjaman untuk berbagai jenis pemakai; dan menyediakan jasa informasi aktif di luar bidang lingkungan perguruan tinggi.
Kegiatan yang terdapat pada perpustakaan antara lain adalah: pengawasan pengunjung saat masuk dan keluar perpustakaan, pengurusan keanggotaan, proses peminjaman, dan pembuatan laporan kegiatan pelaksanaan. Salah satu bagian dari pembuatan laporan kegiatan pelaksanaan adalah penghitungan statistik perpustakaan. Statistik perpustakaan
berguna untuk mengevaluasi kinerja
perpustakaan.
Saat ini penghitungan statistik
perpustakaan masih menggunakan cara
manual sehingga terjadi ketidakefisienan kerja dan pemborosan waktu. Untuk itu dibutuhkan suatu aplikasi yang dapat mengotomasi penghitungan statistik perpustakaan sehingga menjadi lebih cepat dan akurat.
Aplikasi statistik perpustakaan yang dibuat dalam penelitian ini menggunakan konsep
Model-View-Controller (MVC) yang telah
dikembangkan oleh Marston (2004). MVC membagi aplikasi menjadi tiga bagian, yaitu
business logic sebagai Model, tampilan
antarmuka pengguna sebagai View dan pengatur alur kerja sistem sebagai Controller. Tujuan
Penelitian ini bertujuan untuk
mengembangkan aplikasi statistik
perpustakaan menggunakan konsep
Model-View-Controller pada perpustakaan yang menggunakan basisdata CDS/ISIS.
Ruang Lingkup
Ruang lingkup penelitian ini adalah:
1. Mengembangkan Aplikasi statistik
perpustakaan menggunakan konsep
Model-View-Controller pada perpustakaan
yang menggunakan basisdata CDS/ISIS.
2. Fungsi yang terdapat pada aplikasi dibatasi pada tiga fungsi utama yaitu statistik pengunjung, statistik peminjam, satistik koleksi.
3. Periode penghitungan statistik
perpustakaan dapat dilakukan per bulan atau per tahun.
4. Fasilitas statistik koleksi buku yang dipinjam dibatasi hanya untuk buku-buku
Kelas Satu sampai dengan Kelas
Sembilan. Manfaat Penelitian
Manfaat penelitian ini adalah membantu pihak Perpustakaan IPB, khususnya bagian sirkulasi, untuk mengotomasi pembuatan laporan statistik perpustakaan sehingga ketidakefisienan kerja dan pemborosan waktu dapat dihindari.
TINJAUAN PUSTAKA
BasisdataBasisdata adalah koleksi bersama atas data yang terhubung secara logis, dan deskripsi dari data tersebut dirancang untuk memenuhi kebutuhan suatu organisasi (Connolly 2002). Tujuan utama suatu basisdata adalah pengelolaan dan pengolahan data yang begitu kompleks dengan mudah, cepat dan efisien untuk berbagai kebutuhan.
PHP
PHP (PHP: Hypertext Preprocessor)
merupakan bahasa scripting yang ditulis menggunakan bahasa C, Java, dan Perl dengan beberapa tambahan fungsi khusus PHP. Saat ini, PHP banyak digunakan untuk membangun aplikasi web yang dinamis. Script PHP menyatu dengan file HTML.
Interpreter PHP dalam mengeksekusi kode PHP pada sisi server (disebut server-side) berbeda dengan Java Virtual Machine yang mengeksekusi program pada sisi klien
(client-side). Web server bekerja secara langsung
terhadap file yang bersangkutan, tidak memanggil script terpisah seperti pada metode CGI (Common Gateway Interface) (Bakken 2004).
PHP pertama kali diperkenalkan sekitar tahun 1995 oleh Rasmus Lerdorf yang membuat sebuah script Perl untuk keperluan dinamisasi website pribadinya. Akan tetapi,
kemudian dikembangkan lagi sehingga
menjadi sebuah bahasa yang disebut
“Personal Home Page”. Integrasi PHP sangat luas ke berbagai server basisdata. Beberapa basisdata yang didukung PHP, antara lain:
Oracle, Sybase, mSQL, MySQL, Solid, dan PostgreSQL (Nugroho 2004).
Web Server
Hampir semua pekerjaan pada aplikasi situs berlangsung di server. Aplikasi khusus yang disebut web server bertanggung jawab untuk berkomunikasi dengan browser. Web server menerima permintaan dari pengguna situs,
meresponnya, kemudian menampilkan
halaman situs yang sesuai.
Web server menyimpan semua file yang terkait dengan sebuah situs dan melakukan semua pekerjaan yang diperlukan untuk menjalankan situs tersebut. Bersama dengan basisdata dan bahasa pemrograman, web
server memproses hampir semua pekerjaan
dalam aplikasi situs dalam arsitektur seperti yang diilustrasikan pada Gambar 1.
PHP dan MySQL dapat bekerja sama dengan banyak web server, salah satunya
adalah Apache. Web server yang
dikembangkan oleh komunitas open source ini
telah terbukti ketangguhan serta
konektivitasnya dengan PHP dan MySQL. Apache merupakan web server yang paling popular.
Gambar 1 Arsitektur aplikasi situs (Greenspan 2002) Dreamweaver MX
Dreamweaver MX adalah suatu program
editor web yang dibuat oleh perusahaan
software Macromedia. Sebagai editor, Dreamweaver MX mempunyai sifat WYSIWYG (What You See Is What You Get), sehingga pemrogram dapat langsung melihat hasil pekerjaannya tanpa harus dibuka di
browser.
Seperti program editor web lainnya,
Dreamweaver MX juga memiliki dua bentuk
layar, yaitu bentuk halaman design dan halaman code. Hal ini akan mempermudah untuk menambahkan script yang berbasis PHP maupun Javascript. Dreamweaver MX selain
mendukung pembuatan web yang berbasis HTML, juga dapat mendukung program-program web yang lain di antaranya PHP, ASP, Perl, Javascript, dan lain-lain (Nugroho 2004).
CDS/ISIS
CDS/ISIS (Computerized Documentation
Sevices/Integrated Sets Of Information Systems) merupakan suatu program paket
terapan komputer yang dirancang khusus untuk menangani basis data yang berupa teks (non numerik) terutama data bibliografi yang sering ditangani sebagai kegiatan layanan pada pusat informasi, perpustakaan, ataupun pusat dokumentasi.
CDS/ISIS diciptakan oleh UNESCO
division of software Development and Application Office of Information Programmers and Services pada tahun 1985 (
Unesco 1989). Versi terakhir yang telah dikembangkan ialah versi 3.07. Program aplikasi ini juga dibuat ke dalam berbagai format sesuai dengan jenis perangkat keras yang digunakan antara lain untuk micro, mini, dan juga mainframe.
Kemampuan yang terdapat pada CDS/ISIS ialah :
Derajat kompatibilitas tinggi karena dapat
dioperasikan pada bermacam-macam
platform ( melakukan penyesuaian dengan
fitur mesin).
Memiliki fasilitas temu balik teks yang canggih, hal ini dikarenakan CDS/ISIS menggunakan teknik pengindeksan dalam proses penelusuran data dan mempunyai karakteristik Database Management System (DBMS).
Dapat digunakan pada sistem jaringan. Sistem multiuser yang dipakai telah memiliki teknik pencegahan terjadinya
deadlock (pengubahan suatu data oleh
beberapa pemakai).
Dilengkapi dengan fasilitas pemrograman yang menggunakan bahasa PASCAL versi
CDS/ISIS (Pascal ISIS), sehingga
pengembangan program aplikasi dapat dilakukan lebih lanjut sesuai kebutuhan pemakai.
Menu CDS/ISIS dapat dimodifikasi dan dibuat ke dalam beberapa bahasa yang mudah dimengerti oleh pemakai.
Menyediakan fasilitas pengamanan data dengan menyesuaikan tingkat jabatan pemakai. Semakin tinggi jabatan semakin banyak data yang bisa diakses.
Untuk kapasitas CDS/ISIS dapat dilihat pada Tabel berikut ini:
Internet Web Browser(Firefox,Nestcape)
Relational Database (MySQL Oracle, MSSQL) Web Server (Apache) Middleware PHP, ColdFusion, ASP
Tabel 1 Kapasitas yang disediakan dalam program CDS/ISIS
KAPASITAS JUMLAH
Basisdata Tergantung
harddisk Record satu file 16 juta
Karakter dalam record 8000
Field dalam satu record 200
Panjang satu field 8000
Banyak field dalam 1 19
Halaman dalam 1 worksheet 20
Karakter format tampilan 4000
Karakter pada stop-words list 799
Salah satu keunggulan utama yang disediakan oleh CDS/ISIS ialah dapat memanipulasi jumlah data tak terbatas yang mengandung perbedaan elemen data yang kompleks. Untuk para pengguna ahli, CDS/ISIS menyediakan pilihan fasilitas pemrograman yang sangat luas tergantung spesialisasi pembuatan aplikasi menurut penggunaannya. CDS/ISIS juga menyediakan
library eksternal pemrograman yaitu ISIS_DLL yang menyediakan segala alat yang
dibutuhkan untuk membangun aplikasi
berbasis CDS/ISIS. MySQL
Salah satu basisdata server yang cukup terkenal saat ini adalah MySQL. Basisdata
server keluaran T.c.X DataKonsultAB, sebuah
perusahaan IT Swedia ini, menawarkan berbagai keunggulan dibandingkan basisdata
server lain, yaitu:
Sangat cepat mengeksekusi perintah Mampu menangani jutaan user dalam waktu yang bersamaan
Mampu menampung lebih dari 50.000.000
record.
Konektivitas jaringan yang memungkinkan pengguna dapat mengakses basisdata dari mana saja melalui internet.
Dapat berjalan baik pada berbagai platform UNIX layaknya pada sistem non-UNIX seperti Windows dan OS/2.
Mempunyai dukungan open source.
Kelebihan lain dari MySQL adalah
penggunaan bahasa Query standar yang dimiliki SQL (Structure Query Language).
SQL adalah suatu bahasa permintaan
terstruktur yang telah distandarkan untuk semua program pengakses basisdata seperti Oracle, PostgreSQL, SQL Server, dan lain-lain. Sebagai sebuah program penghasil basisdata, MySQL tidak dapat berjalan sendiri tanpa adanya sebuah aplikasi lain (interface). MySQL dapat didukung oleh hampir semua program aplikasi baik open source seperti PHP maupun yang tidak, yang terdapat pada
platform Windows seperti Visual Basic,
Delphi, dan lainnya. PHP-OPENISIS
PHP-OPENISIS merupakan port
OPENISIS ke PHP dalam bentuk extension PHP. OPENISIS itu sendiri merupakan
command-line tool untuk membaca basisdata native CDS/ISIS.
JPGRAPH
JPGRAPH adalah sebuah library
berorientasi objek lengkap untuk
menggambar grafik menggunakan PHP.
JPGRAPH dikeluarkan dibawah lisensi QPL 0.1 (Qt license) untuk penggunaan non komersial dan lisensi JPGRAPH Professional untuk penggunaan komersial.
JPGRAPH memiliki banyak kelas yang memudahkan kita untuk membuat grafik lebih lengkap dan variatif. Kita bisa memakai kelas-kelas tersebut untuk membuat bermacam-macam grafik di antaranya adalah grafik batang, grafik garis, scatter plot, error plot,
box and stock charts, radar plot, pie plot, dll.
Total kelas dan method yang dimiliki oleh JPGRAPH ialah 101 dan 948.
Metode Pengembangan Sistem Waterfall Menurut Sommerville (2001), metode pengembangan sistem Waterfall terbagi menjadi beberapa tahapan, yaitu:
a. Tahap analisis Kebutuhan
Merupakan tahap untuk mengumpulkan informasi kebutuhan sistem yang akan dibuat, menganalisis pengguna yang akan berinteraksi dengan sistem, tugas yang dilakukan pengguna, dan lingkungan sistem. Pada tahap ini, dilakukan komunikasi dengan pengguna
untuk mengumpulkan informasi yang
diperlukan. Selanjutnya, dari informasi yang diperoleh, didefinisikan secara detail dan disajikan sebagai spesifikasi sistem.
b. Perancangan
Merupakan tahap yang mendefinisikan
informasi kebutuhan menjadi suatu
representasi sistem sebelum
diimplementasikan. Pada tahap ini, dirancang pula arsitektur sistem secara keseluruhan.
c. Implementasi
Merupakan tahap yang merealisasikan rancangan menjadi kumpulan program atau unit-unit program sehingga menjadi suatu sistem yang dapat digunakan.
d. Integrasi dan Pengujian
Unit-unit program yang sudah dibuat diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa semua kebutuhan sudah terpenuhi. Setelah pengujian selesai dilakukan, sistem siap untuk dilaksanakan.
e. Penggunaan dan Pemeliharaan
Fase ini umumnya menjadi fase terpanjang dalam siklus hidup sistem. Fase pemeliharaan meliputi koreksi error yang tidak ditemukan pada tahap sebelumnya. Pemeliharaan juga dilakukan untuk memperbaiki implementasi unit-unit sistem dan menambahkan layanan-layanan baru ketika muncul kebutuhan yang baru.
Sistem Berorientasi Objek
Objek adalah komponen software yang memodelkan entitas nyata; memiliki data, fungsi, dan sifat yang dinamik.
Sebuah sistem yang dibangun berdasarkan metode berorientasi objek adalah sebuah sistem yang komponennya dienkapsulasi menjadi kelompok data dan fungsi yang dapat mewarisi atribut dan sifat komponen lainnya, dan komponen-komponen tersebut saling berinteraksi satu sama lain (Meyer 1997). Kelebihan Software berorientasi objek adalah:
Reused Code, kode-kode yang telah dibuat
dapat dipergunakan kembali. Kode lebih ringkas, lebih sedikit kesalahan, konsisten, dan mudah untuk dipelihara
Enkapsulasi, yaitu pemecahan masalah ke
bentuk yang lebih kecil. Dengan adanya enkapsulasi, perubahan pada suatu bagian berimplikasi minimum ke bagian lainnya.
Communicable, source code lebih natural
dan lebih mudah dijelskan ke anggota tim.
Testable, setiap kelas dapat dites secara
individual, lebih mudah untuk dipisahkan, dan lebih mudah untuk membetulkan kesalahan.
Kelas adalah kumpulan objek yang
mempunyai atribut yang sama. Kelas adalah definisi statik dari entitas. Entitas adalah atribut kelas, variable lokal, parameter formal, dan hasil fungsi.
Tujuh langkah untuk mendapatkan hasil
software yang memuaskan (Meyer 1997)
adalah:
Modularisasi, sistem dimodularisasi berdasarkan struktur objek.
Abstraksi data, objek harus dideskripsikan sebagai implementasi dari ADT (Abstract
Definition Type).
Classes, setiap tipe yang tidak sederhana
adalah sebuah modul, setiap modul adalah tipe tingkat tinggi.
Inheritance, sebuah kelas dapat didefinisikan berdasarkan ekstensi atau restriksi dari kelas lain.
Polimorphisme, entitas program harus
dimungkinkan untuk mengacu kepada lebih dari satu kelas dan operasi harus dimungkinkan untuk lebih dari satu kelas.
Multiple and repeated inheritance, harus
dimungkinkan untuk membuat deklarasi kelas sebagai pewaris dari banyak kelas, dan lebih dari satu jika pewarisnya sebuah kelas.
Pengembangan sistem dengan metode berorientasi objek dapat meningkatkan :
Produktivitas
Kecepatan pengembangan Kualitas perangkat lunak Kemudahan pemeliharaan Model-View-Controller (MVC)
MVC adalah suatu rancangan aplikasi yang terdiri atas tiga bagian yaitu: Model, View, dan
Controller, sehingga membuat pengembangan
aplikasi menjadi lebih mudah. MVC
dikembangkan untuk memetakan input,
proses, dan output ke dalam user interfaces (Marston 2004). MVC pattern mengatur dan memisahkan software ke dalam tiga bagian, yaitu:
1. Model, berfungsi untuk mengenkapsulasi application data, application flow, dan bussiness logic.
2. View, berfungsi untuk mengekstrak data dari Model dan memformatnya ke dalam bentuk presentasi.
3.Controller, menjalankan application flow
dan menerima input dari user,
mengubahnya untuk dikirim ke Model dan
View. ( Sweat 2005)
Hubungan di antara bagian-bagian MVC dapat dlihat pada Gambar 2.
MVC Pattern pertama kali dibangun oleh Trygve Reenskaug dari Xerox’s Palo Alto
Research Centre (PARC) di tahun 1970. Di
lain pihak, referensi implementasinya pertama kali dibangun oleh Tim SmallTalk-80 untuk memecahkan masalah interaksi GUI (
Graphical User Interfaces) pada aplikasi.
HTTP Request
HTTP Response Gambar 2 Hubungan antar bagian MVC
(Sweat 2005)
Penjelasan dari masing-masing bagian adalah sebagai berikut:
Model
Model merupakan representasi dari proses
bisnis di dalam aplikasi perangkat lunak. Lebih mudahnya, dapat juga disebutkan bahwa Model adalah bagian yang bertugas untuk mengolah data mentah menjadi data yang mengandung arti yang diinginkan oleh pengguna.
View
View mengatur antarmuka dari sistem,
mengatur output baik grafis maupun teks, yang nantinya dikirimkan ke pengguna aplikasi. Format HTML merupakan contoh
umum hasil akhir yang dikirimkan dalam aplikasi web.
Controller
Controller merepresentasikan permintaan
yang datang (HTTP request) dari pengguna berupa input dari keyboard atau mouse, memerintahkan Model untuk memproses
aksi berdasarkan input, kemudian
menampilkan hasil dari aksi tersebut ke
View.
Alur komunikasi antar tiap bagian MVC diawali oleh permintaan dari user yang diekspresikan oleh HTTP Request. HTTP
Request dikirimkan ke Controller. Kemudian Controller akan menterjemahkan HTTP Request tersebut sebagai perintah request
data dan mengirimkannya ke Model.
Kemudian Model akan menjalankan perintah tersebut dan menghasilkan data hasil. Setelah itu, Controller akan memerintahkan View
Untuk menampilkan data hasil. View
melaksanakan perintah tersebut dengan cara mengambil data hasil, memformatnya ke dalam bentuk presentasi, dan mengirimkan hasilnya untuk ditampilkan (HTTP Response). Alur komunikasi antar tiap bagian MVC dapat dilihat pada Gambar 3.
Gambar 3 Alur komunikasi Antar tiap bagian MVC ( Sweat 2005) Jaringan Syaraf Tiruan
Jaringan Syaraf Tiruan (JST) merupakan suatu sistem pemroses informasi yang memiliki persamaan secara umum dengan cara kerja jaringan syaraf biologi (Fausett 1994). Secara matematis, untuk suatu syaraf, setiap input Xi dimodulasikan oleh sebuah
pembobot Wi sehingga jumlah total input
dinyatakan sebagai:
i i i
W
X
...
(1) atau dalam bentuk vektor, X.W, dimana X = [X1, X2, …, Xn] dan W = [W1, W2, …, Wn].Sinyal input selanjutnya diproses oleh fungsi aktivasi (activation function) untuk menghasilkan sinyal output, yang jika tidak nol, akan ditransmisikan sebagai output (Fu 1994).
Model
Controlle
r
Jaringan syaraf merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan digunakan karena pada
pengimplementasiannya jaringan ini
menggunakan komputer agar mampu
menyelesaikan sejumlah proses perhitungan
selama proses pembelajaran. Dengan
demikian, bisa dikatakan bahwa jaringan syaraf tiruan merupakan sistem pemrosesan informasi yang memiliki karakteristik hampir sama dengan jaringan jaringan neural biologis yaitu otak manusia.
Neuron dan hubungan antar synapses merupakan elemen kunci untuk proses informasi pada jaringan. Lihat gambar dia atas. Sebagian besar proses neuron terlihat seperti pohon yang disebut dengan dendrites yang menerima sinyal dari neuron lainnya melewati persimpangan yang disebut Synapse. Menurut Fausett (1994), suatu JST dicirikan oleh tiga hal sebagai berikut:
1. Arsitektur JST
Arsitektur jaringan ialah pengaturan
neuron dalam suatu lapisan, pola hubungan dalam lapisan dan di antara lapisan. Dalam JST, neuron-neuron diatur dalam sebuah lapisan (layer). Ada tiga tipe lapisan, yaitu lapisan input, lapisan tersembunyi (hidden layer) dan lapisan output. Jaringan neuron dikelompokkan sebagai lapis tunggal (single layer) yang terdiri atas lapisan input dan output, dan lapis banyak (multiple layer) yang terdiri atas lapisan input, lapisan tersembunyi, dan lapisan output. Ilustrasi JST lapis tunggal dapat dilihat dalam Gambar 4.
Gambar 4 Arsitektur JST lapis tunggal 2. Metode pembelajaran untuk penentuan
pembobot koneksi.
Metode pembelajaran digunakan untuk menentukan nilai pembobot yang akan digunakan pada saat pengujian. Ada dua
tipe pembelajaran, yaitu dengan
pengarahan (supervised learning) dan tanpa pengarahan (unsupervised learning). Di lain pihak, metode pembelajaran JST, di antaranya: Perceptron, Aturan Delta (Adaline/Madaline), Backpropagation, Self Organizing Map (SOM), dan
Learning Vector Quantization (LVQ) .
3. Fungsi aktivasi yang digunakan.
Fungsi aktivasi merupakan fungsi yang menentukan level aktivasi, yaitu keadaan internal sebuah neuron dalam JST. Keluaran aktivasi ini biasanya dikirim sebagai sinyal ke neuron lainnya. Contoh fungsi aktivasi ialah fungsi identitas fungsi tangga biner (binary step function), fungsi tangga bipolar, fungsi sigmoid biner dan fungsi sigmoid bipolar.
JST Propagasi Balik Standar
Menurut Fu (1994), jaringan propagasi balik (propagation network) merupakan jaringan umpan maju berlapis banyak (multilayer feedforward network). Aturan pembelajaran propagasi balik disebut
backpropagation yang merupakan jenis dari
teknik gradient descent dengan backward
error (gradient) propagation.
Fungsi aktivasi yang digunakan dalam propagasi balik ialah fungsi sigmoid. Hal ini disebabkan karena dalam jaringan propagasi balik fungsi aktivasi yang digunakan harus kontinu, dapat didiferensialkan, dan monoton naik (Fausett 1994). Salah satu fungsi aktivasi yang paling banyak digunakan ialah sigmoid biner, yang memiliki selang [0, 1] dan didefinisikan sebagai: ) exp( 1 1 ) ( 1 x x f ... (2) Dengan turunannya )] ( 1 )[ ( ) ( ' 1 1 1 x f x f x f ... (3)
Grafik untuk fungsi sigmoid biner dapat diihat dalam Gambar 5.
Gambar 5 Grafik fungsi sigmoid biner dengan selang (0,1)
Fungsi aktivasi lain yang biasa digunakan ialah sigmoid bipolar, yang memiliki selang nilai [-1, 1], dan didefinisikan sebagai:
1 ) exp( 1 2 ) ( 2 x x f ... (4) n a wr w3 w1 w2 pr p3 p2 p1 b f
Dengan turunannya: )] ( 1 )][ ( 1 [ 2 1 ) ( ' 2 2 2 x f x f x f ... (5)
Grafik untuk fungsi sigmoid bipolar dapat dilihat dalam Gambar 6.
Gambar 6 Grafik fungsi sigmoid bipolar dengan selang (-1,1)
Jaringan ini menggunakan metode
pembelajaran dengan pengarahan (supervised
learning). Cara kerja JST diawali dengan
inisialisasi pembobot dan bias. Pemilihan metode inisialisasi pembobot dan bias berpengaruh pada kecepatan JST dalam mencapai kekonvergenan. (Fausett, 1994). JST propagasi balik ditunjukkan dalam Gambar 7.
Gambar 7 Arsitektur JST propagasi balik (Fu 1994)
Pada pelatihan JST propagasi balik terdapat tiga tahapan, yaitu pelatihan input yang bersifat umpan maju, penghitungan galat, dan penyesuaian pembobot. Secara umum cara kerja JST propagasi balik ada beberapa langkah. Pertama, pola input dan target dimasukkan ke dalam jaringan. Selanjutnya pola input ini akan berubah sesuai dengan propagasi pola tersebut ke lapisan-lapisan berikutnya hingga menghasilkan output. Output ini akan dibandingkan dengan target. Apabila dari hasil perbandingan ini
dihasilkan nilai yang sama, proses
pembelajaran akan berhenti. Tetapi apabila berbeda, maka jaringan mengubah pembobot yang ada pada hubungan antar neuron dengan suatu aturan tertentu agar nilai output lebih mendekati nilai target. Proses pengubahan
pembobot adalah dengan cara
mempropagasikan kembali nilai korelasi galat output jaringan ke lapisan-lapisan sebelumnya (propagasi balik). Kemudian dari lapisan input, pola akan diproses lagi untuk mengubah nilai pembobot, hingga akhirnya memperoleh output jaringan baru. Proses ini dilakukan berulang-ulang sampai diperoleh nilai yang sama atau minimal sesuai dengan galat yang diinginkan. Proses perubahan pembobot inilah yang disebut proses pembelajaran.
Algoritma propagasi balik ialah sebagai berikut (Fu 1994):
Inisialisasi pembobot.
Tentukan semua pembobot dan threshold untuk tiap node dengan nilai yang kecil.
Threshold untuk node ialah negatif dari
pembobot dari unit bias (yang level aktivasinya ditetapkan 1).
Penghitungan fungsi aktivasi.
1. Tingkat aktivasi unit input ditentukan oleh contoh yang telah diberikan pada
network.
2. Tingkat aktivasi Oj unit tersembunyi
dan output ditentukan oleh:
)
(
j i ji jF
W
O
O
... (6)Dimana Wji adalah pembobot dari unit
Oi, i ialah threshold dari node, dan F
adalah fungsi sigmoid:
a e F 1 1 ) ( ...(7) Pelatihan bobot.
1. Dimulai dari unit-unit output dan dilakukan backward menuju lapisan tersembunyi secara rekursif. Perubahan pembobot sebagai berikut:
ji ji
ji
t
w
t
w
W
(
1
)
(
)
... (8)Dengan Wji(t) adalah pembobot dari unit i ke unit j pada saat t iterasi ke-t dan Wji adalah koreksi pembobot.
2. Perubahan pembobot dihitung dengan: i
j
ji
O
W
... .(9) Dengan adalah trial independentlearning rate dan j adalah error
gradient pada unit j.
3. Error gradient dihitung sebagai berikut:
untuk unit output:
j = Oj(1-Oj)(Tj-Oj) ... (10) Backward Error Propagation OUTPUT LAYER HIDDEN LAYER INPUT LAYER Input Actual Output Forward Information Flow Forward Information Flow Target Output
Dengan Tj adalah aktivasi output
(target yang diharapkan dan Oj adalah
aktivasi output aktual pada unit output
j).
untuk lapisan tersembunyi:
j = Oj(1-Oj) k Wkj ... (11)
Dengan j adalah error gradient pada
unit k yang memiliki koneksi dari unit tersembunyi j.
3. Iterasi diulangi sampai konvergen terhadap kriteria error yang ditentukan. Satu iterasi meliputi pemberian contoh, penghitungan aktivasi dan modifikasi pembobot.
METODE PENELITIAN
Metode pengembangan sistem dalam penelitian ini adalah metode pengembangan sistem Waterfall yang terdiri dari beberapa tahapan yaitu analisis, perancangan, implementasi, integrasi dan pengujian, dan penggunaan dan pemeliharaan. Perancangan dengan tahapan-tahapan yang disediakan berguna untuk membangun sistem yang optimal.Data
Data yang digunakan dalam penelitian ini terdiri dari 2 jenis data, yaitu data pengunjung dan data sirkulasi. Data tersebut berasal dari
basisdata CDS/ISIS. Data pengunjung
berjumlah 19080 record yang terdiri dari 1
record pengunjung bulan Mei 2005, 3691 record pengunjung bulan Januari 2006, dan
sisanya adalah pengunjung bulan Februari 2006. Data sirkulasi terdiri dari 29088 record. Lingkungan Pengembangan
Perangkat keras dan perangkat lunak yang digunakan dalam mengembangkan sistem ini adalah:
Perangkat keras
1. Prosessor Intel Celeron 1,7 GHz 2. RAM 256 MB
3. Harddisk 40 GB
4. Monitor Resolusi 1024 x 768
5. Mouse dan Keyboard Perangkat Lunak
1. Sistem operasi : Microsoft Windows XP Professional
2. Web server: Apache
3. DBMS: CDS/ISIS dan MySQL
4. Scripting Language: PHP 4.2.1
5.Grafik : JPGraph OO Library
6. Editor Teks: Macromedia Dreamweaver
MX.
7. Adobe Photoshop 7.0 untuk membantu membuat tampilan desain antarmuka.
PENGEMBANGAN SISTEM
Sistem dikembangkan dengan
menggunakan metode pengembangan sistem Waterfall. Pengembangan dengan tahapan-tahapan yang disediakan berguna untuk membangun sistem yang optimal. Menurut Sommerville (2001), tahapan metode pengembangan sistem Waterfall terdiri atas analisis, perancangan, implementasi, integrasi
dan pengujian, dan penggunaan dan
pemeliharaan. Analisis
Bagian sirkulasi Perpustakaan IPB memiliki kebutuhan untuk mengolah data perpustakaan menjadi data statistik. Data statistik tersebut dibutuhkan sebagai bagian dari laporan evaluasi kinerja Perpustakaan IPB setiap tahunnya. Kebutuhan tersebut meliputi pembuatan grafik statistik jumlah pengunjung setiap departemen per bulan maupun per tahun, grafik statistik jumlah peminjam setiap departemen per bulan maupun per tahun, data pengunjung tersering, data peminjam tersering, dan data koleksi dipinjam tersering. Pembuatan data statistik tersebut dikerjakan secara manual dengan cara mengubah data berformat CDS/ISIS ke dalam data berformat Microsoft Excel kemudian diolah dengan software tersebut. Karena dikerjakan secara manual, output yang dihasilkan rentan dengan kesalahan yang diakibatkan oleh faktor kelalaian manusia. Aplikasi Statistik Perpustakaan IPB diharapkan nantinya akan mengatasi masalah tersebut di atas. Untuk menghasilkan data statistik, pengguna aplikasi ini, yaitu pegawai bagian sirkulasi Perpustakaan IPB,
nantinya cukup mengisi form dengan
parameter yang dibutuhkan.
Maksud dan tujuan dari tahap ini adalah untuk mendapatkan informasi yang tepat mengenai apa saja yang harus dilakukan oleh aplikasi ini. Berdasarkan hasil analisis, kebutuhan yang diperlukan untuk Aplikasi Statistik Perpustakaan IPB terbagi dalam empat menu utama, yaitu :
1. Statistik Pengunjung
Statistik pengunjung dibutuhkan untuk mengetahui banyaknya kunjungan pengguna perpustakaan setiap bulan dan setiap tahunnya. Kebutuhan dalam menu ini terbagi dalam beberapa submenu, yaitu:
Pengunjung departemen elemen fakultas Pada submenu ini aplikasi diharapkan
memiliki fasilitas untuk menampilkan grafik statistik, data detail, intensitas
kunjungan, dan report yang
menggambarkan banyaknya pengunjung yang berasal dari setiap departemen pada fakultas tertentu dalam periode bulanan maupun tahunan. Report yang ditampilkan berisi analisis data di antaranya adalah: pengunjung tersering suatu fakultas, data dan grafik persentase kunjungan tiap departemen, data dan grafik intensitas kunjungan per hari, grafik intensitas kunjungan per jam, dan grafik prediksi kunjungan minggu depan.
Pengunjung departemen elemen mahasiswa Pada submenu ini aplikasi diharapkan
memiliki fasilitas untuk menampilkan grafik statistik, data detail, intensitas
kunjungan, dan report yang
menggambarkan banyaknya pengunjung yang berasal dari setiap departemen di seluruh fakultas dalam periode bulanan maupun tahunan. Report yang ditampilkan berisi analisis data di antaranya adalah: pengunjung tersering dari seluruh fakultas, data dan grafik persentase kunjungan seluruh fakultas, data dan grafik intensitas kunjungan per hari, grafik intensitas kunjungan per jam, dan grafik prediksi kunjungan minggu depan.
Pengunjung elemen golongan
Pada submenu ini aplikasi diharapkan memiliki fasilitas untuk menampilkan grafik statistik, data detail, intensitas
kunjungan, dan report yang
menggambarkan banyaknya pengunjung yang berasal dari setiap elemen anggota mahasiswa, anggota luar biasa, dan tamu dalam periode bulanan maupun tahunan.
Report yang ditampilkan berisi analisis data
diantaranya adalah: pengunjung tersering dari seluruh fakultas ditambah dengan elemen golongan lainnya, data dan grafik persentase kunjungan seluruh fakultas dan elemen golongan lainnya, data dan grafik intensitas kunjungan per hari, grafik intensitas kunjungan per jam, dan grafik prediksi kunjungan minggu depan.
2. Statistik Peminjam
Statistik peminjam dibutuhkan untuk mengetahui banyaknya pinjaman pengguna perpustakaan setiap bulan dan setiap tahunnya. Kebutuhan dalam menu ini terbagi dalam beberapa submenu, yaitu:
Peminjam departemen elemen fakultas
Pada submenu ini aplikasi diharapkan memiliki fasilitas untuk menampilkan grafik statistik, data detail, intensitas
kunjungan, dan report yang
menggambarkan banyaknya peminjam yang berasal dari setiap departemen pada fakultas tertentu dalam periode bulanan maupun tahunan. Report yang ditampilkan berisi analisis data di antaranya adalah: peminjam tersering suatu fakultas, data dan grafik persentase peminjaman tiap departemen, data dan grafik intensitas peminjaman per hari, dan grafik prediksi peminjaman minggu depan.
Peminjam departemen elemen mahasiswa Pada submenu ini aplikasi diharapkan memiliki fasilitas untuk menampilkan grafik statistik, data detail, intensitas
peminjaman, dan report yang
menggambarkan banyaknya peminjam yang berasal dari setiap departemen di seluruh fakultas dalam periode bulanan maupun tahunan. Report yang ditampilkan berisi analisis data di antaranya adalah: peminjam tersering dari seluruh fakultas, data dan grafik persentase peminjaman seluruh fakultas, data dan grafik intensitas peminjaman per hari, dan grafik prediksi peminjaman minggu depan.
Peminjam elemen golongan.
Pada submenu ini aplikasi diharapkan memiliki fasilitas untuk menampilkan grafik statistik, data detail, intensitas
peminjaman, dan report yang
menggambarkan banyaknya peminjam yang berasal dari seluruh fakultas ditambah dengan elemen golongan lainnya dalam periode bulanan maupun tahunan. Report yang ditampilkan berisi analisis data di antaranya adalah: peminjam tersering dari seluruh fakultas ditambah elemen golongan lainnya, data dan grafik persentase peminjaman seluruh fakultas, data dan grafik intensitas peminjaman per hari, dan grafik prediksi kunjungan minggu depan. 3. Statistik Koleksi
Statistik koleksi dibutuhkan untuk mengetahui banyaknya koleksi yang dipinjam pengguna perpustakaan setiap bulan dan setiap tahunnya. Kebutuhan dalam menu ini terbagi dalam beberapa submenu, yaitu: :
Koleksi dipinjam dari suatu kelas.
Pada submenu ini aplikasi diharapkan dapat menampilkan grafik statistik, data detail, dan report yang menggambarkan banyaknya koleksi yang dipinjam dari suatu kelas tertentu dalam periode bulanan maupun tahunan. Report yang dihasilkan
berisi analisis data di antaranya adalah koleksi buku yang dipinjam tersering dan data beserta grafik persentase kelas koleksi buku yang dipinjam.
Koleksi dipinjam dari seluruh kelas
Pada submenu ini aplikasi diharapkan dapat menampilkan grafik statistik, data detail, dan report yang menggambarkan banyaknya koleksi yang dipinjam dari seluruh kelas koleksi yaitu dari Kelas Satu sampai dengan Kelas Sembilan dalam periode bulanan maupun tahunan. Report yang dihasilkan berisi analisis data di antaranya adalah koleksi buku yang dipinjam tersering dan data beserta grafik persentase kelas koleksi buku yang dipinjam.
Dari hasil analisis di atas, secara garis besar dapat kita simpulkan bahwa fasilitas-fasilitas yang dibutuhkan pada Aplikasi ini adalah:
Grafik statistik dari seluruh submenu. Data detail dari seluruh submenu.
Tabel intensitas dari submenu yang berasal dari menu statistik pengunjung dan menu statistik peminjam.
Report dari seluruh submenu.
Sebagai acuan dalam mengembangkan aplikasi ini, maka dibuatlah sebuah Diagram Konteks, DFD level 1, DFD level 2, dan Class
Diagram. Untuk Diagram Konteks dan DFD
level 1 dapat dilihat pada Gambar 8 dan Gambar 9. Untuk DFD level 2 dapat dilihat pada Lampiran 1. Di sisi lain, untuk Class
Diagram dapat dilihat pada Lampiran 2.
Diagram Konteks pada Gambar 8 dapat dijelaskan sebagai berikut: parameter-parameter yang dikirimkan pengguna berupa bulan, tahun, asal fakultas, dan asal basisdata
ditangkap oleh Aplikasi Statistik
Perpustakaan IPB sebagai permintaan yang kemudian dipakai untuk mengolah data pada basisdata MySQL menjadi data hasil yang diinginkan. Data hasil tersebut kemudian
dikirim kepada pengguna.
Gambar 8 Diagram Konteks
DFD level 1 pada Gambar 9 dapat dijelaskan sebagai berikut: Model terdiri dari 2 proses utama yaitu proses Model_Sql dan
proses Model. Fungsi utama proses
Model_Sql adalah mentransfer basisdata
CDS/ISIS menjadi basisdata MySQL
sedangkan proses bisnis yang sesungguhnya
ditangani oleh proses Model. Untuk
meningkatkan efisiensi waktu, proses Model_Sql nantinya hanya akan dijalankan sekali dalam seminggu. Dalam diagram ini, paramter-parameter yang dimasukkan oleh pengguna dikenali oleh proses Controller sebagai permintaan. Permintaan tersebut kemudian direspon oleh proses Controller dengan memanggil fungsi pada proses Model untuk menghasilkan data yang diinginkan oleh pengguna, kemudian proses Controller akan memanggil proses View untuk menampilkan data yang telah dihasilkan oleh proses Model
kepada pengguna. Proses View akan
mengambil data dari proses Model dan
dibentuk ke dalam tabel atau grafik untuk kemudian ditampilkan kepada pengguna. Perancangan
Pada Aplikasi Statistik Perpustakaan IPB, akan dikembangkan perancangan antar muka dan proses dengan menggunakan konsep MVC. MVC memetakan input, proses, dan output ke dalam user interface.
Alasan digunakan MVC dalam penelitian
ini adalah untuk kemudahan dalam
pengelolaan dan perbaikan sistem. Hal ini dikarenakan MVC memisahkan perancangan sistem menjadi tiga bagian, yaitu bussines
logic sebagai Model, tampilan antarmuka
pengguna sebagai View dan Controller yang mengatur kerja sistem secara keseluruhan. 1. Model
Model bertugas untuk mengolah data
berdasarkan perintah dari Controller yang kemudian hasilnya akan ditangkap oleh View. Berdasarkan hasil analisis, Model ditangani oleh dua proses utama yaitu proses Model_Sql dan proses Model. Fungsi utama proses Model_Sql adalah mentransfer basisdata
CDS/ISIS menjadi basisdata MySQL
sedangkan proses bisnis yang sesungguhnya ditangani oleh proses Model. Proses Model terdiri dari beberapa fungsi yang akan digunakan untuk bussines logic di dalam sistem. Fungsi fungsi yang ada di dalam proses Model dan kegunaannya dapat dilihat di Tabel 2. Di sisi lain, fungsi-fungsi yang terdapat di dalam proses Model_Sql dan kegunaannya dapat dilihat pada Lampiran 3.
Tabel 2 Fungsi fungsi pada Model Nama Fungsi Kegunaan
get_fakdep_pg() Mendapatkan data
pengunjung tiap
departemen pada
fakultas tertentu
get_em_pg() Mendapatkan data
pengunjung semua
fakultas
get_elmgol_pg() Mendapatkan data
pengunjung semua fakultas ditambah dengan elemen golongan lainnya get_intensitas_ kunjungan_bulan () Mendapatkan data intensitas kunjungan tiap hari dan tiap jam dalam bulan tertentu get_intensitas_
kunjungan_tahun ()
Mendapatkan data
intensitas kunjungan tiap hari tiap jam selama tahun tertentu get_intensitas_ra
ta_pg()
Mendapatkan rata-rata intensitas kunjungan tiap hari dalam bulan atau tahun tertentu
get_fakdep_pj() Mendapatkan data
pengunjung tiap
departemen pada
fakultas tertentu
get_em_pj() Mendapatkan data
pengunjung semua
fakultas
get_elmgol_pj() Mendapatkan data
peminjam semua fakultas ditambah dengan elemen golongan lainnya. get_intensitas_ peminjaman_ bulan() Mendapatkan data intensitas peminjaman tiap hari dalam bulan tertentu get_intensitas_ peminjaman_ tahun() Mendapatkan data intensitas peminjaman tiap hari dalam tahun tertentu
get_intensitas_ra ta_pj()
Mendapatkan rata-rata intensitas peminjaman tiap hari dalam bulan atau tahun tertentu
get_kelas_kl() Mendapatkan data
koleksi dipinjam dari kelas tertentu
Lanjutan Tabel 2 Fungsi fungsi pada Model Nama Fungsi Kegunaan
get_ku_kl() Mendapatkan data
koleksi dipinjam dari semua kelas
get_grafikvalue_ fakdep()
Mendapatkan data
grafik pengunjung atau
peminjam tiap departemen pada fakultas tertentu get_grafikvalue_ emeg Mendapatkan data
grafik pengunjung atau peminjam tiap fakultas atau elemen golongan
maks_value() Mendapatkan nilai
tertinggi pengunjung atau peminjaman
ekspor() Mengekspor data ke
dalam format Microsoft Excel
2. View
View dalam Aplikasi Statistik Perpustakaan IPB ini bertugas untuk menangkap data hasil dari Model yaitu berupa data grafik, data detail, dan data report kemudian mengubahnya ke dalam format presentasi dan menampilkannya kepada pengguna. Layout View secara umum terdiri dari :
Header
Header Aplikasi Statistik Perpustakaan IPB
diletakkan pada bagian Atas berisi logo IPB dan nama aplikasi.
Link Navigasi
Link navigasi diletakan setelah Header. Link ini merupakan representasi dari menu.
Dari link ini pengguna bisa memilih menu mana yang diinginkan. Menu pada link ini terdiri dari enam menu utama dan dua menu tambahan. Enam menu utama yaitu: menu statistik pengunjung bulanan, statistik pengunjung tahunan, statistik peminjam bulanan, statistik peminjam tahunan, statistik koleksi bulanan, dan statistik koleksi tahunan. Di sisi lain, dua menu tambahan yaitu: Home dan Appendices.
Home merupakan halaman pembuka dan Appendices merupakan halaman yang berisi
keterangan istilah-istilah yang dipakai dalam aplikasi ini.
Header Form
Header Form diletakkan di atas Form dan
merepresentasikan halaman menu yang sedang aktif.
Form
Form aplikasi ini terdiri dari beberapa listbox yang berguna untuk memilih
kombinasi antara bulan, tahun, fakultas dan basisdata yang diinginkan pengguna.
Link Navigasi Hasil
Link Navigasi Hasil terdiri dari empat link
yaitu: Link Grafik, Link Data Detail, Link Tabel Intensitas, dan Link Report. Link Grafik berfungsi untuk menampilkan hasil grafik statistik, Link Data Detail untuk menampilkan hasil data detail, Link Tabel Intensitas untuk menampilkan hasil tabel intensitas, dan Link Report untuk menampilkan hasil report.
Grafik
Grafik Aplikasi Statistik Perpustakaan IPB diletakkan pada bagian atas.
Data Detail
Data Detail merupakan tampilan data-data hasil proses pada Model secara detail. Tabel Intensitas
Tabel Intensitas merupakan tampilan tabel intensitas peminjaman tiap hari atau tabel intensitas kunjungan tiap hari per jamnya.
Report
Report merupakan tampilan untuk mengemas grafik statistik dan hasil analisis data dalam bentuk laporan.
Layout View Aplikasi Statistik
Perpustakaan IPB secara umum dapat dilihat Gambar 10. Header Link Navigasi Header Form Form grafik tabel intensitas data detail report Footer
Gambar 10 Layout umum View Aplikasi Statistik Perpustakaan IPB
Fungsi fungsi pada View dapat dilihat pada Tabel 3.
Tabel 3 Fungsi-fungsi pada View
Nama Fungsi
setheader Membuat header
aplikasi
Setform() Membuat form periode
bulanan
Setform2() Membuat form periode
tahunan
Judul() Membuat judul grafik
Subjudul() Membuat subjudul
grafik
Keterangan() Membuat keterangan
untuk grafik persen graph
text() Membuat text
keterangan pada grafik
plot() Membuat barplot
Setup_graph() Membuat grafik dan
menampilkannya
Persen_graph() Membuat grafik
persentase Grafik_intensitas
_jampg()
Membuat grafik
rata-rata intensitas
kunjungan per jam. Grafik_intensitas
_hari()
Membuat grafik
rata-rata intensitas
kunjungan atau
intensitas peminjaman per hari.
Report Mengemas grafik
statistik dan hasil analisis data dalam bentuk laporan
Ket_tabel() Menyimpan beberapa
variable yang berkaitan
dengan tabel
Indexing Mengindeks data detail
detail_pg() Membingkai data detail
Pengunjung dalam
sebuah tabel
print_pg() Menyatukan tabel data
detail pengunjung
dengan indeksnya
detail_pj() Membingkai data detail
peminjam dalam sebuah tabel
Print_pj Menyatukan tabel data
detail peminjam dengan indeksnya
Detail_kl() Membingkai data detail
koleksi dalam sebuah tabel
Lanjutan Tabel 3. fungsi-fungsi pada View
Nama Fungsi
Print_kl() Menyatukan tabel data
detail koleksi dengan indeksnya
Tampil_intensitas _kunjungan
Membingkai data
intensitas kunjungan dalam sebuah tabel Print_intensitas _kunjungan() Menyatukan tabel intensitas kunjungan dengan indeksnya Tampil_intensitas _peminjaman() Membingkai data intensitas peminjaman ke dalam sebuah tabel Print_intensitas
_peminjaman()
Menyatukan tabel
intensitas peminjaman dengan indeksnya. ekspor_report() Mengekspor report ke
dalam format Microsoft
Word atau Microsot
Excel 3. Controller
Controller bertugas untuk menerima permintaan yang datang (HTPP request) dari
user, mengevaluasi permintaan, kemudian
memerintahkan Model untuk mengolah data berdasarkan permintaan tersebut. Controller kemudian akan memerintahkan View untuk menampilkan data hasil olahan Model tersebut. Controller merupakan bagian dari sistem yang mengendalikan alur proses dalam program dengan melakukan hal hal sebagai berikut:
Menerima permintaaan yang datang (HTTP
request) dan menerjemahkan permintaan
tersebut menjadi panggilan-panggilan fungsi yang sesuai dengan fungsi Model. Memanggil fungsi-fungsi pada Model sesuai dengan urutan yang telah ditentukan. Memproses keluaran dari fungsi-fungsi
yang ada di Model supaya dapat
ditampilkan di View.
Menampilkan hasil pemrosesan keluaran dari Model ke View.
Di dalam Controller, terdapat fungsi-fungsi yang memanggil Model Fungsi-fungsi yang ada di Controller dapat dilihat pada Lampiran 6.
Selanjutnya, contoh tahapan MVC dapat dilihat pada Gambar 11, yaitu ketika pengguna melakukan proses mendapatkan statistik pengunjung bulanan.
Gambar 11 Diagram Sequence Aplikasi Statistik Perpustakaan IPB
Keterangan: : Pesan : Respon/ balasan pesan Tahapan pada Gambar 11 dapat dijelaskan
sebagai berikut: Tahapan di atas diawali dengan permintaan user untuk mendapatkan statistik pengunjung bulanan. Permintaan ini diterima oleh Controller dan direspon dengan
menampilkan halaman utama statistik
pengunjung bulanan. Selanjutnya ketika pengguna selesai mengisi form dengan parameter data pengunjung bulanan yang diinginkannya, maka View akan mengirimkan parameter tersebut ke Controller. Controller akan menerimanya sebagai perintah untuk menampilkan grafik statistik. Controller akan memanggil fungsi get_grafikvalue_pg() pada
Model untuk menghasilkan nilai grafik
kemudian memanggil fungsi setup_graph() pada View. View akan mengambil nilai grafik dari fungsi get_grafikvalue_pg() pada Model
untuk diubah ke dalam bentuk grafik dan ditampilkan kepada pengguna. Setelah itu pengguna bisa mendapatkan fasilitas data detail, grafik intensitas, dan report
pengunjung bulanan dengan parameter yang sama tanpa harus memasukan parameter lagi. Jika pengguna memasukan parameter baru pada form, maka sistem akan menampilkan grafik statistik secara default, setelah itu barulah pengguna bisa mendapatkan fasilitas lainnya dengan parameter yang sama.
Kemudian tahapan untuk fasilitas lainnya adalah sebagai berikut:
Keinginan pengguna untuk menampilkan data detail pengunjung bulanan direspon oleh Controller dengan menjalankan fungsi Tampil_Data_Detail. Fungsi ini akan memanggil fungsi get_fakdep_pg() pada
Model dan memanggil fungsi print_pg()
pada View. Kemudian fungsi print_pg() pada View akan mengambil data yang telah dihasilkan oleh fungsi get_fakdep_pg() pada Model dan menampilkannya dalam bentuk tabel berindeks
Ketika pengguna ingin menampilkan tabel intensitas kunjungan, maka Controller meresponnya dengan menjalankan fungsi Get_Intensitas_Kunjungan(). Kemudian
fungsi Get_Intensitas_Kunjungan()
memanggil fungsi get_intensitas_kunjungan
bulan() pada Model dan fungsi
print_intensitas_kunjungan() pada View.
View akan mengambil data yang dihasilkan
oleh fungsi
get_intensitas_kunjungan_bulan() pada
Model untuk ditampilkan kepada pengguna
dalam bentuk tabel berindeks.
Ketika pengguna ingin menampilkan report pengunjung bulanan, maka Controller meresponnya dengan menjalankan fungsi Report(). Fungsi ini akan menjalankan fungsi report() pada View yang akan
menghasilkan tampilan report dan
menampilkannya kepada pengguna. Implementasi
1. View
Kelas View menangani antarmuka Program yang terdiri dari Header, Link Navigasi, Header Form, Form, Link Navigasi Hasil, tampilan grafik statistik, tabel data detail, tabel intensitas, report, dan footer.
Link Navigasi terletak setelah Header.
Menu pada link ini terdiri dari enam menu utama dan dua menu tambahan. Enam menu utama yaitu: menu statistik pengunjung bulanan, statistik pengunjung tahunan, statistik peminjam bulanan, statistik peminjam tahunan, statistik koleksi bulanan, dan statistik koleksi tahunan. Di lain pihak, dua menu tambahan yaitu: Home dan Appendices. Home merupakan halaman pembuka dan Appendices merupakan halaman yang berisi keterangan tentang istilah-istilah yang dipakai dalam aplikasi ini.
Form terletak di sebelah kiri dan bisa diakses oleh pengguna sistem. Menu Form terdiri dari 3 buah listbox yaitu:
Listbox bulan, menampilkan list bulan dari
Januari hingga Desember.
Listbox tahun, menampilkan tahun yang
sebelumnya telah disetting sesuai dengan kebutuhan yang berlaku.
Listbox asal statistik, pilihannya terdiri dari
berbagai fakultas, elemen mahasiswa, dan elemen golongan.
Kombinasi masukan dari listbox dan menu nantinya akan menjadi parameter-parameter untuk menghitung data statistik yang diinginkan.
Hasil dari penghitungan data statistik akan ditampilkan dalam bentuk grafik. Di atas grafik terdapat keterangan tipe, asal, bulan, dan tahun grafik. Sedangkan di sebelah kiri grafik terdapat keterangan dari singkatan-singkatan di bar grafik.
Grafik yang terdapat dalam aplikasi ini
dibuat menggunakan kelas-kelas dari
JPGRAPH Object Oriented Library.
JPGRAPH sangat cocok untuk pembuatan grafik karena mempunyai banyak kelas yang berhubungan dengannya.
Aplikasi ini menggunakan 3 kelas dari JPGRAPH, yaitu kelas Graph yang terdapat dalam file Jpgraph.php, kelas Text yang terdapat dalam file Jpgraph.php, dan kelas
BarPlot yang terdapat dalam file
Jpgraph_bar.php. Berikut adalah pseudocode fungsi setup_graph() yaitu fungsi yang menangani pembuatan grafik pada kelas View:
function setup_graph() {
$jud=$this->judul(); $e1 =700;
$e2 =300;
$this->graph = new Graph($e1,$e2,"auto"); $this->graph->SetScale("textlin"); $this->graph->img->SetMargin(45,165,80,60); $this->graph->SetMarginColor('white'); $this->graph->yaxis->scale->SetGrace(100); $this->graph->title->Set($jud); $this->graph->title->SetFont(FF_COMIC,FS_BOLD,18); $d = $this->subjudul(); $this->graph->subtitle->Set($d); $this->graph->subtitle->SetFont(FF_FONT2,FS_BOLD); // Setup font for axis $this->graph->xaxis->title->Set($jud); $this->graph->yaxis->title->Set('Jumlah'); $this->graph->yaxis->title->SetColor('blue'); $this->graph->yaxis->title->SetFont(FF_FONT1); $this->graph->xaxis->title->SetFont(FF_FONT2); $this->graph->xaxis->title->SetColor('blue'); $this->graph->title->SetColor('darkblue'); $this->graph->subtitle->SetColor('darkred'); $this->graph->xaxis->SetFont(FF_FONT1); $this->graph->yaxis->SetFont(FF_FONT1); $this->graph->xaxis->SetTickLabels($this->x_label()); $this->text(); $this->graph->AddText($this->text()); $this->graph->Add($this->plot($stat)); //$this->graph->StrokeCSIM(); return $this->graph; }
Hasil dari penghitungan data statistik juga akan ditampilkan secara mendetail dalam