HADIKUSUMA WAHAB
G64103028
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
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
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 TransferObject (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
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 Classdiagram... 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
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.
HADIKUSUMA WAHAB
G64103028
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
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
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 TransferObject (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
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 Classdiagram... 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
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.
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).
Classdiagram 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 webserver (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
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
diagram, dan sequencediagram. 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
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
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 penggunaterhadap 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
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 dankemudian 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
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
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 desktopapplication, maka DAO pattern yang telah diterapkan oleh SIMAK berbasis