aplikasi tes online berbasis web yang lebih tahan …

145
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 TERPUJI PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Upload: others

Post on 17-Oct-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 2: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 3: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

iii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

iv

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 6: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

vi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

vii

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 9: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 10: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 11: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 12: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 13: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 14: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 15: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 16: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 17: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 18: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 19: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 20: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 21: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 22: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 23: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 24: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 25: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 26: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 27: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 28: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 29: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 30: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 31: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 32: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 33: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 34: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 35: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 36: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 37: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 38: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 39: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 40: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 41: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 42: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 43: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 44: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 45: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 46: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 47: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 48: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 49: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 50: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 51: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 52: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 53: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 54: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 55: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 56: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 57: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 58: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 59: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 60: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 61: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 62: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 63: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 64: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 65: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 66: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 67: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 68: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 69: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 70: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 71: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 72: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 73: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 74: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 75: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 76: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 77: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 78: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 79: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 80: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 81: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 82: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

65

Gambar 3.9 : Entity Relational Diagram

3.3.2 Perancangan Database

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 84: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 85: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 86: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 87: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 88: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 89: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 90: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 91: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 92: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 93: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 94: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 95: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 96: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 97: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 98: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 99: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 100: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 101: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 102: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 103: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 104: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 105: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 106: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 107: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 108: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 109: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 110: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 111: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 112: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 113: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 114: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 115: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 116: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 117: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 118: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 119: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 120: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 121: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 122: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 123: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 124: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 125: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

108

Tambah soal dan jawaban

Gambar 4.20 : Halaman Tambah Soal dan Jawaban

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 126: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 127: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 128: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 129: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 130: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 131: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 132: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 133: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 134: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 135: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 136: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 137: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 138: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 139: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 140: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 141: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 142: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 143: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 144: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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

Page 145: APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN …

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