• Tidak ada hasil yang ditemukan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

N/A
N/A
Protected

Academic year: 2021

Membagikan "PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI"

Copied!
145
0
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.

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

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

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

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

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,

(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

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

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

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

Berdasarkan permasalahan diatas, penulis menilai bahwa masalah utamanya adalah biaya dan waktu. Untuk menghemat kedua hal tersebut,

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

Oleh karena itu, selain akan mengembangkan metode ujian tes masuk, penulis juga akan menerapkan pengamanan terhadap metode ujian tes masuk tersebut dari awal pembuatannya.

(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

Bab ini berisi tentang kesimpulan yang diperoleh berdasarkan analisis terhadap program aplikasi yang dibuat dan saran-saran bagi pengembangan program aplikasi ini.

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

Salah satu bentuknya adalah SQL injection. Berikut ini salah satu contoh dari SQL injection :

(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:

1. Daripada menggunakan statement SELECT, INSERT, UPDATE dan DELETE statement, bisa dibuat fungsi yang melakukan hal serupa. Dengan menggunakan fungsi diharapkan ada pengamanan terhadap

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

1. Tidak diminta berarti bahwa kita tidak secara eksplisit meminta untuk menerima komentar yang tidak berhubungan dengan artikel di blog kita.

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

Dalam kehdupan sehari-hari di dunia offline pun kita sering mendapatkan perlakuan spamming ini. Seperti contoh misalnya seseorang

(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

Algoritma brute force adalah algoritma yang memecahkan masalah dengan sangat sederhana, langsung, dan dengan cara yang jelas/lempang.

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

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

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

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 force" (jika ragu, gunakan brute-force).

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

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

(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

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

(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 while (entire pattern found or end of text)

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

Banyak keamanan produk komersial dan shareware yang bangga mengiklankan "keamanan 128-bit" kunci berasal dari sebuah kata sandi

(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"

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.

(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

Cain & Abel adalah alat recovery password untuk Sistem Operasi Microsoft. Hal ini memungkinkan recovery berbagai jenis password

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

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

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

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,

(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

LastBit Software adalah sebuah perusahaan pengembangan perangkat lunak Rusia berfokus pada solusi password recovery dan security tools. LastBit Software adalah perusahaan pertama yang

(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

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,

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

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

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

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

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

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

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,

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

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.

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

(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

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

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

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

(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

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

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

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

(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

PSPad adalah sebuah perangkat lunak gratis yang berguna sebagai editor teks. PSPad memiliki banyak fitur yang berorientasi pada

(58)

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.

(59)

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.

Gambar

Tabel 3.3 : Tabel skenario use case login
Tabel 3.9 : Tabel skenario manajemen soal dan jawaban
Tabel 3.11 : Tabel skenario pendaftaran
Gambar 3.3 : Diagram Konteks
+7

Referensi

Dokumen terkait

yang mengikuti semua standarisasi peralatan listrik seperti cara penggambaran dan kode- kode pengaman dalam pemasangannya, maka menjadi tanggung jawab kita untuk. menggunakan

Denagan aneka makanan dan minuman yang enak dan segar dengan harga yang bias dicapai oleh semua golongan masyarakat sehingga hal tersebutlah yang menyebabkan ketertarikan saya

Fasilitas yang disediakan oleh penulis dalam perancangan ini adalah kapel sebagai tempat berdoa baik bagi komunitas maupun masyarakat sekitar, biara dengan desain interior

Kata hasud berasal dari berasal dari bahasa arab ‘’hasadun’’,yang berarti dengki,benci.dengki adalah suatu sikap atau perbuatan yang mencerminkan

[r]

“ STUDI DESKRIPTIF MENGENAI SUBJECTIVE WELLBEING PADA LANSIA PENDERITA PENYAKIT KRONIS YANG MENGIKUTI PROLANIS DI PUSKESMAS ‘X’ KOTA BANDUNG “. Universitas Kristen

[r]

Konselor :”Sebagai kesimpulan akhir dari pembicaraan kita dapat Bapak simpulkan bahwa Anda mempunyai kesulitan untuk berkomunikasi dalam belajar oleh karena itu mulai besok anda