BAB VII KESIMPULAN DAN SARAN
7.2 Saran
7.2. Saran
Kekurangan masih terdapat pada aplikasi yang dibangun sehingga dapat dikembangkan dengan menambahkan, seperti berikut:
1. Aplikasi ini dapat dikembangkan dari sisi keamanan untuk menghindari SQL Injection.
2. Dapat membuat jadwal belajar untuk guru disetiap semester.
3. Dapat dikembangkan dengan menggunakan Synonym Recognation untuk mengetahui kata yang mengandung persamaan dan Stemming untuk menghilangkan kata imbuhan agar penemuan kesamaan menjadi lebih banyak sehingga mendapatkan nilai ulangan yang lebih baik.
4. Menambahkan chatting agar siswa dapat melakukan konsultasi atau bertanya sehubungan tugas kepada guru.
DAFTAR PUSTAKA
1. Astutik, S., Cahyani A.D., Sophan M. K., 2014. Sistem Penilaian Esai Otomatis Pada E-learning Dengan Algoritma Winnowing. Jurnal Informatika, Vol. 12, No. 2, November 2014, 47-52
2. Beal V, n.d. Application (Application Software). [Online] Available at: http://www.webopedia.com/TERM/A/application.html [Accessed 11 Juli 2016]
3. Hidayatullah, P., Kawistara, J. K., 2015. Pemrograman Web. Bandung: Informatika.
4. Indrajani, 2011. Bedah Kilat 1 Jam Pengantar dan Sistem Basis Data. Jakarta: PT Elex Media Komputindo.
5. Kamus Besar Bahasa Indonesia n.d. Kamus Besar Bahasa Indonesia (KBBI). [Online] Available at: http://kbbi.web.id [Accessed 11 Juli 2016]
6. Kementerian Pendidikan dan Kebudayaan Direktorat Jenderal Pendidikan Dasar dan Menengah, 2015. Undang-Undang Republik Indonesia Nomor 20 Tahun 2003. [Online] Available at: http://dikdas.kemdikbud.go.id/wp-content/uploads/2014/02/UU-No.-20-tahun-2003-tentang-Sisdiknas.pdf [Accessed 14 Juli 2016]
7. Prasetio, A., 2012. Buku Pintar Pemrograman Web. Jakarta: Mediakita. 8. Raharjo, B., 2011. Belajar Otodidak Membuat Database Menggunakan
MySQL. Bandung: Informatika
9. Raharjo, B., Heryanto, I., Rosdiana, K. E., 2014. Modul Pemrograman Web (HTML, PHP, & MySQL). 2nd ed. Bandung: Modula.
10. Riadi, M. 2014. Pengertian, Karakteristik dan Manfaat E-learning. Available at: www.kajianpustaka.com [Accessed 11 Juli 2016]
11. Rosa, A. S., Shalahuddin, M., 2015. Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. 3rd ed. Bandung: Modula.
12. Sidik, B., 2011. JavaScript. Bandung: Informatika.
13. Sidik, B., Pohan, H. I., 2014. Pemrograman Web dengan HTML. 5th ed. Bandung: Informatika.
LAMPIRAN A
Transkrip Wawancara
Berikut ini merupakan transkrip wawancara yang diajukan kepada Bapak Doan N. Jura, S.Pd, S.T. sebagai guru mata pelajaran Teknologi Informasi dan Komunikasi (TIK)
1. Aplikasi seperti apa yang dibutuhkan oleh SMP Kristen Kawangkoan?
Jawab : Kami membutuhkan aplikasi yang dapat digunakan untuk melakukan ulangan terkomputerisasi dan website sekolah.
2. Apa yang menjadi permasalahan dalam pelaksanaan ujian saat ini?
Jawab : Perhitungan jawaban yang membutuhkan waktu lama apalagi untuk soal ujian berupa esai, terlebih jika mengajar lebih dari satu kelas seperti saya.
3. Apakah di sekolah ini terdapat jaringan Internet? Jawab : Ya. Kami menggunakan speedy.
4. Berapa jenis soal yang digunakan untuk melakukan ujian? Jawab : Soal uraian dan pilihan ganda.
5. Bagaimana jika terjadi kesalahan penilaian, apakah siswa bisa mengajukan perbaikan nilai ujian?
Jawab : Bisa saja tapi disertai bukti kesalahan dimana. 6. Apakah ada ujian ulang jika nilai siswa sangat rendah?
Jawab : Ya.
Kawangkoan, 8 Agustus 2016
LAMPIRAN B
User Acceptance Testing1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Apakah dengan adanya aplikasi ini dapat membantu pemeriksaan dan pemberian nilai untuk jawaban esai?
Jawab:
4. Bagaimana dengan tampilan dari aplikasi ini? Jawab:
5. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik? Jawab:
6. Adakah saran untuk aplikasi yang dibangun? Jawab:
Tanda Tangan
1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Apakah dengan adanya aplikasi ini dapat membantu pemeriksaan dan pemberian nilai untuk jawaban esai?
Jawab:
4. Bagaimana dengan tampilan dari aplikasi ini? Jawab:
5. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik? Jawab:
6. Adakah saran untuk aplikasi yang dibangun? Jawab:
Tanda Tangan
1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Apakah dengan adanya aplikasi ini dapat membantu pemeriksaan dan pemberian nilai untuk jawaban esai?
Jawab:
4. Bagaimana dengan tampilan dari aplikasi ini? Jawab:
5. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik? Jawab:
6. Adakah saran untuk aplikasi yang dibangun? Jawab:
Tanda Tangan
1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Apakah dengan adanya aplikasi ini dapat membantu pemeriksaan dan pemberian nilai untuk jawaban esai?
Jawab:
4. Bagaimana dengan tampilan dari aplikasi ini? Jawab:
5. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik? Jawab:
6. Adakah saran untuk aplikasi yang dibangun? Jawab:
Tanda Tangan
1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Bagaimana dengan tampilan dari aplikasi ini? Jawab: __
4. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik? Jawab:
Tanda Tangan
1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Bagaimana dengan tampilan dari aplikasi ini? Jawab: __
4. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik? Jawab:
Tanda Tangan
1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Bagaimana dengan tampilan dari aplikasi ini? Jawab: __
4. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik? Jawab:
Tanda Tangan
1. Apakah aplikasi ini sesuai dengan yang diinginkan? Jawab:
2. Apakah aplikasi ini mudah digunakan? Jawab:
3. Bagaimana dengan tampilan dari aplikasi ini? Jawab: __
4. Apakah fitur dalam aplikasi ini dapat berfungsi dengan baik?
Jawab:
Tanda Tangan
LAMPIRAN C
Source Code
Script untuk aktivasi siswa
<?php $sql_siswa = mysqli_query($db, "SELECT * FROM tb_siswa WHERE status = 'tidak aktif'") or die ($db->error); if(mysqli_num_rows($sql_siswa) > 0) {
while($data_siswa = mysqli_fetch_array($sql_siswa)) { ?> tr> <td align="center"><?php echo $no++; ?></td>
<td><?php echo $data_siswa['nis']; ?></td> <td><?php echo $data_siswa['nama_lengkap']; ?></td> <td><?php echo $data_siswa['jenis_kelamin']; ?></td> <td><?php echo $data_siswa['tempat_lahir'].", ".tgl_indo($data_siswa['tgl_lahir']); ?></td> <td><?php echo $data_siswa['alamat']; ?></td> <td><?php echo ucfirst($data_siswa['status']); ?></td> <td align="center" width="200px"> <a href="?page=siswaregistrasi&action=aktifkan&id=<?php echo $data_siswa['id_siswa']; ?>" class="btn btn-primary btn-xs">Aktifkan</a>
<a onclick="return confirm('Anda Yakin Untuk
Menghapusnya?');"href="?page=siswaregistrasi&action=hapus& id=<?php echo $data_siswa['id_siswa']; ?>" class="btn btn-danger btn-xs">Hapus</a>
<a href="?page=siswa&action=detail&IDsiswa=<?php echo $data_siswa['id_siswa']; ?>" class="btn info btn-xs">Lihat</tr>
Script untuk membuat soal ulangan/tugas
<?php $sql_jumlah_pilgan = mysqli_query($db, "SELECT * FROM tb_soal_pilgan WHERE id_tq = '$id'") or die ($db->error); ?> <div class="col-md-2">
<label>Pertanyaan No. [ <?php echo
mysqli_num_rows($sql_jumlah_pilgan) + 1; ?> ]</label> </div> <div class="col-md-10">
<div class="form-group">
<textarea name="pertanyaan" class="form-control" rows="2" required></textarea></div></div>
<div class="col-md-2">
<label>Gambar <sup>(Optional)</sup></label><div> <div class="col-md-10"> <div class="form-group">
<input type="file" name="gambar" class="form-control"/> </div></div>
<div class="col-md-2">
<label>Pilihan A</label></div> <div class="col-md-10">
<div class="form-group">
<textarea name="pilA" class="form-control" rows="1" required></textarea></div></div>
<div class="col-md-2">
<label>Pilihan B</label></div> <div class="col-md-10">
<div class="form-group">
<textarea name="pilB" class="form-control" rows="1" required></textarea></div></div>
<div class="col-md-2">
<label>Pilihan C</label></div> <div class="col-md-10">
<div class="form-group">
<textarea name="pilC" class="form-control" rows="1" required></textarea></div></div>
<div class="col-md-2">
<label>Pilihan D</label></div> <div class="col-md-10">
Script untuk membuat soal ulangan/tugas
<div class="form-group">
<textarea name="pilD" class="form-control" rows="1" required></textarea></div></div>
<div class="col-md-2"><label>Pilihan E</label></div> <div class="col-md-10"><div class="form-group"> <textarea name="pilE" class="form-control" rows="1" required></textarea></div></div><div class="col-md-2"> <label>Kunci Jawaban</label></div><div class="col-md-10"> <div class="form-group"><label class="radio-inline"> <input type="radio" name="kunci" value="A">A</label> <label class="radio-inline">
<input type="radio" name="kunci" value="B">B</label> <label class="radio-inline">
<input type="radio" name="kunci" value="C">C</label> <label class="radio-inline">
<input type="radio" name="kunci" value="D">D</label> <label class="radio-inline">
<input type="radio" name="kunci" value="E">E</label></div> <?php $sql_jumlah_essay = mysqli_query($db, "SELECT * FROM tb_soal_essay WHERE id_tq = '$id'") or die ($db->error); ?> <div class="col-md-2"><label>Pertanyaan No. [ <?php echo mysqli_num_rows($sql_jumlah_essay) + 1; ?>
]</label></div><div class="col-md-10"><div class="form-group"><textarea name="pertanyaan" class="form-control" rows="3" required></textarea></div></div><div class="col-md-2"><label>Jawaban No. [ <?php echo
mysqli_num_rows($sql_jumlah_essay) + 1; ?> ]</label></div>
Script untuk menjawab soal ulangan/tugas
<?php $sql_jumlah_pilgan = mysqli_query($db, "SELECT * FROM tb_soal_pilgan WHERE id_tq = '$id'") or die
($db-Script untuk menjawab soal ulangan/tugas
<label>Pertanyaan No. [ <?php echo
mysqli_num_rows($sql_jumlah_pilgan) + 1; ?> ]</label> </div> <div class="col-md-10"><div class="form-group">
<textarea name="pertanyaan" class="form-control" rows="2" required></textarea></div></div><div class="col-md-2"> <label>Gambar <sup>(Optional)</sup></label><div>
<div class="col-md-10"> <div class="form-group">
<input type="file" name="gambar" class="form-control"/> </div></div><div class="col-md-2"><label>Pilihan
A</label></div><div class="col-md-10"><div class="form-group"><textarea name="pilA" class="form-control" rows="1" required></textarea></div></div><div class="col-md-2"> <label>Pilihan B</label></div><div class="col-md-10"> <div group"><textarea name="pilB" class="form-control" rows="1" required></textarea></div></div><div class="col-md-2"><label>Pilihan C</label></div><div class="col-md-10"><div class="form-group">
<textarea name="pilC" class="form-control" rows="1" required></textarea></div></div><div class="col-md-2"> <label>Pilihan D</label></div><div class="col-md-10"> <div group"><textarea name="pilD" class="form-control" rows="1" required></textarea></div></div>
<div class="col-md-2"><label>Pilihan E</label></div> <div class="col-md-10"><div class="form-group"> <textarea name="pilE" class="form-control" rows="1" required></textarea></div></div><div class="col-md-2"> <label>Kunci Jawaban</label></div><div class="col-md-10"> <div class="form-group"><label class="radio-inline"> <input type="radio" name="kunci" value="A">A</label> <label class="radio-inline">
<input type="radio" name="kunci" value="B">B</label> <label class="radio-inline">
<input type="radio" name="kunci" value="C">C</label> <label class="radio-inline">
<input type="radio" name="kunci" value="D">D</label> <label class="radio-inline">
<input type="radio" name="kunci" value="E">E</label></div> <?php $sql_jumlah_essay = mysqli_query($db, "SELECT * FROM tb_soal_essay WHERE id_tq = '$id'") or die ($db->error); ?> <div class="col-md-2">
<label>Pertanyaan No. [ <?php echo
mysqli_num_rows($sql_jumlah_essay) + 1; ?> ]</label></div> <div class="col-md-10"><div class="form-group">
<textarea name="pertanyaan" class="form-control" rows="3" required></textarea></div></div><div class="col-md-2"> <label>Jawaban No. [ <?php echo
Script untuk nilai hasil ulangan/tugas <?php if(mysqli_num_rows($sql_cek_nilai_pilgan) > 0) { while($data_nilai_pilgan = mysqli_fetch_array($sql_cek_nilai_pilgan)) { ?> <tr><td><?php echo $no++; ?></td> <td><?php echo $data_nilai_pilgan['mapel']; ?></td> <td><?php echo $data_nilai_pilgan['judul']; ?></td>
<td>Jawaban Benar: <?php echo $data_nilai_pilgan['benar']; ?> soal<br />Jawaban Salah: <?php echo
$data_nilai_pilgan['salah']; ?> soal<br />Tidak dikerjakan: <?php echo
$data_nilai_pilgan['tidak_dikerjakan']; ?> soal<br /> Nilai: <?php echo $data_nilai_pilgan['presentase']; ?> </td><?php $sql_cek_jawaban = mysqli_query($db, "SELECT * FROM tb_jawaban WHERE id_tq = '$data_nilai_pilgan[id_tq]' AND id_siswa = '$_SESSION[siswa]'") or die ($db->error); $data_jawaban = mysqli_fetch_array($sql_cek_jawaban); if(mysqli_num_rows($sql_cek_jawaban) > 0) {
$sql_cek_nilai_essay = mysqli_query($db, "SELECT * FROM tb_nilai_essay WHERE id_tq = '$data_nilai_pilgan[id_tq]' AND id_siswa = '$_SESSION[siswa]'") or die ($db->error); $data_nilai_essay = mysqli_fetch_array($sql_cek_nilai_essay); if(mysqli_num_rows($sql_cek_nilai_essay) > 0) { ?> <td><?php echo $data_nilai_essay['nilai']; ?></td> <td><?php echo ($data_nilai_pilgan['presentase']+$data_nilai_essay['nilai '])/2; ?></td>
<td>Ujian ini tidak ada soal Esai</td>
<td><?php echo $data_nilai_pilgan['presentase']; ?></td> <?php } ?>
Script untuk algoritma Winnowing
<?phpclass Winnowing_model{function cekPlagiat($teks1='', $teks2='', $gram='5', $window='5') {$kesamaan=null;
if (strlen($teks1) < $gram || strlen($teks2) < $gram) { return 0; } else {$data['teks1NonKarakter'] = $this->removeSpecialChar($teks1);$data['teks2NonKarakter'] = $this->removeSpecialChar($teks2);$data['teks1Split'] = $this->split($data['teks1NonKarakter'], $gram); $data['teks2Split'] = $this->split($data['teks2NonKarakter'], $gram); $data['teks1Hash'] = $this->hashSemuaGram($data['teks1Split']);
Script untuk algoritma Winnowing $data['teks2Hash'] = $this->hashSemuaGram($data['teks2Split']); $data['teks1Window'] = $this->window($data['teks1Hash'], $window);$data['teks2Window'] = $this->window($data['teks2Hash'], $window); $data['window1Terkecil'] = $this->windowTerkecil($data['teks1Window'], $window); $data['window2Terkecil'] = $this->windowTerkecil($data['teks2Window'], $window); $jmlHash = $this->jmlHash($data['window1Terkecil'], $data['window2Terkecil']);
$kesamaan = $this->kesamaan($jmlHash['n'], $jmlHash['u']); return $kesamaan;}}function removeSpecialChar($teks) { $a = $teks;$b = preg_replace("/[^a-z0-9_\-\.]/i", "-", $a);$c = explode("-", $b) $e = '';$f = '';for ($d = 0; $d < count($c); $d++) {if (trim($c[$d]) != "")$e .= $c[$d] . " ";}$e = strtolower(substr($e, 0, strlen($e) - 1));
$f = str_replace(array(" ", ".", "_"), "", $e);return $f;} function split($teks, $gram) {$i = 0; $length =
strlen($teks);for ($i; $i <= $length - $gram; $i++) { $teksSplit[] = substr($teks, $i, $gram);}return
$teksSplit;} function hashSemuaGram($gram) {$hashGram = null; foreach ($gram as $a => $teks) {$hashGram[] = $this->hash($teks);}return $hashGram;}function hash($string) {$basis = 2;$pjgKarakter = strlen($string);$hash = 0;for ($i = 0; $i < $pjgKarakter; $i++) {$ascii =
ord($string[$i]);$hash += $ascii * pow($basis,$pjgKarakter - ($i + 1));}return $hash;}function window($gramHash, $window) {$kumpulanWindow = null;$i = 0;$pjgArray = count($gramHash);while ($i < $pjgArray - $window + 1) { $j = $i;for ($j; $j < $window + $i; $j++) {
$kumpulanWindow[$i][$j - $i] = $gramHash[$j];}$i++;} return $kumpulanWindow;}function
windowTerkecil($kumpulanWindow, $window) {$pjgArray = count($kumpulanWindow);for ($i = 0; $i < $pjgArray; $i++) {for ($j = 0; $j < $window; $j++) {if
(!isset($kumpulanWindow[$i]['terkecil']) &&!isset($kumpulanWindow[$i]['posisiTerkecil'])) {$kumpulanWindow[$i]['terkecil'] =$kumpulanWindow[$i][$j]; $kumpulanWindow[$i]['posisiTerkecil'] = $j + $i;}if (isset($kumpulanWindow[$i][$j])) {if ($kumpulanWindow[$i][$j] <$kumpulanWindow[$i]['terkecil']) {$kumpulanWindow[$i]['terkecil'] =$kumpulanWindow[$i][$j]; $kumpulanWindow[$i]['posisiTerkecil'] = $j + $i;}}}}return $kumpulanWindow;}function jmlHash($window1Terkecil,
$window2Terkecil) {$tampung = '';$fingerPrint1 = null; $pjgArray = count($window1Terkecil);for ($i = 0; $i < $pjgArray; $i++) {if ($tampung !=
$window1Terkecil[$i]['terkecil']) {
$fingerPrint1[] = $window1Terkecil[$i]['terkecil']; $tampung = $window1Terkecil[$i]['terkecil'];}}$tampung = '';$fingerPrint2 = null;$pjgArray =
Script untuk algoritma Winnowing
count($window2Terkecil);for ($i = 0; $i < $pjgArray; $i++) {if ($tampung != $window2Terkecil[$i]['terkecil']) {
$fingerPrint2[] = $window2Terkecil[$i]['terkecil'];
$tampung = $window2Terkecil[$i]['terkecil'];}}$tampung1 = null;$tampung2 = null;$pjgArray1 = count($fingerPrint1); $pjgArray2 = count($fingerPrint2);for ($i = 0; $i <
$pjgArray1; $i++) {$ada = 0;for ($j = 0; $j < $i; $j++) { if ($fingerPrint1[$i] == $fingerPrint1[$j]) {$ada = 1;}} if ($ada == 0) {$tampung1[] = $fingerPrint1[$i];}}
for ($i = 0; $i < $pjgArray2; $i++) {$ada = 0;for ($j = 0; $j < $i; $j++) {if ($fingerPrint2[$i] ==
$fingerPrint2[$j]) {$ada = 1;}}if ($ada == 0) {$tampung2[] = $fingerPrint2[$i];}}$fingerPrint1 =
$tampung1;$fingerPrint2 = $tampung2;$pjgArray1 =
count($fingerPrint1);$pjgArray2 = count($fingerPrint2); $jml['n'] = 0;for ($i = 0; $i < $pjgArray1; $i++) {for ($j = 0; $j < $pjgArray2; $j++) {if ($fingerPrint1[$i] == $fingerPrint2[$j]) {$jml['n']++;break;}}}$jml['u'] = $pjgArray1 + $pjgArray2 - $jml['n'];return $jml;} function kesamaan($irisanHash, $gabunganHash) {return substr((($irisanHash / $gabunganHash) * 100), 0, 4);}}?>