• Tidak ada hasil yang ditemukan

Wasmana P. 2005. Pengembangan Modul Pakar pada Sis tem Pembelajaran Cerdas [tesis]. Bogor: Program Pascasarjana, Institut Pertanian Bogor.

Fitriani A. 2005. Penyusunan Modul Pedagogig Sistem Pembelajaran Cerdas Dengan

Ontology Model [Skripsi]. Bogor :

Departemen Ilmu Komputer, Institut Pertanian Bogor.

Sykes ER dan Franek F. 2003. A Prototype for an Intelligent Tutoring System for Students Learning to Program in Java.

Sykes ER dan Franek F. 2003. Web-Based Architecture of an Intelligent Tutoring System for Remote Students Learning to Program Java.

Sykes ER dan Franek F. 2003. Inside the Java Intelligent Tutoring System Prototype: Parsing Student Code Submissions with Intent Recognition.

Parr T. 2007. The Definitive ANTLR Reference. West Sussex, England: Pragmatig Programming, LTD.

Boudreau T, Tulach J, Wielenga G. 2007. Rich client programming: plugging into the NetBeans platform. Sun Microsystems. Pressman R. 2001. Software Engineering. West

Sussex, England: John Willey & Sons, LTD.

Parr T. 1999. Building Recognizers By Hand.

http://www.antlr.org

Grune D, Henri EB, Jacobs CJH, Langendoen KG. 2000. Modern Compiler Design.

West Sussex, England: John Willey & Sons, LTD.

Lampiran 1 Glossary ANTLR

ANother Tool for Language Recognition adalah librari yang menyediakan bahasa tingkat tinggi untuk menyusun language recognizer. Language Recognizer

Aplikasi yang digunakan untuk mengenali suatu bahasa pemrograman, terdiri dari gabungan antara lexer dan parser.

AntlrWorks

Aplikasi IDE (Integrated Development Environment) untuk membuat aplikasi language recognition dengan menggunakan ANTLR. AntlrWorks menyediakan text editor, visualisasi DFA dan NFA, debugging dan syntax highlighting.

Production Rule

Komponen dasar dalam sebuah grammar. Merupakan aturan untuk membuat sebuah kalimat dalam grammar tersebut. Terdiri dari lexer rule dan parser rule.

Lexer Rule

Salah satu jenis production rule yang bertugas untuk mendefinisikan aturan-aturan perubahan karakter menjadi token.

Parser Rule

Salah satu jenis production rule yang bertugas untuk mendefinisikan aturan-aturan pembentukan kalimat dari token-token yang dihasilkan lexer rule.

Regular Expression

Bahasa sederhana untuk mendefinisikan sebuah pola dalam string. Parser rule dan lexer rule menggunakan banyak sintak regular expression.

Grammar Specification

Kumpulan production rule yang menspesifikasikan sebuah bahasa pemrograman tertentu.

Expression

Kumpulan dari beberapa token yang menyusun bentuk operasi dasar seperti operasi aritmatika dan operasi logika.

Statement

Kumpulan dari token dan expression yang membentuk satu elemen utuh dalam bahasa pemrograman.

Grader

Aplikasi yang menilai software hanya berdasarkan pada input dan output yang dihasilkan oleh softwre tersebut.

Java

Bahasa pemrograman yang awalnya dikembangkan oleh Sun Microsystem, mempunyai sintak mirip dengan C++ dan merupakan bahasa pemrograman berbasis objek. Java berkembang menjadi teknologi yang handal digunakan untuk membuat solusi apapun, mulai dari embeded, mobile, desktop, web dan enterprise application.

Swing

Librari GUI yang tersedia dalam bahasa Java. Menyediakan komponen GUI yang lengkap dan fleksibel, seperti frame, panel, textbox dan sebagainya.

UML

Unified Modelling Language adalah notasi yang digunakan untuk merepresentasikan desain aplikasi yang berbasis objek. UML adalah abstraksi dari struktur aplikasi. UML digunakan dalam mendesain aplikasi berbasis objek, karena sifatnya yang abstrak, UML lebih mudah dipahami dan dimengerti dibanding melihat langsung kode sumber.

MVC

Model, View, Controller adalah pattern dalam aplikasi yang berusaha memisahkan komponen aplikasi berdasarkan fungsinya. Pemisahan ini memudahkan tim pengembang untuk tidak saling terikat secara erat dan dapat menyusun pembagian tugas dalam tim dengan lebih mudah.

NetBeans

Integrated Development Environment (IDE) yang dikembangkan oleh Sun Microsystem utamanya sebagai tools pengembangan java. NetBeans Platform

Kumpulan librari yang dikembangkan untuk membuat NetBeans IDE. Librari ini dapat digunakan untuk membuat plugin dalam NetBeans IDE atau membuat aplikasi lain. XML

eXtended Markup Language adalah bahasa markup yang digunakan utamanya sebagai penyimpanan data sederhana. XML sangat fleksibel dan standard, banyak digunakan sebagai format pertukaran data antar aplikasi atau digunakan sebagai format penyimpanan konfigurasi dari suatu aplikasi.

Lampiran 2 Pengujian kinerja Intent Recognition

1 Pengujian Intent Recognition dalam mengenali struktur dasar bahasa C tanpa kesalahan.

Kode Keterangan Status *)

#include <stdio.h> int main(){

int input, output; scanf("%d",&input); printf("%d",output); return 0;

}

Struktur kode program standard untuk menjawab pertanyaan. Terdapat bagian input (scanf) dan bagian output (printf)

Ok

output = input * input; Kode program sederhana untuk mengolah input menjadi output.

Ok if(input > 10){

output = input * 10; }

Struktur if sederhana dalam C. Ok if(input > 10){

output = input * 10; } else {

output = input * input; }

Struktur if-else sederhana dalam bahasa C. Ok

if(input > 10){

output = input * 10; } else if(input<5) { output = input * input; }

Struktur if-else if sederhana dalam bahasa C Ok

if(input > 10){

output = input * 10; } else if(input<5) { output = input * input; } else {

output = input * input / 15; }

Struktur if-else if- else sederhana dalam bahasa C

Ok

if(input > 10 && input != 0){ output = input * 10; }

Struktur if dengan expresi yang lebih dari satu operasi logika. Ok if(input > 10){ output = input * 10; if(input < 5) output += 12; }

Struktur if bersarang (nested) Ok

int i;

for(i=0;i<input;i++){ output+=input/i; }

Struktur dasar iterasifor Ok

int i,j; for(i=0;i<input;i++){ output+=input/i; for(j=i;j>0;j--){ output-=input/j; } }

Iterasifor bersarang (nested) Ok

i = input; while(i>1){

output += input / i + 12; }

Iterasiwhile sederhana Ok

i = input; do{

output += input / i + 12; }while(i>1);

Iterasido-while sederhana Ok

switch(input){ case 1:

output = input * input; break;

case 2:

output=input * in put + i; break;

case 3:

output = input / input; break;

default:

output = 0;}

Penggunaan struktur switch-case sederhana Ok

2 Pengujian Intent Recognition dalam mengenali kesalahan sederhana.

Kode Kesalahan Status *)

Int input, output; scanf("%d",&input); output = variabel; printf("%d",output); return 0;

Penggunaan variabel yang belum didefinisikan Ok

Int input, output, input; Pendeklarasian variabel yang sama lebih dari sekali

Ok output = input * input Tidak ada token ; di akhir sebuah baris Ok output = input * ; Statement yang tidak lengkap Ok For(i=0;i<10;i++{

output += input * i; }

Iterasi for yang tidak lengkap, token ‘)’ tidak ada

Ok For(i=0;i<10;i++){

output += input * i; Stetement for yang tidak dilengkapi dengan token ‘}’

Ok do{

output += input / i + 12; }

Iterasi do yang tidak diakhiri dengan while Ok

{

output += input / i + 12; }while(i>1);

Iterasi yang seharusnya diawali do dan diakhiri while, tetapi do-nya tidak ada

Gagal while(){

output = input * 21; }

Tidak ada ekspresi didalam while() Ok include <stdio.h> Ekspresi include yang tidak diawali token # Ok #include <stdio.h Ekspresi include yang tidak diakhiri tanda > Gagal #include stdio.h include yang tidak diawali < dan diakhiri > Gagal Int input, output;

double x; output = x;

Assingment antara dua buah tipe data yang berbeda

Gagal *) Status keberhasilan pendeteksian kesalahan.

3 Pengujian Intent Recognition dalam mengenali kesalahan yang kemungkinan dapat diperbaiki secara terotomasi.

Kode Kesalahan Status *)

Int input, output;

output = inpu * 21; Penghilangan satu karakter, inpu yang seharusnya input; Ok Int input, output;

output = inputx * 21; Penambahan satu karakter, inputx yang seharusnya input;

Ok Int input, output;

output = ipnut * 21; Pertukaran posisi antara dua karakter, ipnut yang seharusnya input. Ok Int input, output;

output = Input * 21; Substitusi satu karakter dengan karakter yang lain, Input yang seharusnya input Ok scanf("%d",&input) Penghilangan satu token ‘;’ Ok scanf("%d",&input; Penghilangan satu token ‘)’ Ok scanf "%d",&input); Penghilangan satu token ‘(’ Ok if(input > 10)

output = input * input; }

Penghilangan satu token ‘{‘ Gagal

if(input > 10){

output = input * input; Penghilangan satu token ‘}’ Gagal scanf("%d",&input)); Penambahan satu token ‘)’ Ok scanf (("%d",&input); Penambahan satu token ‘(’ Ok if(input > 10){{

output = input * input; }

Penambahan satu token ‘{‘ Gagal

if(input > 10){

output = input * input; }}

Penambahan satu token ‘}’ Gagal

Fir(i=0;i<=input;i++){

} Pergantian keywords for menjadi fir Gagal

Lampiran 3 Pengujian kinerja sistem perbaikan terotomasi

Kode Kesalahan Hasil Perbaikan Status *)

int input, output;

output = inpu * 21; Penghilangan satu karakter, inpu yang seharusnya input;

int input, output;

output = input * 21; Ok int input, output;

output = inputx * 21; Penambahan satu karakter, inputx yang seharusnya input;

int input, output;

output = input * 21; Ok int input, output;

output = ipnut * 21; Pertukaran posisi antara dua karakter, ipnut yang seharusnya input.

int input, output;

output = input * 21; Ok

int input, output;

output = Input * 21; Substitusi satu karakter dengan karakter yang lain, Input yang seharusnya input

int input, output;

output = input * 21; Ok

scanf("%d",&input) Penghilangan satu token ‘;’ dari statement

scanf("%d",&input); Ok

scanf("%d",&input; Penghilangan satu token ‘)’ dari statement

scanf("%d",&input); Ok

scanf "%d",&input); Penghilangan satu token ‘(’ dari statement

scanf "%d",&input ; Gagal

scanf("%d",&input)); Penambahan satu token ‘)’ scanf("%d",&input); Ok scanf (("%d",&input); Penambahan satu token ‘(’ scanf (("%d",&input)); Gagal

Ifnu Bima Fatkhan

Dokumen terkait