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 iterasi for Ok
int i,j; for(i=0;i<input;i++){ output+=input/i; for(j=i;j>0;j- -){ output-=input/j; } }
Iterasi for bersarang (nested) Ok
i = input; while(i>1){
output += input / i + 12; }
Iterasi while sederhana Ok
i = input; do{
output += input / i + 12; }while(i>1);
Iterasi do-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