1 SKRIPSI PENERAPAN CODEIGNITER FRAMEWORK DALAM PENGEMBANGAN SISTEM INFORMASI SIDANG KELILING (Studi Kasus : Badan Peradilan Agama) Oleh : Andi Mulya ...
PENERAPAN CODEIGNITER FRAMEWORK DALAM PENGEMBANGAN SISTEM INFORMASI SIDANG KELILING (Studi Kasus : Badan Peradilan Agama)
Oleh : Andi Mulya Indrianto 105091002788
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010
ABSTRAK Andi Mulya Indrianto, Penerapan Codeigniter Framework dalam Pengembangan Sistem Informasi Sidang Keliling Studi Kasus : Badan Peradilan Agama Jakarta, dibimbing oleh Khodijah Hulliyah, M.Si dan Yusuf Durrachman, MSc, M.IT. Pengadilan agama di seluruh Indonesia kini terdapat program sidang keliling yaitu sidang yang dilakukan tidak di pengadilan namun di tempat yang terdekat dari pendaftar sidang. Setiap bulannya pelaksanaan sidang keliling harus dilaporkan ke Badan Peradilan Agama Jakarta, pelaporan tersebut dilakukan melalui pos ataupun email. Pada proses pelaporan data melalui pos akan memakan banyak waktu dan juga pelaporan data melului pos ataupun email akan terjadi kesulitan dalam mengorganisir data persidangan keliling tersebut. Untuk membantu mengorganisir data sidang keliling tersebut, maka diperlukan suatu aplikasi yang dapat menyimpan dan mengorganisir data sehingga mudah untuk diakses oleh penggunanya. Aplikasi yang akan dibuat merupakan aplikasi berbasis web dengan menggunakan codeigniter framework dan mysql sebagai basis datanya. Aplikasi ini akan memudahkan pelaporan data sidang keliling sehingga informasi persidangan dapat tersampaikan dengan cepat dibandingkan dengan pelaporan data sidang dengan cara manual. Keamanan data dari aplikasi ini akan memanfaatkan keamanan standar dari codeigniter yang bisa mencegah XSS attack dan SQL injection. Analisis dan perancangan sistem informasi siding keliling dilakukan dengan pendekatan OOAD (Object Oriented Analysis and Design).
Kata Kunci : Codeigniter Framework, Sistem Informasi, Sidang Keliling, OOAD (Object Oriented Analysis and Design)
v
DAFTAR ISI
Halaman Halaman judul ............................................................................................. i Persetujuan pembimbing ............................................................................. ii Halaman pengesahan ................................................................................... iii Halaman pernyataan .................................................................................... iv Abstrak ........................................................................................................ v Kata Pengantar ............................................................................................ vi Daftar isi....................................................................................................... viii Daftar gambar ............................................................................................. xii Daftar tabel ..................................................................................................xv Daftar Lampiran ..........................................................................................xvi Daftar Istiah .................................................................................................xvii
BAB I
PENDAHULUAN
1.1. Latar Belakang ................................................................................ 1 1.2. Perumusan Masalah......................................................................... 3 1.3. Pembatasan Masalah ....................................................................... 4 1.4. Tujuan Penelitian............................................................................. 4 1.5. Manfaat Penelitian .......................................................................... 5 1.6. Metodologi Penelitian ..................................................................... 5 1.7. Sistematika Penulisan ..................................................................... 6
viii
BAB II LANDASAN TEORI 2.1. Penerapan ..................................................................................... 8 2.2. Framework ................................................................................... 8 2.2.1. Zend Framework ................................................................ 9 2.2.2. CakePHP ............................................................................ 9 2.2.3. Ruby on Rails ..................................................................... 10 2.2.4.Codeigniter Framework ...................................................... 11 2.3. Model View Controller (MVC).................................................... 12 2.4.1. Model.................................................................................. 13 2.4.2. View.................................................................................... 13 2.4.2. Controller............................................................................ 13 2.4. Pengembangan .............................................................................14 2.5. Konsep Sistem Informasi .............................................................14 2.6.1. Pengertian Sistem ..............................................................15 2.6.2. Pengertian Informasi .........................................................15 2.6.3. Pengertian Sistem Informasi .............................................15 2.6.4. Komponen Sistem Informasi ............................................16 2.6. Sidang Keliling ............................................................................ 17 2.7. Object Oriented Analysis and Design (OOAD)............................ 17 2.8. Unified Modelling Language (UML) ........................................... 19 2.9. PHP .............................................................................................. 23 2.10.1.Definisi PHP ..................................................................... 23
ix
2.10.2. Kelebihan PHP ................................................................. 24 2.10.3. Kekurangan PHP .............................................................. 25 2.10. MySQL ......................................................................................... 25 2.11. XAMPP Server ............................................................................ 26 2.12. Studi Sejenis ................................................................................. 26
BAB III METODOLOGI PENELITIAN 3.1. Tempat dan Waktu Penelitian....................................................... 29 3.2. Metode Pengumpulan Data .......................................................... 29 3.2.1. Observasi .......................................................................... 29 3.2.2. Wawancara ....................................................................... 30 3.3. Metode Pengembangan Sistem .................................................... 30 3.3.1. Pemilihan Motode Object Oriented Analysis and Design 30 3.4.
BAB IV ANALISIS DAN PERANCANGAN 4.1. Sekilas Tentang Badan Peradilan Agama Jakarta......................... 36 4.1.1. Sejarah .............................................................................. 36 4.1.2. Visi dan Misi .................................................................... 39 4.1.2.1. Visi dan Misi Mahkamah Agung......................... 39 4.1.2.2Visi dan Misi Direktorat Jendral Peradilan Agama 39 4.1.2.3.Visi dan Misi Peradilann Agama ......................... 40 4.1.3. Struktur Organisasi .......................................................... 40 4.2. Object-Oriented Analysis ............................................................. 42
x
4.2.1. Alur Kerja Sistem Berjalan............................................... 42 4.2.2. Identifikasi Masalah ......................................................... 43 4.2.3. Uraian Singkat Sistem yang Diusulkan ........................... 45 4.2.4. Perancangan Use-case Diagram........................................47 4.3. Object-Oriented Design................................................................ 54 4.3.1. Perancangan Activity Diagram.......................................... 54 4.3.2. Perancangan Sequence Diagram.......................................64 4.3.3. Perancangan Class Diagram..............................................71 4.3.4. Spesifikasi Basis Data.......................................................72 4.3.5. Kamus Data........................................................................74 4.3.6. Perancangan User Interface .............................................. 75 4.4. Implementsi .................................................................................. 77 4.4.1. Bahasa pemrograman dan Komponen ............................. 77 4.4.2. Struktur File ..................................................................... 78 4.4.3. Alur Kerja Codeigniter Framework ................................. 78 4.5.
BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan .................................................................................. 90 5.2. Saran ............................................................................................. 92 DAFTAR PUSTAKA ................................................................................ 93 LAMPIRAN
xi
DAFTAR ISTILAH Activity diagram
: menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal,
decision yang mungkin terjadi, dan
bagaimana mereka berakhir. Admin
: Orang yang memeberikan pertanyaan kepada User Registrar untuk menganalisis status pengguna secara individual dan permasalahan yang ada, serta untuk membuat himpunan statistik.
Authentication: proses dalam rangka validasi user pada saat memasuki sistem. Nama dan password dari user dicek melalui proses yang mengecek
langsung
ke
daftar
mereka
yang
diberikan hak untuk memasuki sistem tersebut. Sifat mengetahui bahwa data yang diterima adalah sama dengan data yang dikirim dan bahwa pengirim yang mengklaim adalah benar-benar pengirim sebenarnya. Cache : Memori yang memegang data terbaru yang diakses, yang dirancang untuk mempercepat akses berikutnya ke data yang sama
xvii
Class diagram : sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Codeigniter
: Sebuah PHP framework yang berbasis MVC.
Component diagram : menggambarkan struktur dan hubungan antar komponen piranti
lunak,
termasuk
ketergantungan
(dependency) di antaranya. Database
: Sekumpulan file yang saling terkait dan membentuk suatu bangun data. Database minimal terdiri dari satu file yang cukup
komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisik. Filtering
: Dalam konteks Web, merupakan proses pemindahan atau pengeditan content secara dinamis untuk tujuan pemeriksaan.
xviii
Flowchart
: Diagram yang menunjukan alur data melalui program atau sistem penanganan informasi dan operasi-operasi yang dikenakan pada data pada titik-titik yang penting di sepanjang jalur.
Form rendering Framework
: Fungsi untuk membuat sebuah form.
: dalam sistem berorientasi objek, merupakan kumpulan class yang melambangkan bentuk abstrak untuk pemecahan sejumlah masalah yang berhubungan.
MVC : Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk. Open source : Perintah-perintah program atau bahasa pemrograman yang tersedia secara gratis berikut dengan kode-kode dari bahasa pemrograman yang digunakan dan untuk digunakan oleh kalangan luas. Boleh dimodifikasi dan digunakan oleh siapa saja. Query : Suatu nama yang diberikan kepada string untuk digunakan oleh bahasa pemrograman,
yang
dimanfaatkan
untuk
pengaksesan database. Pengakses dapat mengases data yang diperlukan untuk mendapatkan informasi. xix
Dengan adanya Query ini, merupakan kemudahan bagi
suatu
bahasa
pemrograman
terhadap
kompatibilitas akses terhadap database tersebut. Query ini suatu extracting data dari suatu database dan menampilkannya untuk {pengolahan} lebih lanjut Rapid Aplication Development
: sebuah model proses perkembangan software sekuensial
linier
yang
menekankan
siklus
perkembangan yang sangat cepat. Rapid Prototype
: Pembentukan model kerja modul perangkat lunak untuk menunjukkan kelayakan fungsi. Prototipe yang kemudian disempurnakan untuk dimasukkan ke dalam produk akhir.
Reporting engine Routing
: fungsi untuk membentuk sebuah laporan berformat file office
: Jalur dari satu host ke host lainnya sehingga terjadi komunikasi dan pertukaran informasi antar komputer.
Ruby on Rails : framework yang menggunakan bahasa pemrograman ruby yang menggunakan pendekatan Model View Controller (MVC).
xx
Sequence diagram
: menggambarkan interaksi antar objek di dalam dan di sekitar sistem
(termasuk
pengguna,
display,
dan
sebagainya) berupa message yang digambarkan terhadap waktu SQL Injection : sebuah teknik untuk merubah database server melalui aplikasi client. Statechart diagram
: menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima.
Unified Modelling Language : notasi diagram untuk menggambarkan artefak pada Object-Oriented Analysis and Design (OOAD). Use Case Diagram
: menggambarkan fungsionalitas yang diharapkan dari sebuah sistem.
User
: Pengguna. Biasanya ditujukan kepada pengguna suatu sistem yang umumnya adalah manusia. Misalnya pengguna komputer.
User Interface : Perantara yang disediakan untuk user, misalnya interaksi dari mesin komputer ke layar monitor, sehingga seorang user dapat mengetahui apa yang terjadi pada sistem yang digunakannya.
xxi
Validasi
: Operasi pemeriksaan data untuk untuk memastikan data tersebut adalah benar.
web based
: sebuah sistem yang berbasiskan web sehingga bisa di akses mealui web browser
XSS
: suatu cara memasukan code/script HTML kedalam suatu web site dan dijalankan melalui browser di client.
xxii
DAFTAR GAMBAR Halaman Gambar 2.1 Interaksi MVC 10............................................................................ 11 Gambar 2.2 Struktur Direktori Codeigniter........................................................ 12 Gambar 2.3. Contoh Use-case Diagram.............................................................. 19 Gambar 2.4. Contoh Class Diagram................................................................... 20 Gambar 2.5 Contoh Activity diagram................................................................. 21 Gambar 4.1 Struktur Organisasi Badan Peradilan Agama.................................. 40 Gambar 4.2. Struktur Organisasi Pengadilan Tinggi Agama.............................. 41 Gambar 4.3. Struktur Organisasi Pengadilan Agama......................................... 41 Gambar 4.4. Flowchart Sistem yang sedang berjalan......................................... 43 Gambar 4.5. Flowchart Sistem yang ditawarkan................................................ 46 Gambar 4.6. Use Case Sistem yang ditawarkan................................................. 49 Gambar 4.7. Activity diagram Login................................................................... 55 Gambar 4.8. Activity diagram input PTA........................................................... 55 Gambar 4.9. Activity diagram edit PTA.............................................................. 56 Gambar 4.10. Activity diagram delete PTA........................................................ 57 Gambar 4.11. Activity diagram view PTA.......................................................... 57 Gambar 4.12. Activity diagram input PA ........................................................... 58 Gambar 4.13. Activity diagram edit PA.............................................................. 58 Gambar 4.14. Activity diagram delete PA.......................................................... 59 Gambar 4.15. Activity diagram view PA............................................................ 59 Gambar 4.16. Activity diagram input sidang...................................................... 60
xii
Gambar 4.17. Activity diagram edit sidang......................................................... 60 Gambar 4.18. Activity diagram delete sidang..................................................... 61 Gambar 4.19. Activity diagram view sidang....................................................... 62 Gambar 4.20. Activity diagram search data sidang............................................ 62 Gambar 4.21. Activity diagram report data sidang............................................. 63 Gambar 4.22. Activity diagram view system log...................................................63 Gambar 4.23. Sequence diagram login............................................................... 64 Gambar 4.24. Sequence diagram input............................................................... 65 Gambar 4.25. Sequence diagram edit ................................................................ 66 Gambar 4.26. Sequence diagram delete.............................................................. 67 Gambar 4.27. Sequence diagram vew PTA........................................................ 68 Gambar 4.28. Sequence diagram vew PA........................................................... 68 Gambar 4.29. Sequence diagram vew sidang...................................................... 69 Gambar 4.30. Sequence diagram search sidang................................................... 69 Gambar 4.31. Sequence diagram report sidang................................................... 70 Gambar 4.32. Sequence diagram view system log............................................... 71 Gambar 4.33. Class diagram................................................................................ 71 Gambar 4.34. Perancangan halaman login........................................................... 75 Gambar 4.35. Perancangan halaman input data PTA.......................................... 76 Gambar 4.36. Perancangan halaman input data PA............................................. 76 Gambar 4.37. Perancangan halaman input data sidang........................................ 76 Gambar 4.38. Perancangan halaman view data sidang........................................ 77 Gambar 4.39. Alur kerja framework codeigniter................................................. 78
xiii
DAFTAR TABEL Halaman Tabel 4.1. Kamus data sistem informasi sidang keliling.................................... 87 Tabel 4.2 Hasil Pengujian Mandiri .................................................................... 99 Tabel 4.3 Pengujian Lapangan.......................................................................... 101
xii
BAB I PENDAHULUAN
1.1.
Latar Belakang Dunia pemrograman saat ini, baik pemrograman desktop maupun web based, sudah semakin marak pengerjaannya dengan menggunakan framework. Framework memang dikembangkan untuk mempermudah dalam developing suatu aplikasi. Selain itu, dengan framework, waktu yang dihabiskan untuk membangun sebuah aplikasi dapat dikurangi secara signifikan (David Upton, 2007). CI (codeigniter) Framework merupakan sebuah framework berbasis PHP yang mengorganisasi file menjadi 3 (tiga) kelompok, yaitu model yang merupakan kelompok file yang mengatur konfigurasi database, view yang merupakan kelompok file yang mengatur tampilan, dan controler yang merupakan kelompok file yang menghubungkan file-file model dengan filefile view.(Thomas Myer, 2008) Dalam suatu institusi pemerintah yang memimpin institusi dibawahnya yang tersebar diseluruh Indonesia, sering terjadi kesulitan dalam pengumpulan informasi dari institusi yang lebih rendah yang tersebar diseluruh indonesia. Kesulitan yang dialami misalnya terjadi perbedaan struktur form laporan sehingga institusi pusat yang menerimanya sulit dalam pengorganisasian data yang diterima. Semua itu terjadi karena form laporan dibuat dengan cara yang berbeda disetiap daerah.
1
2
Untuk mencegah hal itu terjadi dan memudahkan institusi pemerintah yang berada di daerah yang memberikan laporan maupun institusi pemerintah yang berada di pemerintahan pusat yang menerima laporan tersebut, maka pengembangan sistem dalam hal pengorganisasian laporan dinilai perlu untuk dilakukan. Adanya sistem seperti ini otomatis akan membantu setiap institusi baik yang mengirim maupun yang menerima laporan, serta memudahkan mencari laporan - laporan yang terdahulu. Oleh karena itu, penulis ingin mencoba membangun sebuah aplikasi yang dapat mengorganisir data laporan dengan
menggunakan
CI
(codeigniter)
framework,
karena
dengan
menggunakan CI (codeigniter) framework, pengembangan aplikasi ini dapat berjalan lebih cepat. Selain itu aplikasi akan menjadi lebih stabil dalam mengorganisir data yang banyak dan tampilan sesuai keinginan kita karena aplikasi ini berbasis web. Objek penelitian yang diambil oleh penulis adalah Badan Peradilan Agama, mengingat institusi tersebut memimpin Pengadilan Tinggi Agama yang berada di tingkat propinsi dan Pengadilan Agama yang berada ditingkat kabupaten diseluruh Indonesia. Pada tahun 2009 ini Badan Peradilan Agama sedang mencanangkan program “justice for the poor” dimana pihak pengadilan mendatangi orang yang mendaftar ke pegadlian dan tidak mampu datang ke pengadilan karena jauh dari tempat pengadilan, sidang seperti itu disebut dengan sidang keliing. Mengingat program ini baru dibuat maka belum ada sistem untuk mengumpulan laporan sidang keliling dari berbagai daerah ke pemerintah pusat. Hal inilah yang mendorong penulis untuk
3
melakukan penelitian “PENERAPAN FRAMEWORK CI (CODEIGNITER) DALAM
PENGEMBANGAN
SISTEM
INFORMASI
SIDANG
KELILING” dengan studi Kasus pada “Badan Peradilan Agama”. Nantinya, aplikasi ini diharapkan dapat memudahkan pengadilan agama diberbagai daerah dalam pelaporan pelaksanaan sidang keliling dan pencarian laporan sidang keliling yang telah terdahulu.
1.2.
Perumusan Masalah Berdasarkan penjabaran tersebut, penulis mengidentifikasikan masalah yang saat ini dihadapi adalah : 1. Belum adanya format laporan yang valid sehingga setiap daerah memberikan format laporan yang berbeda. 2. Pengiriman laporan melalui pos ataupun e-mail sehingga kurang terdistribusi dengan baik. 3. Pekerjaan pengorganisasian laporan sidang keliling masih dilakukan secara manual. 4. Akan munculnya kesulitan pencarian data laporan apabila data yang terkumpul sudah banyak. Sehingga penulis merumuskan bahwa permasalahan yang akan diselesaikan dengan penelitian ini adalah : Bagaimana menggorganisasikan data laporan sidang keliling dengan menggunakan CI (Codeigniter) Framework ?
4
1.3.
Pembatasan Masalah Dalam perancangan sistem informasi sidang keliling ini, penulis membatasi masalah sebagai berikut : 1. Aplikasi ini hanya untuk intern Badan Peradilan Agama bukan untuk umum. 2. Analisis dan perancangan aplikasi berbasis web yang dapat mengakses informasi dari basis data tersebut kepada user. 3. Perancangan aplikasi sistem informasi sidang keliling berbasis web yang dapat mempermudah pencarian terhadap sidang tertentu. 4. Dalam melakukan perancangan aplikasi, penulis menggunakan Unified Modelling Language (UML) sebagai tools-nya. 5. Dalam implementasinya, penulis menggunakan CI Framework sebagai framework-nya, database yang digunakan adalah mysql, dan aplikasi dijalankan di web badilag.net. Sedangkan untuk reporting engine, penulis menggunakan dompdf.
1.4.
Tujuan Penelitian Tujuan yang ingin dicapai oleh penulis dari penelitian ini adalah : 1. Merancang sebuah aplikasi sistem informasi sidang keliling untuk mendistribusikan dan mengorganisasikan data laporan sidang keliling. 2. Merancang aplikasi sistem informasi sidang keliling sehingga pemasukan data dapat dilakukan secara otomatis ke dalam database melalui media web.
5
3. Merancang aplikasi sistem informasi sidang keliling yang dapat memudahkan pencarian serta pengorganisasian data. 1.5.
Manfaat Penelitian 1.5.1. Bagi Badan Peradilan Agama Manfaat yang dapat dipetik oleh Badan Peradilan Agama dari penelitian ini antara lain : 1. Pengorganisasian data sidang keliling dalam bentuk basis data. 2. Dapat mempermudah pihak badilag dalam mengorganisir data sidang keliling. 3. Dapat mempermudah pihak badilag dalam pencarian maupun perubahan data sidang keliling. 1.5.2. Bagi Pengadilan Agama Manfaat yang dapat diambil oleh dosen dari adanya sistem informasi sidang keliling ini antara lain : 1. Dapat mempermudah pihak pengadilan agama dalam memasukkan data sidang keliling 2. Dapat mempermudah pihak pengadilan agama dalam pencarian data sidang keliling.
1.6.
Metodologi Penelitian
1.6.1. Metode Pengumpulan Data Pada metode pengumpulan data ini penulis melakukan studi lapangan yang terdiri dari observasi dan wawancara.
6
Observasi dan wawancara dilakukan ke Badan Peradilan Agama Jakarta untuk mengumpulkan data mengenai proses yang terjadi dan sistem yang sedang berjalan di Badan Peradilan Agama Jakarta. 1.6.2. Metode Pengembangan Sistem Proses
pengembangan
sistem
informasi
sidang
keliling
menggunakan OOAD (Object Oriented Analysis and Design) yang terdiri dari metode analisis dan metode perancangan. (Adi Nugroho, 2005). Alat bantu pemodelan sistem yang digunakan adalah Unified Modelling Language (UML).
1.7.
Sistematika Penulisan Dalam skripsi ini, penulis menjabarkan penelitian dalam Perancangan Sistem Informasi Sidang Keliling ini dalam 5 (lima) Bab, yaitu :
BAB I
PENDAHULUAN Bab ini berisi pengantar berupa latar belakang dilakukannya penelitian, perumusan masalah, pembatasan masalah, tujuan, serta manfaat yang dapat diambil dari penelitian ini.
BAB II
LANDASAN TEORI Bab ini berisi pembahasan teori-teori yang digunakan sebagai panduan dasar dalam pengembangan sistem ini.
7
BAB III
METODOLOGI PENELITIAN Bab ini berisi metodologi penelitian yang digunakan serta langkah-langkah yang digunakan terkait dengan penelitian yang dilakukan.
BAB IV
ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi analisis terhadap kebutuhan sistem, serta implementasi pengembangannya secara konkrit.
BAB V
KESIMPULAN DAN SARAN Bab ini merupakan bab penutup yang berisi kesimpulan serta saran yang dapat membantu pengembangan sistem informasi ini di masa yang akan datang.
BAB II LANDASAN TEORI 2.1. Penerapan Berdasarkan definisi yang diberikan oleh Kamus Besar Bahasa Indonesia (KBBI), penerapan, yang berasal dari kata dasar terap, berarti: proses, cara, perbuatan menerapkan. (Pusat Bahasa Departemen Pendidikan Nasional, 2008). Jadi, penerapan adalah sebuah cara untuk melakukan sesuatu berdasarkan aturan atau metode tertentu. Dalam konteks ini, aturan yang akan dijadikan
acuan adalah
Codeigniter
Framework. Mengenai
Codeigniter Framework, akan dijelaskan pada bagian berikutnya.
2.2. Framework Framework dalam sistem berorientasi objek, merupakan kumpulan class yang melambangkan bentuk abstrak untuk pemecahan sejumlah masalah yang berhubungan.(Denis Howe, 1995). Framework dalam dunia komputer digunakan sebagai sebuah acuan utama berupa kerangka program yang bersifat global, yang dapat disesuaikan
dengan
keinginan
penggunanya.
Framework
yang
dikembangkan saat ini telah mencakup berbagai macam bahasa pemrograman. Pada pemrograman web, framework telah dikembangkan untuk bahasa pemrograman antara lain PHP, dan Java. Untuk PHP, framework yang banyak digunakan misalnya Zend Framework yang
8
9
dikembangkan oleh Zend Technologies, CodeIgniter yang dikembangkan oleh Ellislab, Inc., dan Seagull Framework yang memiliki lisensi dibawah BSD. Sebuah framework selain menyediakan lingkungan pengembangan sendiri juga menyediakan berbagai macam fungsi siap pakai yang bisa kita gunakan dalam pembuatan website. 2.2.1. Zend Framework Zend framework merupakan sebuah open source framework yang berorientasi objek. Zend framework berjalan di bawah PHP 5 dan memiliki lisensi new BSD. Struktur komponen dari zend framework sangat unik, setiap komponennya bisa didesain dengan sedikit dependensi
dengan
komponen
lainnya.
Arsitektur
tersebut
memungkinkan pengembang untuk memakai komponen itu sendirisendiri.(Morgan, 2005) Komponen zend framework menawarkan implementasi MVC dengan performa tinggi, abstraksi basis data yang mudah digunakan, dan form komponen seperti HTML form rendering, validasi dan filtering. 2.2.2. CakePHP CakePHP merupakan sebuah rapid development framework yang gratis dan sumber terbuka untuk PHP. CakePHP merupakan struktur pondasi bagi programer untuk membuat aplikasi web. Tujuan
10
utamanya adalah mempermudah programer bekerja secara terstruktur dan cepat tanpa kehilangan fleksibilitas. CakePHP membuang proses monoton dalam pengembangan aplikasi web. CakePHP menyediakan semua alat bantu yang diperlukan untuk memulai tugas coding yang perlu diselesaikan: yaitu logika aplikasi. Daripada membuat sesuatu yang baru setiap memulai proyek baru, Anda bisa meninjau unduhan CakePHP dan mulai fokus kepada logik aplikasi yang hendak dibangun. (Rampersad, 2009) 2.2.3. Ruby on Rails Ruby diciptakan oleh Yukihiro “matz” Matsumoto. Ruby merupakan penggabungan dari bahasa-bahasa pemrograman lainnya seperti Perl, Smalltalk, Eiffel, dan Lisp. Inti dari bahasa pemrograman Ruby yaitu semua objek. Setiap informasi dan kode dapat diberi property dan action. Dalam pemrograman berorientasi objek setiap pemanggilan property dan action dilakukan melalui metode. Ruby on Rails merupakan Ruby-based framework yang menggunakan pendekatan Model View Controller (MVC). Jika ingin membangun suatu website dengan menggunakan Ruby, maka dibutuhkan Rails. Rails merupakan salah satu framework Ruby yang paling populer sekarang ini. Oleh karena itu dinamakan Ruby on Rails. Dilihat dari namanya sering ada salah pengertian bahwa bukan Ruby
11
yang digunakan pada Rails tetapi Rails yang digunakan pada Ruby.( Rønn Jensen, 2006) 2.2.4. CodeIgniter Framework Codeigniter adalah aplikasi open source dan juga merupakan salah satu PHP framework yang berbasiskan pada metode MVC (Model, Controller, dan View) (Thomas Myer, 2008). Maksud dari MVC ini sendiri adalah memisahkan 3 hal pokok (basis data, tampilan situs web, dan logika aplikasi) di dalam pembuatan suatu situs web ke dalam 3 bagian, yaitu bagian model untuk basis data, bagian view untuk tampilan situs web, dan bagian controller untuk logika aplikasi. Codeigniter dikembangkan oleh Rick Ellis, dengan versi awal yang dirilis pertama kali pada tanggal 28 Februari 2006. Dari tahun itulah hingga sekarang, telah muncul banyak versi codeigniter yang terus berkembang dengan penambahan fitur yang baru dari versi sebelumnya. Untuk versi terbaru dari codeigniter adalah versi 1.7.2.
Gambar 2.1 Interaksi MVC
12
Gambar 2.2 Struktur Direktori Codeigniter
2.3. Model View Controller (MVC) Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk. Secara sederhana konsep MVC terdiri dari tiga bagian yaitu bagian Model, bagian View dan bagian Controller. Didalam website dinamis setidaknya terdiri dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi dan cara menampilkan halaman wesite. 3 hal tersebut direpresentasikan dengan MVC yaitu model untuk basis data, view untuk cara menampilkan halaman website dan controller untuk logika aplikasi.
13
2.3.1. Model Merepresentasikan struktur data dari website yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks atau file xml. Biasanya didalam model akan berisi class dan fungsi untuk mengambil, melakukan update dan menghapus data website. Karena sebuah website biasanya memnggunakan basis data dalam menyimpan data maka bagian Model biasanya akan berhubungan dengan perintah-perintah query SQL. Model khusus digunakan untuk melakukan koneksi ke basis data oleh karena itu logika-logika pemrograman yang berada didalam model juga harus yang berhubungan dengan basis data. 2.3.2. View Merupakan informasi yang ditampilkan kepada pengunjung website Sebisa mungkin didalam View tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View bisa dibilang adalah halaman website yang dibuat menggunakan HTMLdengan bantuan CSS atau JavaScript. Didalam view tidak ada kode untuk melakukan koneksi ke basisdata. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller. 2.3.3. Controller Controller merupakan penghubung antara Model dan View. Di dalam Controller inilah terdapat class dan fungsi-fungsi yang memproses permintaan dari View kedalam struktur data didalam Model.
14
Controller juga tidak berisi kode untuk mengakses basis data. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan error, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input. 2.4. Pengembangan Definisi pengembangan menurut Kamus Besar Bahasa Indonesia adalah berasal dari kata dasar kembang, yakni suatu proses, cara, perbuatan menjadikan maju (baik, sempurna, dan sebagainya). Jadi, pengembangan merupakan sebuah tindakan untuk mengubah sesuatu menjadi lebih baik. (Pusat Bahasa Departemen Pendidikan Nasional, 2008). Dalam hal ini, pengembangan berarti sebuah tindakan, proses, dan cara untuk menjadikan distribusi data persidangan menjadi lebih baik, yaitu dari sistem yang masih manual menjadi sistem yang telah terkomputerisasi.
2.5. Konsep Sistem Informasi Sistem informasi bertujuan untuk menyajikan informasi guna mendukung fungsi operasional, manajemen, dan pengambil keputusan dalam sebuah organisasi.
15
2.5.1. Pengertian Sistem Sistem adalah sekelompok komponen yang saling berhubungan, yang bekerja bersama-sama untuk mencapai tujuan dengan menerima input dan menghasilkan output melalui suatu proses transformasi yang terorganisir. (O’Brien, 2006) 2.5.2. Pengertian Informasi Informasi adalah data yang telah terorganisasi, dengan demikian data tersebut memiliki arti dan nilai bagi si penerima. (Turban, 2005) 2.5.3. Pengertian Sistem Informasi Sistem
informasi
merupakan
suatu
proses
pengumpulan,
pengolahan, penyimpanan, dan penyebaran informasi untuk tujuan tertentu, kebanyakan sistem informasi sudah terkomputerisasi. (Turban, 2005) Sistem Informasi adalah suatu pengaturan dari orang-orang, data, proses, dan teknologi informasi yang saling berinteraksi untuk mengumpulkan, memproses, menyimpan, dan menyediakan informasi yang dibutuhkan. (Whitten, 2004) Sistem informasi adalah komponen-komponen yang saling berhubungan dan bekerjasama untuk mengumpulkan, memproses, menyimpan, dan mendistribusikan informasi untuk mendukung pengambilan keputusan, koordinasi, kontrol, anlisis, dan visualisasi dalam suatu organisasi. (Laudon, 2004)
16
Berdasarkan definisi di atas dapat disimpulkan bahwa, sistem informasi adalah sekumpulan komponen yang saling berinteraksi dimana
data
dikumpulkan,
diproses
menjadi
informasi
dan
didistribusikan kepada pemakai untuk mendukung pengambilan keputusan dan mencapai sasaran. 2.5.4. Komponen Sistem Informasi Dalam suatu sistem informasi terdapat komponen-komponen seperti (Abdul Kadir, 2003) : 1. Perangkat keras (Hardware): mencangkup peranti-peranti fisik seperti komputer dan printer. 2. Perangkat lunak (software) atau program: sekumpulan instruksi yang memungkinkan perangkat keras untuk dapat memproses data. 3. Prosedur (orang): sekumpulan aturan yang dipakai untuk mewujudkan pemrosesan data dan pembangkitan keluaran yang dikehendaki. 4. Orang:
semua
pihak
yang
bertanggung
jawab
dalam
pengembangan sistem informasi, pemrosesan, dan penggunaan keluaran sistem informasi. 5. Basis data (database): sekumpulan tabel, hubungan, dan lain-lain yang berkaitan dengan penyimpanan data. 6. Jaringan kompueter dan komunikasi data: sistem penghubung yang memungkinkan sumber (resources) dipakai secara bersama atau diakses oleh sejumlah pemakai.
17
2.6. Sidang Keliling Berdasarkan definisi yang diberikan oleh Kamus Besar Bahasa Indonesia (KBBI), sidang berarti pertemuan untuk membicarakan sesuatu. Sidang pengadilan berarti proses memeriksa dan mengadili perkara pidana di dalam ruang sidang pengadilan di bawah pimpinan hakim tunggal atau majelis hakim. (Pusat Bahasa Departemen Pendidikan Nasional, 2008). Menurut Drs. H. Wahyu Widiana, MA selaku Direktur Jendral Badan Peradilan Agama, Sidang Keliling adalah sidang yang dilakukan pengadilan agama dimana pelaksanaannya tidak di ruang sidang tetapi di tempat terdekat dengan tempat tinggal peserta sidang seperti di kantor desa atau kantor kecamatan. Sidang keliling ini diadakan dalam rangka program “justice for the poor”, yaitu program untuk masyarakat yang kurang mampu dan tinggal jauh dari pengadilan agama.
2.7. Object Oriented Analysis and Design (OOAD) OOAD adalah metode analisis yang memerikasa requirements dari sudut pandang kelas kelas dan objek yang ditemui dalam ruang lingkup permasalahan yang mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem. OOAD merupakan cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas.
18
OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaiut analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode analisis yang memerika requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem) dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Sedangkan OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.
2.8. Unified modeling Language (UML) UML didefinisikan sebagai notasi diagram untuk menggambarkan artefak pada Object-Oriented Analysis and Design (OOAD). Dengan UML
kita
bisa
memvisuallisasikan,
menetapkan,
membuat
dan
mendokumentasikan aplikasi software kita. Saat sistem software menjadi lebih besar dan lebih kompleks, kita perlu untuk mengatur kekompleksan tersebut dan dalam arti menyederhanakannya sehingga kita bisa lebih mengertinya. (Sri Dharwiyanti, 2003) Dengan menggunakan diagram-diagram UML, developer dapat melakukan pemrograman kode yang biasa dikenal dengan sebutan forward engineering, yaitu membuat kode dari model-model UML. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk
19
memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). (Sri Dharwiyanti, 2003) Diagram-diagram yang terdapat di dalam pemodelan UML adalah sebagai berikut : 1.
Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan
dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah
use case merepresentasikan sebuah
interaksi antara aktor dengan sistem.
Gambar 2.3 Contoh Use-case Diagram 2.
Class Diagram Class diagram adalah sebuah spesifikasi yang jika diinstansiasi
akan menghasilkan sebuah objek dan merupakan inti dari pengembangan
20
dan desain berorientasi objek. Class diagram menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan
tersebut (metoda/fungsi).
Class diagram
menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class diagram memiliki tiga area pokok : 1. Nama (dan stereotype) 2. Atribut 3. Metoda
Gambar 2.4 Contoh Class Diagram
3.
Statechart Diagram Statechart diagram menggambarkan transisi dan perubahan
keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).
21
4.
Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam
sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
Gambar 2.5 Contoh Activity diagram
Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. 5.
Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam
dan di sekitar sistem (termasuk pengguna,
display, dan sebagainya)
22
berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang menjadi trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. 6.
Collaboration Diagram Collaboration diagram juga menggambarkan interaksi antar objek
seperti sequence diagram, tetapi lebih menekankan pada peran masingmasing objek dan bukan pada waktu penyampaian message. Setiap message memiliki sequence number, di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama. 7.
Component Diagram Component diagram menggambarkan struktur dan hubungan antar
komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun run time. Umumnya komponen terbentuk dari beberapa class dan/atau package, tapi dapat juga dari komponen-komponen yang lebih kecil.
komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisik. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement
dapat
juga
didefinisikan
dalam
diagram
ini.
(Sri
Dharwiyanti, 2003)
2.9. PHP 2.9.1. Definisi PHP PHP adalah sebuah bahasa pemrograman yang didesain agar dapat disisipkan dengan mudah ke halaman HTML. PHP memberikan solusi sangat murah (karena gratis digunakan) dan dapat berjalan di berbagai jenis platform. Pada awalnya memang PHP berjalan di sistem UNIX dan variannya, namun kini dapat berjalan dengan lancar di lingkungan sistem operasi Windows. Suatu nilai tambah yang luar biasa karena proses pengembangan program berbasis web dapat dilakukan lintas sistem operasi. Dengan luasnya cakupan sistem operasi yang mampu menjalankan PHP dan ditambah begitu lengkapnya function yang dimilikinya (tersedia
24
lebih dari 400 function di PHP yang sangat berguna) tidak heran jika PHP semakin menjadi tren di kalangan programmer web. Penemu bahasa pemrograman ini adalah Rasmus Lerdorf, yang bermula dari keinginan sederhana Lerdorf untuk mempunyai alat bantu dalam memonitor pengunjung yang melihat situs web pribadinya. Inilah sebabnya pada awal pengembangannya, PHP merupakan singkatan dari Personal Home Page tools, sebelum akhirnya menjadi Hypertext Preprocessor. 2.9.2. Kelebihan PHP Di antara maraknya pemrograman server web saat ini, adalah ASP yang berkembang menjadi ASP .NET, JSP, CFML, dan PHP. Jika dibandingkan di antara 3 terbesar pemrograman server web di atas. Terdapat kelebihan dari PHP itu sendiri, yaitu : 1.
PHP merupakan sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya. Tidak seperti halnya bahasa pemrograman aplikasi seperti Visual Basic dan Sebagainya.
2.
PHP dapat berjalan pada web server yang dirilis oleh Microsoft, seperti IIS atau PWS juga pada Apache yang bersifat open source.
3.
Karena sifatnya yang open source, maka perubahan dan perkembangan interpreter pada PHP lebih cepat dan mudah, karena banyak milis-milis dan developer yang siap membantu pengembangannya.
25
4.
Jika dilihat dari segi pemahaman, PHP memiliki referensi yang begitu banyak sehingga sangat mudah untuk dipahami.
5.
PHP dapat berjalan pada 3 operating system, yaitu: Linux, Unux, dan Windows, dan juga dapat dijalankan secara runtime pada saat consule.
2.9.3. Kekurangan PHP Seperti pemrograman aplikasi atau web lainnya, PHP pun memiliki beberapa kelemahan, di antaranya : 1.
Tidak ideal untuk pengembangan skala besar.
2.
Tidak memiliki sistem pemrograman berorientasi objek yang sesungguhnya (sampai versi 4 ini). Namun pada versi PHP 5 sudah dilengkapi OOP yang sesungguhnya.
2.10. MySQL MySQL adalah sistem manajemen database yang bersifat open source. MySQL adalah pasangan serasi dari PHP. MySQL dibuat dan dikembangkan oleh MySQL AB yang berada di Swedia. MySQL merupakan sistem manajemen database yang bersifat relasional. Artinya data-data yang dikelola dalam database akan diletakkan pada beberapa table yang terpisah sehingga manipulasi data akan menjadi lebih cepat.
26
MySQL dapat digunakan untuk mengelola database mulai dari yang kecil sampai dengan yang sangat besar. MySQL juga dapat menjalankan perintah-perintah Structured Query Language (SQL) untuk mengelola database-database relasional yang ada di dalamnya. 2.11. XAMPP Server XAMPP Server adalah perangkat lunak gratis, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program untuk menjankan fungsinya sebagai server yang berdiri sendiri, yang terdiri atas program Apache HTTP Server, MySQL database, dan penterjemah bahasa yang ditulis dengan bahasa pemrogramaan PHP dan Perl. XAMPP adalah nama yang merupakan singkatan dari X berbagai sistem operasi (linux, mac, windows), Apache, MySQL, PHP, PERL. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat mampu melayani halaman dinamis. (Kai Seidler, 2008).
2.12. Studi Sejenis Di bawah ini akan dipaparkan beberapa penelitian yang pernah ada yang berkaitan dengan codeigniter framework yang penulis gunakan sebagai bahan perbandingan. Dhika Rizki Anbiya (2009) dalam tugas akhirnya yang berjudul “Pengembangan Aplikasi Social Networking Pada Program Studi TI UIN” menerapkan codeigniter dalam memangun aplikasi social
27
networking seperti yang sudah ada yaitu facebook. Metodologi penelitian yang digunakan dalam studi ini adalah Rapid Application Development. Dalam tugas akhir I Wayan Agus Suryanegara (2009) yang berjudul “Analisis Perbandingan Penggunaan Framework Codeigniter Dan CakePHP Untuk Aplikasi WEB” dilakukan analisis perbandingan terhadap framework Codeigniter dan CakePHP yang diimplementasikan dalam pembangunan aplikasi web CMS (Content Management System) berdasarkan beberapa parameter pengujian, yaitu: arsitektur, ketersediaan fitur (authentication, validation, pagination, template system) dan performansi framework. Hasil yang didapatkan pada studi ini adalah dengan pemanfaatan association data mapping pattern pada arsitektur dan penyediaan fitur framework yang lebih baik untuk mendukung pembangunan aplikasi web, menjadikan CakePHP lebih mudah untuk digunakan oleh web developer daripada Codeigniter. Namun performansi aplikasi web yang dihasilkan dengan penggunaan CakePHP tidak lebih efisien dibandingkan dengan Codeigniter. Dalam tugas akhir Riyan Fardian (2009) yang berjudul “Perbandingan Pencegahan SQL Injection Menggunakan Regular Expression ( Regex) Pada Aplikasi Web Berbasis ASP .NET 2.0 Dan PHP 5.0 CodeIgniter” memberikan salah satu solusi berupa modul aplikasi pencegahan SQL Injection dengan nama srex. Srex diintegrasikan pada aplikasi web berbasis PHP 5.0 Code Igniter dan ASP .NET 2.0 dengan berdasarkan rules yang ada pada regex. Terdapat dua bentuk pengujian
28
yaitu pengujian serangan SQL Injection terhadap kedua aplikasi web tanpa disisipkan modul srex dan pengujian serangan SQL Injection terhadap kedua aplikasi web dengan disisipkan modul srex. Hasil analisis berupa keefektifitasan ditanamkannya modul srex pada aplikasi web yang telah memiliki framework serta perbandingan tingkat keamanan PHP 5.0 CodeIgniter dan ASP .NET 2.0 dalam mempertahankan diri terhadap serangan SQL Injection. Sedangkan dalam tugas akhir Devin Meidya Fonda (2009) yang berjudul “Analisis Perbandingan Cross-Site Scripting Pada Framework PHP CodeIgniter dan Ruby on Rails Analysis Comparison of Cross-Site Scripting on PHP CodeIgniter and Ruby on Rails Frameworks” mengimplementasikan aplikasi Review Buku Novel yang dibangun dengan menggunakan framework dan bahasa pemrograman yang berbeda yaitu PHP CodeIgniter dan Ruby on Rails, dimana didalamnya terdapat form yang berfungsi sebagai media untuk melakukan pengujian terhadap Cross- Site Scripting. Nantinya akan dilakukan pengujian beberapa vektor XSS terhadap aplikasi web yang masing-masing dibangun menggunakan PHP CodeIgniter dan Ruby on Rails. Sehingga akhirnya dapat diketahui perbandingan tingkat keamanan PHP CodeIgniter dan Ruby on Rails dalam hal vulnerabilitas terhadap Cross-Site Scripting.
BAB III METODOLOGI PENELITIAN
3.1.
Tempat dan Waktu Penelitian Penelitian yang penulis lakukan bertempat di Badan Peradilan Agama Jakarta mulai dari bulan Oktober 2009 sampai bulan Januari 2010
3.2.
Metode Pengumpulan Data Pada metode pengumpulan data ini penulis melakukan observasi dan wawancara. 3.2.1. Observasi Guna mengumpulkan informasi mengenai kebutuhan sistem (system requirements) penulis melakukan pengumpulan data dengan cara observasi di tempat penelitian. Penulis terjun langsung ke lapangan untuk mengetahui sistem yang sedang berjalan saat ini. Hal ini perlu dilakukan agar penulis dapat melakukan analisis terhadap sistem yang telah berjalan serta menentukan rancangan sistem baru yang akan dibangun agar tetap sinkron dengan sistem yang sudah ada. Selain system requirements, pada langkah ini penulis juga mengumpulkan data-data yang diperlukan untuk pembangunan aplikasi. Data yang dimaksud adalah sample data sidang keliling yang sudah ada sebelumnya.
29
30
3.2.2. Wawancara Pada metode wawancara ini, penulis melakukan wawancara terhadap Drs. H. Wahyu Widiana, MA selaku Direktur Jendral Badan Peradilan Agama dan Bapak Hirpan Hilmi selaku staff IT di Badan Peradilan Agama Jakarta unutk memperoleh data-data yang diperlukan dalam pembuatan sistem.
3.3.
Metode Pengembangan Sistem
3.3.1. Pemilihan Motode Object Oriented Analysis and Design (OOAD) Metode pengembangan sistem yang penulis gunakan dalam penelitian ini adalah metode Object Oriented Analysis and Design (OOAD). Pemilihan metode penelitian Object Oriented Analysis and Design (OOAD) ini dilakukan karena tiga alasan utama (Adi Nugroho, 2005) 1. Model analisis pada analisis dengan metode terstruktur tidak cukup formal
untuk
diimplementasikan
seacra
langsung
ke
bahasa
pemrograman. 2. Sistem nyata harus diadaptasi ke lingkungan dimana system kelak akan diimplementasi. Dalam hal ini, perlu dilakukan modifikasimodifikasi model anlisis ke beberapa faktor yang berbeda seperti kebutuhan kinerja, perangkat keras dan perangakat lunak system, DBMS (Database Management System). Dan bahasa pemrograman yang akan digunakan.
31
3. Hasil analisis dapat divalidasi menggunakan perancangan berorientasi objek. Pada tahap ini, kita dapat memverifikasi apakah hasil dari analisis sesuai untuk membangun sistem dan kemudian, jika tidak sesuai, kita kembali secara iteratif ke tahap analisis, serta membuat perubahan yang perlu pada model analisis.
Metode OOAD dapat dibagi ke dalam dua tahapan utama yaitu : a. Object-oriented analysis. Pada tahap ini dilakukan pengidentifikasian tujuan-tujuan dari aplikasi atau sistem dan dilakukan pengidentifikasian syaarat-syarat atau
kebutuhan
informasi
bagi
sistem
yang
diperoleh
dari
pengidentifikasian tujuan-tujuan tersebut. Menjelaskan masalahmasalah yang terjadi pada peradilan agama khususnya dalam pelaporan data sidang keliling, membuat flowchart sistem yang sedang berjalan dan sistem yang akan dibuat. b. Object-oriented design. Pada tahap ini dilakukan perancangan terhadap proses-proses yang akan terjadi di dalam sistem, meliputi: •
Perancangan Aplikasi Pada tahap perancangan ini, penulis menggunakan Unified Modelling Language (UML) sebagai alat bantu (tools).
•
Perancangan database
32
Pada tahap perancangan ini, penulis menggunakan Entity Relationship Diagram (ERD) sebagai alat bantu (tools). •
Perancangan Tampilan Pada tahap ini, penulis melakukan perancangan terhadap user interface dari aplikasi ini. Perancangan yang dilakukan meliputi halaman-halaman yang ada di dalam sistem.
3.3.2.1. Kelebihan dan Kekurangan Object Oriented Analysis and Design (OOAD) a. Kelebihan 1. Dibandingkan dengan metode terstruktur, OOAD lebih mudah digunakan dalam pembangunan system. 2. Dibandingkan dengan terstruktur, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD. 3. Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem. 4. Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformulasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi. 5. Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan
33
keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain. 6. Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks. 7. Encapsulation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga. 8. OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek. 9. Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara. b. Kekurangan 1. Pada awal desain OOAD, system mungkin akan sangat simple. 2. Pada OOAD lebih fockus pada coding dibandingkan dengan terstruktur.
34
3. Pada OOAD tidak menekankan pada kinerja team seperti pada terstruktur. 4. Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem. 5. Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis. (Supriyanto, 2008)
3.4.
Pemilihan Codeigniter Framework Framework yang penulis gunakan dalam penelitian ini adalah Codeigniter framework.. Pemilihan codeigniter framework ini dilakukan setelah melihat dari studi sejenis yang telah dijelaskan pada bab 2 membuktikan bahwa codeigniter framework lebih unggul dibanding framework lain. Selain itu codeigniter framework juga memiliki beberapa kelebihan dibandingkan dengan framework lain yaitu : 1. Gratis. CodeIgniter dilisensikan dibawah lisensi Apache/BSD style open source license, ini berarti kita dapat menggunakannya sesuai dengan keinginan kita. 2. Berjalan di PHP versi 4 dan 5 Sekarang ini PHP sudah mencapai versi ke 5, meskipun begitu masih banyak orang yang tetap menggunakan PHP versi 4, oleh
35
sebab itu CodeIgniter dikembangkan agar tetap kompatibel dengan PHP versi 4 dan dapat dijalankan pada PHP versi 5. 3. Ringan dan Cepat Secara default CodeIgniter hanya berjalan dengan me-load beberapa pustaka saja, dengan demikian hanya membutuhkan resource yang sedikit sehingga ringan dan cepat dijalankan. Pustaka-pustaka lain yang nantinya akan digunakan bisa di load sesuai dengan kebutuhan. 4. Menggunakan MVC CodeIgniter menggunakan lingkungan pengembangan dengan metode Model View Controller (MVC) yang membedakan antara logika dan presentasi/tampilan, sehingga tugas bisa lebih mudah dipecah-pecah. 5. Dokumentasi Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi benar-benar dikembangkan atau tidak bisa dilihat dari dokumentasinya. Adanya dokumentasi sangat memudahkan bagi pemula dalam mempelajari lingkungan pengembangan website dengan CodeIgniter. 6. Pustaka / library yang lengkap CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk berbagai kebutuhan, misalnya saja koneksi database, email, session dan cookies, keamanan, manipulasi gambar dan banyak lagi.
BAB IV ANALISIS DAN PERANCANGAN SISTEM
4.1.
Sekilas Tentang Badan Peradilan Agama 4.1.1. Sejarah Perjalanan kehidupan pengadilan agama mengalami pasang surut. Adakalanya wewenang dan kekuasaan yang dimilikinya sesuai dengan nilai-nilai Islam dan kenyataan yang ada dalam masyarakat. Pada kesempatan lain kekuasaan dan wewenangnya dibatasi dengan berbagai kebijakan dan peraturan perundangundangan, bahkan seringkali mengalami berbagai rekayasa dari penguasa dan golongan masyarakat tertentu agar posisi pengadilan agama melemah. Dengan keluarnya Undang -undang Nomor 14 Tahun 1970 tentang Ketentuan-ketentuan Pokok Kekuasaan Kehakiman, maka kedudukan Peradilan Agama mulai Nampak jelas dalam sistem peradilan di Indonesia. Undang-undang ini menegaskan prinsipprinsip sebagai berikut : Pertama, Peradilan dilakukan "Demi Keadilan Berdasarkan ketuhanan Yang Maha Esa". Kedua, Kekuasaan
kehakiman
dilakukan
oleh
pengadilan
dalam
lingkungan Peradilan Umum, Peradilan Agama, Peradilan Militer dan Peradilan Tata Usaha Negara. Ketiga, Mahkamah Agung adalah Pengadilan Negara Tertinggi. Keempat, Badan-badan yang
36
37
melaksanakan peradilan secara organisatoris, administratif, dan finansial
ada
di
bawah
masing-masing
departemen
yang
bersangkutan. Kelima, susunan kekuasaan serta acara dari badan peradilan
itu
masing-masing
diatur
dalam
undang-undang
tersendiri. Hal ini dengan sendirinya memberikan landasan yang kokoh bagi kemandirian peradilan agama, dan memberikan status yang sarna dengan peradilan-peradilan lainnya di Indonesia. Lahirnya Undang-undang Nomor 1 Tahun 1974 tentang Perkawinan memperkokoh keberadaan pengadilan agama. Di dalam undang-undang ini tidak ada ketentuan yang bertentangan dengan ajaran Islam. Pasa12 ayat (1) undang-undang ini semakin memperteguh
pelaksanaan
ajaran
Islam
(Hukum
Islam).
Suasana cerah kembali mewarnai perkembangan peradilan agama di Indonesia dengan keluarnya Undang- undang Nomor 7 Tahun 1989 tentang Peradilan Agama yang telah memberikan landasan untuk mewujudkan peradilan agama yang mandiri, sederajat dan memantapkan serta mensejajarkan kedudukan peradilan agama dengan lingkungan peradilan lainnya. Dati uraian singkat tentang sejarah perkembangan peradilan agama tersebut di atas dapat disimpulkan bahwa peradilan agama bercita-cita untuk dapat memberikan pengayoman dan pelayanan hukum kepada masyarakat. Agar pengayoman hukum dan
38
pelayanan hukum tersebut dapat terselenggara dengan baik, diperlukan perangkat sebagai berikut : •
Kelembagaan Peradilan Agama yang mandiri sebagaimana lingkungan peradilan yang lain - yang secara nyata - didukung dengan sarana dan prasarana serta tatalaksana yang memadai dan memanfaatkan
perkembangan
ilmu
pengetahuan
dan
teknologi. •
Materi hukum Hukum Islam sebagai hukum materiil peradilan agama yang dituangkan dalam ketentuan perundang-undangan yang jelas. Dimulai dengan Kompilasi Hukum Islam, yang selanjutnya perlu disempurnakan dan dikembangkan, kemudian hukum mengenai shadaqah dan baitul mal segera dibentuk. Demikian pula dengan hukum formil peradilan agama perlu dikembangkan.
•
Personil Dalam melaksanakan tugas kedinasan ia sebagai aparat penegak hukum yang profesional, netral (tidak memihak) dan sebagai anggota masvarakat ia orang yang menguasai masalah keislaman, yang menjadi panutan dan pemersatu masyarakat sekelilingnya serta punya integritas sebagai seorang muslim.
39
4.1.2. Visi dan Misi 4.1.2.1.
Visi dan Misi Mahkamah agung
• Visi Mewujudkan supremasi hukum melalui Kekuasaan Kehakiman yang mandiri, efektif, efisien serta mendapat kepercayaan publik, professional dalam memberi pelayanan hukum yang berkualitas, etis terjangkau dan biaya rendah bagi masyarakat serta mampu menjawab panggilan pelayanan publik. •
Misi 1. Mewujudkan rasa keadilan sesuai dengan undang-undang dan peraturanserta keadilan masyarakat. 2. Mewujudkan peradilan yang mandiri dan independendari campur tangan pihak lain. 3. Memperbaiki akses pelayanan di bidang peradilan kepada masyarakat. 4. Memperbaiki kualitas input internal pada proses peradilan. 5. Mewujudkan institusi peradilan yang efektif, efisien, martabat dan dihormati. 6. Melaksanakan kekuasaan kehakimanyang mandiri, tidak memihak dan transparan.
4.1.2.2. •
Visi dan Misi Direktorat Jendral Peradilan Agama
Visi
Terwujudnya pelayanan peradilan agama yang prima.
40
•
Misi 1. Meningkatkan profesionalisme aparatur peradilan agama. 2. Mewujudkan manajemen peradilan agama yang modern.
4.1.2.3. Visi dan Misi Peradilan Agama •
Visi Terwujudnya putusan yang adil dan berwibawa sehingga
kehidupan masyarakat menjadi tenang, tertib dan damai, dibawah lindungan Allah SWT. •
Misi Menerima, memeriksa, mengadili dan menyelesaikan perkara-
perkara yang diajukan oleh umat islam Indonesia dibidang perkawinan, waris, wasiat, hibah, wakaf, zakat, infaq, sodaqoh dan ekonomi syari’ah secara cepat, sederhana dan biaya ringan.
4.1.3. Struktur Organisasi
Gambar 4.1 Struktur Organisasi Badan Peradilan Agama
Kelompok Fungsional Kepaniteraan : Panitera Pemgganti Juru sita / Juru sita Pengganti Gambar 4.3 Struktur Organisasi Pengadilan Agama
Sub Bagian Umum
42
4.2.
Object-Oriented Analysis 4.2.1. Alur Kerja Sistem Berjalan Berdasarkan pengamatan dan observasi yang dilakukan oleh penulis, pengorganisasian data sidang keliling yang terjadi di Badan Peradilan Agama masih dilakukan secara manual. Pada permulaan sistem, pihak Badilag (Badan Peradilan Agama) memberikan format baku yang berisi form isian kepada setiap Pengadilan Agama di setiap daerah di Indonesia melalui pos ataupun email, yang terdiri atas field-field data tentang persidangan keliling yang harus diisi. Lalu setiap bulannya, semua pengadilan agama diharuskan untuk mengisi dan kemudian mengirimkannya kembali melalui pos ataupun email kepada pihak Badilag untuk digunakan sebagai arsip. Kelemahan yang ada pada sistem yang sedang berjalan ini adalah jika melalui pos maka akan memakan banyak waktu sedangkan jika melalui email dapat terjadi berbagai kesalahan yang dilakukan oleh user (human error). Misalnya: 1. Terjadi kesalahan saat memasukkan alamat email sehingga data tidak tersampaikan ke tujuan. 2. File yang terkirim tidak sempurna / corrupt. 3. Terkadang pihak Pengadilan Agama tidak mengisi form sesuai format yang diberikan.
43
4. Memungkinkan terjadinya duplikasi file yang disebabkan tidak adanya system log jika adanya updating data.
Adapun gambaran alur kerja sistem yang sedang berjalan di Badan Peradilan Agama adalah sebagai berikut: Pihak Badilag
Pihak Pengadilan Agama
Gambar 4.4 Flowchart Sistem yang sedang berjalan
4.2.2. Identifikasi Masalah Berdasarkan uraian singkat serta flowchart sistem yang sedang berjalan di Badan Peradilan Agama, maka dapat diidentifikasikan kelemahan-kelemahan dari sistem yang sedang berjalan ini, yaitu :
44
a. Informasi mengenai sidang keliling yang dikirim lewat pos memakan banyak waktu dalam pengirimannya. b. Informasi mengenai sidang keliling yang diarsipkan sangat rentan terhadap resiko kehilangan data yang dapat disebabkan oleh print-out yang hilang, rusak, basah, maupun robek. c. Dari sisi ke-praktisannya, untuk mencari data sidang keiling tertentu, baik pihak pengadilan agama ataupun pihak badan peradilan agama harus mencari pada tumpukan data sidang yang telah diarsipkan. Hal ini tentu saja dapat menyulitkan. d. Dari sisi kerapihan, meskipun pihak peradilan agama telah memberikan format yang baku, namun tetap saja bisa terjadi perbedaan-perbedaan dalam penulisan laporan data sidang tersebut, yang mungkin saja disebabkan oleh perbedaan perangkat lunak yang digunakan dalam pembuatan dokumen sidang keliling tersebut. e. Pihak peradilan agama akan kerepotan dalam mengumpulkan serta mengorganisir data sidang keliling tersebut. f. Jika ada perubahan data sehingga data sebelumnya harus di update, maka akan terjadi duplikasi file disebabkan tidak adanya sistem log.
45
4.2.3. Uraian Singkat Sistem yang Diusulkan Untuk menjawab permasalahan-permasalahan yang dihadapi dalam pengimplementasian sistem yang masih manual tersebut, penulis
bermaksud
mengusulkan
sebuah
sistem
untuk
pengorganisasian data sidang keliling yang berbasis komputer. Pada pengembangannya, penulis melakukan studi kasus pada Badan Peradilan Agama. Usulan sistem yang dimaksud adalah sebagai berikut : 1.
Staff IT Badan Peradilan Agama di dalam sistem ini berperan sebagai admin yang bertugas mengisi data-data semua Pengadilan Tinggi Agama dan Pengadilan Agama, sehingga nantinya data sidang keliling dapat diisi sesuai dengan Pengadilan Agama yang melaksanakannya. Admin juga membuka sistem log untuk mengetahui kapan terakhir kali informasi sidang di update / modified.
2.
Setiap Pengadilan Agama memiliki user account yang sama dan memiliki kewenangan untuk mengisi dan mengubah data sidang keliling.
3.
Data sidang keliing yang telah berada di dalam sistem juga dapat dibuat reportnya dalam format PDF, yang dapat dilakukan oleh Badan Peradilan Agama maupun Pengadilan Agama, sehingga ketika dilakukan pencetakan pada laporan sidang keliling, akan didapatkan format yang seragam.
46
Gambar flowchart dari sistem yang penulis usulkan ini adalah sebagai berikut : Admin Badan Peradilan agama
User Pengadilan Agama
Gambar 4.5 Flowchart sistem yang ditawarkan
47
4.2.4. Perancangan Use Case Diagram Use Case Diagram digunakan untuk menjelaskan apa yang akan dilakukan oleh sistem serta aktor-aktor yang akan berhubungan dengan proses-proses yang ada pada sistem. a.
Penentuan Aktor Pada sistem yang diusulkan ini, penulis memisahkan Aktor menjadi 2 (dua) tingkatan, yaitu admin, dan user. Wewenang masing-masing aktor tersebut adalah sebagai berikut : 1. Admin Admin merupakan aktor yang menempati tingkatan tertinggi pada sistem. Admin memiliki wewenang yaitu : 1. Memasukkan data Pengadilan Tinggi Agama dan Pengadilan Agama. 2. Melakukan perubahan data Pengadilan Tinggi Agama dan Pengadilan Agama. 3. Melakukan
penghapusan
data
Pengadilan
Tinggi
Agama dan Pengadilan Agama. 4. Memasukkan data Sidang Keliling pada Pengadilan Agama tertentu. 5. Melakukan perubahan data Sidang Keliling pada Pengadilan Agama tertentu. 6. Melakukan penghapusan data Sidang Keliling pada Pengadilan Agama tertentu.
48
7. Melihat
(browsing)
data
Sidang
Keliling
pada
Pengadilan Agama tertentu. yang telah tersimpan. 8. Melihat sistem log untuk mengetahui kapan terakhir kali informasi sidang di update / modified. 9. Melakukan export atau menyimpan laporan yang berisikan informasi sidang keliling pada Pengadilan Agama tertentu dalam bentuk PDF. 2. User Tingkatan dosen merupakan tingkatan yang berada di bawah admin pada sistem. Dosen memiliki wewenang yaitu : 1. Memasukkan data Sidang Keliling pada Pengadilan Agama tertentu. 2. Melakukan perubahan data Sidang Keliling pada Pengadilan Agama tertentu. 3. Melihat
(browsing)
data
Sidang
Keliling
pada
Pengadilan Agama tertentu. yang telah tersimpan. 4. Melakukan export atau menyimpan laporan yang berisikan informasi sidang keliling pada Pengadilan Agama tertentu dalam bentuk PDF.
49
Gambar 4.6 Use Case Sistem yang ditawarkan
b. Use Case Scenario Use case scenario merupakan penjelasan yang lebih terperinci mengenai masing-masing use case yang terjadi di dalam sistem. a.Input data Pengadilan Tinggi Agama Nama Use case Aktor yang terlibat
Input data Pengadilan Tinggi Agama Admin
50
Trigger Pre condition Action Post condition
Admin ingin menambahkan Pengadilan Tinggi Agama Login sebagai admin Pengadilan Tinggi Agama belum terdaftar Controller/admin Save data Pengadilan Tinggi Agama Pengadilan Tinggi Agama baru masuk ke dalam database
b. Edit data Pengadilan Tinggi Agama Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Edit data Pengadilan Tinggi Agama Admin Dibutuhkan perubahan data Pengadilan Tinggi Agama Login sebagai admin Pengadilan Tinggi Agama telah terdaftar Controller/admin Update data Pengadilan Tinggi Agama Data yang telah diubah tersimpan ke dalam database
c.Lihat data Pengadilan Tinggi Agama Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Lihat data Pengadilan Tinggi Agama Admin, User Aktor membutuhkan data Pengadilan Tinggi Agama. Pengadilan Tinggi Agama telah ada di dalam database Controller/admin/view_pta Data Pengadilan Tinggi Agama ditampilkan
d. Hapus Pengadilan Tinggi Agama
51
Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Hapus Pengadilan Tinggi Agama Admin Pengadilan Tinggi Agama sudah tidak aktif Login sebagai admin Pengadilan Tinggi Agama telah terdaftar Controller/admin Delete Pengadilan Tinggi Agama Pengadilan Tinggi Agama terhapus dari database
e.Input data Pengadilan Agama Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Input data Pengadilan Agama Admin Admin ingin menambahkan Pengadilan Agama Login sebagai admin Pengadilan Agama belum terdaftar Controller/admin Save data Pengadilan Agama Pengadilan Agama baru masuk ke dalam database
f. Edit data Pengadilan Agama Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Edit data Pengadilan Agama Admin Dibutuhkan perubahan data Pengadilan Agama Login sebagai admin Pengadilan Agama telah terdaftar Controller/admin Update data Pengadilan Agama Data yang telah diubah tersimpan ke dalam database
52
g. Lihat data Pengadilan Agama Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Lihat data Pengadilan Agama Admin, User Aktor membutuhkan data Pengadilan Agama. Pengadilan Agama telah ada di dalam database Controller/admin/view_pta Data Pengadilan Agama ditampilkan
h. Hapus Pengadilan Agama Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Hapus Pengadilan Agama Admin Pengadilan Agama sudah tidak aktif Login sebagai admin Pengadilan Agama telah terdaftar Controller/admin Delete Pengadilan Agama Pengadilan Agama terhapus dari database
i. Input data Sidang Keliling Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Input data Sidang Keliling Admin, User Admin ingin menambahkan Sidang Keliling Login sebagai admin Sidang Keliling belum terdaftar Controller/admin Save data Sidang Keliling Sidang Keliling baru masuk ke dalam database
53
j. Edit data Sidang Keliling Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Edit data Sidang Keliling Admin, User Dibutuhkan perubahan data Sidang Keliling Login sebagai admin Sidang Keliling telah terdaftar Controller/admin Update data Sidang Keliling Data yang telah diubah tersimpan ke dalam database
k. Lihat data Sidang Keliling Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Lihat data Sidang Keliling Admin, User Aktor membutuhkan data Sidang Keliling. Sidang Keliling telah ada di dalam database Controller/admin/view_pta Data Sidang Keliling ditampilkan
l. Hapus Sidang Keliling Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Hapus Sidang Keliling Admin Sidang Keliling sudah tidak aktif Login sebagai admin Sidang Keliling telah terdaftar Controller/admin Delete Sidang Keliling Sidang Keliling terhapus dari database
m. Export data Nama Use case
Export data
54
Aktor yang terlibat Trigger Pre condition Action Post condition
Admin, User Aktor membutuhkan dokumen tersimpan Sidang Keliling telah ada di dalam database Export data File report data tampil
n. Lihat Sistem log Nama Use case Aktor yang terlibat Trigger Pre condition Action Post condition
Lihat Sistem Log Admin Aktor ingin mengetahui kapan terakhir kali data di update / modified Login sebagai admin Data Sidang Keliling telah di update / modified Controller/admin View system log Data system log tampil
4.3. Object-Oriented Design 4.3.1. Perancangan Activity Diagram Activity Diagram merupakan diagram yang menggambarkan berbagai aliran aktivitas yang terjadi di dalam sistem, yang meliputi bagaimana sebuah proses dapat terjadi, kemungkinan-kemungkinan yang bisa terjadi, serta bagaimana akhir dari proses tersebut. Mengingat adanya proses-proses yang memiliki kesamaan alur, maka pada sistem ini, penulis hanya memaparkan 13 (dua belas) macam Activity diagram yang mungkin terjadi yaitu : \
55
1. Activity Diagram untuk Login
Gambar 4.7 Activity Diagram Login Activity diagram ini merupakan rancangan rangkaian proses yang akan terjadi ketika aktor memilih untuk melakukan login. Ketika sisem dibuka, maka akan langsung menampilkan form login. Aktor lalu dapat memasukkan Username dan password yang sesuai. Setelah itu sistem akan melakukan
pengecekan
terhadap
Username
dan
password
yang
dimasukkan oleh aktor meliputi kesesuaian Username dengan password, serta mengecek level aktor apakah level admin atau level user. Jika Username dan password yang dimasukkan sesuai dengan yang ada di database, maka login Username tersebut sukses dan aktor tersebut memiliki kewenangan sesuai dengan levelnya di dalam sistem. 2. Activity Diagram untuk Pemasukan Data PTA
Gambar 4.8 Activity Diagram input PTA
56
Activity diagram diatas merupakan rancangan proses yang akan terjadi ketika admin akan memasukkan data Pengadilan Tinggi Agama baru, meliputi nama PTA, alamat, nomer telepon, email dan website. Setelah mengisi form dan menekan tombol simpan maka data akan tersimpan di dalam database.
3. Activity Diagram untuk Perubahan Data PTA
Gambar 4.9 Activity Diagram Edit PTA
Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin akan mengubah data PTA yang telah ada di dalam database. Dari list PTA yang ada, jika admin menekan tombol edit, maka sistem akan menahan id_pta untuk dijadikan parameter dan akan metampilkan form isian untuk mengubah data yang ada. Setelah admin mengubah data di form tersebut dan menekan tombol update, sistem akan meng-update data PTA tersebut.
57
4. Activity Diagram untuk Penghapusan Data PTA
Gambar 4.10 Activity Diagram Delete PTA Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin akan menghapus data PTA yang telah ada di dalam database. Dari list PTA yang ada, jika admin menekan tombol hapus, maka sistem akan menahan id_pta untuk dijadikan parameter dan akan metampilkan pop-up konfirmasi untuk menghapus data yang ada di database. 5.
Activity Diagram untuk Melihat Detail Data PTA
Gambar 4.11 Activity Diagram View PTA Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin atau user akan melihat detail data PTA yang telah ada di dalam database. Dari halaman home setelah login, jika admin atau user memilih menu view data PTA, maka akan ditampilkan detail data PTA yang ada di database.
58
6. Activity Diagram untuk Pemasukan Data PA
Gambar 4.12 Activity Diagram Input PA Activity diagram diatas merupakan rancangan proses yang akan terjadi ketika admin akan memasukkan data Pengadilan Agama baru, meliputi nama PTA diatasnya, nama PA, alamat, nomer telepon, email dan website. Setelah mengisi form dan menekan tombol simpan maka data akan tersimpan di dalam database. 7. Activity Diagram untuk Perubahan Data PA
Gambar 4.13 Activity Diagram Edit PA Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin akan mengubah data PA yang telah ada di dalam database. Dari list PA yang ada, jika admin menekan tombol edit, maka sistem akan menahan id_pa untuk dijadikan parameter dan
59
akan metampilkan form isian untuk mengubah data yang ada. Setelah admin mengubah data di form tersebut dan menekan tombol update, sistem akan meng-update data PTA tersebut. 8. Activity Diagram untuk Penghapusan Data PA
Gambar 4.14 Activity Diagram Delete PA Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin akan menghapus data PA yang telah ada di dalam database. Dari list PA yang ada, jika admin menekan tombol hapus, maka sistem akan menahan id_pa untuk dijadikan parameter dan akan metampilkan pop-up konfirmasi untuk menghapus data yang ada di database. 9. Activity Diagram untuk Melihat Detail Data PA
Gambar 4.15 Activity Diagram View PA
60
Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin atau user akan melihat detail data PA yang telah ada di dalam database. Dari halaman home setelah login, jika admin atau user memilih menu view data PA, kemudian memilih PTA yang berada diatas PA yang akan dipilih, maka akan ditampilkan detail data PA yang ada di database.
10. Activity Diagram untuk Pemasukan Data Sidang
Gambar 4.16 Activity Diagram Input Sidang Activity diagram diatas merupakan rancangan proses yang akan terjadi ketika admin akan memasukkan data Sidang keliling baru. Setelah mengisi form dan menekan tombol simpan maka data akan tersimpan di dalam database. 11. Activity Diagram untuk Perubahan Data Sidang
Gambar 4.17 Activity Diagram Edit Sidang
61
Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin akan mengubah data sidang yang telah ada di dalam database. Dari list sidang yang ada, jika admin atau user menekan tombol edit, maka sistem akan menahan id_sidang untuk dijadikan parameter dan akan metampilkan form isian untuk mengubah data yang ada. Setelah admin mengubah data di form tersebut dan menekan tombol update, sistem akan meng-update data sidang tersebut.
12. Activity Diagram untuk Penghapusan Data Sidang
Gambar 4.18 Activity Diagram Delete Sidang Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin akan menghapus data Sidang yang telah ada di dalam database. Dari list Sidang yang ada, jika admin menekan tombol hapus, maka sistem akan menahan id_sidang untuk dijadikan parameter dan akan metampilkan pop-up konfirmasi untuk menghapus data yang ada di database.
62
13. Activity Diagram untuk Menampilkan Detail Sidang
Gambar 4.19 Activity Diagram View Sidang
Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin atau user akan melihat detail data Sidang yang telah ada di dalam database. Dari halaman home setelah login, jika admin atau user memilih menu view data Sidang, kemudian memilih PA pelaksana sidang dan tahun peaksanaan, maka akan ditampilkan detail data sidang yang ada di database.
14.
Activity Diagram untuk Melakukan Pencarian Data Sidang
Gambar 4.20 Activity Diagram Search Data Sidang
63
Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin atau user akan melakukan pencarian data Sidang yang telah ada di dalam database. Setelah login, admin atau user memasukan keyword pada form pencarian di header halaman, maka sistem akan menampilkan hasil pencarian sesuai dengan keyword.
15. Activity Diagram untuk Report Data Sidang
Gambar 4.21 Activity Diagram Report Data Sidang
Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin atau user akan melakukan report data Sidang yang telah ada di dalam database. Setelah login, admin atau user masuk halaman view data sidang, kemudian jika admin atau user menekan tombol report maka data sidang akan tersimpan di komputer dalam format pdf
16. Activity Diagram untuk View System Log.
64
Gambar 4.22 Activity Diagram View System Log
Activity diagram ini merupakan rangkaian proses yang akan dilakukan oleh sistem ketika admin melihat system log yang telah ada di dalam database. Dari halaman home setelah login, jika admin memilih menu view system log, maka akan ditampilkan detail data sidang yang terakhir kali di modified yang ada di database.
4.3.2. Perancangan Sequence Diagram 1.
Sequence Diagram untuk Login
Gambar 4.23 Sequence Diagram Login Untuk melakukan login, seorang admin harus memasukkan username dan password. Jika username dan/atau password yang dimasukkan salah, maka sistem akan menampilkan error page, serta konfirmasi kesalahan kepada aktor. Namun, ketika masukan username dan password yang dimasukkan sudah benar, maka sistem akan memberikan konfirmasi bahwa proses login telah berhasil.
65
2. Sequence Diagram untuk Pemasukan Data PTA / PA / Sidang
Gambar 4.24 Sequence Diagram Input
Pada saat aktor akan melakukan pemasukan data PTA, PA atau Sidang baru, maka aktor harus melakukan login terlebih dahulu dengan username dan password aktor yang tepat. Setelah mendapat konfirmasi bahwa aktor telah berhasil login, maka aktor sudah dapat memasukkan data PTA, PA atau Sidang baru. Data-data yang dimasukkan oleh aktor ini akan divalidasi oleh sistem. Jika ternyata terdapat kesalahan masukan yang diberikan, sistem akan memberikan pemberitahuan kesalahan kepada aktor. Jika masukanmasukan yang diberikan oleh aktor sudah sesuai, maka data akan sukses tersimpan dan sistem akan memberikan konfirmasi bahwa data telah tersimpan.
66
3. Sequence Diagram untuk Perubahan Data PTA / PA / Sidang
Gambar 4.25 Sequence Diagram Edit
Untuk melakukan perubahan data PTA, PA atau Sidang, maka terlebih dahulu harus dilakukan login. Setelah login berhasil dan mendapatkan konfirmasi, kemudian aktor harus memilih menu view PTA, PA atau sidang melihat detail datanya, selanjutnya tekan tombol edit pada PTA, PA atau Sidang yang akan dirubah datanya. Setelah itu akan muncul form edit. Jika terdapat kesalahan pada saat pengisian form tersebut, maka sistem akan memberikan konfirmasi error kepada aktor sehingga aktor harus mengecek kembali masukan yang ia berikan. Setelah semua field terisi dengan benar, maka proses validasi perubahan data telah berhasil dilakukan. Sistem akan memberikan pemberitahuan bahwa perubahan data
67
telah berhasil dilakukan dan data yang diubah akan tersimpan dalam database. Meskipun proses perubahan data PTA, PA atau sidang sama, namun yang bisa merubah data PTA dan PA hanyalah aktor yang login sebagai admin.
4.
Sequence Diagram untuk Penghapusan Data PTA / PA / Sidang
Gambar 4.26 Sequence Diagram Delete
Untuk melakukan penghapusan data PTA, PA atau Sidang, maka terlebih dahulu harus dilakukan login. Setelah login berhasil dan mendapatkan konfirmasi, kemudian aktor harus memilih menu view PTA, PA atau sidang melihat detail datanya, selanjutnya tekan tombol hapus pada PTA, PA atau Sidang yang akan dihapus datanya. Setelah itu akan muncul pertanyaan untuk mengkonfirmasi penghapusan. Jika aktor menjawab “yes”, maka sistem akan menghapus data dan akan memberikan pemberitahuan bahwa penghapusan data telah berhasil
68
dilakukan. Jika menjawab “no”, maka data tidak jadi dihapus. Meskipun proses penghapusan data PTA, PA atau sidang sama, namun yang bisa menghapus data PTA dan PA hanyalah aktor yang login sebagai admin. 5. Sequence Diagram untuk View Data PTA
Gambar 4.27 Sequence Diagram View PTA
Untuk melihat detail data PTA, aktor harus login sebagai admin atau user. Selanjutnya aktor memilih menu view data PTA, maka sistem akan menampilkan semua data PTA. 6. Sequence Diagram untuk View data PA
Gambar 4.28 Sequence Diagram View PA Untuk melihat detail data PA, aktor harus login sebagai admin atau user. Selanjutnya aktor memilih menu view data PA, kemudian memilih
69
PTA yang berada diatas PA yang akan dilihat, maka sistem akan menampilkan semua data PA yang kedudukannya berada dibawah PTA yang telah dipilih. 7. Sequence Diagram untuk View Data Sidang
Gambar 4.29 Sequence Diagram View Sidang Untuk melihat detail data Sidang, aktor harus login sebagai admin atau user. Selanjutnya aktor memilih menu view data sidang, kemudian memilih PTA, maka sistem akan menampilkan list PA pelaksana sidang yang kedudukannya berada dibawah PTA yang telah dipilih. Setelah itu, pilih tahun pelaksanaan sidang, maka sistem akan menampilkan detail data sidang.
8. Sequence Diagram untuk Search Data Sidang
70
Gambar 4.30 Sequence Diagram Search Sidang
Untuk melakukan pencarian data Sidang, aktor harus login sebagai admin atau user. Selanjutnya aktor memasukan keyword pencarian pada form pencarian di bagian header halaman. Setelah aktor menekan tombol enter maka hasil pencarian berdasarkan keyword akan ditampilkan.
9.
Sequence Diagram unutk Report Data Sidang
Gambar 4.31 Sequence Diagram Report Sidang
Untuk melakukan pencarian data Sidang, aktor harus login sebagai admin atau user. Selanjutnya aktor masuk ke halaman view data sidang. Setelah aktor menekan report maka data sidang akan tersimpan di komputer dalam format pdf.
71
10. Sequence Diagram untuk View System Log
Gambar 4.32 Sequence Diagram View System Log Untuk melihat detail data sidang yang terakhir kali di modified / system log, aktor harus login sebagai admin. Selanjutnya aktor memilih menu view system log, maka sistem akan menampilkan semua data sidang yang terakhir kali di modified.
4.3.3. Perancangan Class Diagram
72
Gambar 4.33 Class diagram Pada class diagram diatas merupakan representasi dari tabel-tabel yang ada di database.
4.3.4. Spesifikasi Basis Data Spesifikasi basis data sistem informasi sidang keliling antara lain : 1. Nama file
No 1. 2. 3. 4. 5.
: Admin
Primary key
: admin_id
Foreign key
: level_id
Struktur file
:
Field admin_id level_id admin_nama admin_username admin_password
2. Nama file
Type Int Int Varchar Varchar Varchar
Field size 4 4 255 255 255
Keterangan Id admin Level admin Nama admin Username admin Password admin
: Level
Primary key
: level_id
Foreign key
:-
Struktur file
:
No Field 1. level_id 2. level_nama 3. level_keterangan
Type Int Varchar Varchar
Field size 4 255 255
Keterangan Id level Nama level Keterangan level
73
3. Nama file Primary key
: pta_id
Foreign key
:-
Struktur file
:
No 1. 2. 3. 4. 5. 6. 7. 8. 9.
Field pta_id nama_pta alamat kodepos kode_sljj no_telp no_fax website email
4. Nama file
No 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
: PTA
Type Int Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar
: pa_id
Foreign key
: pta_id
Struktur file
:
Field
Type Int Int Int Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar
Keterangan Id sidang Id PA nama PA Alamat pelaksanaan sidang Tahun perkara sidang Tanggal pelaksanaan sidang Status sidang Jumlah perkara Jarak tempat sidang Jalur transportasi Status transportasi Dasar hokum Koordinasi institusi Bentuk koordinasi Status balai sidang Status prasarana Jumlah hakim Jumlah pengacara Jumlah jaksa Jumlah sekretaris Anggaran sidang Realisasi sidang
Kamus Data (Data Dictionary) Berikut adalah tabel kamus data sistem informasi sidang keliling : Tabel 4.1 Kamus data sistem informasi sidang keliling *file admin*
4.3.6. Perancangan User Interface a. Halaman Login
LOGIN Username Password Capcha
Gambar 4.34 Perancangan halaman login
b. Halaman Input Data PTA
76
Header Menu Input Data PTA Nama PTA Alamat PTA kodepos No telp No Fax email website
Simpan
Footer
Gambar 4.35 Perancangan halaman input data PTA c. Halaman Input Data PA Header Menu Input Data PA Nama PTA Nama PA Alamat PA Class PA kodepos No telp No Fax email website Simpan
Footer
Gambar 4.36 Perancangan halaman input data PA
d. Halaman Input Data Sidang Header Menu Input Data Sidang Nama sidang Alamat sidang Tgl sidang Status sidang Jumlah perkara Jumlah hakim Jumlah Jaksa Jumlah pengacara
Simpan
Footer
Gambar 4.37 Perancangan halaman input data siding e. Halaman View Data Sidang
77
Header Menu View Data Sidang NO | Nama Sidang | Alamat sidang | Tgl sidang | Jumlah Perkara | Jumlah Hakim | | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
Footer
Gambar 4.38 Perancangan halaman view data sidang
4.4. Implementasi Pada tahap ini dilaksanakanlah implementasi dari rancanganrancangan, baik rancangan basis data, rancangan aplikasi, maupun rancangan tampilan. 4.4.1. Bahasa Pemrograman dan Komponen Bahasa pemrograman dan komponen-komponen yang digunakan dalam pengembangan aplikasi ini adalah : 1. Application Server : Apache 2.2.11 2. PHP 5.2.8 3. MySQL versi 5.1.30 4. Report Engine DomPDF 5. Chart Engine : FusionChart 6. Framework : Codeigniter 1.7.1
4.4.2. Struktur File
78
Karena aplikasi ini merupakan penerapan dari Codeigniter Framework, maka dalam penyusunan struktur file juga harus mengikuti standar baku yang dimiliki oleh Codeigniter Framework itu sendiri.
Struktur File Sidang/system/application/config Sidang/system/application/controller Sidang/system/application/model Sidang/system/application/view Sidang/system/application/library
Keterangan konfigurasi server dan database Source code logika aplikasi Source code database Source code tampilan Source code library tambahan
4.4.3. Alur Keja Codeigniter Framework Secara umum alur kerja framework codeigniter adalah seperti gambar berikut :
Gambar 4.38 Alur kerja framework codeigniter
Index.php merupakan front controller atau file yang berhubungan langsung dengan user. Saat user membuka index.php dan melakukan request, akan dicek di Router alamat yang dimasukan oleh user tersebut. Bila ada pada cache data, maka akan langsung menuju ke Caching dan kembali lagi ke user. Bila di
79
cache tidak ada maka diteruskan lagi ke Security untuk memvalidasi, menyaring dan mengamankan informasi yang dimasukan user (bila ada). Lalu dari security informasi tersebut dikirim ke Application Controller. Di Application Controller informasi dan data akan diolah. Bila diperlukan, Application Controller akan berhubungan dengan Model, Libraries, Helpers, Plugins
atau
skrip
lainnya.
Application
Controller
akan
mengirimkan respon ke View untuk ditampilkan ke user. View akan disimpan di Cache bila berikutnya melakukan request yang sama. Sehingga mempercepat proses. Setelah dicache, maka akan ditampilkan informasi kepada user. Dalam implementasinya pada sistem informasi sidang keliling dapat diuraikan sebagai berikut : a. Routing Ketika pertama kali mengakses aplikasi melalui web browser, maka halaman yang pertama dipanggil adalah halaman index.php pada folder aplikasi. Setelah itu file index.php melakukan routing ke controller yang telah di config oleh programmer pada file system/application/config/routes.php dimana isinya adalah sebagai berikut :
80
Dari code diatas, maka sistem akan menjalankan controller admin.php yang sebagian berisi sebagai berikut :
Dari code controller admin.php pada baris akhir, sistem memanggil file system/application/view/admin/login_form.php yang berisi sebagai berikut : Restricted Area » =school()? > <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv='expires' content='-1' /> <meta http-equiv= 'pragma' content='no-cache' />
81
Login
=form_open('admin/proses_login'); ?>
Username
: echo $this->validation-> username_error? >
Password
: echo $this->validation-> password_error?>
= $cap['image'] ?>
: echo $this-> validation-> captcha_error? >
=form_close();?>
Jadi secara singkat proses routing framework codeigniter yaitu ketika user mengakses aplikasi pada web browser, maka sistem akan memanggil controller yang telah di set pada file config routes. Setelah itu controller memanggil file view, jadi halaman yang tampil pada web browser adalah file view yang ditentukan controller. b. Sistem Informasi Data
82
Dalam sebuah sistem informasi tentunya ada proses create, update, delete dan view data. Pada penerapannya dengan framework codeigniter keempat proses tersebut tidak berbeda jauh karena sama-sama melibatkan controller sebagai logika sistem, model sebagai query database dan view sebagai tampilan, sehingga penulis hanya akan menjelaskan proses view data. Saat akan melakukan view data, maka user diharuskan login terlebih dahulu. Setelah login, user mengklik menu view data sidang. Pada menu view data sidang web browser mendapatkan link “index.php/admin/view_sidang”, dari link tersebut dapat dijelaskan bahwa sistem akan menuju “function view_sidang( )” yang berada dalam file controller “admin” sebagai berikut : auth->restrict(); $data['sidang'] = $this->supermodel>get_sidang($id,$thn); $this->load->view('admin/header'); $this->load-> view('admin/view_sidang',$data); $this->load->view('admin/footer'); }
}
Pada
baris
“$data['sidang']
get_sidang($id,$thn);”,
=
$this->supermodel->
fungsi get_sidang memanggil fungsi
83
get_sidang
pada
file
supermodel.php
yang
terletak
di
system/application/model/ yang isinya sebagai berikut : db->select('*'); $this->db->from('sidang'); $this->db->where('pa_id',$id); $this->db->where('tahun',$thn); return $data = $this->db->get(); } }
Pada baris code diatas melakukan query dalam sql sebagai berikut “SELECT * FROM sidang WHERE pa_id = $id AND tahun = $tahun”. Kembali lagi fungsi view_sidang pada controller admin, setelah memanggil query database dilanjutkan memanggil file view pada baris
“$this->load->view('admin/view_sidang',$data);”.
Baris tersebut memanggil fie view_sidang.php pada folder “system/application/view/admin” yang nantinya akan ditampilkan di web browser yang berisi sebagai berikut :
No
Alamat Lengkap Tempat Sidang Keliling
Mulai Tahun
Tanggal Pelaksanaan Sidang (Tahun-Bln-Tgl)
Status Sidang Keliling
Jumlah Perkara
Jarak PA dengan tempat penyelenggaraan Sidang
84
Transportasi
Dasar Hukum penyelenggaraan sidang (No.SK:Msy.Prop/Msy/PTA/PA)
Pada akhirnya user akan melihat data-data sidang keliling di web browser. c. Penerapan Keamanan Pada sisi keamanan di aplikasi ini akan diterapkan 2 metode yaitu XSS filtering dan anti SQL injection menggunakan escaping query. XSS filtering XSS adalah suatu cara memasukan code/script HTML kedalam suatu web site dan dijalankan melalui browser di client. Untuk menghindari hal tersebut maka configurasi XSS filtering pada codeigniter framework harus aktifkan. Cara mengaktifkannya adalah
dengan
merubah
baris
code
pada
application/config/config.php yang isinya : $config['global_xss_filtering'] = FALSE;
menjadi
$config['global_xss_filtering'] = TRUE;
Anti SQL Injection SQL Injection adalah sebuah teknik untuk merubah database server melalui aplikasi client. Untuk menghindarinya maka digunakannya escaping query. Dalam penerapannya di aplikasi ini akan digunakan contoh proses pengambilan data sidang saat pencarian dengan keyword.
86
function getData($keyword) { $sql = "SELECT * FROM sidang WHERE alamat_sidang like '%".$this->db-> escape_like_str($keyword)."%'"; $this->db->query($sql); return $data = $this->db->get(); }
4.5.
Pengujian Setelah selesai melakukan pengembangan, maka aplikasi ini harus
diuji coba yang bertujuan untuk mengetahui sejauh mana aplikasi ini dapat bekerja dengan baik dan apakah aplikasi ini dapat memenuhi tujuan yang ingin diperoleh sebelum diserahkan kepada end user. Pengujian dilakukan dalam 2 (dua) tahap yaitu pengujian mandiri yang dilakukan oleh penulis sekaligus pengembang aplikasi, dan pengujian lapangan yang dilakukan oleh calon pemakai aplikasi ini. 4.5.1. Pengujian Mandiri Pada tahap ini, penulis melakukakn uji coba terhadap sistem yang telah dikembangkan dengan hasil sebagai berikut : Tabel 4.2 Hasil Pengujian Mandiri No
Modul
Prasyarat
1
Tambah PTA
Login sebagai Admin
2
View PTA
Login sebagai admin, data PTA sudah ada
Hasil yang diharapkan Dapat menambahkan data PTA baru ke dalam database Dapat melihat data PTA yang ada di dalam database
Hasil uji coba OK OK
87
3
Edit PTA
4
Hapus PTA
5
Tambah PA
6
View PA
7
Edit PA
8
Hapus PA
9
Tambah Sidang
10
View Sidang
11
12
13
14
di database Login sebagai admin, data PTA sudah ada di database Login sebagai admin, data PTA sudah ada di database Login sebagai admin Login sebagai admin, data PA sudah ada di database Login sebagai admin, data PA sudah ada di database Login sebagai admin, data PA sudah ada di database Login sebagai admin atau user
Login sebagai user, data sidang sudah ada di database Edit Sidang Login sebagai admin atau user data sidang sudah ada di database Hapus Sidang Login sebagai admin, data sidang sudah ada di database Report Data Login sebagai Sidang admin, data sidang sudah ada di database Search Login sebagai DataSidang admin, data
Dapat merubah data PTA yang ada di dalam database
OK
Dapat menghapus data PTA yang ada di dalam database
OK
Dapat menambahkan data PA baru ke dalam database Dapat melihat data PA yang ada di dalam database
OK
Dapat merubah data PA yang ada di dalam database
OK
Dapat menghapus data PTA yang ada di dalam database
OK
Dapat menambahkan data Sidang baru ke dalam database
OK
Dapat melihat data Sidang yang ada di dalam database
OK
OK
Dapat merubah data Sidang OK yang ada di dalam database
Dapat menghapus data Sidang yang ada di dalam database
OK
Dapat merubah data Sidang OK yang ada di dalam database menjadi file PDF Dapat mencari data Sidang yang ada di dalam database
OK
88
15
View System Log
sidang sudah ada di database Login sebagai admin, data sidang sudah ada di database
sesuai dengan keyword Dapat melihat data sidang yang terakhir kali di modified
OK
4.5.2. Pengujian Lapangan Pada tahap ini, penulis meminta 3 (tiga) orang responden untuk melakukan uji coba terhadap aplikasi ini. Responden yang dipilih terdiri atas 1 (satu) orang Kepala Badan Peradilan Agama, 2 (dua) orang dari staff IT Badan Peradilan Agama, yang disesuaikan dengan responden yang diwawancarai pada tahap sebelumnya, yaitu pada pengumpulan data. Bukti terlampir uji coba yang dilakukan dapat dilihat pada bagian lampiran. Secara ringkas, hasil pengujian yang dapat penulis simpulkan adalah sebagai berikut : Tabel 4.3 Pengujian Lapangan No 1. 2. 3. 4. 5. 6. 7.
Pengujian Fitur aplikasi secara keseluruhan Fitur untuk Admin Fitur untuk User Tampilan Aplikasi Kestabilan Aplikasi Keamanan Aplikasi Kesesuaian dengan Kebutuhan
Penilaian Baik Baik Baik Baik Baik Baik Baik
Setelah melakukan pengujian mandiri maupun pengujian lapangan, penulis mengambil kesimpulan bahwa secara fungsional aplikasi telah berjalan sesuai dengan yang diharapkan.
BAB V KESIMPULAN DAN SARAN
Pengembangan sistem informasi Sidang Keliling dengan menggunakan Codeigniter Framework di Badan Peradilan Agama Jakarta ini setidaknya dapat mengurangi permasalahan-permasalahan yang berhubungan dengan sistem informasi dan distribusi data persidangan baik masalah yang dialami oleh pihak Pengadilan Agama maupun Badan Peradilan Agama sendiri. Setelah melakukan serangkaian penelitian, seperti yang tertera pada bab III dan Bab IV, maka pada bab ini penulis akan menguraikan kesimpulan yang dapat ditarik dari rangkaian penelitian tersebut. Selain kesimpulan, penulis juga memberikan saran yang akan bermanfaat bagi pihak-pihak yang akan melanjutkan pengembangan penelitian ini.
5.1.
Kesimpulan Dari penelitian dan tulisan yang telah penulis uraikan, maka dapat ditarik
kesimpulan sebagai berikut : 1. Aplikasi yang dikembangkan ini dapat memudahkan pihak Pengadilan Agama maupun Badan Peradilan Agama dalam mengumpulkan dan mengorganisir data persidangan. 2. Pengembangan aplikasi ini dengan menggunakan Codeigniter Framework dapat dilaksanakan sesuai dengan analisis dan perancangan yang telah dilakukan, yang juga sesuai dengan kebutuhan penggunanya.
90
91
3. UML dapat digunakan sebagai tools dalam melakukan analisis sistem informasi sidang keliling yang dibangun. 4. Proses Integrasi report, yang dibuat dengan menggunakan report engine DomPDF pada Codeigniter Framework. 5. Penggunaan Codeigniter Framework memiliki beberapa keunggulan dibanding dengan PHP tradisional diantaranya adalah •
URL nya lebih mudah dibaca atau search engine friendly
•
Performanya lebih cepat
•
Penulisan kode lebih efisien, tidak memerlukan banyak baris-baris kode.
•
Tinggkat keamanan lebih tinggi karena URL user friendly bisa menghindari remote file inclusion yang sering terjadi bila menggunakan PHP tradisional dan juga sudah terdapat konfigurasi XSS filtering untuk menghindari XSS attack.
6. Penggunaan Codeigniter Framework memiliki beberapa keunggulan dibanding dengan Framework lain diantaranya adalah •
Performanya lebih cepat
•
Konfigurasi yang sangat minim
•
Dokumentasi yang lengkap
•
Mudah dipelajari
•
Compatible dengan banyak hosting karena bisa berjalan dengan PHP 4 atau PHP 5.
92
5.2.
Saran Aplikasi ini tentu saja masih belum sempurna. Masih banyak hal yang
dapat dilakukan untuk mengembangkan aplikasi ini agar menjadi lebih baik lagi, antara lain : 1. Dengan berkembangnya teknologi seluler, penulis berharap akan ada pengembangan lanjutan untuk akses aplikasi ini melalui ponsel. 2. Pengembangan juga dapat dilakukan dengan melakukan peningkatan keamanan yang lebih baik karena aplikasi ini hanya memanfaat fungsi keamanan standar dari Codeigniter.
DAFTAR PUSTAKA
Myer, Thomas, “Professional CodeIgniter”, Wiley Publishing; 2008 Upton, David,“CodeIgniter for Rapid PHP Application Development”, Packt Publishing; 2007 Fontoura, Marcus, “UML Profile for Framework Architectures”, Addison Wesley; 2001 Dharwiyanti, Sri, “Pengantar Unified Modelling Language (UML)”, Ilmu Komputer ; 2003 Pilone,Dan, “UML 2.0 in Nutshell”, O'Reilly ; 2005 Scach, R.Stephen,“Object Oriented and Classical Software Engineering”, Mc Graw Hill ; 2005 Pressman, Roger S,”Software Engineering A Practioner’s Approach 6th edition”, Mc Graw Hill ; 2005 Sommerville,Ian, “Software Engineering 7th edition”, 2004 Sukamto, Rosa A, “Rapid Application Development (RAD), Prototyping”, 2009 Whitten J.L,Bentley L.D., & Ditmann K.C, “System Analysis and Design Method. 6th Edition”, McGraw Hill Inc ; 2004 Turban, Efraim, Rainer R.Kelly Jr., & Potter, Richard E. ,” Introduction to Information Technology. 2th Edition”. John Wiley and Sons. Inc; 2003 O’Brien, J.A., & Marakas, G.M. “Management Information Systems”, edisi ke-7. McGraw-Hill, New York; 2006
93
Laudon, Kenneth C dan Loudon, Jane P,” Essential of Management Information System : Managing the digital firm. 6th Edition”. Prentice Hall Inc;2003 Kadir, Abdul, “Pengenalan Sistem Informasi”, Penerbit Andi : 2003 Morgan, Oonagh , "Zend Announces Industry-wide PHP Collaboration Project at its Inaugural PHP Conference" :2005 Rampersad, Ryan ,"The State of CakePHP" :2009 Rønn Jensen, Jesper, "Ruby on Rails as rapid prototyping tool" :2006 Supriyanto, S.Tp, “Perbandingan Metode Terstruktur (tradisional) dan Metode Object-Oriented (OO) Pada Analisis dan Design”; 2008 Howe, Denis, http;//dictionary.reference.com/browse/framework diakses pada 14 November 2009 pukul 21.55 WIB Pusat Bahasa Departemen Pendidikan Nasional, http;//pusatbahasa.diknas.go.id/kbbi diakses pada 14 November 2009 pukul 22.15 WIB Seidler, Kai, http://en.wikipedia.org/wiki/Xampp diakses pada 14 November 2009 pukul 22.24 WIB http://id.wikipedia.org/wiki/PHP diakses pada 14 November 2009 pukul 22.32 WIB http://ellislab.com/ diakses pada 14 November 2009 pukul 22.44 WIB
94
PENGEMBANGAN SISTEM INFORMASI SIDANG KELILING DENGAN PENERAPAN CODEIGNITER FRAMEWORK (Studi kasus : Badan Peradilan Agama) Fakultas Sains dan Teknologi, Program Studi Teknik Informatika – UIN Syarif Hidayatullah Jakarta Mahasiswa Andi Mulya Indrianto e-mail : [email protected] Pembimbing 1 Khodijah Hulliyah, M.Si Pembimbing 2 Yusuf Durrachman, M.Sc., MIT e-mail : [email protected]
ABSTRACT Pengadilan agama di seluruh Indonesia kini terdapat program sidang keliling yaitu sidang yang dilakukan tidak di pengadilan namun di tempat yang terdekat dari pendaftar sidang. Setiap bulannya pelaksanaan sidang keliling harus dilaporkan ke Badan Peradilan Agama Jakarta, pelaporan tersebut dilakukan melalui pos ataupun email. Pada proses pelaporan data melalui pos akan memakan banyak waktu dan juga pelaporan data melului pos ataupun email akan terjadi kesulitan dalam mengorganisir data persidangan keliling tersebut. Untuk membantu mengorganisir data sidang keliling tersebut, maka diperlukan suatu aplikasi yang dapat menyimpan dan mengorganisir data sehingga mudah untuk diakses oleh penggunanya. Aplikasi yang akan dibuat merupakan aplikasi berbasis web dengan menggunakan codeigniter framework dan mysql sebagai basis datanya. Aplikasi ini akan memudahkan pelaporan data sidang keliling sehingga informasi persidangan dapat tersampaikan dengan cepat dibandingkan dengan pelaporan data sidang dengan cara manual. Keamanan data dari aplikasi ini akan memanfaatkan keamanan standar dari codeigniter yang bisa mencegah XSS attack dan SQL injection. Analisis dan perancangan sistem informasi siding keliling dilakukan dengan pendekatan OOAD (Object Oriented Analysis and Design). Keywords: Codeigniter Codeigniter Framework, Sistem Informasi, Sidang Keliling, OOAD (Object Oriented Analysis and Design)
1. PENDAHULUAN Dalam Badan Peradilan Agama yang memimpin Pengadilan Agama yang tersebar diseluruh Indonesia, sering terjadi kesulitan dalam pengumpulan informasi pelaksanaan sidang keliling yang tersebar diseluruh indonesia. Kesulitan yang dialami misalnya terjadi perbedaan struktur form laporan sehingga Badan Peradilan Agama yang menerimanya sulit dalam pengorganisasian data yang diterima. Semua itu terjadi karena form laporan dibuat dengan cara yang berbeda disetiap daerah. Untuk mencegah hal itu terjadi dan memudahkan Pengadilan Agama yang
memberikan laporan sidang keliling maupun Badan Peradilan Agama yang menerima laporan tersebut, maka pengembangan sistem dalam hal pengorganisasian laporan dinilai perlu untuk dilakukan. Untuk itu dibutuhkanlah sebuah sistem yang dapat memberikan ekfiktifitas dan efisiensi dalam penyampaian informasi baik dalam hal efisiensi waktu maupun biaya. Oleh karena itu penulis akan mencoba membangun sebuah sistem penyampaian laporan sidang keliling berbasis web Adanya sistem seperti ini otomatis akan membantu setiap institusi baik yang mengirim maupun yang menerima laporan, serta memudahkan mencari laporan - laporan yang terdahulu
2. LANDASAN TEORI 2.1 Sistem Informasi Sistem Informasi adalah suatu pengaturan dari orang-orang, data, proses, dan teknologi informasi yang saling berinteraksi untuk mengumpulkan, memproses, menyimpan, dan menyediakan informasi yang dibutuhkan. (Whitten, 2004). Sistem informasi adalah komponenkomponen yang saling berhubungan dan bekerjasama untuk mengumpulkan, memproses, menyimpan, dan mendistribusikan informasi untuk mendukung pengambilan keputusan, koordinasi, kontrol, analisis, dan visualisasi dalam suatu organisasi. (Laudon, 2004) 2.2 Framework Framework dalam sistem berorientasi objek, merupakan kumpulan class yang melambangkan bentuk abstrak untuk pemecahan sejumlah masalah yang berhubungan.(Denis Howe, 1995). Framework dalam dunia komputer digunakan sebagai sebuah acuan utama berupa kerangka program yang bersifat global, yang dapat disesuaikan dengan keinginan penggunanya. Framework yang dikembangkan saat ini telah mencakup berbagai macam bahasa pemrograman. Pada pemrograman web, framework telah dikembangkan untuk bahasa pemrograman antara lain PHP, dan Java. Untuk PHP, framework yang banyak digunakan misalnya Zend Framework yang dikembangkan oleh Zend Technologies, CodeIgniter yang dikembangkan oleh Ellislab, Inc., dan Seagull Framework yang memiliki lisensi dibawah BSD. Sebuah framework selain menyediakan lingkungan pengembangan sendiri juga menyediakan berbagai macam fungsi siap pakai yang bisa kita gunakan dalam pembuatan website. Definisikan singkatan dan akronim sejak digunakan pertama kali dalam teks paper saudara. 2.3 Codeigniter Codeigniter adalah aplikasi open source dan juga merupakan salah satu PHP framework yang berbasiskan pada metode MVC (Model, Controller, dan View) (Thomas Myer, 2008). Maksud dari MVC ini sendiri adalah memisahkan 3 hal pokok (basis data, tampilan situs web, dan logika aplikasi) di dalam pembuatan suatu situs
web ke dalam 3 bagian, yaitu bagian model untuk basis data, bagian view untuk tampilan situs web, dan bagian controller untuk logika aplikasi. Codeigniter dikembangkan oleh Rick Ellis, dengan versi awal yang dirilis pertama kali pada tanggal 28 Februari 2006. Dari tahun itulah hingga sekarang, telah muncul banyak versi codeigniter yang terus berkembang dengan penambahan fitur yang baru dari versi sebelumnya. Untuk versi terbaru dari codeigniter adalah versi 1.7.2. 2.4 MVC (Model, View, Controller) Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk. Secara sederhana konsep MVC terdiri dari tiga bagian yaitu bagian Model, bagian View dan bagian Controller. Didalam website dinamis setidaknya terdiri dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi dan cara menampilkan halaman wesite. 3 hal tersebut direpresentasikan dengan MVC yaitu model untuk basis data, view untuk cara menampilkan halaman website dan controller untuk logika aplikasi. 2.4.1 Model Merepresentasikan struktur data dari website yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks atau file xml. Biasanya didalam model akan berisi class dan fungsi untuk mengambil, melakukan update dan menghapus data website. Karena sebuah website biasanya memnggunakan basis data dalam menyimpan data maka bagian Model biasanya akan berhubungan dengan perintah-perintah query SQL. Model khusus digunakan untuk melakukan koneksi ke basis data oleh karena itu logika-logika pemrograman yang berada didalam model juga harus yang berhubungan dengan basis data. 2.4.2 View Merupakan informasi yang ditampilkan kepada pengunjung website Sebisa mungkin didalam View tidak berisi logika-logika kode tetapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View bisa dibilang adalah halaman website yang dibuat menggunakan HTMLdengan bantuan CSS atau JavaScript.
Didalam view tidak ada kode untuk melakukan koneksi ke basisdata. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller. 2.4.3 Controller Controller merupakan penghubung antara Model dan View. Di dalam Controller inilah terdapat class dan fungsi-fungsi yang memproses permintaan dari View kedalam struktur data didalam Model. Controller juga tidak berisi kode untuk mengakses basis data. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan error, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input. 2.5 Metodologi Penelitian 2.5.1 Metode Pengumpulan Data Pada metode pengumpulan data ini penulis melakukan observasi dan wawancara. 1. Observasi Guna mengumpulkan informasi mengenai kebutuhan sistem (system requirements) penulis melakukan pengumpulan data dengan cara observasi di tempat penelitian. Penulis terjun langsung ke lapangan untuk mengetahui sistem yang sedang berjalan saat ini. Hal ini perlu dilakukan agar penulis dapat melakukan analisis terhadap sistem yang telah berjalan serta menentukan rancangan sistem baru yang akan dibangun agar tetap sinkron dengan sistem yang sudah ada. Selain system requirements, pada langkah ini penulis juga mengumpulkan data-data yang diperlukan untuk pembangunan aplikasi. Data yang dimaksud adalah sample data sidang keliling yang sudah ada sebelumnya. 2. Wawancara Pada metode wawancara ini, penulis melakukan wawancara terhadap Drs. H. Wahyu Widiana, MA selaku Direktur Jendral Badan Peradilan Agama dan Bapak Hirpan Hilmi selaku staff IT di Badan Peradilan Agama Jakarta unutk memperoleh data-data yang diperlukan dalam pembuatan sistem.
2.5.2
Metode Pengembangan Sistem
Metode pengembangan sistem yang penulis gunakan dalam penelitian ini adalah metode Object Oriented Analysis and Design (OOAD). Pemilihan metode penelitian Object Oriented Analysis and Design (OOAD) ini dilakukan karena tiga alasan utama (Adi Nugroho, 2005). 1. Model analisis pada analisis dengan metode terstruktur tidak cukup formal untuk diimplementasikan seacra langsung ke bahasa pemrograman. 2. Sistem nyata harus diadaptasi ke lingkungan dimana system kelak akan diimplementasi. Dalam hal ini, perlu dilakukan modifikasi-modifikasi model anlisis ke beberapa faktor yang berbeda seperti kebutuhan kinerja, perangkat keras dan perangakat lunak system, DBMS (Database Management System). Dan bahasa pemrograman yang akan digunakan. 3. Hasil analisis dapat divalidasi menggunakan perancangan berorientasi objek. Pada tahap ini, kita dapat memverifikasi apakah hasil dari analisis sesuai untuk membangun sistem dan kemudian, jika tidak sesuai, kita kembali secara iteratif ke tahap analisis, serta membuat perubahan yang perlu pada model analisis. Metode OOAD dapat dibagi ke dalam dua tahapan utama yaitu : 1. Object-oriented analysis. Pada tahap ini dilakukan pengidentifikasian tujuan-tujuan dari aplikasi atau sistem dan dilakukan pengidentifikasian syaarat-syarat atau kebutuhan informasi bagi sistem yang diperoleh dari pengidentifikasian tujuan-tujuan tersebut. Menjelaskan masalahmasalah yang terjadi pada peradilan agama khususnya
2.
dalam pelaporan data sidang keliling, membuat flowchart sistem yang sedang berjalan dan sistem yang akan dibuat. Object-oriented Design Pada tahap ini dilakukan perancangan terhadap prosesproses yang akan terjadi di dalam sistem, meliputi: • Perancangan Aplikasi Pada tahap perancangan ini, penulis menggunakan Unified Modelling Language (UML) sebagai alat bantu (tools). • Perancangan database • Perancangan Tampilan Pada tahap ini, penulis melakukan perancangan terhadap user interface dari aplikasi ini. Perancangan yang dilakukan meliputi halaman-halaman yang ada di dalam sistem.
2.6 Studi Sejenis Dhika Rizki Anbiya (2009) dalam tugas akhirnya yang berjudul “Pengembangan Aplikasi Social Networking Pada Program Studi TI UIN” menerapkan codeigniter dalam memangun aplikasi social networking seperti yang sudah ada yaitu facebook. Dalam tugas akhir I Wayan Agus Suryanegara (2009) yang berjudul “Analisis Perbandingan Penggunaan Framework Codeigniter Dan CakePHP Untuk Aplikasi WEB” dilakukan analisis perbandingan terhadap framework Codeigniter dan CakePHP yang diimplementasikan dalam pembangunan aplikasi web CMS (Content Management System) berdasarkan beberapa parameter pengujian, yaitu: arsitektur, ketersediaan fitur (authentication, validation, pagination, template system) dan performansi framework. Dalam tugas akhir Riyan Fardian (2009) yang berjudul “Perbandingan Pencegahan SQL Injection Menggunakan Regular Expression ( Regex) Pada Aplikasi Web Berbasis ASP .NET 2.0 Dan PHP 5.0 CodeIgniter” memberikan salah satu solusi berupa modul aplikasi pencegahan SQL Injection dengan nama srex. Srex diintegrasikan pada aplikasi web berbasis PHP 5.0 Code Igniter dan ASP .NET 2.0 dengan berdasarkan rules yang ada pada regex.
Sedangkan dalam tugas akhir Devin Meidya Fonda (2009) yang berjudul “Analisis Perbandingan Cross-Site Scripting Pada Framework PHP CodeIgniter dan Ruby on Rails Analysis Comparison of Cross-Site Scripting on PHP CodeIgniter and Ruby on Rails Frameworks” mengimplementasikan aplikasi Review Buku Novel yang dibangun dengan menggunakan framework dan bahasa pemrograman yang berbeda yaitu PHP CodeIgniter dan Ruby on Rails, dimana didalamnya terdapat form yang berfungsi sebagai media untuk melakukan pengujian terhadap Cross- Site Scripting. 3.
ANALISIS DAN PERANCANGAN SISTEM 3.1 Sistem yang Sedang Berjalan Pada permulaan sistem, pihak Badilag (Badan Peradilan Agama) memberikan format baku yang berisi form isian kepada setiap Pengadilan Agama di setiap daerah di Indonesia melalui pos ataupun email, yang terdiri atas field-field data tentang persidangan keliling yang harus diisi. Lalu setiap bulannya, semua pengadilan agama diharuskan untuk mengisi dan kemudian mengirimkannya kembali melalui pos ataupun email kepada pihak Badilag untuk digunakan sebagai arsip. Adapun gambaran alur kerja sistem yang sedang berjalan di Badan Peradilan Agama adalah sebagai berikut:
Pihak Badilag
Pihak Pengadilan
reportnya dalam format PDF, yang dapat dilakukan oleh Badan Peradilan Agama maupun Pengadilan Agama, sehingga ketika dilakukan pencetakan pada laporan sidang keliling, akan didapatkan format yang seragam. Gambar flowchart dari sistem yang penulis usulkan ini adalah sebagai berikut :
Admin
User
Gambar 3.1 Flowchart sistem yang sedang berjalan. 3.2 Sistem yang Ditawarkan Usulan sistem yang dimaksud adalah sebagai berikut : 1.
2.
3.
Staff IT Badan Peradilan Agama di dalam sistem ini berperan sebagai admin yang bertugas mengisi data-data semua Pengadilan Tinggi Agama dan Pengadilan Agama, sehingga nantinya data sidang keliling dapat diisi sesuai dengan Pengadilan Agama yang melaksanakannya. Setiap Pengadilan Agama memiliki user account yang sama dan memiliki kewenangan untuk mengisi dan mengubah data sidang keliling. Data sidang keliing yang telah berada di dalam sistem juga dapat dibuat
Gambar 3.2 Flowchart Sistem yang ditawarkan.
3.3 Perancangan Sistem
Gambar 3.4 Activity Diagram Input data Sidang Keliling
Gambar 3.5 Sequence Diagram Input data Sidang Keliling
Gambar 3.3 Use Case Diagram Sistem yang Ditawarkan. Tabel 3.1 Use Case Scenario Input Data Sidang Keliling
Nama Use case Aktor yang terlibat Trigger
Pre condition
Action
Post condition
Input data Sidang Keliling Admin, User Admin ingin menambahkan Sidang Keliling Login sebagai admin Sidang Keliling belum terdaftar Controller/admin Save data Sidang Keliling Sidang Keliling baru masuk ke dalam database
Gambar 3.6 Perancangan Class Diagram
Gambar 3.7 Perancangan Basis Data
3
Edit PTA
4
Hapus PTA
5
Tambah PA
6
View PA
7
Edit PA
8
Hapus PA
9
Tambah Sidang
10
View Sidang
3.4 Penerapan Keamanan Pada sisi keamanan di aplikasi ini akan diterapkan 2 metode yaitu XSS filtering dan anti SQL injection menggunakan escaping query. 1. XSS filtering XSS adalah suatu cara memasukan code/script HTML kedalam suatu web site dan dijalankan melalui browser di client. Untuk menghindari hal tersebut maka configurasi XSS filtering pada codeigniter framework harus aktifkan. Cara mengaktifkannya adalah dengan merubah baris code pada application/config/config.php yang isinya : $config['global_xss_filtering'] = FALSE; menjadi $config['global_xss_filtering'] = TRUE; 2. Anti SQL Injection SQL Injection adalah sebuah teknik untuk merubah database server melalui aplikasi client. Untuk menghindarinya maka digunakannya escaping query. Dalam penerapannya di aplikasi ini akan digunakan contoh proses pengambilan data sidang saat pencarian dengan keyword. function getData($keyword) { $sql = "SELECT * FROM sidang WHERE alamat_sidang like '%".$this->db-> escape_like_str($keyword)."%'"; $this->db->query($sql); return $data = $this->db->get(); }
3.5 Pengujian Tabel 3.2 Pengujian Mandiri N o
Modul
1
Tambah PTA
2
View PTA
Prasyarat
Login sebagai Admin
Login sebagai admin, data PTA sudah ada di
Hasil yang diharapkan Dapat menambahk an data PTA baru ke dalam database Dapat melihat data PTA yang ada di dalam database
Hasil uji coba OK
OK
database Login sebagai admin, data PTA sudah ada di database Login sebagai admin, data PTA sudah ada di database Login sebagai admin
Login sebagai admin, data PA sudah ada di database Login sebagai admin, data PA sudah ada di database Login sebagai admin, data PA sudah ada di database Login sebagai admin atau user
Login sebagai user, data sidang sudah ada di database
Dapat merubah data PTA yang ada di dalam database
OK
Dapat menghapus data PTA yang ada di dalam database
OK
Dapat menambahk an data PA baru ke dalam database Dapat melihat data PA yang ada di dalam database
OK
Dapat merubah data PA yang ada di dalam database
OK
Dapat menghapus data PTA yang ada di dalam database
OK
Dapat menambahk an data Sidang baru ke dalam database Dapat melihat data Sidang yang ada di dalam database
OK
OK
OK
11
Edit Sidang
12
Hapus Sidang
13
Report Data Sidang
14
Search DataSid ang
Login sebagai admin atau user data sidang sudah ada di database Login sebagai admin, data sidang sudah ada di database Login sebagai admin, data sidang sudah ada di database Login sebagai admin, data sidang sudah ada di database
Dapat merubah data Sidang yang ada di dalam database
OK
Dapat menghapus data Sidang yang ada di dalam database
OK
Dapat merubah data Sidang yang ada di dalam database menjadi file PDF Dapat mencari data Sidang yang ada di dalam database sesuai dengan keyword
OK
4. KESIMPULAN DAN SARAN
OK
Tabel 3.3 Pengujian Lapangan No 1. 2. 3. 4. 5. 6. 7.
Pengujian Fitur aplikasi secara keseluruhan Fitur untuk Admin Fitur untuk User Tampilan Aplikasi Kestabilan Aplikasi Keamanan Aplikasi Kesesuaian dengan Kebutuhan
Penilaian Baik Baik Baik Baik Baik Baik Baik
Setelah melakukan pengujian mandiri maupun pengujian lapangan, penulis mengambil kesimpulan bahwa secara fungsional aplikasi telah berjalan sesuai dengan yang diharapkan.
4.1 Kesimpulan Dari penelitian dan tulisan yang telah penulis uraikan, maka dapat ditarik kesimpulan sebagai berikut : 1. Aplikasi yang dikembangkan ini dapat memudahkan pihak Pengadilan Agama maupun Badan Peradilan Agama dalam mengumpulkan dan mengorganisir data persidangan. 2. Pengembangan aplikasi ini dengan menggunakan Codeigniter Framework dapat dilaksanakan sesuai dengan analisis dan perancangan yang telah dilakukan, yang juga sesuai dengan kebutuhan penggunanya. 3. UML dapat digunakan sebagai tools dalam melakukan analisis sistem informasi sidang keliling yang dibangun. 4. Proses Integrasi report, yang dibuat dengan menggunakan report engine DomPDF pada Codeigniter Framework. 5. Penggunaan Codeigniter Framework memiliki beberapa keunggulan dibanding dengan PHP tradisional diantaranya adalah • URL nya lebih mudah dibaca atau search engine friendly • Performanya lebih cepat • Penulisan kode lebih efisien, tidak memerlukan banyak barisbaris kode. • Tinggkat keamanan lebih tinggi karena URL user friendly bisa menghindari remote file inclusion yang sering terjadi bila menggunakan PHP tradisional dan juga sudah terdapat konfigurasi XSS filtering untuk menghindari XSS attack. 6. Penggunaan Codeigniter Framework memiliki beberapa keunggulan dibanding dengan Framework lain diantaranya adalah • Performanya lebih cepat • Konfigurasi yang sangat minim • Dokumentasi yang lengkap • Mudah dipelajari • Compatible dengan banyak hosting karena bisa berjalan dengan PHP 4 atau PHP 5.
4.2 Saran Aplikasi ini tentu saja masih belum sempurna. Masih banyak hal yang dapat dilakukan untuk mengembangkan aplikasi ini agar menjadi lebih baik lagi, antara lain : 1. Dengan berkembangnya teknologi seluler, penulis berharap akan ada pengembangan lanjutan untuk akses aplikasi ini melalui ponsel. 2. Pengembangan juga dapat dilakukan dengan melakukan peningkatan keamanan yang lebih baik karena aplikasi ini hanya memanfaat fungsi keamanan standar dari Codeigniter.
DAFTAR PUSTAKA Myer, Thomas, “Professional Wiley Publishing; 2008
CodeIgniter”,
Upton, David,“CodeIgniter for Rapid PHP Application Development”, Packt Publishing; 2007 Fontoura, Marcus, “UML Profile for Framework Architectures”, Addison Wesley; 2001 Dharwiyanti, Sri, “Pengantar Unified Modelling Language (UML)”, Ilmu Komputer ; 2003 Pilone,Dan, “UML 2.0 in Nutshell”, O'Reilly ; 2005 Scach, R.Stephen,“Object Oriented and Classical Software Engineering”, Mc Graw Hill ; 2005 Pressman, Roger S,”Software Engineering A Practioner’s Approach 6th edition”, Mc Graw Hill ; 2005 Sommerville,Ian, edition”, 2004
“Software
Engineering
7th
Sukamto, Rosa A, “Rapid Application Development (RAD), Prototyping”, 2009 Whitten J.L,Bentley L.D., & Ditmann K.C, “System Analysis and Design Method. 6th Edition”, McGraw Hill Inc ; 2004 Turban, Efraim, Rainer R.Kelly Jr., & Potter, Richard E. ,” Introduction to Information
Technology. 2th Edition”. John Wiley and Sons. Inc; 2003 Laudon, Kenneth C dan Loudon, Jane P,” Essential of Management Information System : Managing the digital firm. 6th Edition”. Prentice Hall Inc;2003 Kadir, Abdul, “Pengenalan Sistem Informasi”, Penerbit Andi : 2003 .