APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH
TAHAN TERHADAP SERANGAN
SKRIPSI
Diajukan untuk memenuhi salah satu syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh:
Alfons Permana
NIM : 075314007
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS dan TEKNOLOGI
UNIVERSITAS SANATA DHARMA
2011
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
WEB BASES ONLINE TEST APPLICATION WITH BETTER
DEFENSE
A THESIS
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Komputer Degree
In Informatics Engineering Department
By:
Alfons Permana
NIM : 075314007
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2011
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN MOTTO
“FIGHT FOR HONOR, FIGHT FOR YOUR LIFE”
(MIA, Avenged Sevenfold)
“CHANCE, CHOICE, DECISION, RESPONSIBILITY, AND
RESPECT”
“DON’T REGRET ANYTHING YOU DO, BECAUSE IN
THE END IT’S WHAT MAKES WHO YOU ARE”
(30SecondsToMars, Launching Album)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
ABSTRAK
Universitas Sanata Dharma Yogyakarta merupakan salah satu universitas
swasta di Yogyakarta. USD memiliki 6 kampus dengan jurusan yang banyak.
USD menjadi salah satu universitas yang menarik perhatian banyak siswa dari
seluruh penjuru Indonesia. Untuk dapat menjadi mahasiswa di USD, orang-orang
harus menjalani sebuah tes yang diadakan di universitas ataupun di suatu tempat
dimana siswa tersebut tinggal. Untuk tes di kota tempat siswa berada, pihak USD
harus mengirimkan tim dan hal tersebut pastinya memerlukan sejumlah biaya.
Itulah mengapa mereka memerlukan sebuah sistem terkomputerisasi untuk dapat
memanajemen tes sehingga lebih efisien dalam hal waktu dan uang.
Tes Online merupakan sebuah jalan untuk menghemat biaya dan waktu
dalam rangka menjalankan sebuah tes yang baik. Tetapi seiring berkembangnya
teknologi, ia diikuti oleh munculnya teknik untuk membobol di website. Itulah
mengapa tes online tidak bisa dibuat begitu sederhana. Mereka membutuhkan
teknik khusus yang dapat mengatasi celah yang mungkin diinterupsi oleh para
hacker. Dalam kasus ini, penulis ingin menganalisa dan membuat sebuah solusi
untuk mengamankan isi website dari serangan SQL Injection, XSS (Cross Site
Scripting), Brute Force, dan Spam.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
Sanata Dharma University (USD) is one of private universities at
Yogyakarta. USD has six campus with many majors. USD becomes one of the
universities that attracts many students from all around Indonesia. To be a student
in USD, people must do tests held in the university or at a place where the student
lives. For the test at student‟s town, the university must send a team and it cost
some money for sure. That‟s why they need a computerized system that can
manage the tests become more efficient in time and money.
Online test is one way to save money and time in order to do the qualified
test. But when the technology grows up, it‟s followed with the technique to crack
in the website. That‟s why the online test can‟t be made so simple. They need a
special technique to handle holes that might be interrupted by hackers. and
patching the holes. In this case, the writer wants to analyze and build the solution
about securing contents of the website from SQL Injection, Cross Site Scripting
(XSS), Brute Force, and Spam attack.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa karena atas segala berkat dan
rahmat-Nya penulis dapat menyelesaikan skripsi dengan judul “Aplikasi Tes
Online Berbasis Web yang lebih tahan terhadap Serangan”.
Penulisan skripsi ini diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Komputer Program Studi Teknik informatika
Universitas Sanata Dharma Yogyakarta.
Dengan terselesaikannya penulisan skripsi ini, penulis mengucapkan
terima kasih kepada pihak-pihak yang telah membantu memberikan dukungan
baik berupa masukan ataupun berupa saran. Ucapan terima kasih sebanyak-
banyaknya ditujukan kepada :
1. Bapak dan Ibu yang telah memberi dukungan kepada penulis baik moral,
spiritual maupun material selama masa studi.
2. Bapak Iwan Binanto S.Si., M.Cs. selaku dosen pembimbing yang telah
memberikan dukungan, bantuan dan dorongan kepada penulis selama
mengikuti proses perkuliahan sampai dengan penyelesaian skripsi ini.
3. Bapak Yosef Agung Cahyanta S.T., M.T. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
4. Ibu Ridowati Gunawan S.Kom., M.T. selaku Ketua Jurusan Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta.
5. Penguji keamanan aplikasi, atas kerjasamanya dan masukannya terhadap
pengembangan aplikasi ini.
6. Responden kuesioner, atas kerjasamanya dalam mengerjakan kuesioner
tentang pengamatan aplikasi secara awam.
7. Tejo Murti selaku sahabat dan rekan kerja sesama pengembang web yang
telah mengajarkan saya banyak hal tentang pengembangan website.
8. Christian Novianto, Harry Budi Harianto, Septiandy Ateng, Daniel
Antonius Kristanto, Fetri Anastasia, Addy Heriadi, Arie Wongso, Samuel
Alexander, dan semua teman-teman Teknik Informatika angkatan 2007,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
terima kasih atas semangat dan bantuan yang sangat berarti sehingga
akhirnya skripsi ini dapat terselesaikan.
Dalam penulisan skripsi ini, pastilah masih banyak kekurangan dan hal
yang perlu diperbaiki. Oleh karena itu saran dan kritik dari pembaca yang
sekiranya dapat membangun sangat penulis harapkan.
Akhir kata, semoga penulisan skripsi ini berguna untuk menambah
wawasan ataupun menjadi referensi bagi para pembaca sekalian khususnya pada
mahasiswa Teknik Informatika.
Yogyakarta, 19 Desember 2011
Penulis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
LEMBAR JUDUL....................................................................................................i
HALAMAN PERSETUJUAN PEMBIMBING.....................................................iii
HALAMAN MOTTO..............................................................................................v
PERNYATAAN KEASLIAN KARYA.................................................................vi
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA...................................vii
ABSTRAK ........................................................................................................... viii
ABSTRACT ........................................................................................................... ix
KATA PENGANTAR ............................................................................................ x
DAFTAR ISI ......................................................................................................... xii
DAFTAR GAMBAR ........................................................................................... xiv
DAFTAR TABEL ................................................................................................ xvi
DAFTAR SKRIP ................................................................................................ xvii
BAB I PENDAHULUAN........................................................................................1
1.1 Latar Belakang Masalah..............................................................................1
1.2 Rumusan Masalah ...................................................................................... 3
1.3 Tujuan Penelitian ....................................................................................... 3
1.4 Batasan Masalah......................................................................................... 3
1.5 Metodologi Penelitian ................................................................................ 3
1.6 Sistematika Penulisan................................................................................. 4
BAB II DASAR TEORI ......................................................................................... 6
2.1 Jenis-jenis serangan .................................................................................. 6
2.1.1 Cross Site Scripting(XSS) ................................................................. 6
2.1.2 SQL Injection .................................................................................... 7
2.1.3 SPAM................................................................................................. 8
2.1.4 Brute Force ...................................................................................... 10
2.2 Captcha ................................................................................................... 24
2.3 Basis Data ............................................................................................... 25
2.4 Internet .................................................................................................... 30
2.5 Jaringan Komputer ................................................................................. 30
2.6 Apache...................................................................................................... 32
2.7 PHP ......................................................................................................... 33
2.8 MySQL ............................................................................................... 35
2.9 Guidelines for Rapid APPLication Enginering (GRAPPLE) ................... 35
2.10 Unified Modeling Language (UML) ....................................................... 39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.11 AJAX ...................................................................................................... 40
2.12 Software yang Digunakan ...................................................................... 40
2.12.1 XAMPP .............................................................................................. 40
2.12.2 PSPad ................................................................................................. 40
BAB III ANALISIS DAN PERANCANGAN ..................................................... 42
3.1 Requirement Gathering (Perencanaan Kebutuhan) .................................. 42
3.1.1 Discovering Business Processes ......................................................... 42
Perangkat Lunak yang digunakan ................................................................. 43
Perangkat Keras yang digunakan .................................................................. 43
3.2 Analysis .................................................................................................... 44
3.2.1 Analysis Fungsional ............................................................................ 44
3.2.2 Analysis Non Fungsional .................................................................... 46
3.3 Design ....................................................................................................... 47
3.3.1 Perancangan Aplikasi .......................................................................... 47
3.3.1.1 Use Case Diagram ....................................................................... 47
3.3.1.2 Diagram Konteks ......................................................................... 56
3.3.1.3 Diagram Berjenjang .................................................................... 58
3.3.1.4 Data Flow Diagram (DFD) .......................................................... 60
3.3.1.5 ER Diagram ................................................................................. 64
3.3.2 Perancangan Database ........................................................................ 65
3.3.3 Perancangan Interface ......................................................................... 73
BAB IV IMPLEMENTASI .................................................................................. 88
4.1 Pembahasan Aplikasi ................................................................................ 88
4.2 Hasil Aplikasi ............................................................................................ 94
4.3 Pembahasan Pengamanan Aplikasi ......................................................... 110
BAB V PENUTUP .............................................................................................. 127
5.1 Kesimpulan .......................................................................................... 127
5.2 Saran ..................................................................................................... 127
DAFTAR PUSTAKA ......................................................................................... 128
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
DAFTAR GAMBAR
Gambar 3.1 Diagram Use Case Admin ............................................................. 48
Gambar 3.2 Diagram Use Case Peserta ............................................................ 54
Gambar 3.3 Diagram Konteks........................................................................... 57
Gambar 3.4 Diagram Berjenjang user Peserta .................................................. 58
Gambar 3.5 Diagram Berjenjang user Admin................................................... 59
Gambar 3.6 DFD Level 1 untuk user peserta .................................................... 60
Gambar 3.7 DFD Level 1 untuk user administrator .......................................... 61
Gambar 3.8 DFD Level 2 untuk user administrator .......................................... 62
Gambar 3.8.1 Lanjutan DFD Level 2 untuk user .............................................. 63
Gambar 3.8.2 Lanjutan DFD Level 2 untuk administrator ............................... 64
Gambar 3.9 Entity Relational Diagram ............................................................. 65
Gambar 3.10 Struktur Menu Administrator ...................................................... 74
Gambar 3.11 Struktur Menu Peserta ................................................................ 75
Gambar 3.12 Rancangan antarmuka login ....................................................... 76
Gambar 3.12.1 Rancangan antarmuka login .................................................... 76
Gambar 3.13 Rancangan antarmuka home ...................................................... 77
Gambar 3.14 Rancangan antarmuka hasil tes online ....................................... 77
Gambar 3.15 Rancangan antarmuka detail ....................................................... 78
Gambar 3.16 Rancangan antarmuka cetak ........................................................ 79
Gambar 3.17 Rancangan antarmuka edit user admin........................................ 79
Gambar 3.18 Rancangan antarmuka edit user admininistrator ........................ 80
Gambar 3.19 Rancangan antarmuka edit petunjuk .......................................... 80
Gambar 3.20 Rancangan antarmuka edit petunjuk ........................................... 81
Gambar 3.21 Rancangan antarmuka manajemen komentar .............................. 81
Gambar 3.21.1 Rancangan antarmuka detail komentar .................................... 82
Gambar 3.22 Rancangan antarmuka kata jelek ................................................. 82
Gambar 3.23 Rancangan antarmuka tambah kata jelek .................................... 83
Gambar 3.24 Rancangan antarmuka soal dan jawaban ..................................... 83
Gambar 3.25 Rancangan antarmuka tambah soal dan jawaban ........................ 84
Gambar 3.26 Rancangan antarmuka pendaftaran ............................................ 84
Gambar 3.27 Rancangan antarmuka petunjuk ................................................. 85
Gambar 3.28 Rancangan antarmuka Soal ........................................................ 86
Gambar 3.29 Rancangan antarmuka komentar ................................................ 87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
Gambar 3.29.1 Rancangan antarmuka komentar .............................................. 87
Gambar 4.1 Halaman pendaftaran..................................................................... 95
Gambar 4.2 Halaman Petunjuk Pengerjaan Soal .............................................. 96
Gambar 4.3 Halaman Soal ................................................................................ 97
Gambar 4.5 Halaman Login Administrator ...................................................... 99
Gambar 4.6 Halaman Home Administrator ...................................................... 99
Gambar 4.7 Halaman Hasil tes online ............................................................ 100
Gambar 4.8 Halaman Detail tes online ........................................................... 101
Gambar 4.9 Halaman Cetak Tes online .......................................................... 102
Gambar 4.10 Hapus hasil tes online ................................................................ 102
Gambar 4.11 Halaman Edit Administrator ..................................................... 103
Gambar 4.12 Halaman Edit petunjuk pengerjaan soal .................................... 104
Gambar 4.13 Halaman Manajemen Komentar................................................ 104
Gambar 4.14 Halaman Detail komentar.......................................................... 105
Gambar 4.15 Halaman Kata Jelek ................................................................... 105
Gambar 4.16 Halaman Tambah Kata Jelek..................................................... 106
Gambar 4.17 Halaman Edit Kata Jelek ........................................................... 106
Gambar 4.18 Hapus Kata Jelek ....................................................................... 107
Gambar 4.19 Halaman Soal dan Jawaban ....................................................... 107
Gambar 4.20 Halaman Tambah Soal dan Jawaban ......................................... 108
Gambar 4.21 Halaman Edit Soal dan Jawaban ............................................... 109
Gambar 4.22 Hapus soal dan Jawaban ............................................................ 109
Gambar 4.23 Penambahan captcha image halaman login .............................. 112
Gambar 4.24 Penambahan captcha image halaman komentar ....................... 114
Gambar 4.25 Validasi input ajax halaman komentar ...................................... 115
Gambar 4.26 Validasi input ajax halaman pendaftaran .................................. 118
Gambar 4.27 Pesan error jika terdapat indikasi input berupa skrip ................ 119
Gambar 4.28 Tampilan halaman soal dan jawaban tanpa javascript .............. 121
Gambar 4.29 Pesan jika sudah melebihi waktu yang ditentukan. ................... 122
Gambar 4.30 Gambar detail hasil tes online jika tidak menjawab .................. 124
Gambar 4.31 Gambar sensor kata jelek .......................................................... 126
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
DAFTAR TABEL
Tabel 3.1 Analisis Fungsional user Peserta....................................................... 44
Tabel 3.2 Analisis Fungsional user Administrator ............................................ 45
Tabel 3.3 Tabel skenario use case login ........................................................... 49
Tabel 3.4 Tabel skenario manajemen hasil tes online ....................................... 49
Tabel 3.5 Tabel skenario edit user administrator .............................................. 50
Tabel 3.6 Tabel skenario edit petunjuk pengerjaan tes online .......................... 50
Tabel 3.7 Tabel skenario manajemen komentar ............................................... 51
Tabel 3.8 Tabel skenario manajemen kata jelek ............................................... 51
Tabel 3.9 Tabel skenario manajemen soal dan jawaban ................................... 52
Tabel 3.10 Tabel skenario logout ...................................................................... 53
Tabel 3.11 Tabel skenario pendaftaran ............................................................. 55
Tabel 3.12 Tabel skenario petunjuk .................................................................. 55
Tabel 3.13 Tabel skenario soal dan jawaban .................................................... 55
Tabel 3.14 Tabel skenario komentar ................................................................. 56
Tabel 3.15 Keterangan Diagram konteks .......................................................... 57
Tabel 3.16 Tabel hasilsementara ....................................................................... 66
Tabel 3.17 Tabel Jawaban ................................................................................. 67
Tabel 3.18 Tabel Modul .................................................................................... 68
Tabel 3.19 Tabel petunjuk................................................................................. 69
Tabel 3.20 Tabel Soal ....................................................................................... 70
Tabel 3.21 Tabel Ujian ...................................................................................... 70
Tabel 3.22 Tabel User ....................................................................................... 71
Tabel 3.23 Tabel Katajelek ............................................................................... 72
Tabel 3.24 Tabel Komentar............................................................................... 72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR SKRIP
Modul Program 4.1 Skrip Koneksi ke Database ........................................... 89
Modul Program 4.2 Skrip Tanggal Indonesia ................................................ 91
Modul Program 4.3 Skrip membuat halaman ................................................ 94
Modul Program 4.4 Skrip captcha images pada login administrator ........... 111
Modul Program 4.5 Skrip captcha images pada halaman komentar ............ 113
Modul Program 4.6 Skrip anti SQL Injection dan definisi alphanumeric ... 116
Modul Program 4.7 Skrip anti SQL Injection pada form pendaftaran.......... 117
Modul Program 4.8 Skrip anti SQL Injection pada form komentar ............. 117
Modul Program 4.9 Penyisipan skrip anti SQL Injection pada form login .. 118
Modul Program 4.10 Fungsi javascript countdown timer dengan session .. 120
Modul Program 4.11 Fungsi php timer ........................................................ 121
Modul Program 4.12 Skrip untuk menyimpan dan mengurutkan jawaban . 123
Modul Program 4.13 Skrip contoh penerapan koding maxlength ............... 124
Modul Program 4.14 Skrip fungsi kata jelek ............................................... 125
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Setiap siswa yang sudah lulus dari bangku SMA berharap dapat
melanjutkan jenjang pendidikannya lebih tinggi, salah satunya dengan
kuliah di Universitas. Untuk dapat kuliah di Universitas, ada beberapa
tahapan yang harus dilalui, diantaranya adalah mengikuti prosedur birokrasi
yang ada serta lulus tes masuk yang diadakan oleh Universitas yang
dimaksud.
Tes masuk universitas dapat dilaksanakan dengan 2 cara, yaitu
diadakan di universitas dan/atau universitas mengadakan kerja sama dengan
sekolah-sekolah. Kedua cara ini mempunyai permasalahannya sendiri.
Permasalahan pertama, jika tes diadakan di universitas maka siswa
harus datang ke universitas tersebut dan akan mengeluarkan biaya yang
tidak sedikit. Biaya dan waktu yang terpakai menjadi tidak sebanding jika
siswa tidak lulus tes masuk.
Permasalahan kedua, jika universitas mengadakan kerja sama dengan
sekolah-sekolah, maka pihak universitas harus mengirimkan tim penguji
untuk mengadakan tes di tempat tersebut. Hal ini juga membutuhkan biaya
yang tidak sedikit, dengan resiko peserta tes masuk tidak banyak.
Berdasarkan permasalahan diatas, penulis menilai bahwa masalah
utamanya adalah biaya dan waktu. Untuk menghemat kedua hal tersebut,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
penulis akan memanfaatkan teknologi informasi saat ini. Teknologi
informasi dinilai dapat mengelola data lebih cepat dan dapat menghemat
pengeluaran. Banyaknya perusahaan yang menggunakan media internet
sebagai sarana promosi dan iklan merupakan salah satu contoh pemanfaatan
teknologi informasi. Dengan menggunakan media internet, promosi dan
iklan menjadi lebih cepat, serta biaya yang dikeluarkan lebih sedikit bahkan
gratis.
Dengan perkembangan teknologi informasi tersebut penulis ingin
mengembangkan sebuah metode ujian tes masuk yang baru, yaitu ujian tes
online.
Sebelum mengembangkan tes masuk online penulis mengadakan
survei tentang perbandingan tes online dan tes tertulis kepada mahasiswa
Universitas Sanata Dharma, khususnya di kampus II Mrican dan kampus III
Paingan. Berdasarkan survey tersebut, penulis mendapatkan hasil bahwa
mahasiswa Sanata Dharma lebih menyukai tes masuk online dari pada tes
masuk tertulis.
Namun, segala hal yang online dan terhubung dengan internet
memiliki resiko. Resiko itu sudah terjadi di beberapa kasus, seperti Kasus
Pembobolan situs POLRI(Rifki, 2011), dan kasus pembobolan situs
KPU(Wicak, 2005) oleh Dani Firmansyah.
Oleh karena itu, selain akan mengembangkan metode ujian tes masuk,
penulis juga akan menerapkan pengamanan terhadap metode ujian tes masuk
tersebut dari awal pembuatannya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.2 Rumusan Masalah
Bagaimana membangun dan mengamanankan sebuah aplikasi Tes
Online berbasis web dari fase pengembangannya.
1.3 Tujuan Penelitian
Tujuan penelitian ini adalah membangun sebuah aplikasi tes online
berbasis web yang lebih tahan terhadap serangan keamanan.
1.4 Batasan Masalah
Batasan masalah yang ada pada penelitian ini adalah:
1. Penerapan pengamanan dari serangan SQL Injection, Cross Site
Scripting(XSS), Brute Force, dan Spam.
2. Tugas akhir ini tidak membahas otentifikasi peserta ujian.
3. Tugas akhir ini tidak membahas tentang level user ke basis data.
4. Tugas akhir ini tidak membahas keamanan tempat hosting yang
akan digunakan.
1.5 Metodologi Penelitian
Dalam penelitian ini sistem akan dikembangkan dengan
menggunakan GRAPPLE(Guidelines for Rapid Application Engineering),
yang terdiri dari 5 tahapan, yaitu (Schmuller, 1999) :
1. Perencanaan kebutuhan (Requirement gathering)
2. Analisis (Analysis)
3. Perancangan (Design)
4. Pengembangan (Development)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
5. Penyebaran (Deployment)
Untuk tahap pengamanannya, penulis akan menerapkannya pada
fase pengembangan(Development).
1.6 Sistematika Penulisan
Sistematika penulisan yang digunakan dalam penyusunan laporan
skripsi adalah sebagai berikut:
BAB I PENDAHULUAN
Bab ini berisi latar belakang masalah, rumusan masalah, batasan
masalah, tujuan, manfaat, metodologi penelitian dan sistematika
penulisan.
BAB II LANDASAN TEORI
Bab ini berisi teori-teori yang mengenai : SSL(Secure Socket Layer),
Celah keamanan pada aplikasi web, Basis Data, Internet, Jaringan
Komputer, Apache, PHP, MySQL, GRAPPLE, Unified Modeling
Language (UML), SQL Injection, Cross Site Scripting(XSS), Brute
Force, dan Spam.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang proses pemodelan aplikasi dengan empat
diagram yaitu diagram use case, diagram skema sistem, perancangan
database, dan perancangan antarmuka program.
BAB IV IMPLEMENTASI SISTEM
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
Bab ini berisi tentang implementasi dari hasil perancangan sistem,
mencakup antarmuka perangkat lunak yang dibuat. Selain itu juga
berisi script program dari sistem yang dibuat.
BAB V KESIMPULAN
Bab ini berisi tentang kesimpulan yang diperoleh berdasarkan
analisis terhadap program aplikasi yang dibuat dan saran-saran bagi
pengembangan program aplikasi ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
BAB II
DASAR TEORI
2.1 Jenis-jenis serangan
2.1.1 Cross Site Scripting(XSS)
Cross site scripting terjadi ketika seseorang membuat aplikasi web
melalui script ke user lain. Hal ini dilakukan oleh penyerang dengan
menambahkan content (seperti JavaScript, ActiveX, Flash) pada request
yang dapat membuat HTML output yang dapat dilihat oleh user lain.
Apabila ada user lain yang mengakses content tersebut, browser tidak
mengetahui bahwa halaman tersebut tidak dapat dipercaya.
Cara yang bisa digunakan untuk mencegah serangan cross site
scripting adalah dengan melakukan validasi data masuk dari user request
(seperti header, cookie, user parameter). Cara negative approach tidak
digunakan : mencoba untuk memfilter active content merupakan cara yang
tidak efektif.
2.1.2 SQL Injection
Salah satu kelemahan yang populer adalah injection flaw, dimana
hacker dapat mengirimkan atau menginject request ke operating system
atau ke external sumber seperti database.
Salah satu bentuknya adalah SQL injection. Berikut ini salah satu
contoh dari SQL injection :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
http://someServer/someApp/someAction?searchString=jedi
URL diatas akan memproses pencarian dengan kata kunci 'jedi'.
Implementasi dimana tidak ada validasi input adalah seperti SQL code
berikut ini :
select * from someTable where someField='value'
dimana value adalah nilai dari parameter searchString yang ada pada
HTTP request.
Jika hacker melakukan input dari URL seperti ini :
http://someServer/someApp/someAction?searchString=jedi'%20
AND%20true;
%20DROP%20DATABASE;'
SQL query yang terbentuk adalah seperti ini :
select * from someTable where someField='jedi' AND true;
DROP DATABASE;'
Statement awal pasti akan diterima dimana terdapat klausa AND
TRUE. Dan statement selanjutnya yaitu DROP DATABASE juga akan
diekseskusi yang akan memberikan kerusakan pada aplikasi.
Serangan ini bisa mungkin terjadi karena input yang tidak divalidasi. Ada
dua cara yang bisa dilakukan untuk mencegah serangan ini yaitu:
1. Daripada menggunakan statement SELECT, INSERT, UPDATE dan
DELETE statement, bisa dibuat fungsi yang melakukan hal serupa.
Dengan menggunakan fungsi diharapkan ada pengamanan terhadap
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
parameter. Selain itu dengan adanya fungsi, parameter yang masuk
harus sama dengan tipe data dari parameter yang dideklarasikan.
2. Hak akses dalam aplikasi juga harus dibatasi. Contohnya, jika aplikasi
hanya bertujuan untuk melihat data, tidak perlu diberikan hak akses
untuk melakukan INSERT, UPDATE atau DELETE. Jangan
menggunakan account admin pada aplikasi web untuk mengakases
database. Hal ini juga dapat meminimailkan serangan dari hacker.
2.1.3 SPAM
Pengertian Spam menurut wikipedia adalah system pesan
elektronik yang mengganggu karena tidak diinginkan (termasuk
kebanyakan media massa dan system pengiriman digital) yang terkirim
secara massal tanpa diskriminasi.
Namun pengertian spam secara harfiah adalah sampah, Atau
sesuatu yang tidak kita inginkan berada di tempat kita (blog, email, situs,
dll). Pengertian komentar spam adalah komentar mengganggu yang
dikirim ke banyak blog atau aplikasi berbasis web sejenisnya. Pengertian
spammer adalah orang yang melakukan atau mengirimkan komentar spam.
Untuk dapat dikategorikan menjadi spam, sebuah komentar harus yang
tidak diminta dan termasuk bulk.
1. Tidak diminta berarti bahwa kita tidak secara eksplisit meminta
untuk menerima komentar yang tidak berhubungan dengan artikel
di blog kita.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
2. Bulk berarti bahwa komentar tersebut sama atau hampir sama
dengan yang dikirim ke banyak blog lain.
Tujuan SPAM
Sebagai media publikasi dan promosi produk-produk perusahaan si
pengirim email sampah. Sebagai contoh sebuah perusahaan farmasi
ingin menjual obat mereka, jika melalui advertising/periklanan ini
tentu akan memakan biaya, dengan menggunakan mail robot maka ia
akan dapat mengirim email sebanyak-banyaknya ke seluruh pemilik
email yang ada di dunia ini.
Bom email, jika anda memiliki musuh di internet atau saingan
perusahaan anda biasanya hal ini akan dilakukan agar anda repot
menerima email yang tidak anda perlukan dalam jumlah besar dan
terus menerus.
Media pishing, hal ini dilakukan untuk menggaet sebanyak-banyak
orang yang akan terjebak dengan link trap (perangkap link), sehingga
anda mengira anda akan berada di situs yang sebenarnya, padahal anda
sudah dalam perangkapnya.
Media penyebaran virus & worm, sudah merupakan karakter dari virus
dan worm untuk menyebarkan filenya secara otomatis ke seluruh
pemilik email yang ada di dunia ini, dengan tujuan akan mendapatkan
korban yang sebanyak-banyaknya.
Dalam kehdupan sehari-hari di dunia offline pun kita sering
mendapatkan perlakuan spamming ini. Seperti contoh misalnya seseorang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
yang mempromosikan sesuatu dengan cara menyebarkan brosur, laflet atau
yang lainnya dalam jumlah banyak di halaman rumah, di sweeper kaca
mobil dan lain sebagainya. Ini saya sebut spam karena mereka tidak
meminta ijin terlebih dahulu apakah kita mau diberi brosur atau tidak. Lain
halnya jika mereka menawarkan terlebih dahulu brosur tersebut dan
menanyakan apakah mau menerima brosur atau tidak.
Masalah yang bisa ditimbulkan oleh komentar spam tidak hanya
untuk menghasilkan lalu lintas ke situs mereka sendiri. Komentar spam
pada blog kita umumnya tidak menyenangkan bagi siapa pun. Biasanya
berisi iklan menjengkelkan dan mengarahkan pada situs yang berkualitas
rendah atau situs berbahaya yang mengandung penipuan atau malware.
Dan kita sebagai webmaster bisa di ban oleh hosting karena konten yang
melanggar panduan kualitas mesin pencari, dan dapat membahayakan situs
kita di hasil pencarian.
Spam bisa menjadi tidak terkendali karena karena sebagian besar
spam tidak dibuat secara manual oleh spammer manusia. Spammer
umumnya menggunakan program komputer yang disebut, autobot, yang
secara otomatis mengisi formulir Web untuk menciptakan spam, dan ini
yang membuat spam bot jauh lebih cepat daripada kemampuan kita dalam
melakukan pengecekan.
2.1.4 Brute Force
Algoritma brute force adalah algoritma yang memecahkan masalah
dengan sangat sederhana, langsung, dan dengan cara yang jelas/lempang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Penyelesaian permasalahan password cracking dengan menggunakan
algoritma brute force akan menempatkan dan mencari semua
kemungkinan password dengan masukan karakter dan panjang password
tertentu tentunya dengan banyak sekali kombinasi password.
Algoritma brute force adalah algoritma yang lempang atau apa
adanya. Pengguna hanya tinggal mendefinisikan karakter set yang
diinginkan dan berapa ukuran dari passwordnya. Tiap kemungkinan
password akan di generate oleh algoritma ini.
Definisi Password Cracking
Sebuah password dapat dibongkar dengan menggunakan program
yang disebut sebagai password cracker. Program password cracker adalah
program yang mencoba membuka sebuah password yang telah terenkripsi
dengan menggunakan sebuah algoritma tertentu dengan cara mencoba
semua kemungkinan. Teknik ini sangatlah sederhana, tapi efektivitasnya
luar biasa, dan tidak ada satu pun sistem yang aman dari serangan ini,
meski teknik ini memakan waktu yang sangat lama, khususnya untuk
password yang rumit. Namun ini tidak berarti bahwa password cracker
membutuhkan decrypt. Pada prakteknya, mereka kebayakan tidak
melakukan itu. Umumnya, kita tidak dapat melakukan decrypt password-
password yang sudah terenkripsi dengan algoritma yang kuat.
Proses-proses enkripsi modern kebanyakan hanya memberikan satu
jalan, di mana tidak ada proses pengembalian enkripsi. Namun, anda
menggunakan tool-tool simulasi yang mempekerjakan algoritma yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
sama yang digunakan untuk mengenkripsi password orisinal. Tool-tool
tersebut membentuk analisa komparatif. Program password cracker tidak
lain adalah mesin-mesin ulet. Ia akan mencoba kata demi kata dalam
kecepatan tinggi. Mereka menganut "Asas Keberuntungan", dengan
harapan bahwa pada kesempatan tertentu mereka akan menemukan kata
atau kalimat yang cocok. Teori ini mungkin tepat mengena pada anda yang
terbiasa membuat password asal-asalan. Dan memang pada kenyataannya,
password-password yang baik sulit untuk ditembus oleh program
password cracker.
Definisi Brute Force Attack
Serangan brute-force adalah sebuah teknik serangan terhadap
sebuah sistem keamanan computer yang menggunakan percobaan terhadap
semua kunci yang mungkin. Pendekatan ini pada awalnya merujuk pada
sebuah program komputer yang mengandalkan kekuatan pemrosesan
komputer dibandingkan kecerdasan manusia.
Sebagai contoh, untuk menyelesaikan sebuah persamaan kuadrat
seperti x²+7x-44=0, di mana x adalah sebuah integer, dengan
menggunakan teknik serangan brute force, penggunanya hanya dituntut
untuk membuat program yang mencoba semua nilai integer yang mungkin
untuk persamaan tersebut hingga nilai x sebagai jawabannya muncul.
Istilah brute force sendiri dipopulerkan oleh Kenneth Thompson, dengan
mottonya: "When in doubt, use brute-force" (jika ragu, gunakan brute-
force).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Secara sederhana, menebak password dengan mencoba semua
kombinasi karakter yang mungkin. Brute force attack digunakan untuk
menjebol akses ke suatu host (server/workstation/network) atau kepada
data yang terenkripsi. Metode ini dipakai para cracker untuk mendapatkan
account secara tidak sah, dan sangat berguna untuk memecahkan enkripsi.
Enkripsi macam apapun, seperti Blowfish, AES, DES, Triple DES dsb
secara teoritis dapat dipecahkan dengan brute-force attack. Pemakaian
password sembarangan, memakai password yang cuma sepanjang 3
karakter, menggunakan kata kunci yang mudah ditebak, menggunakan
password yang sama, menggunakan nama, memakai nomor telepon, sudah
pasti sangat tidak aman. Namun brute force attack bisa saja memakan
waktu bahkan sampai berbulan-bulan atau tahun bergantung dari
bagaimana rumit passwordnya.
Brute Force attack tidak serumit dan low-tech seperti algoritma
hacking yang berkembang sekarang. Seorang penyerang hanya cukup
menebak anama dan kombinasi password sampai dia menemukan yang
cocok. Mungkin terlihat bahwa brute force attack atau dictionary attack
tidak mungkin berhasil. Namun yang mengejutkan, kemungkinan berhasil
brute force attack menjadi membaik ketika site yang ingin diretasi tidak
dikonfigurasikan dengan baik. Beberapa faktor yang menjadi keuntungan
seorang hacker, bisanya disebabkan oleh kemalasan manusia itu sendiri,
Hal-hal yang perlu diperhatikan dalam menggunakan metode brute force
attack :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
a. Asumsikan bahwa password diketik dalam huruf kecil (lower case).
Pada kasus ini, waktu yang dibutuhkan akan cenderung sama tetapi
jika password mengandung huruf kapital (upper case) cara ini tidak
akan berhasil.
b. Coba semua kemungkinan.
Tujuh karakter lower case membutuhkan sekitar 4 jam untuk berhasil
mendapatkan password tetapi jika dicoba semua kemungkinan
kombinasi antara karakter upper case dan lower case akan
membutuhkan waktu sekitar 23 hari.
c. Metode ketiga adalah trade-off.
Hanya kombinasi-kombinasi yang mungkin yang dimasukkan dalam
pencarian, sebagai contoh “password”, “PASSWORD” dan
“Password”. Kombinasi rumit seperti “pAssWOrD” tidak dimasukkan
dalam proses. Dalam kasus ini, lambatnya proses dapat tertangani
tetapi ada kemungkinan password tidak ditemukan.
Metode Brute Force Attact secara umum
Brute Force attack ada sebuah metode untuk menjebol kode rahasia
(yaitu, mendekripsi sebuah teks yang telah terenkripsi) dengan mencoba
semua kemungkinan kunci yang ada. Feasibility dari sebuah brute force
attack tergantung dari panjangnya cipher yang ingin dipecahkan , dan
jumlah komputasi yang tersedia untuk penyerang. Salah satu contohnya
bernama Cain's Brute Force Password Cracker mencoba semua kombinasi
yang mungkin dari karakter yang telah didefinisikan sebelum atau set
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
karakter yang kustom melawan sebuah password yang telah terenkripsi di
brute force dialog. Kuncinya adalah mencoba semua kemungkinan
password dengan formula seperti berikut.
KS = L(m) + L(m+1) + L(m+2) + ........ + L(M)
L = jumlah karakter yang kita ingin definsikan
m = panjang minimum dari kunci
M = panjang maksimal dari kunci
Contohnya saat kita ingin meretas sebuah LanManager paswords
(LM) dengan karakter set "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
dengan jumlah 26 karakter, maka brute fore cracker harus mencoba KS =
26^1 + 26^2 + 26^3 + ...... + 26^7 = 8353082582 kunci yang berbeda. Jika
ingin meretas password yang sama denganset karakter set
"ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789!@#$%^&*()-
_+=~`[]{}|\:;"'<>,.?/", jumlah kunci akan dihasilkan akan naik menjadi
6823331935124. Brute Force attack melakukan perbandingan string
matching antara pattern dengan text per karakter dengan pseudocode
berikut :
do if (text letter == pattern letter)
compare next letter of pattern to next
letter of text
else move pattern down text by one letter
while (entire pattern found or end of text)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Exhaustive key search cracking mungkin saja memerlukan waktu
yang sangat panjang untuk berhasil, tetapi jika character setnya sidah
benar sesaui password, maka tinggal hanyalah jadi masalah waktu.
Algoritma Simetrik
Symmetric cipher dengan kunci 64 bit atau tidak terlalu rentan
terhadap brute force attack. DES, blok cipher digunakan secara luas yang
menggunakan 56-bit kunci, dirusak oleh proyek EFF (Electronic Frontier
Foundation) pada tahun 1998, dan pesan RC5 kunci 64- bit baru-baru ini
sudah berhasil dipecahkan. Banyak orang berpikir bahwa organisasi-
organisasi yang didanai dengan baik, terutama lembaga SIGINT(Signals
and Intellegence) pemerintah seperti US NSA(National Security Agency),
berhasil dapat menyerang sebuah sandi kunci simetris dengan kunci 64-bit
dengan menggunakan Brute Force Attack. Untuk aplikasi yang
memerlukan keamanan jangka panjang, 128 bit, pada tahun 2004, saat ini
sedang dipikirkan panjang kunci yang cukup dan kokoh untuk sistem baru
menggunakan algoritma kunci simetrik. NIST(National Institute of
Standards) telah merekomendasikan bahwa 80-bit desain akan berakhir
pada tahun 2015. Bahkan dalam situasi adalah 128-bit atau kunci yang
lebih besar digunakan dengan cipher yang dirancang dengan baik seperti
AES, Brute Force dapat dilakukan untuk meretas jika kunci tidak
dihasilkan dengan benar.
Banyak keamanan produk komersial dan shareware yang bangga
mengiklankan "keamanan 128-bit" kunci berasal dari sebuah kata sandi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
yang dipilih pengguna atau passphrase. Karena pengguna jarang
menggunakan password dengan hampir 128 bit entropi, sistem seperti
seringkali cukup mudah untuk dibobol dalam prakteknya. Beberapa
produk keamanan bahkan membatasi jumlah masukan karakter maksimum
pengguna sampai ke panjang yang terlalu kecil untuk sebuah passphrase.
Berikut adalah beberapa contoh password atau passphrase yang dihasilkan
dengan metode yang memberikan keamanan 128-bit:
password 28-huruf acak dengan semua huruf tunggal kasus: "sqrnf
oikas ocmpe vflte krbqa jwf"
20 karakter acak password dengan huruf campurankasus, angka dan
karakter khusus: ". iTb \ /&/-} itu / P; ^ +22 q"
10 acak-dipilih-kata Diceware(hardware number generator) dengan
kata sandi: " serf bare gd jab weld hum jf sheet gallop neve"
Hampir tidak ada yang menggunakan password yang sekompleks
ini. Salah satu solusinya adalah untuk menerima kekuatan yang lebih
rendah. 16 huruf atau 6 kata diceware akan memberikan keamanan yang
75-bit, cukup untuk melindungi terhadap semua semua kecuali
kriptoanalisis paling kuat. Solusi lain adalah dengan menggunakan fungsi
derivasi kunci (KDF) atau "key stretcher" yang melakukan pekerjaan
komputasi yang signifikan dalam mengkonversi password menjadi kunci,
membuat penyerang brute force mengulang ini bekerja untuk setiap
percobaan kunci.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Dalam prakteknya, teknik ini dapat menambah 10 sampai 20 bit
kekuatan untuk password, cukup untuk memungkinkan sebuah passphrase
yang cukup diingat untuk digunakan, tetapi tidak cukup untuk
mengamankan kata sandi yang pendek kebanyakan orang pakai.
Sayangnya, masih sedikit yang menggunakan produk keamanan teknologi
KDF. Mungkin solusi terbaik adalah untuk menyimpan kunci yang
dihasilkan secara acak dan kekuatan dalam dan bagian internal dilindungi
oleh password atau PIN.
Algoritma Asimetrik
Situasi yang berkaitan dengan algoritma kunci asimetrik lebih
rumit dan tergantung pada algoritma enkripsi tiap individu. Jadi, panjang
kunci saat ini dapat dipecahkan untuk algoritma RSA adalah minimal 512
bit (telah dilakukan secara publik), dan perkembangan penelitian terbaru
menunjukkan bahwa 1024 bit bisa dipecahkan dalam waktu dekat untuk
jangka menengah. Untuk algoritma kurva eliptik paling asimetris, panjang
kunci terbesar saat pecah diyakini agak pendek, mungkin sesedikit 128 bit
atau lebih. Sebuah pesan yang dienkripsi dengan bit kunci 109 oleh
algoritma enkripsi kurva eliptik yang umum rusak oleh kekerasan
pencarian kunci pada awal 2003.
Contoh Program yang menerapkan Brute Force attack
Cain and Abel
Cain & Abel adalah alat recovery password untuk Sistem Operasi
Microsoft. Hal ini memungkinkan recovery berbagai jenis password
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
dengan mengendus jaringan, cracking password terenkripsi menggunakan
Dictionary-Attack, Brute-Force Attack dan serangan kriptanolisis,
merekam percakapan VoIP, decoding password teracak, memulihkan
kunci jaringan wireless, mengungkap password cache dan menganalisis
routing protokol. Program ini tidak memanfaatkan kerentanan perangkat
lunak atau bug yang tidak dapat diperbaiki. Ini mencakup beberapa aspek
keamanan / kelemahan yang ada dalam protokol standar, metode otentikasi
dan mekanisme caching; tujuan utamanya adalah pemulihan password dan
kredensial dari berbagai sumber, namun juga kapal beberapa fungsi "non
standard" untuk pengguna Microsoft Windows.
Cain & Abel telah dikembangkan dengan harapan akan berguna
bagi administrator jaringan, guru, konsultan keamanan / profesional, staf
forensik, vendor keamanan perangkat lunak, teser penetrasi professional
dan semua orang yang berencana untuk menggunakannya untuk alasan
yang etis. Pembuat program ini tidak akan membantu atau mendukung
setiap aktivitas illegal dilakukan dengan program ini. Diperingatkan bahwa
ada kemungkinan bahwa pemakaian software ini bisa menyebabkan
kerusakan dan / atau kehilangan data dan embuat software tidak
bertanggung jawab atas kerusakan atau kehilangan data. Versi Cain and
Abel terbaru lebih cepat dan berisi banyak fitur baru seperti APR (Arp
Poison Routing) yang memungkinkan sniffing di switched LAN. Sniffer
dalam versi ini juga dapat menganalisa protocol terenkripsi seperti SSH-1
dan HTTPS, dan berisi filter untuk menangkap berbagai mekanisme
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
otentikasi. Versi baru ini juga memonitor otentikasi routing protokol dan
,kamus dan brute-force cracker untuk semua algoritma hashing umum dan
untuk otentikasi spesifik, kalkulator password/hash, serangan kriptanalisis,
dekoder password Makalah IF3051 Strategi Algoritma – Sem. I Tahun
2010/2011 dan beberapa utilitas tidak begitu umum yang terkait dengan
jaringan dan sistem keamanan.
Brutus
Ada puluhan cracker password offline untuk resource yang
dilindungi sandi. Cracker tersebut dirancang untuk mencari password yang
lemah dan memberitahu administrator bagaimana seaman apa sumber daya
itu sebenarnya. Brutus adalah jenis cracker password yang berbeda. Ia
bekerja online, mencoba membobol telnet, POP3, FTP, HTTP, RAS atau
IMAP dengan hanya mencoba untuk login sebagai pengguna yang sah.
Brutus meniru serangan dari luar seperti pada kenyataannya (tidak seperti
cracking password aplikasi lain yang mensimulasikan serangan internal)
dan dengan demikian berfungsi sebagai alat keamanan audit berharga.
Brutus dapat berjalan dalam modus single user (mencoba masuk ke
akun pengguna tunggal dengan mencoba kombinasi password yang
berbeda) atau dengan mencoba daftar kombinasi user / password dari file
word. Aplikasi akan memindai host untuk layanan yang dikenal dan dapat
dengan mudah dimodifikasi untuk break-in layanan kostumer lain yang
membutuhkan logon interaktif dari sebuah username dan password.
Menggunakan Brutus akan mengajarkan Anda banyak tentang sistem,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
karena mensimulasikan serangan nyata. Untuk membuat baik penggunaan
simulasi serangan Brutus, seorang administrator harus yang perhatikan
apakah usaha break-in akan dicatat, dan apakah timeout dikeluarkan
setelah beberapa kali gagal login - ini dapat dengan mudah dilihat pada
kemajuan yang dibuat Brutus.
Hydra
Hydra adalah sebuah proyek software yang dikembangkan oleh
sebuah organisasi bernama "The Hacker's Choice" (THC) yang
menggunakan brute force dan dictionary attack untuk menguji untuk
password yang lemah atau password sederhana pada satu atau banyak host
remote menjalankan berbagai layanan yang berbeda. Ia dirancang sebagai
bukti untuk menunjukkan kemudahan cracking password karena password
yang dipilih buruk. Proyek ini mendukung berbagai layanan dan protokol:
AFP, TELNET, FTP, Firebird, HTTP, HTTPS, HTTP-PROXY, SMB,
SMBNT, MS-SQL, MySQL, REXEC, RSH, rlogin, CVS, Subversion,
SNMP, SMTP - AUTH, SOCKS5, VNC, POP3, IMAP, NNTP, NCP,
PCNFS, ICQ, SAP/R3, LDAP, PostgreSQL, TeamSpeak, Cisco auth,
Cisco memungkinkan, dan Cisco AAA.
LastBit
LastBit Software adalah sebuah perusahaan pengembangan
perangkat lunak Rusia berfokus pada solusi password recovery dan
security tools. LastBit Software adalah perusahaan pertama yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
mengembangkan tool recovery password untuk Microsoft Office Word
dan Excel dan memberikan recovery password dengan metode unik yang
menjamin pemulihan password berhasil terlepas dari panjang password.
Aplikasi password recovery pertama diluncurkan pada tahun 1997. Sejak
itu LastBit mengembangkan yang dikembangkan banyak solusi password
recovery untuk aplikasi paling populer. Smart Force Attack adalah
penyempurnaan varian serangan Brute force, dikembangkan oleh LastBit
Corp Metode. Recovery password didasarkan pada anggapan bahwa
password yang terdiri dari huruf dan masuk akal. Smart Force Attack
didasarkan pada tabel statistik yang dibangun dengan cara menganalisis
sejumlah besar teks.
Dengan cara ini , lebih efektif karena karena tidak memeriksa
berarti kombinasi huruf. Efektivitas metode ini dapat dibandingkan dengan
Dictionary attack dengan sebuah kamus yang panjang. Jika password
dihasilkan secara otomatis (secara acak), Smart Force Attack metode tidak
dapat digunakan. Hal ini juga tidak akan memulihkan password dengan
angka dan karakter non-alpha. Last memungkinkan untuk memeriksa
sampai dengan 11 karakter dalam jumlah waktu yang wajar dengan Smart
metode Attack Force.
John The Ripper
John the Ripper merupakan password cracking perangkat lunak
gratis. Awalnya dikembangkan untuk sistem operasi UNIX, yang saat ini
berjalan pada 15 platform yang berbeda (11 arsitektur spesifik Unix, DOS,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Win32, BeOS, dan OpenVMS). Ini adalah salah satu program pengujian
password yang paling populer dengan mengombinasikan sejumlah
password cracker ke dalam satu paket, autodetects jenis hash password,
dan memasukkan cracker yang dapat dimodifikasi. Hal ini dapat
dijalankan terhadap berbagai format password terenkripsi termasuk
beberapa jenis hash password crypt paling sering ditemukan pada berbagai
Unix (berdasarkan DES, MD5, atau Blowfish), Kerberos AFS, dan
Windows NT/2000/XP/2003 LM hash. Beberapa modul tambahan telah
memperluas kemampuannya untuk memasukkan password hash MD4
berbasis dan password disimpan di LDAP, MySQL dan lain-lain.
Salah satu mode yang John dapat gunakan adalah dictionary attack.
Dibutuhkan sampel text string (biasanya dari file, yang disebut sebuah
wordlist, berisi kata-kata ditemukan dalam kamus), menyandikannya
dalam format yang sama sebagai password yang diuji (termasuk algoritma
enkripsi dan kunci), dan membandingkan output ke dienkripsi string. Hal
ini juga dapat melakukan berbagai perubahan ke dalam kamus kata-kata
yang dicoba ini. Banyak perubahan ini yang juga digunakan dalam modus
serangan tunggal John, yang memodifikasi sebuah plaintext yang terkait
(seperti username dengan password terenkripsi) dan memeriksa variasi
terhadap hash dienkripsi.
John juga menawarkan modus brute force attack. Dalam jenis
serangan ini, program ini berjalan melalui semua plaintexts mungkin,
hashing masing-masing dan membandingkannya dengan hash input. John
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
menggunakan tabel frekuensi karakter untuk mencoba plaintexts
mengandung lebih karakter yang sering digunakan pertama. Metode ini
berguna untuk cracking password yang tidak muncul dalam kamus daftar
kata, tetapi tidak butuh waktu lama untuk dijalankan.
2.2 Captcha
CAPTCHA atau Captcha adalah suatu bentuk uji tantangan-
tanggapan (challange-response tes) yang digunakan dalam perkomputeran
untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer.
Proses ini biasanya melibatkan suatu komputer (server) yang meminta
seorang pengguna untuk menyelesaikan suatu uji sederhana yang dapat
dihasilkan dan dinilai oleh komputer tersebut. Karena komputer lain tidak
dapat memecahkan CAPTCHA, pengguna manapun yang dapat
memberikan jawaban yang benar akan dianggap sebagai manusia. Oleh
sebab itu, uji ini kadang disebut sebagai uji Turing balik, karena dikelola
oleh mesin dan ditujukan untuk manusia, kebalikan dari uji Turing standar
yang biasanya dikelola oleh manusia dan ditujukan untuk suatu mesin.
CAPTCHA umumnya menggunakan huruf dan angka dari citra terdistorsi
yang muncul di layar.
Istilah "CAPTCHA" (berasal dari kata bahasa Inggris "capture"
atau menangkap) diciptakan pada tahun 2000 oleh Luis von Ahn, Manuel
Blum, Nicholas J. Hopper (semua dari Carnegie Mellon University), dan
John Langford (IBM). Istilah ini adalah akronim bahasa Inggris dari
"Completely Automated Public Turing tes to tell Computers and Humans
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Apart" (Uji Turing Publik Terotomatisasi Penuh untuk membedakan
Komputer dan Manusia). Carnegie Mellon University berupaya
mematenkan istilah ini, tapi aplikasi merek dagang mereka dibatalkan
pada 21 April 2008. Saat ini pencipta CAPTCHA menganjurkan
penggunaan reCAPTCHA sebagai penerapan resmi.
2.3 Basis Data
Basis data adalah kumpulan data yang saling berelasi. Data sendiri
merupakan fakta mengenai obyek, orang dan lain-lain (Kusrini, 2007). Data
dinyatakan dengan nilai (angka, deretan karakter, atau simbol). Basis data dapat
didefinisikan dalam berbagai sudut pandang seperti berikut (Kusrini, 2007) :
a. Himpunan kelompok data yang saling berhubungan yang diorganisasi
sedemikian rupa sehingga kelak dapat dimanfaatkan dengan cepat dan
mudah.
b. Kumpulan data yang saling berhubungan yang disimpan secara
bersama sedemikian rupa tanpa pengulangan (redundancy) yang tidak
perlu untuk memenuhi kebutuhan.
c. Kumpulan file/table/arsip yang saling berhubungan yang disimpan
dalam media penyimpanan elektronik.
Untuk lebih jauh, berikut adalah definisi-definisi yang berhubungan dengan
database:
1. Entity
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Entity adalah orang, tempat, kejadian atau konsep yang informasinya direkam.
2. Attribute
Setiap entitas mempunyai attribute atau sebutan untuk mewakili suatu entitas.
3. Data Value
Data Value adalah data aktual atau informasi yang disimpan pada tiap elemen atau
atribut data.
Record / Tuple
Record/Tuple adalah kumpulan elemen yang saling berkaitan, yang
menginformasikan suatu entitas secara lengkap.
4. File
File adalah kumpulan record sejenis yang mempunyai panjang elemen yang sama
dan mempunyai perbedaan pada data value.
5. Database
Database adalah kumpulan file yang mempunyai kaitan antara satu file dengan file
yang lain sehingga membentuk satu bangunan data untuk menginformasikan satu
perusahaan instansi dalam batasan tertentu.
6. Database Management System (DBMS)
Database Management System (DBMS) adalah kumpulan file yang saling
berkaitan bersama dengan program untuk pengelolanya. Database adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
kumpulan datanya, sedangkan program pengelolanya berdiri sendiri dalam satu
paket program komersial untuk membaca data, menghapus data, melaporkan data
dalam database.
2.3.1 Kegunaan Database
Penyusunan suatu database digunakan untuk mengatasi masalah pada
penyusunan data, yaitu :
1. Redudansi dan inkonsistensi data
2. Kesulitan pengaksesan data
3. Isolasi data untuk standarisasi
4. Multiple user (banyak pengguna)
5. Masalah keamanan
6. Masalah data Independen (kebebasan data).
2.3.2 Perancangan Database
Merancang database merupakan suatu hal yang sangat penting. Kesulitan
utama dalam merancang suatu database adalah bagaimana merancang sehingga
database memuaskan untuk keperluan saat ini dan masa mendatang.
Proses normalisasi merupakan proses pengelompokkan data elemen
menjadi tabel-tabel yang menunjukkan entity dan relasinya. Pada proses
normalisasi selalu diuji beberapa kondisi apakah ada kesulitan saat menambah,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
menghapus, mengubah, membaca pada suatu database. Ada beberapa macam
bentuk normalisasi, bentuk normalisasi tersebut adalah sebagai berikut :
1. Bentuk tidak normal (unnormalized Form)
Bentuk ini merupakan bentuk data yang akan direkam, tidak ada keharusan
mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi
karena data dikumpulkana apa adanya.
2. Bentuk normal pertama (1NF / First Normal Form)
Bentuk ini mempunyai ciri yang setiap data dibentuk dalam flat file. Data
dibentuk dalam satu record dan nilai dari field berupa “automic value”. Tidak ada
atribut yang berulang-ulang atau atrribut yang bernilai ganda.
3. Bentuk normal kedua (2NF / Second Normal Form)
Bentuk ini mempunyai syarat yaitu bentuk data telah memenuhi kriteria
bentuk normal kesatu. Atribut bukan kunci haruslah bergantung secara fungsional
pada kunci utama. Sehingga untuk membentuk normal kedua harus sudah
ditentukan kunci-kunci field-nya.
4. Bentuk normal ketiga (3NF / Third Normal Form)
Tabel dalam keadaan 2NF dan dalam tabel tersebut tidak ada
ketergantungan transitif. Artinya sebuah field dapat menjadi atribut biasa pada
suatu relasi tetapi menjadi kunci pada relasi lain. Setiap atribut yang bukan kunci
haruslah bergantung hanya pada primary key.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
2.3.3 Kunci Elemen Data (Key)
KEY adalah elemen record yang dipakai untuk menemukan record tersebut
pada waktu diakses, atau bisa juga digunakan untuk mengidentifikasi setiap
entity/record/baris. Jenis-jenis key adalah sebagai berikut :
1. Super Key
Merupakan satu atau lebih atribut (kumpulan atribut) dari suatu tabel yang
dapat digunakan untuk mengidentifikasi entity/record dari tabel tersebut secara
unik. (Tidak semua atribut dapat menjadi super key).
2. Candidate Key (kunci kandidat / kunci calon)
Super key dengan jumlah atribut minimal, disebut dengan Candidate Key.
Candidate Key tidak boleh berisi atribut dari table yang lain, sehingga candidate
key sudah pasti super key namun belum tentu sebaliknya.
3. Primary Key (kunci primer)
Adalah suatu atribut atau satu set minimal atribut yang
mengidentifikasikan secara unik suatu kejadian spesifik dan juga dapat mewakili
setiap kejadian dari suatu entity.
4. Alternate Key (kunci alternatif)
Adalah kunci kandidat yang tidak dipakai sebagai primary key. Kerap kali
kunci alternatif dipakai sebagai kunci pengurutan, misalnya dalam laporan.
5. Foreign Key
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Adalah suatu atribut yang melengkapi suatu hubungan yang menunjukkan
keinduknya.
2.4 Internet
Internet merupakan sistem komputer umum, yang berhubung secara global
dan menggunakan TCP/IP sebagai protokol pertukaran paket (packet switching
communication protocol).
2.5 Jaringan Komputer
Jaringan komputer adalah sebuah sistem yang terdiri atas komputer,
software dan perangkat jaringan lainnya yang bekerja bersama-sama untuk
mencapai suatu tujuan yang sama (Melwin Syafrizal, 2005). Tujuan dari jaringan
komputer adalah:
1. Membagi sumber daya: contohnya berbagi pemakaian printer, CPU,
memori, harddisk.
2. Komunikasi: contohnya surat elektronik, instant messaging, chatting.
3. Akses informasi: contohnya web browsing
Setiap bagian dari jaringan komputer meminta dan memberikan layanan
(service) agar dapat mencapai tujuan yang sama. Pihak yang meminta/menerima
layanan disebut klien (client) dan yang memberikan/mengirim layanan disebut
pelayan (server). Arsitektur ini disebut dengan sistem client-server, dan
digunakan pada hampir seluruh aplikasi jaringan komputer.
2.5.1 Klasifikasi Internet
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Terdapat beberapa klasifikasi internet, yaitu:
1. Berdasarkan skala.
Berdasarkan skalanya, internet terbagi menjadi 3, yaitu:
1. Local Area Network (LAN): suatu jaringan komputer yang
menghubungkan suatu komputer dengan komputer lain dengan
jarak yang terbatas.
2. Metropolitan Area Network (MAN): prinsip sama dengan LAN,
hanya saja jaraknya lebih luas, yaitu 10-50 km.
3. Wide Area Network (WAN): jaraknya antar kota, negara, dan
benua. ini sama dengan internet.
2. Berdasarkan Fungsi.
Pada dasarnya setiap jaringan komputer ada yang berfungsi
sebagai client dan juga server. Tetapi ada jaringan yang memiliki
komputer yang khusus didedikasikan sebagai server sedangkan yang
lain sebagai client. Ada juga yang tidak memiliki komputer yang
khusus berfungsi sebagai server saja. Karena itu berdasarkan fungsinya
maka ada dua jenis jaringan komputer:
1. Client-server
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Yaitu jaringan komputer dengan komputer yang
didedikasikan khusus sebagai server. Sebuah service/layanan bisa
diberikan oleh sebuah komputer atau lebih. Contohnya adalah
sebuah domain seperti www.detik.com yang dilayani oleh banyak
komputer web server. Atau bisa juga banyak service/layanan yang
diberikan oleh satu komputer. Contohnya adalah server
jtk.polban.ac.id yang merupakan satu komputer dengan multi
service yaitu mail server, web server, file server, database server
dan lainnya.
2. Peer-to-peer
Yaitu jaringan komputer dimana setiap host dapat menjadi
server dan juga menjadi client secara bersamaan. Contohnya dalam
file sharing antar komputer di Jaringan Windows Network
Neighbourhood ada 5 komputer (kita beri nama A,B,C,D dan E)
yang memberi hak akses terhadap file yang dimilikinya. Pada satu
saat A mengakses file share dari B bernama data_nilai.xls dan juga
memberi akses file soal_uas.doc kepada C. Saat A mengakses file
dari B maka A berfungsi sebagai client dan saat A memberi akses
file kepada C maka A berfungsi sebagai server. Kedua fungsi itu
dilakukan oleh A secara bersamaan maka jaringan seperti ini
dinamakan peer to peer.
2.6 Apache
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Server HTTP Apache atau Server Web/WWW Apache adalah server web
yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft
Windows dan Novell Netware serta platform lainnya) yang berguna untuk
melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani
fasilitas web/www ini menggunakan HTTP.
Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat
dikonfigur, autentikasi berbasis basis data dan lain-lain. Apache juga didukung
oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan
penanganan server menjadi mudah. Apache merupakan perangkat lunak sumber
terbuka dikembangkan oleh komunitas terbuka yang terdiri dari pengembang-
pengembang dibawah naungan Apache Software Foundation.
2.7 PHP
PHP merupakan sebuah bahasa pemrogramman yang dirancang pada
pengembangan web untuk menghasilkan halaman web dinamis. Untuk tujuan ini,
kode PHP ditanamkan di dalam sumber dokumen HTML dan diinterpretasikan
oleh web server dengan modul PHP prosesor, yang menghasilkan dokumen
halaman web. Sebagai bahasa pemrograman untuk keperluan umum, kode PHP
diproses oleh aplikasi penerjemah dalam mode command-line pada sebuah sistem
operasi dan menghasilkan output program. PHP tersedia sebagai prosesor untuk
sebagian besar web server modern dan komputer standalone pada kebanyakan
sistem operasi dan platform komputasi.
Terdapat beberapa versi PHP yang dirilis hingga 2010, yakni :
1. Form Interpreted (FI)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Versi pertama php adalah Form Interpreted (FI) yang dibuat pertama kali
pada tahun 1995 oleh Rasmus Lerdorf. Pada waktu itu PHP masih bernama Form
Interpreted (FI), yang wujudnya masih berupa sekumpulan skrip yang digunakan
untuk mengolah data formulir dari web.
2. PHP FI
Beberapa bulan kemudian Rasmus merilis source code tersebut untuk
umum dan menamakannya PHP/FI. Dengan perilisan source code ini menjadi
open source, maka banyak programmer yang tertarik untuk ikut mengembangkan
PHP.
3. PHP/FI 2.0
Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini, interpreter PHP
sudah diimplementasikan dalam program C. Dalam rilis ini disertakan juga
modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.
4. PHP 3.0
Selanjutnya Juni 1998, perusahaan Zend merilis interpreter baru untuk
PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah
menjadi akronim berulang PHP: Hypertext Preprocessing.
5. PHP 4.0
Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis
tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak
dipakai pada awal abad ke-21. Versi ini banyak dipakai disebabkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki
kecepatan dan stabilitas yang tinggi.
6. PHP 5.0
Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter
PHP mengalami perubahan besar. Versi ini juga memasukkan model
pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan
bahasa pemrograman ke arah paradigma berorientasi objek.
7. PHP 6
Selanjutnya Maret 2010, PHP 6 dirilis dan masih sedang dikembangkan
sampai saat sekarang. Pengembangannya difokuskan pada celah-celah keamanan
yang sangat rentan, sehingga kedepannya PHP menjadi sangat aman untuk
digunakan, meskipun PHP adalah sebuah bahasa pemrograman open source.
2.8 MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
atau DBMS yang multithread, multi-user. MySQL AB membuat MySQL tersedia
sebagai perangkat lunak gratis dibawah lisensi GNU General Public License
(GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus
dimana penggunaannya tidak cocok dengan penggunaan GPL.
2.9 Guidelines for Rapid APPLication Enginering (GRAPPLE)
Metode pengembangan menggunakan GRAPPLE (Guidlines for Rappid
APPLication Engineering) dengan tujuan dapat mengembangkan sistem dalam
waktu yang singkat tanpa mengurangi kualitas sistem yang dibangun. GRAPPLE
adalah sebuah pemodelan proses dalam pengembangan software yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
menekankan pada aksi-aksi yang dilakukan pada sejumlah tahapan, setiap tahap
akan menghasilkan produk kerja dengan bentuk yang berorientasi objek.
(Schmuller, 1999).
Tahap yang terdapat dalam GRAPPLE tidak disusun dalam bentuk yang
statis sehingga setiap tahap dapat dikerjakan berulang kali dengan urutan kerja
yang tidak harus sesuai dengan urutan yang ada. Segmen-segmen yang digunakan
dalam GRAPPLE mencakup analisis kebutuhan sistem, pengembangan model dan
diagram, pembuatan code hingga tahap instalasi dan evaluasi.
1. Requirements Gathering
Dalam tahap ini dilakukan analisis terhadap masalah, fungsi dan
komponen produk yang akan dibuat (system requirements). Tahap ini
penting untuk tahap yang lain, karena tahap lain tidak dapat dibuat
sesuai dengan yang diinginkan jika tidak memahami produk yang akan
dibuat.
Tahap requirements gathering ini, dibagi dalam beberapa sub tahap,
diantaranya :
a. Discovering business processes
Tahap ini adalah tahap dimana seorang pengembang perangkat
lunak mengetahui dan memahami apa yang diinginkan oleh klien.
Untuk dapat memahami apa yang diinginkan klien, dapat
dilakukan wawancara dengan mengajukan pertanyaan-pertanyaan
yang relevan tentang perangkat lunak yang ingin dikembangkan.
b. Analisisa Proses Bisnis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Pada tahap ini, pengembang melakukan analisa terhadap interview
yang telah dilakukan untuk mendapatkan sebuah pemahaman yang
solid tentang apa yang diinginkan klien. Hasil akhir yang ingin
didapatkan pada tahap ini adalah mendapatkan konsep perangkat
lunak yang akan dikembangkan.
c. Identifikasi Sistem
Pada tahap ini, pengembang akan melakukan identifikasi tentang
adakah perangkat lunak lain yang dapat bekerja sama dengan
perangkat lunak yang akan dikembangkan, ataupun adakah
perangkat lunak lain yang bergantung pada perangkat lunak ini.
2. Analysis
Merupakan tahap pengembangan model dari data dan informasi yang
diperoleh pada requiremens gathering. Model merupakan bentuk
transisi dari informasi dasar kedalam bentuk model dan diagram.
Tahap analisisa ini, dibagi dalam 2 tahap, diantaranya:
a. Analisis Fungsional
Pada analisis fungsional ini, pengembang akan mendeskripsikan
tentang hal-hal yang dapat dilakukan oleh aplikasi.
b. Analisis non-fungsional
Pada analisis non-fungsional ini, pengembangan akan
mendeskripsikan tentang batasan dari fasilitas yang disediakan
oleh aplikasi.
3. Design
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Design merupakan tahap implementasi dan perancangan dari model dan
diagram yang telah dianalisis. Dalam tahap ini akan dikembangkan
sejumlah objek diagram dengan fungsi, interaksi dan operasi tertentu.
Diagram-diagram tersebut antara lain akan menunjukkan proses dan
aktifitas pada sistem, rancangan data dan penyimpanan data, serta
rancangan antarmuka.
Tahap ini memiliki 2 sub tahap, diantaranya:
a. Perancangan Aplikasi
Tahap ini adalah tahap dimana sebuah aplikasi dirancang. Pada
tahap akan dibuat rancangan pengamanan, use case diagram,
narasi use case, diagram konteks, data flow diagram, dan entity
relational diagram.
b. Perancangan Basis Data
Pada tahap perancangan ini, akan dijelaskan tabel-tabel yang
digunakan sebagai sarana penyimpanan data.
c. Perancangan Interface
Pada tahap ini kan dijelaskan tentang struktur menu dan desain
antarmuka.
4. Development
Development merupakan tahap penerapan model dan diagram yang
telah terbentuk, antara lain dengan melakukan pengembangan source
code, pengecekan dan tes code, serta pembuatan user interface.
Pada tahap ini, akan dijelaskan pula beberapa sub tahap, seperti:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
a. Pembahasan aplikasi
Pada tahap ini akan dibahas tentang fungsi koding program dan
peranannya pada aplikasi yang akan dibangun.
b. Pembahasan pengamanan aplikasi
Pada tahap ini akan dibahas tentang bagaimana cara pengamanan
aplikasi yang akan dibangun.
c. Hasil aplikasi
Pada tahap ini akan dibahas tentang tampilan hasil aplikasi.
5. Deployment
Merupakan tahap terakhir yang dilakukan setelah development. Sistem
yang terbentuk akan integrasikan dengan hardware maupun dengan
sistem operasi yang digunakan. Pada tahap ini juga dilakukan proses
pengujian pengamanan aplikasi yang telah berhasil dibangun.
2.10 Unified Modeling Language (UML)
Unified Modelling Language (UML) adalah keluarga notasi grafis yang
didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain
sistem perangkat lunak, khususnya sistem yang dibangun menggunakan
pemrograman berorientasi objek (Fowler, 2005).
UML merupakan kesatuan dari bahasa pemodelan yang dikembangkan
oleh Booch, Object Modeling Technique(OMT) dan Object Oriented Software
Engeneering(OOSE). Model Booch dari Grandy Booch sangat terkenal dengan
nama metode Desain Object Oriented. Keunggulan dari metode Booch adalah
pada detail dan kayanya dengan notasi dan element. Pemodelan dengan OMT
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
yang dikembangkan oleh Runbaugh didasarkan pada analisis terstruktur dan
pemodelan entity-relationship. Keunggulan dari metode ini adalah dalam
penotasian yang mendukung semua konsep OO. Metode OOSE dari Jacobson
lebih memberi penekanan pada use case. Keunggulan dari metode ini adalah
mudah dipelajari, karena memiliki notasi yang sederhanana namun mencangkup
seluruh tahapan dalam rekayasa perangkat lunak (Munawar, 2005).
2.11 AJAX
AJAX merupakan sebuah kombinasi dari beberapa teknologi ((X)HTML,
CSS, JavaScript, Document Object Model DOM) dan XMLHttpRequest) yang
membuat sebuah halaman web dapat di-refresh dari server tanpa harus me-refresh
seluruh bagian dari halaman web, sehingga meningkatkan experience seorang user
ketika menggunakannya. AJAX bukanlah sebuah teknologi, tetapi sebuah teknik
dalam aplikasi web.
2.12 Software yang Digunakan
2.12.1 XAMPP
XAMPP merupakan sebuah tool yang menyediakan beberapa paket
perangkat lunak ke dalam satu buah paket. Dengan menginstal XAMPP,
tidak perlu lagi melakukan instalasi dan konfigurasi web server Apache,
PHP, dan MySQL secara manual. XAMPP akan menginstalasi dan
mengonfigurasinya secara otomatis.
2.12.2 PSPad
PSPad adalah sebuah perangkat lunak gratis yang berguna sebagai
editor teks. PSPad memiliki banyak fitur yang berorientasi pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
pembangunan perangkat lunak, sintaks dan mengedit hex. Serta aplikasi
ini dirancang sebagai universal GUI untuk mengedit bahasa pemrograman
Web seperti PHP, Perl, HTML, dan Java.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
BAB III
ANALISIS DAN PERANCANGAN
Ada tiga tahap dalam metodologi GRAPPLE yang akan dibahas dalam bab ini
diantaranya adalah tahap Requirement Gathering (Perencanaan Kebutuhan), tahap
Analysis (Analisis) dan tahap Design (Perancangan). Untuk tahap Analysis akan
dirancang diagram use case, sedangkan dalam tahap Design akan dibahas
perancangan database, dan perancangan aplikasi. Sedangkan untuk pengamanan
dari website Tes Online ini sendiri akan dilakukan pada fase
pengembangan(deployment).
3.1 Requirement Gathering (Perencanaan Kebutuhan)
Tahap Requirements Gathering merupakan tahap untuk menganalisis
masalah, fungsi dan komponen produk yang akan dibuat dan hasil dari tahap ini
adalah sebuah dokumen kebutuhan yang meliputi analisis domain, identifikasi
sistem dan analisis kebutuhan sistem.
3.1.1 Discovering Business Processes
Pada tahap ini, penulis mengumpulkan beberapa data mengenai
ketertarikan mahasiswa akan tes online. Data dikumpulkan dengan
mengadakan survei di kampus Mrican dan Paingan universitas Sanata
Dharma.
Dari hasil survei dibuat klasifikasi interval berdasarkan Basic Statistic
for Social Research (Champion, D.J., tahun) untuk menentukan apakah tes
online lebih baik dari pada tes tertulis dan digunakan untuk mengukur minat
mahasiswa tentang tes online.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
3.1.2 Analisisa Proses Bisnis
Hasil survei menunjukkan bahwa minat mahasiwa tentang tes online
sangat besar. Selain itu, mahasiswa peserta survei juga menilai bahwa tes
online lebih baik dari pada tes tertulis. Keunggulan tes online yang dinilai
mahasiswa adalah keunggulan penghematan biaya dan waktu. Serta
keunggulan terhadap pengadaan tes online yang tidak terikat dengan tempat
(fleksibel). Hasil dan perhitungan survei dapat dilihat lebih lanjut pada
lampiran.
Aplikasi tes online adalah aplikasi berbasis web, yang dapat
digunakan oleh pengguna tanpa perlu melakukan proses instalasi dari awal.
3.1.3 Identifikasi Sistem
Identifikasi system ini akan menunjukkan tentang perangkat keras dan
perangkat lunak yang akan digunakan untuk membuat dan mengembangkan
aplikasi tes online berbasis web.
Perangkat Lunak yang digunakan
Untuk mendukung aplikasi ini, dibutuhkan beberapa perangkat
lunak yang akan digunakan, diantaranya:
1. Microsoft Windows XP SP 2, sebagai system operasi
2. XAMPP, sebagai web server localhost
3. MySQL, sebagai system pengelola basisdata
4. Mozilla, Chrome sebagai web browser.
Perangkat Keras yang digunakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Perangkat keras yang digunakan dalam pengembangan
aplikasi ini adalah komputer dengan spesifikasi Intel Dual Core
@2.10 GHz, RAM 2 GB, VGA MSI dengan chipset NVIDIA
9500GT, HDD WDC 250 GB.
3.2 Analysis
Merupakan proses untuk menganalisa hasil dari proses Requirement
Gathering dimana hasil analisa tersebut diwujudkan dalam bentuk pemodelan
menggunakan diagram UML. Ada dua point penting dalam tahap analysis yaitu
analisis fungsional dan analisis non fungsional.
3.2.1 Analysis Fungsional
Analisis fungsional memberikan informasi mengenai kegunaan utama
aplikasi Tes Online. Ada beberapa bagian dari sistem Tes Online yang akan
dijelaskan pada analisis fungsional ini.
a. Peserta
Tabel 3.1 : Analisis Fungsional user Peserta
Kode Kebutuhan Fungsional Keterangan
SRS-TO-001 Pendaftaran Kategori menu yang digunakan oleh
peserta untuk melakukan proses
pendaftaran sebagai mahasiswa baru
SRS-TO-002 Petunjuk Soal Kategori menu yang digunakan oleh
peserta untuk melihat petunjuk dan
aturan pengerjaan Tes Online. Setelah
peserta ujian Tes Online selesai
membaca petunjuk dan aturan
pengerjaan, maka peserta dapat meng-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
klik tombol mulai untuk memulai
mengerjakan.
SRS-TO-003 Soal Kategori menu yang digunakan untuk
menjawab soal-soal ujian tes online
SRS-TO-004 Komentar Kategori menu yang digunakan untuk
memberikan kesan dan pesan guna
perkembangan web Tes Online ini.
a. Administrator
Tabel 3.2 : Analisis Fungsional user Administrator
Kode Kebutuhan Fungsional Keterangan
SRS-TOA-
001
Login Menu utama yang akan ditampilkan
saat mengakses halaman
administrator.
SRS-TOA-
002
Manajemen Hasil Tes
Online
Kategori menu untuk mengelola data
pendaftaran dan jawaban dari para
peserta.
SRS-TOA-
003
Edit User Administrator Kategori menu untuk mengganti data
diri administrator. Pada menu ini
administrator dapat mengganti
username, password, nama, dan email
yang digunakannya untuk melakukan
proses login.
SRS-TOA-
004
Edit Petunjuk Kategori menu ini berfungsi untuk
melakukan proses pengeditan petunjuk
pengerjaan soal tes online.
SRS-TOA-
005
Manajemen Komentar Kategori menu ini berfungsi untuk
memanajemen komentar-komentar
yang diisikan oleh peserta.
SRS-TOA-
006
Manajemen Kata Jelek Kategori menu ini berfungsi untuk
memanajemen kata-kata jelek yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
ingin disensor pada halaman
komentar. Sehingga dapat mencegah
komentar-komentar yang mengandung
nilai SARA.
SRS-TOA-
007
Manajemen Soal dan
Jawaban
Kategori menu ini berfungsi untuk
memanajemen soal dan jawaban yang
akan digunakan pada halaman soal.
3.2.2 Analysis Non Fungsional
Analysis non fungsional memberikan informasi mengenai identifikasi
batasan dari fasilitas yang disediakan oleh aplikasi ini. Adapun analisis non
fungsional dari aplikasi ini, antara lain:
1. Performansi
a. Tampilan aplikasi terlihat sangat baik pada browser Mozilla
firefox dan Google Chrome.
b. Aplikasi dan ujian tes masuk akan berjalan lancar jika
pengguna memberikan inputan dengan benar dan lengkap.
2. Batasan Memori
Batasan minimal memori yang dapat digunakan untuk
penyimpanan data adalah 1 gigabytes.
3. Modus Operasi
a. Aplikasi ini hanya dapat diakses selama ujian tes masuk online
diadakan.
b. Pengguna diharuskan paham petunjuk urutan pelaksaanan ujian
tes masuk online yang dijelaskan oleh universitas terkait.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
3.3 Design
Tahap ini dibuat berdasarkan hasil dari tahap analisis. Dalam tahap ini
terdapat perancangan database, perancangan interface dan perancangan aplikasi.
3.3.1 Perancangan Aplikasi
3.3.1.1 Use Case Diagram
Pada aplikasi ini, terdapat 2 jenis aktor. Pertama, aktor peserta
dan aktor administrator. Untuk memberikan penjelasan kegunaan utama
Tes Online, maka melalui use case diagram dapat dilihat peran setiap
aktor yang terlibat di aplikasi ini.
a. Admin
Admin merupakan pihak yang mengelola website Tes Online, adapun
fungsi-fungsi yang dapat digunakan oleh admin akan dijelaskan oleh
use case di bawah ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Gambar 3.1 : Diagram Use Case Admin
Narasi Use Case :
Admin
Login
Man. Soal &
Jawaban
Edit Petunjuk
Man. Hasil Tes
Online
Edit User
Administrator
Logout
<<depends
on>>
Man. Komentar
Man. Kata Jelek
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Narasi use case untuk aktor administrator akan dideskripsikan dalam
bentuk tabel skenario use case.
Nama Use Case : Login
Aktor : Administrator
Tabel 3.3 : Tabel skenario use case login
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Menampilkan halaman login
2. Memasukkan username dan
password
3. Jika username, dan password benar
maka sistem akan menampilkan
halaman home administrator
Skenario Altenatif
4. Jika username, dan password salah,
maka sistem akan menampilkan
halaman yang menjelaskan bahwa
username, dan password salah, dan
harus mengulangi proses login
Nama Use Case : Manajemen hasil tes online
Aktor : Administrator
Tabel 3.4 : Tabel skenario manajemen hasil tes online
Aksi Aktor Reaksi Sistem
Skenario normal : berhasil login dan aktor memilih menu hasil tes online
1. Menampilkan halaman manajemen
hasil tes online.
2. Meng-klik tombol detail
3. Menampilkan salah satu detail
peserta ujian tes online berupa identitas
lengkap dan jawaban tes onlinenya.
Skenario Alternatif : kembali ke halaman manajemen hasil tes online
1. Meng-klik tombol hapus
2. Menampilkan kotak dialog berupa
konfirmasi apakah ingin menghapus
salah satu hasil tes online atau tidak
3. Meng-klik tombol Ya
4. Menghapus salah satu hasil tes online
yang dimaksud administrator.
Skenario Alternatif
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
3. Meng-klik tombol Tidak
4. Menampilkan halaman manajemen
hasil tes online
Skenario Alternatif : kembali ke halaman manajemen hasil tes online
1. Meng-klik tombol cetak
2. Membuka halaman baru berupa surat
pernyataan yang menyatakan calon
mahasiswa diterima atau tidak.
Nama Use Case : Edit User Administrator
Aktor : Administrator
Tabel 3.5 : Tabel skenario edit user administrator
Aksi Aktor Reaksi Sistem
Skenario Normal : Memilih menu manajemen administrator
1. Menampilkan halaman manajemen
administrator
2. Meng-klik tombol edit
3. Menampilkan halaman untuk
mengedit username, password, nama
lengkap dan email administrator.
4. Mengubah data administrator dan
meng-klik tombol update
5. Menyimpan data pada tabel user di
basisdata dan kembali ke halaman
manajemen administrator
Skenario Altenatif : jika meng-klik tombol batal
5. Kembali ke halaman manajemen
administrator tanpa menyimpan data
yang telah diubah.
Nama Use Case : Edit Petunjuk
Aktor : Administrator
Tabel 3.6 : Tabel skenario edit petunjuk pengerjaan tes online
Aksi Aktor Reaksi Sistem
Skenario Normal : memilih menu manajemen petunjuk
1. Menampilkan halaman manajemen
petunjuk
2. Meng-klik tombol edit
3. Menampilkan halaman edit petunjuk
soal
4. Melakukan proses pengeditan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
petunjuk soal dan meng-klik tombol
update
5. Menyimpan data pada tabel petunjuk
dan kembali ke halaman manajemen
petunjuk.
Skenario Altenatif : meng-klik tombol bayal
5. Kembali ke halaman manajemen
petunjuk tanpa menyimpan data apapun.
Nama Use Case : Manajemen Komentar
Aktor : Administrator
Tabel 3.7 : Tabel skenario manajemen komentar
Aksi Aktor Reaksi Sistem
Skenario Normal : memilih menu manajemen komentar
1. Menampilkan halaman manajemen
komentar
2. Meng-klik tombol detail
3. Menampilkan salah satu detail
komentar yang dimaksud administrator.
Skenario Altenatif : kembali ke halaman manajemen komentar dan meng-klik
tombol hapus
3. Menampilkan kotak dialog berupa
konfirmasi apakah ingin menghapus
komentar yang dimaksud atau tidak
4. Meng-klik tombol Ya
5. Menghapus data komentar yang
dimaksud oleh administrator.
Skenario Alternatif : meng-klik tombol tidak
5. Kembali ke halaman manajemen
komentar
Nama Use Case : Manajemen Kata jelek
Aktor : Administrator
Tabel 3.8 : Tabel skenario manajemen kata jelek
Aksi Aktor Reaksi Sistem
Skenario Normal : memilih menu kata jelek
1. Menampilkan halaman manajemen
kata jelek
2. Meng-klik tombol tambah kata jelek
3. Menampilkan halaman tambah kata
jelek
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
4. Mengisikan kata jelek dan kata ganti,
serta mengklik tombol simpan
5. Menyimpan kata jelek di tabel kata
jelek dan kembali ke halaman
manajemen kata jelek.
Skenario Altenatif : meng-klik tombol batal
5. Kembali ke halaman manajemen kata
jelek tanpa menyimpan apapun
Skenario Alternatif : kembali ke halaman man. kata jelek dan meng-klik tombol
edit
3. Menampilkan halaman edit kata jelek
4. Meng-edit kata jelek dan kata ganti
serta meng-klik tombol simpan
5. Menyimpan kata jelek di tabel kata
jelek dan kembali ke halaman
manajemen kata jelek.
Skenario Altenatif : meng-klik tombol batal
5. Kembali ke halaman manajemen kata
jelek tanpa menyimpan apapun
Skenario Alternatif : kembali ke halaman man. kata jelek dan meng-klik tombol
hapus
3. Menampilkan sebuah kotak dialog
yang berisi konfirmasi apakah ingin
menghapus kata jelek yang dimaksud
atau tidak.
4. Meng-klik tombol Ya
5. Menghapus kata jelek yang dimaksud
dan kembali ke halaman manajemen
kata jelek.
Skenario Altenatif : meng-klik tombol Tidak
5. Kembali ke halaman manajemen kata
jelek tanpa menghapus apapun.
Nama Use Case : Manajemen soal dan jawaban
Aktor : Administrator
Tabel 3.9 : Tabel skenario manajemen soal dan jawaban
Aksi Aktor Reaksi Sistem
Skenario Normal : memilih menu manajemen soal dan jawaban
1. Menampilkan halaman manajemen
soal dan jawaban
2. Meng-klik tombol tambah soal
3. Menampilkan halaman tambah soal
dan jawaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
4. Mengisikan soal dan jawaban, serta
menetapkan keterangan jawaban. Dan
mengklik tombol simpan.
5. Menyimpan soal dan jawaban di
basisdata dan kembali ke halaman
manajemen soal dan jawaban
Skenario Altenatif : mengklik tombol batal
5. Kembali ke halaman manajemen soal
dan jawaban tanpa menyimpan apapun.
Skenario Alternatif : kembali ke halaman manajemen soal dan mengklik tombol
edit
3. Menampilkan halaman edit soal dan
jawaban
4. Mengedit soal dan jawaban, serta
mengedit keterangan jawaban. Dan
mengklik tombol simpan.
5. Menyimpan soal dan jawaban di
basisdata dan kembali ke halaman
manajemen soal dan jawaban
Skenario Altenatif : mengklik tombol batal
5. Kembali ke halaman manajemen soal
dan jawaban tanpa menyimpan apapun.
Skenario Alternatif : kembali ke halaman manajemen soal dan mengklik tombol
hapus
3. Menampilkan kotak dialog yang
menanyakan apakah akan menghapus
soal dan jawaban yang dimaksud atau
tidak.
4. Mengklik tombol Ya
5. Menghapus soal dan jawaban dan
kembali ke halaman manajemen soal
dan jawaban.
Skenario Altenatif : mengklik tombol Tidak
5. Kembali ke halaman manajemen soal
dan jawaban tanpa menghapus apapun.
Nama Use Case : Logout
Aktor : Administrator
Tabel 3.10 : Tabel skenario logout
Aksi Aktor Reaksi Sistem
Skenario Normal : memilih menu
logout
1. Keluar dari sistem dan menampilkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
halaman login
b. Peserta
Aktor peserta merupakan pihak yang dapat melakukan beberapa
proses secara berurutan pada website Tes Online ini, maksudnya
adalah peserta tidak dapat mengakses halaman berikutnya tanpa
mengakses halaman sebelumnya(<<depends on>>). Berikut adalah
fungsi-fungsi yang dapat digunakan peserta:
Gambar 3.2 : Diagram Use Case Peserta
Narasi Use Case :
Narasis use case untuk user peserta ini akan dideskripsikan
menggunakan tabel skenario use case berikut.
Nama Use Case : Pendaftaran
Peserta
Pendaftaran
Petunjuk
Soal dan Jawaban
<<depends on>>
<<depends on>>
Komentar
<<depends on>>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Aktor : Peserta
Tabel 3.11 : Tabel skenario pendaftaran
Aksi Aktor Reaksi Sistem
Skenario Normal : mengakses alamat website tes online
1. Menampilkan halaman pendaftaran
2. Mengisikan form pendaftaran
dengan lengkap dan benar serta meng-
klik tombol submit
3. Jika form pendaftaran telah diisikan
dengan lengkap dan benar, maka data
akan disimpan dan sistem akan
menampilkan halaman petunjuk soal
Nama Use Case : Petunjuk
Aktor : Peserta
Tabel 3.12 : Tabel skenario petunjuk
Aksi Aktor Reaksi Sistem
Skenario Normal : selesai melakukan proses pendaftaran
1. Menampilkan halaman petunjuk
pengerjaan soal dan aturan tes online
2. Membaca petunjuk pengerjaan soal
dan aturan tes online kemudian meng-
klik tombol mulai.
3. Menampilkan halaman soal dan
memulai menghitung mundur waktu tes
online.
Nama Use Case : Soal dan Jawaban
Aktor : Peserta
Tabel 3.13 : Tabel skenario soal dan jawaban
Aksi Aktor Reaksi Sistem
Skenario Normal : selesai membaca petunjuk dan mengklik tombol mulai
1. Menampilkan halaman soal dan
jawaban secara random, serta memulai
menghitung mundur waktu tes online
2. Memilih jawaban-jawaban yang
telah disediakan untuk setiap soal dan
mengklik tombol kirim jika sudah
selesai.
3. Jika selesai sebelum waktu yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
ditentukan, maka data akan disimpan
dan sistem menampilkan halaman
komentar.
Skenario Altenatif
3. Jika waktu telah habis, maka aplikasi
secara otomatis akan men-submit data
jawaban yang telah dijawab peserta.
Nama Use Case : Komentar
Aktor : Peserta
Tabel 3.14 : Tabel skenario komentar
Aksi Aktor Reaksi Sistem
Skenario Normal : selesai menjawab soal atau waktu tes telah habis
1. Menampilkan halaman komentar dan
komentar-komentar yang telah ada.
2. Mengisikan form komentar yang
berada paling bawah pada tampilan
browser dan mengklik tombol kirim.
3. Jika form komentar diisikan dengan
lengkap dan benar, maka sistem akan
menampilkan halaman berupa ucapan
terima kasih selama beberapa detik dan
kembali ke halaman komentar.
Skenario Altenatif
3. Jika form komentar belum diisikan
dengan lengkap dan benar, maka sistem
akan menampilkan kembali halaman
pendaftaran beserta ajax berupa
pemberitahuan, bagian-bagian apa saja
yang masih kurang.
3.3.1.2 Diagram Konteks
Diagram konteks dibawah menggambarkan bagaimana aplikasi
tes online berbasis web bekerja. Mulai dari inputan yang dimasukkan
sampai output yang akan diterima.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Gambar 3.3 : Diagram Konteks
Tabel 3.15 : Keterangan Diagram konteks
A1
(Input Admin)
A2
(Output Admin)
P1
(Output Peserta)
P2
(Input Peserta)
1) Username dan
password
2) Edit petunjuk
3) Kata jelek
4) Soal, Jawaban
dan nilai jawaban
5) Captcha Text
1) Konfirmasi
hapus data
2) Detail hasil tes
3) Cetak hasil tes
4) Detail komentar
5) Captcha Image
1) Validasi Ajax
2) Petunjuk soal
3) Soal dan
jawaban
4) Countdown
Timer
5) Komentar
6) Captcha Image
1) Data
pendaftaran
2) Pilihan
jawaban
3) Data komentar
4) Captcha Text
ADMINISTRAT
OR
APLIKASI TES
ONLINE
BERBASIS WEB
PESERTA
A1
P2
P1
A2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
3.3.1.3 Diagram Berjenjang
Gambar 3.4 : Diagram Berjenjang user Peserta
0
Aplikasi Tes
Online
1
Pendaftaran
2
Petunjuk
3
Soal dan
Jawaban
4
Komentar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Gambar 3.5 : Diagram Berjenjang user Admin
0
Aplikasi
Tes
Online
6
Man.
Kata
Jelek
7
Man.
Soal dan
Jawaban
5
Man.
Komenta
r
4
Edit
Petunjuk
3
Edit
User
Admin
2
Man.
Hasil
Tes
1
Login
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
3.3.1.4 Data Flow Diagram (DFD)
Gambar 3.6 : DFD Level 1 untuk user peserta
Nama, tempat, tanggal, jk, agama,
alamat, asal, jur, info, telp, pil
judul, isi
Id_soal, soal, id_jawaban,
jawaban
1
Pendaftaran
2
Petunjuk
3
Soal dan
Jawaban
4
Komentar
Peserta
hasilsementara
petunjuk
jawaban
katajelek
komentar
soal
Komentar_nama,
komentar_email,
komentar_isi
Nama, tempat, tanggal, jk, agama,
alamat, asal, jur, info, telp, pil
skor
Komentar_nama,
komentar_email,
komentar_isi
Komentar_nama, komentar_email,
komentar_isi
judul, isi
Id_soal, soal
Id_jawaban, jawaban
Komentar_nama,
komentar_email,
komentar_isi
Kata, ganti
ujian
Id_pendaftaran,
id_jawaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Gambar 3.7 : DFD Level 1 untuk user administrator
Nama, tempat, tanggal, jk,
agama, alamat, asal, jur, info, telp, pil, skor
1
Login
Administrator
user
hasilsementara
Ujian
Jawaban
user
petunjuk
Username, password
namalengkap Username, password
jawaban
Id_pendaftaran,
id_jawaban
Nama, tempat, tanggal, jk, agama, alamat, asal, jur, info, telp, pil,
jawaban, preview, nama, pil1, skor
Id_user, password,
namalengkap, email
Id_user, password,
namalengkap, email Id_user, password,
namalengkap, email
Id_user, password,
namalengkap, email Judul, isi
Judul, isi
Judul, isi
Judul, isi
2
Manajemen
Hasil Tes
Online
3
Edit user
Administrator
6
Manajemen
Kata jelek
5
Manajemen
Komentar
4
Edit Petunjuk
detail(no), cetak(no),
hapus(no)
Komentar_id, Hapus(Komentar_id)
Komentar_nama,
komentar_email, komentar_isi
Kata, ganti
Kata, ganti
komentar
Komentar_id
Komentar_nama,
komentar_email,
komentar_isi
user
Kata, ganti
Kata, ganti
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Gambar 3.7.1 : Lanjutan DFD Level 1 untuk administrator
Gambar 3.8 : DFD Level 2 untuk user administrator
2
2.3
Hapus Hasil Tes
Online
2.2
Cetak Hasil Tes
Online
2.1
Detail Tes Online
Administrator
hasilsementara
Ujian
Jawaban
jawaban
Id_pendaftaran,
id_jawaban
Nama, tempat, tanggal, jk, agama, alamat, asal, jur, info, telp, pil
skor
Detail(no)
Nama, tempat, tanggal, jk,
agama, alamat, asal, jur,
info, telp, pil, jawaban
Nama, tempat, tanggal, jk, agama, alamat, asal, jur, info,
telp, pil
hapus(no)
Nama, pil, skor
cetak(no)
preview
id_soal, soal, id_jawaban,
jawaban, keterangan
id_soal, soal, id_jawaban,
jawaban, keterangan
7
Manajemen
Soal dan
Jawaban
Administrato
r
soal id_soal, soal, id_jawaban,
jawaban, keterangan
id_soal, soal, id_jawaban,
jawaban, keterangan
id_soal, soal, id_jawaban,
jawaban, keterangan
jawaban
id_soal, soal, id_jawaban,
jawaban, keterangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
Gambar 3.8.1 : Lanjutan DFD Level 2 untuk user
administrator
6
6.3
Hapus Kata jelek
6.2
Edit kata jelek
6.1
Tambah kata
jelek
Administrator
user
5
5.2
Hapus Komentar
5.1
Detail Komentar
Komentar_id
komentar
Komentar_nama,
komentar_email,
komentar_isi
Komentar_nama,
komentar_email,
komentar_isi
Hapus(Komentar_id)
Komentar_id
Komentar_id
Komentar_id
Komentar_nama,
komentar_email,
komentar_isi
Kata, ganti
Kata, ganti
Kata, ganti
Kata, ganti
Hapus(no)
Kata, ganti
Kata, ganti
Kata, ganti
Kata, ganti
Kata, ganti
Kata, ganti
Kata, ganti
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Gambar 3.8.2 : Lanjutan DFD Level 2 untuk administrator
3.3.1.5 ER Diagram
Pada ER Diagram ini, akan dapat dilihat relasi antar tabel.
data
data data
data
data
data
data
data
data
data
data
data
id_soal, soal, id_jawaban,
jawaban, keterangan
id_soal, soal, id_jawaban,
jawaban, keterangan
id_soal, soal, id_jawaban,
jawaban, keterangan
id_soal, soal, id_jawaban,
jawaban, keterangan
id_soal, soal, id_jawaban,
jawaban, keterangan
7
7.3
Hapus soal dan
jawaban
7.2
Tambah soal dan
jawaban
7.1
Edit soal dan
jawaban
Administrator
Soal
Jawaban
id_soal, soal, id_jawaban,
jawaban, keterangan
Hapus(no)
Keterangan “data” : id_soal, soal, id_jawaban, jawaban, keterangan
data
id_soal, soal, id_jawaban,
jawaban, keterangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Gambar 3.9 : Entity Relational Diagram
3.3.2 Perancangan Database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Dalam pembuatan sistem ini dibutuhkan rancangan basis data yang
memadai sesuai dengan kebutuhan sistem itu sendiri. Rancangan tabel merupakan
garis besar dari seluruh proses komputerisasi pengolahan data yang akan
dilakukan, tanpa tabel sistem pengolahan data tidak dapat berjalan. Perancangan
ini mencakup penentuan kunci primer, kunci tamu dan kunci lainnya untuk
menghubungkan satu tabel dengan tabel lainnya. Adapun rancangan tabel-tabel
tersebut antara lain :
1. Tabel Hasil Tes Online
Fungsi dari tabel ini adalah menyimpan data dari para peserta Tes
Online, data-data tersebut disimpan dengan format sebagai berikut.
Nama Tabel : hasilsementara
Kunci Primer : no
Jumlah Field : 14
Tabel 3.16 : Tabel hasilsementara
No Nama Field Type Panjang Keterangan
1. Id_pendaftaran int 50 Nomor pada table(auto-
increment) sebagai nomor
pendaftaran
2. nama varchar 50 Nama Peserta Ujian
3. tempat varchar 10 Tempat Lahir Peserta
4. tanggal date Tanggal Lahir Peserta
5. jk varchar 10 Jenis Kelamin Peserta
6. agama varchar 20 Agama Peserta
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
7. alamat varchar 100 Alamat Peserta
8. asal varchar 100 Kota Asal Peserta
9. jur varchar 50 Jurusan SMA Peserta
10. info varchar 100 Info tentang Universitas
didapat darimana.
11. telepon varchar 100 Telepon Peserta
12. pil1 varchar 100 Pilihan Jurusan 1
14. skor varchar 3 Skor Tes Online
2. Tabel Jawaban
Fungsi dari tabel ini adalah menyimpan data jawaban dari soal
Tes Online dengan format sebagai berikut.
Nama Tabel : jawaban
Kunci Primer : id_jawaban
Jumlah Field : 4
Tabel 3.17 : Tabel Jawaban
No Nama Field Type Panjang Keterangan
1. id_jawaban int 11 nomor id_jawaban (auto-
increment)
2. id_soal int 11 nomor id_soal untuk
menyesuaikan soal dan
jawaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
3. jawaban varchar 100 isi jawaban
4. keterangan enum „Salah‟, „Benar‟ nilai dari jawaban benar
atau salah
3. Tabel Modul Administrator
Fungsi dari tabel ini adalah menyimpan modul-modul yang akan
ditampilkan pada halaman administrator dengan format sebagai berikut.
Nama Tabel : modul
Kunci Primer : id_modul
Jumlah Field : 9
Tabel 3.18 : Tabel Modul
No Nama Field Type Panjang Keterangan
1. id_modul int 5 nomor id_modul (auto-
increment)
2. nama_modul varchar 50 nama modul/fitur
3. link varchar 100 lokasi/alamat yang akan dituju,
jika modul diakses
4. publish enum „Y‟ , „N‟ apakah modul/fitur akan
dipublish atau tidak.
5. status enum „user‟, „admin‟ siapakah yang dapat melihat fitur
yang dipublish tadi.
6. aktif enum „Y‟, „N‟ apakah modul/fitur yang sudah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
dipublish sudah dapat dipakai
atau tidak.
7. urutan int 5 urutan fitur.
4. Tabel Petunjuk pengerjaan soal Tes Online
Fungsi dari tabel ini adalah menyimpan data petunjuk pengerjaan
soal dari Tes Online dengan format sebagai berikut.
Nama Tabel : petunjuk
Kunci Primer : id
Jumlah Field : 3
Tabel 3.19 : Tabel petunjuk
No Nama Field Type Panjang Keterangan
1. id int 10 nomor id (auto-increment)
2. judul varchar 100 judul pada petunjuk
pengerjaan Tes Online
3. isi text isi dari petunjuk
pengerjaan Tes Online
5. Tabel Soal
Fungsi dari tabel ini adalah menyimpan data soal dari Tes Online
dengan format sebagai berikut.
Nama Tabel : soal
Kunci Primer : id_soal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Jumlah Field : 2
Tabel 3.20 : Tabel Soal
No Nama Field Type Panjang Keterangan
1. id_soal int 11 nomor id_soal (auto-
increment)
2. soal text soal Tes Online
6. Tabel Penyimpanan Jawaban Peserta
Fungsi dari tabel ini adalah menyimpan data hasil dari jawaban-
jawaban peserta Tes Online dengan format sebagai berikut.
Nama Tabel : ujian
Kunci Primer : id_ujian
Jumlah Field : 3
Tabel 3.21 : Tabel Ujian
No Nama Field Type Panjang Keterangan
1. id_ujian int 11 nomor id_ujian (auto-
increment)
2. id_pendaftaran int 11 nomor id_pendaftaran
peserta
3. id_jawaban int 11 nomor id_jawaban peserta
yang dicocokkan dengan
id_pendaftaran nya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
7. Tabel data Administrator
Fungsi dari tabel ini adalah menyimpan data administrator dengan
format sebagai berikut.
Nama Tabel : user
Kunci Primer : id_user
Jumlah Field : 5
Tabel 3.22 : Tabel User
No Nama Field Type Panjang Keterangan
1. id_user varchar 50 nomor id_user
2. password varchar 50 password admin
(menggunakan enkripsi
MD5)
3. nama_lengkap varchar 100 nama lengkap admin
4. email varchar 100 email admin
5. level varchar 50 level dari user (ditetapkan
sebagai admin)
8. Tabel Data Kata Jelek
Fungsi dari tabel ini adalah menyimpan data administrator dengan
format sebagai berikut.
Nama Tabel : katajelek
Kunci Primer : id_jelek
Jumlah Field : 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Tabel 3.23 : Tabel Katajelek
No Nama Field Type Panjang Keterangan
1. id_jelek int 11 nomor kata jelek(auto
increment)
2. Kata varchar 60 Kata jelek yang akan
disensor
3. ganti varchar 60 Kata ganti untuk kata
jelek yang akan disensor
9. Tabel Data Komentar
Fungsi dari tabel ini adalah menyimpan data administrator dengan
format sebagai berikut.
Nama Tabel : komentar
Kunci Primer : komentar_id
Jumlah Field : 5
Tabel 3.24 : Tabel Komentar
No Nama Field Type Panjang Keterangan
1. Komentar_id Int 11 nomor id komentar
2. Komentar_nama varchar 50 Nama pemberi komentar
3. Komentar_email varchar 100 Email pemberi komentar
4. Komentar_isi Text Isi komentar yang
diberikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
5. Komentar_dateti
me
datetime Mencatat waktu komentar
masuk
3.3.3 Perancangan Interface
Pada rancangan antarmuka akan dikembangkan aplikasi website dengan
teknologi PHP, dan CSS. Antarmuka atau yang lebih dikenal sebagai user
interface adalah sebah media yang menghubungkan manusia dengan komputer
agar dapat saling berinteraksi.
3.3.3.1 Rancangan Struktur Menu
Sebelum merancang antarmuka dari semua form pada aplikasi, maka untuk
lebih memudahkan dalam perancangan akan dijelaskan terlebih dahulu struktur
menu dari aplikasi. Struktur menu dibagi dalam beberapa kategori user:
1. Admin
Admin merupakan user yang berwenang untuk mengolah semua data
hasil Tes Online. Selain itu admin juga dapat mengganti passwordnya
serta mengedit petunjuk pengerjaan soal tes online dan mengelola
komentar-komentar yang diberikan peserta tes online.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Gambar 3.10 Struktur Menu Administrator
2. Peserta
Peserta merupakan user yang mengikuti ujian Tes Online ini. Pada
posisi ini user tidak dapat mengakses sebuah halaman, tanpa mengakses
halaman sebelumnya. Jadi setiap halaman ditampilkan secara berurutan.
Menu Admin
Man. Petunjuk Man. Admin Hasil Tes
Online
Detail
Hapus
Cetak
Edit data
Admin
Edit Petunjuk
Man. Komentar
Detail Komentar
Hapus Komentar Manajemen
Kata Jelek
Tambah
Hapus
Edit
Soal dan
Jawaban
Tambah
Hapus
Edit
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
Gambar 3.11 Struktur Menu Peserta
3.3.3.2 Rancangan Antarmuka Aplikasi
1. Rancangan antarmuka login
Antarmuka ini akan tampil sebelum user menggunakan menu-menu
yang disediakan website.
Menu Peserta
Pendaftaran
Petunjuk Pengerjaan
Soal Ujian
Komentar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
Gambar 3.12 Rancangan antarmuka login
Pada pengujian keamanan, halaman login administrator ini dapat
dimasuki menggunakan teknik serangan brute force. Teknik tersebut
menggunakan sebuah tools yang secara teknis melakukan proses
perulangan(looping) percobaan username dan password. Hingga
ditemukan kombinasi username dan password yang benar.
Maka dari itu, pengembang menggunakan captcha untuk mencegah
serangan tersebut. Dengan captcha ini, maka aplikasi dapat
membedakan antara manusia dan mesin. Captcha juga diganti terus
menerus secara acak. Sehingga tidak dapat ditebak oleh mesin atau
tools yang bekerja dengan metode brute force.
Gambar 3.12.1 Rancangan antarmuka login
2. Rancangan antarmuka home
Ini adalah antarmuka dari tampilan awal setelah administrator
melakukan login.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Gambar 3.13 Rancangan antarmuka home
3. Rancangan antarmuka hasil tes online
Antarmuka ini merupakan antarmuka yang menampilkan hasil dari tes
online, pada antarmuka ini administrator dapat melakukan beberapa
aksi, yaitu Melihat Detail Peserta(Biodata dan Jawaban), Mencetak
Surat Pernyataan, dan menghapus data peserta.
Gambar 3.14 Rancangan antarmuka hasil tes online
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
4. Rancangan antarmuka detail peserta tes online
Antarmuka ini adalah antarmuka yang menampilkan detail dari
peserta tes online, yaitu biodata dan jawaban.
Gambar 3.15 Rancangan antarmuka detail
5. Rancangan antarmuka cetak surat pernyataan
Antarmuka ini adalah antarmuka yang menampilkan hasil cetak surat
pernyataan penerimanaan mahasiswa baru.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
Gambar 3.16 Rancangan antarmuka cetak
6. Rancangan antarmuka Edit User Administrator
Antarmuka ini adalah antarmuka yang menampilkan halaman
manajemen administrator, dimana pada halaman ini admin dapat
mengganti username dan passwordnya.
Gambar 3.17 Rancangan antarmuka edit user admin
7. Rancangan antarmuka edit Admin
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
Antarmuka ini adalah antarmuka yang menampilkan halaman untuk
mengubah username dan password administrator.
Gambar 3.18 Rancangan antarmuka edit user admininistrator
8. Rancangan antarmuka Edit Petunjuk
Antarmuka ini menampilkan halaman untuk memanajemen petunjuk
pengerjaan soal.
Gambar 3.19 Rancangan antarmuka edit petunjuk
9. Rancangan antarmuka edit petunjuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Antarmuka ini adalah antarmuka dimana administrator melakukan
pengeditan petunjuk pengerjaan tes online
Gambar 3.20 Rancangan antarmuka edit petunjuk
10. Manajemen Komentar
Pada menu ini, seorang administrator dapat melakukan pengelolaan
pada komentar-komentar yang telah masuk.
Gambar 3.21 Rancangan antarmuka manajemen komentar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
Untuk melihat detail komentar.
Gambar 3.21.1 Rancangan antarmuka detail komentar
11. Kata jelek
Menu kata jelek adalah menu yang digunakan untuk melakukan
proses sensor otomatis pada kata yang dianggap SARA.
Gambar 3.22 Rancangan antarmuka kata jelek
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
Gambar 3.23 Rancangan antarmuka tambah kata jelek
12. Soal dan Jawaban
Menu soal dan jawaban adalah menu dimana administrator dapat
mengelola soal dan jawaban yang akan ditampilkan.
Gambar 3.24 Rancangan antarmuka soal dan jawaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
Gambar 3.25 Rancangan antarmuka tambah soal dan jawaban
13. Rancangan antarmuka pendaftaran
Antarmuka ini adalah antarmuka dimana peserta melakukan proses
pendaftaran.
Gambar 3.26 Rancangan antarmuka pendaftaran
14. Rancangan antarmuka Petunjuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
Antarmuka ini adalah antarmuka yang menampilkan petunjuk saat
pengerjaan soal ujian beserta ketentuan-ketentuan Tes.
Gambar 3.27 Rancangan antarmuka petunjuk
15. Rancangan antarmuka Soal
Antarmuka ini adalah antarmuka yang menampilkan soal-soal Tes
yang nantinya dijawab oleh peserta ujian, selain itu ditampilkan juga
timer dan nama peserta ujian Tes Online.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
Gambar 3.28 Rancangan antarmuka Soal
16. Rancangan antarmuka komentar
Antarmuka ini adalah antarmuka yang menampilkan komentar-komentar
yang telah dikirimkan oleh peserta ujian tes online.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
Gambar 3.29 Rancangan antarmuka komentar
Pada halaman komentar ini, terdapat kelemahan yang dapat
dimanfaatkan oleh para penyerang. Komentar yang di-input oleh
penyerang dapat berulang-ulang. Hal ini akan menjadi data yang tidak
diperlukan, atau spam. Ditambah lagi dengan adanya tools untuk
melakukan hal ini. Maka dari itu, pengembang menambahkan captcha
images pada halaman komentar ini. Dengan teknik ini, maka akan
dapat mencegah tools spam untuk menjalankan aksinya dengan benar
karena captcha images akan di-refresh setiap kali salah ataupun
halaman browser di-refresh.
Gambar 3.29.1 Rancangan antarmuka komentar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
BAB IV
IMPLEMENTASI
Pada bab ini akan dibahas tahap development dalam metodologi GRAPPLE
dimana menjelaskan tentang spesifikasi aplikasi dan hasil aplikasi yang telah
dibuat pada tahap analisis dan perancangan.
4.1 Pembahasan Aplikasi
Pemrogramman merupakan tahap implementasi dimana dilakukan
pengkodean berdasarkan hasil rancangan perangkat lunak yang telah dibuat,
sehingga berbentuk sistem yang sedemikian rupa seperti yang telah direncanakan.
Pengkodean ini dilakukan menggunakan bahasa pemrogramman PHP yang
mendukung versi PHP 5 ke atas, sedangkan database yang digunakan adalah
MySQL yang mampu berjalan diberbagai sistem operasi, seperti Linux, Windows,
Mac, dll.
a. Koneksi Database
Dalam setiap melakukan query ke database diperlukan perintah untuk
melakukan koneksi. Untuk menunjang hal tersebut, maka diperlukan file
koneksi yang nantinya file ini akan dipanggil oleh file-file lainnya ketika
melakukan koneksi ke database.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "ontes";
// Koneksi dan memilih database di server
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>
Modul Program 4.1 Skrip Koneksi ke Database
b. Skrip mengkonversi tanggal format Indonesia
Pada setiap penanggalan di my sql akan menggunakan standar ISO, yaitu
dengan format “YYYY:MM:DD”. Untuk dapat lebih familiar dibaca oleh
pengguna aplikasi basis web ini, maka akan dikonversi menggunakan
skrip di bawah ini menjadi format “DD:MM:YYYY”. Selain itu nama
bulan juga diganti dengan menggunakan bahasa Indonesia.
<?php
function tgl_indo($tgl){
$tanggal = substr($tgl,8,2);
$bulan = getBulan(substr($tgl,5,2));
$tahun = substr($tgl,0,4);
return $tanggal.' '.$bulan.' '.$tahun;
}
function getBulan($bln){
switch ($bln){
case 1:
return "Januari";
break;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
case 2:
return "Februari";
break;
case 3:
return "Maret";
break;
case 4:
return "April";
break;
case 5:
return "Mei";
break;
case 6:
return "Juni";
break;
case 7:
return "Juli";
break;
case 8:
return "Agustus";
break;
case 9:
return "September";
break;
case 10:
return "Oktober";
break;
case 11:
return "November";
break;
case 12:
return "Desember";
break;
}
}
?>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
Modul Program 4.2 Skrip Tanggal Indonesia
c. Skrip membuat nomor halaman.
Fungsi di bawah ini merupakan sebuah fungsi untuk menentukan nomor
halaman pada sebuah halaman website. Hal ini dikarenakan, jika data yang
dimuat terlalu banyak maka sebuah halaman website akan menghabiskan
banyak tempat untuk di-scroll ke bawah. Selain itu, fungsi ini juga dapat
menentukan seberapa banyak data yang akan ditampilkan pada sebuah
halaman. Misalnya adalah pada sebuah halaman akan ditampilkan 10 data
saja, dan kemudian akan disediakan juga link untuk masuk kehalaman
berikutnya.
<?php
class Paging
{
// Fungsi untuk mencek halaman dan posisi data
function cariPosisi($batas)
{
if(empty($_GET[halaman])){
$posisi=0;
$_GET[halaman]=1;
}
else{
$posisi = ($_GET[halaman]-1) * $batas;
}
return $posisi;
}
// Fungsi untuk menghitung total halaman
function jumlahHalaman($jmldata, $batas)
{
$jmlhalaman = ceil($jmldata/$batas);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
return $jmlhalaman;
}
// Fungsi untuk link halaman 1,2,3 ... Next, Prev, First, Last
function navHalaman($halaman_aktif, $jmlhalaman)
{
$link_halaman = "";
// Link First dan Previous
if ($halaman_aktif > 1)
{
$link_halaman .= " <a href=$_SERVER[PHP_SELF]?module=$_GET[module]
&halaman=1><< First</a> | ";
}
if (($halaman_aktif-1) > 0)
{
$previous = $halaman_aktif-1;
$link_halaman .= "<a href=$_SERVER[PHP_SELF]?module=$_GET[module]
&halaman=$previous>< Previous</a> | ";
}
// Link halaman 1,2,3, ...
for ($i=1; $i<=$jmlhalaman; $i++) {
if ($i == $halaman_aktif) {
$link_halaman .= "<b>$i</b> | "; }
else {
$link_halaman .= "<a href=$_SERVER[PHP_SELF]?module=$_GET[module]
&halaman=$i>$i</a> | "; }
$link_halaman .= " "; }
// Link Next dan Last
if ($halaman_aktif < $jmlhalaman) {
$next=$halaman_aktif+1;
$link_halaman .= " <a href=$_SERVER[PHP_SELF]?module=$_GET
[module]&halaman=$next>Next ></a> "; }
if (($halaman_aktif != $jmlhalaman) && ($jmlhalaman != 0)) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
$link_halaman .= " | <a href=$_SERVER[PHP_SELF]?module=$_GET[module]
&halaman=$jmlhalaman>Last >></a> "; }
return $link_halaman; }}
class Paging_Search
{
// Fungsi untuk mencek halaman dan posisi data
function cariPosisi($batas)
{
if(empty($_GET[halaman])){
$posisi=0;
$_GET[halaman]=1; }
else{
$posisi = ($_GET[halaman]-1) * $batas; }
return $posisi; }
// Fungsi untuk menghitung total halaman
function jumlahHalaman($jmldata, $batas) {
$jmlhalaman = ceil($jmldata/$batas);
return $jmlhalaman; }
// Fungsi untuk link halaman 1,2,3 ... Next, Prev, First, Last
function navHalaman($halaman_aktif, $jmlhalaman)
{
$link_halaman = "";
// Link First dan Previous
if ($halaman_aktif > 1) {
$link_halaman .= " <a href=$_SERVER[PHP_SELF]?module=$_GET
[module]&halaman=1&kategori=$_GET[kategori]&katakunci=$_GET[katakunci]><<
First</a> | "; }
if (($halaman_aktif-1) > 0) {
$previous = $halaman_aktif-1;
$link_halaman .= "<a href=$_SERVER[PHP_SELF]?module=$_GET
[module]&halaman=$previous&kategori=$_GET[kategori]&katakunci=$_GET[katak
unci]>< Previous</a> | "; }
// Link halaman 1,2,3, ...
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
for ($i=1; $i<=$jmlhalaman; $i++) {
if ($i == $halaman_aktif) {
$link_halaman .= "<b>$i</b> | "; }
else {
$link_halaman .= "<a href=$_SERVER[PHP_SELF]?module=$_GET[module]
&halaman=$i&kategori=$_GET[kategori]&katakunci=$_GET[katakunci]>$i</a> | ";
}
$link_halaman .= " "; }
// Link Next dan Last
if ($halaman_aktif < $jmlhalaman) {
$next=$halaman_aktif+1;
$link_halaman .= " <a href=$_SERVER[PHP_SELF]?module=$_GET[module]
&halaman=$next&kategori=$_GET[kategori]&katakunci=$_GET[katakunci]>Next
></a> ";
}
if (($halaman_aktif != $jmlhalaman) && ($jmlhalaman != 0)) {
$link_halaman .= " | <a href=$_SERVER[PHP_SELF]?module=$_GET[module]
&halaman=$jmlhalaman&kategori=$_GET[kategori]&katakunci=$_GET[katakunci]>
Last >></a> ";
}
return $link_halaman; } }
?>
Modul Program 4.3 Skrip membuat halaman
4.2 Hasil Aplikasi
Pada bagian ini penulis akan menjelaskan tentang hasil dari implementasi
aplikasi yang telah dibuat. Untuk memberikan informasi yang lebih jelas, akan
dibagi ke dalam 2 bagian, yaitu:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
1. Peserta
Peserta merupakan akun client yang akan mengikuti proses ujian Tes
Online. Peserta memiliki batas kewenangan tertentu, diantaranya peserta
tidak dapat mengakses halaman soal sebelum melakukan proses
pendaftaran.
a. Pendaftaran
Pendaftaran adalah proses utama yang akan dilalui oleh akun peserta.
Pada proses ini peserta diminta memasukkan data diri dan data-data
lain yang dibutuhkan oleh sistem. Berikut adalah screenshot dari form
pendaftaran :
Gambar 4.1 : Halaman pendaftaran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
b. Petunjuk
Petunjuk merupakan halaman yang akan ditampilkan setelah halaman
pendaftaran. Dimana pada halaman ini akan ditampilkan petunjuk
pengerjaan soal dan aturan-aturan pada proses pengerjaan ujian Tes
Online. Berikut adalah screenshot dari halaman petunjuk :
Gambar 4.2 : Halaman Petunjuk Pengerjaan Soal
c. Soal
Soal adalah halaman yang ditampilkan setelah halaman petunjuk.
Dimana pada halaman ini terdapat 3 komponen yang ditampilkan.
Komponen pertama yaitu timer, adalah penghitung waktu yang telah
di-setting selama 90 menit. Timer ini akan mulai menghitung mundur
pada saat peserta meng-klik tombol lanjutkan pada halaman petunjuk.
Pada saat waktu habis, maka sistem akan langsung otomatis men-
submit data jawaban peserta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
Komponen kedua yaitu, nomor pendaftaran dan nama peserta. Kedua
hal ini diambil langsung pada saat peserta melakukan proses
pendaftaran. Komponen ketiga yaitu, soal. Dimana akan ditampilkan
pertanyaan dan pilihan jawaban menggunakan radio button. Berikut
adalah screenshot dari halaman soal :
Gambar 4.3 : Halaman Soal
d. Komentar
Halaman komentar adalah halaman yang tampil setelah peserta selesai
menjawab soal. Pada halaman ini peserta dapat meninggalkan pesan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
dan kesan pada saat mengikuti proses ujian Tes Online. Pesan dan
kesan tersebut akan sangat berguna untuk pengembangan website Tes
Online ini. Berikut adalah screenshot dari halaman komentar :
Gambar 4.4 : Halaman Komentar
2. Administrator
Administrator adalah akun utama dari website Tes Online ini. Dikatakan
akun utama karena seorang administrator memiliki kewenangan untuk
memanajemen website Tes Online ini. Berikut adalah hasil implementasi
untuk halaman administrator :
a. Login
Halaman login adalah halaman utama yang akan ditampilkan saat
administrator mengakses alamat ini. Pada halaman ini administrator
akan diminta mengetikkan username dan password yang diminta
sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
99
Gambar 4.5 : Halaman Login Administrator
b. Home
Halaman home adalah halaman yang akan ditampilkan setelah proses
login. Halaman ini akan menampilkan ucapan selamat datang bagi
administrator beserta waktu dan tanggal administrator melakukan
login. Dari halaman ini, administrator dapat mengakses halaman-
halaman lainnya.
Gambar 4.6 : Halaman Home Administrator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100
c. Hasil Tes Online
Halaman ini adalah halaman dimana administrator dapat
memanajemen data-data peserta yang telah selesai melakukan proses
Tes Online. Pada halaman ini administrator memiliki 3 kewenangan,
yaitu melihat detail, hapus, dan mencetak surat pernyataan diterima
atau tidaknya peserta.
Gambar 4.7 : Halaman Hasil tes online
Detail
Ini adalah salah satu kewenangan dari administrator. Dimana
pada kewenangan ini administrator dapat melihat keseluruhan
identitas salah satu peserta ujian Tes Online. Selain itu juga
ditampilkan jawaban-jawaban yang telah dipilih oleh peserta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
101
Gambar 4.8 : Halaman Detail tes online
Cetak
Cetak juga merupakan salah satu wewenang dari
administrator. Pada wewenang ini, sang administrator dapat
mencetak surat pernyataan diterima atau tidaknya peserta ujian
Tes Online.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
Gambar 4.9 : Halaman Cetak Tes online
Hapus
Pada wewenang ini sang administrator dapat menghapus data
yang tidak diinginkan.
Gambar 4.10 : Hapus hasil tes online
d. Manajemen Admin
Halaman manajemen admin adalah halaman dimana administrator
dapat mengganti username dan password yang nantinya digunakan
pada proses login.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
Gambar 4.11 : Halaman Edit Administrator
e. Manajemen Petunjuk
Pada halaman manajemen petunjuk, administrator dapat melakukan
proses pengeditan petunjuk dan aturan pengerjaan soal. Pada halaman
ini, sang administrator dibantu dengan plugin tinymcpuck sebagai alat
bantu untuk memudahkan administrator dalam melakukan proses
pengeditan petunjuk pengerjaan ujian Tes Online.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
Gambar 4.12 : Halaman Edit petunjuk pengerjaan soal
f. Manajemen Komentar
Pada halaman ini, administrator memiliki wewenang untuk
memanajemen komentar-komentar yang telah diberikan oleh peserta.
Pada halaman ini administrator dapat melihat detail pesan dan
menghapus pesan yang tidak diinginkan.
Tampilkan komentar
Gambar 4.13 : Halaman Manajemen Komentar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
105
Detail
Gambar 4.14 : Halaman Detail komentar
g. Kata jelek
Menu kata jelek adalah menu dimana pengamanan sosial dapat
dilakukan. Pada menu ini seorang administrator dapat melakukan
proses sensor terhadap kata-kata yang tidak diinginkan ataupun
mengandung nilai SARA. Pada menu ini, administrator memiliki 3
wewenang, diantaranya :
Gambar 4.15 : Halaman Kata Jelek
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
Tambah kata jelek
Untuk menambah kata jelek yang diinginkan.
Gambar 4.16 : Halaman Tambah Kata Jelek
Edit kata jelek
Untuk mengedit kata jelek.
Gambar 4.17 : Halaman Edit Kata Jelek
Hapus kata jelek
Untuk menghapus kata jelek yang tidak diinginkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
107
Gambar 4.18 : Hapus Kata Jelek
h. Soal dan Jawaban
Pada menu ini, seorang administrator dapat melakukan proses
manajemen terhadap soal dan jawaban yang akan dijawab oleh para
peserta tes online. Default-nya soal adalah 30 butir. Namun pada
menu ini, seorang administrator juga dapat menambahkan soal, meng-
edit dan menghapus soal.
Gambar 4.19 : Halaman Soal dan Jawaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
108
Tambah soal dan jawaban
Gambar 4.20 : Halaman Tambah Soal dan Jawaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
109
Edit soal dan jawaban
Gambar 4.21 : Halaman Edit Soal dan Jawaban
Hapus soal dan jawaban
Gambar 4.22 : Hapus soal dan Jawaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
110
4.3 Pembahasan Pengamanan Aplikasi
Pada bagian ini, akan dibahas tentang ujicoba keamanan aplikasi. Setiap
kelemahan yang ditemukan oleh penguji, akan dianalisa dan dijelaskan cara
atau teknik pengamanannya.
4.3.1 Halaman Login dapat ditembus dengan menggunakan teknik Brute
Force
Pada bagian ini, penguji coba keamanan menemukan kelemahan pada
halaman login administrator. Halaman ini adalah halaman dimana
seorang administrator masuk kesebuah halaman untuk mengolah
semua data rahasia yang diterimanya. Data-data tersebut juga berupa
data hasil tes online.
Penguji coba keamanan dapat masuk ke halaman administrator ini
menggunakan teknik brute force. Dimana teknik ini adalah teknik yang
melakukan proses perulangan masukan atau input. Input yang
dimaksud adalah username dan password. Penguji juga dimudahkan
dengan sebuah tools yang dapat melakukan hal yang sama. Dengan
tidak adanya limit gagal login, maka penguji dapat mencoba berbagai
kombinasi masukan, hingga ditemukan kombinasi username dan
password yang benar.
Maka dari itu, pengembang menambahkan captcha image untuk
mencegah tools yang digunakan oleh penguji. Captcha image ini
bersifat :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
111
a. Tidak berupa string, atau tidak disimpan dengan format
nama_captcha.jpg.
b. Selalu di-refresh jika masukan captcha salah atau setiap kali
browser di-refresh.
c. Digunakan sebagai tambahan validasi login administrator.
Berikut adalah skrip untuk menampilkan captcha images pada
halaman login administrator :
-------------------------------------------
echo '<tr><td></td><td>
<img src="../captcha.php" id="captcha" /><br/>
<!-- CHANGE TEXT LINK -->
<a href="#" onclick="
document.getElementById(\'captcha\').src=\'../captcha.php?\'+Math.random();
document.getElementById(\'captcha-form\').focus();"
id="change-image">Captcha tidak terbaca ? Klik disini</a><br/><br/>
<input type="text" name="captcha" id="captcha-form" /><br/>
</td></tr>';
------------------------------------------
Modul Program 4.4 Skrip pemasangan captcha images pada
login administrator
Skrip diatas akan ditampilkan pada halaman login administrator
seperti gambar dibawah ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
112
Gambar 4.23 : Penambahan captcha image halaman login
4.3.2 Halaman komentar masih dapat dibanjiri dengan spam.
Pada halaman ini, penguji menemukan kelemahan. Kelemahan yang
dimaksud adalah spam atau data yang tidak diperlukan. Data-data yang
tidak diperlukan tersebut adalah data sama yang dimasukkan berulang-
ulang. Hal ini menyebabkan penyimpanan data komentar menjadi
penuh oleh komentar-komentar yang sama.
Kejadian ini disebabkan oleh adanya sebuah tools yang membantu
penguji untuk melakukan proses perulangan masukan komentar. Selain
itu, cukup dengan menekan F5 atau me-refresh browser, maka
komentar juga kembali terulang pengirimannya.
Maka dari itu, pengembang juga akan menambahkan captcha images
pada form komentar ini. Captcha images ini digunakan sebagai
validasi untuk membedakan antara manusia dan mesin. Captcha
images ini juga akan selalu berubah-ubah jika salah dan jika browser
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
113
di-refresh. Selain itu, terdapat pembatasan masukan komentar. Penguji
hanya dapat memasukkan komentar satu kali.
Pada saat penguji selesai menuliskan komentar, maka penguji akan
disajikan halaman baru berupa ucapan terima kasih selama beberapa
detik dan kembali ke halaman komentar tanpa menampilkan form
komentar.
Berikut ini adalah skrip untuk pemanggilan captcha images pada
halaman komentar :
<img src="'.$base_url.'captcha.php" id="captcha" /><br/>
<!-- CHANGE TEXT LINK -->
<a href="#captcha-form" onclick="
document.getElementById(\'captcha\').src=\''.$base_url.'captcha.php?\'+Math.
random();
document.getElementById(\'captcha-form\').focus();"
id="change-image">Captcha tidak terbaca ? klik untuk ganti captcha.
</a><br/><br/>
<input type="text" name="captcha" id="captcha-form" /><br/>
</td></tr>
<tr><td cols="2" align="right"><p style="'.$style.'">'.$captcha_message.'
</p><input type="submit" name="submit" value="Submit"></td></tr>
</table></form>'; }
Modul Program 4.5 Skrip pemasangan captcha images pada
halaman komentar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
114
Selain itu, penguji juga tidak perlu memasukkan nama pemberi
komentar, karena nama pemberi komentar diambil dari nama lengkap
pada proses pendaftaran. Untuk memvalidasi setiap kolom form nya,
maka pengembang menggunakan ajax untuk membantu memberikan
peringatan bahwa ada yang salah atau sudah benar.
Berikut adalah hasil penerapan pengembangan pengamanan pada
halaman komentar :
Gambar 4.24 : Penambahan captcha image halaman komentar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
115
Gambar 4.25 : Validasi input ajax halaman komentar
4.3.3 Dapat menjawab soal tanpa mendaftar dan dapat memasukkan
input selain huruf dan angka.
Pada bagian ini, kelemahan ditemukan pada halaman pendaftaran.
Pada halaman tersebut, penguji menerapkan sebuah teknik xss untuk
mengelabui aplikasi sehingga penguji dapat menjawab soal tanpa
melakukan proses pendaftaran. Selain itu, penguji juga dapat
menginputkan data berupa simbol dan hal-hal lain selain huruf dan
angka. Hal ini merupakan indikasi bahwa aplikasi yang dibuat dapat
diserang dengan teknik SQL Injection.
Maka dari itu, pengembang akan menambahkan fungsi anti sql inject
sekaligus xss dan validasi input serta membatasi dengan session, agar
penguji harus melewati setiap tahap yang diperlukan dalam proses tes
online. Berikut adalah beberapa skrip yang digunakan pengembang
untuk menerapkan teknik pengamanan :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
116
<?php function cleanQuery($string) {
if(get_magic_quotes_gpc()) // mencegah backslash, kemudian menjadikannya
double backslash
{
$string = stripslashes($string); }
if (phpversion() >= '4.3.0') // mengecek versi php
{
$string = mysql_real_escape_string($string); // mematikan fungsi SQL
}
else {
$string = mysql_escape_string($string); // mematikan fungsi SQL
}
return $string; } ?>
--------------------------------------------------------------------------
// definisi validasi alphanumeric
<?php class validasi { public function validasi_alphanumeric($text) { if(preg_match("/^([a-zA-Z])+$/i", $val)) { return true; } else { return false; } } } ?>
Modul Program 4.6 Skrip anti SQL Injection dan definisi
alphanumeric
Fungsi anti SQL Injection dan XSS di atas dijadikan menjadi satu fungsi
dan disisipkan pada fungsi setelah peserta kuesioner melakukan proses
pendaftaran dan komentar.
<?php
function aksi_daftar($base_url)
{
$nama = anti_inject($_POST['nama']);
$tempat = anti_inject($_POST['tempat']);
$tgl = anti_inject($_POST['th_lahir']).'-'.anti_inject($_POST['bl_lahir']).'-
'.anti_inject($_POST['tg_lahir']);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
117
$jk = anti_inject($_POST['ans']);
$agama = anti_inject($_POST['agama']);
$alamat = anti_inject($_POST['alamat']);
$asal = anti_inject($_POST['asal']);
$jur = anti_inject($_POST['jur']);
$info = anti_inject($_POST['info']);
$telepon = anti_inject($_POST['telepon']);
$pil1 = anti_inject($_POST['pil1']);
if(isset($_POST['daftar']))
{
$_SESSION['posttimer']=time();
if(is_numeric($nama)) {
$message='Karakter pada form nama tidak diizinkan';
}
else
---------------------------------------
Modul Program 4.7 Penyisipan skrip anti SQL Injection pada
form pendaftaran
-------------------------
$nama=anti_inject($_POST['komentar_nama']);
$email=anti_inject($_POST['komentar_email']);
$isi=anti_inject($_POST['komentar_isi']);
---------------------------
Modul Program 4.8 Penyisipan skrip anti SQL Injection pada
form komentar
Selain itu, skrip anti SQL Injection ini juga disisipkan pada form login
admin.
---------------------
$login=mysql_query("SELECT * FROM user WHERE
id_user='".anti_inject($_POST['username'])."' AND password='$pass'");
-------------------------
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
118
Modul Program 4.9 Penyisipan skrip anti SQL Injection pada
form login
Jika penguji melakukan hal yang sama, maka akan tampak output
aplikasi sebagai berikut :
Gambar 4.26 : Validasi input ajax halaman pendaftaran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
119
Gambar 4.27 : Pesan error jika terdapat indikasi input berupa
skrip
4.3.4 Penghitung waktu mundur akan mengulang jika tombol refresh
ditekan dan akan mati jika opsi java script pada browser
dimatikan.
Pada bagian berikut ini, penguji menemukan dua kelemahan pada
penghitung waktu pada halaman soal dan jawaban. Penghitung waktu
akan mengulang kembali pada waktu awal jika browser direfresh. Hal
ini akan sangat merugikan pihak universitas karena peserta ujian dapat
mengerjakan soal selama waktu yang diinginkannya.
Selain itu, animasi penghitung waktu mundur juga akan mati, jika opsi
java script pada browser dimatikan. Hal ini juga akan sangat riskan,
dikarenakan peserta juga dapat mengerjakan soal selama waktu yang
diinginkannya. Maka dari itu, pengembang akan mengamankan hal ini
dengan menambahkan session pada penghitung waktu mundur. Selain
itu, pengembang juga akan menambahkan sebuah fungsi baru, yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
120
dinamakan oleh pengembang fungsi php timer. Fungsi ini berperan
untuk menghitung selisih saat peserta mulai menjawab soal dan saat
peserta selesai. Sehingga walaupun opsi java script dimatikan, aplikasi
dapat menghitung berapa banyak waktu yang dihabiskan peserta dalam
menjawab soal.
Berikut adalah skrip untuk menampilkan animasi penghitung waktu
mundur :
<!-- animasi penghitung waktu mundur -->
<style type="text/css">
@import "<?php echo $base_url;?>script/countdown/jquery.countdown.css";
#defaultCountdown { width: 240px; height: 45px; }
</style><script type="text/javascript" src="<?php echo $base_url;?>
script/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="<?php echo$base_url;?>
script/countdown/jquery.countdown.js"></script>
<script type="text/javascript">
$(function () {
$('#defaultCountdown').countdown({until: +<?php
//count_second($left_time)
echo isset($_SESSION['end_time'])?count_second($left_time):5400;?>});
}); </script>
Modul Program 4.10 Fungsi javascript untuk tampilan countdown
timer dengan session
//php timer(menghitung selisih)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
121
time_is_over=date('H:i:s',mktime($explode_time[0],$explode_time[1],$explode_t
ime[2]+5)); //setting waktu toleransi
if(strtotime($time_is_over)<strtotime(date('H:i:s')))
{
$message_rejected='Waktu ujian anda telah berakhir dan melebihi batas
waktu yang telah ditentukan.
<br /> Ujian anda ditolak!';
}
Modul Program 4.11 Fungsi php timer
Maka, jika penguji mematikan opsi javascript pada browser, aplikasi
akan membalas dengan tampilan sebagai berikut :
Gambar 4.28 : Tampilan halaman soal dan jawaban tanpa
javascript
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
122
Gambar 4.29 : Pesan jika sudah melebihi waktu yang
ditentukan.
4.3.5 Tampil pesan error jika tidak menjawab dan hasil jawaban tidak
disimpan dengan benar jika jawaban dilompati.
Pada bagian ini, ditemukan sebuah kesalahan koding. Dimana jika
penguji mencoba untuk melompati jawaban yang ingin mereka jawab,
maka hasil penyimpanannya tidak sesuai dengan apa yang dijawab.
Selain itu, penguji juga menemukan sebuah pesan error jika tidak
menjawab soal. Pesan error tersebut adalah Invalid argument supplied
for foreach() in C:\xampp\htdocs\test\isi.php on line 335. Maka dari itu
penulis akan mengurutkan kembali setiap jawaban yang dijawab oleh
penguji. Setiap jawaban yang nantinya ditampilkan akan sesuai dengan
apa yang dijawab oleh penguji, walaupun jawaban yang dijawab tidak
beurutan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
123
Berikut adalah potongan skrip untuk menampilkan jawaban sesuai
id_jawaban dan id_pendaftaran :
$QJ=mysql_query("SELECT u.id_jawaban, j.jawaban, s.id_soal,
j.keterangan
FROM ujian u, jawaban j, soal s
WHERE
u.id_jawaban=j.id_jawaban
AND j.id_soal=s.id_soal
AND
u.id_pendaftaran='$id_pendaftaran'");
Modul Program 4.12 Skrip untuk menyimpan dan mengurutkan
jawaban
Maka jika penguji tidak menjawab jawaban yang disediakan, aplikasi
tetap akan berjalan dengan lancar. Seperti yang ditampilkan pada
gambar dibawah ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
124
Gambar 4.30 : Gambar detail hasil tes online jika tidak menjawab
4.3.6 Tidak ada pembatasan input dan pembatasan masukan komentar.
Pada bagian ini, penguji menemukan dua kelemahan pada aplikasi tes
online. Penguji menemukan bahwa pada setiap form atau tempat
peserta memberikan masukan, belum dibatasi banyaknya karakter yang
dapat dimasukkan. Peserta dapat memasukkan karakter sebanyak yang
diinginkan. Walaupun yang tersimpan pada database memiliki
ketentuan, namun hal ini bisa dimanfaatkan oleh penguji untuk
menulis sebuah skrip lengkap pada sebuah form.
Maka dari itu, pengembang akan menambahkan sebuah koding bawaan
berupa maxlength pada setiap form yang disediakan. Berikut adalah
salah satu contoh penerapan koding maxlength tersebut :
<tr><td>
<span class=fpendaftaran>Asal SMA*</span></td><td> : <input type=text
maxlength='25' value='".(isset($_POST['asal'])?$_POST['asal']:'')."'
name=asal size=35>
</td></tr>
<tr><td>
<span class=fpendaftaran>Jur. SMA*</span></td><td> : <input type=text
maxlength='6' name=jur value='".(isset($_POST['jur'])?$_POST['jur']:'')."'
size=35>
</td></tr>";
Modul Program 4.13 Skrip contoh penerapan koding maxlength
Kelemahan kedua yang ditemukan oleh penguji adalah pada halaman
komentar. Pada halaman komentar ini, semua komentar yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
125
dikirimkan akan ditampilkan. Penguji menyayangkan hal ini, karena
semua kata-kata termasuk kata-kata yang tidak sopan juga akan
ditampilkan pada halaman komentar ini. Bahkan kata-kata yang
mengandung unsure SARA juga akan tampil.
Maka dari itu, pengembang akan membuat sebuah fungsi. Dimana
fungsi ini nantinya akan berperan untuk melakukan proses sensor
untuk kata-kata jorok yang terdaftar atau didaftarkan oleh
administrator. Proses sensor akan dilakukan secara otomatis tanpa
harus melalui validasi administrator. Selain itu, pengembang juga akan
membuat sebuah fitur. Dimana fitur ini akan ditempatkan pada
halaman administrator. Fitur ini akan digunakan oleh administrator
untuk menambahkan kata-kata jelek yang akan menyensor kata-kata
tidak sopan pada halaman komentar. Berikut adalah fungsi yang
dimaksud :
<?php
function sensor($teks){
$w = mysql_query("SELECT * FROM katajelek");
while ($r = mysql_fetch_array($w)){
$teks = str_ireplace($r[kata], $r[ganti], $teks);
} return $teks;
} ?>
Modul Program 4.14 Skrip fungsi kata jelek
Maka, jika terdapat indikasi kata-kata tidak sopan yang telah
didaftarkan oleh administrator, fungsi ini akan secara otomatis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
126
melakukan proses sensor. Seperti yang dapat dilihat pada gambar
dibawah ini :
Gambar 4.31 : Gambar sensor kata jelek
Pada gambar diatas dapat dilihat bahwa kata jelek yang dimasukkan
oleh penguji, secara otomatis disensor oleh aplikasi. Hal ini
dikarenakan, kata jelek yang dimaksud telah didaftarkan oleh
administrator pada fitur kata jelek di halaman administrator.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
127
BAB V
PENUTUP
Pada bab ini akan disajikan kesimpulan dan saran dari hasil analisis
implementasi permasalahan pada bab sebelumnya. Berdasarkan kesimpulan yang
diperoleh, kemudian akan dikemukakan saran-saran yang diharapkan dapat
bermanfaat.
5.1 Kesimpulan
Dari proses implementasi, maka telah berhasil dibuat atau dibangun
sebuah aplikasi Tes Online berbasis web yang aman dari serangan SQL Injection,
Cross Site Scripting(XSS), Brute Force, dan Spam.
5.2 Saran
Sesuai dengan permasalahan di atas maka dapat memberikan saran-saran
sebagai berikut:
1. Aplikasi ini dapat digunakan sebagai pengganti ujian tes masuk tertulis
Universitas Sanata Dharma.
2. Aplikasi ini dapat membantu mengatasi biaya transportasi dan
akomodasi, serta dapat menghemat waktu yang terpakai untuk
mengikuti tes masuk universitas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
128
DAFTAR PUSTAKA
Kusrini, 2007, Strategi Perancangan dan Pengelolaan Basisdata, Penerbit Andi
Offset, Yogyakarta.
Fowler, M, 2005, UML Distilled Edisi 3, Panduan Singkat Bahasa Pemodelan
Objek Standar, Penerbit Andi Offset, Yogyakarta.
Syafrizal, Melwin, 2005, Pengantar Jaringan Komputer, Penerbit Andi Offset,
Yogyakarta.
Munawar, 2005, Pemodelan Visual Dengan UML, Penerbit Graha Ilmu,
Yogyakarta.
Hakim, Lukmanul, Bikin Website Super Keren Dengan PHP & Jquery, Penerbit
Lokomedia, Yogyakarta
Schmuller, J., 1999, Sams Teach Yourself UML in 24 Hours, Sams Publishing,
Indiana USA.
Aplikasi, http://www.touchme-mediasolution.com/prog.html, (diakses 15
November 2010).
Saleh, Rachmat, 2007, Spam dan Hijacking, Andi Publisher, Indonesia
Pembobolan Situs KPU, http://www.detikinet.com/read/2005/12/29/101530
/508386/328/pembobop-situs-kpu-sebenarnya-jibril, (diakses 20
November 2011).
Rifki, 17 Mei 2011, Pembobolan Situs Polri, Suara Merdeka, Indonesia.
Siswoutomo, Wiwit, 2007, Fundamental of PHP Security, Elex Media, Indonesia.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI