rekayasa balik (reverse engineering) aplikasi...
TRANSCRIPT
1
REKAYASA BALIK (REVERSE ENGINEERING)
APLIKASI PERPUSTAKAAN TULIS PADA PERPUSTAKAAN UTAMA
UIN SYARIF HIDAYATULLAH JAKARTA
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh :
Icheberlyanti
106091002930
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2011 M/ 1432 H
2
REKAYASA BALIK (REVERSE ENGINEERING)
APLIKASI PERPUSTAKAAN TULIS PADA PERPUSTAKAAN UTAMA
UIN SYARIF HIDAYATULLAH JAKARTA
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh :
Icheberlyanti
106091002930
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2011 M/ 1432 H
3
Rekayasa Balik (Reverse Engineering) Aplikasi Perpustakaan
TULIS
Pada Perpustakaan Utama UIN Syarif Hidayatullah
Jakarta
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar
Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh:
Icheberlyanti
106091002930
Menyetujui,
Mengetahui,
Ketua Program Studi Teknik Informatika,
Yusuf Durrachman, M.sc., M.I.T.
NIP.197110522 200604 1 002
Pembimbing II
Husni Teja Sukmana, Ph.D
NIP. 19771030 200112 1 003
Pembimbing I
Viva Arifin, MMSI
NIP. 19730810 200604 2 001
4
PENGESAHAN UJIAN
Skripsi yang berjudul “Rekayasa Balik (Reverse Engineering) Aplikasi
Perpustakaan TULIS Pada Perpustakaan Utama UIN Syarif Hdayatullah Jakarta”,
Icheberlyanti 106091002930 telah diuji dan dinyatakan lulus dalam Sidang
Munaqosah Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif
Hidayatullah Jakarta, pada hari Kamis tanggal 15 September 2011. Skripsi ini
telah diterima sebagai salah satu syarat untuk memperoleh gelar Sarjana
Komputer pada Program Teknik Informatika
Jakarta, 15 September 2011
Tim Penguji,
Tim Pembimbing,
Mengetahui,
Penguji I
Dr. Syafedi Syafei, M.Sc
19571005 1982 111 001
Penguji II
Fenty Eka Muzzayyana, M.Kom
19760805 2009 12 2 003
Pembimbing I
Viva Arifin, MMSI
NIP. 19730810 200604 2 001
Pembimbing II
Husni Teja Sukmana, Ph.D
NIP. 19771030 200112 1 003
Dekan
Fakultas Sains Dan Teknologi
DR. Syopiansyah Jaya Putra, M.Sis
NIP. 19680117 200112 1 001
Ketua Program Studi
Teknik Informatika
Yusuf Durrachman M.Sc, M.I.T.
NIP. 19710522 200604 1 002
5
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR
HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI
SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU
LEMBAGA MANAPUN.
Jakarta, September 2011
Icheberlyanti
6
ABSTRAK
Icheberlyanti, Rekayasa Balik (Reverse Engineering) Aplikasi Perpustakaan
TULIS (Technology of UIN Library & Information System ) pada
Perpustakaan Utama UIN Syarif Hidayatullah Jakarta dibawah bimbingan
Viva Arifin, MMSI dan Husni Teja Sukmana, Ph.D.
Dokumentasi dari suatu sistem atau aplikasi merupakan hal yang penting. Dengan
adanya dokumentasi tersebut, dapat lebih mempermudah pengembang atau
software development dalam hal pengembangan dari sistem atau aplikasi itu
sendiri. Tidak terkecuali dengan aplikasi perpustakaan TULIS yang ada pada
perpustakaan utama UIN Syarif Hidayatullah Jakartabelum memliki dokumentasi.
Sebelum melakukan rekayasa ulang (re-engineerng) aplkasi TULIS perlu
dilakukan proses rekayasa balik (Reverse Engineering). Melihat permasalahn
yang terjadi, penulis bermaksud melakukan rekayasa balik (Reverse Engineering)
dengan menggunakan pendekatan model based design yang bertujuan untuk
membangun model berbasis objek yang menggunakan standar Unified Modelling
Language (UML) yang diturunkan dari listing program yang ada. Hasil akhir dari
proses rekayasa balik (Reverse Engineering) ini berupa dokumentasi sistem yaitu
Software Requirement Specification (SRS), sehingga hasil dari dokumentasi ini
dapat menjadi panduan pengembang atau software development untuk mengetahui
proses perubahan-perubahan yang akan terjadi dalam pengembangan dan
pemeliharaan aplikasi TULIS yang baru.
Kata Kunci: perpustakaan, reverse engineering, model based design.
7
KATA PENGANTAR
Assalamualaikum Wr. Wb
Alhamdulillah hirabbil a’lamin, kata yang dapat penulis ucapkan kepada
Allah SWT, atas segala rahmat dan hidayah yang telah dilimpahkan-Nya,
sehingga penulis bisa menyelesaikan laporan skripsi ini. Shalawat serta salam
senantiasa tercurah kepada Rasulullah SAW, insan yang dapat membawa dunia ini
kepada kehidupan yang lebih baik.
Dengan rasa syukur yang mendalam penulis dapat menyelesaikan laporan
skripsi dengan judul : ”Rekayasa Balik (Reverse Engineering) Aplikasi
Perpustakaan TULIS pada Perpustakaan Utama UIN Syarif Hidayatullah
Jakarta”.
Sehubungan dengan selesainya laporan ini, penulis juga mengucapkan
terima kasih kepada semua pihak yang telah membantu penulis, juga atas
dorongan dan bimbingannya sehingga laporan ini bisa selesai tanpa ada hambatan
yang berarti. Semoga Allah SWT membalas semua amal baik mereka. Terima
kasih penulis ucapkan kepada :
1. Bapak Prof. Dr. Komarudin Hidayat sebagai rektor Universitas Islam Negeri
Syarif Hidayatullah Jakarta.
2. Bapak Dr. Syopiansyah Jaya Putra, M.Sis selaku Dekan Fakultas Sains dan
Teknologi
3. Bapak Yusuf Durachman, M.Sc selaku Ketua Program Studi Teknik
Informatika.
8
4. Ibu Viva Arifin, MMSI, selaku dosen pembimbing kesatu
5. Bapak Husni Teja Sukmana, Ph.D, selaku dosen pembimbing kedua
6. Dosen-dosen jurusan Teknik Informatika yang telah memberikan ilmu,
pengetahuan, kemampuan dan skill manajemen beserta pemupukan moral dan
mental yang baik.
7. Kedua orang tuaku yang aku cintai (Bapak Suwandi & Ibu Belly), yang selalu
memberikan doanya dengan ikhlas, allâhummaghfirlîî wa liwâlidayya
warhamhummâ kamâ rabbayânî shighîrâ, yang selalu memberikan nasihat,
motivasi, mengajarkan arti hidup dan senantiasa mencurahkan dukungannya
demi kesuksesan penulis dalam proses kuliah dan kehidupan ini.
8. Idam Kusumo Wardono selaku orang terdekat penulis yang telah memberikan
dukungan penuh kepada penulis untuk menyelesaikan skripsi ini dengan baik.
9. Teman-teman seperjuangan, Sarika, Habib, Lulu, Jimbo, Anita, Inna, Kiki,
Wakjon, Yudha dan seluruh mahasiswa TI angkatan 2006. Sukses untuk kita
semua.
10. Seluruh pihak yang telah membantu dan namanya tidak dapat disebutkan satu
per satu. Terima kasih atas dukungan dan motivasinya,
Semoga Allah SWT memberikan balasan yang setimpal atas segala
bantuan dan kebaikan yang telah mereka berikan kepada penulis, Amin.
Demikianlah, Semoga apa yang tertulis dalam laporan skripsi ini dapat bermanfaat
bagi semua pihak. Dalam hal ini, penulis mengharapkan saran dan kritik yang
membangun demi menambah kesempurnaan laporan skripsi ini.
Wassalamualaikum Wr.Wb.
Jakarta, September 2011
(Icheberlyanti)
9
DAFTAR ISI
Halaman
Halaman Judul ................... .............................................................................. ii
Lembar Persetujuan Pembimbing .................................................................... iii
Lembar Persetujuan Penguji ............................................................................ iv
Lembar Pernyataan .......................................................................................... v
Abstrak ............................................................................................................ vi
Kata Pengantar ................................................................................................ vii
Daftar Isi ......................................................................................................... ix
Daftar Gambar . ................................................................................................ xiii
Daftar Tabel ..................................................................................................... xvi
BAB I PENDAHULUAN .............................................................................. 1
1.1. Latar Belakang .................................................................................. 1
1.2. Perumusan Masalah .......................................................................... 3
1.3. Pembatasan Masalah ......................................................................... 4
1.4. Tujuan dan Manfaat Penelitian ......................................................... 4
1.4.1. Tujuan .................................................................................... 4
1.4.2. Manfaat .................................................................................. 5
1.5. Metodologi Penelitian ....................................................................... 6
1.5.1. Metode Pengumpulan Data .................................................... 6
1.5.2. Metode Reverse Engineering .................................................. 6
1.6. Sistematika Penulisan ....................................................................... 7
10
BAB II LANDASAN TEORI ........................................................................ 9
2.1. Rekayasa Balik (Reverse Engineering) ............................................ 9
2.1.1 Rekayasa Balik ( Reverse Engineering ) Untuk
Memahami Pemrosesan ………………………………………11
2.1.2 Rekayasa Balik ( Reverse Engineering ) Untuk
Memahami Data ………………………………………………11
2.1.3 Interface Pemakai Rekayasa balik (Reverse Engineering)……12
2.2. Aplikasi …….. .................................................................................. 13
2.3. Perpustakaan ..................................................................................... 14
2.4. TULIS (Technology of UIN Library & Information System)............ 15
2.4.1. Arsitektur TULIS .................................................................... 15
2.5. OPAC (Online Public Access Catalogue) ........................................ 17
2.6. JAVA… ............................................................................................ 19
2.6.1. Pengertian Java ....................................................................... 19
2.7. JSP (Java Server Pages) .................................................................... 21
2.7.1. Sintaks JSP ............................................................................. 22
2.8. Framework ........................................................................................ 22
2.8.1. Definisi framework ................................................................. 22
2.8.2. Tujuan framework .................................................................. 23
2.9. Apache Struts .................................................................................... 24
11
2.9.1. Komponen Dasar dari Struts...................................................... .25
2.10. MySQL .............................................................................................. 27
2.10.1. Sejarah MySQL ..................................................................... 27
2.10.2. Keistimewaan MySQL .......................................................... 28
2.11. UML (Unified Modelling Language) ................................................ 31
2.11.1 Definisi ................................................................................ .31
2.11.2 Notasi UML ......................................................................... .37
2.12. Penelitian Sejenis .............................................................................. .45
BAB III METODOLOGI PENELITIAN .................................................... 48
3.1. Metode Penelitian.............................................................................. 48
3.2. Metode Pengumpulan Data ............................................................... 48
3.3. Metode Reverse Engineering ........................................................... .50
BAB IV PEMBAHASAN .............................................................................. 57
4.1. Sekilas tentang Perpustakaan Utama UIN Syarif Hidayatullah
Jakarta ................................................................................................ 57
4.1.1. Visi dan Misi Perpustakaan Utama ........................................ 60
4.1.2. Tujuan Perpustakaan Utama ................................................... 61
4.1.3. Struktur Organisasi Perpustakaan Utama ............................... 62
4.2. Memahami Ranah Masalah (Problem Domain) ............................... 63
4.2.1. Analisa Sistem yang Berjalan ................................................. 63
4.2.2. Identifikasi Masalah ............................................................... 67
12
4.3. Analisis Terhadap Artefak Construction ........................................... 67
4.3.1. Identifikasi Actor (Pengguna) ................................................ 67
4.3.2. Identifikasi Interaksi Actor dengan Komputer ...................... 71
4.3.3. Mengenali Basic Flow dan Alternate Flow ........................... .75
4.4 Analisa Source Code ......................................................................... .116
4.4.1 Class Diagram Recovery…………………………………………116
4.4.2 Activity Diagram Recovery……………………………………..124
4.4.3 Use case Diagram Recovery…………………………………….125
4.4.4 Component Diagram Recovery…………………………………126
4.5 Analisa Domain Expert………………………………………………..126
4.5.1 Analisa terhadap Rekonstruksi artefak Analysis & Design…….126
4.5.2 Rekonstruksi Artefak Requirement Engineering……………….127
4.5.3 Software Requirement Specification…………………………….172
BAB V KESIMPULAN DAN SARAN ......................................................... 173
5.1. Kesimpulan ....................................................................................... 173
5.2. Saran .................................................................................................. 174
DAFTAR PUSTAKA ..................................................................................... 156
LAMPIRAN
13
DAFTAR GAMBAR
Halaman
Gambar 2.1 Proses Rekayasa Balik (Reverse Engineering) ............................... 10
Gambar 2.2 Arsitektur TULIS ............ ............................................................... 16
Gambar 2.3 Arsitektur Struts……………………. ............................................. 25
Gambar 2.4 Notasi Aktor…………………. ....................................................... 38
Gambar 2.5 Notasi Kelas .................................................................................... 39
Gambar 2.6 Notasi Usecase ……………………….. ......................................... 40
Gambar 2.7 Notasi Interaction ............................................................................ 41
Gambar 2.8 Notasi Interface ............................................................................... 41
Gambar 2.9. Notasi Package ............................................................................... 42
Gambar 2.10. Notasi Note ................................................................................... 42
Gambar 2.11. Notasi Dependency ..................................................................... 43
Gambar 2.12. Notasi Association....................................................................... 44
Gambar 3.1 Tahapan Rekayasa Balik (Reverse Engineering)………………….54
Gambar 3.2 : Kerangka kerja berpikir peneliti………………………………….56
Gambar 4.1. Struktur Organisasi ......................................................................... 62
Gambar 4.2. Struktur Class Aplikasi TULIS…………………………………..117
Gambar 4.3. Activity Diagram Input Data Anggota ........................................... 124
Gambar 4.4. Struktur Class Diagram Aplikasi TULIS ....................................... 128
Gambar 4.5. Activity Diagram input nama perpustakaan ................................... 131
Gambar 4.6. Activity digram Input koneksi perpustakaan lain…………………132
14
Gambar 4.7. Activity diagram edit node perpustakaan ....................................... 133
Gambar 4.8. Activity diagram hapus node perpustakaan .................................... 134
Gambar 4.9. Activity digram input user grup ...................................................... 135
Gambar 4.10. Activity diagram edit user grup .................................................... 136
Gambar 4.11. Activity diagram Input pustakawan……………………………...137
Gambar 4.12. Activity diagram untuk Edit pustakawan………………………..138
Gambar 4.13. Activity diagram untuk Hapus Pustakawan .................................. 139
Gambar 4.14. Activity diagram untuk Input Konfigurasi koleksi ....................... 140
Gambar 4.15. Activity diagram untuk Hapus tipe Koleksi ................................. 141
Gambar 4.16. Activity diagram input data anggota ............................................. 142
Gambar 4.17. Activity diagram untuk Edit data anggota .................................... 143
Gambar 4.18. Activity diagram untuk Hapus data anggota…………………….144
Gambar 4.19. Activity diagram untuk Input Data koleksi……………………...145
Gambar 4.20. Activity diagram untuk Edit data koleksi………………………….146
Gambar 4.21. Activity diagram untuk Hapus data koleksi.................................. 147
Gambar 4.22. Activity digram untuk Input peminjaman buku ............................ 148
Gambar 4.23. Activity diagram untuk Pengembalian buku ................................ 149
Gambar 4.24. Activity diagram untuk jelajah koleksi ......................................... 150
Gambar 4.25. Activity diagram untuk Usul Koleksi ........................................... 151
Gambar 4.26. Activity diagram untuk Lihat Koleksi terbaru…………………...152
Gambar 4.27. Use Case diagram Admin ............................................................ 152
15
Gambar 4.28. Use Case diagram Admin, Input Data, dan Pengolahan .............. 153
Gambar 4.29. Use Case diagram untuk Admin dan Sirkulasi………………….153
Gambar 4.30. Usecase diagram mahasiswa ........................................................ 154
Gambar 4.31. Sequence Diagram untuk Input nama Perpustakaan…………….155
Gambar 4.32. Sequence Diagram untuk Koneksi Perpustakaan......................... 156
Gambar 4.33. Sequence diagram untuk User Group .......................................... 157
Gambar 4.34. Sequence diagram untuk Pustakawan .......................................... 158
Gambar 4.35. Sequence diagram untuk konfigurasi koleksi .............................. 159
Gambar 4.36. Sequence diagram hapus tipe koleksi .......................................... 160
Gambar 4.37. Sequence diagram untuk data anggota…………………………..161
Gambar 4.38. Sequence diagram untuk data koleksi .......................................... 162
Gambar 4.39. Sequence diagram peminjaman ................................................... 163
Gambar 4.40. Sequence diagram Pengembalian................................................. 164
Gambar 4.41. Sequence diagram Jelajah Koleksi………………………………165
Gambar 4.42. Sequence Diagram Usul Koleksi Buku ........................................ 166
Gambar 4.43. Sequence diagram Lihat Koleksi ................................................. 167
Gambar 4.44. Component Diagram TULIS ........................................................ 168
Gambar 4.45. Deployment Dagram TULIS ........................................................ 169
16
DAFTAR TABEL
Halaman
Tabel 4.1 Fitur Menu Back Office Aplikasi TULIS .......................................... 63
Tabel 4.2 Fitur Menu OPAC .............................................................................. 66
Tabel 4.3. Identifikasi Actor .............................................................................. 68
Tabel 4.4. Identifikasi Usecase .......................................................................... 72
Tabel 4.5. Input Nama Perpustakaan ................................................................. 77
Tabel 4.6. Input Koneksi Perpustakaan Lain ..................................................... 79
Tabel 4.7. Edit Node Perpustakaan .................................................................... 81
Tabel 4.8. Hapus Node Perpustakaan ................................................................ 83
Tabel 4.9. Input User Grup ................................................................................ 85
Tabel 4.10. Edit User Grup ................................................................................ 87
Tabel 4.11. Input Pustakawan ............................................................................ 89
Tabel 4.12. Edit Pustakawan .............................................................................. 91
Tabel 4.13. Hapus Pustakawan .......................................................................... 93
Tabel 4.14. Konfigurasi Koleksi ........................................................................ 95
Tabel 4.15. Hapus Tipe Koleksi ......................................................................... 97
Tabel 4.16. Input Data Anggota ......................................................................... 99
Tabel 4.17. Edit Data Anggota ……….. ............................................................ 101
Tabel 4.18. Hapus Data Anggota ....................................................................... 103
Tabel 4.19. Input Data Koleksi .......................................................................... 105
Tabel 4.20. Edit Data Koleksi ............................................................................ 107
Tabel 4.21. Hapus Data Koleksi ........................................................................ 109
17
Tabel 4.22. Peminjaman Koleksi ....................................................................... 111
Tabel 4.23. Pengembalian Koleksi..................................................................... 112
Tabel 4.24. Jelajah Koleksi ................................................................................ 113
Tabel 4.25. Usul Koleksi .................................................................................... 114
Tabel 4.26. Lihat Koleksi Terbaru ..................................................................... 115
18
BAB I
PENDAHULUAN
1.1 Latar Belakang
Informasi adalah salah satu kata kunci pada jaman ini. Untuk mendapatkan
sebuah informasi kita memerlukan bahan referensi. Perpustakaan menurut Keputusan
Presiden No. 11 Tahun 1989 adalah salah satu sarana pelestarian bahan pustaka
sebagai hasil budaya dan mempunyai fungsi sebagai sumber informasi ilmu
pengetahuan, teknologi dan kebudayaan dalam rangka mencerdaskan kehidupan
bangsa dan menunjang pelaksanaa pembangunan. Sebagai sumber belajar
perpustakaan juga berfungsi membantu program pendidikan, sehingga perlu
dikembangkan untuk mencapai sasaran yang dikehendaki.
Perkembangan Teknologi Informasi (TI) sekarang ini meningkat dengan
pesat seiring dengan perkembangan teknologi komputer yang terus meningkat dalam
hitungan waktu. Sehubungan dengan perkembangan TI yang membawa perubahan
dalam berbagai sector, termasuk dunia pendidikan diantaranya perpustakaan, maka
pemanfaatan TI sebagai sarana dalam meningkatkan kualitas layanan dan
operasional telah membawa perubahan yang besar didunia perpustakaan.
Terkait dengan hal tersebut, sebuah perpustakaan diharapkan dapat
menyediakan buku-buku yang beragam, sehingga para pengunjung perpustakaan
tersebut bisa mendapatkan sebuah informasi atau pengetahuan tidak hanya dari satu
buku referensi.
19
Aplikasi Perpustakaan Tulis pada perpustakaan utama Universitas Islam
Negeri Syarif Hidayatullah Jakarta adalah belum memiliki dokumentasi, sehingga
membuat sumber sumber daya manusia dari perpustakaan tersebut menjadi kesulitan
dalam pengembangan atau pemodifikasian aplikasi. Masalah ini akan terus muncul
jika suatu software development belum memiliki dokumentasi dari suatu aplikasi dan
masalah akan terus bertambah kompleks seiring dengan perkembangan aplikasi yang
semakin kompleks.
Berlatar belakang dari masalah tersebut, penulis bermaksud untuk melakukan
rekayasa balik (reverse engineering) terhadap perpustakaan Tulis UIN Syarif
Hidayatullah.
Rekayasa balik adalah suatu proses analisa system untuk mengidentifikasi
komponen-komponen dan membuat pemodelan dari hasil analisa ketingkat abstraksi
yang lebih tinggi. Rekayasa balik merupakan metode yang dapat menyingkap
proses-proses yang terdapat pada suatu system, maintenance, re-engineering dan
evaluasi.
Proses rekayasa balik dilakukan untuk memahami fungsi-fungsi apa saja
yang dimiliki oleh aplikasi melalui analisa source code, setelah memahami aplikasi,
kemudian menempatkan requirement yang baru kedalam aplikasi, sehingga aplikasi
akan memiliki fungsi-fungsi yang baru.
Hal inilah yang mendorong penulis untuk melakukan penelitian dengan judul
“Rekayasa Balik (Reverse Engineering) Aplikasi Perpustakaan TULIS pada
Perpustakaan Utama UIN Syarif Hidayatullah Jakarta”. Hasil dari reverse
engineering ini akan menjadi dokumentasi sistem berupa Software Requirement
Specification (SRS) yang sebelumnya belum ada pada sistem lama, sehingga
20
menjadi panduan pengembang untuk proses perubahan-perubahan yang akan terjadi
dalam pengembangan dan pemeliharaan aplikasi perpustakaan TULIS yang baru.
1.2 Perumusan Masalah
Berdasarkan latar belakang tersebut dapat dirumuskan bahwa permasalahan yang
ada adalah :
1. Bagaimana membuat dokumentasi dari aplikasi perpustakaan TULIS yang sedang
berjalan saat ini.
2. Bagaimana membuat artifact user interface dalam bentuk diagram-diagram baku
UML (Unified Modelling Language) yaitu class diagram, activity diagram, use
case diagram, sequence diagram, component diagram, dan deployment diagram
dari source code aplikasi perpustakaan TULIS.
3. Bagaimana melakukan proses rekonstruksi ulang, sehingga dapat diketahui apakah
penggunaan dari aplikasi tersebut sudah tepat.
4. Bagaimana membuat work flow dari aplikasi perpustakaan TULIS yang
diperlukan pengembang untuk memodifikasi sistem berikutnya.
1.3 Batasan Masalah
Dari rumusan maslah yang telah disebutkan diatas, batasan masalah yang akan
dibahas dan dibuat adalah :
a. Analisis masalah yang terjadi pada aplikasi perpustakaan TULIS UIN Syarif
HIdayatullah Jakarta.
21
b. Memahami struktur dan alur source code dari aplikasi perpustakaan TULIS
UIN Syarif HIdayatullah Jakarta.
c. Hanya melakukan reverse engineering tidak sampai pada tahap forward
engineering.
d. Hasil dari reverse engineering adalah diagram-diagram UML.
1.4 Tujuan dan Manfaat
1.4.1 Tujuan
1. Memberikan acuan kepada perpustakaan dengan membuat Software
Requirement Specification yang dapat meningkatkan efisiensi pada waktu
proses software development.
2. Membuat dokumentasi dari aplikasi perpustakaan yang sudah ada agar
dapat mengetahui kekurangan apa saja yang ada pada Perpustakaan Tulis
UIN Syarif Hidayatullah Jakarta.
3. Mempermudah untuk mengetahui perubahan-perubahan yang terjadi dalam
pemeliharaan sistem dimasa akan datang.
1.4.2 Manfaat
a. Bagi penulis :
1. Mampu membuat dokumentasi yang baik dari aplikasi perpustakaan
TULIS UIN Syarif Hidayatullah Jakarta.
2. Mahasiswa mampu mealkukan reverse engineering .
3. Mampu melakukan analisa yang baik terhadap sebuah aplikasi
sebelum dilakukan pengembangan dari aplikasi tesebut.
22
b. Bagi universitas :
1. Mengetahui kemampuan mahasiswa dalam menerapkan ilmunya dan
sebagai bahan evaluasi.
2. Memberikan gambaran tentang kesiapan mahasiswa dalam
menghadapi dunia kerja yang sebenarnya.
c. Bagi Perpustakaan UIN Syarif Hidayatullah Jakarta :
1. Sebagai acuan untuk melakukan reverse engineering agar aplikasi
berikutnya dapat lebih baik dari aplikasi yang sudah ada.
2. Mempermudah mendapatkan dokumentasi sebagai pemeliharaan dari
aplikasi yang akan datang.
1.5 Metode Penelitian
Adapun metodologi yang akan digunakan selama pengerjaan tugas akhir ini
adalah :
1.5.1 Metode Pengumpulan Data
a. Melakukan Observasi
b. Wawancara
c. Studi pustaka
23
1.5.2 Metode Reverse Engineering
Metode yang dilakukan pada proses reverse engineering pada
aplikasi TULIS dengan menggunakan model based – design dan
mengacu pada bakuan dokumentasi the Unified Process (UP), ini berupa
dokumentasi “4+1 view” dengan tahapan sebagai berikut:
1. Memahami Ranah masalah (Problem Domain)
2. Analisa terhadap Artefak Construction
3. Analisa Source Code
4. Analisa Domain Expert
1.6 Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri dari 5 (lima) bab, yang terdiri atas:
BAB I : PENDAHULUAN
Pada bab ini berisikan latar belakang penulisan dan pemilihan
topik, tujuan pembahasan, metode penulisan dan batasan-
batasan dalam topik bahasan yang meliputi ruang lingkup
pembahasan, dan sistematika penulisan.
24
BAB II : LANDASAN TEORI
Pada bab ini akan menguraikan dengan menceritakan tentang
teori yang menjadi dasar dari penelitian ini.
BAB III : METODE PENELITIAN
Pada bab ini akan menjelaskan tentang metode apa saja yang
dilakukan dalam melakukan penelitian.
BAB IV : HASIL DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai hasil dari penelitian dari
Aplikasi perpustakaan Tulis yang dilakukan di Perpustakaan
UIN Syarif Hidayatullah Jakarta.
BAB V : PENUTUP
Pada bab ini berisi kesimpulan dari apa yang sudah diterangkan
pada bab-bab sebelumnya, dan juga berisi saran perbaikan yang
berhubungan dengan masalah yang dibahas oleh penulis.
DAFTAR PUSTAKA
25
BAB II
LANDASAN TEORI
2.1 Rekayasa Balik (Reverse Engineering)
Rekayasa Balik (Reverse engineering) adalah proses
penganalisisan system dengan maksud mengidentifikasi komponen-
komponen system dan keterkaitan anatar meraka dan mempresentasikan
system tersebut dalam bentuk yang mempunyai tingkat abstraksi yang
lebih tinggi. (Sonhaji,dkk, 2010)
Kelengkapan proses rekayasa balik (reverse engineering) mengacu
pada tingkat detail yang diberikan pada suatu tingkat abstraksi.
Kelengkapan meningkat berbanding lurus dengan jumlah analisis yang
dilakukan.
Tingkat abstraksi suatu proses rekayasa balik (reverse
engineering) harus mampu melakukan hal-hal berikut ini :
1. Representasi procedural (tingkat yang rendah)
2. Program dan informasi struktur data (tingkat yang lebih tinggi)
3. Data dan model system control (tingkat yang sangat tinggi)
4. Model hubungan entitas (tingkat yang tinggi)
26
Kelengkapan proses reverse engineering (rekayasa balik) mengacu pada
tingkat detail yang diberikan pada suatu tingkat abstraksi. Kelengkapan
meningkat berbanding lurus dengan jumlah analisis yang dilakukan.
Gambar 2.1 Proses Rekayasa Balik (Reverse Engineering)
(Sumber : Pressman , 2010)
Pada gambar 2.1 telah digambarkan proses dari rekayasa balik (reverse
engineering). Sebelum melakukan rekayasa balik (reverse engineering), maka
dapat melakukan rekonstruksi kode dari kode yang tidak terstruktur dengan baik,
kemudian mengekstrak menjadi sebuah bagian interface, pemrosesan dan
database.
27
2.1.1. Rekayasa Balik ( Reverse Engineering ) Untuk Memahami
Pemrosesan
Aktivitas rekayasa balik (reverse engineering) real pertama dimulai
dengan usaha memahami kemudian mengekstrak abstraksi procedural
yang direpresentasikan oleh kode sumber.
Fungsionalitas keseluruhan dari system harus dipahami sebelum
kerja rekayasa balik (reverse engineering) yang lebih detail dilakukan.
Teknik segmentasi program sebagai cara untuk mengidentifikasi pola
procedural dengan sebuah model dan kemudian mengemas lagi pola-pola
inti kedalam sebuah fungsi yang penting. (Sofy, 2009)
Secara sederhana teknik segmentasi bisa diartikan sebagai suatu
ruang alamat atau segment yang berada di memori. Segment-segment itu
dalam keadaan independent. Setiap segment berisi alamat 0 sampai
maksimum secara linier. Panjang setiap segment berbeda-beda sampai
panjang maksimum, perubahan panjang segment terjadi selama proses
eksekusi. (Silitonga, 2010)
2.1.2. Rekayasa Balik ( Reverse Engineering ) Untuk Memahami Data
Pada tingkat sistem, struktur data global ( misal file, database)
sering direkayasa ulang untuk mengakomodasi paradigma manajemen
database baru (missal gerakan dari flag file ke sistem database relasional
atau OOP)
28
a. Struktur Data Internal
Pendekatan untuk kelas rekayasa balik (reverse engineering)
1. Identifikasi flag dan struktur data local pada program yang
merekam informasi penting mengenai struktur data global.
2. Tetapkan hubungan antara flag dan struktur data local dan global.
3. Untuk setiap variable yang mempresentasikan aray atau file,
daftarlah semua variable lain yang memiliki hubungan logis
dengannya.
b. Struktur Database
Langkah-langkah mendefiniskan model data yang ada ke model
database baru, adalah sebagai berikut :
1. Bangun model obyek awal.
2. Tentukan kunci calon.
3. Saling kelas-kelas tentatif.
4. Definisikan generalisasi.
5. Temukan hubungan.
(Sofy, 2009 )
2.1.3. Interface Pemakai Rekayasa balik (Reverse Engineering)
Untuk memahami secara penuh user interface yang sudah ada,
struktur dan tingkah laku interface harus ditentukan. Tiga pertanyaan
mendasar yang harus dijawab pada saat reverse engineering suatu user
interface dimulai :
29
1. Apakah aksi dasar yang harus diproses interface?
2. Apa deskripsi respon perilaku system terhadap aksi?
3. Konsep ekivalensi apa yang relevan disini?
Ajabar proses dapat digunakan untuk mempresentasikan tingkah laku
suatu interface dalam cara yang formal.(Sofy, 2009)
Pada dasarnya terdapat tiga jenis informasi yang bisa dihasilkan
dari proses reverse engineering yaitu static information, dynamic
information, merged information. (Systa, 2003)
2.2 Aplikasi
Aplikasi, dalam ilmu komputer, adalah sebuah program komputer
yang dirancang untuk membantu orang-orang yang melakukan jenis
pekerjaan tertentu. Sebuah aplikasi berbeda dari sebuah sistem operasi
(yang menjalankan komputer), sebuah utilitas (yang melakukan
pemeliharaan atau untuk tujuan tugas umum) dan bahasa pemrograman
(yang membuat program komputer). Tergantung pada pekerjaan yang
sudah dirancang, aplikasi dapat memanipulasi teks, angka, grafik atau
gabungannya. Beberapa paket aplikasi menawarkan kemampuan
komputasi yang baik dengan fokus pada satu tugas, seperti pengolah kata.
Paket aplikasi lainnya adalah perangkat lunak yang terintegrasi
menawarkan kemampuan komputasi yang kurang tetapi di dalamnya
terdapat beberapa aplikasi, seperti pengolah kata, spreadsheet dan program
database (Microsoft Encarta: 2009).
30
2.3. Perpustakaan
Adjat Sakri dalam kamus kecil perpustakaan memberi definisi :
“Perpustakaan adalah lembaga yang menghimpun pustaka dan
menyediakan sarana bagi orang untuk memanfaatkan koleksi pustaka
tersebut”.
Menurut definisi tersebut, perpustakaan terdiri atas empat unsur yaitu :
1. Koleksi pustaka
2. Pengguna perpustakaan
3. Sarana
4. Pustakawan.
Sarana
Koleksi pustaka Pengguna Perpustakaan
Pustakawan
Dari keempat unsur tersebut, unsur koleksi dan pemakai
mempunyai hubungan yang sangat erat. Orang pergi ke perpustakaan
dengan harapan akan memperoleh buku atau informasi yang dibutuhkan.
Maka pustakawan harus berusaha menghimpun koleksi yang sesuai
dengan kebutuhan dan minat para pemakainya.
(Soeatmina, 2002)
Sedangkan menurut Keputusan Presiden No. 11 Tahun 1989,
perpustakaan adalah salah satu sarana pelestarian bahan pustaka sebagai
hasil budaya dan mempunai fungsi sebagai sumber informasi ilmu
pengetahuan, teknologi dan kebudayaan dalam rangka mencerdaskan
31
kehidupan bangsa dan menunjang pelaksanaa pembangunan. Sebagai
sumber belajar perpustakaan juga berfungsi membantu program
pendidikan, sehingga perlu dikembangkan untuk mencapai sasaran yang
dikehendaki.
2.4 TULIS (Technology of UIN Library & Information System)
Tulis (Technology of UIN Library & Information System) adalah
system pengarsipan digital untuk perpustakaan yang memiliki fungsi
pencarian dokumen, penjelajahan dokumen, melihat informasi dokumen,
pengunduhan dokumen digital, pemesanan peminjaman, dan lain-lain
(Online Public Access Library / OPAC); serta pendataan koleksi,
pendataan pengadaan, pendataan keanggotaan, pendataan sirkulasi,
laporan serta statistik, dan lain-lain (Back Office / BO).
2.4.1 Arsitektur TULIS
Dari segi teknis,secara umum arsitektur system
perpustakaan digital dibagi menjadi dua bagian, yaitu sistem
Informasi Perpustakaan dan Sistem Temu Kembali Informasi,
masing-masing bagian ini dapat dibagi menjadi beberapa sub
bagian, diagram lengkap arsitektur sistem adalah sebagai berikut :
32
Gambar 2.2 Arsitektur TULIS
Pada back-office, sistem menggunakan Hibernate untuk melakukan
mapping objek data kedalam sistem basis data. Hal tersebut digunakan
pada setiap modul dalam hal pengaksesan basis data, baik itu pengambilan
data, perubahan data, atau penghapusan data. Sistem ini menggabungkan
fungsi pengolahan koleksi fisik dengan pengolahan koleksi digital dari
perpustakaan, sehingga pengguna dapat langsung men-download koleksi
digital dari OPAC.
Sedangkan dalam penggunaan metode pencarian information
Retrieval System (IRS), system akan mengakses setiap basisdata dari
masing-masing perpustakaan yang terhubung dengan menggunakan web
service.
33
2.5 OPAC( Online Public Access Catalogue)
Untuk membantu pengguna menemukan koleksi informasi yang
dibutuhkan, Pustaka menyediakan berbagai sarana temu kembali informasi
seperti catalog kartu, catalog tercetak berupa buku, indeks, bibliografi
khusus, OPAC, dan beberapa aplikasi CD-ROM. OPAC dibangun pada
tahun 2004 dalam rangka pengembangan automasi perpustakaan dan
dilatarbelakangi oleh beberapa hal, antara lain :
a. Penelusuran data tentang koleksi pustaka masih dilakukan secara
manual, sehingga pengguna memerlukan waktu yang lama untuk
menemukan informasi yang dibutuhkan.
b. Pangkalan data yang ada hanya memuat informasi bibliografis, dan
sebagian belum mencantumkan data nomor panggil.
c. Jumlah kompter yang tersedia untuk penelusuran koleksi pustaka
terbatas serta masih bergabung dengan penelusuran CD-ROM.
d. Pemantauan pengunjung perpustakaan secara manual tidak dapat
dilakukan secara serentak.
e. Pembuatan statistik pemanfaatan perpustakaan dan laporan bulanan
sering terlambat.
OPAC dilengkapi dengan tiga unit komputer terminal yang
masing-masing berfungsi sebagai sarana penelusuran, terminal pencatat
data pengunjung, dan sebagai server. Pangkalan data yang tersedia terdiri
atas data koleksi buku, teknologi pertanian tepat guna, daftar judul
34
majalah, daftar koleksi CD-ROM, dan hasil-hasil penelitian. Pangkalan
data yang digunakan berbasis software CDS atau ISIS dengan
menggunakan struktur data yang sudah ada sebelumnya disertai
penambahan ruas (fields) baru.
Keuntungan lain dari OPAC dalam bentuk WAN adalah penguna
dapat mengetahui ketersediaan materi informasi yang dicari tanpa harus
dating langsung ke perpustakaan, sedangkan permintaan bahan pustakanya
dapat dilakukan melalui sarana komunikasi lain. Dengan demikian,
pengguna dapat menghemat waktu, baiaya, dan tenaga untuk memperoleh
koleksi pustaka yang diperlukan. Dengan adanya OPAC yang
terkomunikasi melalui internet, jangkauan pengguna perpustakaan menjadi
lebih luas, tidak saja untuk para staf dalam lingkungan sendiri atau
pengguna yang datang ke perpustakaan, tetapi juga untuk pengguna atau
instansi lain dalam lingkup yang lebih luas.
Beberapa tujuan yang ingin dicapai dalam pembuatan OPAC adalah :
1. Pengguna dapat mengakses secara langsung kedalam pangkalan data
yang dimiliki perpustakaan.
2. Mengurangi beban biaya dan waktu yang diperlukan dan yang harus
dikeluarkan oleh pengguna dalam mencari informasi.
3. Mengurangi beban pekerjaan dalam pengelolaan pangkalan data
sehingga dapat meningkatkan efisiensi tenaga kerja.
35
4. Mempercepat pencarian informasi
5. Dapat melayani kebutuhan informasi masyarakat dalam jangakauan
yang luas.
Dalam sistem OPAC terdapat kegiatan pemasukan data dan
validasi atau pengecekan data yang dimasukkan kedalam basisdata.
Apabila ada kesalahan atau keraguan, data dapat dilacak berdsarkan nama
pengolah, pemasuk data, dan tanggal pemasukan yang tercantum pada
formulir.dengan menggunakan formulir, pemasukan data menjadi lebih
cepat dan fisik bahan pustakanya dapat segera diproses sebagaimana
mestinya sehingga dapat segera dipamerkan dan digunakan di unit
sirkulasi. (http://pustaka.litbang.deptan.go.id/) (Kusmayadi dan Andriaty,
2006)
2.5 JAVA
2.5.1 Pengertian Java
Java adalah suatu teknologi di dunia software komputer, yang
merupakan suatu bahasa pemrograman, dan sekaligus suatu platform.
Sebagai bahasa pemrograman, Java dikenal sebagai bahasa
pemrograman tingkat tinggi. Java mudah dipelajari, terutama bagi
programmer yang telah mengenal C/C++. Java merupakan bahasa
36
pemrograman berorientasi objek yang merupakan paradigma
pemrograman masa depan.
Sebagai bahasa pemrograman, Java dirancang menjadi handal dan
aman. Java juga dirancang agar dapat dijalankan di semua platform. Dan
juga dirancang untuk menghasilkan aplikasi-aplikasi dengan performansi
yang terbaik, seperti aplikasi database Oracle 8i/9i yang core-nya dibangun
menggunakan bahasa pemrograman Java. Sedangkan Java bersifat neutral
architecture, karena Java Compiler yang digunakan untuk mengkompilasi
kode program Java dirancang untuk menghasilkan kode yang netral
terhadap semua arsitektur perangkat keras yang disebut sebagai Java
Bytecode. Sebagai sebuah platform, Java terdiri atas dua bagian utama,
yaitu:
1. Java Virtual Machine (JVM).
2. Java Application Programming Interface (Java API).
Sun membagi arsitektur Java membagi tiga bagian, yaitu:
1. Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi
sistem tersebar dengan beraneka ragam klien dengan kompleksitas
yang tinggi. Merupakan superset dari Standar Java.
2. Standar Java (J2SE), ini adalah yang biasa dikenal sebagai bahasa
Java.
37
3. Micro Java (J2ME) merupakan subset dari J2SE dan salah satu
aplikasinya yang banyak dipakai adalah untuk wireless device atau
mobile device. (Asep, 2003)
2.6 JSP (Java Server Pages)
Untuk membangkitkan halaman-halaman web sesuai dengan
permintaan pemakai, para pengembang aplikasi web dapat menggunakan
perangkat lunak seperti JSP, PHP, Perl, dan ASP. JSP (Java Server Pages)
merupakan teknologi yang didasarkan pada bahasa Java, yang dapat
digunakan untuk membentuk halaman-halaman web yang bersifat dinamis
(Abdul Kadir, 2004).
JSP adalah suatu teknologi web berbasis bahasa pemrograman Java
dan berjalan di platform java, serta merupakan bagian dari teknologi J2EE
(Java 2 Enterprise Edition) (Isak Rickyanto, 2002).
JSP sangat sesuai dan tangguh untuk menangani presentasi di web. Hal
ini dikarenakan JSP dapat memisahkan desain presentasi dengan skrip atau
kode pemrograman untuk menghasilkan data atau isi yang dinamik. Selain itu,
karena JSP berbasis bahasa pemrograman Java, maka aplikasi yang dibuat
dengan JSP juga mempunyai karakteristik “write once, built anywhare” yaitu
portabilitas yang tinggi. JSP juga memiliki manajemen memori yang tinggi,
sekuritas yang baik, dan dapat memanfaatkan pemrograman berorientasi objek
dari Java.
38
Pada dasarnya, kode JSP merupakan kode HTML yang dilengkapi
dengan tag-tag JSP. Untuk menjalankan JSP yang diperlukan adalah web
container serta Java Virtual Machine (JVM).
2.6.1 Sintaks JSP
JSP memiliki tag standar yang bisa disebut dengan JSP Standard
Tag Library (JSTL), tapi JSP juga mengizinkan tag-tag yang dapat dibuat
sendiri sesuai kebutuhan (custom element). Elemen standar pada JSP dapat
dikelompokkan menjadi tiga yaitu :
1. Elemen perintah (directive element)
Elemen perintah adalah elemen untuk menspesifikasikan informasi
tentang halaman yang bersangkutan.
2. Elemen skrip (scripting element)
Elemen skrip mengizinkan programmer memasukkan kode Java pada
kode JSP.
3. Elemen aksi (action element)
Elemen aksi merespon aksi yang berdasarkan informasi yang
dibutuhkan halaman JSP ketika diminta oleh browser.
(Shalahuddin : 2008)
39
2.7 Framework
2.7.1. Definis Framework
Dapat dijelaskan bahwa Software Framework adalah
sekumpulan kode yang dirancang untuk memfasilitasi sebuah
pengembangan aplikasi dengan membuat bagian-bagian berupa
fungsi ataupun abstrak dari suatu bahasa pemrograman dan
selanjutnya membuat serta menyediakan aturan-aturan standar
bagaimana bagian-bagian berupa fungsi ataupun abstrak tersebut
dapat diakses serta digunakan.
Framework dalam dunia komputer digunakan sebagai
sebuah acuan utama berupa kerangka program yang bersifat global,
yang dapat disesuaikan dengan keinginan penggunanya.
Framework yang dikembangkan saat ini telah mencakup berbagai
macam bahasa pemrograman. Pada pemrograman web, framework
telah dikembangkan untuk bahasa pemrograman antara lain PHP
dan Java. Untuk PHP, framework yang banyak digunakan misalnya
Zend Framework yang dikembangkan oleh Zend Technologies,
Code Igniter yang dikembangkan oleh Ellislab, Inc., dan Seagull
Framework.
Sedangkan untuk bahasa pemrograman Java, framework
yang tersedia sangat banyak.
40
2.7.2. Tujuan Framework
Tujuan framework adalah untuk memudahkan programmer
untuk melakukan pekerjaan yang umum dan dilakukan secara
berulang-ulang. Dengan adanya framework, hal-hal tersebut
menjadi lebih mudah karena framework sudah menyediakan fitur-
fitur tersebut, sehingga waktu pengerjaan diharapkan bisa menjadi
lebih cepat dan memperoleh hasil yang lebih baik.
Keuntungan lain dari penggunaan framework adalah
programming style dari tim developer bisa lebih seragam
(konsisten), karena framework sudah menyediakan pattern yang
sudah terbukti efektif untuk mendevelop aplikasi.
Kelemahan pengguanaan framework adalah perlunya waktu
untuk mempelajari cara penggunaan framework itu sendiri. Jika
waktu tersebut masih jauh lebih pendek daripada waktu pengerjaan
proyeknya, maka menggunakan framework akan memberikan
mafaat yang signifikan.
2.8 Apache Struts
Apache Struts adalah sebuah open source framework aplikasi web
untuk mengembangkan Java EE aplikasi web. Apache Struts
menggunakan dan memperpanjang Java Servlet API untuk mendorong
pengembang untuk mengadopsi Model-View-Controller (MVC) arsitektur
ini pada awalnya diciptakan oleh Craig McClanahan dan disumbangkan
41
kepada Yayasan Apache pada bulan Mei, 2000. Sebelumnya terletak di
bawah Apache Jakarta Project dan dikenal sebagai Jakarta Struts, itu
menjadi sebuah proyek Apache atas tingkat tahun 2005. Struts2 juga
merupakan rebranding dari WebWork bawah membuat Apache Struts.
Secara umum Struts adalah web development framework yang
berada dibawah payung Apache Software Foundation. Struts
menggunakan pattern Model-View-Controller (MVC) dengan
memanfaatkan Java Bean (Model), Servlet (Controller), dan JSP (View).
Gambar 2.3 : Arsitektur Struts
(Sumber : Shalahuddin , 2008)
2.8.1 Komponen Dasar dari Struts
1. Framework Dasar
Menyediakan fungsi dasar MVC dan kumpulan blok dasar dari
aplikasi. Pondasi dari framework dasar adalah servlet yang
42
memegang kontrol (controller servlet) dan sisanya adalah
kelas-kelas yang menangani fungsi-fungsi yang diperlukan.
2. Pustaka tag JSP
Struts dibungkus dengan beberapa pustaka tag JSP sebagai
berikut :
a. HTML
Digunakan untuk menggenarasi form yang berinteraksi
dengan API Struts.
b. Bean
Digunakan untuk bekerja dengan objek Java Bean misalnya
mengakses nilai bean.
c. Logic
Digunakan untuk implementasi kondisi logis dalam JSP.
d. Nested
Digunakan untuk penanganan level nested dari tag HTML,
Bean, dan Logic.
3. Tiles Plugin
Struts dibungkus dengan tiles subframework. Tiles adalah
kumpulan framework template JSP yang memfasilitasi
penggunaan kembali kode-kode yang telah ada.
4. Plugin Validator
43
Struts dibungkus dengan subframework validator yang
menyediakan kumpulan framework untuk kebutuhan validasi
data pada klien maupun server.
2.9 MySQL
MySQL merupakan software sistem manajemen database
(Database Management Systems/DBMS) yang sangat populer di kalangan
pemrograman web, terutama di lingkungan Linux dengan menggunakan
script PHP dan Perl (Sidik, 2005). MySQL merupakan salah satu jenis
database server yang sangat terkenal. Kepopulerannya disebabkan
MySQL menggunakan SQL sebagai bahasa dasar untuk mengakses
database-nya. Software database ini kini telah tersedia juga pada platform
sistem operasi Windows (Prasetyo, 2003).
MySQL adalah Relational Database Management Sistem
(RDBMS) yang didistribusikan secara gratis di bawah lisensi GPL
(General Public License). Dimana setiap orang bebas untuk menggunakan
MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed
source atau komersial (Prasetyo, 2003).
MySQL ideal untuk perangkat lunak database berbasis web
berukuran minimal dan menengah, namun telah menjanjikan untuk
penggunaan besar (Hariyanto, 2004).
2.9.1 Sejarah MySQL
44
Pada tahun 1994 MySQL pertama kali dikembangkan oleh
pengembang software dan konsultan database bernama MySQL
AB (yang dulunya bernama TcX DataKonsult AB) yang bertempat
di Swedia.
Awalnya Michael Widenius ”Monty”, pengembang satu-
satunya di TCX, memiliki sebuah aplikasi UNIREG dan rutin
ISAM buatannya sendiri dan sedang mencari antarmuka SQL yang
cocok untuk diimplementasikan ke dalamnya. Mula-mula Monty
memakai miniSQL (mSQL) pada eksperimennya itu, namun mSQL
dirasa kurang sesuai, karena terlalu lambat dalam pemrosesan
query.
Akhirnya Monty menghubungi David Hughes, pembuat
mSQL yang sedang merilis versi kedua dari mSQL. Kemudian
Monty mencoba membuat sendiri mesin SQL yang memiliki
antarmuka mirip dengan SQL, tetapi dengan kemampuan yan
glebih sesuai dan lahirlah MySQL.
Tentang pengambilan nama MySQL, sampai saat ini masih
belum jelas asal usulnya. Ada yang berpendapat nama My diambil
dari huruf depan dan belakang Monty, tetapi versi lain mengatakan
itu diambil dari nama putri Monty yang kebetulan bernama My
(Prasetyo, 2003).
2.9.2 Keistimewaan MySQL
45
Sebagai database server yang memiliki konsep database
modern, MySQL memiliki banyak sekali keistimewaan. Berikut ini
beberapa keistimewaan yang dimiliki MySQL (Prasetyo, 2003):
a. Portability
MySQL dapat berjalan stabil pada berbagai sistem operasi
seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris,
Amiga dan masih banyak lagi.
b. Open Source
MySQL didistribusikan secara open source, di bawah lisensi
GPL sehingga dapat digunakan secara cuma-cuma.
c. Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik.
d. Performance tuning
MySQL memiliki kecepatan yang menakjubkan dalam
menangani query sederhana, dengan kata lain dapat memproses
lebih banyak SQL per satuan waktu.
e. Column types
MySQL memiliki tipe kolom yang sangat kompleks, seperti
signed/ unsigned integer, float, double, char, text, date,
timestamp dan lain-lain.
46
f. Command dan functions
MySQL memiliki operator dan fungsi secara penuh yang
mendukung perintah Select dan Where dalam query .
g. Security
MySQL memiliki beberapa lapisan sekuritas seperti level
subnetmask, nama host dan izin akses user dengan sistem
perizinan yang mendetail serta password terenkripsi.
h. Scalability dan limits
MySQL mampu menangani database dalam skala besar,
dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta
5 milyar baris. Selain itu batas indeks yang dapat ditampung
mencapai 32 indeks pada tiap tabelnya.
i. Connectivity
MySQL dapat melakukan koneksi dengan client menggunakan
protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
j. Localisation
MySQL dapat mendeteksi pesan kesalahan pada client dengan
menggunakan lebih dari dua puluh bahasa. Meskipun demikian,
bahasa Indonesia belum termasuk di dalamnya.
k. Interface
47
MySQL memiliki interface terhadap berbagai aplikasi dan
bahasa pemrograman dengan menggunakan fungsi API
(Application Programming Interface).
l. Clients dan tools
MySQL dilengkapi dengan berbagai tool yang dapat digunakan
untuk administrasi database dan pada setiap tool yang ada
disertakan petunjuk online.
m. Struktur tabel
MySQL memiliki struktur tabel yang lebih fleksibel dalam
menangani ALTER TABLE, dibandingkan database lainnya
semacam PostgreSQL ataupun Oracle.
2.10 Unified Modeling Language (UML)
2.10.1 Definisi
UML adalah bahasa grafis untuk mendokumentasikan,
menspesifikasikan, dan membangun sistem perangkat lunak. UML
berorientasi objek menerapkan banyak level abstraksi, tidak
bergantung proses pengembangan, tidak tergantung pada bahasa
dan teknologi, pemaduan beberapa notasi di beragam metodologi,
48
usaha bersama dari banyak pihak. Standar UML dikelola oleh
OMG (Object Management Group) (Bambang Heriyanto,2004).
UML adalah bahasa pemodelan untuk menspesifikasikan,
memvisualisasikan, membangun dan mendokumentasikan artifak-
artifak dari sistem. Kelebihan UML diantaranya:
1. Di dalam (system intensive process), metode diterapkan sebagai
proses untuk menurutkan atau mengevolusikan sistem.
2. Sebagai bahasa UML digunakan untuk komunikasi, yaitu alat
untuk menangkap pengetahuan (semantik) mengenai suatu
subjek dan mengapresiasikan yang memperdulikan subjek
sebagai suatu komunikasi. Subjek merupakan sistem yang
dibahas.
3. Sebagai bahasa pemodelan, UML fokus pada pemahaman
subjek melalui formulasi model dari subjek (dan konsep yang
terhubung). Model memuat pengetahuan pada subjek, dan
aplikasi dari pengetahuan ini berkaitan dengan intelejensia.
4. Berkaitan dengan unifikasi, UML memadukan praktek
rekayasa terbaik sistem informasi dan industri, meliputi
beragam tipe sistem (perangkat lunak dan non lunak), domain
(bisnis, perangkat lunak) dan proses siklus hidup.
5. Ketika diterapkan untuk menspesifikasikan sistem,UML dapat
digunakan untuk mengkomunikasikan “apa” yang diperlukan
dari sistem dan “bagaimana” sistem dapat direalisasikan.
49
6. Ketika diterapkan untuk memvisualisasikan sistem, UML dapat
digunakan untuk menjelaskan sistem secara visual sebelum
direalisasikan.
7. Ketika diterapkan untuk membangun sistem, UML dapat
digunakan untuk memandu realisasi sistem serupa dengan
“blueprint”.
8. Ketika diterapkan untuk mendokumentasikan sistem, UML
dapat digunakan untuk menangkap pengetahuan mengenai
sistem pada seluruh siklus hidup (Hariyanto, 2004).
Diagram-diagram yang terdapat pada pemodelan UML sebagai
berikut :
a. Use Case Model Diagram
Use case adalah teknik untuk merekam persyaratan
fungsional sebuah sistem. Use case mendeskripsikan interaksi
tipikal antara para pengguna sistem dengan sistem itu sendiri,
dengan memberi sebuah narasi tentang bagaimana sistem
tersebut digunakan (Fowler, 2005).
Use case diagram merupakan diagram yang
menggambarkan interaksi antara sistem dengan sistem eksternal
dan pengguna Dengan kata lain, secara grafis menggambarkan
siapa yang akan menggunakan sistem dan dengan cara apa
pengguna mengharapkan untuk berinteraksi dengan sistem
(Whitten, 2004).
50
b. Activity Diagram
Activity diagram adalah teknik untuk menggambarkan
logika prosedural, proses bisnis dan jalur kerja (Fowler, 2005).
Activity diagram secara grafis digunakan untuk
menggambarkan rangkaian aliran aktifitas baik proses bisnis
atau use case (Whitten, 2004).
Diagram ini berbeda dengan flowchart dimana diagram ini
menyediakan sebuah mekanisme untuk menggambarkan
kegiatan yang tampak secara pararel (Munawar, 2005).
c. Sequence Diagram
Sequence diagram secara grafis menggambarkan
bagaimana object berinteraksi dengan satu sama lain melalui
pesan pada eksekusi sebuah usecase atau operasi. Sebuah
sequence diagram, secara khusus, menjabarkan behaviour
(perilaku) sebuah skenario tunggal (Flower, 2004). Diagram ini
mengilustrasikan bagaimana pesan terkirim dan diterima di
antara object dan sequence (ruang waktu) (Whitten, 2004).
Pembuatan Sequence diagram untuk desain sistem
penelitian ini berdasarkan pada setiap usecase dan
51
menggunakan konsep yang biasanya tersusun dari element
Object, Interaction dan Message. Object dapat berupa
boundary class, control class dan entity class. Sedangkan
Interaction menghubungkan dua objek dengan pesannya. Cara
mudah yang bisa diikuti untuk memulai pembuatan sequence
diagram adalah sebagai berikut (Hermawan, 2004):
1. Menggambarkan aktor dan kelas yang terlibat ke dalam
sequence diagram.
2. Mengurutkan element yang digunakan, di antaranya: aktor –
objek dari boundary class – objek dari control class – objek
dari entity class .
3. Mengikuti urutan seperti dalam usecase specification dan
mulai identifikasi operasi yang diperlukan untuk
mengeksekusi suatu baris aktivitas dalam usecase
specification. Operasi ini akan bergerak bertahap: dari aktor
ke boundary class, dari boundary class ke control class,
dari control class ke satu atau beberapa entity class.
4. Dari masing-masing operasi, identifikasi informasi apa saja
yang perlu dipindahkan dari aktor ke boundary class ke
control class hingga entity class.
d. Class Diagram
Class diagram mendeskripsikan jenis-jenis objek dalam
sistem dan berbagai macam hubungan statis yang terdapat di
52
antara mereka (Fowler, 2005). Class diagram merupakan
gambar grafis mengenai struktur objek statis dari suatu sistem,
menunjukkan kelas-kelas objek yang menyusun sebuah sistem
dan juga hubungan antara kelas objek tersebut (Whitten, 2004).
e. State Diagram
State diagram adalah teknik yang umum digunakan untuk
menggambarkan behavior sebuah sistem (Fowler, 2005). State
diagram mengilustrasikan siklus hidup object dan keadaan
yang dapat diasumsikan oleh object dan events yang
menyebabkan object beralih dari satu state ke state yang lain
(Whitten, 2004).
Tidak semua objek yang terdapat pada sistem dibuat state
diagram-nya, hanya objek yang memiliki perubahan status
yang akan dibuat state-nya dan state diagram digunakan hanya
untuk dokumentasi (Fowler, 2005).
f. Component Diagram
Component diagram menggambarkan struktur dan
hubungan antar komponen piranti lunak, termasuk
ketergantungan (dependency) di antaranya. Komponen piranti
lunak adalah modul berisi code, baik berisi source code
maupun binary code, baik library maupun executable, baik
yang muncul pada compile time, link time, maupun run time.
53
Umumnya komponen terbentuk dari beberapa class dan, atau
package, tapi dapat juga dari komponen-komponen yang lebih
kecil. (Sri Dharwiyanti , 2003)
g. Deployment Diagram
Deployment/physical diagram menggambarkan detail
bagaimana komponen di-deploy dalam infrastruktur sistem, di
mana komponen akan terletak (pada mesin, server atau piranti
keras apa), bagaimana kemampuan jaringan pada lokasi
tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisik.
Sebuah node adalah server, workstation, atau piranti keras lain
yang digunakan untuk men-deploy komponen dalam
lingkungan sebenarnya. Hubungan antar node (misalnya
TCP/IP) dan requirement dapat juga didefinisikan dalam
diagram ini (Sri Dharwiyanti , 2003).
2.10.2 Notasi UML
Notasi UML diturunkan dari tiga notasi yang sudah ada
sebelumnya yaitu Grady Booch OOD (Object Oriented Design),
Jim Rumbough OMT (Object Modelling Technique), dan Ivar
Jacobson OOSE (Object Oriented Sofware Engineering). Notasi
UML yang digunakan sekarang merupakan penggabungan dari tiga
notasi tersebut, yang terdiri dari:
54
1. Aktor (actor)
Dalam pemodelan sistem dengan UML, aktor adalah
seseorang atau sesuatu yang berinteraksi dengan sistem yang
sedang kita kembangkan. Aktor berada diluar lingkup sistem
atau perangkat lunak yang sedang kita kembangkan; bersifat
eksternal (Hermawan, 2006).
Secara prinsip dapat kita kenali 3 jenis aktor untuk hampir
semua sistem atau perangkat lunak yang kita kembangkan: para
pengguna sistem, perangkat lunak lain yang berinteraksi
dengan sistem, dan perangkat lunak yang kita kembangkan
serta waktu. Jadi aktor ini bisa berupa orang, perangkat keras
atau mungkin juga objek lain dalam sistem yang sama.
Biasanya yang dilakukan oleh aktor adalah memberikan
informasi pada sistem dan atau memerintahkan sistem untuk
melakukan sesuatu.
Gambar 2.4. Notasi Aktor
Sumber: (Nugroho, 2005)
55
2. Kelas (class)
Kelas seperti juga objek, adalah sesuatu yang membungkus
(encapsulate) informasi dan perilaku dalam dirinya
(Hermawan, 2006). Dalam pengembangan sistem tradisional,
kita mengadakan pendekatan dengan cara memisahkan
informasi-informasi pada sisi basis data dan perilaku yang
mengaksesnya di sisi aplikasi pemasup atau pengakses.
Pendekatan berorientasi objek berbeda, yaitu menggabungkan
potongan-potongan informasi dengan perilaku yang akan
mengaksesnya dalam apa yang dinamakan kelas.
Gambar 2.5. Notasi Kelas
Sumber: (Nugroho, 2005)
3. Usecase
Usecase adalah peringkat tertinggi dari fungsional yang
dimiliki sistem (Hermawan, 2006). Dengan kata lain, usecase
menggambarkan bagaimana seseorang akan menggunakan
sistem. Usecase menjelaskan suatu urutan kegiatan yang
dilakukan oleh aktor dan sistem untuk mencapai tujuan tertentu
Nama Kelas
Atribut
Operasi
Notasi Kelas
56
Nama Use Case
walaupun menjelaskan kegiatan namun usecase hanya
menjelaskan apa yang dilakukan oleh aktor dan sistem, bukan
bagaimana aktor dan sistem melakukan kegiatan tersebut.
Keunggulan dari cara memandang sistem sebagai kumpulan
usecase adalah kemampuannya untuk memisahkan
implementasi sistem dari alasan mengapa sistem harus ada. Ia
akan membantu kita untuk berfokus pada apa yang paling
penting, yaitu menentukan apa yang dibutuhkan serta apa
harapan pengguna terhadap sistem atau perangkat lunak yang
sedang dikembangkan.
Gambar 2.6. Notasi Usecase
Sumber: (Nugroho, 2005)
4. Interaction
Menurut Hermawan (2004) interaction digunakan untuk
menunjukan baik aliran pesan atau informasi antar objek
maupun hubungan antar objek. Biasanya interaction ini
dilengkapi juga dengan teks bernama operation signature yang
57
tersusun dari nama operasi, parameter yang dikirim dan tipe
parameter yang dikembalikan.
Gambar 2.7. Notasi Interaction
Sumber : ( Nugroho, 2005)
5. Interface
Interface merupakan kumpulan operasi tanpa implementasi
dari suatu class. Implementasi operasi dalam interface
dijabarkan dalam operasi dalam class. Oleh karena itu
keberadaan interface selalu disertai oleh class yang
mengimplementasikan operasinya (Hermawan, 2004). Interface
ini merupakan salah satu cara mewujudkan prinsip enkapsulasi
dalam objek.
Gambar 2.8. Notasi Interface
Sumber: (Nugroho, 2005)
6. Package
Package adalah container atau wadah konseptual yang
digunakan untuk mengelompokkan elemen-elemen dari suatu
58
sistem yang sedang dibangun, sehingga bisa dibuat model yang
lebih sederhana. Tujuannya adalah untuk mempermudah
penglihatan (visibility) dari suatu model yang sedang dibangun.
Gambar 2.9. Notasi Package
Sumber: (Nugroho, 2005)
7. Note
Note dibangun untuk memberikan keterangan dan komentar
tambahan dari suatu elemen sehingga bisa langsung terlampir
dalam model. Note ini bisa ditempelkan ke semua elemen
notasi yang lain.
Gambar 2.10. Notasi Note
Sumber: (Nugroho, 2005)
8. Dependency
Merupakan relasi yang menunjukan bahwa perubahan pada
suatu elemen memberikan pengaruh pada elemen yang lain.
Elemen yang ada di bagian tanda panah adalah elemen yang
Note
Package(from Use Case View)
59
tergantung pada elemen yang ada di bagian tanpa ada tanda
panah.
Terdapat dua stereotype dari dependency, yaitu include dan
extend. Include menunjukan bahwa suatu bagian dari elemen
(yang ada di garis tanpa panah) memicu eksekusi bagian dari
elemen yang lain (yang ada di garis dengan panah), misalnya
untuk notasi A & B operasi yang ada di class A memicu
dieksekusinya operasi yang berada di class B.
Extend menunjukan bahwa suatu bagian dari elemen di
garis tanpa panah bisa disiapkan ke dalam elemen yang ada di
gari dengan panah, misalnya untuk notasi A & B suatu fungsi
dari usecase A bisa disisipkan ke dalam usecase B atau dengan
kata lain A optional untuk B.
Ke dua stereotype ini di representasikan dengan
menambahkan text include atau extend di notasi dependency.
Gambar 2.11. Notasi Dependency
Sumber: (Nugroho, 2005)
9. Association
Association menggambarkan navigasi antar class
(navigation), berapa banyak objek lain yang bisa berhubungan
60
dengan satu objek (multiplicity antar class) dan apakah suatu
class menjadi bagian dari class lainnya (aggregation).
Navigation di lambangkan dengan penambahan tanda
panah di akhir garis. Bidirectional navigation menunjukan
bahwa dengan mengetahui salah satu class bisa didapatkan dari
informasi lainnya. Sementara dengan unidirectional navigation
hanya dengan mengetahui class di ujung garis association
tanpa panah kita bisa mendapatkan informasi dari class di
ujung dengan panah, tetapi tidak sebaliknya.
Gambar 2.12. Notasi Association
Sumber: (Nugroho, 2005)
2.11 Penelitian Sejenis
Berdasarkan hasil penelitian, penelitian-penelitian tentang rekayasa
balik (reverse engineering) yang mengambil objek yang sama dengan
yang penulis lakukan masih sedikit. Pada penelitian sebelumnya, terdapat
beberapa penelitian yang hampir serupa dengan judul rekayasa balik
(reverse engineering), diantaranya adalah :
61
1. Pengembangan metode reverse engineering untuk rekonstruksi
dokumen arsitektur perangkat lunak. (Romindo, Tesis : 2009)
Kelebihan dari penelitian ini adalah reverse engineering
dengan banyak kelebihan. Sedangkan kekurangannya adalah
tidak melakukan dengan pendekatan model based-design
sebagai pendekatan reverse engineering.
2. Reverse Engineering dan pendokumentasian system
pengenalan ucapan. (Ariawan, Skripsi : 2007)
Pendokumentasian dari sistem pengenalan ucapan
dilakukan berdasarkan diagram-diagram baku UML (Unified
Modeling Language). Kekurangan dari penelitian ini adalah
tidak menghasilkan Software Requirement Specification (SRS)
sistem pengenalan ucapan.
3. Rekayasa Balik (reverse engineering) Sistem Informasi
Akademik (SIM@K) dengan Pendekatan Model – Based
Design. (Inna Sabily Karima, Skripsi : 2010)
Pendokumentasian dari system informasi akademik
ini dilakukan berdasarkan diagram-diagram baku UML
(Unified Modeling Language). Pendekatan yang digunakan
adalah pendekatan model- based design. Kekurangan dari
penelitian ini adalah hanya mengahasilkan beberapa diagram
62
baku UML, yaitu use case digram, activity diagram, class
diagram, component diagram dan deployment diagram.
Berdasarkan pada beberapa penelitian sebelumnya, ada beberapa
kelebihan dari penelitian yang penulis lakukan, diantaranya adalah :
1. Dokumentasi yang dibuat berdasarkan artifact user interface
dari source code yang ada apada aplikasi TULIS.
2. Dokumentasi berupa hasil akhir diagram-diagram baku UML,
yaitu use case digram, activity diagram, class diagram,
sequence diagram, state diagram, component diagram dan
deployment diagram.
3. Dokumentasi menghasilkan Software Requirement
Specification (SRS) aplikasi TULIS.
Penting untuk melakukan rekayasa balik (reverse engineering) terutama
untuk kasus aplikasi TULIS pada perpustakaan UIN Syarif Hidayatullah
Jakarta agar sistem dapat terdokumentasi dengan baik, sehingga pada
akhirnya akan sangat membantu pengembang saat sistem tersebut akan
dikembangkan.
63
BAB III
METODOLOGI PENELITIAN
3.1 Metode Penelitian
Tujuan dari metodologi penelitian secara sederhana ialah
bagaimanakah mengetahui sesuatu yang dilakukan melalui cara tertentu
dengan prosedur yang sistematis. Proses sistematis ini tidak lain adalah
langkah-langkah metode ilmiah yang menggambarkan proses pelaksanaan
penelitian secara langsung maupun tidak langsung atau pemahaman tentang
cara berpikir dan cara melaksanakan hasil berpikir menurut langkah-langkah
ilmiah.
3.2 Teknik Pengumpulan Data
Dalam penyusunan skripsi ini, diperlukan data-data serta informasi
yang relatif lengkap sebagai bahan yang dapat mendukung kebenaran materi
uraian dan pembahasan. Oleh karena itu, sebelum penyusunan skripsi ini
dilakukan, maka perlu dilakukan riset atau penelitian terlebih dahulu untuk
menjaring data serta informasi yang terkait. Proses pengumpulan data dapat
dilakukan dengan teknik-teknik tertentu. Teknik yang dipilih dan digunakan
dalam proses pengumpulan data tergantung pada sifat dan karakteristik
penelitian yang dilakukan.
64
Teknik pengumpulan data yang dilakukan adalah sebagai berikut:
a. Observasi
Untuk mengumpulkan informasi dan data mengenai kebutuhan
sistem, penulis melakukan pengumpulan data dengan cara studi
lapangan atau observasi di tempat penelitian, dalam hal ini adalah
Perpustakaan Utama Universitas Islam Negeri Syarif Hidayatullah
Jakarta. Penulis melihat langsung ke lapangan untuk mengetahui system
yang sedang berjalan saat ini. Hal ini perlu dilakukan agar penulis dapat
melakukan analisis terhadap system yang telah berjalan.
b. Wawancara
Penulis melakukan wawancara langsung kepada pihak yang
berhubungan dengan plikasi perpustakaan. Pihak-pihak yang dimaksud
anatara lain adalah sebagai berikut :
1. Subag Layanan Umum bagian Otomasi, ICT dan Multimedia
2. Admin dari Aplikasi Perpustakaan TULIS
c. Studi pustaka
Melakukan studi pustaka dengan cara membaca dan mempelajari
buku-buku yang berhubungan dengan analisa dan perancangan sistem,
pemrograman web serta buku-buku yang mendukung topik yang akan
dibahas dalam penyusunan skripsi ini.
Selain itu, juga mengunjungi website yang berhubungan dengan
topik dalam skripsi ini. Adapun daftar buku dan website yang menjadi
65
referensi dalam penyusunan skripsi ini dapat dilihat pada daftar
pustaka.
3.3 Metode Rekayasa Balik (Reverse Engineering)
Rekayasa Balik (Reverse Engineering) merupakan suatu metode. Pada
Rekayasa Balik (Reverse Engineering) terdapat pendekatan-pendekatan
yang dapat digunakan oleh penulis. Mulai dari pendekatan melalui analisa
source code (statis), pendekatan berdasarkan model ataupun melalui analisa
run-time execution (dinamis). Tipa-tiap pendekatan tersebut memiliki
kelebihan dan kekurangannya masing-masing. Sebagai contoh, untuk
tingkat keakurasian yang dihasilkan, analisa source code memiliki tingkat
keakurasian yang lebih tinggi dibandingkan analisa yang lainnya. Hal ini
dikarenakan analisa ini melibatkan suatu informasi yang menyingkapkan
proses-proses apa saja yang dimiliki aplikasi dan informasi ini bersifat up-
to-date.
Berbeda halnya dengan pendekatan berdasarkan model. Pendekatan
ini menggunakan acuan dari dokumen-dokumen yang sudah ada
sebelumnya, tetapi dokumen-dokumen tersebut tidak bersifat up-to-date
dikarenakan belum tentu perubahan pada suatu aplikasi secara langsung
akan mengubah dokumen-dokumen yang bersangkutan. Disamping itu,
pendekatan run-time execution pun bisa dilakukan. Pendekatan ini
dilakukan dengan cara menganalisa hasil yang terjadi jika suatu scenario
dieksekusi. Pendekatan ini biasanya dilakukan jika aplikasi yang
66
bersangkutan tidak memiliki source code dan dokuman yang relevan.
Pendekatan ini memiliki tingkat keakurasian yang rendah karena jika
terdapat satu kemungkinan scenario saja yang terlewatkan akan berdampak
pada hasil akhirnya.
Tahapan-tahapan yang dilakukan oleh penulis dalam melakukan
penelitian untuk reverse engineering Aplikasi Perpustakaan TULIS adalah
sebagai berikut :
1. Memahami Ranah masalah (Problem Domain)
Dalam hal ini, penulis mengidentifikasi dan mengumpulkan
masalah yang terjadi pada aplikasi perpustakaan yang sedang
berjalan.
2. Analisa terhadap Artefak Construction
a. Identifikasi pengguna (actor) aplikasi perpustakaan TULIS
UIN Syarif Hidayatullah Jakarta.
b. Identifikasi interaksi antara actor dengan komputer. Setiap
interaksi ini, merupakan suatu Use Cae Realization (UCR).
c. Mengenali Basic Flow dari setiap UCR.
d. Mengenali Alternate Flow.
3. Analisa Source Code
67
Analisa source code ini bertujuan mengekstrak informasi-
informasi yang terdapat pada source code dan database. Diagram
yang memungkinkan dihasilkan dari analisa ini anatara lain class
diagram, activity diagram, use cse diagram dan component
diagram. Adapun tahapan yang dialkukan penulis dalam
menganalisa source code adalah sebagai berikut :
a. Class diagram recovery
b. Activity diagram recovery
c. Use case diagram recovery
d. Sequence diagram recovery
e. Component diagram recovery
f. Deployment diagram recovery
4. Analisa Domain Expert
Analisa domain expert ini bertujuan memverifikasikan
output yang telah dihasilkan pada tahapan analisa soure code oleh
domain expert. Analisa ini penting dilakukan untuk
menerjemahkan hasil output pada analisa source code yang masih
bersifat low-level representative menjadi sebuah informasi yang
high-level representative. Disamping itu, analisa ini berguna untuk
68
memvalidasi hasil yang sudah didapatkan pada tahapan analisa
source code dengan informasi yang diketahui domain expert.
1. Analisa terhadap rekonstruksi artefak Analysis & Design
a. Dengan dilakukan pendekatan bahwa sebuah UCR
merupakan realisasi dari sebuah Use Case (UC), yang
selanjutnya dikenal sebagai memiliki pemetaan 1 : 1. Maka
dapat disusun Spesifikasi UC dengan lengkap.
2. Rekonstruksi artefak Requirement Engineering
a. Memodelkan objek-objek dari hasil analisa source code dan
hubungan antara objek-objek kediaman diagram-diagram
UML antara lain adalah :
1. Class diagram
2. Activity diagram
3. Use case diagram
4. Sequence diagram
5. Component diagram
6. Deployment diagram
b. Hasil akhir, SRS (Software Requirement Spesification)
Gambar 3.1 : Tahapan Rekayasa Balik (Reverse Engineering)
Untuk keseluruhan hasil akhir dari seluruh analisa tersebutakan dijelaskan di
Software Requirement Spesification (SRS). Hasil akhir dari metode Reverse
Engineering penelitian ini, mengacu pada bakuan dokumentasi UP, ini berupa
dokumentasi “4+1 view” yang berupa : use case view, logical view,
implementation view dan deployment view. Sejumlah view ini kemudian
dimoelkan dengan menggunakan motasi UML, yaitu : use case diagram dan use
case description, class diagram, activity diagram,sequence diagram, component
diagram dan deployment diagram.
Atas dasar metode penelitian yang digunakan penulis pada penelitian
untuk melakukan Reverse Engineering ini, maka dapat dibuat suatu alur kegiatan
serta metode kerja penelitian seperti yang digambarkan pada gambar 3.2 dibawah
ini :
Pemilihan awal penelitian
Merumuskan
masalah dan judul
penelitian
Studi Literatur atau pustaka
Identifikasi masalah / Problem domain
1. Analisa modul sistem yang berjalan
2. Identifikasi masalah
Analisa domain Expert
a.Analisis terhadap rekonstruksi artefak. analysis & desgn
b.Rekonstruksi artefak. Requirement Engineering
1. Memodelkan objek-objek kedalam diagram-diagram UML
a. Class diagram
b. Actvity diagram
c. Usecase diagra
d. Sequence diagram
e. Component diagram
f. Deployment diagram
2. Hasil prodek SRS
Analisa Source Code
a. Class diagram recovery
b.Activity diagram recovery
c.Use Case recovery
d.Component diagram recovery
Analisa Artefak Construction
a. Identifikasi actor / pengguna
b. Penentuan Use case Realization (UCR)
c. Mengenali Basic Flow
d. Mengenali Alternate Flow
e. Menganalisa Source Code sistem
Penarikan dan Penyusunan Kesimpulan
Gambar 3.2 : Kerangka kerja berpikir peneliti
(Diolah oleh peneliti, 2011)
BAB IV
PEMBAHASAN
4.1. Sekilas Tentang Perpustakaan Utama UIN Syarif Hidayatullah Jakarta
Perpustakaan Utama UIN merupakan peralihan nama dari
Perpustakaan IAIN Jakarta, yang didirikan seiring dengan berdirinya IAIN
itu sendiri, yaitu sejak berdirinya ADIA (Akademi Dinas Ilmu Agama)
pada tanggal 1 Juni 1957. Pada waktu itu kondisi perpustakaan masih
sangat sederhana, hanya terdiri dari satu ruangan dengan koleksi sebanyak
2000 eksemplar, dan hanya dikelola oleh seorang pegawai.
Pada tahun 1960-1964 koleksi buku diklasifikasikan menurut DDC
(Dewey Decimal Classification). Di samping itu system peminjaman juga
sudah mulai tertib, dan jumlah pegawainya ada 4 orang.
Tahun 1964-1971 Perpustakaan IAIN banyak menerima
sumbangan buku dari berbagai lembaga, khususnya keduataan Mesir dan
Saudi Arabia, sehingga pada Januari 1969 jumlah koleksi menjadi 1.320
judul dan 10.999 eks buku, 23 skripsi, dan 310 eks majalah.
Selanjutnya, pada tahun 1971-1983 perpustakaan menempati ruang
yang lebih luas yaitu gedung Aula Madya saat ini. Pada tahun 1980
Perpustakaan IAIN Jakarta tercatat sebagai perpustakaan perguruan tinggi
terbaik se-DKI Jakarta.
Selanjutnya pada periode tahun 1984-1998 sempat pindah ke
gedung berlantai tiga di Kampus 2 di Jl. Kertamukti No. 5 Pisangan
Ciputat. Gedung tersebut saat ini menjadi Fakultas Psikologi.
Pada masa tahun 1998 hingga 2000 perpustakaan kembali pindah
ke kampus 1 menempati gedung baru yang dibangun di atas tanah eks
gedung Sanggar Pravitasari. Dengan demikian lokasi perpustakaan dan
kempus menjadi lebih dekat. Pada masa ini perpustakaan UIN Jakarta
mempeloporo berdirinya Serikat Kerja Sama Perpustakaan (SKP) yang
anggotanya terdiri dari seluruh perpustakaan IAIN dan STAIN di
Indonesia. Selanjutnya SKP ini diubah namanya menjadi Jarigan
Perpustakaan Perguruan Tinggi Islam (JPPTI) yang dideklarasikan di
Surabaya pada tahun 2003.
Seiring dengan bertambahnya jumlah fakultas, pada awal 1999
perpustakaan melakukan pengembangan dengan membuka layanan
perpustakaan disetiap fakultas yang ada di UIN Jakarta.
Tahun 2001 mulai melakukan perbaikan gedung dan
perlengkapannya penerapan system otomasi, penerapan system keamanan
koleksi dengan sensormatic, penambahan jenis layanan seperti warnet,
audio visual, dan lain sebagainya.
Seiring dengan berubahnya status IAIN menjadi UIN (SK Presiden
No. 31 tanggal 10 Mei 2002). Maka secara otomatis nama perpustakaan
pun ikut berubah yaitu menjadi “Perpustakaan Utama Universitas Islam
Negeri Syarif Hidayatullah Jakarta “.
Awal 2004 American Corner (Amcor) hadir di perpustakaan UIN
Jakarta untuk turut mengembangkan layanan perpustakaan utama melalui
penyediaan informasi tentang Amerika dan materi-materi internasional
lainnya.
Mulai tahun 2006, Perpustakaan Utama memperoleh kepercayaan
dari the Asia Foundation untuk menerima 50.000 copy buku dan
mendistribusikannya ke UIN, IAIN, dan STAIN di seluruh Indonesia.
Tahun 2008 ini perpustakaan meningkatkan layanannya dengan
berupaya membangun jaringan perpustakaan utama dengan perpustakaan-
perpustakaan fakultas melalui integrasi system informasi dan digitalisasi
untuk koleksi-koleksi terpilih yang ada di perpustakaan utama.
Tahun 2009 Perpustakaan Utama telah memulai untuk menerapkan
sistem automasi yang baru dengan nama Tulis, kepanjangan dari
Technology of UIN Library & Information System”.
Pimpinan Perpustakaan sejak dari berdirinya sampai sekarang
adalah :
1. 1960-1964 oleh Drs. A. Syadali.
2. 1964-1971 oleh Ny. Nabilah Lubis.
3. 1971-1983 oleh Ny. Dra. Hj. Halimah Madjid.
4. 1983-1984 oleh Drs. M. Kailani Eryono.
5. 1984-1998 oleh Drs Zaenal Arifin Toy, MLIS.
6. 1998-2000 oleh Drs. M. Djuhro S.
7. 2001-2006 oleh Dr H. Udjang Tholib, MA.
8. Desembaer 2006 sampai sekarang oleh Dr. M. Zuhdi, M.Ed.
(Zuhdi : 2009)
4.1.1 Visi dan Misi Perpustakaan Utama UIN Syarif Hidayatullah Jakarta
a. Visi
Perpusatakaan Utama UIN sebagai pusat informasi dan sumber
referensi terkemuka dalam berbagai ilmu pengetahuan terutama dalam
bidang kajian keislaman.
b. Misi
1. Menyediakan koleksi yang lengkap dalam bidang ke-islaman dan
bidang-bidang umum, sebagai pendukung kegiatan perkuliahan,
penelitian dan pengabdian kepada masyarakat.
2. Menyediakan berbagai layanan yang tepat, akurat dan cepat dalam
rangka memenuhi kebutuhan informasi bagi seluruh sivitas akademika
UIN Jakarta.
3. Mengembangkan pemanfaatan perpustakaan secara efektif oleh
seluruh sivitas akademika dengan melaksanakan beberapa program
information literacy.
4. Mengembangkan layanan jarak jauh untuk seluruh sivitas akademika
UIN dan masyarakat diluar UIN.
5. Membangun kerjasama yang efektif dengan masyarakat kampus dan
institusi atau organisasi lain baik didalam maupun diluar negeri.
6. Mengembangkan kualitas SDM perpustakaan agar mampu
menjalankan profesinya sesuai perkembangan zaman.
7. Mengembangkan pengadaan dan pemanfaatan koleksi non cetak dan
perpustakaan online. (Zuhdi, dkk, 2009 :1)
4.1.2 Tujuan Perpustakaan Utama UIN Syarif Hidayatullah Jakarta
Secara umum tujuan Perpustakaan Utama UIN Jakarta adalah
mendukung keberhasilan semua aktivitas Tri Darma Perguruan Tinggi
yang berlangsung di UIN Jakarta baik dalam bidang pengajaran dan
pendidikan, penelitian maupun pengabdian pada masyarakat. (Zuhdi :
2009)
4.1.3 Struktur Organisasi Perpustakaan Utama UIN Syarif Hidayatullah
Jakarta
REKTOR
Pembantu Rektor
Bidang Akademik
KEPALA
Dr. M. Zuhdi, M.Ed.
WAKIL KEPALA
Nutyudi, S.Ag., MLIS
SUBAG LAYANAN TEKNIS
Siti Maryam, S.Ag., M.HumSUBAG LAYANAN UMUM
Drs. H. Zainal Arifin, M. Pdi
SUBAG ADMINISTRASI PERPUSTAKAAN
Drs. H. Zainal Arifin, M.Pdl
PENGOLAHAN
1. Dra. Gustiati.
(Kaur)
2. Yarma, SIP
3. Asma Adam, BA
4. Nawawi
PENGADAAN &
PENGEMB. KOLEKSI
1. Ulfah Andayani,
S.Ag.,M.Hum.
(Kaur)
2. Heru Widodo, Amd
3. Risma
PEMELIHARAAN
1. Hj. Nilzamni
Lubis
(Kaur)
2. Muh. Salbani
3. Junaidi
4. Ahmad
PUSTAKAWAN &
PENGEMB. SDM
REFERENSI
1. H.Abdullah S.Ag
(Kaur)
2. Drs. Mawardi
Hasan
3. Nurhadi
SIRKULASI
1. Supiani , SIP
(Kaur)
2. Abbas Khaidir
3. Winda Istati
4. Lismawarni
Dewi
OTOMASI, ICT &
MULTIMEDIA
1. Kusaeri (Kaur)
2. A. Nur Soleh
3. Maryu Lisman
KERJASAMA &
LAYANAN
KHUSUS
1. Ulfah Andayani
(Pjs Kaur)
2. Rinto
NasutionP
ER
PU
ST
AK
AA
N
FA
KU
LT
AS
STAF
1. Juhaeriyah
2. Rusdi
3. Dakuri
4. Muniroh
5. Priyo Supriyadi
6. andi Wijaya
7. Lina Farida
Gambar 4.1 : Struktur Organisasi Perpustakaan Utama UIN
4.2 Memahami Ranah Masalah (Problem Domain)
4.2.1 Analisa Sistem yang Berjalan
Berdasarkan pengamatan dan observasi yang dilakukan oleh
penulis, aplikasi perpustakaan TULIS UIN Syarif Hidaytullah Jakarta
yang sedang berjalan belum berfungsi secara efektif dan optimal.
Tabel 4.1 : Fitur Menu Back Office pada Aplikasi TULIS
No. Fitur Keterangan
1. Pengadaan
a. Purchase Order
b. Desiderata
c. Supplier
d. Finance
e. Daftar pemesanan
Mengelola data yang berkaitan
dengan proses pengadaan dari
koleksi-koleksi perpustakaan
2. Pengolahan
a. Tambah data
1. Edit data
2. Hapus data
b. Set field hasil cari
Mengolah data koleksi.
3. Keanggotaan
a. Daftar anggota
1. Tambah data anggota
2. Edit data anggota
3. Hapus data anggota
b. Set field hasil cari
Pengelolaan data-data dari
anggota perpustakaan
4. Sirkulasi
a. Peminjaman
b. Pengembalian
c. Cek koleksi
Mengelola keluar masuknya
koleksi pada perpustakaan
5. Administrasi
a. Sistem
1. Nama perpustakaan
2. Perpustakaan lain
3. Grup Pustakawan
4. Pustakawan
5. Manajemen web
6. Lihat saran
b. Koleksi
1. Konfigurasi koleksi
2. Daftar tipe koleksi
3. Tambah tipe koleksi
4. Field koleksi
5. Hubungan data
6. Index koleksi
7. Cetak data
8. Import koleksi
c. Anggota
1. Konfigurasi anggota
2. Field anggota
3. Grup anggota
4. Masa berlaku
Mengelola data yang berkaitan
dengan sistem administrasi dari
aplikasi perpustakaan itu sendiri.
5. Import anggota
d. Sirkulasi
1. Aturan sirkulasi
2. Hari libur
6. Laporan
a. Koleksi dipinjam
b. Koleksi Hilang
c. Koleksi dikeluarkan
d. Chart koleksi
Mengelola data koleksi yang
kemudian dibuat dalam bentuk
laporan.
7. Laporan 2
a. 10 buku paling sering
b. 10 Peminjam terbanyak
c. Jumlah koleksi
d. Jumlah peminjam dan
koleksinya
e. Statistik denda bulanan
f. Statistik denda harian
g. Statistik denda tahunan
h. Statisttik input koleksi
i. Statistik input olah
j. Statistik peminjaman
k. Statistik pengunjung
l. Statistik pegunjung hari ini
m. Statistik pengunjung tahunan
Mengelola data yang
berhubungan dengan aktifitas
perpustakaan yang kemudian
dilaporkan dalam dalam kurun
waktu yang ditentukan.
8. User
a. Ganti password
b. Profil
Pengelolaan aktifitas dari user.
c. Keluar
Tabel 4.2 : Fitur Menu OPAC pada Aplikasi TULIS
No. Fitur Keterangan
1. Login Masuk kedalam catalog sebagai
member
2. Jelajah Koleksi Mencari koleksi yang diinginkan
yang tersedia pada perpustakaan.
3. Favorit Menampilkan halaman koleksi
yang sering dicari oleh user.
4. Koleksi terbaru Halaman untuk melihat koleksi
terbaru dari peprpustakaan.
5. Daftar pinjam Mengecek daftar pinjaman
anggota perpustakaan
6. Pesan pinjam Form untuk memesan pinjaman
koleksi
7. Usulan koleksi Form untuk mengusulkan buku
(anggota melakukan penginputan
berupa judul,pengarang dan
penerbit dari koleksi yang
diinginkan)
8. Logout Keluar dari catalog
4.2.2 Identifikasi Masalah
Dari observasi yang dilakukan penulis terhadap sistem dari aplikasi
perpustakaan TULIS pada Perpustakaan Utama UIN Syarif Hidayatullah
Jakarta, maka penulis dapat mengidentifikasi masalah-maslah yang terjadi
pada sistem yang sedang berjalan saat ini, antara lain adalah :
1. Aplikasi TULIS ini belum dapat berintegrasi dengan perpustakaan
yang ada pada setiap fakultas.
2. Proses peng inputan data baru anggota perpustakaan masih dilakukan
secara manual.
3. Ada kartu anggota yang tidak terdaftar pada daftar keanggotaan.
4. Perhitungan denda keterlambatan pengembalian sering mengalami
kesalahan.
5. Pembacaan barcode sering mengalami gangguan.
4.3 Analisis terhadap artefak construction
4.3.1 Indentifikasi Actor (pengguna)
Pada tahap identifikasi pengguna (actor) aplikasi TULIS
Perpustakaan Utama UIN Syarif Hidayatullah Jakarta merupakan hal yang
sangat penting karena actor merupakan sesuatu yang berinteraksi dengan
sistem, atau dengan kata lain siapa atau apa yang menggunakan sistem
(Booch et. al., 1998)
Dalam ineteraksinya dengan sistem, actor melakukan interaksi
berupa mengirim atau menerima informasi dari sistem. Dari penjelasan ini
dapat dikatakan bahwa actor dapat bersifat aktif dengan melakukan inisiasi
Use case atau dapat juga bersifat pasif yang tidak menginisiasi Use case.
Aplikasi perpustakaan ini mempunyai beberapa actor yang mempunyai
akses secara langsung. Identifikasi actor dan hak akses aplikasi TULIS
dapat dilihat pada tabel dibawah ini :
Tabel 4.3 : Identifikasi Actor
No. Actor Deskripsi
1 Administrator Actor administrator mempunyai
hak access menu yang
diperbolehkan adalah sebagai
berikut :
1. Nama perpustakaan
2. Perpustakaan lain
3. Grup Pustakawan
4. Pustakawan
5. Manajemen web
6. Lihat saran
9. Konfigurasi koleksi
10. Daftar tipe koleksi
11. Tambah tipe koleksi
12. Field koleksi
13. Hubungan data
14. Index koleksi
15. Cetak data
16. Import koleksi\
17. Konfigurasi anggota
18. Field anggota
19. Grup anggota
20. Masa berlaku
21. Import anggota
22. Aturan sirkulasi
23. Hari libur
2. Staff Input Data Actor staff nput data mempunyai
hak access menu yang
diperbolehkan adalah sebagai
berikut :
a. Tambah data
b. Hapus data
c. Edit data
d. Set field hasil cari
e. Daftar anggota
f. Koleksi dipinjam
g. Koleksi hilang
h. Koleksi dikeluarkan
i. Chart koleksi
3. Staff Sirkulasi Actor staff sirkulasi mempunyai
hak access menu yang
diperbolehkan adalah sebagai
berikut :
a. Koleksi dipinjam
b. Koleksi hilang
c. Koleksi dikeluarkan
d. Chart koleksi
e. Peminjaman
f. Pengembalian
4. Staff Pemeliharaan Actor staff pemeliharaan
mempunyai hak access menu
yang diperbolehkan adalah
sebagai berikut :
a. Tambah data
b. Hapus data
c. Edit data
d. Set field hasil cari
5. Mahasiswa Actor mahasiswa mempunyai hak
access menu yang diperbolehkan
adalah sebagai berikut :
a. Lihat koleksi terbaru
b. Jelajah Koleksi
c. Mengusulkan buku
4.3.2 Identifikasi interaksi actor dengan komputer
Identifikasi interaksi actor dengan komputer, yang bersifat end-to-
end. Setiap interaksi ini, merupaka sebuah Use case Realization (UCR). Use
case Realization (UCR) yaitu relasi Use case , sebuah relasi Use case yang
menggambarkan bagaimana sebuah Use case direlasikan dalam model
design.
1. Analisa Use case
Melihat bentuk Use case, baik dilihat dari keseluruhan proses
yang dilakukan dalam Use case. Dalam melakukan analisa Use case,
aspek yang perlu diperhatikan adalah dengan memperhatikan
kesamaan dalam hal semantiknya. Artinya dalam setiap Use case
memiliki nama yang berbeda, namun dalam esensial prosesnya
memiliki alur proses yang sama yang dilihat dari deskripsi singkat
pada setiap Use case nya. Pada tahapan ini, analisa dilakukan dari sisi
aplikasi yang sudah berjalan dan belum memandang dari sisi
informasinya yang memperhatikan proses secara manual analisa ini
dilakukan pada tahapan berikutnya.
2. Kegiatan actor yang berhubungan dengan Aplikasi TULIS
Untuk membantu mendefinisikan fungsi-fungsi dalam proses
yang berhubungan dengan aplikasi TULIS, maka diperlukan
identifikasi kegiatan interaksi beberapa actor yang terlibat dalam
proses tersebut. Beberapa contoh bentuk kegiatan yang dilakukan oleh
beberapa actor yang terlibat dalam proses aplikasi TULIS.
a. Proses Registrasi Keanggotaan Perpustakaan
b. Proses Pengolahan Koleksi Perpustakaan
c. Proses Peminjaman dan Pengembalian Koleksi
Tabel 4.4 : Identifiksi Use case
No. Use case Name Use case decription Actor
1. Input Nama Perpustakaan Use case ini menjelaskan interaksi
yang menggambarkan proses
untuk memasukkan nama
perpustakaan
Admin
2. Input Koneksi
Perpustakaan lain
Use case ini menjelaskan interaksi
yang menggambarkan proses
memasukkan koneksi antara
perpustakaan
Admin
3. Edit node perpustakaan Use case ini menjelaskan interaksi
yang menggambarkan proses
untuk edit node perpustakaan
Admin
4. Hapus node perpustakaan Use case ini menjelaskan interaksi
yang menggambarkan proses
untuk hapus node perpustakaan
Admin
5. Input User grup Use case ini menjelaskan interaksi
yang menggambarkan proses
penginputan dari user grup
Admin
6. Edit User Grup Use case ini menjelaskan interaksi
yang menggambarkan proses
pengeditan dari user grup
Admin
7. Input Pustakawan Use case ini menjelaskan interaksi
yang menggambarkan proses
penginputan dari pustakawan
Admin
8. Edit pustakawan Use case ini menjelaskan interaksi
yang menggambarkan proses
pengeditan dari user grup
Admin
9. Hapus pustakawan Use case ini menjelaskan interaksi
yang menggambarkan proses
hapus data pustakawan
Admin
10. Input konfigurasi koleksi Use case ini menjelaskan interaksi
yang menggambarkan proses
penginputan dari konfigurasi
koleksi
Admin
11. Hapus Tipe Koleksi Use case ini menjelaskan interaksi
yang menggambarkan proses
menghapus tipe koleksi
Admin
12. Input Data anggota Use case ini menjelaskan interaksi
yang menggambarkan proses
penginputan data anggota
perpustakann
Admin,
Input data,
dan Bagian
Pengolahan
13. Edit Data Anggota Use case ini menjelaskan interaksi
yang menggambarkan proses
pengeditan data anggota
perpustakaan
Admin,
Input data,
dan Bagian
Pengolahan
14. Hapus Data anggota Use case ini menjelaskan interaksi
yang menggambarkan proses
menghapus data anggota
perpustakaan karena mahasiswa
tersebut sudah lulus
Admin,
Input data,
dan Bagian
Pengolahan
15. Input Data Koleksi Use case ini menjelaskan interaksi
yang menggambarkan proses
penginputan data koleksi
Admin,
Input data,
dan Bagian
perpustakaan Pengolahan
16. Edit Data Koleksi Use case ini menjelaskan interaksi
yang menggambarkan proses
pengeditan data koleksi
perpustakaan
Admin,
Input data,
dan Bagian
Pengolahan
17. Hapus Data Koleksi Use case ini menjelaskan interaksi
yang menggambarkan proses
menghapus data koleksi
perpustakaan karena koleksi
tersebut rusak atau hilang
Admin,
Input data,
dan Bagian
Pengolahan
18. Peminjaman Buku Use case ini menjelaskan interaksi
yang menggambarkan proses
peminjaman buku
Admin dan
Sirkulasi
19. Pengembalian buku Use case ini menjelaskan interaksi
yang menggambarkan proses
pengembalian Buku
Admin dan
Sirkulasi
20. Jelajah Koleksi Use case ini menjelaskan interaksi
yang menggambarkan proses
penjelajahan koleksi yang ada di
perpustakaan
Mahasiswa
21. Usul Koleksi Use case ini menjelaskan interaksi
yang menggambarkan proses
pengusulan koleksi yang
diinginkan
Mahasiswa
22. Lihat Koleksi baru Use case ini menjelaskan interaksi
yang menggambarkan proses
melihat koleksi terbaru yang ada
di perpustakaan
Mahasiswa
4.3.3 Mengenali basic flow dan alternate flow
Untuk menghasilkan Use case scenario, bagian yang digunakan
adalah flow of events. Flow of event terdiri dari dua bagian, yaitu basic
flow dan alternate flow. Basic flow menggambarkan alur yang seharusnya
terjadi bila Use case berjalan dengan normal, sedangkan alternate flow
menggambarkan percabangan yang terjadi dari alur normal. Sebuah Use
case mmepunyai sebuah basic flow dan dapat tidak memiliki alternate
flow.
Basic flow (aliran normal) merupakan jantung dari sebuah Use
case. Serta dapat menjelaskan interaksi antara actor dan system dalam
kondisi normal., yaitu segala sesuatu berjalan dengan lanjcar, tiada
halangan atau hambatan dalam mencapai tujuan dari Use case.
Alternate flow merupakan pelengkap dari basic flow karena tidak
ada yang sempurna dalam setiap kali Use case berlangsung. Didalam
alternate flow ini dijelaskan apa yang akan terjadi bila suatu halangan atau
hambatan terjadi sewaktu Use case berlangsung. Hal ini berhubungan
dengan error yang mungkin terjadi pada proses sistem.
1. Analisa basic flow
Analisa basic flow masih melihat dari sisi aplikasinya dan mengacu
pada alur proses aplikasi secara logic (logical flow). Basic flow yang
melihat alur action data system response yang paling umum dan paling
sering muncul dari kasus yang ada dengan membuat tabulasi Use case.
2. Analisa proses precondition dalam postcondition
Pada tahapan ini sudah memperhatikan aspek dari sistem informasi
akademik dengan melihat proses yang harus dilakukan sebelum dan
sesudahnya, baik yang dilakukan secara manual maupun yang sudah
berinteraksi dengan sistem. Acuan dari tahapan ini adalah berdasarkan alur
proses secara logic (logical flow). Hal ini bisa menjelaskan proses detail
dari basic flow yang nantinya bisa dijadikan acuan dasar sebagai
kebutuhan sistem.
Setelah melakukan kedua analisa tersebut, maka penulis
mengidentifikasi set Use case commonality dari proses yang berkaitan
dengan aplikasi perpustakaan TULIS yang sedang berjalan. Dibawah ini
adalah hasil identifikaksi set Use case commonality :
Tabel 4.5 : Input Nama Perpustakaan
Basic Flow : Input Nama Perpustakaan
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan nama
perpustakaan
Halaman form
untuk input
nama
perpustakaan
6 Sistem
menampilkan
menu form
nama
perpustakaan
7 Actor
melakukan
penginputan
nama
perpustakaan
8 Actor
melakukan
pilihan OK
9 Sistem
menampilkan
detail data yang
di inputkan oleh
actor
10 Sistem
mengupdate
database nama
perpustakaan
Alternate flows :1. Sistem akan otomatis menolak penginputan anggota jika nama
perpustakaan sudah ada atau tersimpan pada database. Maka dari itu actor harus merubah
nama perpustakaan tersebut.
Tabel 4.6. : Input Koneksi Perpustakaan Lain
Basic Flow : Input Koneksi Perpustakaan Lain
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan
perpustakaan
lain
Halaman untuk
koneksi ke
perpustakaan
lain
6 Sistem
menampilkan
halaman
koneksi
perpustakaan
lain
Halaman form
koneksi
perpustakaan
lain
7 Actor
melakukan
penginputan
data koneksi
perpustakaan
8 Actor
melakukan
pilihan simpan
9 Sistem
menampilkan
detail data yang
di inputkan oleh
actor
10 Sistem
mengupdate
database
koneksi
perpustakaan
Alternate flows :
Sistem akan menolak jika ada kesamaan dari segi kode, nama perpustakaan dan
endpoint. Maka Actor harus merubah dengan cara mengedit data koneksi perpustakaan
tersebut.
Tabel 4.7 : Edit Node Perpustakaan
Basic Flow : Edit Node Perpustakaan
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan
perpustakaan
lain
Halaman untuk
daftar nama
perpustakaan
6 Sistem
menampilkan
daftar nama
perpustakaan
7 Actor
melakukan
pilihan edit
node
perpustakaan
Halaman untuk
edit data
perpustakaan
8 Actor
melakukan
pengeditan
terhadap data
perpustakaan
9 Setelah data di
edit, actor
melakukan
pilihan simpan
Halaman detail
data
perpustakaan
10 Sistem
menampilkan
detail data yang
di inputkan oleh
actor
11 Sistem
mengupdate
database nama
perpustakaan
Alternate flows :
Tabel 4.8 : HapusNode Perpustakaan
Basic Flow : Hapus Node Perpustakaan
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan
perpustakaan
lain
Halaman daftar
nama
perpustkaan
6 Sistem
menampilkan
daftar nama
perpustakaan
7 Actor
melakukan
pilihan hapus
pada
perpustakaan
yang ingin
dihapus.
8 Sistem
menampilkan
peringatan
apakah benar
ingin
menghapus
node
perpustakaan
9 Actor
melakukan
pilihan OK
Halaman detail
daftar
perpustkaan
10 Sistem
menampilkan
detail daftar
perpustakaan
11 Sistem
mengupdate
database nama
perpustakaan
Alternate flows :
Tabel 4.9 : Input User Grup
Basic Flow : Input User Grup
Actor : Administrator,
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan grup
pustakawan
Halaman user
grup setup
6 Sistem
menampilkan
halaman user
grup setup
7 Actor
melakukan
penginputan
nama user grup
8 Actor
melakukan
pilihan hak
akses dari user
grup tersebut
9 Actor
melakukan
pilihan simpan
Halaman detail
data user grup
10 Sistem
menampilkan
detail dari data
user grup
11 Sistem
mengupdate
database user
grup
Alternate flows : Sistem akan menolak jika ada kesamaan dari segi inputandari nama
user group. Maka Actor harus merubah dengan cara mengedit data user group tersebut
dengan nama yang berbeda.
Tabel 4.10 : Edit User Grup
Basic Flow : Edit User Grup
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan grup
pustakawan
Halaman user
grup setup
6 Sistem
menampilkan
halaman user
grup setup
7 Actor
melakukan
pilihan edit
pada user grup
yang akan di
edit
Halaman data
user grup
8 Sistem
menampilkan
data user grup
yang akan di
edit
9 Actor
melakukan
pengeditan
terhadap user
grup
10 Actor
melakukan
pilihan simpan
11 Sistem
menampilkan
detail dari data
user grup
12 Sistem
mengupdate
database
Alternate flows :
Tabel 4.11 : Input Pustakawan
Basic Flow : Input Pustakawan
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan
pustakawan
Halaman user
setup
6 Sistem
menampilkan
halaman user
setup
7 Actor
melakukan
penginputan
data pustakawan
8 Actor
melakukan
pilihan simpan
Halaman detail
data pustakawan
9 Sistem
menampilkan
detail dari data
pustakawan
10 Sistem
mengupdate
database
Alternate flows :
Tabel 4.12 : Edit Pustakawan
Basic Flow : Edit Pustakawan
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan
pustakawan
Halaman
pustakawan
6 Sistem
menampilkan
halaman
pustakawan
7 Actor
melakukan
pilihan edit data
pustakawan
Halaman detail
data pustakawan
8 Sistem
menampilkan
data detail dari
pustakawan yang
ingin di edit
9 Actor
melakukan
pengeditan
terhadap data
pustakawan
10 Actor
melakukan
pilihan simpan
11 Sistem
melakukan
update database
12 Sistem
menampilkan list
data pustakawan
Alternate flows :
Tabel 4.13 : Hapus Pustakawan
Basic Flow : Hapus Pustakawan
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Sistem
5 Actor
melakukan
pilihan
pustakawan
Halaman
pustakawan
6 Sistem
menampilkan
halaman
pustakawan
7 Actor
melakukan
pilihan hapus
data pustakawan
8 Sistem
menampilkan
peringatan
apakah benar
akan mengahapus
data pustakawan
tersebut
9 Actor
melakukan
pilihan OK
10 Sistem
melakukan
update database
11 Sistem
menampilkan list
data pustakawan
Alternate flows :
Tabel 4.14 : Konfigurasi Koleksi
Basic Flow : Konfigurasi koleksi
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Koleksi
5 Actor
melakukan
pilihan
konfigurasi
koleksi
Halaman form
konfigurasi
koleksi
6 Sistem
menampilkan
form konfigurasi
koleksi
7 Actor
melakukan
penginputan tipe
koleksi
8 Actor
melakukan
penginputan
konfigurasi
koleksi
9 Actor
melakukan
pilihan simpan
10 Sistem
melakukan
update database
Alternate flows :
Tabel 4.15 : Hapus Tipe Koleksi
Basic Flow : Hapus Tipe koleksi
Actor : Administrator
Usernama : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Administrasi
4 Actor
melakukan
pilihan Koleksi
5 Actor
melakukan
pilihan daftar
tipe koleksi
Halaman tipe
koleksi
6 Sistem
menampilkan tipe
koleksi
7 Actor
melakukan
pilihan hapus
pada tipe
koleksi yang
ingin dihapus
8 Sistem
menampilkan
peringatan
apakah benar
akan menghapus
tipe koleksi
tersebut
9 Actor
melakukan
pilihan OK
10 Sistem
melakukan
update database
Alternate flows :
Tabel 4.16 : Input Data Anggota
Basic Flow : Input Data Anggota
Actor : Administrator, Staff input data
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Keanggotaan
4 Actor
melakukan
pilihan daftar
anggota
5 Sistem
menampilkan
menu perintah
6 Actor pilih
tambah data
Halaman form
input data
anggota
7 Sistem
menampilkan
form input data
anggota
8 Actor
melakukan
input data
anggota
9 Actor
melakukan
pilihan simpan
Halaman detail
data anggota
10 Sistem
menampilkan
detail data yang
di inputkan oleh
actor
11 Sistem
mengupdate
database
anggota
Alternate flows : 1. Sistem akan otomatis menolak penginputan anggota jika ada form yang belum diisi. Maka actor harus melakukan penginputan secara benar.
Tabel 4.17 : Edit Data Anggota
Basic Flow : Input Data Anggota
Actor : Administrator, Staff input data
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Keanggotaan
4 Actor
melakukan
pilihan daftar
anggota
5 Sistem
menampilkan
menu perintah
Halaman input
data anggota
6 Actor
melakukan
penginputan
data anggota
7 Actor
mealakukan
pilihan cari
8 Sistem
menampilkan
data anggota
yang dicari
9 Actor
melakukan
pilihan data
detail
Halaman detail
data anggota
10 Sistem
menampilkan
data detail dari
anggota yang
akan di edit
11 Actor
melakukan
pengeditan
data anggota
12 Actor
melakukan
pilihan simpan
13 Sistem
mengupdate
database
anggota
Alternate flows : 1. Sistem akan otomatis menolak penginputan anggota jika ada form yang belum diisi. Maka actor harus melakukan penginputan secara benar.
Tabel 4.18 : Hapus Data Anggota
Basic Flow : Hapus Data Anggota
Actor : Administrator, Staff input data
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Keanggotaan
4 Actor
melakukan
pilihan daftar
anggota
5 Sistem
menampilkan
menu perintah
Halaman input
data anggota
6 Actor
melakukan
penginputan
data anggota
7 Actor
melakukan
pilihan cari
Halaman data
anggota
8 Sistem
menampilkan
data anggota
yang dicari
9 Actor
melakukan
pilihan hapus
data
10 Sistem
menampilkan
peringatan
apakah benar
akan
menghapus data
anggota tersebut
11 Actor
melakukan
pilihan OK
12 Sistem
mengupdate
database
anggota
Alternate flows :
Tabel 4.19 : Input Data Koleksi
Basic Flow : Input Data Koleksi
Actor : Administrator, Staff Pengolahan
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Pengolahan
4 Actor
melakukan
pilihan tambah
data
5 Sistem
menampilkan
form tambah
data
Halaman form
data koleksi
6 Actor
melakukan
penginputan
form data
koleksi
7 Actor
melakukan
pilihan simpan
Halaman detail
data koleksi
8 Sistem
menampilkan
detail data
koleksi yang di
inputkan oleh
actor
9 Sistem
mengupdate
database koleksi
Alternate flows :
Tabel 4.20 : Edit Data Koleksi
Basic Flow : Edit Data Koleksi
Actor : Administrator, Staff Pengolahan
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Pengolahan
4 Actor
melakukan
pilihan tambah
data
5 Sistem
menampilkan
menu perintah
Halaman input
data koleksi
6 Actor
melakukan
penginputan
data koleksi
7 Actor
melakukan
pilihan cari
Halaman data
koleksi
8 Sistem
menampilkan
data koleksi
yang dicari
9 Actor
melakukan
pilihan data
detail
10 Sistem
menampilkan
data detail dari
koleksi yang
akan di edit
11 Actor
melakukan
pengeditan
data koleksi
12 Actor
melakukan
pilihan simpan
13 Sistem
mengupdate
database
anggota
Alternate flows :
Tabel 4.21 : Hapus Data Koleksi
Basic Flow : Hapus Data Koleksi
Actor : Administrator, Staff Pengolahan
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi
terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Pengolahan
4 Actor
melakukan
pilihan tambah
data
5 Sistem
menampilkan
menu perintah
Halaman input
data koleksi
6 Actor
melakukan
penginputan
data koleksi
7 Actor
mealakukan
pilihan cari
Halaman data
koleksi yang
dicari
8 Sistem
menampilkan
data koleksi
yang dicari
9 Actor
melakukan
pilihan hapus
data
10 Sistem
menampilkan
peringatan
apakah benar
akan
menghapus data
koleksi tersebut
11 Actor
melakukan
pilihan OK
12 Sistem
mengupdate
database
anggota
Alternate flows :
Tabel 4.22 : Peminjaman Koleksi
Basic Flow : Peminjaman Koleksi
Actor : Administrator, Staff Sirkulasi
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Sirkulasi
4 Actor
melakukan
pilihan
peminjaman
Halaman form
peminjaman
5 Sistem
menampilkan
form
peminjaman
6 Actor
melakukan
penginputan
form
peminjaman
7 Actor
melakukan
pilihan tombol
pinjam
8 Sistem
mengupdate
database
peminjaman
Alternate flows :
Tabel 4.23 : Pengembalian Koleksi
Basic Flow : Pengembalian Koleksi
Actor : Administrator, Staff Sirkulasi
Username : Admin
Password : ****
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080/bo 2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan
Sirkulasi
4 Actor
melakukan
pilihan
pengembalian
Halaman form
pengembalian
5 Sistem
menampilkan
form
pengembalian
6 Actor
melakukan
penginputan
form
pengembalian
7 Actor
mealakukan
pilihan tombol
kembalikan
8 Sistem
mengupdate
database
Alternate flows :
Tabel 4.24 : Jelajah Koleksi
Basic Flow : Jelajah Koleksi
Actor : Mahasiswa
Username : 09090005
Password : ********
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080 2 Sistem melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan jelajah
koleksi
4 Actor
melakukan
pilihan tipe
koleksi yang
ingin dilihat
Halaman data
koleksi
5 Sistem
menampilkan data
koleksi sesuai
dengan tipe
koleksi
6 Actor
melakukan
pemilihan
terhadap judul
yang
diinginkan
7 Menampilkan
deskripsi lengkap
dari koleksi yang
dipilih
Alternate flows :
Tabel 4.25 : Usul Koleksi
Basic Flow : Usul Koleksi
Actor : Mahasiswa
Username : 09090005
Password : ********
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080 2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan usulan
koleksi
Halaman form
untuk usul
koleksi
4 Sistem
menampilkan
form usul koleksi
5 Actor
melakukan
penginputan
form data
koleksi yang
diusulkan
6 Actor
melakukan
pilihan OK
7 Sistem
menyimpan data
yang diusulkan
kedalam database
Alternate flows :
Tabel 4.26 : Lihat Koleksi Terbaru
Basic Flow : Lhat Koleksi Terbaru
Actor : Mahasiswa
Username : 09090005
Password : ********
PreCondition Page Action PostCondition
Memanggil sistem Halaman Login 1 Actor input
username dan
password
http://localhost:8080 2 Sistem
melakukan
validasi terhadap
username dan
password
Halaman Home 3 Actor
melakukan
pilihan Koleksi
4 Sistem
menampilkan
data koleksi
terbaru
5 Actor
melakukan
pilihan pada
data
koleksiyang
dicari
6 Sistem
menampilkan
data lengkap dari
koleksi terbaru
Alternate flows :
4.4 Analisa Source Code
Sebelum menganalisa modul lebih lanjut, diperlukan upaya untuk
menentukan modul-modul mana saja yang benar-benar digunakan oleh aplikasi
TULIS. Cara yang dapat dilakukan pada tahapan analisa source code ini bisa
dengan menganalisa struktur menu untuk mencari hubungan antar tiap-tiap sub
menu dan modul yang diaksesnya. Menu yang terdapat pada aplikasi dari tiap-tiap
sub menu ini bisa diketahui pemakaian akses modul melalui analisa source code
dan run time execution.
4.4.1 Class Diagram Recovery
Dalam tahapan ini, untuk memudahkan proses pendefinisian form / modul
yang terdapat didalam aplikasi dan method-method yang terdapat didalam tiap-
tiap form, digunakan alat bantu berupa perangkat lunak Eclipse Galileo. Perangkat
lunak ini merupakan environment yang digunakan dalam pembuatan aplkasi pada
penelitian ini, perangkat lunak ini juga memberikan effort yang penting dalam
membantu proses analisa karena kemampuannya untuk menggambarkan
hubungan relasi antara tiap-tiap modul dalam bentuk Class diagram secara
otomatis. Akan tetapi, relasi ini bisa terbentuk jika suatu atribut yang menjadi
referensi antara form atau modul dideklarasikan secara global.
Gambar 4.2 : Struktur Class Aplikasi TULIS
Gambar 4.2 : Struktur Class Aplikasi TULIS (Lanjutan)
Gambar 4.2 : Struktur Class Aplikasi TULIS (Lanjutan)
Gambar 4.2 : Struktur Class Aplikasi TULIS (Lanjutan)
Gambar 4.2 : Struktur Class Aplikasi TULIS (Lanjutan)
Gambar 4.2 : Struktur Class Aplikasi TULIS (Lanjutan)
Gambar 4.2 : Struktur Class Aplikasi TULIS (Lanjutan)
4.4.2 Activity Diagram Recovery
Hasil dari tahapan ini adalah activity diagram yang dianalisa lewat source
code. Berikut adalah salah satu contoh untuk mengekstrak activity diagram.
Gambar 4.3 : Activity Diagram Input Data Anggota
4.4.3 Use case Diagram Recovery
Activity diagram yang telah didefinisikan sebelumnya, sangat baik sebagai
review untuk melihat keseluruhan proses atau aktivtas yang terjadi didalam
sistem. Akan tetapi, berlandaskan dari activity diagram saja masih belum cukup,
karena menjelaskan ketentuan atau kondisi lain sebelum dan sesudah suatu proses
yang bersangkutan dieksekusi. Untuk itu kita perlu mendefinisikan suatu use case
sebagai view yang sangat informative. Hanya saja pada tahapan in yang akan
dianalisis adalah kondisi-kondisi apa saja yang memungkinkan pada saat sebelum
dan sesudah adanya relasi yang digunakan method dan berdasarkan parameter apa
relasi tersebut bisa berjalan.
Untuk menjabarkan use case dalam sistem, sangat baik bila dimulai
dengan memperhatikan actor dan action atau aksi yang mereka lakukan dalam
sistem. Setiap use case menggambarkan suatu urutan interaksi anatara actor
dengan sistem. Sebuah use case harus memberikan sejumlah nila pada suatu
actor. Kmudian kebutuhan fungsional sistem dijelaskan dalam use case yang
merupakan suatu spesifikasi eksternal dari sebuah sistem.
4.4.4 Component Diagram Recovery
Tahapan ini bertujuan menemukan komponen-komponen yang dijadikan
referensi oleh aplikasi baik pada saat pengembangan maupun pada saat
implementasi.
Pendekatan yang bisa dilakukan untuk mengenali komponen-komponen
yang dipakai. File-file yang tercipta pada saat kompilasi , termasuk diantaranya
file-file komponen yang dibutuhkan oleh aplikasi diluar framework.
4.5 Analisa Domain Expert
Pada tahapan ini, semua diagram yang sudah ditentukan lewat analisa
source code yang cenderung bersifat low-level representative akan dianalisa ulang
bersama domain expert untuk menghasilkan diagram yang lebih akurat dan
memiliki informasi yang bersifat high-level representative.
4.5.1 Analisa terhadap Rekonstruksi artefak Analysis & Design
Dengan dilakukan pendekatan bahwa sebuah UCR merupakan realisasi
dari sebuah Use case (UC), yang selanjutnya dikenal sebagai memiliki pemetaan
1 : 1. Sebuah realization merupakan hubungan semantic antara pengelompokkan
yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan di
antara interface dan kelas atau elements, serta antara use case dan collaboration.
Maka dapat disusun spesifikasi UC dengan lengkap.
4.5.2 Rekonstruksi Artefak Requirement Engineering
1. Memodelkan objek-objek dan hubungan antara objek-objek
Untuk memodelkan objek-objek yang berhubungan antara objek akan
digambarkan dalam diagram-diagram UML, antara lain adalah :
a. Class Diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan
menghasilkan sebuah objek dan merupakan inti dari pengembangan dan
desain berorientasi objek. Class menggambarkan keadaan suatu sistem,
sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut.
Class diagram menggambarkan struktur dan deskripsi Class,
package dan objek beserta hubungan satu sama lain seperti containment,
pewarisan, asosiasi, dan lain-lain.
Gambar 4.3 : Struktur Class Aplikasi TULIS
b. Activity Diagram
Activity diagram menggambarkan alur kerja (work flow) sebuah
urutan aktivitas pada suatu proses. Diagram ini sangat mirip dengan
flowchart karena dengan activity diagram dapat memodelkan proses
logika, proses bisnis, dan alur kerja. Perbedaan utamanya adalah flowchart
dibuat untuk menggambarkan alur kerja dari sebuah sistem, sedangkan
activity diagram dibuat untuk menggambarkan aktivitas aktor.
Activity diagram merupakan state diagram khusus, dimana
sebagian besar atate adalah action dan sebagian besar transisi di trigger
oleh selesainya state sebelumnya (internal processing). Oleh karena itu
activity diagram tidak menggambarkan behaviour internal sebuah sistem
secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur
aktivitas dari level atas secara umum. Di bawah ini adalah activity
diagram untuk masing-masing use case:
Gambat 4.5 : Activity Diagram input nama perpustakaan
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif Hidayatullah
Jakarta melakukan login sebagai Admin. Setelah berhasil login, maka akan tampil
halaman home dari aplikasi TULIS. Admin memlih menu administrasi , dimana
pada maneu administrasi tersebut terdapat beberapa sub menu. Untuk melakukan
Input nama perpustakaan, admin kemudian memilih sub menu sistem yang
kemudian dilanjutkan dengan memilih nama perpustkaan. Setelah sistem
menampilkan halaman atau form input nama perpustakaan, admin mulai
melakukan input nama perpustakaan yang diakhiri dengan melakukan pilihan OK.
Sistem kemudian akan menyimpan data yang telah diinputkan.
Gambar 4.6 : Activity digram Input koneksi perpustakaan lain
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif Hidayatullah
Jakarta melakukan login sebagai Admin. Setelah berhasil login, maka akan tampil
halaman home dari aplikasi TULIS. Admin memlih menu administrasi , dimana
pada maneu administrasi tersebut terdapat beberapa sub menu. Untuk melakukan
Input nama perpustakaan, admin kemudian memilih sub menu sistem yang
kemudian dilanjutkan dengan memilih menu perpustakaan lain. Sistem akan
menampilkan halaman untuk koneksi perpustakaan. Admin lakukan peng inputan
nama perpustkaan dan kemudian klik tombol simpan. Data akan tersimpan ke
dalam database.
Gambar 4.7 : Activity diagram edit node perpustakaan
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif
Hidayatullah Jakarta melakukan login sebagai Admin. Setelah berhasil
login, maka akan tampil halaman home dari aplikasi TULIS. Admin
memlih menu administrasi , dimana pada maneu administrasi tersebut
terdapat beberapa sub menu. Untuk melakukan Input nama perpustakaan,
admin kemudian memilih sub menu sistem yang kemudian dilanjutkan
dengan memilih perpustakaan lain. Sistem akan menampilkan daftar
perpustakaan. Klik edit pada baris nama perpustkaan yang akan di edit.
Setelah di edit kemudian klk tombol simpan. Data baru akan tersimpan
kedalam database.
Gambar 4.8 : Activity diagram hapus node perpustakaan
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif
Hidayatullah Jakarta melakukan login sebagai Admin. Setelah berhasil
login, maka akan tampil halaman home dari aplikasi TULIS. Admin
memlih menu administrasi , dimana pada maneu administrasi tersebut
terdapat beberapa sub menu. Untuk melakukan Input nama perpustakaan,
admin kemudian memilih sub menu sistem yang kemudian dilanjutkan
dengan memilih perpustakaan lain. Sistem akan menampilkan daftar
perpustakaan. Klik hapus pada baris nama perpustkaan yang akan di
hapus. Sistem akan menampilkan peringan apakah yakin akan menghapus.
Gambar 4.9 : Activity digram input user grup
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif
Hidayatullah Jakarta melakukan login sebagai Admin. Setelah berhasil
login, maka akan tampil halaman home dari aplikasi TULIS. Admin
memlih menu administrasi , dimana pada maneu administrasi tersebut
terdapat beberapa sub menu. Untuk melakukan Input nama perpustakaan,
admin kemudian memilih sub menu sistem yang kemudian dilanjutkan
dengan memilih grup pustakawan. Sistem akan menampilkan halaman dari
user grup setup. Admin melakukan input data user grup. Kemudian klik
tombol hak akses dan terakhr klik tombol simpan. Dtaa akan tersimpan
kedalam database.
Gambar 4.10 : Activity diagram edit user grup
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif
Hidayatullah Jakarta melakukan login sebagai Admin. Setelah berhasil
login, maka akan tampil halaman home dari aplikasi TULIS. Admin
memlih menu administrasi , dimana pada maneu administrasi tersebut
terdapat beberapa sub menu. Untuk melakukan Input nama perpustakaan,
admin kemudian memilih sub menu sistem yang kemudian dilanjutkan
dengan memilih grup pustakawan. Sistem akan menampilkan halaman dari
user grup setup. Klik edit pada user grup yang akan di edit. Kemudian
admin melakukan edit data user grup. Setelah itu klik tombol simpan, Data
yang baru akan tersimpan ke database.
Gambar 4.11 : Activity diagram Input pustakawan
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif
Hidayatullah Jakarta melakukan login sebagai Admin. Setelah berhasil
login, maka akan tampil halaman home dari aplikasi TULIS. Admin
memlih menu administrasi , dimana pada maneu administrasi tersebut
terdapat beberapa sub menu. Untuk melakukan Input nama perpustakaan,
admin kemudian memilih sub menu sistem yang kemudian dilanjutkan
dengan memilih pustakawan. Sistem akan menampilkan halaman dari
pustakawan. Lakukan input pada form yang sudah tersedia. Klik tombol
simpan. Data pustakawan akan tersimpan.
Gambar 4.12 : Activity diagram untuk Edit pustakawan
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif
Hidayatullah Jakarta melakukan login sebagai Admin. Setelah berhasil
login, maka akan tampil halaman home dari aplikasi TULIS. Admin
memlih menu administrasi , dimana pada maneu administrasi tersebut
terdapat beberapa sub menu. Untuk melakukan Input nama perpustakaan,
admin kemudian memilih sub menu sistem yang kemudian dilanjutkan
dengan memilih pustakawan. Sistem akan menampilkan halaman
pustakawan. Klik edt pada pustakawan yang akan di edit. Edit data
pustakawan. Klik tombol simpan. Data pustakawan yang baru akan
tersimpan.
Gambar 4.13 : Activity diagram untuk Hapus Pustakawan
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif
Hidayatullah Jakarta melakukan login sebagai Admin. Setelah berhasil
login, maka akan tampil halaman home dari aplikasi TULIS. Admin
memlih menu administrasi , dimana pada manu administrasi tersebut
terdapat beberapa sub menu. Untuk melakukan Input nama perpustakaan,
admin kemudian memilih sub menu sistem yang kemudian dilanjutkan
dengan memilih pustakawan. Sistem akan menampilkan halaman
pustakawan. Klik hapus pada pustakawan yang akan di hapus. Data
pustakawan akan terhapus dar daftar nama putakawan.
Gambar 4.14 : Activity diagram untuk Input Konfigurasi koleksi
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif Hidayatullah
Jakarta melakukan login sebagai Admin. Setelah berhasil login, maka akan tampil
halaman home dari aplikasi TULIS. Admin memlih menu administrasi , kemudian
pilih menu koleksi dan konfigurasi koleksi. Sistem akan menampilkan form untuk
input konfigurasi. Admin melakukan input tipe koleksi dan konfigurasi koleksi.
Setelah proses peng inputan, klik tombol simpan. Data akan tersimpan pada
database.
Gambar 4.15 : Activity diagram untuk Hapus tipe Koleksi
Admin dari aplikasi TULIS pada perpustakaan utama UIN Syarif Hidayatullah
Jakarta melakukan login sebagai Admin. Setelah berhasil login, maka akan tampil
halaman home dari aplikasi TULIS. Admin memlih menu administrasi , kemudian
pilih menu koleksi. Pilih daftar tipe koleksi. Sistem akan menampilkan tipe
koleksi. Klik tombol hapus pada tipe koleksi yang ingin dihapus. Setelah itu klik
OK. Data akan terhapus.
Gambar 4.16 : Activity diagram input data anggota
Actor yang memliki akses terhadap prose input data angota adalah admin, staff
input data, dan staff pengolahan. Stelah proses login, pilih menu keanggotaan.
Pilih daftar anggota dan tambah data. Sistem akan menampilkan form untuk input
data anggota. Setelah form terisi, klik tombol simpan dan data anggota baru akan
tersimpan kedalam database.
Gambar 4.17 : Activity diagram untuk Edit data anggota
Actor yang memliki akses terhadap data angota adalah admin, staff input data,
dan staff pengolahan. Stelah proses login, pilih menu keanggotaan. Pilih daftar
anggota. Dan pilih input data anggota. Klik tombol car. Sistem akan menampilkan
data anggota yang dicari. Klik menu perintah data detail. Stelah form data detail
muncul, baru data bisa di edit. Setelah dilakukan peng editan, klik tombol simpan.
Data anggota akan tersimpan.
Gambar 4.18 : Activity diagram untuk Hapus data anggota
Actor yang memliki akses terhadap data angota adalah admin, staff input data,
dan staff pengolahan. Stelah proses login, pilih menu keanggotaan. Pilih daftar
anggota. Dan pilih input data anggota. Klik tombol car. Sistem akan menampilkan
data anggota yang dicari. Setelah tampil data yang dicari, klik tombol hapus data.
Klik OK. Dan data akan terhapus.
Gambar 4.19 : Activity diagram untuk Input Data koleksi
Actor yang memliki akses terhadap data koleksi adalah admin, staff input data,
dan staff pengolahan. Stelah proses login, pilih menu pengolahan. Pilih menu
tambah data. Sistem akan menampilkan form tambah koleksi. Input data koleksi
dan kemudian klik tombol simpan. Data koleksi yang bau akan tersimpan di
dalam database.
Gambar 4.20: Activity diagram untuk Edit data koleksi
Actor yang memliki akses terhadap data koleksi adalah admin, staff input data,
dan staff pengolahan. Stelah proses login, pilih menu keanggotaan. Pilih daftar
anggota. Dan pilih input data koleksi. Klik tombol cari. Sistem akan menampilkan
data koleksi yang dicari. Klik menu perintah data detail. Stelah form data detail
muncul, baru data bisa di edit. Setelah dilakukan peng editan, klik tombol simpan.
Data koleksi akan tersimpan.
Gambar 4.21 : Activity diagram untuk Hapus data koleksi
Actor yang memliki akses terhadap data koleksi adalah admin, staff input data,
dan staff pengolahan. Stelah proses login, pilih menu pengolahan. Pilih menu
tambah data. Klik tombol cari. Sistem akan menampilkan data koleksi yang dicari.
Setelah tampil data yang dicari, klik tombol hapus data. Klik OK. Dan data akan
terhapus.
Gambar 4.22 : Activity digram untuk Input peminjaman buku
Actor yang memliki akses terhadap aktivitas sirkulasi koleksi adalah admin dan
staff sirkulasi. Setelah melakukan login, pilih menu sirkulasi. Kemudian pilih
menu peminjaman. Sistem akan menampilkan form peminjaman koleksi. Input
form peminjaman lalu klik tombol pinjam. Data peminjaman akan tersimpan ke
dalam database.
Gambar 4.23 : Activity diagram untuk Pengembalian buku
Actor yang memliki akses terhadap aktivitas sirkulasi koleksi adalah admin dan
staff sirkulasi. Setelah melakukan login, pilih menu sirkulasi. Kemudian pilih
menu pengembalian. Sistem akan menampilkan form pengembalian koleksi. Input
form pengembalian lalu klik tombol kembalikan. Data peminjaman akan terhapus
dari dalam database.
Gambar 4.24 : Activity diagram untuk jelajah koleksi
User yang merupakan mahasiswa, melakukan login sebagai mahasiswa.
Setelah berhasil login, mahasiswa memilih menu jelajah koleksi.
Mahasiswa memilih tipe koleksi yang ingn dilihat. Sistem akan
menampilkan data koleksi sesuai dengan yang diinginkan user. Klik judul
yang diinginkan. Sistem akan menampilkan deskripsi lengkap dari koleksi
tersebut.
Gambar 4.25: Activity diagram untuk Usul Koleksi
User yang merupakan mahasiswa, melakukan login sebagai mahasiswa.
Setelah berhasil login, mahasiswa memilih menu usulan koleksi, SIstem
akan menampilkan form usul koleksi. Mahasiswa harus meng input judul
pengarang dan penerbit dari koleksi yang diusulkan. Kemudian klik OK.
Data usulan akan tersimpan.
Gambar 4.26 : Activity diagram untuk Lihat Koleksi terbaru
User yang merupakan mahasiswa, melakukan login sebagai mahasiswa. Setelah
berhasil login, mahasiswa memilih menu koleksi. Sistem akan menampilkan data
koleksi terbaru. Mahasiswa melakukan klik dari koleksi yang diinginkan. Sistem
akan menampilkan deskripsi lengkap bibliografi dari koleksi tersebut.
c. Use case Diagram
Use case Diagram digunakan untuk menjelaskan apa yang akan dilakukan
oleh sistem serta aktor-aktor yang akan berhubungan dengan proses-proses yang
ada pada sistem. Usecase sangat diperlukan untuk kebutuhan dokumentasi dan
arah pengembangan selanjutnya. Format Use case sebaiknya dibuat sesederhan
mungkin, karena Use case bisa dijadikan sebagai sarana komunikasi antara pihak
pengembang dan pihak pemakai sistem dibandingkan dengan diagram UML yang
lainnya yang membutuhkan pemahaman notasi UML untuk mengerti maksud
diagram tersebut.
Gambar 4.27 : Use case diagram Admin
Gambar 4.28 : Use case diagram Admin, Input Data, dan Pengolahan
Gambar 4.29 : Use case diagram untuk Admin dan Sirkulasi
Gambar 4.30 : Usecase diagram mahasiswa
d. Sequence diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan
sekitar objek (termasuk pengguna, display, dan sebagainya) berupa message yang
digambarkan terhadap waktu.
Gambar 4.31: Sequence diagram untuk Input nama Perpustakaan
Gambar 4.32 : Sequence diagram untuk Koneksi Perpustakaan
Gambar 4.33 : Sequence diagram untuk User Group
Gambar 4.34 : Sequence diagram untuk Pustakawan
Gambar 4.35 : Sequence diagram untuk konfigurasi koleksi
Gambar 4.36 : Sequence diagram hapus tipe koleksi
Gambar 4.37 : Sequence diagram untuk data anggota
Gambar 4.38 : Sequence diagram untuk data koleksi
Gambar 4.39 : Sequence diagram peminjaman
Gambar 4.40 : Sequence diagram Pengembalian
Gambar 4.41 : Sequence diagram Jelajah Koleksi
Gambar 4.42 : Sequence diagram Usul Koleksi Buku
Gambar 4.43 : Sequence diagram Lihat Koleksi
e. Component Diagram
Component diagram menggambarkan struktur dan hubungan antar
komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya.
Komponen piranti lunak adalah modul berisi code, baik berisi source code
maupun binary code, baik library maupun executable, baik yang muncul pada
compile time, link time, maupun run time. Umumnya komponen terbentuk dari
beberapa Class dan, atau package, tapi dapat juga dari komponen-komponen
yang lebih kecil.
Gambar 4.44 : Component Diagram TULIS
Pada aplikasi TULIS ini Active Server Pages (ASP) digunakan untuk
menampilkan informasi yang tersimpan dalam suatu database ke halaman web.
Dengan demikian sebuah halaman web dapat tampil secara interaktif.
f. Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana
komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak
(pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada
lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisik. Sebuah node
adalah server, workstation, atau piranti keras lain yang digunakan untuk men-
deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya
TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.
Gambar 4.45 : Deployment Dagram TULIS
ActiveX Control pada gambar diatas adalah sebuah kerangka kerja untuk
mendefinisikan perangkat lunak dapat digunakan kembali komponen yang
melakukan fungsi tertentu atau satu set fungsi.
Beberapa contoh ActiveX yang digunakan dalam sistem ini adalah :
1. DateTimePicker Control
Digunakan untuk menampilkan tanggal pada aplikasi dengan tampilan
kalender yang mudah dinavihgasikan.
2. ProgressBar Control
Digunakan utnuk menghindari tampilan yang monoton.
3. DataGrid Control
Untuk work station nya, Perpustakaan Utama UIN Syarif Hidayatullah Jakarta
memiliki 1 server yang berada pada lantai 1 pada ruang Otomasi, ICT dan
multimedia. Sedangkan untuk clientnya, ada 6 buah komputer yang diletakkan di
lantai 2 dan lantai 3, sehingga masing-masing lantai memiliki 3 buah komputer
catalog yang dapat digunakan oleh para pengunjung perpustakaan untuk melihat
catalog perpustakaan utama UIN Syarif Hidayatullah Jakarta.
Berikut adalah Gambaran Work Station Perpustakaan Utama UIN Syarif
Hidayatullah Jakarta
Server
Berada pada lantai 1
Perpustakaan Utama UIN Syarif Hidayatullah Jakarta
Komputer Katalog 1 Komputer Katalog 2 Komputer Katalog 3
Komputer Katalog 4 Komputer Katalog 5r Komputer Katalog 6
Pengunjung Perpustakaan
Pengunjung PerpustakaanPengunjung PerpustakaanPengunjung Perpustakaan
Pengunjung PerpustakaanPengunjung Perpustakaan
Komputer Katalog
Pada Lantai 2
Perpustakaan Utama UIN
Komputer Katalog
Pada Lantai 3
Perpustakaan Utama UIN
Gambar 4.46 : Work station perpustakaan utama UIN Syarif Hidayatullah Jakarta
4.5.3 Software Requirement Specification
Hasil akhir dari tahapan reverse engineering aplikasi TULIS ini berupa
Software Requirement Specification (SRS) yang akan dibutuhkan oleh
pengembang aplikasi sebagai software customer ( Untuk mendapatkan kebutuhan
perangkat lunak ) dan software supplier (mengerti keinginan customer). Software
Requirement Specification merupakan sarana utama persetujuan antara developer
dan customer apa yang mereka dirikan. Ini merupakan dokumen yang ditinjau
oleh customer atau wakilnya dan selalu menjadi dasar untuk menyelesaikan
kewajibannya (developer). Software Requirement Specification merupakan catatan
hasil dari permasalahn analisa. Software Requirement Specification
mendefinisikan sifat dari sistem yang harus ada dan merupakan pembatas sistem
serta implementasinya.
Software Requirement Specification merupakan basis dari estimasi biaya
dan penjadwalan kapan sistem tersebut selesai. Software Requirement
Specification merupakan basis untuk perencanaan test development. Software
Requirement Specification menyediakan standart definisi untuk perawatan dan
merupakan catatan yang digunakan untuk perubahan teknik. Pada laporan
penelitian ini, penulis melampirkan Software Requirement Specification dari
aplikasi TULIS yang akan dikembangkan.
BAB V
KESIMPULAN DAN SARAN
Dilakukannya Reverse Engineering dari aplikasi TULIS pada
perpustakaan utama UIN Syarif Hidayatullah ini diharapkan dapat mengetahui
dan menemukan solusi dari permasalahan-permasalahan yang berhubungan
dengan aplikasi TULIS dan aktifitas pada Perpustakaan Utama UIN Syarif
Hidayatullah Jakarta.
Setelah melakukan serangkaian penelitian, maka pada bab ini penulis akan
menguraikan kesimpulan dan saran yang dapat diambil dari rangkaian penelitian
tersebut. Saran yang diberikan diharapkan dapat bermanfaat bagi pihak-pihak
yang akan melanjutkan pengembangan penelitian ini.
5.1. Kesimpulan
Dari penelitian dan penulis yang telah penulis uraikan, maka dapat
ditarik kesimpulan sebagai berikut:
1. Kelemahan dari Sistem Perpustakaan TULIS pada perpustakaan Utama
UIN Syarif Hidayatullah Jakarta yang telah berjalanadalah tidak adanya
dokumentasi pendukung bagi pengembang.
2. Metode Reverse Engineering untuk mendapatkan dokumentasi sistem
berupa SRS (Software Requirement Specification) yang dinyatakan dalam
diagram-diagram baku UML (Unified Modelling Language).
5.2. Saran
Sistem ini tentu saja masih belum sempurna. Masih banyak hal yang
dapat dilakukan untuk mengembangkan sistem ini agar menjadi lebih baik
lagi, antara lain:
1. Pengembangan juga dapat dilakukan dengan melakukan integrasi antara
aplikasi perpustakaan dari setiap fakultas.
2. Pembuatan SRS (Software Requirement Specification) yang lebih baik dari
aplikasi TULIS tersebut.
DAFTAR PUSTAKA
Ariawan. 2007. Reverse Engineering dan pendokumentasian sistem pengenalan
ucapan. ITB : Skripsi tidak diterbitkan.
Budiardjo, romindon. 2009. Metoda Rekayasa Balik Perangkat Lunak Melalui
Analisa Program Sumber dan Opini Domain Expert.
Dharwiyanti, Sri. 2003. “Pengantar Unified Modelling Language (UML)”, Ilmu
Komputer.
E. Chikofsky, J. Cross, 1990. Reverse Engineering and design recovery : A
taxonomy, IEEE Software.
Hariyanto, Bambang. 2004. Rekayasa Sistem Berorientasi Objek. Bandung :
Informatika
Jeni. 2008. “Java Framework”.
Kadir, Abdul. 2004. Dasar Pemrograman Web Dinamis dengan JSP (Java Server
Pages). Yogyakarta: Andi.
Kadir, Abdul. 2005. Dasar Pemrograman Java 2. Yogyakarta: Andi.
Kusmayadi. Eka dan Andriaty. Etty. 2006. Kajian On-line Public Access
Catalogue (OPAC) Dalam Pelayanan Perpustakaan dan Penyebaran
Teknologi Pertanian. Jurnal Perpustakaan Pertanian Vol. 15, Nomor 2.
Nugroho, Adi. 2009. Rekayasa perangkat lunak menggunakan UML dan JAVA.
Yogyakarta : Andi Offset
Pressman, Roger. 2010. Software Engineering : A practitioner’s Approach,
Seventh Edition International Edition. Singapore : McGraw-Hill
Rickyanto, Isak. 2002. Belajar Sendiri Java Server Pages. Jakarta: PT. Elex
Media Komputindo.
Romidon, Fadli. 2009. Pengembangan metoda Reverse Engineering untuk
rekonstruksi dokumen arsitektur perangkat lunak. Universtas Indonesia :
tesis tidak dterbitkan.
Silitonga. 2010. Sistem Multiprogram Dengan Memori Maya Sistem Paging,
Segmentasi dan Kombinasi Paging dan Segmentasi.
Soeatmina. 2002. Perpustakaan.
Sofy, Nelly. 2009. Re-engineering.
Sonhaji, dkk. 2010. Rekayasa Ulang (Re-engineering).
Whitten L, Jeffrey. 2007. System Analysis and Design Methods E. 7th.
Yogyakarta: McGraw-Hill.
Zuhdi, dkk. 2009. Perpustakaan Utama UIN Syarif Hidayatullah Jakarta.
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
1. Introduction
Dokumentasi ini akan berisi Software Requirement Specification
(SRS) atau Spesifikasi kebutuhan perangkat lunak (SKPL) untuk Aplikasi
Perpustakaan TULIS pada perpustakaan utama UIN Syarif Hidayatullah
Jakarta.
1.1 Purpose
Tujuan dari pembuatan dokumen ini adalah untuk member penjelasan
secara detail mengenai Aplikasi TULIS pada perpustakaan utama UIN
Syarif Hidayatullah Jakarta. Dokumen ini berisi tujuan dari fiur-fitur
aplikasi, antar muka aplikasi, apa yang dilakukan aplikasi, batasan-
batasan operasional aplikas dan bagaimana aplikasi akan merespon
rangsangan dari luar.
1.2 Scope
Aplikasi perangkat lunak (software) adalah Aplikasi perpustakaan
TULIS UIN Syarif Hidayatullah Jakarta. Aplikasi ini di desain untuk
memaksimalkan efisiensi kerja dan produktivitas dari pengembang
dalam pengembangan aplikasi perpustakaan TULIS ini.
1.3 Definitions, Acronyms, and Abbreviations
a. SKPL : Spesifikasi kebutuhan perangkat luna, yaitu sebuah
dokumen yang menjelaskan secara lengkap semua fungsi dari
aplikasi yang dibuat beserta batasan-batasannya.
b. Stakeholder : Semua orang yang berhubungan dengan proyek
c. User : Pihak Pengembang
d. Update : Mengganti sebagaian atau seluruhnya sebuah data
yang diinginkan.
e. Input : Pemasukan data-data yang nantinya akan diolah
menjadi informasi yang dibutuhkan.
f. Informasi : Kumpulan dari beberapa data fakta mentah yang
diproses untuk memenuhi kebutuhan user.
g. Database : Kumpulan data yang berhubungan dan
dikelompokkan dalam struktur tertentu dan dapat diakses dengan
cepat.
h. Hak akses : Hak yang dimliki oleh user untuk menggunakan
system.
i. Pemeliharaan : Proses pengecekan dan perbaikan berkasla untuk
menjaga sistem dengan baik.
1.4 References
Sistematika spesifikasi kebutuhan perangkat lunak yang
diinginkan ini adalah sistematika yang digunakan oleh Fakultas Sains
dan Teknologi UIN Syarif Hidayatullah Jakarta. Selain itu, acuan
yang lain yang digunakan adalah IEEE : IEEE Std 830-1998
Recommended Practice for Software Requirement Specfication.
1.5 Overview
Dokumen ini juga menjelaskan use case dari aplikasi perpustakaan
TULIS secara global, asumsi dalam pengembangan, kebutuhan
spesifik dan kebutuhan tambahan.
2. Overall Description
Sistem aplikasi perpustakaan TULIS pada perpustakaanutma UIN
Syarif Hidayatullah Jakarta adlah perangkat lunak yang digunakan
untuk mempermudah user dalam melakukan proses yang berkaitan
dengan sistem keperpustakaan, sehingga aplikasi tesebut dapat
berfungsi secara optimal sesua dengan kebutuhan.
Perangkat lunak ini dapat dijalankan oleh server pada
lingkungan sstem operasi Linux dan Windows. Dibangun dengan
menggunakan bahasa pemrograman Java dan MySQL.
Gambar : Gambaran umum sbatrak proses perangkat lunak aplikasi
TULIS
2.1 Spesifikasi Kebutuhan Fungsional
Adapun fungsi-fungsi yang dimiliki oleh perangkat lunak ini adalah :
1. Memproses dan menyimpan data atau informasi yang berkaitan
dengan proses keperpustakaan.
2. Memberikan kecepatan dan kemudahan kepada user terutama
mahasiswa dalam hal mencari buku dan informasi.
3. Terdiri dari berabgai sub sistem yang saling mendukung.
4. Manual atau sistem berbasi komputer.
5. Mengupdate data-data koleksi setiap ada perubahan.
2.2 Use Case Model Survey
Fungs dasar perangkat lunak apliaksi perpustakaan TULIS yang telah
dijelaskan pada sub bagian spesifikasi kebutuhan fungsional dapat
digambarkan dalam diagram use case untuk requirement sebagai
verikut :
Gambar 4.26 : Use Case diagram Admin
Gambar 4.27 : Use Case diagram Admin, Input Data, dan Pengolahan
Gambar 4.28 : Use Case diagram untuk Admin dan Sirkulasi
Gambar 4.29 : Usecase diagram mahasiswa
2.3 Karakteristik Pengguna
Pengguna perangkat lunak aplikasi TULIS adalah mahasiswa,
admin, bagIan sirkulasi, bagian input data, bagian pengolahan data.
Dimana pada masing-masing pengguna yang berinteraksi dengan
sistem dihubungkan dengan hak akses dan level autentifikasi
dengan kebutuhan dan aturan yang terdapat pada aplikasi TULIS.
Aplikasi perpustakaan TULIS ini bersifat client – server.
2.4 Batasan-batasan
Batasan yang digunakan pada pegembangan perangkat lunak ini adalah
:
1. Data koleksi yang dimasukkan adalah data-data yang telah dicek
kebenarannya.
2. Perbakan atau perubahan data hanya dapat dilakukan oleh admin
ukan client.
3. Pengguna mempunyai batsan hak akses yang sudah ditentukan oleh
super user.
3. Deskripsi Rinci Kebutuhan
3.1 Kebutuhan antar muka eksternal
Aplikasi TULIS ini dlengkapi dengan menu untuk pengaksesan
berbagai fungsi yang disediakan. Nteraksi antara pengguna dan
perangkat lunak dilakukan dengan menggunakan keyboard dan
mouse. Ada beberapa fungsi yang hanya bisa dilakukan dengan
mouse dan ada yang bisa dilakukan baik dengan keyboard dan
mouse.
3.2 Antar muka perangkat keras
Kebutuhan minimum perangkat keras yang dapat digunakan adalah :
1. PC IBM Compatible dengan memory 128 MB
2. Monitor VGA yang dpat menampilkan resolusi minimal 800 x 600
pixel
3. Keyboard dan mouse untuk interaksi antara pengguna dengan
sistem
Semua perangkat keras yang digunakan merupakan perangkat standar
dalam sistem computer dan menggunakan port standar yang ada.
3.3 Antar muka perangkat lunak
Perangkat lunak yang diperlukan adalah :
1. Sistem operasi Windows
2. Sistem operasi Linux
3. Browser Internet
3.4 Antar muka komunikasi
Yang dibutuhkan sebagai sarana antar muka komunikasi hanyalah
sebuah komputer server dan satu atau beberapa komputer client
yang terhubung secara client server.
1. Struktur navigasi Home Katalog Perpustakaan Utama UIN Jakarta
Keterangan :
No Menu User Fungsi
1. Jelajah Koleksi Mahasiswa dan
pengunjung
lainnya (dosen
dan pengunjung
dari luar
kampus).
Untuk mencari koleksi apa saja
yang ada pada Perpustakaan
Utama UIN Syarif Hidayatullah.
Koleksinya berupa :
a. Buku
b. Skripsi
c. Tesis
d. Disertasi
e. Laporan Peneltian
f. Majalah
2. Favorite Mahasiswa dan
pengunjung
lainnya (dosen
dan pengunjung
dari luar
kampus).
Untuk mengetahui koleksi apa
saja yang paling dicari oleh para
pengunjung Perpustakaan
Utama UIN Syarif Hidayatullah.
HOME
JELAJAH
KOLEKSI
FAVORITE KOLEKSI
TERBARU
LOGIN
3. Koleksi terbaru Mahasiswa dan
pengunjung
lainnya (dosen
dan pengunjung
dari luar
kampus).
Untuk mengetahui koleksi
terbaru yang ada pada
Perpustakaan Utama UIN Syarif
Hidayatullah.
4. Login Anggota
Perpustakaan
Proses login disini hanya dapat
dilakukan oleh anggota
perpustakaan utama UIN Syarif
Hidayatullah yang sudah
memiliki kartu keanggotaan.
Hal ini dikarenakan username
dan password hanya diberikan
kepada anggota Perpustakaan
Utama UIN Syarif Hidayatullah.
2. Struktur navigasi Back Office Aplikasi TULIS
HOME
Pengadaan Pengolahan Keangotaan Sirkulasi Administrasi Laporan Laporan 2 User
Purchase order
Daftar
pemesanan
Finance
Suplier
Desiderata
Receiving
material
Tambah data
Set field hasil
cari
Koleksi
dipinjam
Daftar
anggota
Set field hasil
cari
Chart
sirkulasi
Cek koleksi
Pengembalia
n
Peminjaman
Koleksi
hilang
Koleksi
dikeluarkanKeluar
Profil
Ganti
password
Koleksi
Sistem
Sirkulasi
Anggota
10 buku
paling sering
Statistik
peminjaman
Statistik
pengunjung
Statistik
input olah
Statistik
input koleksi
Statstik
denda
tahunan
Statistk
denda harian
Statistik
denda
bulanan
Jumlah
peminjaman
Jumlah
koleksi
10 peminjam
terbanyak
Keterangan :
No Menu User Fungsi
1. Pengadaan Administrator,
Staff Input data
User dapat melakukan kegiatan
yang berhubungan dengan
pengadaan koleksi, yaitu
berupa:
a. Purchase order
Untuk melakukan order
koleksi.
b. Receiving material
Untuk melihat data
koleksi yang telah di
order.
c. Desiderata
Untuk melihat status dari
koleksi yang telah
disorder.
d. Suplier
Untuk melihat data dari
supplier koleksi.
e. Finance
Untuk melihat data yang
berkaitan dengan
kegiatan finance order
koleksi.
f. Daftar pemesanan
Untuk melihat daftar
pesanan koleksi yang di
inputkan dari angoota
perpustakaan.
2. Pengolahan Administrator,
Staff Input data,
Staff pemeliharaan
User dapat melakukan kegiatan
yang berhubungan dengan
pengolahan koleksi, yaitu
berupa:
a. Tambah data koleksi
Didalam menu tambah
data ini, user juga dapat
menghapus dan edit data
koleksi.
b. Set field hasl cari
3. Keanggotaan Administrator,
Staff Input data
User dapat melakukan kegiatan
yang berhubungan dengan
keanggotaan, yaitu berupa:
a. Daftar anggota
Didalam menu daftar
anggota ini, user juga
dapat menghapus dan
edit data anggota.
b. Set field hasl cari
4. Sirkulasi Administrator,
Staff sirkulasi
User dapat melakukan kegiatan
yang berhubungan dengan
keanggotaan, yaitu berupa:
a. Peminjaman
Untuk melakukan
kegiatan yang terkait
dengan peminjaman
koleksi perpustakaan.
b. Pengembalian
Untuk melakukan
kegiatan yang terkait
dengan pengembalian
koleksi perpustakaan.
c. Cek Koleksi
Untuk melihat data dari
koleksi perpustakaan.
5. Adminisrasi Administrator User dapat melakukan kegiatan
yang berhubungan dengan
administrasi, yaitu berupa:
a. Sistem
Menjelaskan mengenai
sistem perpustakaan
tersebut, isalnya untuk
mengetahui grup
pustakawan, nama
perpustakaan, melihat
saran, dll.
b. Koleksi
Untuk meng konfigurasi
koleksi perpustakaan.
c. Anggota
Untuk meng konfigurasi
hal-hal yang berkaitan
dengan keanggotaan.
d. Sirkulasi
Untuk mengatur
kegiatan dari
perpustakaan yang
terkait dengan hari libur.
6. Laporan Administrator,
Staff Input data,
Staff sirkulasi
User dapat melakukan kegiatan
yang berhubungan dengan
laporan, yaitu berupa :
a. Koleksi dipinjam
Untuk mengetahui
koleksi apa saja yang
sedang dipinjam olah
para pengunjung
perpustakaan
b. Koleksi hilang
Untuk mengetahui dan
mendata koleksi apa saja
yang hilang.
c. Koleksi dikeluarkan
Untuk mengetahui
koleksi apa saja yang
sudah dikeluarkan dari
daftar koleksi.
d. Chart sirkulasi
7. Laporan2 Administrator,
Staff Input data,
Staff sirkulasi
User dapat melakukan kegiatan
yang berhubungan dengan
laporan, yaitu kegiatan yang
terkait dengan pembuatan
laporan kegiatan perpustakaan.
Baik aporan yang dbuat dalam
jangka waktu harian, mingguan
dan bulanan.
8. User Administrator,
Staff Input data,
Staff sirkulasi,
Staff pemeliharaan
User dapat melakukan kegiatan
yang berhubungan dengan user,
yaitu berupa:
a. Ganti password
User dapat mealukakan
pergantian password
sesuai dengan keinginan
user.
b. Profil
Disini kita dapat
mengetahui kapan
terakhr kita login atau
mengunjungi sistem.
c. Keluar
AnggotaAction.java
package ui.cs.lontar.bo.action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import ui.cs.lontar.bo.form.AnggotaForm;
import org.apache.struts.action.Action;
import ui.cs.lontar.utility.*;
import ui.cs.lontar.proses.*;
import ui.cs.lontar.data.*;
import net.sf.hibernate.*;
import java.util.*;
public class AnggotaAction extends Action {
@Override
public ActionForward execute(
ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
AnggotaForm anggotaForm = (AnggotaForm) actionForm;
if (servletRequest.getSession().getAttribute("user") == null) {
return new ActionForward("/bo/index.jsp");
}
SessionFactory sf = (SessionFactory)
getServlet().getServletContext().getAttribute("sf");
Keanggotaan agt = new Keanggotaan(sf);
if (anggotaForm == null) {
anggotaForm = new AnggotaForm();
}
if (servletRequest.getParameter("idanggota") != null) {
anggotaForm.setId(Long.parseLong(servletRequest.getParameter("idangg
ota")));
anggotaForm.setAction("edit");
}
if (anggotaForm.getAction() == null) {
anggotaForm.setAction("new");
}
// System.out.println("COBA LIAT");
// System.out.println(anggotaForm.getAction());
if (anggotaForm.getAction().equals("new")) {
} else if (anggotaForm.getAction().equals("save")) {
try {
// harusnya ada anggota.setFoto
Anggota anggota = null;
if (anggotaForm.getId() == 0) { // tambah anggota
Utility.log(servletRequest, (User)
servletRequest
.getSession().getAttribute("pustakawan"),
"keanggotaan", "tambah
anggota", "", anggotaForm
.getUsername());
anggota = new Anggota();
GrupAnggota ga = new GrupAnggota();
ga.setId(anggotaForm.getIdgrup());
anggota.setGrup(ga);
anggota.setPassword(anggotaForm.getPassword());
anggota.setUsername(anggotaForm.getUsername());
anggota.setStatus(anggotaForm.getStatus());
anggota.setTglExp(Utility.stringToDate(anggotaForm
.getStrTglExp(),
"dd/MM/yyyy"));
anggota.setTglUpdate(Calendar.getInstance().getTime());
anggota.setAuth(anggotaForm.getAuth());
long idanggota =
agt.tambahAnggota(anggota);
anggota.setId(idanggota);
} else { // edit anggota
Utility.log(servletRequest, (User)
servletRequest
.getSession().getAttribute("pustakawan"),
"keanggotaan", "edit
anggota", "id="
+
anggotaForm.getId(), anggotaForm
.getUsername());
anggota =
agt.getAnggota(anggotaForm.getId());
GrupAnggota ga = new GrupAnggota();
ga.setId(anggotaForm.getIdgrup());
anggota.setGrup(ga);
if (anggotaForm.getPassword() != null
&&
!anggotaForm.getPassword().trim().equals("")) {
anggota.setPassword(anggotaForm.getPassword());
System.out.println("ganti
password");
}
anggota.setUsername(anggotaForm.getUsername());
anggota.setStatus(anggotaForm.getStatus());
anggota.setId(anggotaForm.getId());
anggota.setTglExp(Utility.stringToDate(anggotaForm
.getStrTglExp(),
"dd/MM/yyyy"));
anggota.setAuth(anggotaForm.getAuth());
// System.out.println(anggota.getTglExp());
//
System.out.println(anggotaForm.getStrTglExp());
anggota.setTglUpdate(Calendar.getInstance().getTime());
if (anggotaForm.getStatus()
.equalsIgnoreCase("BEBAS
PINJAM"))
anggota.setTglBebasPinjam(Calendar.getInstance()
.getTime());
agt.updateAnggota(anggota);
}
servletRequest.setAttribute("alert", "Data Error");
Map map = anggotaForm.getFields();
for (Iterator it = map.keySet().iterator();
it.hasNext();) {
String id = (String) it.next();
FieldAnggota fa = new FieldAnggota();
fa.setId(Long.parseLong(id));
FieldDataAnggota fda = new
FieldDataAnggota();
fda.setAnggota(anggota);
fda.setField(fa);
fda.setData((String) map.get(id));
agt.saveOrUpdateFieldData(fda);
System.out.println(id + " - " + map.get(id) +
"<br>");
}
anggotaForm = new AnggotaForm();
servletRequest.setAttribute("alert", "Data telah
disimpan");
} catch (Exception e) {
e.printStackTrace();
servletRequest.setAttribute("alert", e.getMessage());
}
} else if (anggotaForm.getAction().equals("edit")) {
try {
Anggota a = agt.getAnggota(anggotaForm.getId());
anggotaForm = new AnggotaForm();
anggotaForm.setFields(agt.getMapData(a.getId()));
anggotaForm.setId(a.getId());
anggotaForm.setFoto(a.getFoto());
anggotaForm.setIdgrup(a.getGrup().getId());
// anggotaForm.setPassword(a.getPassword());
anggotaForm.setTglExp(a.getTglExp());
anggotaForm.setTglUpdate(a.getTglUpdate());
if (a.getTglExp() != null)
anggotaForm.setStrTglExp(Utility
.dateToString(a.getTglExp()));
anggotaForm.setUsername(a.getUsername());
anggotaForm.setStatus(a.getStatus());
anggotaForm.setAuth(a.getAuth() == null ?
"manual" : a
.getAuth());
} catch (Exception e) {
e.printStackTrace();
servletRequest.setAttribute("alert", e.getMessage());
}
}
try {
List status = new ArrayList();
status.add(new LabelValueBean("Boleh", "Boleh"));
status.add(new LabelValueBean("Warning", "Warning"));
status.add(new LabelValueBean("BLACK LIST",
"BLACK-LIST"));
status.add(new LabelValueBean("Bebas Pustaka", "BEBAS
PINJAM"));
// status.add(new LabelValueBean("Tidak Aktif","TIDAK
AKTIF"));
servletRequest.setAttribute("statusList", status);
List auth = new ArrayList();
auth.add(new LabelValueBean("Manual", "manual"));
auth.add(new LabelValueBean("LDAP", "ldap"));
servletRequest.setAttribute("authList", auth);
List fields = agt.listField();
servletRequest.setAttribute("fieldList", fields);
List grup = agt.listGrup();
servletRequest.setAttribute("grupList", grup);
anggotaForm.setFieldList(fields);
anggotaForm.setAction("save");
} catch (Exception e) {
e.printStackTrace();
}
servletRequest.setAttribute("anggotaForm", anggotaForm);
return actionMapping.findForward(anggotaForm.getAction());
}
}
DBConnectionManager.java
package com.chinaonsite.common.db;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class DBConnectionManager {
static private DBConnectionManager instance; // ΨһʵÀý
static private int clients;
private Vector drivers = new Vector();
private PrintWriter log;
private Hashtable pools = new Hashtable();
static synchronized public DBConnectionManager getInstance() {
if (instance == null) {
instance = new DBConnectionManager();
}
clients++;
return instance;
}
private DBConnectionManager() {
init();
}
public void freeConnection(String name, Connection con) {
DBConnectionPool pool = (DBConnectionPool) pools.get(name);
if (pool != null) {
pool.freeConnection(con);
}
}
public Connection getConnection(String name) {
DBConnectionPool pool = (DBConnectionPool) pools.get(name);
if (pool != null) {
return pool.getConnection();
}
return null;
}
public Connection getConnection(String name, long time) {
DBConnectionPool pool = (DBConnectionPool) pools.get(name);
if (pool != null) {
return pool.getConnection(time);
}
return null;
}
public synchronized void release() {
if (--clients != 0) {
return;
}
Enumeration allPools = pools.elements();
while (allPools.hasMoreElements()) {
DBConnectionPool pool = (DBConnectionPool) allPools.nextElement();
pool.release();
}
Enumeration allDrivers = drivers.elements();
while (allDrivers.hasMoreElements()) {
Driver driver = (Driver) allDrivers.nextElement();
try {
DriverManager.deregisterDriver(driver);
}
catch (SQLException e) {
}
}
}
private void createPools(Properties props) {
Enumeration propNames = props.propertyNames();
while (propNames.hasMoreElements()) {
String name = (String) propNames.nextElement();
if (name.endsWith(".url")) {
String poolName = name.substring(0, name.lastIndexOf("."));
String url = props.getProperty(poolName + ".url");
if (url == null) {
continue;
}
String user = props.getProperty(poolName + ".user");
String password = props.getProperty(poolName + ".password");
String maxconn = props.getProperty(poolName + ".maxconn", "0");
int max;
try {
max = Integer.valueOf(maxconn).intValue();
}
catch (NumberFormatException e) {
max = 0;
}
DBConnectionPool pool =
new DBConnectionPool(poolName, url, user, password, max);
pools.put(poolName, pool);
}
}
}
private void init() {
InputStream is = getClass().getResourceAsStream("db.properties");
Properties dbProps = new Properties();
try {
dbProps.load(is);
}
catch (Exception e) {
System.err.println("Can not read the properties file; " + "Make sure db.properties is
in the Classpath");
return;
}
String logFile = dbProps.getProperty("logfile", "DBConnectionManager.log");
try {
log = new PrintWriter(new FileWriter(logFile, true), true);
}
catch (IOException e) {
System.err.println("Can not open the log files: " + logFile);
log = new PrintWriter(System.err);
}
loadDrivers(dbProps);
createPools(dbProps);
}
private void loadDrivers(Properties props) {
String driverClasses = props.getProperty("drivers");
StringTokenizer st = new StringTokenizer(driverClasses);
while (st.hasMoreElements()) {
String driverClassName = st.nextToken().trim();
try {
Driver driver = (Driver)
Class.forName(driverClassName).newInstance();
DriverManager.registerDriver(driver);
drivers.addElement(driver);
}
catch (Exception e) {
}
}
}
private void log(String msg) {
log.println(new Date() + ": " + msg);
}
private void log(Throwable e, String msg) {
log.println(new Date() + ": " + msg);
e.printStackTrace(log);
}
class DBConnectionPool {
private int checkedOut;
private Vector freeConnections = new Vector();
private int maxConn;
private String name;
private String password;
private String URL;
private String user;
public DBConnectionPool(String name, String URL, String user, String password,int
maxConn) {
this.name = name;
this.URL = URL;
this.user = user;
this.password = password;
this.maxConn = maxConn;
}
public synchronized void freeConnection(Connection con) {
freeConnections.addElement(con);
checkedOut--;
notifyAll();
}
public synchronized Connection getConnection() {
Connection con = null;
if (freeConnections.size() > 0) {
con = (Connection) freeConnections.firstElement();
freeConnections.removeElementAt(0);
try {
if (con.isClosed()) {
con = getConnection();
}
}
catch (SQLException e) {
con = getConnection();
}
}
else if (maxConn == 0 || checkedOut < maxConn) {
con = newConnection();
}
if (con != null) {
checkedOut++;
}
return con;
}
public synchronized Connection getConnection(long timeout) {
long startTime = new Date().getTime();
Connection con;
while ((con = getConnection()) == null) {
try {
wait(timeout);
}
catch (InterruptedException e) {}
if ((new Date().getTime() - startTime) >= timeout) {
return null;
}
}
return con;
}
public synchronized void release() {
Enumeration allConnections = freeConnections.elements();
while (allConnections.hasMoreElements()) {
Connection con = (Connection) allConnections.nextElement();
try {
con.close();
}
catch (SQLException e) {
}
}
freeConnections.removeAllElements();
}
private Connection newConnection() {
Connection con = null;
try {
if (user == null) {
con = DriverManager.getConnection(URL);
}
else {
con = DriverManager.getConnection(URL, user, password);
}
}
catch (SQLException e) {
return null;
}
return con;
}
}
}
Keterangan Listing Program
1. AnggotaAction.Java
Program ini memiliki fungsi untuk penambahan data. Dimana pada
program ini, penamaan class nya adalah AnggotaAction. Dan banyak
melakukan import data dari library yang ada.
a. Dibawah ini adalah library yang ada :
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import ui.cs.lontar.bo.form.AnggotaForm;
import org.apache.struts.action.Action;
import ui.cs.lontar.utility.*;
import ui.cs.lontar.proses.*;
import ui.cs.lontar.data.*;
import net.sf.hibernate.*;
import java.util.*;
b. Berikut adalah program pemanggilan librarynya :
ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
AnggotaForm anggotaForm = (AnggotaForm) actionForm;
Attribute yang ada antara lain adalah user dan pustakawan.
a. (servletRequest.getSession().getAttribute("user") == null)
. b. getSession().getAttribute("pustakawan"),
Pada program ini, juga dijelaskan tentang status keanggotaan. Apakah
aktif, tidak aktif, bebas pinjam atau di black list.
List status = new ArrayList();
status.add(new LabelValueBean("Boleh", "Boleh"));
status.add(new LabelValueBean("Warning", "Warning"));
status.add(new LabelValueBean("BLACK LIST",
"BLACK-LIST"));
status.add(new LabelValueBean("Bebas Pustaka", "BEBAS
PINJAM"));
2. DBConnectionManager.java
Penamaan class nya adalah DBConnectionManager.
public class DBConnectionManager
Merupakan program untuk mendapatkan koneksi database. Melakukan
import data dari library yang ada.Dibawah ini adalah library yang ada :
import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.Date;
Dibawah ini adalah program untuk membuat koneksi database yang baru :
private Connection newConnection() {
Connection con = null;
try {
if (user == null) {
con = DriverManager.getConnection(URL);
}
else {
con = DriverManager.getConnection(URL, user, password);
}