• Tidak ada hasil yang ditemukan

Aplikasi Ujian Online Dengan Pengamanan Menggunakan Physical Address Chapter III V

N/A
N/A
Protected

Academic year: 2017

Membagikan "Aplikasi Ujian Online Dengan Pengamanan Menggunakan Physical Address Chapter III V"

Copied!
39
0
0

Teks penuh

(1)

Database merupakan bagian wajib dalam pelaksanaan ujian online.Database merupakan tempat penyimpanan data-data perserta ujian online dalam bentuk tabel. Data-data yang akan disimpan di database berupa nama, NIM, password, matakuliah, jawaban ujian, kode soal, dan nilai ujian. Pada perancangan ujian online ini akan menggunakan 3 tabel yaitu tabel data, tabel acak, tabel jawaban.

Tabel data untuk menyimpan data-data penting yang berkaitan dengan

identitas peserta ujian seperti nama, NIM, password, matakuliah, jawaban ujian, dan nilai ujian. Kemudian tabel acak yaitu tabel yang hanya berisi satu kolom

yang isinya angka biasa. Angka ini nantinya akan diacak untuk menentukan soal

mana yang akan diperoleh perserta ujian online. Hal ini dilakukan karena pada pelaksanaan ujian online akan disajikan soal yang berbeda-beda dan disajikan secara acak sehingga setiap peserta ujian akan mendapatkan soal yang

berbeda-beda. Misalnya seorang peserta ujian mendapatkan kode acak 2, ini artinya

peserta ujiantersebut akan memperoleh tipe soal 2 yang akan berbeda soalnya

dengan peserta ujian yang mendapatkan tipe soal 1 ataupun 3. Yang terakhir

adalah tabel jawaban. Tabel jawaban berfungsi untuk menyimpan jawaban ujian.

Jawaban yang disimpan adalah jawaban yang benar. Jawaban ini akan digunakan

untuk menghitung nilai peserta ujiansecara langsung dengan cara

membandingkannya dengan jawaban yang berasal dari peserta ujian. Berikut kode

program dan tampilan tabel yang akan digunakan dalam pelaksanaan ujian online. online.php

<?php

$koneksi =

MySQLi_connect("localhost","root","","skripsi");

$query = MySQLi_query($koneksi,"create table data ( no int(6) auto_increment,

(2)

Gambar 3.1 : Tampilan CMD dari daftar tabel yang telah dibuat

Gambar 3.2 : Properti pada tabel acak

Field merupakan nama kolom yang ada. Pada tabel acak hanya berisi 1 field yang berarti hanya ada satu kolom bernama nomor. Data yang dapat ditampung

(3)

default bernilai NULL yang berarti jika tidak di-input-kan maka akan bernilai NULL.

Gambar 3.3 : Isi tabel acak

Gambar 3.4 : Properti pada tabel jawaban

Pada tabel jawaban terdapat 6 kolom yaitu latihan, satu, dua, tiga, empat,

lima dengan properti integer dan varchar. Integer hanya bisa menampung angka yang dapat digunakan untuk perhitungan. Properti key berupa primary key hanya boleh untuk 1 field. Dalam tabel jawaban primary key digunakan untuk kolom latihan yang juga memiliki properti auto_increment yaitu baris dari tabel jawaban akan secara otomatis menaikkan nilainya. Berikut ini adalah tampilan isi dari tabel

jawaban.

(4)

Gambar 3.6 : Field dan properti tabel data

Tabel data berisi 10 field yang terdiri dari no, nama, nim, password, physical_address, matakuliah, kode, jawaban_mahasiswa, jawaban_benar, dan nilai. Ada dua tipe data yaitu integer untuk field no dan sisanyaa bertipe varchar yang dapat menampung jumlah karakter yang berbeda-beda. Primary key digunakan pada field no sehinga field no tidak akan pernah memiliki isi yang sama. Field yang ada sebagian besar merupakan identitas peserta ujian. Tabel data

merupakan tabel yang paling sering diakses ketika ujian online berlangsung.

Tabel data tidak diisi sekaligus namun diisi bertahap. Pada pengisian pertama kali

akan diinputkan nama, nim, password, dan matakuliah. Ini dilakukan ketika pendaftaran ujian online. Pengisian kedua adalah menginputkan kode dan physical address. Hal ini dilakukan ketika login dan yang ketiga diinputkan adalah jawaban_mahasiswa, jawaban_benar, dan nilai ujian yang diinputkan ketika

peserta ujian telah logout. Sehingga apabila peserta ujian telah selesai ujian maka semua kolom pada tabel data telah terisi semua. Namun untuk kolom

physical_address dapat dihapus sewaktu-waktu jika ada peserta ujian yang mengganti laptop/perangkat ujian dikarenakan kendala yang menyebabkan peserta

ujian tidak dapat menggunakan laptop/perangkat ujian. Berikut ini adalah isi dari

(5)

Gambar 3.7 : Isi tabel data

3.2Pendaftaran Ujian Online

(6)

kerena itu sebelum memasuki tahap pelaksanaan ujian online maka setiap perserta ujian online haruslah terdaftar terlebih dahulu di database sebagai calon peserta ujian online. Pendaftaran yang dilakukan berupa menginputkan data berupa nama, NIM, password, dan matakuliah yang akan diujiankan. Bagian ini diluar pelaksaan ujian onlinemelainkan hanya syarat yang harus dipenuhi untuk pelaksanaan ujian online. Berikut ini form pendaftaran peserta ujian yang akan mengikuti ujian online.

Gambar 3.8 : Tampilan form pendaftaran ujian online

Isi dari form di atas akan diinputkan ke database tepatnya pada tabel data sebagai data acuan untuk login. Nilai yang telah diinputkan oleh calon peserta ujian online tidak dapat dihapus oleh calon peserta ujian online. Berikut kode untuk form diatas.

<form method="post" action="daftar.php"> <div>

<label>

<span class="required">Nama: </span>

<input type="text" name="nama" placeholder="Nama Mahasiswa" />

(7)

3.3 Pembuatan Halaman Login Ujian Online

Menampilkan halaman login merupakan tahap awal dimulainya ujian online. Lembar login ujian online hanya berisi NIM dan password yang harus diisi oleh peserta ujian. Halaman ujian online merupakan form yang isinya akan dikirim ke halaman yang dapat memproses form yang berjenis halaman php.

(8)

Gambar 3.9 : Tampilan login ujian online

Kode HTML di atas merupakan form. Atribut action=”index.php” berarti form di atas akan dikirim ke halaman index.php. Method yang digunakan adalah post. Pada form login ujian online peserta ujian harus memasukkan NIM dan password untuk dicocokkan dengan database MySQL. Jenis tombol yang digunakan adalah tombol submit untuk mengirim isi form. Value pada tombol submit adalah bacaan yang akan ditampilkan ke layar perangkat keras.

3.4 Pemrosesan Form

<form class="login-form" action="index.php" method="post"> <input type="text" name="username" placeholder="NIM"/>

<input type="password"

name="password"placeholder="password"/>

(9)

Form yang telah dibuat haruslah diproses. Disini pemrosesan form menggunakan PHP (yaitu index.php). penamaan halaman haruslah sesuai dengan yang tertulis pada atribut action yaitu index.php. Tahap pemrosesan yang pertama adalah memerikasa apakah halaman index.php diakses melului tombol submit atau tidak

Kode PHP di atas akan memeriksa peserta ujian mengakses langsung halaman index.php atau melalui tombol submit. Fungsi empty() digunakan untuk memeriksa ada atau tidak proses penekanan tombol submit dari halaman login.php. Logika if digunakan untuk memeriksa nilai kebenaran dari fungsi empty(). Jika peserta ujian mengakses langsung halaman index.php makan fungsi empty() akan bernilai benar. Ini akan menyebabkanpeserta ujian diarahkan ke halaman login.Namun jika peserta ujian mengakses halaman index.php melalui penenkan tombol submit maka program akan melanjutkan ke tahap berikutnya yaitu pemeriksaan peserta ujian telah mengikuti ujian online atau belum. Setiap peserta ujian hanya boleh satu kali mengikuti ujian online untuk satu matakuliah sehingga jika peserta ujian telah ujian online maka peserta ujian akan gagal login.

3.5 Pemeriksaan Peserta ujian yang Telah Ujian Online

Langkah selanjutnya adalah memeriksa keberadaan hasil ujian online. Hal ini dilakukan untuk mengetahui apakahpeserta ujian telah melaksanakan ujian

online atau belum. Jika sebelumnyapeserta ujian telah mengikuti ujian maka peserta ujianakan gagal melakukan login. Namun jika belum pernah

(10)

melaksanakan ujian online maka peserta ujian akan melalui pemeriksaan NIM dan password berdasarkan databaseMySQL.

Pada saat peserta ujian melakukan login dengan menekan tombol login dari halaman login.php maka data NIM dan password peserta ujian akan dikirim ke halaman index.php (sesuai dengan action yang terdapat pada form login.php.). NIM dan password yang dikirim dari halaman login.php akan ditangkap oleh variabelsuper global $_POST. NIM tersebut ditampung di variabel$username dan password akan ditampung di variabel $password. NIM ini akan digunakan untuk mencari data-data yang berkaitan dengan NIM tersebut. NIM tersebut selanjutnya

digunakan untuk memeriksa jawaban di database apakah ada atau masih kosong. Jika pada baris (pada table data di database) yang berisi NIM tersebut terdapat nilai ujian maka peserta ujian akan gagal login(peserta sudah pernah mengikuti ujian) dan akan diberitahukan “Anda telah mengikuti ujian” namun jika masih

kosong maka sistem akan memeriksa NIM dan password peserta ujian online. Berikut ini cara pengecekkan nilai ujian peserta ujian dengan PHP. Fungsi empty() akan mengecek ada atau tidak isi dari $query_6[7] berdasarkan NIM yang diterima oleh variabel $username. Jika peserta ujian belum pernah ujian online maka $query_6 akan kosong (tidak ada isi). Fungsi empty() akan bernilai benar

$username = $_POST['username']; $query_5 = mysqli_query($koneksi,"select * from data where nim='$username'");

$query_6 = mysqli_fetch_array($query_5); if(!empty($query_6[7])) {

(11)

jika parameternya tidak ada nilai (kosong) namun karena ada operator NOT maka

fungsi empty() akan bernilai salah. Oleh karena itu perintah exit(“Anda telah mengikuti ujian”);tidak dijalankan.

Namun jika peserta ujian telah mengikuti ujian (sampai dengan logout) maka tabel data dengan baris yang sesuai dengan NIM peserta ujian akan berisi

nilai ujian. Sehingga pada saat diakses akan didapat nilai yang disimpan di

variabel $query_6[7]. Fungsi empty() yang menampung $query_6[7] akan bernilai salah kerena $query_6[7] berisi. Nilai salah dari fungsi empty() ini akan di-NOT-kan sehingga bernilai benar. Oleh karena itu perintah exit(“Anda telah mengikuti ujian”); akan dijalankan sehingga peserta ujiangagal login.

3.6 ARP

Protokol ARP atau Address Resolution Protocol merupakan sebuah protokol yang bertanggung jawab mencari tahu physical address atau alamat hardware dari suatu perangkat yang tergabung dalam sebuah jaringan LAN dengan berdasarkan IP addressyang terkonfigurasi pada perangkat yang bersangkutan. Peran protokol ARP ini sangat penting dalam jaringan, terutama mengenai komunikasi data yang terjadi dalam jaringan. Setiap perangkat yang

tergabung atau terhubung dalam sebuah jaringan LAN saling berkomunikasi menggunakan alamat fisik (physical address) dan tidak menggunakan alamat logis (IP address).Sehingga setiap perangkat yang ingin berkomunikasi dengan perangkat lain harus mengetahui physical address yang dimiliki oleh perangkat tujuannya tersebut.

(12)

transfer data. Sebelum sebuah data diberikan physical address, terlebih dahulu data tersebut diberi alamat logis berupa IP Address. IP address yang ditambahkan ini merupakan IP address dari perangkat pengirim dan perangkat penerima.Awalnya protokol ARP melakukan pengiriman sebuah pesan yang sifatnya broadcast atau menyeluruh. Isi dari pesan tersebut berupa permaintaan sebuah alamat physical address suatu perangkat berdasarkan IP address. Pesan permintaan ini dikirim secara menyeluruh ke semua perangkat yang tergabung

dalam jaringan LAN.Setelah pesan tersebut sampai pada perangkat tujuan, maka perangkat tujuan akan membalas pesan tersebut dengan sebuah pesan balasan

yang berisi alamat fisik atau physical address yang sesuai dengan IP address yang diminta tadi.

Dapat disimpulkan tugas dari ARP adalah mencari tahu physical addressperangkat yang terhubung dalam satu jaringan dengan menggunkan IP Address dengan tujuan agar setiap perangkat yang terhubung dalam satu jaringan dapat berkomunikasi.

Gambar 3.10 : Cara kerja ARP

(13)

Gambar 3.11 : Daftar physical address dari perangkat dalam satu jaringan

3.7 Pengambilan IP Address dan Physical address

Perintah $_PERINTAH = arp –a $_IP_ADDRESS; akan manampung

physical address dari perangkat yang telah dikirimi IP address. Selanjutnya program akan mengaktifkan ouput buffering yang berfungsi untuk menampung hasil eksekusi perintah arp –a. Untuk mengeksekusinya harus menggunakan fungsi system() karena arp –a merupakan external commandatau perintah yang berasal dari luar atau lebih tepatnya perintah yang berasal dari CMD dan hasilnya ditampung di variabel $_HASIL. $_HASIL hanya berupa string yang mengandung informasi IP address dan physical address.

Gambar 3.12 : Hasil eksekusi perintah arp –a berupa string

Untuk mendapatkan nilai physical address murni maka digunakan kombinasi fungsi-fungsi string yang disediakan oleh php yaitu :

1. strstr() : digunakan untuk mengembalikan semua string dibelakang atau setelah string yang dicari.

2. explode() : digunakan untuk memecah sebuah string menjadi array, atau

(14)

3. str_replace() : digunakan untuk mengubah/menukar string(teks) dengan string yang lain.

4. substr() : digunakan untuk mengambil nilai string dari teks berdasarkan parameter yang ditentukan.

3.8 Memperoleh Physical Address Perangkat dan Pengaruh IPv4 dan IPv6

Berdasarkan fungsi-fungsi string yang digunakan untuk mengambil nilai physical address dengan menggunakan IP address maka secara teori tidak ada perbedaan jika peserta ujian menggunakan IPv4 ataupun IPv6. Hal ini dikarenakan fungsi strstr() dan fungsi – fungsi strirng lainnya akan memotong hasil eksekusi program berdasarkan nilai IP address yang didapat.

$_HASIL_1 adalah variabel untuk menampung hasil eksekusi fungsi

system(). Variabel ini akan berisi string yang mengandung berbagai macam karakter yang diantaranya adalah IP address dan physical address. Untuk memperoleh physical address maka digunakan fungsi-fungsi string yaitu strstr(),explode(), str_replace(), dan sub_str(). Setiap kali fungsi tersebut

$_IP_ADDRESS = $_SERVER['REMOTE_ADDR']; $_PERINTAH = "arp -a $_IP_ADDRESS"; ob_start();

system($_PERINTAH);

$_HASIL_1 = ob_get_contents(); ob_clean();

$_PECAH = strstr($_HASIL, $_IP_ADDRESS);

$_PECAH_STRING = explode($_IP_ADDRESS, str_replace(" ", "", $_PECAH));

(15)

digunakan hasilnya langsung ditampilkan dengan perintah echo. Berikut hasil yang ditampilkan oleh setiap langkah penggunaan fungsi string.

Gambar 3.13 : Proses pemotongan string yang diperoleh dari perintah arp -a

Baris pertama merupakan hasil murni menjalankan fungsi system(). Hasilnya ditampung di $_HASIL_1. Selanjutnya fungsi strstr() akan memotong string baris pertama dimulai dari terdapatnya IP address. Hal inilah yang menyebabkan tidak ada perbedaan jika peserta ujianmenggunakan perangkat

dengan IPv4 ataupun IPv6. Seberapa panjangpun IP address yang digunakan pemotongan tetap dimulai dari IP address yang digunakan. Hasil eksekusi fungsi strstr() ditampilkan pada baris kedua. Selanjutnya fungsi str_replace() akan membuang spasi yang terdapat pada baris kedua agar spasi tidak terdapat pada

awal physical address. Selanjutnya fungsi explode() akan memecah string menjadi array berdasarkan pemisah yang digunakan. Dalam hal ini pemisah yang digunakan adalah IP address sehingga hasil yang diperoleh tidak terdapat IP address lagi. Selanjutnya fungsi substr() akan mengambil physical address dari karakter nol sampai 17 karakter kedepan. Dengan demikian diperoleh nilai

physical address murni yang akan dimasukkan ke database. Kemudian akan dilanjutkan ke tahap berikutnya yaitu pemeriksaan NIM dan password peserta ujian online.

(16)

Jika peserta ujian yang bersangkutan belum pernah mengikuti ujian online maka selanjutnya NIM dan password peserta ujian akan dicek apakah sesuai atau tidak dengan yang terdaftar di database. Password yang dicek adalah password yang telah di-hashing. NIM dan password telah ada di databasetinggal membandingkannya dengan yang diinputkan peserta ujian. Ketikapeserta ujian

menekan tombol login maka NIM dan password akan dikirim ke halaman index.php yang bertugas mencocokkannya dengan yang terdapat di database.

Program akan mengakses NIM dan password yang ada di database. Kemudian program mencocokkannya dengan logika AND. Jika salah satunya atau

keduanya tidak sesuai maka login akan gagal dan peserta ujian akan diarahkan kembali ke halaman login dan peserta kembali memasukkan NIM dan password. Proses input NIM dan password ini dapat dilakukan berulang-ulang hingga

keduanya benar.

3.10 Pengecekkan Physical Address pada Database $_IP_ADDRESS = $_SERVER['REMOTE_ADDR'];

$_PERINTAH = "arp -a $_IP_ADDRESS"; ob_start(); system($_PERINTAH);

$_HASIL = ob_get_contents(); ob_clean();

(17)

Sebelum physical address diinputkan, program akan mengambil data-data yang ada di database dikarenakan data tersebut akan dihapus dan akan diinputkan bersamaan dengan physical address. Ketika yang login adalah peserta ujian yang pertama (bukan joki) maka isi kolom physical address masih kosong oleh karena itu kondisional “if($physical_address==0)” akan bernilai benar sehigga perintah

yang ada di dalam kurung kurawal akan dijalankan.

Ada tiga perintah yang akan dijalankan yaitu, hapus isi tabel data, ambil

kode acak untuk mengacak soal yang akan menentukan jenis soal untuk tiap-tiap

peserta ujian online, dan inputkan data-data mahasiswa yang telah dihapus tadi bersamaan dengan nilai physical address-nya.

Untuk mencegah adanya peserta ujian lain yang menggunakan data yang

sama (NIM dan password) maka physical address yang ada di database tadi digunakan sebagai penghalang yaitu ketika laptop/perangkat lain yang berusaha

(18)

yang di database sehingga login gagal dan akan ditampilkan pemberitahuan”Anda bukan perserta ujian online

3.11 Metode Penggunaan Physical address pada Ujian Online

$_HASIL_1 yang diperoleh dari perintah arp –a akan berisikan physical address. Setelah didapat nilai physical address murni maka langkah berikutnya adalah memasukkan nilai physical address ini ke database MySQL. Tujuan adalah sebagai pembanding jika ada peserta ujian lain yang akan melakukan login menggunakan NIM dan passsword yang sama.

Physical address yang telah dimasukkan ke database MySQL tadi langsung diambil untuk dibandingkan dengan physical address dari peserta ujianyang memasukkan physical address tadi. Oleh karena peserta ujiannya sama atau lebih tepatnya menggunakan perangkat yang sama maka nilai physical address akan sama. Jika setelah memasukkan physical address ke database MySQL ada peserta lain (peserta ujian kedua/joki) yang mencoba mengakses halaman index.php dengan menggunakan NIM dan password yang sama maka dilangkah inilah peserta tersebut akan terhalang. Hal ini dikarenakan peserta ujian

kedua tadi gagal memasukkan nilai physical address-nya ke database MySQL dikarena pada table data (tabel yang dibuat untuk menampung physical address berdasarkan NIM) tidak diizinkan ada NIM yang sama. Oleh karena NIM yang

(19)

peserta ujian pertama. Sehingga pada tahap pembandingan antara physical address perangkat peserta ujian kedua dengan physical address yang diambil dari database akan berbeda. Logika if digunkan untuk mengecek kesamaan kedua physical address tersebut. Jika hasil pengecekkan sama (peserta ujianpertama login) maka logika if akan bernilai benar kemudian di-NOT-kan sehingga menjadi salah. Oleh karena itu perintah ‘exit (Anda bukan peserta ujian online)’ tidak dijalankan. Namun jika berbeda maka perbandingn akan bernilai salah dan

kemudian di-NOT-kan sehingga bernilai benar. Hal ini berakibat dijalankannya perintah ‘exit (Anda bukan peserta ujian online) sehingga peserta ujian kedua gagal login.

3.12 Kasus PerangkatPeserta Ujian Online Padam Ketika Ujian Online

Ketika peserta ujian sedang melaksanakan ujian online ada kemungkinan laptop/perangkat ujian online peserta ujian padam atau tidak berfungsi karena sebab tertentu seperti terjatuh, habis baterai dll sehingga tidak dapat digunakan.

Untuk menjaga agar peserta ujian tetap dapat mengikuti ujian online maka peserta ujian harus mengganti perangkatnya dengan perangkat yang lain. Oleh karena itu, physical address yang telah ada di database harus dihapus.

Penghapusan physical address dilakukan memalui admin/pengawas ujian. Untuk mempermudah kerja admin maka akan dibuatkan suatu halaman

(20)

kode program pembuatan halaman pengecekkan physical address yang diperuntukkan bagi admin.

if(isset($_POST['pa7'])){ $koneksi =

mysqli_connect("localhost","root","","skripsi"); $query = mysqli_query($koneksi,"select*from data");

$query_hapus = mysqli_query($koneksi,"update data set physical_address='' where nim=$_POST[pa7]");

<?php

if(isset($_POST['pa1'])) { $koneksi =

mysqli_connect("localhost","root","","skripsi"); $query = mysqli_query($koneksi,"select*from data");

$query_hapus = mysqli_query($koneksi,"update data set physical_address='' where nim=$_POST[pa1]");

}

if(isset($_POST['pa2'])) { $koneksi =

mysqli_connect("localhost","root","","skripsi"); $query = mysqli_query($koneksi,"select*from data");

$query_hapus = mysqli_query($koneksi,"update data set physical_address='' where nim=$_POST[pa2]");

}

if(isset($_POST['pa3'])) { $koneksi =

mysqli_connect("localhost","root","","skripsi"); $query = mysqli_query($koneksi,"select*from data");

$query_hapus = mysqli_query($koneksi,"update data set physical_address='' where nim=$_POST[pa3]");

}

if(isset($_POST['pa4'])) { $koneksi =

mysqli_connect("localhost","root","","skripsi"); $query = mysqli_query($koneksi,"select*from data");

$query_hapus = mysqli_query($koneksi,"update data set physical_address='' where nim=$_POST[pa4]");

}

if(isset($_POST['pa5'])) { $koneksi =

mysqli_connect("localhost","root","","skripsi"); $query = mysqli_query($koneksi,"select*from data");

$query_hapus = mysqli_query($koneksi,"update data set physical_address='' where nim=$_POST[pa5]");

}

if(isset($_POST['pa6'])) { $koneksi =

mysqli_connect("localhost","root","","skripsi"); $query = mysqli_query($koneksi,"select*from data");

$query_hapus = mysqli_query($koneksi,"update data set physical_address='' where nim=$_POST[pa6]");

(21)

else {

$query_data_6[4] = "Kosong"; }

(22)

<td class="text-left"><?php echo $query_data_2[2] ;?></td>

(23)

<td class="text-left"><?php echo $query_data_6[1] ;?></td>

<td class="text-left"><?php echo $query_data_6[2] ;?></td>

(24)

3.13 Skenario Penggunaan Physical Address

Ketika peserta ujian terhubung dengan LAN, tiap peserta ujian akan melakukan login ujian online. Ketika login, tabel physical_address akan diperiksa. Jika physical address dari NIM yang bersangkutan masih kosong maka masukkan nilai physical address ke database kemudian periksa kembali dengan physical address perangkat yang mengakses. Jika nilainya sama maka peserta ujian diarahkan ke halaman index.php dan akan disajikan soal ujian. Namun jika nilai physical adderess yang diakses dari database berbeda dengan physical address perangkat maka tolak peserta ujian dan login dnyatakan gagal.. Ketika perangkat laptop/perangkat peserta ujian tersebut mengalamani kendala seperti

(25)

sebelumnya sehingga peserta ujian tersebut dapat login menggunakan perangkat lain dan proses menginputkanphysical address sama seperti proses sebelumnya.

Jikapeserta ujian telah selesai ujian online (telah melakukan logout) maka jawaban ujian langsung dikirim ke database dan physical address tidak dapat dihapus dan tidak dapat diubah.

3.14 Menyajikan dan Menampilkan Soal UjianOnline

Menampilkan soal ujian online adalah hal mutlak pada pelaksanaan ujian online. Soal yang akan ditampilkan berasal dari komputer server. Soal yang ditampilkan berbentuk pilihan berganda yang disajikan dalam sebuah tabel.

Menyajikan soal ujian online menggunakan tag – tag html seperti <table>, <th>,<tr>,<td>,<select>,<option>. Berikut ini cara penyajian soal dengan

menggunakan kombinasi HTML, PHP, dan MySQL. .

$query_10 = mysqli_query($koneksi,"update data set kode ='$acak' where nim='$username' ");}

(26)
(27)

soal dilakukan dengan fungsi rand(). Fungsi rand() akan mengacak kode soal yang berada di tabel acak pada database MySQL. Pada tempat penyimpanan soal disediakan 5 folder yang berisi soal. Soal-soal tersebut berbentuk image yang diberi nomor 1 sampai 3. Soal yang akan diambil berdasarkan kode diacak yang

didapat sebelumnya. Misalkan hasil acak dari fungsi rand() menghasilkan angka 2 maka peserta ujian tersebut akan mendapatkan soal nomor dua untuk setiap folder. Kemudian soal tersebut diambil untuk ditampilkan dengan menggunakan PHP dan HTML.

Nomor hasil acak ini juga akan diinputkan ke tabel data dan diakses

kembali dari tabel tersebut. Nomor acak ini juga akan digunakan untuk

mengambil jawaban dari soal yang telah ditentukan sebelumnya yang berada di

tabel jawaban database. Jika peserta ujianmendapatkan nomor acak dua maka program akan mengambil jawaban nomor dua yang berasal dari tabel jawaban di

database. Jawaban yang diambil dari database ini akan digunakan untuk melakukan perhitungan nilai ujian namun jawaban tersebut tidak akan

ditampilkan dilayar dan akan dikirimkan secara tersembunyi menggunakan atribut

hidden yang ada pada tag HTML

Berdasarkan program pada subbab 3.13, Tag <table> digunakan untuk

membuat tabel. Pada tabel ini akan berisi nomor soal, soal, dan tempat memilih

jawaban. Soal yang disajikan berekstensi PNG (image/gambar) sehingga dibutuhkan cara untuk menginputkan gambar tersebut ke dalam tabel. Untuk

(28)

Pada kolom jawaban, disediakan kolom tempat memilih jawaban. Jawaban

yang akan dipilih berjenis pilihan berganda sehingga salah satu cara yang

digunakan adalah menggunakan tag select dan option. Kedua tag ini berfungsi untuk menyediakan jawaban yang value-nya sesuai dengan atribut pada tag optiontersebut. Ketika peserta ujian menekan tombol logout (selesai) maka peserta ujian akan diarahkan ke halaman logout.php.

Perulangan for digunakan untuk mempercepat penulisan program sehingga kode HTML tidak ditulis berulang-ulang untuk menampilkan banyak soal. Jumlah soal yang akan ditampilkan tergantung pada $i dari for tersebut. Jika ingin menampilkan 5 soal maka $i di-set 1 hingga 5 ($i<6).

3.14 Input Hasil Ujian ke Database dan Penilaian UjianOnline

Ketika peserta ujian telah menekan tombol selesai maka peserta ujian akan

diarahkan ke halaman logout.php. pada halaman ini jawaban peserta ujian dan jawaban yang benar akan ditampung dan akan diinputkan ke database MySQL.

Jawaban peserta ujian yang dikirim dari halaman index.php akan diterima oleh variabel $_1, $_2, $_3, $_4, $_5 dan untuk jawaban yang benar akan

ditampung di variabel $J_1, $J_2, $J_3, $J_4, $J_5. NIM mahasiswa juga ikut

(29)

Jawaban-jawaban yang dikirim dari halaman index.php akan diinputkan ke database dan akan digunakan untuk menghitung nilai ujian peserta ujian.

Setelah jawaban peserta ujiandiinputkan ke tabel database berdasarkan NIM maka selanjutnya akan dilakukan perhitungan nilai ujian. Jawaban tersebut

diambil kembali dari database untuk dibandingkan antara jawaban peserta ujian dengan jawaban yang benar.

$query_10 = mysqli_query($koneksi,"update data set

jawaban_mahasiswa ='$_1,$_2,$_3,$_4,$_5' where nim='$nim' ");

$query_10 = mysqli_query($koneksi,"update data set

(30)

Logika if digunakan untuk menentukan benar atau salah suatu jawaban. Jika jawaban peserta ujiansama dengan jawaban benar berarti jawaban peserta

ujian bernilai benar maka program akan memberikan nilai 20 karena soal

berjumlah lima butir. Pemeriksaan dilakukan berurut dari nomor satu hingga

nomor terakhir. Jika ada tiga jawaban yang benar maka nilai ujiannya 3x20=60.

Dan jika jawaban benar semua maka akan bernilai 100. Kode program di atas

untuk melakukan perhitungan nilai ujian. Setelah hasil ujian selesai diperiksa

maka selanjutnya akan ditampilkan pada halaman HTMLdan ujian online dinyatakan selesai.

3.17 Flowchart Ujian Onlin

(31)

BAB IV

Tidak

Ya Ya

Tidak

Ya

Ya

Ya

(32)

PENGUJIAN UJIAN ONLINE

Ujian online yang telah dirancang sebaiknya diuji digunakan. Hal ini bertujuan untuk memastikan semua kode-kode program yang telah dituliskan

berjalan dengan baik dan juga dapat diterapkan langsung di dunia nyata.

4.1 Pengujian Koneksi Jaringan Menggunakan Hotspot

Dalam pelaksanaan ujian online, tidak cukup hanya kode-kode program yang dituliskan dalam bahasa pemrograman PHP ataupun HTML saja. Hal ini dikarenakan haruslah ada perangkat keras/hardware yang digunakan untuk mengkoneksikan server – client dengan dunia maya. Hardware yang digunakan untuk mengkoneksikan server – client yang digunakan dalam ujian online ini adalah handphone yang bertindak sebagai hotspot.

Pemilihan hotspot sebagai media penghubung dikarenakan tidak memerlukan biaya yang besar karena hampir setiap mahasiswa dan dosen

memiliki handphone dengan fasilitas hotspot. Selain tidak memerlukan biaya yang besar, penggunaan hotspot sangat mudah. Selain itu penggunaan hotspot tidak memerlukan kabel seperti halnya jaringan kabel sehingga ruang ujian tidak

dipenuhi oleh kabel - kabel.

Tidak semua handphone memiliki fasilitas hotspot namun handphone-handphone keluaran terbaru kebanyakan telah difasilitasi dengan hotspot. Sebagai contoh Xiaomi Mi4C, Asus Zenfone 2, Xiaomi Note 2, Sony experia Z, Infinix

(33)

Gambar 4.1 : Salah satu handphone dengan fasilitas hotspot

Hotspot yang berasal dari handphone memiliki jangkauan area yang terbatas yaitu hanya dapat berfungsi radius beberapa meter saja sehingga posisi komputer

server dan client tidak boleh terlalu jauh dari hotspot. Dengan demikian penggunaan hotspot sebagai media koneksi dapat digunakan di ruang - ruang yang tidak terlalu besar seperti ruang ujian/ruang kelas.

Cara setting koneksi hotspot

Berikut langkah-langkah untuk mengkoneksikan server - client dengan menggunakan hotspot dari handphone :

1. Aktifkan hotspot yang ada pada handphone.

Untuk handphone yang berbeda mungkin memiliki cara setting hotspot yang berbeda pula namun perbedaan tersebut tidak terlalu banyak sehingga tidak

(34)

Gambar 4.2 : Setting hotspot

2. Aktifkan sinyal wifi yang ada pada laptop

Gambar 4.3 : Tombol Wifi pada Laptop

Pastikan juga tiap-tiap laptop yang akan digunakan telah terinstal driver wifi 3. Masuk ke CMD untuk melihat ip address yang akan digunakan untuk

berhubungan dengan jaringan LAN.

(35)

Gambar 4.4 : Tampilan ipconfig

4. Aktifkan XAMPP 5. Buka web browser

6. Ketikkan ip address yang tertera pada CMD kemudian diikuti alamat dimana file php yang akan dibuka.

Gambar 4.5 : Menggunakan ip address pada web browser

Ip address yang digunakan harus sesuai dengan yang ada pada CMD tadi. Ini berlaku untuk setiap pesera ujian online.

(36)

Pengujian physical address yaitu dengan pencocokkan nilai physical address dari database (yang langsung diinput ketika peserta ujian online login) dengan physical address dari laptop/handphone.

Ketika peserta ujian online login, sistem menginputkanphysical address ke database yang disertai NIM peserta ujian. Ini berarti satu NIM hanya memiliki satu physical address. Atribut pada NIM dari tabel “physical address” dibuat “PRYMARY KEY” sehingga apabila ada dua peserta ujian yang menggunakan NIM yang sama (biasanya joki ujian) maka secara otomatis sistem akan menolak

physical address dari yang login kedua.dengan demikian peserta ujian yang kedua login tidak dapat menginputkan physical address-nya ke database.

Ketika proses pencocokkan antara physical address perangkat dengan physical address yang berasal dari database maka peserta ujian yang kedua akan gagal karena physical address-nya tidak sama. Akibatnya peserta yang physical address-nya tidak sama ini akan gagal login. Sedangkan peserta ujian yang physical address-nya cocok akan diarahkan ke halaman penyajian soal ujian online.

Jika yang pertama login adalah peserta ujian yang tidak diinginkan (joki), maka peserta ujian sebenarnya (yang berada dilokal) akan gagal login. Oleh karena itu diperlukan suatu pemeriksaan oleh pengawas ujian untuk memastikan

bahwa semua peserta ujian yang berada di ruang ujian telah berhasil loginsemua. Jika ada yang gagal login, kemungkinan besar peserta ujian tersebut menggunakan orang lain untuk menyelesaikan soal ujian (joki). Untuk tindakan

(37)

Pada pengujian ini, akan ditampilkan nilai physical address dari database dan nilai physical address dari perangkat. Tujuannya untuk memastikan bahwa nilai mereka sama. Namun pada prakteknya nilai ini tidak harus ditampilkan.

Gambar 4.6 : Halaman ujian online yang menampilkan soal ujian Beberapa perangkat telah dicoba melakukan login. Hanya satu perangkat yang berhasil login untuk satu NIM sedengkan untuk perangkat lain yang login menggunakan NIM yang sama akan gagal. Berikut hasil percobaan beberapa

(38)

rutan Login NIM Nama Perangkat Status

402089 mi Mi4C asil

402089 ovo A6000 al

402089 Aspire One al

(39)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil pengujian yang telah dilakukan, maka diperoleh beberapa

kesimpulan.

1. Ujian online lebih dinamis daripada ujian tertulis dikarenakan dapat melakukan random soal sehingga peserta ujian mendapatkan soal yang berbeda-beda.

2. Ujian online mampu mencegah orang yang tidak diinginkan (joki) mengikuti ujian karena keberadaan physical address yang tidak

mengizinkan adanya user berbeda dengan data yang sama.

3. Berdasarkan poin 1 dan 2 di atas, ujian online lebih mampu mencegah kecurangan-kecurangan ujian daripada ujian tertulis

5.2 Saran

Ujian online yang dirancang ini mungkin masih jauh dari sempurna. Oleh karena itu diharapkan partisipasi teman-teman mahasiswa untuk memberi

masukkan apabila telah diterapkan di Departemn Teknik Elektro USU sehigga

apabila ditemukan kekurangan-kekurangan dapat menyapaikannya ke alamat

email penulis yaitu :

Besar harapan penulis agar ujian online ini dapat bermanfaat bagi dosen dan mahasiswa dalam pelaksanaan ujian. Selain itu sangat diharapkan ujian online ini dapat menciptakan lulusan yang berkualitas dan jujur sehingga dapat memberikan

Gambar

Tabel data untuk menyimpan data-data penting yang berkaitan dengan
Gambar 3.1 : Tampilan CMD dari daftar tabel yang telah dibuat
Gambar 3.3 : Isi tabel acak
tabel data.
+2

Referensi

Dokumen terkait

Sistem terkomputerisasi yang dimaksud adalah, Ujian Saringan Masuk yang bersifat online dengan menggunakan media komputer, dengan demikian waktu ujian dapat menjadi

1 Arsitektur Sistem Aplikasi ujian online yang dibuat pada penelitian kali ini memiliki arsitektur sistem yang berbeda dengan aplikasi ujian online pada umumnya

a) Dalam melakukan ujian psikotes biasa perusahaan masih menggunakan secara manual yaitu dengan mengundang peserta dan membrikan lembaran soal dan lembar

Gambar 4.9 Grafik antara beban kondensor dan LMTD pada pengujian

Katagori metode, yang digunakan untuk melakukan pecarian kata dalam database adalah algoritma Maximal Shift dan algoritma Quick Search untuk mencapai tujuan yaitu:

Database merupakan salah satu komponen yang penting dalam sistem komputerisasi, karena database merupakan kumpulan dari beberapa file , dalam hal ini file – file

Dari hasil rekaman server, user memasukkan data username dan password yang sudah benar, tetapi server juga merekam bahwa mac address dari perangkat 2 tidak sesuai

Pada gambar 3.1, dapat dilihat bahwa permasalahannya adalah mengamankan data teks dan merahasiakan kunci simetris, sedangkan penyebabnya ada 4 hal yaitu metode yang