STRUTS FRAMEWORK DAN J2EE PATTERN DALAM PENGEMBANGAN SISTEM INFORMASI AKADEMIK IPB
HADIKUSUMA WAHAB G64103028
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2007
STRUTS FRAMEWORK DAN J2EE PATTERN DALAM PENGEMBANGAN SISTEM INFORMASI AKADEMIK IPB
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
ABSTRAK HADIKUSUMA WAHAB. Struts Framework dan J2EE Pattern dalam Pengembangan Sistem 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 opensource dan berkualitas. Kata kunci : Sistem informasi, J2EE, framework, design pattern
Judul : Struts Framework dan J2EE Pattern dalam Pengembangan Sistem Informasi Akademik IPB Nama : Hadikusuma Wahab NRP : G64103028
Menyetujui: Pembimbing I,
Pembimbing II,
Desina Kartika M., S.Si, MCompSc. NIP 132 158 757
Wisnu Ananta Kusuma, ST. MT. 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
Tanggal Lulus:
RIWAYAT HIDUP Penulis dilahirkan di Frankfurt, Jerman pada tanggal 6 Februari 1987 sebagai anak ke dua 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.
PRAKATA Puji dan syukur penulis panjatkan kepada Allah SWT atas limpahan nikmat dan hidayahNya 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. Temanteman 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
Hadikusuma Wahab
v
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 Server........................................................................................................................................9
vi
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 1 2 3 4 5 6 7
Halaman Model siklus hidup perangkat lunak.............................................................................................2 Arsitektur J2EE .............................................................................................................................3 Hubungan komunikasi komponen J2EE ......................................................................................3 Arsitektur MVC pattern................................................................................................................4 Arsitektur Struts framework .........................................................................................................6 Perancangan antarmuka aplikasi SIMAK ....................................................................................8 Implementasi antarmuka aplikasi SIMAK .................................................................................11
DAFTAR LAMPIRAN 1 2 3 4 5 6 7 8 9
Halaman Use case diagram ....................................................................................................................... 16 Fungsi aplikasi SIMAK ............................................................................................................. 17 Karakterisitik pengguna............................................................................................................. 18 Diagram ER................................................................................................................................ 19 Skema basis data ........................................................................................................................ 20 Class diagram ............................................................................................................................ 21 Perancangan controller .............................................................................................................. 24 Implementasi basis data ............................................................................................................. 37 Dokumen uji aplikasi SIMAK ................................................................................................... 38
1
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 clientserver. 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.
2
TINJAUAN PUSTAKA Basis Data Basis 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.
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 tahaptahap awal. Analisis dan definisi kebutuhan Perancangan sistem dan perangkat lunak
Implementasi
Pengujian integrasi dan sistem
Deployment
Waterfall Life Cycle Proses pemodelan perangkat lunak merupakan representasi abstrak dari sebuah proses perangkat lunak. Waterfall atau
Gambar 1 Model siklus hidup perangkat lunak.