33
BAGIAN 7
34
english vocabulary size dengan model logistik dalam Item Response Theory (IRT), juga dapat memberikan gambaran alternatif sebagai sistem evaluasi.
Untuk membangangun atau mengembangkan CAT Tahap pertama yang perlu dilakukan adalah melakukan literature review, observasi terkait identifikasi kebutuhan untuk pelaksanaan English vocabulary testing, model tes seperti apa yang digunakan dan apa saja masalah yang dihadapi pada saat pelaksanaan tes tersebut sehingga diperlukan adanya pengembangan tes yang dianggap tepat untuk mengetahui penguasaan English vocabulary peserta tes secara cepat, akurat dan aman. Pada tahapan pertama dilakukan analisis kebutuhan untuk mengidentifikasi kebutuhan untuk pelaksanaan English vocabulary testing, model tes seperti apa yang digunakan dan apa saja masalah yang dihadapi pada saat pelaksanaan tes tersebut sehingga diperlukan adanya pengembangan tes yang dianggap tepat untuk mengetahui penguasaan English vocabulary peserta tes secara cepat, akurat dan aman. Identifikasi kebutuhan dilakukan dengan menggunakan lembar observasi, seperti berikut ini.
Tabel 11. Hasil Identifikasi Kebutuhan
Identifikasi Kebutuhan Hasil Observasi 1. Pokok Bahasan yang diujikan Vocabulary Bahasa Inggris 2. Ranah kemampuan yang yang
diuji
Kognitif 3. Tingkatan taksonomi yang yang
diuji
Pengetahuan, pemahaman, aplikasi 4. Pembobotan tingkat kesulitaan
butir soal
Butir soal dibobot 1 semuanya 5. Range tingkat kesulitan butir tes -2 s.d. 2
35
Identifikasi Kebutuhan Hasil Observasi 6. Metode estimasi kemampuan
peserta tes
Maximum Likelihood Estimation (MLE)
7. Cara penilaian peserta tes untuk kebutuhan jurusan
Konversi kemampuan hasil estimasi dengan MLE 8. Kriteria prosesor minimal intel core i5
9. Kebutuhan memori RAM minimal 4.00 GB 10. Kebutuhan memori harddisk
minimal
1 TB 11. Kecepatan kerja komputer
minimal
2.5 GHz 12. Bahasa komputer yang dapat
digunakan untuk pengembangan program
CodeIgniter
13. Program basis data yang digunakan
MySQL 14. Sistem operasi yang digunakan Windows 10
15. Desain algoritma yang digunakan Item Response Theory (IRT) 16. Operasi basis data yang digunakan
(persis)
Standar saja (yang mampu dipakai oleh program lain), yaitu : buat data (create), simpan data (save), edit data (edit), hapus data (delete), cari data (search), ubah data (modify), dan tambah data (append)
17. Rancangan layout program user friendly, simple and clean, jaminan keamanan melalui
36
Identifikasi Kebutuhan Hasil Observasi kewenangan hak akses: admin, dosen dan mahasiswa
18. Model struktur basis data standard basis data yaitu berupa table yang terdiri dari field-field dan record
19. Struktur tabel data ID, parameter butir, bobot butir, butir soal, kunci jawaban dan distractor
20. Model representasi pengertahuan yang digunakan
rule base yaitu if-then
21. Variabel masukan program
dannilai masukan program adalah
nama pengguna (user) dan password, nilai masukkan untuk logika IRT adalah tingkat kesulitan, banyak butir soal 22. Variabel keluaran program dan
nilai keluaran yang ditampilkan adalah
tingkat kesulitan hasil logika IRT, kemampuan serta jumlah kosakata 23. Pengujian yang digunakan untuk
kinerja program
pengujian dilakukan dengan debugging meliputi : kesalahan kalimat (syntax error), kesalahan pelaksanaan (run time error) dan kesalahan hasil (logic error) 24. Pengujian yang digunakan untuk
fungsionalitas progam
pengujian dilakukan dengan white box testing, yaitu mengguji hasil program dan membandingkan dengan Analisa secara teori
37
Identifikasi Kebutuhan Hasil Observasi 25. Pengujian yang digunakan untuk
kinerja program
pengujian dilakukan dengan alpha testing/first user (dosen) dan beta testing/end user (mahasiswa)
Selanjutnya pada tahap kedua dilakukan planning dimana dilakukan perumusan model tes awal untuk memecahkan masalah yang telah ditemukan pada Tahap pertama dan menjajaki kemudahan pelaksanaan tes. Produk yang dikembangkan adalah suatu program pengujian (CAT) untuk mengukur english vocabulary size dengan menggunakan bantuan komputer melalui algoritma Item Response Theory (IRT), logika dan statistika untuk memilih item/butir soal berdasarkan respon jawaban peserta tes yang sesuai dengan kemampuan peserta tes tersebut. Berbagai perhitungan terkait person parameter maupun item parameter disini dilakukan melalui mekanisme dari suatu program komputer. Sistem pengukuran dengan batuan komputer (program CAT) berbasis IRT ini dikembangkan dengan melibatkan 3 pihak yang saling terkait. Pertama adalah pihak dosen yang dalam pengembangan sistem ini mempunyai kepentingan untuk mengukur kemampuan/pengusaan vocabulary mahasiswa (peserta tes). Kedua adalah pihak mahasiswa (peserta tes) yang dalam pengembangan sistem ini mempunyai kepentingan untuk mengukur kemampuan/penguasaan vocabulary dirinya sendiri. Ketiga adalah pihak pengembang yang membuat sistem sehingga dapat digunakan oleh pihak dosen dan pihak mahasiswa (peserta tes). Dalam hal ini pihak ketiga selanjutnya dalam program CAT disebut sebagai admin.
Tahap ketiga adalah Develop Preliminary Form of Product. Dilakukan desain sistem dan mengembangkan model tes yang cepat, akurat dan aman. Pada Model tes yang dikembangkan adalah Computerized-Adapative Testing (CAT), dan mempersiapkan peralatan untuk mengukur keberhasilan produk. Pada tahap ini juga dilakukan pengujian fungsional program atau apakah programnya sudah berfungsi dengan baik, selanjutnya dilakukan revisi dan analisis sampai dihasilkan produk
38
yang siap untuk diujicobakan. Pengujian fungsional dilakukan melalui 2 tahap yaitu pengujian internal dan eksternal. Pengujian internal dilakukan oleh pengembang dan pengujian eksternal dilakukan oleh ahli IT yang juga memahami pengukuran/asesmen.
Desain sistem merupakan proses menerapkan berbagai teknik dan prinsip sistem (program CAT). Adapun tujuan nya adalah untuk mendefinisikan komponen dan proses pengembangan sistem secara jelas, sehingga mudah untuk diimplementasikan. Desain sistem ini akan digambarkan dalam diagram alir (flowchart). Flowchart disini adalah bagan yang disusun dengan menggunakan simbol baku yang diakui secara internasional dan dapat menggambarkan proses pengembangan program CAT secara rinci. Flowchart dibuat berdasarkan analisis kebutuhan. Menurut Hadi,54 pengembangan CAT dapat dilakukan dengan algoritma yang berdasarkan IRT, logika dan statistika deskriptif. Flowchart dari desain sistem ini dapat dilihat pada Gambar 7.
Sistem CAT menentukan tingkat kesulitan butir soal yang akan diberikan kepada peserta tes berdasarkan pada respon jawaban peserta tes terhadap butir soal yang sudah diberikan sebelumnya. Jika jawaban pada butir soal sebelumnya salah, maka tingkat kesulitan soal yang akan diberikan pada butir selanjutnya akan lebih rendah (turun) dibandingkan tingkat kesulitan butir soal sebelumnya. Namun sistem CAT akan menaikkan tingkat kesulitan butir soalnya selanjutnya jika respon jawaban peserta tes terhadap butir soal sebelumnya benar. Data hasil tes tersebut selanjutnya dapat digunakan untuk menentukan kategori kemampuan/penguasaan vocabulary peserta tes. Penguasaan english vocabulary digunakan untuk klasifikasi kemampuan peserta tes. Penguasaan english vocabulary baik jika nilai ϴ ≥ 2.
Penguasaan english vocabulary cukup jika nilai ϴ ≥ 1 sampai dengan ϴ < 2.
Penguasaan english vocabulary kurang jika nilai ϴ < 1.
54 Hadi, Samsul. Pengembangan Computerized Adaptive Test Berbasis Web. Yogyakarta:
Aswaja Pressindo, 2013.
39
Gambar 7. Algoritma CAT
Setelah dilakukan desain sistem selanjutnya dilakukan pengembangan sistem (program CAT). Pada tahapan ini dilakukan penulisan perintah-perintah
40
program menggunakan bahasa pemrograman dan perintah-perintah program untuk akses basis data. Bahasa yang digunakan untuk menulis program yakni PHP.
Sedangkan untuk basis data menggunakan MySQL.
Implementasi ke dalam perintah program ditulis dengan menggunakan aturan yang telah baku. Perintah tersebut selanjutnya disebut sebagai skrip. Skrip dibuat berdasarkan desain yang telah diuraikan pada bagian rancangan diagram aliran data, flowchart, dan desain tampilan program. Terdapat dua hal pada bagian implementasi, yaitu: tahap penulisan skrip program dan tampilan hasil program,
1. Penulisan skrip program
Skrip program merupakan urutan dari perintah yang ditulis dengan menggunakan Bahasa tertentu (Bahasa komputer) dan disusun sedemikian rupa hingga bisa dipahami, dilaksanakan, dan dimengerti oleh komputer. Berikut adalah skrip program konseptual yang akan menggambarkan proses mulai dari awal hingga selesai.
a. Halaman awal (Landing page)
Halaman awal merupakan tampilan pertama kali yang muncul segera setelah program dijalankan. Berdasarkan pada desain halaman awal, terdapat 2 objek utama yakni tulisan selamat datang dan juga form untuk login peserta. Skrip konseptual untuk proses halaman awal adalah sebagai berikut:
<html lang="en">
<head>
<meta charset="utf-8">
<title>Form Login</title>
<link href="framework/bootstrap/css/bootstrap.css"
rel="stylesheet">
</head>
<body>
<!-- Navbar -->
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
41
<a class="brand"
href="index.php"><b>CAT</b></a>
<ul class="nav">
<!--Menuju Halaman Admin-->
<li><a href="admin/index.php">Halaman Admin</a></li>
</ul>
</div>
</div>
</div>
<!-- Login Form -->
<div class="container">
<div class="row">
<div class="span12">
<div style="margin-top:5em;">
<div class="row">
<div class="span4">
<center>
<form class="well"
id="login" action="login.php" method="post">
<div class="login- form">
<h2>Login Peserta</h2>
<fieldset>
<div>
<input type="text" placeholder="Nomor Peserta" name="nomor">
</div>
<div>
<input style="width:145px;" type="password" placeholder="Password"
id="password" name="password">
<button class=" btn btn-primary" type="submit" style="margin-
bottom:9px;">Login</button>
42
</div>
</fieldset>
</div>
</form>
</center>
</div>
<div class="span8">
<div class="hero-unit">
<h1>Selamat Datang,!</h1>
<p>Di Computerized Adaptive Tes</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="framework/jquery.js"></script>
<script
src="framework/bootstrap/js/bootstrap.js"></script>
</body>
</html>
b. Proses login
Berdasarkan hasil dari analisis kebutuhan telah disampaikan bahwa program CAT ini mengklasifikasikan user ke dalam 2 bagian yakni admin, dan peserta. Klasifikasi user tersebut diperlukan agar program dapat melaksanakan sesuai dengan proses yang diinginkan. Untuk menjaga keamanan maka diperlukan adanya deteksi kepada pengguna atau user yang meliputi nama dan password untuk admin, dan NIM dan password untuk peserta. Adapun penulisan skrip untuk proses login yakni sebagai berikut :
43 - Login untuk peserta
<?php
session_start();
include('database.php');
$query = mysqli_query($konek, "SELECT * FROM peserta WHERE nomor_peserta = '{$_POST['nomor']}' and
password='{$_POST['password']}'");
if (mysqli_num_rows($query) == 1) { $data = mysqli_fetch_array($query);
//menyimpan sesi login peserta $_SESSION['log_peserta'] = 'ya';
//menyimpan data peserta pada sesi
$_SESSION['nama'] = $data['nama_peserta'];
$_SESSION['nomor'] = $data['nomor_peserta'];
$_SESSION['kdpeserta'] = $data['kd_peserta'];
header('location:peserta.php');
} else {
header('location:index.php?error=salah');
}
?>
- Login untuk admin
<?php
session_start();
if ($_POST["username"] == "admin" && $_POST["password"] ==
"admin") {
$_SESSION['logged'] = "ya";
header('location:admin.php');
} else {
header('location:index.php?error=salah');
}
?>
44 c. Halaman menu utama
Berdasarkan dari desain, tampilan utama meliputi 2 klasifikasi yakni admin, dan peserta. Berikut merupakan skrip konseptual untuk proses yang berkaitan dengan 2 user tersebut :
- Jika user adalah Admin, maka skrip untuk tampilan halaman utama:
<html>
<head>
<meta charset="utf-8">
<link
href="../framework/bootstrap/css/bootstrap.css"
rel="stylesheet">
<script type="text/javascript"
src="../framework/jquery.js"></script>
<script type="text/javascript"
src="../framework/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript"
src="../framework/ckeditor/ckeditor.js"></script>
</head>
<body>
<?php include '../database.php'; ?>
<!-- menu admin pada navbar -->
<div class="navbar navbar-inverse navbar-fixed- top">
<div class="navbar-inner">
<div class="container">
<a class="brand active"
href="admin.php"><b>CAT</b></a>
<ul class="nav">
<li><a href="admin.php">Home</a></li>
<li><a href="?page=soal">Soal</a></li>
45
<li><a href="?page=tes">Daftar Tes</a></li>
<li><a href="?page=peserta">Daftar Peserta</a></li>
<li><a href="?page=hasiltes">Hasil Tes</a></li>
</ul>
<a href="?page=logout" class="btn btn- primary pull-right">Logout</a>
</div>
</div>
</div>
<?php
if (isset($_GET['page'])) { $page = $_GET['page'];
} else {
$page = 'none';
}
$fileinc = strtolower($page) . '.php';
if (file_exists($fileinc)) { //Mengecek handler
if (file_exists("handler/" . $fileinc)) { include "handler/" . $fileinc;
}
//tampil halaman yang ada pada page ?>
<div class="container">
<div class="row">
<div class="span12">
<div style="margin-top:5em;">
<?php include $fileinc; ?>
</div>
</div>
</div>
</div>
<?php
46
} else {
//tampil halaman utama admin ?>
<div class="container">
<div class="row">
<div class="span12">
<div style="margin-top:5em;">
<div class="hero-unit">
<h1>Selamat Datang,!</h1>
<p>Anda telah masuk ke halaman admin</p>
</div>
</div>
</div>
</div>
</div>
<?php }
?>
</body>
</html>
- Jika user adalah Peserta, maka skrip tampilan halaman utama:
<html>
<head>
<meta charset="utf-8">
<link href="framework/bootstrap/css/bootstrap.css"
rel="stylesheet">
<script type="text/javascript"
src="framework/jquery.js"></script>
<script type="text/javascript"
src="framework/bootstrap/js/bootstrap.js"></script>
</head>
<body>
<?php include 'database.php'; ?>
<!-- menu admin pada navbar -->
47
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand active"
href="admin.php"><b>CAT</b></a>
<ul class="nav">
<li><a href="peserta.php">Home</a></li>
<li><a href="?page=ikuttes">Tes</a></li>
</ul>
<a href="?page=logout" class="btn btn- primary pull-right">Logout</a>
</div>
</div>
</div>
<?php
if (isset($_GET['page'])) { $page = $_GET['page'];
} else {
$page = 'none';
}
$fileinc = strtolower($page) . '.php';
if (file_exists($fileinc)) { //Mengecek handler
if (file_exists("handler/" . $fileinc)) { include "handler/" . $fileinc;
}
//tampil halaman yang ada pada page ?>
<div class="container">
<div class="row">
<div class="span12">
<div style="margin-top:5em;">
<?php include $fileinc; ?>
</div>
48
</div>
</div>
</div>
<?php } else {
//tampil halaman utama admin ?>
<div class="container">
<div class="row">
<div class="span12">
<div style="margin-top:5em;">
<div class="row">
<div class="span4">
<div class="hero-unit">
<center>
<h4>Biodata</h4>
<p><?php echo
$_SESSION['nomor']; ?></p>
<p><?php echo
$_SESSION['nama']; ?></p>
</center>
</div>
</div>
<div class="span8">
<div class="hero-unit">
<h1>Selamat Datang,!</h1>
<p>Anda telah masuk ke halaman peserta</p>
</div>
</div>
</div>
</div>
49
</div>
</div>
</div>
<?php }
?>
</body>
</html>
d. Halaman soal
Pada halaman soal ini diperuntukkan bagi user admin. Berdasarkan desain, halaman soal menampilkan 2 pokok penting yakni untuk menambahkan soal, dan daftar soal yang telah ditambahkan.
- Untuk menambahkan daftar soal, skrip sebagai berikut :
<?php
if ($pesan != '') { ?>
<div class="alert <?php echo $jenispesan ?>">
<button type="button" class="close" data- dismiss="alert">×</button>
<?php echo $pesan ?>
</div>
<?php }
?>
<div class="page-header">
<h1>Soal <small> - <?php echo $judul ?></small>
<a href="?page=soal" class="btn btn-success pull- right"><i class="icon-chevron-left icon-white"></i> Daftar Soal</a>
</h1>
</div>
<div>
<form class="form-horizontal well" method="POST">
50
<div class="control-group">
<label class="control-label" for="isisoal">Isi Soal</label>
<div class="controls">
<textarea rows="5" class=" isisoal"
name="isisoal" id="isisoal"><?php echo $fisi_soal
?></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label" for="kunci">Kunci Jawaban</label>
<div class="controls">
<input type="text" name="kunci" id="kunci"
value="<?php echo $fkunci_soal ?>">
</div>
</div>
<div class="control-group">
<label class="control-label"
for="tingkatkesulitan">Tingkat Kesulitan</label>
<div class="controls">
<input type="text" name="tingkatkesulitan"
id="tingkatkesulitan" value="<?php echo $ftingkat_kesulitan
?>">
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" name="simpan"
class="btn btn-success">Simpan</button>
<a href="?page=soal" class="btn btn- danger">Batal</a>
</div>
</div>
</form>
</div>
51
<script>
window.onload = function() { CKEDITOR.replace( 'isisoal' );
};
</script>
- Untuk menampilan hasil dari daftar soal, skrip sebagai berikut:
<?php echo $pesan ?>
<div class="page-header">
<h1>Soal <small> - Daftar Soal untuk Tes</small>
<a href="?page=kelolasoal&to=tambah" class="btn btn-success pull-right">Tambah Soal</a>
</h1>
</div>
<!--Menampilkan list soal dalam tabel-->
<table class="table table-hover">
<tr>
<th style="width:20px"><b>No.</b></td>
<th style="width:100px"><b>Tindakan</b></td>
<th><b><center>Isi Soal</center></b></td>
<th style="width:20px" rel='tooltip' title='Kunci Jawaban'><b>K</b></td>
<th style="width:30px" rel='tooltip' title='Tingkat Kesulitan'><b>TK</b></td>
</tr>
<?php $no = 1;
while ($row = mysqli_fetch_array($result)) { ?>
<tr>
<td><?php echo $no ?></td>
<td><?php
echo " <a style='vertical-align:text- bottom;' class='icon-wrench'
href='?page=kelolasoal&to=ubah&kd={$row['kd_soal']}' rel='tooltip' title='ubah'></a>";
52
echo " ";
echo "<a style='vertical-align:text-bottom;' class='icon-trash' href='#_' rel='tooltip' title='hapus' onclick='hapusjs(\"{$row['kd_soal']}\")'></a>";
?></td>
<td><?php echo $row['isi_soal'] ?></td>
<td><?php echo $row['kunci_soal'] ?></td>
<td><?php echo $row['tingkat_kesulitan']
?></td>
</tr>
<?php $no++;
}
//bila data tidak ada maka if ($no == 1) {
echo '<tr><td>-</td><td>-</td><td>-</td><td>-
</td><td>-</td></tr>';
} ?>
</table>
<div class="modal hide fade">
<div class="modal-header">
<button type="button" class="close" data- dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<h4>Apakah anda yakin ingin menghapus data tersebut?</h4>
</div>
<div class="modal-footer">
<form method="POST">
<input name="kd_soal" type="hidden" />
<a data-dismiss="modal" class="btn">Tidak</a>
<button name="btnhapus" type="submit"
class="btn btn-danger">Ya</button>
</form>