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,
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
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.
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
Gambar 3.7 : Isi tabel data
3.2Pendaftaran Ujian Online
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" />
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.
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"/>
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
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])) {
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.
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
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
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));
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.
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();
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
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
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
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]");
else {
$query_data_6[4] = "Kosong"; }
<td class="text-left"><?php echo $query_data_2[2] ;?></td>
<td class="text-left"><?php echo $query_data_6[1] ;?></td>
<td class="text-left"><?php echo $query_data_6[2] ;?></td>
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
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' ");}
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
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
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
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
BAB IV
Tidak
Ya Ya
Tidak
Ya
Ya
Ya
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
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
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.
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.
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
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
rutan Login NIM Nama Perangkat Status
402089 mi Mi4C asil
402089 ovo A6000 al
402089 Aspire One al
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