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
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
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”
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.
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.
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.
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
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
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
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
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
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
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
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.
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.
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)
5. Penyebaran (Deployment)
Untuk tahap pengamanannya, penulis akan menerapkannya pada fase pengembangan(Development).
1.6 Sistematika Penulisan
Sistematika penulisan yang digunakan dalam penyusunan laporan skripsi adalah sebagai berikut:
BAB I PENDAHULUAN
Bab ini berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi teori-teori yang mengenai : SSL(Secure Socket Layer), Celah keamanan pada aplikasi web, Basis Data, Internet, Jaringan Komputer, Apache, PHP, MySQL, GRAPPLE, Unified Modeling Language (UML), SQL Injection, Cross Site Scripting(XSS), Brute Force, dan Spam.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang proses pemodelan aplikasi dengan empat diagram yaitu diagram use case, diagram skema sistem, perancangan database, dan perancangan antarmuka program.
Bab 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
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.
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:
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.
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.
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
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.
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.
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.
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
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
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.
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"
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
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.
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.
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
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
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.
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.
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:
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)
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.
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)
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.
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.
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:
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.
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.
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
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)
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
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.
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.
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).
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
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.
3.1.2 Analisisa Proses Bisnis
Hasil survei menunjukkan bahwa minat mahasiwa tentang tes online sangat besar. Selain itu, mahasiswa peserta survei juga menilai bahwa tes online lebih baik dari pada tes tertulis. Keunggulan tes online yang dinilai mahasiswa adalah keunggulan penghematan biaya dan waktu. Serta keunggulan terhadap pengadaan tes online yang tidak terikat dengan tempat (fleksibel). Hasil dan perhitungan survei dapat dilihat lebih lanjut pada lampiran.
Aplikasi tes online adalah aplikasi berbasis web, yang dapat digunakan oleh pengguna tanpa perlu melakukan proses instalasi dari awal.
3.1.3 Identifikasi Sistem
Identifikasi system ini akan menunjukkan tentang perangkat keras dan perangkat lunak yang akan digunakan untuk membuat dan mengembangkan aplikasi tes online berbasis web.
Perangkat Lunak yang digunakan
Untuk mendukung aplikasi ini, dibutuhkan beberapa perangkat lunak yang akan digunakan, diantaranya:
1. Microsoft Windows XP SP 2, sebagai system operasi 2. XAMPP, sebagai web server localhost
3. MySQL, sebagai system pengelola basisdata 4. Mozilla, Chrome sebagai web browser.
Perangkat keras yang digunakan 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
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
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.
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
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
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.
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
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