Penyusunan Modul Evaluasi pada Sistem Pembelajaran Cerdas

PENYUSUNAN MODUL EVALUASI
PADA SISTEM PEMBELAJARAN CERDAS

Ifnu Bima Fatkhan
G64101070

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
2007

PENYUSUNAN MODUL EVALUASI
PADA SISTEM PEMBELAJARAN CERDAS

Skripsi
Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor

Ifnu Bima Fatkhan
G64101070


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
2007

ABSTRAK
IFNU BIMA FATKHAN . Penyusunan Modul Evaluasi pada Sistem Pembelajaran Cerdas.
Dibimbing oleh Marimin dan Panji Wasmana.
Penyusunan Modul Evaluasi pada Sistem Pembelajaran Cerdas merupakan penelitian untuk
menyusun modul evaluasi pada sistem pembelajaran cerdas yang mengajarkan pada siswa konsepkonsep dasar pemrograman bahasa C. Modul evaluasi digunakan oleh sistem pembelajaran cerdas
sebagai media untuk mengetahui kemampuan siswa dan mengetahui perkembangan kemampuan
siswa sebelum, ketika dan setelah proses pengajaran berlangsung. Modul evaluasi juga
memberikan gambaran mengenai karakteristik kemampuan siswa terutama kemampuan siswa
dalam mengerjakan soal-soal pemrograman bahasa C.
Penelitian ini didasarkan pada sistem pembelajaran cerdas yang telah disusun untuk bahasa
Java oleh Edward R. Sykes (Sheridan College, Canada) dan Franya Franek (McMaster University,
Canada). Dalam sistem pembelajaran cerdas yang disusun oleh keduanya, proses evaluasi
pekerjaan siswa dilaksanakan dengan cara membandingkan pekerjaan siswa dengan kunci jawaban
yang unik, padahal jawaban untuk suatu soal tidak unik. Penelitian ini mengambil beberapa ide

Intent Recognition yang digunakan oleh Edward Sykes dan Franya Franek. Kemudian
memperbaiki metode evaluasinya dengan menambahkan proses grading yang dapat secara objektif
mengeveluasi jawaban siswa.
Penelitian ini menyempurnakan proses tutorial yang dikembangkan oleh Franek dan Sykes
dengan menambahkan output grader, sistem penjelas dan sistem perbaikan terotomasi. Proses
evaluasi dimulai dengan melakukan kompilasi terhadap kode sumber hasil jawaban siswa, jika
proses kompilasi berhasil, output grader akan mengetes jawaban dengan serangkaian tes. Jika
proses kompilasi gagal, lexer dan parser dalam Intent Recognition akan menganalisis kode
sumber. Kesalahan yang ditemukan dalam kode sumber dijelaskan oleh sistem penjelas. Siswa
dapat meminta pertolongan sistem perbaikan terotomasi untuk memperbaiki kode programnya.
Kata kunci : Sistem Pembelajaran Cerdas, Intelligent Tutoring System , modul evaluasi, output
grader, perbaikan terotomasi, intent recognition, sistem penjelas.

Penelitian ini aku persembahkan untuk :
Ayah dan Ibu tercinta, Kak Mifta, Dek Banan, Dek Pinten dan Neng Dian.

Sejarah Hanya Mengingat Pekerja Keras!!

Judul


: Penyusunan Modul Evaluasi pada Sistem Pembelajaran
Cerdas
: Ifnu Bima Fatkhan
: G64101070

Nama
NRP

Menyetujui:
Pembimbing I

Prof. Dr. Ir. Marimin, M.S c
NIP.131645110

Pembimbing II

Panji Wasmana, S.Kom, M.Si
NIP. 132311917

Mengetahui:

Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam
Institut Pertanian Bogor

Prof. Dr. Ir. Yonny Koesmaryono, MS
NIP. 131473999

Tanggal Lulus:

RIWAYAT HIDUP
Ifnu Bima Fatkhan lahir di Banyuwangi 15 Maret 1983, dilahirkan dari pasangan Rahmad
Nurhadi dan Ngatiyah Ismail. Anak kedu a dari empat bersaudara ini menyelesaikan Pendidikan.
Mengengah Atas di SMU Taruna Nusantara Magelang. Pada tahun 2001 penulis melanjutkan
pendidikan tingginya di Departamen Ilmu Komputer Institut Pertanian Bogor melalui jalur
undangan khusus prestasi. Undangan khusus ini dianugerahkan kepada penulis atas prestasinya
sebagai anggota Tim Olimpiade Kimia Indonesia pada 33rd International Chemistry Olympiad di
Mumbay India.
Selama kuliah penulis aktif dalam beberapa kegiatan kemahasiswaan terutama di
Himpunan Mahasiswa Ilmu Komputer. Penulis sangat tertarik dengan Community Develop ment,
hal ini dituangkannya dalam program kerja Departemen Riset dan Pengembangan HIMALKOM
2004/2005. Salah satu andil penulis dalam pengembangan komunitas adalah dengan menjadi

inisiator dan koordinator komunitas PHP di lingkungan departemen Ilmu Komputer IPB. Saat ini
penulis aktif dalam komunitas terutama komunitas NetB eans Indonesia sebagai Community
Leader, JLinux sebagai moderator dan komunitas Java User Group Indonesia sebagai anggota
aktif.

PRAKATA
Alhamdulillah wa syukrulillah penulis persembahkan ke hadirat Allah Subhanahu wa ta’ala
atas segala rahmat dan hidayah-Nya sehingga penelitian ini berhasil diselesaikan. Shalawat
beriring salam tercurah untuk Nabi Muhammad Shallalahu ‘alaihi wasallam beserta seluruh
sahabat, keluarga dan umatnya hingga akhir zaman.
Penulis sampaikan terima kasih yang tiada berhingga kepada semua pihak yang telah
membantu secara langsung maupun tidak langsung. Khususnya kepada Bapak Prof . Dr. Ir.
Marimin, M.Sc dan Bapak Panji Wasmana, S.Kom, M.Si yang dengan sabar dan berbesar hati
telah memberikan banyak bimbingan, masukan, motivasi berharga terhadap penelitian ini. P enulis
juga ingin mengucapkan terima kasih kepada Ibu Imas Sitanggang, S.Si, M.Kom atas
kesediaannya menjadi penguji pada sidang skripsi.
Selanjutnya penulis juga ingin mengucapkan terima kasih kepada:
1. Ayah dan Ibu tercinta atas semua do’a, nasehat, ketabahan, kesabaran dan kasih sayang
dari awal hingga akhir.
2. Mbak Mifta, Mas Nur, Dek Banan, Dek Dima dan Neng Dian yang selalu memberikan

dukungan dan semangat.
3. Dhira, Acid, Robi, Irfan, Rossi, Leisca yang dengan senang hati memberikan dorongan
untuk segera menyelesaikan penelitian ini.
4. Dhiku dan Meynar yang dengan sabar memberik an masukan dan koreksi terhadap laporan
penelitian ini.
5. Mas Endy yang secara tidak langsung mengenalkan ANTLR, Mas Ibrahim yang bersedia
meluangkan wakt u berdiskusi tentang ANTLR, Pak Tonny yang mengajari beberapa
konsep tentang Netbeans Platform dan tentu saja semua anggota komunitas netbeans
indonesia.
6. Terrence Parr dan Jean Bovet untuk pekerjaan yang luar biasa, ANTLR, C.g dan
AntlrWorks.
7. Mas Degy untuk ilmu Java dan icon SExI-FS.
8. Mas Irfan yang dengan sabar meminjami buku-buku perpustakaan, Pak Firman yang
bersedia mendengarkan laporan kemajuan, dan Toto yang terus mendukung selama
karantina di lab kecil.
9. Denny, Nanang dan penghuni Meteor House yang dengan murah hati menyediakan tempat
bernaung selama penelitian ini .
10. Didi untuk pinjaman karpetnya.
11. Irfan untuk tumpangan ke Darmaga dan bantuan selama seminar dan sidang.
12. Semua dosen dan Staf Departemen Ilmu Komputer IPB yang telah banyak membantu baik

selama pelaksanaan penelitian ini maupun sebelumnya.
13. Semua pihak lainnya yang telah memberikan kontribusi selama penelitian ini yang tidak
dapat disebutkan satu-persatu, terima kasih.
Semoga penelitian ini memberikan manfaat untuk pengembangan ilmu pengetahuan di masa
datang. Amin.
Bogor, Agustus 2007

Ifnu Bima

DAFTAR ISI
PENDAHULUAN
Latar Belakang................................................................................................................................................... 1
Tujuan ................................................................................................................................................................. 1
Ruang Lingkup .................................................................................................................................................. 2
Manfaat ............................................................................................................................................................... 2
TINJAUAN PUSTAKA
Sistem Pembelajaran Cerdas ........................................................................................................................... 2
Model Komunikasi............................................................................................................................................ 2
Modul Pakar ....................................................................................................................................................... 3
Modul Pedagogig .............................................................................................................................................. 3

Modul Siswa...................................................................................................................................................... 4
Modul Evaluasi.................................................................................................................................................. 4
Kode Sumber Bahasa C ............................................................................Error! Bookmark not defined.
Token ................................................................................................................................................................... 4
Lexer .................................................................................................................................................................... 4
Parser .................................................................................................................................................................. 4
Grammar ............................................................................................................................................................ 4
METODOLOGI PENELITIAN
Kerangka Pemikiran ......................................................................................................................................... 5
Studi Literatur .................................................................................................................................................... 5
Penentuan Metode Pengembangan Sistem ................................................................................................... 5
Analisis Kebutuhan........................................................................................................................................... 6
Perancangan ....................................................................................................................................................... 6
Implementasi...................................................................................................................................................... 6
Pengujian ............................................................................................................................................................ 6
HASIL DAN PEMBAHASAN
Analisis ............................................................................................................................................................... 6
Kebutuhan Fungsional .................................................................................................................................. 6
Strategi Penilaian ........................................................................................................................................... 7
Strategi Pengenalan Kesalahan ................................................................................................................... 7

Strategi Perbaikan Terotomasi .................................................................................................................... 7
Kebutuhan Non Fungsional ......................................................................................................................... 7
Perancangan ....................................................................................................................................................... 7
Arsitektur Sistem ........................................................................................................................................... 7
Perancangan Struktur Penyimpanan Data................................................................................................. 8
Perancangan Output Grader ........................................................................................................................ 8
Perancangan Intent Recognition.................................................................................................................. 9
Algoritma Transformasi Token .............................................................................................................. 11
Algoritma Pemeriksaan dan Pencatatan Kesalahan............................................................................ 11
Perancangan Sistem Perbaikan Terotomasi ............................................................................................ 12
Perancangan Antarmuka ............................................................................................................................. 13
Implementasi.................................................................................................................................................... 13
Implementasi Struktur Penyimpanan Data.............................................................................................. 13
Implementasi Output Grader .................................................................................................................... 14
Implementasi Intent Recognition.............................................................................................................. 14
Implementasi Sistem Perbaikan Terotomasi........................................................................................... 16
Proses Tutorial ............................................................................................................................................. 17
Implementasi Antarmuka Sistem.............................................................................................................. 18
Issue dalam Implementasi Sistem............................................................................................................. 19
Kelebihan Sistem ......................................................................................................................................... 19

Kekurangan Sistem ..................................................................................................................................... 20
Pengujian Kinerja Sistem Evaluasi.............................................................................................................. 20

Pengujian Kompleksitas Algo ritma Pada Modul Evaluasi...................................................................... 20
KESIMPULAN DAN SARAN
Kesimpulan ....................................................................................................................................................... 21
Saran .................................................................................................................................................................. 21

DAFTAR GAMBAR
1 Arsitektur sistem pembelajaran cerdas b ahasa C (Wasmana 2005). ...................................................2
2 Diagram metodologi p enelitian. .................................................................................................................5
3 Alur pengembangan sistem ( System Development Life Cycle) dengan metode waterfall menurut
Pressman (2001). ..........................................................................................................................................6
4 Arsitektur modul evaluasi............................................................................................................................8
5 Langkah-langkah dalam modul Output Grader .......................................................................................9
6 Graph DFA untuk menerima string identifier dalam bahasa C. ...........................................................9
7 Graph DFA untuk memvalidasi sintaks if dalam bahasa C. ................................................................ 10
8 Algoritma pemeriksaan dan pencatatan kesalahan oleh Intent Recognition. .................................... 12
9 Perancangan antarmuka modul evaluasi. ................................................................................................ 13
10 Tampilan antarmuka modul e valuasi.................................................................................................... 18

11 AntlrWorks membantu mengembangkan aplikasi ANTLR.............................................................. 19

DAFTAR TABEL
1 Daftar jenis kesalahan yang dikenali oleh lexer dan parser . ...................................................................... 15
2 Hasil Pengujian Modul Evaluasi ..................................................................................................................... 20

DAFTAR LAMPIRAN
1 Pengujian kinerja Intent Recognition. ............................................................................................................. 23
2 Pengujian kinerja sistem perbaikan terotomasi............................................................................................. 26
3 Pengujian sistem menggunakan metode black box. ..................................................................................... 27

1

PENDAHULUAN
Latar Belakang
Komputer telah digunakan dalam dunia
pendidikan lebih dari 20 tahun. Computer-based
Tutorial (CBT) dan Computer Aided Instruction
(CAI) adalah sistem yang pertama kali
diperkenalkan sebagai usaha untuk mengajar
siswa menggunakan komputer. Dalam sistem
seperti ini, instruksi terhadap siswa
tidak
diberikan secara unik kepada perseorangan, tetapi
instruksi diberikan sama untuk setiap siswa.
Keputusan bagaimana mengajarkan materi
kepada siswa tidak memperhatikan kemampuan
siswa, sehingga semua siswa akan diajar dengan
cara yang sama, tidak peduli apakah dia siswa
yang cepat belajar maupun siswa yang agak
lambat menerima materi.
Sistem
pembelajaran
cerdas
menyempurnakan kelemahan tersebut dengan
memperhatikan kemampuan siswa, kemudian
mengajarkan materi sesuai kemampuan masingmasing siswa. Selain itu, sistem pembelajaran
cerdas juga dapat mengetahui kelemahankelemahan siswa, sehingga dapat diambil
keputusan pedagogig untuk mengatasinya.
Dilihat
dari
berbagai
sisi,
sistem
pembelajaran cerdas , sangat mirip dengan sistem
pembelajaran yang diberikan oleh pengajar
secara private. Didasarkan pada ilmu kognitif
dan kecerdasan buatan, sistem pembelajaran
cerdas telah membuktikan keberhasilannya
menyampaikan pelajaran dengan baik dalam
berbagai bidang ilmu pengetahuan.
sistem
pembelajaran cerdas mendapatkan sambutan
yang sangat antusias dari berbagai pihak karena
beberapa alasan, antara lain: (1) meningkatkan
kemampuan siswa, (2) pemahaman kognitif yang
semakin baik, (3) waktu yang diperlukan siswa
memahami materi pelajaran lebih singkat (Franek
2003).
Penerapan sistem pembelajaran cerdas dalam
memonitor
dan
mengajarkan
bahasa
pemrograman telah dikembangkan dan di
evaluasi selama bertahun-tahun. Dalam banyak
hal, penerapan sistem pembelajaran cerdas dalam
mengajarkan
bahasa
pemrograman
telah
memberikan sumbangan yang cukup signifikan
dalam
perkembangan
bidang
sistem
pembelajaran cerdas itu sendiri. Termasuk
diperkenalkannya
konsep
model
siswa,

representasi pengetahuan, dan penerapan konsep
pedagogig.
Modul evaluasi pada sistem pembelajaran
cerdas merupakan kajian yang aktual, terutama
untuk menyusun modul evaluasi agar sesuai
dengan domain materi pembelajaran bahasa
pemrograman. Modul evaluasi pada sistem
pembelajaran cerdas dengan domain materi
pembelajaran bahasa pemrograman mempunyai
keunikan tersendiri. Pada umumnya, modul
evaluasi pada sistem pembelajaran cerdas hanya
menilai hasil jawaban siswa atas pertanyaan
berjenis pilihan ganda dan isian sederhana. Di
sisi lain, modul evaluasi pada sistem
pembelajaran cerdas dengan domain materi
pembelajaran bahasa pemrograman, harus
mampu mengevaluasi jawaban siswa atas
pertanyaan es ai dengan jawaban berupa kode
sumber program.
Sykes dan Franek (2003) menyusun modul
yang disebut Intent Recognition untuk memeriksa
kode sumber B ahasa Java yang dibuat oleh siswa.
Intent Recognition mengevaluasi kode sumber
siswa dengan memeriksa lebih teliti kode sumber
tersebut menggunakan lexer, parser, pengenalan
kesalahan, sistem penjelas, dan strategi perbaikan
terotomasi. Modul Intent Recognition bertujuan
untuk memahami makna semantik dari kode
sumber siswa dan secara efektif mengajarkan
siswa bahasa pemrograman lewat metode
learning-by-doing.
Intent Recognition memberikan solusi
bagaimana mengevaluasi hasil jawaban siswa
yang berupa kode sumber program. modul
evaluasi pada sistem pembelajaran cerdas akan
menggunakan metode Intent Recognition yang
digabungkan dengan output grader sebagai
komponen utama. Dengan konsep ini diharapkan
dapat disusun modul evaluasi yang dapat menilai
jawaban siswa secara lebih objektif dan
mengajarkan bahasa pemrograman kepada siswa
secara lebih efektif.
Tujuan
Tujuan dari penelitian ini adalah:
1

Menyusun
modul
evaluasi
sistem
pembelajaran cerdas, modul ini bertugas
untuk melakukan evaluasi terhadap hasil
jawaban siswa dari soal yang diberikan
kepada siswa. Jenis pertanyaannya adalah
esai dengan jawaban berupa kode sumber

2

bahasa C. Output dari modul ini adalah nilai
hasil jawaban siswa.
2

Menyusun sistem tutorial yang akan
memberikan
petunjuk
kepada
siswa
bagaimana memperbaiki kesalahan sintaks
yang terjadi dalam jawaban siswa atas soal
yang diberikan.

Ruang Lingkup
Penelitian ini dititikberatkan pada proses
penyusunan modul evaluasi untuk mengenali
kode sumber bahasa C sederhana. Kode sumber
yang diperiksa terbatas hanya pada kode sumber
yang ada dalam jendela editor. Semisal terdapat
preprocessor directrive #include , file header
dalam include tidak diperiksa. Fungsi lain yang
terdapat dalam file .c juga tidak diperiksa, hanya
ada satu fungsi yang digunakan, yaitu fungsi
main.
Kesalahan yang dikenali oleh modul evaluasi
hanya terbatas pada kesalahan sintaks. Kesalahan
logika (semantik) dalam program belum
termasuk dalam subjek penelitian ini.
Tidak semua kesalahan dapat diperbaiki
secara terotomasi. Hanya kesalahan penulisan
identifier dan kesalahan karena pengurangan atau
penambahan satu token yang dapat diperbaiki
secara terotomasi.

TINJAUAN PUSTAKA
Sistem Pembelajaran Cerdas
Sistem Pembelajaran Cerdas (Intelligence
Tutoring System, ITS) adalah suatu sistem yang
memanfaatkan teknik tingkat lanjut dalam
mendeskripsikan
dan meningkatkan proses
pengajaran. Gambar 1 menjelaskan arsitektur
sistem pembelajaran cerdas. Implementasi sistem
pembelajaran cerdas telah berkembang menjadi
suatu sistem yang mampu “memahami” dan
berlaku selayaknya pengajar dalam lingkungan
pengajaran private. Sistem pembelajaran cerdas
memberikan
fleksibilitas
dalam
mempresentasikan materi dan kemampuan
memahami karakteristik siswa.
Keunggulan sistem pembelajaran cerdas
dibandingkan proses pengajaran dalam kelas
besar adalah kemampuannya dalam memahami
karakteristik
unik
setiap
siswa
dan
menyampaikan materi pembelajaran sesuai
dengan karakteristik siswa tersebut (Franek
2003). Kecerdasan sistem pembelajaran cerdas
diwujudkan dalam kemampuan pedagogignya
untuk menyampaikan materi sesuai karakteristik
siswa yang diajarnya, memberikan tugas, dan
menilai kemampuan siswa.
Pengguna

Manfaat
Penelitian ini diharapkan memberikan satu
langkah ke depan dalam proses pengembangan
sistem pembelajaran cerdas di lingkungan
Departemen Ilmu Komputer.
Terwujudnya
sebuah sistem pembelajaran cerdas dapat
membantu pengajar dan siswa dalam proses
pembelajaran bahasa pemrograman, khususnya
bahasa C.
Dalam lingkup lebih luas, penelitian ini
diharapkan menjadi jembatan bagi penelitian
sejenis yang mengambil disiplin ilmu Teori
Bahasa dan Otomata di lingkungan Departemen
Ilmu Komputer IPB. Bahasa pemrograman
sekarang ini berkembang dengan pesat, terutama
bahasa pemrograman yang spesifik terhadap satu
area disiplin tertentu. Usaha untuk meneliti
aspek-asp ek dalam bahasa pemrograman tersebut
sangat
diperlukan
untuk
meningkatkan
kompetensi mahasiswa Ilmu Komputer di dunia
pendidikan maupun dunia industri.

Model Komunikasi

Modul Pedagogig

Modul Siswa

Unit Materi
Kurikulum
Unit Soal

Parameter
Sistem

Modul
Pakar
Modul Evaluator

Profil Siswa

Pemindai
Jawaban
Sistem Penjelas

Gambar 1 Arsitektur Sistem Pembelajaran
Cerdas Bahasa C (Wasmana 2005).
Model Komunikasi
Modul Komunikasi digunakan sebagai media
interaksi dengan pengguna. Bentuk-bentuk dialog
ditampilkan secara grafis dan informatif. Seluruh
komponen
interaksi
disusun
dengan
menggunakan kotak dialog, tombol, dan pilihan –

3

pilihan yang secara dominan dapat diakses
melalui keyboard dan mouse.
Modul Pakar
Modul pakar berfungsi sebagai pengatur
proses pedagogig dan menghitung tingkat
kognitif yang diterapkan sistem kepada siswa.
Pada modul pakar, strategi penyusunan materi
didasarkan pada model taksonomi tujuan
instruksional (taksonomi bloom’s pada ranah
kognitif).
Parameter input yang digunakan untuk
melakukan evaluasi adalah profil siswa dan hasil
interaksi siswa dengan sistem. Secara lebih
detail, komponen tersebut adalah:
1

Profil siswa
a Pembobotan
terhadap
ketertarikan
terhadap materi (menyukai, sangat
menyukai, biasa saja, tidak menyukai)
b Pemahaman
terhadap
algoritma
pemrograman (sangat paham, paham,
kurang paham, tidak paham sama sekali)
c IPK yang selanjutnya dikategorikan
menjadi kurang, cukup, dan baik.
d Model pembelajaran yang diinginkan
e Tingkat kognitif siswa
2 Parameter sistem
a Waktu yang dibutuhkan dalam proses
belajar
suatu
materi
dibandingkan
terhadap waktu rata-rata pada materi yang
bersangkutan.
b Nilai evaluasi yang diperoleh pada akhir
bab dengan melihat tingkat kognitif
berdasarkan
taksonomi
Bloom’s.
Parameter ini memiliki peranan terpenting
dalam penentuan tingkat pedagogig siswa.
c Tingkat
pedagogig
pada
materi
sebelumnya.
d Jumlah kemunculan dan banyaknya
referensi yang diakses.
Hasil akhir dari modul pakar adalah:
a Rekomendasi terhadap pemilihan materi
evaluasi (sulit, normal, mudah).
b Penentuan tingkat pedagogig pada materi
bab yang terkait atau bab selanjutnya
(sulit, normal, mudah).
c Mengatur model bantuan sistem yang
berbentuk penjelasan istilah atau bentuk
soal latihan (sulit, normal, mudah).

Modul Pedagogig
Hasil dari proses identifikasi pengetahuan
yang
diperoleh
dari
pakar
selanjutnya
diterjemahkan sebagai bentuk modul pedagogig.
Komponen pada modul ini terbagi dalam tiga sub
modul, yaitu:
1

Unit kurikulum yang memuat aturan
perkuliahan yang berlaku. Proses aturan
ini selanjutnya disebut sebagai sekuen
perkuliahan. Untuk memudahkan dalam
pembagian secara logis, proses sekuen ini
dibagi menjadi dua proses, yaitu:
• Sekuen konsep, memuat keterkaitan
materi pada tingkat bab (suku bahasan
utama).
• Sekuen chunk, memuat keterkaitan sub
bahasan terkecil pada setiap bab.
Penentuan kognitif seorang siswa
ditentukan oleh sekuen konsep. Sedangkan
untuk proses evaluasi dan pemindaian
tingkat akurasi pengetahuan ditentukan oleh
sekuen chunk .
2 Unit materi yang memuat materi – materi
perkuliahan dengan tingkat penjelasan
yang berbeda. Tingkat penjelasan ini
didasarkan pada tingkat kognitif siswa
dan model pedagogig yang yang telah
diterapkan dalam sistem pada sesi
pembelajaran sebelumnya. Secara umum
terdapat tiga tingkat penjabaran materi
yang diberikan sistem, yaitu: lambat,
normal, cepat. Masing – masing
penjelasan ini dipersiap kan untuk setiap
bab bahasan. Selain itu, unit materi
dilengkapi dengan bentuk – bentuk
fragment
pengetahuan
yang
mencerminkan satu sub komponen
bahasan terkecil (chunk).
3 Unit soal yang memuat beragam bentuk
soal yang bertujuan menguji kemampuan
siswa
dalam
menguasai
materi
perkuliahan. Setiap soal memiliki
karakteristik yang sesuai dengan ranah
kognitif dan tingkat pedagogig yang
dimiliki siswa.
Model pedagogig yang dikembangkan
menggunakan konsep model overlay. Pada model
ini, unit materi berisi seluruh konsep yang harus
dipelajari siswa dan diasumsikan bahwa siswa
mengetahui sebagian dari konsep tersebut. Proses
pembelajaran dianggap sebagai proses mengisi
lubang – lubang
kosong yang ada dalam

4

pengetahuan siswa. Proses ini terus dilakukan
hingga mereka telah dipandang cukup menguasai
materi yang diberikan (Martin 2004).
Modul Siswa
Pada modul siswa ini akan terekam data
siswa, komponen data yang terekam berkaitan
dengan proses adaptasi sistem terhadap
kemampuan siswa (Prentzas et al. 2002). Untuk
lebih memperjelas latar belakang siswa yang
berkaitan dengan materi yang diberikan, maka
selain informasi interaksi dengan sistem, profil
siswa turut direkam di dalam sistem (Wasmana
2005).
Modul Evaluasi
Modul evaluasi berfungsi dalam proses
evaluasi jawaban siswa dari soal yang diberikan
oleh sistem. Proses evaluasi dilakukan
berdasarkan jenis soal yang diberikan. Untuk
jenis soal pilihan terbatas tidak terdapat
perlakuan khusus dari sistem dalam proses
evaluasi. Sistem mencocokkan jawaban siswa
dengan jawaban seharusnya dan memberikan
nilai jika jawaban benar. Untuk kejadian jawaban
salah, sistem evaluasi akan memberikan
penjelasan letak kesalahan yang dilakukan
berdasarkan pilihan yang dilakukan siswa.
(Wasmana 2005)
Token
Token adalah kumpulan karakter yang
menyusun suatu bahasa. Dalam ilmu bahasa,
token dapat disamakan dengan kata. Token-token
ini dibentuk dari karakter-karakter berdasarkan
suatu aturan tertentu yang disebut sebagai lexer
rule.
Kode
sumber
bahasa
pemrograman
merupakan kumpulan karakter-karakter yang
masih belum bermakna. Untuk memperoleh
maknanya
karakter-karakter
itu
harus
dikelompokan. Pengelompokan ini mempunyai
aturan tertentu sehingga akan menghasilkan tipetipe token, misalnya: keywords, operator,
identifier dan komentar.
Token-token ini kemudian dikirimkan kepada
parser untuk kemudian digabungkan dengan
token-token lainnya untuk membentuk statement
(kalimat) (Grune 2001).

Lexer
Lexer merupakan bagian awal dari sebuah
recognition, tugasnya adalah mengubah aliran
karakter yang tidak bermakna menjadi potonganpotongan token yang sesuai dengan spesifikasi
grammar dari domain bahasanya. Lexer juga
membuang
karakter-karakter
yang
tidak
bermakna misalnya komentar, spasi, tab, dan
karakter baris baru (new line).
Hasil dari lexer berupa aliran token-token
yang kemudian akan diproses oleh parser.
Dengan mengubah aliran karakter menjadi aliran
token, lexer akan memudahkan parser dalam
mengenali struktur program dengan lebih baik.
Tanpa adanya lexer, parser harus mengenali
struktur program dari aliran karakter yang kurang
bermakna dibanding aliran token (Grune 2001).
Parser
Parser memeriksa struktur kode sumber
dengan menggunakan aturan-aturan dalam tata
bahasa (grammar) tertentu. Grammar inilah yang
menentukan apakah suatu urutan token dikatakan
valid atau tidak.
Parser mendapatkan input aliran token dari
lexer. Token-token ini kemudian dimasukan
dalam aturan-aturan parser untuk mengetahui
apakah urutan token-token tersebut membentuk
tata bahasa yang sesuai atau tidak. Jika terjadi
kesalahan tata letak token dalam tata bahasa,
parser akan mengembalikan kesalahan yang
mengindikasikan adanya kesalahan dalam kode
sumber (Grune 2001).
Grammar
Grammar didefinisikan sebagai formalisasi
dari struktur sebuah bahasa pemrograman (Grune
2000). Grammar merupakan sekumpulan aturan
(rule) untuk membentuk sebuah bahasa
pemrograman. Dalam konteks bahasa indonesia,
grammar adalah aturan-aturan pembentukan
huruf menjadi kata dan pembentukan kata
menjadi kalimat. Dalam konteks bahasa
pemrograman, grammar mendefinisikan aturan
pembentukan huruf atau simbol menjadi token
dan token menjadi statement.
Sebuah grammar terdiri dari kumpulan
production rules. Dengan menggunakan notasi
Context-Free Grammar, production rules terdiri
dari dua bagian, sisi sebelah kiri dan sisi sebelah
kanan, dipisahkan dengan simbol panah yang

5

mengarah ke kanan (à). Sisi sebelah kiri
merupakan nama dari production rule; sisi
sebelah
kanan
mendefisinikan
aturan
pembentukan token atau statement. Berikut ini
adalah sintaks umum suatu production rule:
expression
à
‘(‘
expression
OPERATOR expression ‘)’
Setiap production rule bisa digolongkan
menjadi dua: lexer rule dan parser rule. Lexer
rule mendefinisikan aturan pembentukan token
dari aliran huruf/simbol; sedangkan parser rule
mendefinisikan aturan pembentukan statement
dari aliran token (Parr 2007). Seperti dalam
contoh di atas, expression adalah parser
rule sedangkan OPERATOR adalah lexer rule.
Deterministic Finite Outomata (DFA)
DFA adalah sebuah mesin yang digunakan
untuk memvalidasi sebuah input. DFA
mempunyai input dan kumpulan state yang
menentukan apakah sebuah rangkaian input
tersebut diterima oleh mesin atau tidak. DFA
mempunyai aturan bahwa untuk sebuah transisi
dari satu state ke state yang lain harus ada tepat
satu input. Jika ada satu input yang sama untuk
dua buah transisi maka akan menyebabkan
transisi tersebut ambigu.
DFA terdiri atas:
1
2
3

4
5

Sebuah
kumpulan
finite
state,
dilambangkan sebagai Q.
Sebuah
kumpulan
simbol
input,
dilambangkan sebagai ? .
Fungsi transisi yang menerima argumen
simbol input dan state, mengembalikan
sebuah state. Dilambangkan sebagai d.
Sebuah start state, salah satu state dalam
Q.
Sekumpulan final state F, yang
merupakan subset dari Q.

DFA sering dinotasikan sebagai lima tuple
seperti contoh di bawah ini:
A = {Q, ? , d, q0 , F}

METODOLOGI PENELITIAN
Kerangka Pemikiran
Penelitian ini mengembangkan lebih lanjut
modul evaluasi pada sistem pembelajaran cerdas
yang dikembangkan oleh Wasmana (2005).

Sistem y ang dikembangkan memiliki model
stand alone dan tidak mendukung proses
komunikasi data.
Penelitian ini akan melalui tahap-tahap
seperti yang digambarkan dalam Gambar 2.
Penelitian diawali dengan studi literatur,
kemudian penentuan metode pengembangan
sistem
dan
dilanjutkan
dengan
fase
pengembangan sistem. Fase pengembangan
sistem diawali dengan analisis kebutuhan
dilanjutkan dengan perancangan, implementasi
dan diakhiri dengan pengujian.
Studi Literatur
Implementasi
Penentuan Metode
Pengembangan Sistem

Pengujian

Analisis Kebutuhan
Deployment
Perancangan

Gambar 2 Diagram Metodologi Penelitian.
Studi Literatur
Studi literatur diawali dengan menentukan
acuan utama penelitian. Acuan utama penelitian
ini adalah Java Intelligent Tutoring System
(JITS) yang dikembangkan oleh Edward Sykes
dan Franya Franek . Dari penelitian JITS,
diperoleh pengetahuan mengenai metode
pemeriksaan kode sumber bahasa pemrograman
menggunakan Intent Recognition.
Studi literatur dilanjutkan dengan mencari
metode untuk mengimplementasikan Intent
Recognition. Hal ini harus dilaksanakan penulis
karena implementasi JITS tidak dapat diperoleh.
Implementasi Intent Recognition adalah sebuah
sistem
language
recognition
dengan
menggunakan konsep lexer dan parser . Parr
(1999) menulis tutorial tentang membuat
recognizer sederhana dari awal, litetatur ini
cukup memberikan gambaran awal bagaimana
sebuah recognizer bekerja.
Penentuan Metode Pengembangan Sistem
Metode
pengembangan
sistem
yang
digunakan adalah Waterfall. Gambar 3
menggambarkan bagan pengembangan metode
Waterfall. Metode Waterfall diawali dengan

6

analisis, dilanjutkan dengan perancangan dan
implementasi, diakhiri dengan pengujian.
Metode pengujian yang digunakan adalah
black box testing. Metode pengujian ini hanya
terbatas menguji fungsionalitas dari sistem.
Pengujian dilakukan dengan mengikuti langkahlangkah yang didefinisikan dalam dokumen test
case yang telah disediakan sebelumnya.
Analisis
Kebutuhan
Desain Sistem

Implementasi
Modul evaluasi dibuat dalam Tahap
Implementasi. Proses pembuatan modul evaluasi
diawali dengan menyusun parser dan lexer,
dilanjutkan dengan menyusun sistem penjelas
dan
diakhiri
dengan
sistem
Perbaikan
Terotomasi.
Implementasi modul evaluasi berupa kode
program dan tampilan aplikasi didokumentasikan
secara lengkap. Kendala dan issue yang muncul
dalam tahap implementasi dicatat sebagai bahan
masukan untuk penelitian selanjutnya.
Pengujian

Implementasi
Sistem
Integrasi dan
Pengujian Sistem
Penggunaan dan
Pemeliharaan

Gambar 3 Alur pengembangan sistem (System
Development Life Cycle) dengan metode
waterfall menurut Pressman (2001).

Tahap pengujian dimaksudkan untuk
mengetahui sejauh mana kinerja Sistem Evaluasi
dalam memenuhi tujuan penelitian ini. Pengujian
juga dimaksudkan mengurangi kesalahan (bug)
sistem.
Proses pengujian dilaksanakan dengan
beberapa tahap, antara lain: pengujian kinerja
sistem, pengujian dengan metode black box
testing dan pengujian dengan metode analisis
algoritma.

Analisis Kebutuhan
Tahap analisis kebutuhan mendefinisikan
kebutuhan ap a saja yang harus dipenuhi oleh
sistem. Kebutuhan yang harus didefinisikan
mencakup kebutuhan fungsional dan kebutuhan
non
fungsional.
Kebutuhan
fungsional
mendefinisikan fungsi-fungsi dasar yang harus
diimplementasikan, kebutuhan fungsional ini
yang nantinya akan membedakan modul evaluasi
yang dibuat dan modul evaluasi yang ada dalam
JITS.
Perancangan
Tahap perancangan mendefinisikan bentuk
abstrak dari modul evaluasi. Arsitektur modul
evaluasi disusun untuk memenuhi kebutuhan
fungsional yang telah didefinisikan dalam tahap
sebelumnya. Setiap bagian penting dari modul
evaluasi dirancang lebih mendetail menggunakan
notasi dan diagram.
Algoritma yang digunakan dalam modul
evaluasi didefinisikan menggunakan notasi
ilmiah beserta abstraksi berupa flowchart.

HASIL DAN PEMBAHASAN
Analisis
1

Kebutuhan Fungsional

Kebutuhan fungsional mendefinisikan tiga
aspek penting dalam modul evaluasi, yaitu:
strategi penilaian jawaban siswa, strategi
pengenalan kesalahan dan strategi perbaikan
terotomasi. Ketiga aspek di atas merupakan
fungsionalitas utama dari modul evaluasi.
Ketiga aspek kebutuhan fungsional dapat
dipecah-pecah menjadi poin-poin penting sebagai
berikut:
a

Memahami variasi sintaks. Siswa harus
diperbolehkan
untuk
menggunakan
variabel yang berbeda, struktur kondisi
dan struktur iterasi yang berbeda.
b Memahami
variasi
implementasi.
Algoritma yang berbeda untuk konsep
yang sama harus bisa dikenali.
c Mengenali kesalahan. Jika terdapat
kesalahan harus ada penjelasan yang
lengkap.

7

d Membantu
siswa
memperbaiki
kesalahan. Selain penjelasan yang
lengkap atas kesalahan, siswa juga
dibantu dalam memperbaiki kesalahan
dengan memberikan petunjuk solusi yang
benar.
e Mengenali batasan-batasan. Jika terdapat
kesalahan yang tidak diketahui oleh
sistem, harus diberikan keterangan yang
jelas, hal ini berkaitan dengan faktor
reliabilitas.
f Memberikan penilaian atas jawaban
siswa.
Penilaian
yang
diberikan
didasarkan beberapa parameter dan
kondisi, tidak hanya dari kebenaran
jawaban.
2

S trategi Penilaian

Proses
penilaian
jawaban
siswa
menggunakan metode grading. Metode grading
memerlukan
kumpulan
pasangan
data
input/output untuk setiap soal. Data input/output
disimpan dalam struktur penyimpanan data.
Ketika proses penilaian akan berlangsung, sistem
akan membaca data input/output dari sumber data
dan menyimpannya dalam memori.
Langkah berikutnya dalam strategi penilaian
adalah mengkompilasi kode sumber hasil
jawaban siswa menjadi file executable. Data
input akan dimasukkan ke dalam file executable.
Agar proses pemasukan data ini berhasil, kode
sumber hasil jawaban siswa harus menyertakan
kode untuk menerima input berupa data input.
File executable juga harus mengeluarkan output
sesuai dengan format data output.
Penilaian
akan
didasarkan
pada
perbandingan output dari file executable dengan
data output. Agar penilaian akurat, kumpulan
pasangan data input/output disediakan sebanyak
mungkin, semakin banyak data input/output
maka semakin akurat nilai yang dihasilkan.
3

Strategi Pengenalan Kesalahan

Kode sumber hasil jawaban siswa tidak
selalu bebas dari kesalahan. modul evaluasi harus
mampu mengenali kesalahan dalam kode sumber.
Cara yang paling efektif untuk mengenali
kesalahan
dalam
kode
sumber
adalah
mengembangkan aplikasi yang bisa ”mengenali”
kode sumber bahasa C. Aplikasi demikian
disebut
language
recognizer.
Language
recognizer
adalah
aplikasi
yang
dapat

menentukan apakah sebuah kalimat mematuhi
aturan dalam tata bahasa atau tidak (Parr 2007).
Kesalahan yang ditemukan oleh language
recognizer dikategorikan dalam beberapa
kategori. Pengkategorian kesalahan memudahkan
modul evaluasi menyusun penjelasan kesalahan.
Kesalahan dengan kategori yang sama dapat
dijelaskan dengan pola yang sama. Penjelasan
kesalahan secara kasus per kasus sangat tidak
efisien, pengguna tidak memerlukan penjelasan
panjang lebar bertele-tele, tetapi penjelasan yang
singkat dan padat tentang kesalahan yang
dibuatnya.
4

Strategi Perbaikan Terotomasi

Kecerdasan modul evaluasi diwujudkan
dalam kemampuannya memperbaiki kesalahan
tertentu pada kode sumber secara terotomasi.
Siswa cukup memberikan persetujuan “y a” atau
“tidak” terhadap langkah perbaikan terotomasi,
tanpa perlu secara manual memperbaiki
kesalahan.
Siswa dapat menyetujui atau menolak proses
perbaikan
terotomasi,
dan siswa
dapat
membatalkan
semua
langkah
perbaikan
terotomasi yang diajukan oleh sistem.
5

Kebutuhan Non Fungsional
a

Kebutuhan Perangkat Keras
Prosesor : Intel Pentium 800 MHz
Memori : 256 M B DDR RAM
Hardisk : 40 GB
VGA : 32 MB
Keyboard dan Mouse
b Kebutuhan Perangkat Lunak
1 Sistem Operasi Microsoft Windows XP
Professional
2 Java 6 Runtime Environment
1
2
3
4
5

Perancangan
1

Arsitektur Sistem

Berdasarkan analisis kebutuhan sistem,
disusunlah arsitektur modul evaluasi sep erti yang
terlihat pada Gambar 4. Proses penilaian jawaban
siswa ditunjukkan oleh diagram lurus dari atas
hingga bawah. Jika terdapat kesalahan dalam
kode sumber jawaban siswa, maka Intent
Recognition akan mengambil alih dan mulai
melakukan serangkaian langkah membantu siswa
menemukan,
mengerti
dan
memperbaiki
kesalahan. Alur eksekusi program pada Gambar

8

4 dilaksanakan untuk setiap satu soal dalam
modul evaluasi.
start

student

menggunakan C compiler dan menghasilkan file
executable. Kemudian file executable tersebut
dijalankan dengan memasukkan data input.
Output yang dihasilkan file executable akan
dicocokan menggunakan output data yang
diambil dari struktur data yang telah disediakan
sebelumnya.
Berikut ini langkah-langkah yang akan
diambil oleh modul output grader.

Kode sumber bahasa C

1
Parse kode sumber
bahasa C

2
C parser
sukses?

Intent Recognition

Sistem Penjelas
Kompilasi kode sumber

Proses evaluasi jawaban oleh
output grader

3

Sistem Perbaikan
Otomatis

4
Tugas berikutnya
atau keluar

Gambar 4 Arsitektur Modul Evaluasi.

5

Kode sumber bahasa C hasil pekerjaan siswa
melalui proses kompilasi menggunakan
Digital Mars C Compiler yang menghasilkan
file executable (exe).
File yang XML berisi input output data
dibaca dan disimpan dalam memori, data ini
lah yang digunakan sebagai patokan benar
atau tidaknya hasil pekerjaan yang dilakukan
oleh siswa
File eksekusi hasil kompilasi dari kode
sumber bahasa C dijalankan dan data input
dimasukkan dalam standard input (stdin).
Operasi ini akan menghasilkan output dari
program.
hasil output dari program akan dibandingkan
dengan data output yang diperoleh dari data
input/output.
dari hasil perbandingan ini dapat ditentukan
apakah pekerjaan siswa benar atau salah.

Perancangan Struktur Penyimpanan Data

Langkah-langkah di atas dapat digambarkan
dalam sebuah bagan seperti pada Gambar 5.

Struktur penyimpanan data aplikasi harus
sefleksible mungkin dan semudah mungkin
dimanipulasi.
Ada
beberapa
alternatif
penyimpanan data yang lazim digunakan dalam
aplikasi, seperti misalnya: relational database,
text file, serializable object atau dokumen XML.

Compiler yang digunakan adalah DMC dari
Digital Mars. Sedangkan metode untuk
menjalankan Sistem output grader dilakukan
dengan memasukkan data ke standard input
(stdin) dan mengambil output dari standard
output (stdout) dari program hasil kompilasi.

2

Data yang harus disimpan adalah:
a
b
c
d
e
3

Soal dan pertanyaan
Jawaban
Data evaluasi
Hasil evaluasi
Tingkat kesulitan soal

Perancangan Output Grader

Output grader bertugas untuk menilai hasil
jawaban siswa. Output grader merupakan modul
implementasi dari strategi penilaian. Proses
penilaian akan dilaksanakan jika siswa
memasukkan kode yang benar tanpa ada
kesalahan. Kode sumber akan dikompilasi

Set elah output grader selesai dilaksanakan,
akan dihitung persentase keberhasilan tes ini.
Semakin banyak item dalam output grader
diharapkan semakin akurat hasil penilaian
terhadap pekerjaan siswa.
Penilaian terhadap pekerjaan siswa diperoleh
dari rasio antara tes yang benar dan jumlah tes.
Nilai = (Jawaban benar / Jumlah tes) * 100

9

Program hasil kompilasi
kode sumber
Memasukkan data input
ke dalam program hasil
proses kompilasi

Baca data input dari
penyimpanan data

Baca data output dari
penyimpanan data

Membandingkan data
output dengan output dari
program hasil kompilasi

Hasil evaluasi
output grader

Gambar 5 Langkah-langkah dalam modul Output
Grader .
4

Perancangan Intent Recognition

Beberapa jenis sistem pembelajaran cerdas,
memerlukan solusi yang spesifik terhadap
persoalan yang diberikan kepada siswa,
kemudian jawaban siswa akan dicocokan
karakter demi karakter dengan solusi tersebut.
Bentuk sistem pembelajaran cerdas tersebut
sangat kaku dan tidak dapat mengakomodasi
jawaban siswa yang sangat bervariasi.
Intent
Recognition
menyempurnakan
kelemahan ini dengan berusaha mengerti jawaban
siswa tanpa harus membandingkanya huruf demi
huruf dengan solusi yang telah ditentukan
terlebih dahulu.
Intent Recognition praktis merupakan
language recognition tools untuk mengenali
bahasa C. Kata Intent berarti bahwa proses
pemeriksaan bahasa C oleh Intent Recognition
disertai dengan ”tujuan” tertentu selain hanya
memeriksa saja.
Intent Recognition akan memeriksa kode
sumber jawaban siswa dengan tujuan:

lexer dan mencocokkannya dengan kumpulan
aturan-aturan yang mendefinisikan tata bahasa C.
Kumpulan aturan yang mendefinisikan tata
bahasa C disebut C Language Grammar
Specification. Seperti sudah dibahas di bagian
sebelumnya, terdapat dua jenis rule: lexer rule
dan parser rule. Setiap rule pada dasarnya
merupakan satu mesin DFA (Deterministic Finite
Automata). Lexer rule adalah DFA yang memuat
rangkaian langkah dan state untuk mengubah
karakter menjadi token. Sedangkan parser rule
adalah DFA yang memuat rangkaian langkah dan
state untuk memvalidasi urutan token, apakah
sudah memenuhi grammar atau tidak.
Perbedaan utama lexer rule DFA dan parser
rule DFA adalah set input yang diterima lexer
rule adalah karakter dengan hasil string yang
diterima DFA adalah token. Parser rule
mempunyai set input berupa token dengan
hasilnya berupa statement (kalimat) yang valid.
DFA dapat divisualisasikan menggunakan
notasi graph. Gambar 6 menggambarkan DFA
yang menerima string Identifier dalam bahasa C
sebagai valid input. String Identifier dalam
bahasa C harus diawali dengan huruf atau
karakter $ atau _, kemudian boleh diikuti dengan
huruf, angka, $ dan _.
Definisi DFA:
1
2
3

4
5

Q = {q0 , q1 }
? = {$, _, 0..9, a..z, A..Z}
d = { d(q0 ,$) = q1 ,
d(q0 ,_) = q1 , d(q0 ,a..z) = q1 ,
d(q0 ,A...Z) = q1 , d(q1 ,$) = q1 ,
d(q1 ,_) = q1 , d(q1 ,a..z) = q1 ,
d(q1 ,A...Z) = q1 , d(q1 ,0..9) = q1
}
q0
F = {q0 ,q1 }

a Mencari kesalahan dalam kode sumber.
b Menjelaskan kesalahan.
c Mencatat kesalahan yang bisa diperbaiki
secara terotomasi.
d Mencatat semua token dalam tabel token.
Bagian utama dari Intent Recognition adalah
lexer dan parser untuk memeriksa kode sumber
siswa. Lexer akan membaca karakter per karakter
kode sumber siswa. Kemudian mengubah aliran
karakter menjadi aliran token. Parser akan
mengambil setiap token yang dihasilkan oleh

Gambar 6 DFA untuk menerima string Identifier
dalam bahasa C.
DFA pada Gambar 6 di atas termasuk ke
dalam kategori DFA yang merepresentasikan

10

lexer rule, hal ini terlihat jelas dari simbol input,
?, yang terdiri dari karakter.
Definisi DFA:
1
2
3

4
5

Q = {q0 , q1 , q2 , q3 , q4 , q5 }
? = {’if’, ’)’, ’(’, expression, statement,
’else’}
d = { d(q0 , ’if’)=q1 , d(q1 , ’(’)=q2 ,
d(q2 , expression)=q3 , d(q3 , ’)’)=q4 ,
d(q4 , statement)=q5 , d(q5 , ’else’)=q6,
d(q6, statement)=q7
}
q0
F = {q5 , q7 }

Start

Tujuan pertama dari Intent Recognition
adalah mencari kesalahan dalam kode sumber.
Proses pencarian kesalahan terjadi dalam parser
rule. Ketika DFA berusaha mencocokkan aturan
dalam fungsi transisi (d) dengan token yang
berhasil dikenali oleh lexer rule, DFA akan
melaporkan kesalahan jika fungsi transisi tidak
dipenuhi. Setiap kesalahan akan mempunyai
kategori, hal ini untuk memudahkan penjelasan
kesalahan oleh Intent
Recognition dan
memudahkan sistem perbaikan terotomasi dalam
memperbaiki kesalahan.
Intent Recognition mempunyai tabel simbol
yang mencatat semua simbol Identifier yang
valid dalam kode sumber. Ketika DFA
menemukan sebuah Identifier, Intent Recognizer
akan tahu apakah Identifier itu sedang
didefinisikan atau sedang digunakan.
Jika Identifier sedang didefinisikan, maka
Intent Recognition akan menambahkan simbol
tersebut dalam tabel simbol. Jika Identifier
sedang digunakan, maka Intent Recognition akan
mencari Identifier dalam simbol tabel. Jika
Identifier belum ada pada tabel simbol, maka
telah terjadi kesalahan dalam kode program.

Gambar 7 DFA untuk memvalidasi sintaks if
dalam bahas a C.
Gambar 7 menerangkan DFA yang berasal
dari parser rule untuk memvaliadasi sintaks if
dalam bahasa C. Token ’if’ berada di depan
kemudian harus diikuti dengan token ’(’ setelah
itu diikuti oleh rule lain yang disebut
expression. Token berikutnya adalah ’)’
diikuti dengan statement. Statement ini
bisa merupakan apa saja, bisa saja statement
tersebut adalah if, hal ini mengijinkan bahasa C
untuk
mempunyai
nested
if.
Setelah
statement, ada token ’else’. Token setelah
’else’ adalah rule lain yaitu statement.
Seperti yang telah disinggung sebelumnya,
statement bisa apa saja, bisa juga if lain,
pola ini yang mengijikan adanya bentuk else
if dalam bahasa