rancangan aplikasi pemilihan soal ujian acak menggunakan
TRANSCRIPT
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016
MT 51
Rancangan Aplikasi Pemilihan Soal Ujian Acak
Menggunakan Algoritma Mersenne Twister
Pada Bahasa Pemrograman Java
Faizal Achmad
Lembaga Sandi Negara
Abstrak—Perkembangan teknologi informasi saat ini juga diikuti oleh perkembangan
pada dunia pendidikan dengan menerapkan sistem ujian yang diselenggarakan secara
online. Soal ujian berbasis online tersimpan dalam suatu basis data soal, yang dapat
digunakan pada penyelenggaraan ujian dari waktu ke waktu saat dibutuhkan. Untuk
menghindari terjadinya perulangan soal yang muncul pada saat ujian, maka
diperlukan suatu metode yang dapat menghasilkan suatu pemilihan soal secara acak
dari basis data. Pseudorandom Number Generator (PRNG) merupakan perangkat
yang dirancang untuk menghasilkan barisan angka atau simbol yang dianggap acak,
PRNG banyak diaplikasikan secara luas seperti pada perhitungan simulasi dan
kriptografi. Penerapan suatu PRNG untuk sebuah aplikasi tidak lepas dari pemilihan
kekuatan metode PRNG yang digunakan. Mersenne Twister merupakan salah satu
algoritma PRNG yang telah dipublikasikan dan dipergunakan secara luas pada
berbagai aplikasi simulasi. Penelitian ini bertujuan untuk melakukan implementasi
Mersenne Twister menggunakan bahasa pemrograman Java, sebagai aplikasi
pemilihan soal secara acak dari basis data soal ujian, serta menguji tingkat keacakan
pilihan soal yang dihasilkan. Metode pengujian soal acak yang dihasilkan adalah
dengan menggunakan 5 Uji Dasar untuk keacakan. Hasil pengujian dengan 5 Uji
Dasar menyatakan bahwa pemilihan soal yang dilakukan dengan menggunakan
algoritma Mersenne Twister adalah acak.
Kata kunci: Random Number Generator, Mersenne Twister, Soal Ujian, 5 Uji
Dasar, Keacakan.
I. PENDAHULUAN
A. Latar Belakang
Seiring dengan berkembangnya ilmu pengetahuan, serta terintegrasinya teknologi informasi, komputer dan telekomunikasi yang semakin global, memungkinkan setiap individu atau kelompok untuk dapat mengakses suatu data informasi tanpa kenal batas. Untuk membatasi agar suatu data informasi yang berklasifikasi rahasia hanya dapat diakses oleh pihak-pihak yang berkepentingan, maka data tersebut harus diamankan. Ancaman yang kerap terjadi terhadap suatu informasi rahasia antara lain pengubahan, penyadapan, dan pemalsuan. Salah satu teknik pengamanan terhadap suatu informasi rahasia adalah dengan kriptografi. Secara umum kriptografi adalah ilmu untuk menjaga kerahasiaan data melalui penggunaan teknik-teknik tertentu. Dunia kriptografi hingga saat ini telah berkembang cukup signifikan seiring dengan kemajuan ilmu pengetahuan dan teknologi, dunia pendidikan saat ini telah mulai menerapkan sistem ujian yang diselenggarakan secara online. Soal ujian berbasis online tersimpan dalam suatu basis data soal, yang dapat digunakan pada penyelenggaraan ujian dari waktu ke waktu saat dibutuhkan. Untuk menghindari terjadinya perulangan soal yang muncul pada saat ujian, maka diperlukan suatu metode yang dapat menghasilkan suatu pemilihan soal secara acak dari basis data.
Pada penelitian ini akan dibuat sebuah aplikasi dengan nama “SecureExam” yang merupakan implementasi algoritma kriptografi sebagai pengamanan dalam transport data, dan mersenne twister sebagai algoritma pemilihan soal ujian secara acak dari basis data.
B. Tujuan Penulisan
Tujuan dari penelitian ini adalah membuat aplikasi SecureExam sebagai aplikasi alternatif dalam penyelenggaraan ujian secara online. Aplikasi ini akan mengimplementasikan algoritma kriptografi sebagai
T - 8
ISBN. 978-602-73403-1-2
MT 52
pengamanan dalam transport data, dan mersenne twister sebagai algoritma pemilihan soal ujian secara acak dari basis data.
C. Perumusan Masalah
Aplikasi “SecureExam” sebagai aplikasi alternatif dalam penyelenggaraan ujian secara online memiliki permasalahan yang dapat dirumuskan sebagai berikut :
1) Bagaimana mengamankan data soal ujian yang dikirimkan dari server ke peserta ujian.
2) Pemilihan algoritma kriptografi yang sudah teruji tingkat keamanannya.
3) Bagaimana melakukan suatu pemilihan soal secara acak dari basis data.
II. TINJAUAN PUSTAKA
A. Kriptografi
Berikut merupakan istilah-istilah yang terdapat dalam kriptografi [1] :
Enkripsi adalah proses menyamarkan suatu pesan sebagai cara untuk menyembunyikan isinya.
Plaintext (Teks Terang) adalah suatu pesan yang belum terenkripsi.
Ciphertext (Teks Sandi) adalah suatu pesan yang telah terenkripsi.
Dekripsi adalah suatu proses untuk mengembalikan Teks Sandi menjadi Teks Terang.
GAMBAR 1. PROSES ENKRIPSI/DEKRIPSI
Secara umum dalam kriptografi terdapat dua macam metode sistem sandi, yaitu sistem sandi simetrik
dan sistem sandi asimetrik. Sistem sandi simetrik adalah sistem sandi yang menggunakan satu kunci,
dimana kunci untuk enkripsi sama dengan kunci untuk dekripsi. Sistem sandi asimetrik adalah sistem sandi
yang menggunakan dua kunci yang berlainan, dimana kunci untuk enkripsi berbeda dengan kunci untuk
dekripsi. Berdasarkan bentuknya algoritma sistem sandi simetrik terbagi 2 yaitu, Stream Cipher dan Block
cipher. Pada Stream Cipher, karakter dari plaintext dienkripsi satu persatu pada satu waktu. Pada Block
cipher, satu grup karakter dari plaintext dienkripsi secara serentak dengan menggunakan transformasi
enkripsi yang ditetapkan.
B. Advanced Encryption Standard (AES)
AES [2] merupakan algoritma kriptografi standar yang ditetapkan oleh National Institute of Standards
and Technology (NIST) melalui publikasi Federal Information Processing Standards (FIPS) 197 pada
tahun 2001. AES adalah algoritma kriptografi yang dapat digunakan untuk mengamankan suatu data
elektronik. AES merupakan jenis algoritma kriptografi Block cipher dengan kunci kriptografi simetrik.
AES dapat menggunakan kunci kriptografi dengan panjang 128-bit, 192-bit atau 256-bit untuk
enkripsi/dekripsi sebuah blok data yang memiliki panjang 128-bit.
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016
MT 53
GAMBAR 2. ALUR PROSES ENKRIPSI AES
C. Fungsi Hash
Fungsi hash adalah sebuah fungsi yang memetakan suatu string tak terbatas menjadi suatu string
dengan panjang tertentu. Secure Hash Algorithm (SHA) merupakan salah satu algoritma fungsi hash yang
dikembangkan oleh National Institute of Standards and Technology (NIST). SHA-512 [3] adalah varian
dari SHA yang beroperasi pada delapan 64-bit word. Pesan yang akan dihitung nilai hash-nya diproses
sebagai berikut:
1) Dilakukan proses padding pada pesan sehingga hasilnya adalah kelipatan dari panjang 1024-bit.
2) Urai menjadi 1024-bit blok pesan M(1)
, M(2)
, …, M(N)
.
Blok pesan diproses satu kali pada satu waktu: Dimulai dengan nilai fixed initial hash H(i)
, dihitung secara
berurutan:
H(i)
= H(i-1)
+ CM(i)
, …, ( H(i-1)
)
Dimana C ada fungsi kompresi SHA-512 dan “+” berarti penjumlahan word-wise mod 264
. H(N)
adalah
hash dari M.
D. Mersenne Twister
Mersenne Twister [4] merupakan algoritma pembangkit bilngan acak yang dikembangkan pada tahun
1997 oleh Matsumoto dan Nishimura, algoritma Mersenne Twister merupakan versi generalisasi dari
feedback shift register PRNG (Pseudorandom Number Generator). Pemberian nama PRNG ini
berdasarkan fakta bahwa periode ditentukan oleh bilangan prima Mersenne( ), yang
menghasilkan bilangan acak berkualitas tinggi dengan sangat cepat. Implementasi mt19937(), yang telah
menjadi bagian dari banyak bahasa pemrograman dan library, memiliki periode
E. Lima Uji Dasar Untuk Keacakan
Lima uji dasar untuk keacakan adalah 5 buah uji statistik yang biasanya digunakan untuk menentukan
apakah suatu barisan biner memiliki karakteristik seperti yang ditunjukkan oleh suatu barisan yang trully
random [5]. Lima uji dasar untuk keacakan tersebut terdiri dari:
1) Uji Frekuensi
Uji frekuensi bit digunakan untuk menentukan apakah barisan bit mempunyai jumlah bit “0” dan
“1” yang relatif sama. Seperti yang diharapkan untuk barisan bit acak pada postulat keacakan
Golomb butir R1. Statistik uji yang digunakan adalah:
2
0 1
1
n nX
n
2) Uji Serial
Tujuan uji serial adalah untuk menentukan banyaknya pasangan bit 00, 01, 10 dan 11 sebagai sub-
barisan dari barisan bit sama. Statistk uji yang digunakan adalah:
2 2 2 2 2 2
2 00 01 10 11 0 1
4 21
1X n n n n n n
n n
3) Uji Poker
Uji poker digunakan untuk menentukan barisan bit dengan panjang tertentu muncul dalam barisan
bit dengan jumlah yang sama. Statistik uji yang digunakan adalah :
ISBN. 978-602-73403-1-2
MT 54
22
3
1
2mm
i
i
X n kk
4) Uji Run
Uji run dilakukan untuk mengetahui apakah jumlah runtun dalam barisan bit, baik runtun bit “0”
maupun runtun “1”, dengan panjang yang bervariasi memiliki jumlah yang sesuai dengan postulat
keacakan Golomb butir R2. Statistik uji yang digunakan adalah:
2 2
4
1 1
k ki i i i
i ii i
B e G eX
e e
5) Uji Autokorelasi
Tujuan dari uji autokorelasi adalah untuk melihat kemungkinan hubungan antara barisan bit
dengan versi pergeserannya. Sesuai dengan postulat keacakan Golomb butir R3, nilai autokorelasi
adalah suatu nilai yang konstan meskipun rangkaian mengalami pergeseran beberapa kali. Statistik
uji yang digunakan adalah:
5 22
n dX A d n d
III. METODE PENELITIAN
Metode Penelitian yang dilakukan pada penelitian ini adalah sebagai berikut :
Melakukan studi literatur dan pengumpulan data dari berbagai sumber seperti buku dan internet
mengenai penelitian yang akan dilakukan.
Melakukan analisis kebutuhan dan perancangan aplikasi SecureExam.
Membuat prototype aplikasi SecureExam yang menjamin pengamanan transport data, dan
pemilihan soal ujian secara acak dari basis data.
Melakukan pengujian keacakan pemilihan soal yang dilakukan oleh aplikasi SecureChat.
IV. PEMBAHASAN DAN HASIL
A. Analisis Kebutuhan Perangkat Lunak
Dalam tahapan ini, proses yang dilakukan adalah memilih perangkat lunak yang akan digunakan, serta fungsi-fungsi yang ada didalam aplikasi, yaitu :
1) Penghitungan nilai hash password.
Fungsi ini akan menghitung nilai hash dari password yang diinputkan oleh pengguna
menggunakan fungsi hash SHA-512.
2) Pengecekan username dan nilai hash password
Fungsi ini akan melakukan otentikasi pengguna dengan melakukan verifikasi username dan nilai
hash dari password yang diinputkan oleh pengguna, dengan username dan nilai hash password
yang tersimpan pada basis data server.
3) Pengamanan transport data.
Fungsi pengamanan transport data dilakukan untuk mengamankan data pada saat ditransmisikan
dari ancaman pengubahan, penyadapan, dan pemalsuan
4) Pemilihan soal secara acak
Proses pemilihan soal dari basis data menggunakan algoritma Mersenne Twister, dan diharapkan
memenuhi uji keacakan yang ditetapkan, untuk menghindari terjadinya perulangan soal yang
muncul pada saat ujian.
Dari uraian diatas maka program aplikasi yang akan dibuat menggunakan Java Enterprise Edition 8
SDK, hal ini dikarenakan bahasa pemrograman Java sudah mendukung penggunaan algoritma kriptografi
dan komunikasi client-server, pemilihan bahasa pemrograman Java juga bertujuan agar aplikasi ini
kedepannya dapat dikembangkan untuk dapat berjalan pada sistem operasi yang berbeda.
B. Implementasi
Pada tahap ini yang dilakukan adalah melakukan implementasi berdasarkan desain fungsional, menggunakan algoritma kriptografi untuk pengamanan transport data dan pemilihan soal secara acak, beserta user interface nya ke dalam suatu program aplikasi online berbasis web melalui bahasa pemograman. Aplikasi dibuat menggunakan bahasa pemograman Java Enterprise Edition 8 SDK.
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016
MT 55
Pemilihan Java Enterprise Edition 8 SDK dikarenakan sasaran penggunaan program agar kelak dapat digunakan dan dikembangkan pada beberapa sistem operasi berbeda.
1) Penghitungan nilai hash password
Nilai hash dihitung menggunakan SHA-512. Perhitungan nilai hash dari password diproses setelah
pengguna melakukan input username dan password lalu menekan tombol “Login”.
GAMBAR 3. FORM LOGIN APLIKASI
2) Pengecekan username dan nilai hash password
Username dan nilai hash password yang diinputkan oleh pengguna kemudian diotentikasi dengan
username dan nilai hash password yang tersimpan pada basis data server.
GAMBAR 4. USERNAME DAN PASSWORD PADA BASIS DATA
3) Pengamanan transport data
Keamanan transport data dijamin dengan menerapkan protokol Transport Layer Security (TLS)
dan algoritma kriptografi AES dengan kunci 256-bit yang merupakan algoritma kriptografi standar
yang telah dipublikasikan oleh NIST (National Institute of Standards and Technology) untuk
enkripsi data yang ditransmisikan.
GAMBAR 5. KEAMANAN TRANSPORT DATA DENGAN TLS
4) Pemilihan soal secara acak
Setiap soal yang disimpan dalam basis data memiliki pengenal index berupa “kode soal”. Soal
yang ditampilkan pada ujian merupakan hasil pilihan secara acak dari basis data, berdasarkan
ISBN. 978-602-73403-1-2
MT 56
bilangan “kode soal” yang dibangkitkan oleh algoritma Mersenne Twister. Seperti contoh soal
yang dibangkitkan pada Gambar 6. di bawah ini.
GAMBAR 6. FORM SOAL UJIAN
C. Hasil Pengujian
Dalam tahap ini pengujian yang dilakukan yaitu uji keacakan terhadap hasil pemilihan indeks soal ujian yang dipilih menggunakan algoritma merssene twister. Sampel terdiri dari 100 sampel yang masing-masing terdiri dari 10.000 rangkaian bit. Berikut merupakan hasil pengujian menggunakan lima uji dasar untuk keacakan, dari sampel indeks soal ujian terpilih.
1) Uji Frekuensi
Pengujian menggunakan pendekatan distribusi 2 dengan derajat kebebasan v =1, sehingga
untuk v =1 dan =0,05 mempunyai daerah kritis , jika hasil perhitungan
maka sampel dinyatakan tidak lulus uji, jika hasil sebaliknya maka sampel dinyatakan lulus uji.
GAMBAR 7. HASIL UJI FREKUENSI
2) Uji Serial
Pengujian menggunakan pendekatan distribusi frekuensi 2 dengan derajat kebebasan v =2.
Daerah kritis untuk uji Serial dengan v =2 dan =0,05 adalah , jika hasil perhitungan
maka sampel dinyatakan tidak lulus uji, jika hasil sebaliknya maka sampel dinyatakan lulus uji.
0
2
4
6
8
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
Nila
i X1
Sampel
Hasil Uji Frekuensi
SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 2016
MT 57
GAMBAR 8. HASIL UJI SERIAL
3) Uji Poker
Pengujian menggunakan pendekatan distribusi 2 dengan derajat kebebasan v = 2m -1. Pada
penelitian ini digunakan m=3. Daerah kritis untuk uji Poker dengan v =7 dan =0,05 adalah , jika hasil perhitungan maka sampel dinyatakan tidak lulus uji, jika hasil
sebaliknya maka sampel dinyatakan lulus uji.
GAMBAR 9. HASIL UJI POKER
4) Uji Run
Pengujian menggunakan pendekatan distribusi 2 dengan derajat kebebasan v =2k-2. Pada
penelitian ini digunakan k=15. Daerah kritis untuk uji Run dengan v =28 dan =0,05 adalah
, jika hasil perhitungan maka sampel dinyatakan tidak lulus uji, jika hasil
sebaliknya maka sampel dinyatakan lulus uji.
GAMBAR 10. HASIL UJI RUN
5) Uji Autokorelasi
Pada penelitian ini digunakan d=8. Pengujian dua arah dilakukan dengan menggunakan
pendekatan distribusi N(0,1). Daerah kritis untuk uji autokorelasi dengan =0,05 adalah , jika hasil perhitungan atau maka sampel dinyatakan tidak lulus uji, jika hasil
sebaliknya maka sampel dinyatakan lulus uji.
0
10
20
1
8
15
22
29
36
43
50
57
64
71
78
85
92
99
Nila
i X2
Sampel
Hasil Uji Serial
0
20
40
1
8
15
22
29
36
43
50
57
64
71
78
85
92
99
Nila
i X3
Sampel
Hasil Uji Poker
0
20
40
1
8
15
22
29
36
43
50
57
64
71
78
85
92
99
Nila
i X4
Sampel
Hasil Uji Run
ISBN. 978-602-73403-1-2
MT 58
GAMBAR 11. HASIL UJI AUTOKORELASI
Berdasarkan hasil pengujian keacakan terhadap 100 sampel (@10.000-bit) yang dihasilkan oleh algoritma
Mersenne Twister, dihasilkan persentase keacakan yang baik, dimana sampel lulus uji > 90%, seperti
yang terlihat pada Tabel 1. di bawah ini.
TABEL 1. HASIL UJI 5 DASAR UNTUK KEACAKAN
No. Uji Keacakan Lulus Uji
(%)
Tidak Lulus Uji
(%)
1 Uji Frekuensi 94 6
2 Uji Serial 94 6
3 Uji Poker 93 7
4 Uji Run 100 0
5 Uji Autokorelasi 94 6
V. SIMPULAN
Penelitian yang dilakukan telah menjawab perumusan masalah pada bagian sebelumnya dengan hasil sebagai berikut:
1) Soal ujian yang dikirimkan dari server ke peserta ujian, diamankan dengan menerapkan protokol
Transport Layer Security (TLS) yang menggunakan algoritma kriptografi.
2) Algoritma kriptografi yang digunakan pada TLS adalah algoritma kriptografi AES dengan panjang
kunci 256-bit, yang merupakan algoritma kriptografi standar yang telah teruji dan dipublikasikan
oleh NIST.
3) Pemilihan soal dengan algoritma Mersenne Twister dinyatakan lulus uji sebanyak lebih dari 90%
sampel yang diuji.
DAFTAR PUSTAKA
[1] Bruce Schneier, “Applied Cryptography, Second Edition”, John Wliey & Sons Inc, 2009.
[2] FIPS Publication 197, “Announcing The Advanced Encryption Standard (AES)”, 2001.
[3] Descriptions of SHA-256, SHA-384, and SHA-512, http://www.iwar.org.uk/
Diakses tanggal 24 Juli 2015.
[4] Helmut G. Katzgraber, “Random Numbers in Scientific Computing: An Introduction”, International Summer School Modern Computational Science, 2010.
[5] Menezes, J. Alfred et al., “Handbook ofApplied Cryptography”, 1996.
-3
-2
-1
0
1
2
3
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 Nila
i X5
Sampel
Hasil Uji Autokorelasi