HADIKUSUMA WAHAB
G64103028
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2007
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Oleh :
HADIKUSUMA WAHAB
G64103028
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2007
Informasi Akademik IPB. Dibimbing oleh DESINA KARTIKA dan WISNU ANANTA.
Aplikasi (Sistem Informasi Akademik) SIMAK IPB harus dapat memberikan informasi yang akurat mengenai mahasiswa misalnya, program studi yang dipilih, mata kuliah yang sudah diambil maupun yang akan diambil semester selanjutnya, perhitungan penilaian akademik per semester atau kumulatif dari semester sebelumnya, dan status studinya. Proses pendaftaran KRS dan update nilai mata kuliah juga harus dapat dilakukan dengan efektif dan efisien. Dan yang tidak kalah penting adalah manajemen pengguna untuk menjaga keamanan dan integritas data.
Aplikasi SIMAK dalam penelitian ini dibangun dengan teknologi J2EE dan menggunakan
framework yang membuat sistem menjadi lebih mudah untuk dibangun dan dikelola. Framework
yang digunakan adalah Struts yang berbasiskan Model, View, Controller (MVC) pattern sehingga kode untuk tampilan dan proses bisnis akan terpisah. Aplikasi SIMAK juga menerapkan design
pattern khususnya J2EE pattern yang digunakan sebagai katalog permasalahan pemrograman di
lingkungan J2EE beserta solusinya dan juga sebagai panduan untuk pengambilan keputusan rancangan program. Beberapa J2EE pattern yang diterapkan dalam aplikasi SIMAK adalah, data
access object (DAO) pattern, Data Transfer Object (DTO) pattern dan decorator pattern.
Metode pengembangan sistem dalam penelitian ini adalah metode pengembangan sistem
waterfall yang terdiri dari beberapa tahapan yaitu analisis dan definisi kebutuhan, perancangan,
implementasi, pengujian, dan pengoperasian.
Dari penelitian yang dilakukan diperoleh beberapa kelebihan sistem dari aplikasi SIMAK yaitu kemudahan dalam pengelolaan dan perbaikan aplikasi, karena aplikasi SIMAK dirancang dengan menerapkan MVC pattern. Desain aplikasi SIMAK yang terstruktur dengan penggunaan
framework dan J2EE pattern. Kemudahan lain yang diperoleh adalah fleksibilitas dalam
mengubah implementasi data sumber, karena aplikasi SIMAK menerapkan DAO pattern seta kemudahan perubahan antarmuka aplikasi melalui decorator pattern. Terakhir, lingkungan pemrograman J2EE yang mempunyai skalabilitas tinggi serta menyediakan banyak pustaka
open-source dan berkualitas.
Nama : Hadikusuma Wahab
NRP :
G64103028
Menyetujui:
Pembimbing I,
Pembimbing II,
Desina Kartika M., S.Si, MCompSc.
Wisnu Ananta Kusuma, ST. MT.
NIP 132 158 757
NIP 132 312 485
Mengetahui:
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor
Prof. Dr. Ir. Yonny Koesmaryono, MS
NIP 131 473 999
dari tiga bersaudara dari pasangan Abdul Wahab dan Fatimah Wahab. Penulis menyelesaikan pendidikan menengah atas di SMA Labschool Rawamangun, Jakarta dan lulus pada tahun 2003.
Pada tahun yang sama penulis diterima sebagai mahasiswa Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Penulis diterima melalui jalur Undangan Seleksi Masuk IPB (USMI). Penulis pernah melaksanakan praktek lapang selama dua bulan di Inixindo. Tugas yang diberikan pada praktek lapang tersebut berkaitan dengan perancangan dan implementasi Sistem Paspor Indonesia.
Selama kuliah penulis aktif dalam beberapa kegiatan kemahasiswaan terutama di Himpunan Mahasiswa Ilmu Komputer (Himalkom). Pada saat di Himalkom penulis bertugas sebagai staf bagian research and development. Penulis mempunyai ketertarikan pada bahasa pemrograman Java serta mempunyai sertifikasi internasional Sun Certified Java Programmer (SCJP). Saat ini penulis aktif sebagai koordinator Java Campus Team di Departemen Ilmu Komputer dan juga aktif di komunitas Java User Group Indonesia sebagai anggota dan Netbeans Indonesia sebagai anggota serta penyelenggara acara rutin bulanan Netbeans Indonesia.
Nya sehingga penulis dapat menyelesaikan karya ilmiah ini. Sholawat dan salam semoga senantiasa tercurah kepada Nabi besar Muhammad SAW, keluarganya, para sahabat, serta para pengikutnya yang tetap istiqomah mengemban risalah-Nya.
Melalui lembar ini, penulis ingin menyampaikan penghargaan dan terima kasih kepada Ibu Desina Kartika M., S.Si, MCompSC. selaku pembimbing I, yang telah meluangkan waktunya untuk membimbing penulis, memberikan ilmu-ilmu yang berharga, serta dukungan selama penelitian ini berlangsung. Bapak Wisnu Ananta, ST. MT. selaku pembimbing II, yang telah membimbing penulis dan selalu memberikan semangat, serta Bapak Ir. Julio Adisantoso MKom. yang telah bersedia menjadi penguji sekaligus penyemangat dalam pelaksanaan seminar dan sidang.
Penulis juga mengucapkan terima kasih kepada seluruh keluarga, khususnya Mamah, Bapak, dan adek Rini yang telah memberikan dukungan, kasih sayang, doa, dan pengorbanannya selama ini. Sherly Wijaya Rusli yang selalu menemani penulis ketika senang maupun sedih, memberi semangat untuk terus menyelesaikan tugas akhir, dan pengorbanan yang diberikan selama penelitian ini berlangsung.
Ifnu yang selalu membantu, memberi dukungan, pendapat dan inspirasi yang sangat berharga selama ini. Meynar yang telah membantu selama penulisan tugas akhir dan memberi dukungan ketika seminar dan sidang. Pis, Pandi, Firat, Jemi dan “Geng Cinta” lainnya yang telah memberikan wawasan dan keceriaan kepada penulis. Semua teman-teman ilkomerz’40, terima kasih untuk canda tawa, persahabatan, dan kebersamaan selama kuliah di Ilkom IPB. Teman-teman griya 40, Gilang, Dawud, Yudi, Yulia, Leli, Yasmin, Irma, Icha yang selalu memberikan semangat dan doanya kepada penulis. Serta rekan-rekan Ilkomerz angkatan 38, 39, 41, dan 42.
Seluruh staf pengajar yang telah memberikan wawasan serta ilmu yang berharga selama penulis menuntut ilmu di Departemen Ilmu Komputer. Seluruh staf administrasi dan perpustakaan Departemen Ilmu Komputer yang selalu memberi kemudahan dalam mengurus segala macam hal berkaitan dengan perkuliahan, serta pihak-pihak lain yang tidak dapat disebutkan satu-persatu.
Sebagaimana manusia yang tidak luput dari kesalahan, penulis menyadari bahwa karya ilmiah ini jauh dari sempurna. Namun penulis berharap semoga karya ilmiah ini dapat bermanfaat bagi siapapun yang membacanya.
Bogor, Juli 2007
DAFTAR ISI
Halaman
DAFTAR GAMBAR ...vi
DAFTAR LAMPIRAN ...vi
PENDAHULUAN Latar Belakang ...1
Tujuan Penelitian...1
Ruang Lingkup Penelitian...1
Manfaat Penelitian...1
TINJAUAN PUSTAKA Basis Data ...2
Structured Query Languange (SQL) ...2
Waterfall Life Cycle ...2
Unified Modelling Language (UML) ...3
Java 2 Enterprise Edition ...3
Package ...4
Java Server Pages (JSP) & Servlet...4
Servlet Container ...4 Design Pattern...4 MVC Pattern ...4 J2EE Pattern...4 Framework ...5 Struts Framework ...5 Validator Framework ...5 METODE PENELITIAN Studi Literatur...6 Pengembangan Sistem ...6
Analisis dan Definisi Kebutuhan ...6
Perancangan Sistem dan Perangkat Lunak ...6
Implementasi ...7
Pengujian Integrasi dan Sistem ...7
Deployment...7
HASIL DAN PEMBAHASAN Analisis dan Definisi Kebutuhan ...7
Deskripsi Umum Sistem ...7
Analisis Kebutuhan Pengguna...7
Analisis Kebutuhan Sistem...7
Analisis Pengguna...7
Perancangan Sistem dan Perangkat Lunak ...8
Perancangan Input...8
Perancangan Output ...8
Perancangan Basis Data Lojik ...8
Perancangan Basis Data Fisik...8
Perancangan Model ...8 Perancangan View ...8 Perancangan Controller ...8 Perancangan Kendali/Kontrol...9 Implementasi ...9 Struktur Package...9
Implementasi Perangkat Keras ...9
Halaman
Client ...9
Implementasi Perangkat Lunak ...10
Server...10
Client ...10
Implementasi Basis Data ...10
Implementasi Model...10
Implementasi Antarmuka...10
Implementasi Controller...11
Pengujian Integrasi dan Sistem ...12
Deployment...12
Kelebihan Sistem...12
Kekurangan Sistem ...13
KESIMPULAN DAN SARAN Kesimpulan ...13 Saran...14 DAFTAR PUSTAKA ...14 LAMPIRAN ...14
DAFTAR GAMBAR
Halaman 1 Model siklus hidup perangkat lunak...22 Arsitektur J2EE ...3
3 Hubungan komunikasi komponen J2EE ...3
4 Arsitektur MVC pattern...4
5 Arsitektur Struts framework ...6
6 Perancangan antarmuka aplikasi SIMAK ...8
7 Implementasi antarmuka aplikasi SIMAK ...11
DAFTAR LAMPIRAN
Halaman 1 Use case diagram ... 162 Fungsi aplikasi SIMAK ... 17
3 Karakterisitik pengguna ... 18
4 Diagram ER... 19
5 Skema basis data ... 20
6 Class diagram ... 21
7 Perancangan controller ... 24
8 Implementasi basis data ... 37
PENDAHULUAN Latar Belakang
Informasi akademik merupakan elemen penting dalam institusi pendidikan, oleh karena itu diperlukan aplikasi Sistem Informasi Akademik (SIMAK) yang berfungsi untuk mengatur seluruh proses akademik. Proses akademik meliputi mahasiswa, fakultas, departemen, program studi, mata kuliah, Kartu Rencana Studi (KRS), transkrip, serta laporan akademik.
Aplikasi SIMAK harus dapat memberikan informasi yang akurat mengenai mahasiswa. Informasi tersebut meliputi program studi yang dipilih, mata kuliah yang sudah diambil maupun yang akan diambil semester selanjutnya, perhitungan nilai akademik per semester atau kumulatif dari semester sebelumnya, dan status studinya. Proses pendaftaran KRS dan perubahan nilai mata kuliah juga harus dapat dilakukan dengan efektif dan efisien. Manajemen pengguna juga diperlukan untuk menjaga keamanan dan integritas data.
Aplikasi SIMAK di IPB sudah dikembangkan oleh Kantor Pusat Sistem Informasi (KPSI) IPB yang berbasiskan
desktop application dengan asitektur
client-server. Masalah dari aplikasi yang
berbasiskan desktop application adalah setiap
client harus terpasang aplikasi SIMAK,
sehingga pemeliharaan akan menjadi sulit. Pemeliharaan sulit dilakukan karena semua
client harus di-update apabila terdapat fitur
baru atau koreksi terhadap kesalahan program. Hal ini akan menjadi masalah besar apabila terdapat banyak client. Berangkat dari kekurangan tersebut akan dikembangkan aplikasi SIMAK yang berbasiskan web
application sehingga setiap client hanya
membutuhkan browser untuk mengakses sistem dan pemeliharaan yang mudah karena terpusat pada server.
Pengembangan aplikasi berbasis web dapat diimplementasikan dengan berbagai teknologi. Teknologi J2EE dipilih karena memiliki berbagai aspek dalam membangun aplikasi, yaitu portability, reliability,
scalability, maintability, dan availabity
(McGovern 2003). Oleh karena itu akan dikembangkan aplikasi SIMAK yang dibangun dengan teknologi J2EE dan menerapkan konsep Model, View, Controller (MVC) dimana kode untuk tampilan dan proses bisnis akan terpisah. Penerapan konsep
MVC akan diakomodasi melalui Struts
framework. Selain itu, aplikasi SIMAK juga
menerapkan design pattern khususnya J2EE
pattern yang digunakan sebagai katalog
permasalahan pemrograman di lingkungan J2EE beserta solusinya dan juga sebagai panduan untuk pengambilan keputusan perancangan program. Beberapa J2EE pattern yang diterapkan dalam aplikasi SIMAK adalah Data Access Object (DAO) pattern,
Data Transfer Object (DTO) pattern, dan decorator pattern. Dengan berbagai konsep
tersebut diharapkan dapat dibangun aplikasi SIMAK yang terstruktur, mudah dikelola, serta mudah untuk dikembangkan.
Tujuan Penelitian
Tujuan dari penelitian ini adalah :
1 Menerapkan seluruh proses dalam pengembangan perangkat lunak.
2 Mengimplementasikan teknologi J2EE dalam pengembangan aplikasi SIMAK. 3 Mengimplementasi konsep MVC melalui
Struts framework dalam pengembangan aplikasi SIMAK.
4 Menerapkan J2EE pattern dalam pengembangan aplikasi SIMAK.
Ruang Lingkup Penelitian
Ruang lingkup penelitian ini adalah:
1 Membangun aplikasi SIMAK yang menerapkan konsep MVC melalui Struts
framework.
2 Membangun aplikasi SIMAK yang mengimplementasi J2EE pattern.
3 Aplikasi SIMAK dibatasi untuk sistem mahasiswa phasing out.
4 Aplikasi SIMAK tidak mencakup modul wisuda.
Manfaat Penelitian
Penelitian ini diharapkan dapat bermanfaat bagi KPSI sebagai model pengembangan selanjutnya dari aplikasi SIMAK sebelumnya. Selain itu, penelitian ini juga bermanfaat sebagai contoh aplikasi J2EE yang menerapkan konsep MVC dan J2EE pattern. Hal ini dapat membantu pihak yang ingin membangun aplikasi J2EE yang terstruktur dan mudah dikelola.
Analisis dan definisi kebutuhan Perancangan sistem dan perangkat lunak Implementasi Pengujian integrasi dan sistem Deployment
TINJAUAN PUSTAKA
Basis DataBasis data merupakan sekumpulan data atau entitas beserta deskripsinya yang secara logika berelasi, dibuat untuk memenuhi kebutuhan informasi suatu organisasi serta dapat digunakan bersama-sama. Tujuan utama basis data adalah pengelolaan dan pengolahan data yang begitu kompleks secara mudah, cepat dan efisien untuk berbagai kebutuhan (Connolly dan Carolyn 2002).
Basis data terdiri dari entitas dan relasi antar entitas. Entitas (entity) merupakan objek tertentu dari suatu organisasi yang akan direpresentasikan dalam basis data. Tipe entitas merupakan sekumpulan objek yang didefinisikan oleh pengguna, dimana tipe entitas tersebut memiliki keberadaan yang tidak terikat, dan merupakan representasi dari sekumpulan objek pada dunia nyata dengan nilai atribut yang sama (Connolly dan Carolyn 2002).
Relasi (relationship) adalah hubungan antarentitas dan Entity–Relationship Model (ER) adalah model data berbasiskan objek yang berfungsi untuk merancang basis data dengan pendekatan top-down yang tidak ambigu dan mudah digunakan. Entitas, atribut, relasi, dan batasan perhitungan merupakan komponen dari ER. Tujuan ER adalah merepresentasikan entitas dan relasinya.
Structured Query Languange (SQL)
SQL (Structured Query Language) merupakan bahasa query dasar yang digunakan untuk mengakses basis data relasional (Connolly dan Carolyn 2002). Ekspresi SQL mempunyai tiga klausa dasar, yaitu :
1 SELECT
SELECT digunakan untuk menetapkan field atau atribut yang ingin ditampilkan.
2 FROM
FROM digunakan untuk menetapkan tabel
apa saja yang akan ditelusuri selama
query.
3 WHERE
WHERE digunakan untuk mendapatkan data dengan kriteria yang harus dipenuhi, klausa ini bersifat opsional.
Waterfall Life Cycle
Proses pemodelan perangkat lunak merupakan representasi abstrak dari sebuah proses perangkat lunak. Waterfall atau
software life cycle merupakan salah satu jenis
pemodelan dari proses pengembangan perangkat lunak. Disebut model waterfall dikarenakan oleh terurutnya dari satu tahap ke tahap yang lainnya (Pressman 2001). Tahap utama dari model ini adalah membentuk aktivitas pengembangan yang bersifat dasar, seperti:
1 Analisis dan definisi kebutuhan
Pada tahap ini dilakukan konsultasi dengan pengguna untuk mengetahui batasan dan tujuan dari sistem yang akan dirancang. Hal tersebut akan didefinisikan secara detail dan dipergunakan sebagai sebuah spesifikasi sistem.
2 Perancangan sistem dan perangkat lunak Proses perancangan membagi kebutuhan dari perangkat keras maupun perangkat lunak. Proses ini akan membentuk secara umum arsitektur sistem. Perancangan perangkat lunak terdiri dari proses mengidentifikasikan dan menjelaskan abstraksi sistem perangkat lunak dan keterhubungan di antaranya.
3 Implementasi
Hasil perancangan sistem pada tahap sebelumnya mulai diimplementasikan agar menghasilkan sistem yang dapat bekerja dengan baik.
4 Pengujian integrasi dan sistem
Modul-modul program dan fungsi-fungsi khusus yang termasuk di dalamnya diintegrasikan dan diuji sebagai suatu sistem yang lengkap, sehingga menjamin kebutuhan perangkat lunak. Setelah dilakukan pengujian, sistem perangkat lunak akan diberikan ke pengguna.
5 Deployment
Pada tahap ini sistem dipasang dan diletakkan untuk penggunaan praktis . Tahapan ini berlangsung cukup lama dan biasanya memakan biaya yang cukup besar bila terjadi kesalahan pada tahap-tahap awal.
Gambar 1 Model siklus hidup perangkat lunak.
Unified Modelling Language (UML)
Unified Modelling Language (UML)
adalah keluarga notasi grafis yang didukung oleh meta-model tunggal untuk membantu pendeskripsian dan desain sistem perangkat lunak. UML biasanya digunakan pada sistem yang dibangun mengunakan pemrograman berorientasi objek (Fowler 2004). Beberapa diagram UML yang sering digunakan adalah,
class diagram, use case diagram, dan sequence diagram.
Class diagram merupakan diagram UML
yang mendeskripsikan jenis-jenis objek di dalam sistem dan hubungan statis yang terdapat di antara mereka (Fowler 2004).
Class diagram juga menunjukkan properti dan
operasi sebuah objek dan batasan-batasan yang terdapat dalam hubungan di antara objek-objek tersebut. Beberapa elemen yang terdapat dalam Class diagram adalah properti, atribut, dan asosiasi.
Use case diagram merupakan diagram
UML yang mendeskripsikan persyaratan fungsional dari sistem (Fowler 2004). Selain itu, terdapat pula interaksi antara pengguna sistem dan sistem itu sendiri melalui sebuah narasi tentang bagaimana sistem tersebut digunakan.
Sequence diagram menunjukkan
bagaimana kelompok-kelompok objek saling berkolaborasi dalam sebuah fungsi tunggal (Fowler 2004). Diagram ini menunjukkan sejumlah objek dan pesan-pesan yang melewati objek-objek ini pada sebuah fungsi tunggal.
Java 2 Enterprise Edition
Java 2 Enterprise Edition atau J2EE adalah platform berbasis web yang digunakan untuk membangun aplikasi berskala
enterprise dengan arsitektur multi-tier
(Armstrong et al. 2005). Dengan arsitektur ini, J2EE akan membuat aplikasi yang dibangun menjadi lebih efektif dari segi biaya dan waktu. J2EE dibangun dari beberapa komponen tier yaitu:
• Komponen client-tier yang berada di mesin client.
• Komponen web-tier yang berada di J2EE
server.
• Komponen business-tier yang berada di J2EE server.
• Enterprise information system (EIS)-tier yang berada di EIS server.
Namun berdasarkan lokasi penyebaran komponen, J2EE hanya dibagi menjadi tiga
tier yaitu, mesin client, J2EE server, dan EIS server. Arsitektur J2EE dapat dilihat pada
Gambar 2.
Gambar 2 Arsitektur J2EE (Armstrong et al. 2005). Komunikasi antara client-tier, web-tier,
business-tier dan EIS-tier dapat dilihat pada
Gambar 3.
Gambar 3 Hubungan komunikasi komponen J2EE (Armstrong et al. 2005). J2EE memiliki memiliki kelebihan utama, yaitu portability, reliability, scalability,
maintability, dan availabity (McGovern
2003).
Dilihat dari sudut portability, J2EE bersifat multiplatform sehingga dapat berjalan di beberapa sistem operasi, seperti Windows, UNIX, Linux, Solaris, dan MacOS. Reliability dapat dilihat dari sudut pandang sistem operasi yang digunakan. Beberapa sistem operasi mempunyai tingkat kehandalan dan ketahanan terhadap malicious code yang berbeda-beda. Dengan menggunakan sistem operasi yang tepat maka aspek reliability dapat tercapai. Aplikasi dengan J2EE dapat juga bersifat scalable, karena J2EE memiliki metode clustering untuk memproses suatu
request oleh beberapa server tanpa mengubah
Controller
Model View
Manipulasi Interaksi
Ditampilkan
J2EE juga mempunyai banyak pustaka
open-source dan berkualitas.
Package
Package adalah sebuah bentuk
pengelompokan kelas atau interface yang saling berhubungan pada bahasa pemrograman Java (Campione 2000).
Package dapat merupakan anggota package
lain, jadi terdapat suatu struktur hirarki di mana package paling atas memiliki beberapa
subpackage dan seterusnya sampai hirarki
tersebut berakhir pada kelas. Kegunaan dari
package adalah memudahkan pencarian dan
penggunaan suatu kelas atau interface, menghindari konflik penamaan, dan akses kontrol kelas.
Java Server Pages (JSP) & Servlet
Java Server Pages (JSP) merupakan teknologi untuk menghasilkan halaman dinamis seperti HTML, DHTML, XHTML, dan XML pada sisi server. Servlet adalah kelas Java yang berada di bawah JSP, namun lebih bersifat khusus untuk menangani request dan response terhadap web server (Armstrong
et al. 2005). Setiap halaman JSP akan diubah
menjadi servlet terlebih dahulu sebelum dieksekusi. Teknologi yang sejenis dengan JSP adalah ASP dan PHP.
Servlet Container
Servlet container berguna untuk mengatur daur hidup seluruh objek servlet dalam aplikasi J2EE (McGovern 2003). Selain itu servlet container juga berfungsi sebagai web
container untuk memberikan layanan
inisialisasi parameter, koneksi basis data, memudahkan servlet untuk menggunakan sumber atau komponen lain dalam aplikasi, dan manajemen session.
Design Pattern
Design pattern adalah unsur-unsur
rancangan yang seringkali muncul pada berbagai jenis sistem. Design pattern merupakan katalog permasalahan beserta solusi yang sudah teruji dalam perancangan sistem (Gamma et al. 1995). Design pattern yang sering dijadikan untuk bidang studi adalah design pattern yang berasal dari Gang
of Four (GoF) yaitu, Erich Gamma, Richard
Helm, Ralph Johnson, dan John Vlissides.
GoF mengumpulkan pattern-pattern yang
biasa dipakai dalam membangun sebuah sistem menjadi suatu katalog lengkap yang dapat dipakai dalam memecahkan berbagai
masalah dalam pembangunan sebuah sistem. Hal ini disebabkan karena biasanya permasalahan tidaklah unik, dengan mengetahui deskripsi lengkap dari suatu permasalahan maka akan dapat dengan mudah diketahui pattern apa yang cocok sebagai solusi dari permasalahan tersebut dan ketika menghadapi masalah yang sama atau mirip maka pattern tersebut dapat digunakan kembali.
MVC Pattern
Pola atau pattern yang memisahkan antara tampilan antarmuka (view), bisnis proses (controller), dan objek data (model) (McGovern 2003). Arsitektur MVC pattern dapat dilihat pada Gambar 4.
Gambar 4 Arsitektur MVC pattern.
Layer Model merupakan proses bisnis
utama. Di dalamnya terdapat kode untuk persistensi data dan proses bisnis. Secara singkat, layer Model ini menangani isi dari aplikasi. Di layer ini diputuskan data yang akan diberikan pada client.
Layer View menangani masalah-masalah
yang berkaitan dengan tampilan. Layer ini hanya melakukan pengaturan terhadap data agar tampilannya sesuai dengan kebutuhan pengguna.
Layer Controller mengatur alur pengguna.
Di sini dilakukan pemrosesan request untuk menentukan proses bisnis mana yang akan dieksekusi. Biasanya layer controller juga digunakan untuk mengatur ijin akses.
J2EE Pattern
Selain GoF, juga terdapat Gang of Three (GoT) yang terdiri dari Deepak Alur, John Crupi, dan Dan Malks. J2EE pattern sebenarnya mengacu kepada design pattern berdasarkan GoF dan memiliki fungsi yang sama yaitu sebagai katalog permasalahan dan solusi yang sudah teruji dalam pengembangan aplikasi J2EE. Namun GoT lebih fokus pada
tumpang tindih antara kedua kelompok ini (Alur et al. 2003).
Beberapa J2EE pattern dalam penelitian ini adalah:
1 Data Access Object Pattern
Data Access Object (DAO) pattern adalah
pola yang mengenkapsulasi data akses dan manipulasi ke dalam lapisan yang berbeda (Alur et al. 2003). Dengan menggunakan DAO pattern maka aplikasi tidak perlu mengetahui bagaimana sebuah data diakses atau dimanipulasi. DAO pattern akan diimplementasikan dengan membuat sebuah objek yang bersifat abstrak dan mengenkapsulasi seluruh akses ke sumber data yang bersifat persisten. Objek ini akan berfungsi sebagai akses data yang bersifat umum untuk berbagai macam data sumber seperti, RDBMS, LDAP, OODB, XML, flat files, dan lain lain.
2 Data Transfer Object Pattern
Data Transfer Object (DTO) pattern atau
adalah pola yang mengenkapsulasi bisnis data dan mengirimkannya secara sekaligus dalam satu waktu (Alur et al. 2003). DTO
pattern juga berfungsi sebagai jembatan
penghubung antar lapisan dalam aplikasi. Dengan pola ini proses perpindahan data menjadi sederhana dan terintegrasi. 3 Decorator Pattern
Decorator pattern merupakan pola untuk
menangkap seluruh request sebelum atau sesudah diberikan kepada target (Crawford & Kaplan 2003). Pola ini dapat diterapkan dalam berbagai komponen. Pada komponen yang berisi proses bisnis dapat berguna untuk proses pencatatan aplikasi dan keamanan. Pada komponen antarmuka setiap halaman yang akan diberikan kepada target atau pengguna akan didekorasi terlebih dahulu.
Framework
Framework adalah aplikasi semi-complete
yang dapat digunakan untuk membuat aplikasi lain yang lebih spesifik (Husted 2003).
Framework yang ideal merupakan intisari dari
pendekatan terbaik dalam pengembangan perangkat lunak.
Struts Framework
Struts framework adalah web framework pada J2EE yang menerapkan MVC pattern (Husted 2003). Struts mempunyai beberapa kelas yang berhubungan untuk membentuk MVC pattern.
Beberapa komponen dalam Struts
framework adalah: • ActionForward • ActionForm • ActionMapping • ActionServlet • Action
ActionServlet berfungsi untuk mengatur seluruh alur navigasi dalam sistem. Di lain pihak, Action berfungsi untuk mengakses kelas yang berhubungan dengan proses bisnis atau lojik dari sistem. Ketika ActionServlet menerima permintaan dari container yang
terdapat dalam web server, maka
ActionServlet akan menggunakan URI (Universal Resources Identifier) atau “path” untuk menentukan kelas Action mana yang akan digunakan untuk menangani permintaan tersebut. Kelas Action berfungsi untuk mengakses lapisan bisnis pada aplikasi untuk mendapatkan, menyimpan, mengubah, dan menghapus informasi yang berasal dari basis data.
Untuk menerima dan validasi input dari pengguna, ActionServlet membungkus input tersebut ke dalam sebuah kelas ActionForm yang mempunyai metode aksesor dan mutator terhadap atribut yang dimilikinya.
Seluruh detail mengenai ActionForm, Action, ActionForward, ActionMapping dideklarasikan dalam struts-config.xml. ActionServlet akan membaca file ini pada
waktu start-up dan membuat objek
konfigurasi terhadap basis data yang digunakan. Gambar 5 menunjukkan arsitektur serta interaksi antarkomponen dalam Struts
framework.
Struts framework termasuk ke dalam kategori MVC framework yang berbasiskan
action. Selain itu, terdapat jenis MVC framework lain yang berbasiskan komponen.
Pendekatannya adalah membangun aplikasi berbasis web seperti membangun aplikasi
desktop. Contoh MVC framework yang
berbasis komponen adalah Java Server Faces (JSF), Tapestry, dan Wicket.
Validator Framework
Validasi merupakan elemen yang penting dalam pembangunan aplikasi. Validasi yang tepat akan membuat data yang tersimpan di
dalam basis data menjadi data yang valid dan dapat dipercaya.
Gambar 5 Arsitektur Struts framework. Berbagai kesalahan input yang umum
terjadi dalam sebuah aplikasi adalah:
• Email hanya berupa kombinasi alfabet tanpa terdapat karakter @ dan domain dari email tersebut.
• Nama dapat berupa karakter apapun, padahal biasanya nama hanya kombinasi huruf alfabet.
• Tanggal tidak sesuai dengan format tertentu dalam aplikasi misalnya dd/mm/yyyy atau mm/dd/yyyy.
Dengan menggunakan validator
framework maka akan memudahkan
implementasi validasi terhadap input pengguna. Validasi ini dapat berupa input yang harus diisi oleh pengguna, panjang minimal atau maksimal dari input, format tanggal, email, dan validasi yang dapat dibuat sendiri agar sesuai dengan aplikasi yang dibangun (Husted 2003).
METODE PENELITIAN
Studi LiteraturStudi literatur diawali dengan menganalisis dan membandingkan beberapa
framework MVC yang tersedia di lingkungan
J2EE. Selain itu, dilakukan juga studi implementasi terhadap beberapa J2EE pattern.
Pengembangan Sistem
Metode pengembangan sistem dalam penelitian ini adalah metode pengembangan sistem waterfall yang terdiri dari beberapa tahapan yaitu analisis dan definisi kebutuhan, perancangan sistem dan perangkat lunak, implementasi, pengujian dan integrasi sistem, dan deployment.
Analisis dan Definisi Kebutuhan
Pada tahap ini dilakukan analisis dan definisi kebutuhan aplikasi SIMAK dengan berkomunikasi secara langsung kepada pengguna SIMAK sebelumnya, yaitu
administrator, staf fakultas, staf departemen,
dan staf program studi. Komunikasi ini dilakukan untuk mendapatkan deskripsi umum, tujuan, kebutuhan pengguna, kebutuhan sistem, dan pengguna aplikasi SIMAK. Proses analisis dan definisi kebutuhan juga melibatkan programmer KPSI yang membangun SIMAK sebelumnya untuk menjamin keakuratan analisis dan definisi kebutuhan aplikasi.
Perancangan Sistem dan Perangkat Lunak
Perancangan aplikasi merupakan tahap yang mendefinisikan analisis kebutuhan menjadi suatu representasi aplikasi sebelum diimplementasikan. Perancangan dilakukan dengan pemodelan notasi grafis UML. Beberapa diagram UML yang dipakai dalam perancangan adalah class diagram, use case
diagram, dan sequence diagram. Perancangan
didasarkan pada J2EE pattern untuk mendapatkan rancangan aplikasi yang tersruktur.
Implementasi
Implementasi dari perancangan yang sudah dilakukan sebelumnya dilakukan dengan menggunakan Struts framework dan J2EE pattern. Lingkungan implementasi yang digunakan adalah sebagai berikut:
• Perangkat Lunak: Windows XP Professional, J2EE 1.4, MySQL 4.1, Netbeans 5.5, Apache Tomcat 5.5, Mozilla Firefox 2.0, dan Internet Explorer 7. • Perangkat Keras: Intel Centrino Duo 1.6
Ghz, RAM 1.24 GB, harddisk 80 GB,
keyboard, mouse, dan monitor.
Pengujian Integrasi dan Sistem
Pengujian sistem dilakukan oleh pengguna yaitu administrator SIMAK IPB. Pengujian dilakukan dengan metode black box testing. Jika pada pengujian terdapat kesalahan pada sebuah fungsi maka akan segera dilakukan perbaikan kemudian dilakukan pengujian kembali. Regression testing dilakukan sampai mencakup seluruh fungsi sehingga sistem dapat berjalan sebagaimana mestinya.
Deployment
Pada tahap ini aplikasi SIMAK di-deploy pada servlet container untuk dapat dioperasikan. Servlet container yang akan digunakan adalah Apache Tomcat.
HASIL DAN PEMBAHASAN
Analisis dan Definisi KebutuhanPada tahap ini didapatkan beberapa gambaran umum dan definisi kebutuhan dari aplikasi SIMAK. Beberapa hal yang dianalisis pada tahap ini adalah:
1 Deskripsi Umum Sistem
Aplikasi SIMAK adalah perangkat lunak berbasis web yang mengatur seluruh proses akademik mulai dari mahasiswa, fakultas, departemen, program studi, mata kuliah, KRS, transkrip, sampai laporan akademik. Untuk menjaga keamanan dan integritas data, diperlukan manajemen pengguna SIMAK yang dibagi menjadi empat macam pengguna. Pengguna meliputi administrator, staf
fakultas, staf departemen, dan staf program studi.
2 Analisis Kebutuhan Pengguna
Kebutuhan pengguna terhadap aplikasi SIMAK adalah sebagai berikut:
• Terdapat manajemen pengguna untuk membatasi hak akses terhadap setiap data. • Terdapat modul untuk mengatur fakultas,
departemen, program studi dan mata kuliah yang disediakan oleh program studi tersebut.
• Terdapat fungsi untuk mengatur mahasiswa dan mata kuliah yang diambil oleh mahasiswa tersebut.
• Proses penilaian dapat dilakukan dengan meng-upload file yang berisi nilai mahasiswa yang berformat Microsoft Excel.
• Terdapat fungsi untuk membuat laporan akademik mahasiswa baik perorangan maupun keseluruhan dengan format PDF. • Terdapat fungsi untuk mencetak daftar
absensi untuk perkuliahan maupun ujian dengan format PDF sesuai dengan data KRS mahasiswa.
Use case diagram pada Lampiran 1 akan
menggambarkan lebih detail keterhubungan antara kebutuhan pengguna dan sistem.
3 Analisis Kebutuhan Sistem
Untuk memenuhi kebutuhan pengguna, aplikasi SIMAK akan dirancang agar memiliki fungsi dan batasan-batasan yang dapat memenuhi semua kebutuhan pengguna. Fungsi aplikasi SIMAK dapat dilihat pada Lampiran 2.
4 Analisis Pengguna
Pengguna aplikasi SIMAK adalah staf rektorat, fakultas, departemen, dan program studi di IPB. Staf rektorat mempunyai wewenang penuh terhadap aplikasi SIMAK atau disebut sebagai administrator. Di sisi lain, staf fakultas hanya dapat melihat data yang ada di bawah fakultasnya, staf departemen hanya dapat melihat data yang ada di bawah departemennya, dan staf program studi hanya dapat melihat data program studinya masing-masing. Aplikasi SIMAK menerima masukan dari pengguna melalui perintah yang diklik pada mouse atau yang diketikkan melalui keyboard.
Karakteristik dari pengguna aplikasi SIMAK disajikan pada Lampiran 3.
Perancangan Sistem dan Perangkat Lunak
Pada tahap ini diperoleh hasil perancangan dari aplikasi SIMAK. Perancangan aplikasi SIMAK meliputi:
1 Perancangan Input
Perancangan input berfungsi untuk
menerima input dari pengguna aplikasi SIMAK. Input yang ada pada aplikasi SIMAK berupa teks yang diketik oleh pengguna melalui keyboard dan pilihan menu/link yang diklik oleh pengguna melalui mouse. Pada sejumlah form isian yang membutuhkan input berupa teks, dilakukan validasi agar tidak tidak terjadi kesalahan terhadap input data. Perpindahan halaman dalam aplikasi SIMAK ditentukan melalui link pilihan menu dan submenu. Aplikasi SIMAK juga menerima input berupa file berformat Microsoft Excel (*.xls) sebagai input untuk KRS dan nilai mahasiwa.
2 Perancangan Output
Output pada aplikasi SIMAK berupa
halaman web yang bersifat dinamis. Halaman dinamis akan menampilkan data yang tersimpan di dalam data sumber yang dipanggil melalui query tertentu sehingga isi halamannya bisa berubah-ubah pada saat
run-time. Selain itu aplikasi SIMAK juga
menghasilkan output yang berupa file
berformat PDF (*.pdf) untuk keperluan cetak absensi, transkrip, atau laporan lainnya.
3 Perancangan Basis Data Lojik
Pada basis data ini model yang digunakan adalah model basis data relasional (Relational
Data Model). Tahapan desain model lojik
diakhiri dengan mendapatkan diagram Entity-
Relationship (ER) yang menggambarkan
model lojik dari basis data. Diagram ER aplikasi dapat dilihat pada Lampiran 4.
4 Perancangan Basis Data Fisik
Perancangan basis data model fisik pada aplikasi SIMAK adalah tahapan dimana perancangan basis data lojik telah diimplementasikan ke dalam bentuk tabel-tabel yang disebut skema basis data. Skema basis data dapat dilihat pada Lampiran 5.
5 Perancangan Model
Dalam perancangan MVC pattern, model harus berisi segala macam proses bisnis pada SIMAK. Struts menyediakan kelas Action
yang merupakan bagian dari controller yang berfungsi memproses segala input yang dimasukkan oleh pengguna dan memberitahu pada kelas ActionMapping tentang proses selanjutnya.
Aplikasi SIMAK menerapkan DAO
pattern untuk akses ke data sumber. Pada
penelitian ini, akses data sumber dibatasi pada ANSI-92 SQL. Dalam penerapannya, DAO
pattern membutuhkan DTO yang berfungsi
sebagai objek yang berisi data dari pengguna untuk dipindahkan dari kelas Action ke kelas DAO. DTO merupakan objek-objek yang merepresentasikan tabel-tabel dalam basis data. Di dalam kelas DAO, objek tersebut diolah ke basis data. Class diagram dari perancangan model dapat dilihat pada
Lampiran 6.
6 Perancangan View
Perancangan view atau antarmuka
dirancang untuk memberikan tampilan yang sesuai dengan kebutuhan pengguna. Aplikasi SIMAK memiliki desain antarmuka yang dapat dilihat pada Gambar 6.
Gambar 6 Perancangan antarmuka aplikasi SIMAK.
Perancangan antarmuka aplikasi SIMAK menerapkan decorator pattern sehingga setiap halaman yang akan diberikan ke pengguna akan didekorasi terlebih dahulu dengan format yang sudah ditentukan. Penerapan pattern ini akan memudahkan perubahan antarmuka dengan hanya mengubah format dekorasi.
Decorator pattern diimplementasikan dengan
menggunakan pustaka Sitemesh.
7 Perancangan Controller
Controller merupakan bagian yang
menghubungkan antara model dan antarmuka. Perancangan controller akan menggambarkan proses atau kejadian agar input pengguna
BANNER
CONTENT
FOOTER MENU
menghasilkan output yang diinginkan. Perancangan controller digambarkan menggunakan sequence diagram sehingga terlihat hubungan dari input pengguna, objek-objek yang terlibat dalam proses, dan output yang diberikan kepada pengguna. Beberapa contoh perancangan controller aplikasi SIMAK dapat dilihat pada Lampiran 7.
8 Perancangan Kendali/Kontrol
Perancangan kendali/kontrol ditujukan untuk mengantisipasi kesalahan pengguna pada saat mengoperasikan aplikasi SIMAK serta melindungi aplikasi dari pengguna yang tidak memiliki hak akses. Untuk mengantisipasi kesalahan, aplikasi SIMAK telah dilengkapi dengan kemampuan validasi
input pengguna terhadap form isian.
Validasi pada aplikasi SIMAK terdiri dari dua lapisan yaitu validasi di sisi client dan di sisi server. Validasi di sisi client akan mengurangi beban kerja server dalam melakukan validasi, contohnya validasi jika
field harus diisi, field harus diisi dengan
format tertentu, field harus diisi dengan angka, dan sebagainya. Seluruh validasi tersebut akan dilakukan di sisi client menggunakan Javascript. Apabila pengguna mematikan Javascript di browser maka aplikasi SIMAK secara otomatis akan melakukan validasi di sisi server.
Perancangan kendali/kontrol diterapkan dengan menggunakan Validator framework yang disediakan oleh Struts. Dalam perancangan dibutuhkan kelas ValidatorForm yang berfungsi untuk mengikat setiap form yang ada pada aplikasi SIMAK. Kelas ValidatorForm mempunyai atribut yang sama dengan nama field yang ada di dalam form serta memiliki fungsi aksesor dan mutator untuk atribut tersebut. Seluruh fungsi validasi disimpan dalam dua file yang berbeda, yaitu validation.xml dan validation-rules.xml. File validation.xml berfungsi untuk menyimpan jenis validasi yang akan diterapkan pada setiap field dalam setiap form, sedangkan file validation-rules.xml menyimpan jenis-jenis validasi yang bisa digunakan.
Selain validasi terhadap kesalahan input, aplikasi SIMAK juga melakukan pengendalian kesalahan pada sistem dengan memberikan informasi yang tepat kepada pengguna. Misalnya, jika terjadi segala jenis kesalahan yang berhubungan dengan akses basis data di halaman manapun, aplikasi SIMAK akan memberikan halaman
peringatan bahwa terjadi kesalahan terhadap akses basis data.
Implementasi
Pada tahap ini seluruh perancangan yang dibuat pada tahap sebelumnya diimplementasikan. Implementasi aplikasi SIMAK meliputi:
1 Struktur Package
Aplikasi SIMAK mempunyai struktur
package sebagai berikut:
• Default package, menyimpan file properties untuk pencatatan aplikasi
SIMAK.
• org.simak, menyimpan file ApplicationResources.properties untuk semua label yang terdapat dalam halaman aplikasi SIMAK.
• org.simak.action, menyimpan kelas-kelas turunan Action.
• org.simak.form, menyimpan kelas-kelas turunan ValidatorForm.
• org.simak.dao, menyimpan interface DAO.
• org.simak.dao.sql92, menyimpan implementasi dari DAO berupa akses SQL.
• org.simak.decorator, menyimpan
decorator untuk tabel pada setiap halaman
SIMAK.
• org.simak.model, menyimpan kelas-kelas
model.
• org.simak.util, menyimpan kelas-kelas multiguna.
• org.simak.util.report, menyimpan kelas-kelas multiguna untuk keperluan report.
2 Implementasi Perangkat Keras
Spesifikasi minimal perangkat keras yang digunakan dalam pengembangan aplikasi SIMAK adalah:
Server
• Prosesor Intel Xeon 3.4 Ghz (Dual CPU).
• RAM 512 MB. • Harddisk 80 GB.
• Ethernet card port 10/100-Mbps. • Monitor dengan resolusi 800×600. • Mouse dan keyboard.
Client
• Prosesor minimum Intel Pentium III 800 MHz.
• Harddisk minimum 10 GB. • Ethernet card port 10/100-Mbps. • Monitor dengan resolusi 800×600. • Mouse dan keyboard.
3 Implementasi Perangkat Lunak
Spesifikasi perangkat lunak yang digunakan dalam pengembangan aplikasi SIMAK adalah:
Server
• Microsoft Windows Server 2003. • Apache Tomcat.
• Java Runtime Enviroment. • MySQL.
Client
• Microsoft Windows XP.
• Mozilla Firefox atau Internet Explorer.
4 Implementasi Basis Data
Implementasi basis data aplikasi SIMAK disimpan pada RDBMS seperti yang telah disebutkan pada spesifikasi perangkat lunak. Hasil implementasi basis data dapat dilihat pada Lampiran 8.
5 Implementasi Model
Setiap kelas Action akan memanggil DAO untuk akses atau manipulasi ke data sumber. Berikut adalah contoh potongan kode dalam kelas DepartemenDispatchAction yang merupakan turunan dari DispatchAction untuk manipulasi tabel departemen pada basis data, 1 Departemen departemen = new 2 Departemen();
3 //Set nilai ke objek departemen 4 DepartemenDAO dao =
5 DAOFactory.createDepartemenDAO(); 6 dao.createDepartemen(departemen);
Pada baris pertama dan dua, objek departemen diinstansiasi dari kelas Departemen. Objek departemen ini berlaku sebagai DTO. Pada baris empat dan lima dibuat instansiasi DepartemenDAO. Proses instansiasi objek dao ini menerapkan factory
pattern untuk abstraksi jenis akses ke data
sumber. Dan pada baris enam, objek dao memanggil fungsi createDepartemen() untuk membuat departemen baru dengan parameter yang dikirim adalah objek departemen yang sudah diberi nilai sebelumnya.
Pada penelitian ini DAOFactory hanya mengimplementasikan akses ke ANSI-92 SQL. Berikut potongan kode dalam kelas DAOFactory,
1 public static DepartemenDAO 2 createDepartemenDAO() {
3 return new
4 SQL92DepartemenDAO();
5 }
Langkah yang perlu dilakukan untuk mengubah jenis akses data sumber hanyalah dengan mengganti return value dari fungsi di atas. Misalnya, terdapat sebuah fungsi createDepartemenDAO() yang berfungsi menambah atau menyimpan data departemen pada file XML mengembalikan kelas
XMLDepartemenDAO. Kelas XMLDepartemenDAO harus didefinisikan terlebih dahulu dan mengimplementasikan seluruh akses ke file XML.
Fungsi createDepartemenDAO() akan menjadi seperti di bawah,
1 public static DepartemenDAO 2 createDepartemenDAO() {
3 return new XMLDepartemenDAO();
4 }
6 Implementasi Antarmuka
Implementasi dari perancangan antarmuka pada aplikasi SIMAK dapat dilihat pada Gambar 7.
Implementasi decorator pattern
memerlukan sebuah halaman aplikasi sebagai dekorator dan file decorators.xml untuk konfigurasinya. File decorators.xml berisi konfigurasi untuk menentukan halaman yang ingin didekorasi berdasarkan URI pattern. Aplikasi SIMAK mendekorasi semua output yang berupa halaman JSP sedangkan output yang berupa report dengan format PDF tidak didekorasi.
Seluruh report dalam aplikasi SIMAK diakses dengan awalan URI /report/ sehingga pada tag excludes dimasukkan pattern /report/*, yang berarti seluruh output berupa
report tidak akan didekorasi. Berikut isi dari file decorators.xml, 1 <decorators 2 defaultdir="/decorators"> 3 4 <excludes> 5 <pattern>/report/*</pattern> 6 </excludes> 7 8 <decorator name="main" 9 page="mainDecorator.jsp"> 10 <pattern>*</pattern> 11 </decorator> 12 13 <decorator name="panel" 14 page="panelDecorator.jsp"/> 15 16 </decorators>
Setelah mendefinisikan konfigurasi dekorasi, maka dibuat halaman dekorasi mainDecorator.jsp. Halaman ini akan mengambil isi dari halaman yang ingin ditampilkan ke pengguna. Dengan demikian, halaman yang ditampilkan ke pengguna telah didekorasi terlebih dahulu.
7 Implementasi Controller
Implementasi controller melibatkan
banyak komponen inti dari Struts framework. Seluruh konfigurasi controller ada dalam file struts-config.xml. Mapping setiap request dari pengguna yang berupa URI akan langsung memanggil kelas Action. Setelah kelas Action dieksekusi, maka kelas Action akan memberitahu langkah selanjutnya kepada kelas ActionForward untuk memberikan
response yang sesuai kepada pengguna.
Berikut contoh implementasi mapping dalam struts-config.xml untuk menambah mahasiswa baru, 1 <action 2 path="/CreateMahasiswa" 3 type="org.simak.action. 4 MahasiswaDispatchAction” 5 name="mahasiswaForm" 6 scope="request" parameter="method" 7 input="/WEBINF/pages/mahasiswa/ 8 createMahasiswa.jsp"> 9 <set-property property="cancellable" 10 value="true"/> 11 <forward name="list" 12 path="/WEB-INF/pages/mahasiswa 13 /listMahasiswa.jsp"/> 14 </action>
Definisi ActionMapping dilakukan pada baris pertama, sedangkan baris kedua
mendefinisikan path URI, yaitu
/CreateMahasiswa. Setiap kali terdapat
request dengan path URI /CreateMahasiswa,
maka akan dipanggil kelas Action yang didefinisikan pada baris tiga dan empat yaitu MahasiswaDispatchAction. Jika proses pembuatan mahasiswa mengalami kesalahan, maka pengguna akan dikembalikan ke halaman yang didefinisikan pada baris tujuh dan delapan yaitu halaman createMahasiswa.jsp. Di lain pihak, jika proses sukses, maka kelas MahasiswaDispatchAction akan mengembalikan nilai “list” yang akan
diterima oleh tag forward dan kemudian akan diberikan halaman listMahasiswa.jsp kepada pengguna.
Aplikasi SIMAK memiliki banyak form yang harus diisi dan divalidasi terlebih dahulu sebelum diproses. Setelah kelas-kelas turunan dari ValidatorForm dibuat, maka ditentukan
field dalam form yang harus divalidasi.
Beberapa macam validasi yang digunakan adalah:
• Required, field harus diisi.
• Mask, field harus sesuai dengan format atau pola tertentu.
• MinLength, field harus sesuai dengan panjang minimum yang didefinisikan. • Integer, field harus bilangan bulat.
• IntRange, field harus bilangan bulat yang berada diantara range tertentu.
• Float, field harus diisi dengan bilangan real.
Validasi mask digunakan pada saat validasi NRP mahasiswa dimana format atau polanya diawali oleh satu huruf dan diikuti delapan angka. Selain NRP, validasi mask Gambar 7 Implementasi antarmuka aplikasi SIMAK.
juga digunakan untuk kode mata kuliah yang mempunyai pola tiga huruf dan diikuti tiga angka.
Selain jenis-jenis validasi di atas, aplikasi SIMAK juga membuat validasi tambahan, yaitu pengecekan agar NRP sesuai dengan program studinya. Misalnya pengguna ingin menambahkan data mahasiswa dengan program studi Matematika, pengguna mengisi
field NRP dengan G64103028 terlebih dahulu.
Setelah itu pengguna memilih program studi Matematika. Ketika tombol submit ditekan, aplikasi SIMAK akan memberikan pesan kesalahan bahwa NRP dengan program studi tidak sesuai. Hal ini dikarenakan setiap mahasiswa program studi Matematika harus diawali dengan G541.
Implementasi validasi dilakukan melalui
file validation.xml. Kode di bawah merupakan
potongan file validation.xml untuk validasi
field NRP, nama mahasiswa, dan program
studi ketika ingin menambah atau mengubah data mahasiswa. 1 <form name="mahasiswaForm"> 2 <field property="nrp" 3 depends="required,mask,checkNrp"> 4 <msg name="mask" 5 key="errors.nrpMask"/> 6 <arg0 key="Mahasiswa.nrp"/> 7 <var> 8 <var-name>mask</var-name> 9 <var-value> 10 ^[A-Z]{1}[0-9]{8}$ 11 </var-value> 12 </var> 13 <var> 14 <var-name> 15 secondProperty 16 </var-name> 17 <var-value> 18 kodePs 19 </var-value> 20 </var> 21 </field> 22 23 <field property="namaMhs" 24 depends="required,minlength"> 25 <arg0 key="Mahasiswa.namaMhs"/> 26 <arg1 key="${var:minlength}" 27 name="minlength" 28 resource="false"/> 29 <var> 30 <var-name>minlength</var-name> 31 <var-value>2</var-value> 32 </var> 33 </field> 34 35 <field 36 property="idPs" 37 depends="required"> 38 <arg0 key="Mahasiswa.programStudi"/> 39 </field> 40 </form>
Pengujian Integrasi dan Sistem
Pengujian aplikasi dilakukan dengan menggunakan dokumen uji yang dibuat berdasarkan kesepakatan antara penulis dan
programmer SIMAK sebelumnya. Proses
pengujian dilakukan oleh programmer SIMAK sebelumnya. Ketika terdapat kesalahan, maka kesalahan segera diperbaiki dan diuji kembali. Proses ini dilakukan berulang kali sampai semua jenis pengujian fungsi pada dokumen uji berfungsi dengan baik. Hasil pengujian dapat dilihat pada Lampiran 9.
Deployment
Sebelum bisa dioperasikan, aplikasi SIMAK harus terlebih dahulu di-deploy dalam servlet container. Pada penelitian ini digunakan Apache Tomcat sebagaimana tertulis pada implementasi perangkat lunak pada server aplikasi SIMAK. Aplikasi SIMAK yang ingin di-deploy harus berbentuk
file Web Archive (WAR). Berikut adalah
langkah-langkah yang diperlukan untuk
deployment aplikasi SIMAK:
1 Install Apache Tomcat.
2 Masukkan file WAR aplikasi SIMAK ke dalam $CATALINA_HOME/webapps. 3 Jalankan Apache Tomcat menggunakan
control panel yang disediakan oleh
Apache Tomcat.
Kelebihan Sistem
Aplikasi SIMAK memiliki beberapa kelebihan ditinjau dari teknologi dan arsitektur yang digunakan yaitu:
• J2EE
Teknologi J2EE merupakan teknologi Java berbasis web sehingga mudah diakses oleh setiap komputer yang terhubung dalam jaringan. Aplikasi SIMAK mempunyai beberapa kelebihan yang diturunkan dari teknologi J2EE, yaitu portability, reliability,
scalability, dan maintainability.
• MVC Pattern
Aplikasi SIMAK dirancang dengan menerapkan MVC pattern. Dengan MVC
pattern, aplikasi SIMAK terbagi menjadi tiga
bagian yaitu, model, view, dan controller. Dengan demikian, terbentuk “separation of
concern” dalam aplikasi SIMAK, dimana
proses bisnis ditangani oleh model, tampilan antarmuka oleh view, dan controller sebagai penghubung antara model dan view.
Pembagian ini akan memudahkan pembangunan aplikasi dalam tim yang berjumlah besar. Pembangunan aplikasi dapat bersifat horizontal, dimana tim untuk proses bisnis, tim perancangan tampilan, dan juga tim yang membentuk akses ke basis data dapat bekerja secara paralel. Setelah masing-masing menyelesaikan bagiannya, maka bagian-bagian tersebut digabung menjadi sebuah aplikasi yang utuh.
Konsep MVC juga membuat aplikasi SIMAK menjadi lebih mudah dikelola. Ketika terjadi perubahan pada proses bisnis, maka tim yang bertanggung jawab dalam proses bisnis dapat dengan mudah mengubah proses bisnis SIMAK tanpa perlu memperhatikan aspek lain dalam aplikasi (tampilan atau
controller). Atau ketika pengguna aplikasi
SIMAK menginginkan perubahan tampilan antarmuka, tim yang bertanggung jawab terhadap tampilan antarmuka dapat dengan mudah mengubah tampilan antarmuka aplikasi SIMAK.
Walaupun dalam penelitian ini aplikasi SIMAK tidak dikembangkan dalam sebuah tim besar, manfaat dari konsep MVC tetap dirasakan. Beberapa di antaranya adalah, membuat aplikasi menjadi mudah untuk dibangun, memiliki struktur yang rapi, mudah dikelola, dan mudah untuk dikembangkan lebih lanjut.
• J2EE Pattern
Perancangan aplikasi SIMAK didasarkan pada J2EE pattern untuk membuat aplikasi SIMAK menjadi lebih teratur dan terstruktur. Hal ini membuat aplikasi SIMAK menjadi lebih mudah dikembangkan serta dikelola. • DAO Pattern
DAO pattern membuat akses ke basis data menjadi fleksibel, perubahan pada tabel basis data tidak mempengaruhi bagian lain dalam aplikasi, serta pengembangan yang lebih lanjut untuk akses ke data sumber selain basis data. Akses basis data diimplementasikan dengan menggunakan ANSI-92 SQL sehingga mendukung seluruh jenis basis data karena ANSI-92 SQL adalah bahasa query dasar untuk setiap basis data.
Jika aplikasi SIMAK ingin didukung dengan aplikasi berbasis desktop application, maka DAO pattern yang telah diterapkan oleh SIMAK berbasis web dapat langsung digunakan untuk mengakses basis data SIMAK. Hal ini disebabkan implementasi
DAO pattern yang menerapkan konsep “programming by interface”.
• Decorator Pattern
Perubahan antarmuka aplikasi SIMAK dapat dilakukan dengan mudah melalui
decorator pattern. Jika tidak menggunakan pattern ini, biasanya setiap halaman aplikasi
akan memasukkan halaman lain yang bersifat umum seperti header, menu, dan footer. Namun apabila bagian menu ingin dihapus atau dipindahkan maka setiap halaman yang memasukkan halaman menu harus diubah. Hal ini akan menjadi rumit jika aplikasi sudah memiliki jumlah halaman yang banyak. Dengan decorator pattern, maka antarmuka dapat diubah hanya melalui halaman dekorasi.
Kekurangan Sistem
Kekurangan yang terdapat pada aplikasi SIMAK adalah dari segi konsep MVC sendiri. MVC mempunyai kekurangan utama yaitu, penambahan suatu modul harus meliputi seluruh aspek lapisan, yaitu model, view, dan
controller.
Dilihat dari segi teknologi yang digunakan, J2EE terbukti menggunakan banyak memory sehingga aplikasi akan menjadi lambat apabila memory pada server tidak mencukupi. Hal ini dapat diatasi dengan menambah memory pada server, namun harga
memory untuk server masih tergolong mahal.
KESIMPULAN DAN SARAN
KesimpulanAplikasi SIMAK adalah perangkat lunak berbasis web yang mengatur seluruh proses akademik mulai dari mahasiswa, fakultas, departemen, program studi, mata kuliah, KRS, transkrip sampai laporan akademik.
Aplikasi ini dibangun dengan menggunakan Struts framework yang menerapkan MVC pattern. Dengan MVC
pattern, aplikasi SIMAK terbagi menjadi tiga
bagian utama yaitu, model, view, dan
controller.
Penerapan J2EE pattern membuat aplikasi SIMAK menjadi lebih terstruktur. J2EE
pattern yang diterapkan adalah DAO pattern,
DTO pattern, dan decorator pattern.
DAO pattern membuat akses ke data sumber menjadi lebih fleksibel. DTO pattern membuat proses pengiriman data menjadi lebih sederhana dan mudah dilakukan.
antarmuka aplikasi SIMAK. Dengan pattern tersebut, perubahan tampilan aplikasi menjadi mudah dilakukan.
Arsitektur aplikasi SIMAK membuat aplikasi menjadi mudah dikelola. Hal ini dirasakan ketika aplikasi SIMAK sudah mencapai tahap pengujian dan terjadi kesalahan. Kesalahan tersebut dapat langsung dideteksi dan diperbaiki dengan mudah tanpa harus mempengaruhi bagian lain dalam aplikasi.
Saran
Aplikasi SIMAK lebih lanjut dapat dikembangkan dengan:
1 Memperbaiki DAO pattern menjadi lebih fleksibel dengan menerapkan
Object-Relational Mapping (ORM). Framework
yang bisa digunakan untuk menerapkan ORM adalah Hibernate dan TopLink. 2 Menerapkan lebih banyak J2EE pattern. 3 Menerapkan unit testing untuk melakukan
pengujian seluruh unit aplikasi SIMAK.
Unit testing dapat dilakukan dengan
menggunakan JUnit.
4 Menggunakan application framework
seperti Spring yang berfungsi sebagai
penghubung antara komponen dan
framework dalam aplikasi SIMAK serta
membuat aplikasi menjadi lebih loosely
coupled.
DAFTAR PUSTAKA
Alur D, Crupi J, Malks D. 2003. Core J2EE™
Patterns: Best Practices and Design
Strategies, 2nd Edition. United States:
Addison-Wesley.
Armstrong E, et al. 2005. The J2EE™ 1.4
Tutorial. Canada: Willey Publishing.
Campione M. 2000. Java™ Tutorial 3rd
Edition. United States: Addison-Wesley.
Connolly TM, Carolyn EB. 2002. Database
System: A Practical Approach To Design, Implementation, and Management.
England: Addison-Wesley.
Crawford W, Kaplan J. 2003. J2EE Design
Patterns. United States: O’Reilly.
Fowler M. 2004. UML Distilled : A Brief
Guide to the Standard Object Modelling
Language 3rd Edition. United States:
Addison-Wesley.
Gamma E, Helm R, Johnson R, Vlissides J. 1995. Design Patterns: Elements of
Reusable Object-Oriented Software.
United States: Addison-Wesley.
Hightower R. Jakarta Struts Live. Colorado: SourceBeat.
Husted T. 2003. Struts in Action : Building
Web Application with the Leading Java Framework. United States : Manning.
McGovern J. 2003. Java™ 2 Enterprise
Edition 1.4 Bible. Canada: Willey
Publishing.
Pressman, RS. 2001. Software Engineering: A
Practitioner’s Approach 5th Edition. New
Lampiran 2 Fungsi aplikasi SIMAK Kode fungsi Deskripsi
[SIMAK-001] Melakukan autentikasi terhadap pengguna [SIMAK-002] Melihat dan mencari data mata kuliah [SIMAK-003] Menambah data mata kuliah
[SIMAK-004] Mengubah data mata kuliah [SIMAK-005] Menghapus data mata kuliah
[SIMAK-006] Melihat data detail riwayat mata kuliah [SIMAK-007] Menambah data detail riwayat mata kuliah [SIMAK-008] Mengubah data detail riwayat mata kuliah [SIMAK-009] Menghapus data detail riwayat mata kuliah [SIMAK-010] Melihat dan mencari data mahasiswa [SIMAK-011] Menambah data mahasiswa
[SIMAK-012] Mengubah data mahasiswa [SIMAK-013] Menghapus data mahasiswa
[SIMAK-014] Melihat dan mencari data KRS mahasiswa
[SIMAK-015] Menambah data KRS mahasiswa melalui upload file [SIMAK-016] Menghapus data KRS mahasiswa
[SIMAK-017] Melihat data detail KRS berupa mata kuliah yang diambil mahasiswa [SIMAK-018] Menghapus data mata kuliah pada detail KRS mahasiswa
[SIMAK-019] Upload file nilai mata kuliah mahasiswa
[SIMAK-020] Mengubah data nilai mata kuliah mahasiswa [SIMAK-021] Mencetak KRS mahasiswa
[SIMAK-022] Mencetak transkrip mahasiswa
[SIMAK-023] Mencetak daftar absensi mahasiswa untuk perkuliahan dan ujian [SIMAK-024] Mencetak riwayat nilai per mahasiswa
[SIMAK-025] Mencetak riwayat nilai mahasiswa per program studi [SIMAK-026] Mencetak rekapitulasi nilai mahasiswa per program studi [SIMAK-027] Melihat dan mencari data pengguna aplikasi
[SIMAK-028] Menambah data pengguna aplikasi [SIMAK-029] Mengubah data pengguna aplikasi [SIMAK-030] Menghapus data pengguna aplikasi [SIMAK-031] Melihat dan mencari data fakultas [SIMAK-032] Menambah data fakultas
[SIMAK-033] Mengubah data fakultas [SIMAK-034] Menghapus data fakultas
[SIMAK-035] Melihat dan mencari data departemen [SIMAK-036] Menambah data departemen
[SIMAK-037] Mengubah data departemen [SIMAK-038] Menghapus data departemen
[SIMAK-039] Melihat dan mencari data program studi [SIMAK-040] Menambah data program studi
[SIMAK-041] Mengubah data program studi [SIMAK-042] Menghapus data program studi
[SIMAK-043] Melihat dan mencari data konfigurasi status studi [SIMAK-044] Menambah data konfigurasi status studi
[SIMAK-045] Mengubah data konfigurasi status studi [SIMAK-046] Menghapus data konfigurasi status studi
Lampiran 3 Karakterisitik pengguna
Kategori pengguna Hak akses ke aplikasi Keterangan
Administrator [SIMAK-001], [SIMAK-002], [SIMAK-003],
[SIMAK-004], [SIMAK-005], [SIMAK-006], [SIMAK-007], [SIMAK-008], [SIMAK-009], [SIMAK-010], [SIMAK-011], [SIMAK-012], [SIMAK-013], [SIMAK-014], [SIMAK-015], [SIMAK-016], [SIMAK-017], [SIMAK-018], [SIMAK-019], [SIMAK-020], [SIMAK-021], [SIMAK-022], [SIMAK-023], [SIMAK-024], [SIMAK-025], [SIMAK-026], [SIMAK-027], [SIMAK-028], [SIMAK-029], [SIMAK-030], [SIMAK-031], [SIMAK-032], [SIMAK-033], [SIMAK-034], [SIMAK-035], [SIMAK-036], [SIMAK-037], [SIMAK-038], [SIMAK-039], [SIMAK-040], [SIMAK-041], [SIMAK-042], [SIMAK-043], [SIMAK-044], [SIMAK-045], [SIMAK-046]
Staf Fakultas [SIMAK-001], [SIMAK-002], [SIMAK-006], [SIMAK-010], [SIMAK-014], [SIMAK-015], [SIMAK-016], [SIMAK-017], [SIMAK-019], [SIMAK-020], [SIMAK-021], [SIMAK-022], [SIMAK-023], [SIMAK-024], [SIMAK-025], [SIMAK-026],
Staf fakultas hanya bisa melihat semua informasi
departemen,dan program studi yang dimilikinya Staf Departemen [SIMAK-001], [SIMAK-002], [SIMAK-006],
[SIMAK-010], [SIMAK-014], [SIMAK-015], [SIMAK-016], [SIMAK-017], [SIMAK-019], [SIMAK-020], [SIMAK-021], [SIMAK-022], [SIMAK-023], [SIMAK-024], [SIMAK-025], [SIMAK-026],
Staf departemen hanya bisa melihat semua informasi program studi yang dimilikinya Staf Program Studi [SIMAK-001], [SIMAK-002], [SIMAK-006],
[SIMAK-010], [SIMAK-014], [SIMAK-015], [SIMAK-016], [SIMAK-017], [SIMAK-019], [SIMAK-020], [SIMAK-021], [SIMAK-022], [SIMAK-023], [SIMAK-024], [SIMAK-025], [SIMAK-026],
Staf program studi hanya bisa melihat informasi program studinya
Lampiran 4 Diagram ER Fakultas Departemen PS Riwayat_Kurikulum Kurikulum Mahasiswa Status_Studi KRS Nilai_Mutu Status_Ulang Status_MK id_fak kode_fak nama_fak memiliki memiliki mempunyai memiliki memiliki memiliki mendapat mendapat mengisi id_dep kode_dep nama_dep kode_mk id_ps kode_ps nama_ps gelar nrp nama_mhs nama_status _studi status_studi kode_mk nama_mk koordinator sks sks_kuliah sks_prak id_krs thn_akd sem sp nama_status _ulang status_ulang nlai_mutu angka nama_status _mk status_mk memiliki memiliki thn_akd sem sks sks_kuliah sks_prak id_rk 1 N 1 N 1 N N 1 1 N 1 N N 1 1 N N 1 N 1
Lampiran 5 Skema basis data Fakultas
id_fak kode_fak nama_fak
Departemen
PS
id_dep id_fak kode_dep nama_dep kode_mk
id_ps id_dep kode_ps nama_ps gelar
Mahasiswa
nrp id_ps nama_mhs status_studi
Status_Studi status_studi nama_status_studi Status_MK status_mk nama_status_mk Status_Ulang status_ulang nama_status_ulang Nilai_Mutu nilai_mutu angka Kurikulum
kode_mk id_ps nama_mk koordinator sks sks_kuliah sks_prak
Riwayat Kurikulum
id_rk kode_mk id_ps thn_akd sem sks sks_kuliah sks_prak
KRS
id_krs nrp kode_mk thn_akd sem status_ulang sp nilai_mutu
User
username password nama_user nip roles id_fak id_dep id_ps
Kalkulasi_Status_Studi
id_status_studi jenis_status_studi thn_akd ips_min ips_maks ipk_min ipk_maks
Lanjutan Lampiran 6 Class diagram << Struts >> ActionForm << Struts >> ValidatorForm KurikulumForm - idFak : int - idDep : int - idPs : int - kodeMk : String - koordinator : String - nama : String - sks : int - sksKuliah : int - sksPrak : int
Method aksesor dan mutator seluruh atribut
UserForm - idFak : int - idDep : int - idPs : int - namaUser : String - nip : String - username : String - password : String - roles : String
Method aksesor dan mutator seluruh atribut
FakultasForm
- idFak : int - kodeFak :String - namaFak : String
Method aksesor dan mutator seluruh atribut
DepartemenForm - idFak : int - idDep : int - kodeDep :String - kodeMk : String - namaDep : String
Method aksesor dan mutator seluruh atribut
ProgramStudiForm - idFak : int - idDep : int - idPs : int - kodePs :String - namaPs : String - gelar : String
Method aksesor dan mutator seluruh atribut
KalkulasiStatusStudi Form - id : int - ipsMin : float - ipsMaks : float - ipkMin : float - ipkMaks : float - jenisStatusStudi : String - thnAkd : String
Method aksesor dan mutator seluruh atribut
MahasiswaForm - idFak : int - idDep : int - idPs : int - namaMhs : String - nrp : String - idStatusStudi : String
Method aksesor dan mutator seluruh atribut
KrsForm - idFak : int - idDep : int - idPs : int - nrp : String - namaMhs : String - thnAkd : String - sem : String - totalSks : int
Method aksesor dan mutator seluruh atribut
KrsDetailForm - idKrs : int - idStatusUlang : int - kodeMk : String - nilaiMutu : String - sp : String
Method aksesor dan mutator seluruh atribut
RiwayatKurikulumForm - idFak : int - idDep : int - idPs : int - idRiwayatKurikulum : int - idStatusMk : int - kodeMk : String - nama : String - sks : int - sksKuliah : int - sksPrak : int - sem : String - thnAkd : String
Method aksesor dan mutator seluruh atribut
KrsFileForm
- content : FormFile
Method aksesor dan mutator seluruh atribut
NilaiFileForm
- content : FormFile
Method aksesor dan mutator seluruh atribut
AbsensiReportForm - idFak : int - idDep : int - idPs : int - jenisAbsensi : String - kodeMk : String - thnAkd : String - sem : String
Method aksesor dan mutator seluruh atribut
RekapNilaiSemester ReportForm - idFak : int - idDep : int - idPs : int - thnAkd : String - sem : String
Method aksesor dan mutator seluruh atribut
RiwayatNilai ReportForm - idFak : int - idDep : int - idPs : int - nrp : String - thnAkd : String - sem : String
Method aksesor dan mutator seluruh atribut uses
Lampiran 7 Perancangan controller
1. Melakukan autentikasi terhadap pengguna
Pengguna
LogonSubmit :ActionMapping LogonForm :
ValidatorForm LogonAction : Action
1. Input 'username' dan 'password' lalu klik 'submit'
validation [ if not valid ] [ else ] 2. validate() 3. execute() 4. getUsername() username 5. getPassword() password login_failed login_success 9. forward ke mainMenu.jsp 8. forward ke logon.jsp UserDAO 7. read data 6. getRoles() roles
1. Pengguna menginput username dan password sebagai autentikasi ke dalam sistem. 2. Validasi terhadap input yang dimasukkan oleh pengguna misalnya, peringatan panjang
minimum dan maksimum dari username dan password, peringatan jika field username atau password dikosongkan.
• Jika validasi gagal maka staf akan dikembalikan ke halaman login untuk input
username dan password kembali.
• Jika validasi berhasil maka data username dan password akan disimpan di dalam
LogonForm.
3. LogonAction akan melakukan validasi username dan password yang dimasukkan oleh staf dengan yang berada di basis data.
4. Data username yang berada di LogonForm diambil oleh LogonAction. 5. Data password yang berada di LogonForm diambil oleh LogonAction.
6. LogonAction membaca data username dan password yang ada di basis data untuk membandingkan nilainya serta menentukan hak dari staf sebagai pengguna biasa atau
administrator.
7. LogonSubmit akan menerima nilai logon_failed dari LogonAction jika logon gagal dan staf dikembalikan ke halaman logon dengan peringatan bahwa username dan password yang dimasukkan tidak sesuai atau tidak ada dalam basis data.
8. LogonSubmit akan menerima nilai login_succcess dari LogonAction jika logon berhasil maka staf akan diberikan halaman utama.