APLIKASI TES ONLINE BERBASIS WEB YANG LEBIH TAHAN TERHADAP SERANGAN SKRIPSI

145  Download (0)

Teks penuh

(1)

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

(2)

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

(3)
(4)
(5)

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”

(6)
(7)
(8)

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.

(9)

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.

(10)

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.

(11)

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

(12)

xii

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA...vii

ABSTRAK ... viii

2.1 Jenis-jenis serangan ... 6

2.1.1 Cross Site Scripting(XSS) ... 6

2.1.2 SQL Injection ... 7

2.9 Guidelines for Rapid APPLication Enginering (GRAPPLE) ... 35

(13)

xiii

2.11 AJAX ... 40

2.12 Software yang Digunakan ... 40

2.12.1 XAMPP ... 40

2.12.2 PSPad ... 40

BAB IIIANALISIS DAN PERANCANGAN ... 42

3.1 RequirementGathering (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 IVIMPLEMENTASI ... 88

4.1 Pembahasan Aplikasi ... 88

4.2 Hasil Aplikasi ... 94

4.3 Pembahasan Pengamanan Aplikasi ... 110

BAB VPENUTUP ... 127

5.1 Kesimpulan ... 127

5.2 Saran ... 127

(14)

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

(15)

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.23Penambahan captcha image halaman login ... 112

Gambar 4.24Penambahan 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

(16)

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

(17)

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

(18)

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.

(19)

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.

(20)

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)

(21)

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.

(22)

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

(23)

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.

(24)

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:

(25)

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.

(26)

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.

(27)

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

(28)

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.

(29)

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.

(30)

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.

(31)

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

(32)

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

(33)

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.

(34)

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"

(35)

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

(36)

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.

(37)

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.

(38)

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

(39)

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

(40)

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.

(41)

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.

(42)

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:

(43)

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 datavalue.

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)

(44)

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.

(45)

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)

(46)

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.

(47)

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.

(48)

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:

(49)

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.

(50)

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 modecommand-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.

(51)

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

(52)

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)

(53)

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

(54)

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.

(55)

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.

(56)

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).

(57)

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

(58)
(59)

42

BAB III

ANALISIS DAN PERANCANGAN

Ada tiga tahap dalam metodologi GRAPPLE yang akan dibahas dalam bab ini diantaranya adalah tahap RequirementGathering (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 RequirementGathering (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.

(60)

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.

(61)

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

(62)

meng-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

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

(63)

ingin disensor pada halaman

komentar. Sehingga dapat mencegah komentar-komentar yang mengandung

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.

(64)

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

(65)

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

(66)

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.

(67)

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

(68)

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

Figur

Tabel dalam keadaan 2NF dan dalam tabel tersebut tidak ada

Tabel dalam

keadaan 2NF dan dalam tabel tersebut tidak ada p.45
Tabel 3.1 : Analisis Fungsional user Peserta

Tabel 3.1 :

Analisis Fungsional user Peserta p.61
Tabel 3.2 : Analisis Fungsional user Administrator

Tabel 3.2 :

Analisis Fungsional user Administrator p.62
Gambar 3.1 : Diagram Use Case Admin

Gambar 3.1 :

Diagram Use Case Admin p.65
Tabel 3.3 : Tabel skenario use case login

Tabel 3.3 :

Tabel skenario use case login p.66
Gambar 3.3 : Diagram Konteks

Gambar 3.3 :

Diagram Konteks p.74
Tabel 3.21 : Tabel Ujian

Tabel 3.21 :

Tabel Ujian p.87
Tabel 3.22 : Tabel User

Tabel 3.22 :

Tabel User p.88
Tabel 3.24 : Tabel Komentar

Tabel 3.24 :

Tabel Komentar p.89
Gambar 3.10 Struktur Menu Administrator

Gambar 3.10

Struktur Menu Administrator p.91
Gambar 3.11 Struktur Menu Peserta

Gambar 3.11

Struktur Menu Peserta p.92
Gambar 3.12.1  Rancangan antarmuka login

Gambar 3.12.1

Rancangan antarmuka login p.93
Gambar 3.13  Rancangan antarmuka home

Gambar 3.13

Rancangan antarmuka home p.94
Gambar 3.15 Rancangan antarmuka detail

Gambar 3.15

Rancangan antarmuka detail p.95
Gambar 3.16 Rancangan antarmuka cetak

Gambar 3.16

Rancangan antarmuka cetak p.96
Gambar 3.18  Rancangan antarmuka edit user admininistrator

Gambar 3.18

Rancangan antarmuka edit user admininistrator p.97
Gambar 3.20 Rancangan antarmuka edit petunjuk

Gambar 3.20

Rancangan antarmuka edit petunjuk p.98
Gambar 3.21.1 Rancangan antarmuka detail komentar

Gambar 3.21.1

Rancangan antarmuka detail komentar p.99
Gambar 3.23 Rancangan antarmuka tambah kata jelek

Gambar 3.23

Rancangan antarmuka tambah kata jelek p.100
Gambar 3.25 Rancangan antarmuka tambah soal dan jawaban

Gambar 3.25

Rancangan antarmuka tambah soal dan jawaban p.101
Gambar 3.27  Rancangan antarmuka petunjuk

Gambar 3.27

Rancangan antarmuka petunjuk p.102
Gambar 3.28  Rancangan antarmuka Soal

Gambar 3.28

Rancangan antarmuka Soal p.103
Gambar 3.29.1  Rancangan antarmuka komentar

Gambar 3.29.1

Rancangan antarmuka komentar p.104
Gambar 4.1 : Halaman pendaftaran

Gambar 4.1 :

Halaman pendaftaran p.112
Gambar 4.2 : Halaman Petunjuk Pengerjaan Soal

Gambar 4.2 :

Halaman Petunjuk Pengerjaan Soal p.113
Gambar 4.3 : Halaman Soal

Gambar 4.3 :

Halaman Soal p.114
Gambar 4.4 : Halaman Komentar

Gambar 4.4 :

Halaman Komentar p.115
Gambar 4.5 : Halaman Login Administrator

Gambar 4.5 :

Halaman Login Administrator p.116
Gambar 4.7 : Halaman Hasil tes online

Gambar 4.7 :

Halaman Hasil tes online p.117
Gambar 4.8 : Halaman Detail tes online

Gambar 4.8 :

Halaman Detail tes online p.118

Referensi

Memperbarui...

Related subjects :

Pindai kode QR dengan aplikasi 1PDF
untuk diunduh sekarang

Instal aplikasi 1PDF di