Latest Blog

Multimedia Interaktif Tata Surya
Membuat Multimedia Pembelajaran Interaktif tentang tata surya
ALL BLOG
;
Mengecek Jawaban Essay
Dalam sebuah media edukasi yang memiliki kuis bertipe Essay, tantangan terbesar adalah mengecek jawaban pemain dan membandingkannya dengan jawaban yang benar. Dalam praktik sehari-hari jawaban essay harus diamati secara baik oleh guru, karena yang dimaksudkan oleh murid bisa jadi mirip dengan jawaban yang benar namun disampaikan dengan gaya bahasa yang berbeda. Disinilah tingkat kesulitan membuat aplikasi untuk menilai jawaban essay. Diperlukan sebuah logika yang sangat mendalam agar aplikasi bisa humanis sebagaimana guru.
Dalam membuat kuis dengan jawaban essay, kita tidak boleh menggunakan logika persamaan string secara langsung, karena adanya ketidak miripan akan mengakibatkan nilai menjadi salah. Yang paling sering ditemui di lapangan adalah membandingkan string secara langsung sebagai berikut :
if (jawabanPemain.text == jawabanBenar.text) nilai+=10;
Oleh karena itu diperlukan sebuah logika tambahan agar kode bisa mendeteksi dengan baik jawaban essay dari pemain.
Cara yang paling mudah untuk dipahami, dan relatif akurat untuk menguji jawaban essay dari sebuah kuis interaktif adalah dengan menggunakan teknik Keyword. Keyword jawaban pemain, dan keyword jawaban benar dikomparasi kesamaannya untuk menentukan tingkat kemiripan dari jawaban pemain. Berikut adalah sampel cara membuat kuis dengan jawaban essay:
- Buatlah file baru dengan pengaturan yang sama seperti pada tutorial sebelumnya, yaitu Actionscript 3 dengan ukuran 800 x 480 pixel dan 30 fps.
- Buatlah Dynamic text untuk menampilkan soal, dan tambahkan instance name pertanyaanTxt
- Buatlah Input text untuk mendapatkan jawaban dari pemain, dan tambahkan instance name jawabanTxt
- Buatlah sebuah tombol untuk menguji jawaban, dan tambahkan instance name jawabBtn
- Buatlah Dynamic text untuk menampilkan nilai, dan tambahkan instance name nilaiTxt
- Buat sebuah Layer baru. Kemudian klik frame 1 layer 2, kemudian buka panel action dan ketikan kode berikut :
- Jalankan aplikasi dengan menekan tombol Ctrl+Enter.Cobalah menjawab pertanyaan dengan berbagai macam variasi jawaban. Maka akan dihasilkan nilai sesuai dengan kemiripan jawaban

import flash.events.MouseEvent; var pertanyaan:String = "Apakah yang dimaksud dengan ekosistem ?"; var jawaban:String = "Ekosistem adalah suatu sistem ekologi yang terbentuk oleh hubungan timbal balik tidak terpisahkan antara makhluk hidup dengan lingkungannya"; var kataSambung:Array = ["yang", "di", "dari", "oleh", "adalah", "suatu", "ke", "dengan", "antara"]; var awalan:Array = ["di", "ter", "me", "per"]; var akhiran:Array = ["nya", "kan", "me", "per"]; pertanyaanTxt.text = pertanyaan; jawabBtn.addEventListener(MouseEvent.CLICK, cek_jawaban); function cek_jawaban(e:MouseEvent):void{ if (jawabanTxt.text.length < 5){ nilaiTxt.text = "Jawaban belum diisi!"; }else{ nilaiTxt.text = "Nilai = "+cek_kemiripan(jawabanTxt.text, jawaban); } } function cek_kemiripan(st1:String, st2:String):Number{ var nilai:Number = 0; var i:int; var j:int; var jawabanPemain:Array = cari_keyword(st1); var jawabanBenar:Array = cari_keyword(st2); var nilaiMax:Number = jawabanBenar.length; var jawabSama:int = 1; //mencari kesamaan keyword untuk menentukan nilai for (i=0;i<jawabanPemain.length;i++){ for (j=0;j<jawabanBenar.length;j++){ if (jawabanPemain[i] == jawabanBenar[j]){ //jawabanPemain.splice(i, 1); //jawabanBenar.splice(j,1); jawabSama++; } } } //menentukan nilai nilai = Math.round((jawabSama/nilaiMax)*100); return nilai; } function cari_keyword(str:String):Array{ var i:int; var j:int; var dataJawab:Array = str.split(" "); //bersihkan data dari kata sambung for (i=0;i<dataJawab.length;i++){ for (j=0;j<kataSambung.length;j++){ if (dataJawab[i]==kataSambung[j]) dataJawab.splice(i, 1); } } //bersihkan data dari awalan for (i=0;i<dataJawab.length;i++){ for (j=0;j<awalan.length;j++){ var pos:int = dataJawab[i].indexOf(awalan[j]); if (pos > -1 && pos < 5 ) { dataJawab[i] = dataJawab[i].substr(awalan[j].length, dataJawab[i].length); } } } //bersihkan data dari akhiran for (i=0;i<dataJawab.length;i++){ for (j=0;j<akhiran.length;j++){ var pos2:int = dataJawab[i].lastIndexOf(akhiran[j]); if (pos2 > -1) { dataJawab[i] = dataJawab[i].substr(0, dataJawab[i].length-akhiran[j].length); } } } return dataJawab; }

Logika dasar dari teknik di atas adalah sebagai berikut :
- tentukan jawaban benar
- ubah jawaban benar tersebut menjadi keyword dengan cara membuang kata hubung, awalan dan akhiran
- baca jawaban pemain, pastikan panjang karakter lebih dari 3 huruf
- ubah jawaban pemain menjadi keyword dengan cara membuang kata hubung, awalan dan akhiran
- bandingkan jumlah keyword yang sama
Note : Kode di atas perlu dioptimalisasi untuk mencegah kecurangan dengan memanipulasi keyword secara berulang.
File sumber : FLA Adobe Animate 2017 - Kuis Essay
Share ( Ayo Berbagi )
Leave me a comment
untuk pertanyaan lebih baik di email langsung ke wandah [at] wandah [dot] com agar cepat direspon