Source Code Autograder

dokumen-dokumen yang mirip
Deteksi Otomatis Plagiarisme Source Code

BAB III ANALISIS. 3.1 Deskripsi Sistem III-1

BAB IV PERANCANGAN. 4.1 Autograder Engine IV-1

PENGEMBANGAN CODE GENERATOR BERBASIS WEB UNTUK MEMBANGKITKAN KODE MODUL APLIKASI WEB

BAB V IMPLEMENTASI DAN PENGUJIAN

MODEL SISTEM PENJADWALAN DEPENDENCY PADA BASIS DATA DEDUKTIF

ABSTRAK. Kata Kunci : mengintegrasikan, mudah, terkomputerisasi

Penerapan Teknik Bayesian Network dalam Pengembangan Prototipe Aplikasi Web Content Mining

ABSTRAK. Kata Kunci : Pendaftaran, Penerimaan PNS, ujian penerimaan PNS, Kalimantan Tengah. viii Universitas Kristen Maranatha

Strategi Implementasi Peningkatan Waktu Proses Algoritma PrefixSpan untuk Sequential Pattern Mining

BUSINESS PROCESS REPORTING SERVICE SUBSISTEM SMS BASED SERVICE

ABSTRAK. Kata kunci : pemesanan tiket online, rental mobil, CRM.

Pengembangan Game Engine 2D pada XNA Framework

PEMBANGUNAN ADD-ON PADA MOZILLA THUNDERBIRD UNTUK ENKRIPSI SURAT ELEKTRONIK DENGAN CORRECTED BLOCK TINY ENCRYPTION ALGORITHM

ABSTRAK. Kata kunci : pengetahuan, sistem, tekstil.

ABSTRAK. Kata Kunci : Modul barang, pemasok, pembelian, penjualan, jurnal, laporan laba rugi, metode average, metode AHP.

ABSTRAK. Kata kunci : Pengolahan data komplain, PHP, MySQL. v Universitas Kristen Maranatha

ABSTRAK. Kata kunci: manajemen, fuzzy, karyawan. iii

ABSTRACT. Keyword: PT. Elastico, Manual, Web Application, Data/Stock Processing, Clothes, Order, User, Report, Accounting

1 ABSTRAK. Kata Kunci: proyek, biaya, anggaran. iii Universitas Kristen Maranatha

PENGKLASIFIKASIAN UNTUK MENDETEKSI SPAM MENGGUNAKAN ALGORITMA NAIVE BAYESIAN ABSTRAK

ABSTRAKSI. Keywords : Aplikasi Web, Manajemen Retail, Sistem Akuntansi. Universitas Kristen Maranatha

ABSTRAK. Kata kunci : Sistem pendukung keputusan, Perekrutan. vi Universitas Kristen Maranatha

BAB II DASAR TEORI & STUDI LITERATUR

ABSTRAK. Kata Kunci : absensi, KPI, evaluasi kinerja, mutasi, calon pegawai

3.5.3 DFD LV 2 PROSES DFD LV 2 PROSES DFD LV 2 PROSES DFD LV 2 PROSES DFD LV 2 PROSES 6...

ABSTRAK. Kata kunci: diagram kelas, xml, java, kode sumber, sinkronisasi. v Universitas Kristen Maranatha

ABSTRAK. Kata kunci : pengukuran kinerja, penggajian, presensi, aplikasi desktop

Pengamanan Transmisi Hasil dan Data Query Basis Data dengan Algoritma Kriptografi RC4

Syarat-syarat Jabatan Tunjangan Pajak Fungsi Pajak Pengertian Pajak Penghasilan Pasal

ABSTRAKSI. Keywords: Aplikasi Web, Keuangan, Sistem Akuntansi. Universitas Kristen Maranatha

ABSTRAK. Kata kunci : sistem informasi, laboratorium komputer, SMAN 8 Bandung, web

ABSTRAKSI. Kata kunci : Rencana Anggaran Biaya, Analisa Harga Satuan Pekerjaan, Konstruksi, Quick Cost Estimator ABSTRACT

ABSTRAK. iii UNIVERSITAS KERISTEN MARANATHA

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

ABSTRAK. kata kunci : managemen sistem transaksi, ASP, Window XP SP 2, Internet Expoler. Universitas Kristen Maranatha

Abstrak. Kata kunci: proyek pendidikan,simulasi nilai mutu, simulasi ipk, simulasi pembiayaan. Universitas Kristen Maranatha

SISTEM INFORMASI MANAJEMEN SEKOLAH SUB SISTEM PENJADWALAN TUGAS AKHIR

ABSTRAK. Kata Kunci : Sistem Informasi, Kepegawaian, Web, PHP, MySQL.

PENERAPAN ALGORITMA K-MEANS UNTUK PENGELOMPOKAN DATA EKSPRESI GEN

ABSTRAK. Kata Kunci : aplikasi, terkomputerisasi, akuntansi

ABSTRACT. Keywords: Information system, Website. iii Universitas Kristen Maranatha

PENGUBAHAN SINGKATAN PADA PESAN SINGKAT TELEPON SELULER DENGAN MEMANFAATKAN POHON KEPUTUSAN C4.5

PENERAPAN ANALYTICAL HIERARCHY PROCESS DALAM SISTEM PENUNJANG KEPUTUSAN PEMILIHAN OBAT (SIPEBAT) SKRIPSI FAHRURROZI

ABSTRACT. Keywords: Internal Audit, Sales Internal Control. vii Universitas Kristen Maranatha

Sistem Pakar Diagnosis dan Terapi Penyakit Umum dengan Induct/MCRDR

Pembuatan Sistem Informasi Perbandingan Harga Satuan Pekerjaan Dinding Batu Bata, Blok Beton, dan Bata Ringan Pada Proyek Pekerjaan Rumah Tinggal

ABSTRAK. Kata kunci: pengelolaan, pemesanan, dan pemberian informasi. vii Universitas Kristen Maranatha

PEMBANGUNAN SISTEM INFORMASI KEPEGAWAIAN SUB EKIVALENSI WAKTU MENGAJAR PENUH (EWMP) DOSEN UNIVERSITAS SEBELAS MARET

ABSTRACT. The Effect of Total Quality Management (TQM) Implementation on the Internal Audit Function at PT. Pos Indonesia (Persero)

ABSTRAK. Kata kunci : media cetak, pemesanan koran, pengembalian Koran, sistem informasi, integerasi. vii Universitas Kristen Maranatha

PENERAPAN BUSINESS PROCESS MANAGEMENT DALAM SERVICE-ORIENTED ARCHITECTURE

SISTEM INFORMASI AKADEMIK BERBASIS WEB PADA SD AL FIRDAUS SURAKARTA. Tugas Akhir. Disusun untuk memenuhi salah satu syarat dalam memperoleh gelar

ABSTRAK. Kata kunci : sistem informasi, penilaian, ujian, dan menyontek.

ABSTRACT. Keyword : Specification Hardware, Sequential Elimination by Conjunctive Constraint Method, Sequential Elimination by Lexicography

PEMANFAATAN WEB SERVICE MOODLE BERBASIS REST- JSON UNTUK MEMBANGUN MOODLE ONLINE LEARNING EXTENSION BERBASIS ANDROID

ABSTRAK. Kata Kunci: sistem informasi, lowongan pekerjaan, sistem pendukung keputusan, fuzzy model tahani, C#, SQL server 2008

ABSTRAK. Kata Kunci : E-commerce, Website Penjualan Alat Musik, Customer. ii Universitas Kristen Maranatha

Sistem Penganalisis Data Laporan Keuangan dengan Metode Rasio pada Organisasi Nirlaba (Studi Kasus : ITB BHMN)

ABSTRAK. Kata Kunci : sistem informasi, sensus, Dewan Pastoral Paroki, recruitment, C#, SQL Server 2008

UNIVERSITAS NEGERI YOGYAKARTA FAKULTAS ILMU SOSIAL

SISTEM INFORMASI PERENCANAAN, REALISASI, MONITORING DAN EVALUASI KEGIATAN HIMAPRO TI BERBASIS WEB

ABSTRACT The Relation Between Applying Internal Audit Profession Standard With Realization of Good Corporate Governance PT. POS Indonesia (Persero)

ABSTRACT. vii. Universitas Kristen Maranatha

ABSTRAK. Kata Kunci: sistem pendataan karyawan, ASP.NET, SQL server 2008

PENGEMBANGAN DYNAMIC FOLKSONOMY STUDI KASUS : GANESHA DIGITAL LIBRARY 4.2

Pemodelan Data pada Massively Multiplayer Online Role-Playing Game

ABSTRAK. Kata Kunci: sistem informasi, absensi,penggajian,recruitment, DSS, WPM, C#, SQL server 2008 R2.

ABSTRAK. Kata Kunci : Java Server Pages(JSP), struts, ibatis, dan mysql

Daftar Isi Standarisasi Harga dan Standarisasi Sarana dan Prasarana Kerja Pemerintah Provinsi Kalimantan Timur

ABSTRAK. Kata kunci: Sistem Laboratorium Klinik, Pemeriksaan, Pengolahan Data. vi Universitas Kristen Maranatha

ABSTRACT. Universitas Kristen Maranatha

ABSTRAK. Kata Kunci : Website Penjualan Handphone Dan Alat Elektronika Online, shopping chart. ii Universitas Kristen Maranata

PEMBUATAN SISTEM INFORMASI PENERAPAN GENERATOR CSS3 BERBASIS FRAMEWORK CODEIGNITER

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2007/2008

ABSTRAK. iii. Kata kunci : Usaha Kecil Menengah (UKM), web commerce online mall, Yii PHP Framework dan MySQL. Universitas Kristen Maranatha

ABSTRAK. Kata kunci: aplikasi berbasis web, penerimaan peserta didik, SDLC waterfall

DESY STEFANI

ABSTRAK. Kata kunci: Sistem Tanya Jawab, Semantic Web, Ontology, domain terbatas. v Universitas Kristen Maranatha

ABSTRAK. Kata kunci : Sistem informasi, pemantauan, kinerja, inventori, PHP, MySQL. Universitas Kristen Maranatha

APLIKASI PERANGKAT AJAR PENGELOLAAN DAN PERHITUNGAN EKSPRESI MATEMATIKA DARYANTO

Pengamanan Situs dengan Enkripsi Head dan Body HTML Menggunakan Algoritma RC4

ABSTRACT. Keywords: Service quality, customer loyalty, tangible, realibility, responsiveness, assurance, empathy. viii Universitas Kristen Maranatha

ABSTRACT. Keywords: Internal Auditing, Internal Control Sales. Universitas Kristen Maranatha

II.7.3 Stored Procedured II.7.4 Trigger II.8 C# II.9 Akuntansi II.9.1 Laba Rugi II.9.2 Average Method II.9.

PEMBUATAN SISTEM INFORMASI PAKET TOUR WISATA MENGGUNAKAN FRAMEWORK CODEIGNITER

UNIVERSITAS NEGERI YOGYAKARTA FAKULTAS ILMU SOSIAL DAN EKONOMI RENCANA PELAKSANAAN PEMBELAJARAN (RPP) PERTEMUAN KE 1

Transkripsi:

Source Code Autograder LAPORAN TUGAS AKHIR Disusun sebagai syarat kelulusan tingkat sarjana oleh : Ronny / 13503039 PROGRAM STUDI INFORMATIKA SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2008

Lembar Pengesahan Program Studi Sarjana Teknik Informatika Source Code Autograder Tugas Akhir Program Studi Sarjana Teknik Informatika ITB Oleh Ronny / 13503039 Telah disetujui dan disahkan sebagai laporan Tugas Akhir di Bandung, pada tanggal Juli 2008 Pembimbing Dr. Ir. M.M. Inggriani Liem NIP 130796176

KATA PENGANTAR Puji syukur ke hadirat Tuhan Yang Maha Esa. Dengan rahmat dan bimbingan-nya, penulis dapat menyelesaikan Tugas Akhir yang berjudul Source Code Autograder. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya pada: 1. Ibu Dr. Ir. M.M. Inggriani Liem selaku pembimbing Tugas Akhir, atas segala pendidikan, dan bimbingan yang sangat berharga, serta perhatian dan kesabaran selama Tugas Akhir. 2. Ibu Yani Widyani, S.T., M.T., atas bimbingan dan bantuan selama Sidang Tugas Akhir dan kritik, saran, dan penjelasan yang diberikan selaku penguji seminar dan prasidang sidang Tugas Akhir. 3. (Alm) Ibu Ir. Sri Purwanti, M.Sc, atas segala kritik dan saran yang diberikan selaku penguji presentasi proposal. Semoga Ibu diterima dalam damai abadi di sisinya. 4. Bapak Riza Satria Perdana, S.T., M.T, atas segala kritik, saran, dan penjelasan yang diberikan selaku penguji sidang Tugas Akhir. 5. Bapak Achmad Imam Kristijantoro, S.T., M.T, atas segala kritik, saran, dan penjelasan yang diberikan selaku penguji sidang Tugas Akhir. 6. Ibu GA. Putri Saptawati dan Bapak Arya Adriansyah, S.T. atas diskusi tentang pengerjaan Tugas Akhir dan penelitian. 7. Cynthia Kustanto, Miridhani Riani Ningrum dan Yudi Rizkiadi untuk segala perhatian, dukungan, dan doa selama pengerjaan Tugas Akhir. 8. Teman seperjuangan pada berbagai masa : Arie Minandar Anggiat, Wulan Widyasari, Dini Rahmawati, Roni Sambiangga, Efendy Chalikdjen, Ridwan, Fitri Meiriza, dan Rindhu Astry. 9. Seluruh rekan-rekan asisten programming, angkatan IF 2003, dan PSM ITB, atas segala kenangan yang diberikan. 10. Semua staf akademik Program Studi Teknik Informatika yang telah memberikan banyak ilmu selama masa perkuliahan, juga semua staf non akademik. Tidak lupa, penulis mengucapkan banyak terima kasih pada Papa, Mama, dan kakak tercinta atas segala kepercayaan, perhatian, dukungan, dan doanya. Semoga Tugas Akhir ini dapat memberikan manfaat bagi semua pihak yang membutuhkannya. Penulis menyadari bahwa Tugas Akhir ini masih memiliki banyak kekurangan. Oleh karena itu, saran dan kritik dari pembaca sangat penulis harapkan. Bandung, Juni 2008 Penulis

ABSTRAK Jumlah mahasiswa peserta mata kuliah pemrograman dasar pada Program Studi Sarjana Teknik Informatika ITB (S1-IF-ITB) yang mencapai lebih dari 300 mahasiswa sejak tahun 2006 telah membuat proses penilaian tugas program mahasiswa sangat menghabiskan sumber daya. Dengan demikian, otomasi penilaian terhadap source code serahan tugas siswa menjadi kebutuhan penting dalam proses pengajaran pemrograman. Dengan penilai otomatis (autograder), penilaian dapat dilakukan dengan lebih cepat dan objektif. Dalam Tugas Akhir ini, akan dibuat suatu autograder diberi nama Phobos yang dirancang untuk mampu menilai secara blackbox dan whitebox. Penilaian blackbox dilakukan terhadap eksekusi program untuk menilai ketepatan program (persentase kasus uji benar) dan efisiensi (rata-rata panjang eksekusi). Penilaian whitebox dilakukan dengan memproses source code untuk menilai aspek kompleksitas solusi (SLoC, kompleksitas siklomatik) dan ketaatan pada standar tipografi (rata-rata jumlah baris dan panjang komentar, rata-rata panjang nama identifier, dan ketepatan indentasi). Bahasa pemrograman yang digunakan pada lingkungan S1-IF-ITB beragam, sehingga proses penilaian dalam Phobos juga dirancang untuk bersifat generik, yaitu dapat menangani lebih dari satu bahasa pemrograman dan dapat dikembangkan untuk menangani bahasa pemrograman lain di masa mendatang. Dalam pengembangannya kini, Phobos telah mampu menangani source code dalam bahasa Pascal dan Lisp. Penanganan source code pada Phobos dilakukan dengan interpretasi menggunakan modul interpreter yang telah dibangun secara khusus dalam Tugas Akhir ini untuk proses penilaian. Interpreter Phobos dirancang secara khusus dengan memperhatikan aspek-aspek pengajaran pemrograman, yaitu untuk mendeteksi kesalahan seperti infinite loop dan variabel yang tidak diinisiasi. Interpreter Phobos dirancang secara moduler agar dapat juga digunakan sebagai library untuk sistem lain atau sebagai alat bantu latihan pemrograman mandiri. Phobos dikembangkan dengan antarmuka berbasis web menggunakan platform PHP agar diperoleh aksesibilitas dan integrasi yang mudah terhadap Learning Management System milestone yang telah digunakan di lingkungan lab programming S1-IF-ITB. Autograder engine dan interpreter Phobos dikembangkan menggunakan Java dengan generator parser Antlr sebagai library untuk memperoleh ekstensibilitas and independensi terhadap platform. Phobos telah diuji untuk menilai source code serahan tugas yang serupa dengan tugas pemrograman dalam mata kuliah pemrograman dasar pada S1-IF-ITB. Kata kunci : penilaian otomatis, alat bantu pengajaran pemrograman, interpreter i

ABSTRACT The number of students at the ITB Informatics Engineering Undergraduate Program (S1-IF- ITB) basic programming classes which had exceeded 300 in 2006 has made the assignment grading process very resource intensive. Therefore, automation of source code grading has become an important requirement. Using autograder, grading process can be done faster and more objectively. In this final project, an autograder named Phobos will be developed to be capable of grading by blackbox methods and whitebox methods. Blackbox marking is performed on program execution to grade program correctness (percentage of correct test cases) and efficiency (average execution length). Whitebox marking is performed by processing the source code to grade solution complexity (SLoC, cyclomatic complexity) and compliance to typographic standards (average comment lines and length, average identifier name length and indentation check). Since programming languages used in S1-IF-ITB varies, Phobos marking process is designed to be generic, capable of handling multiple languages and extensible, can easily be developed to handle new languages in the future. In the current development, the languages handled on Phobos are Lisp and Pascal. Source code handling on Phobos is done using a custom built interpreter which addresses programming education aspects, which are infinite loop detection and uninitialized variables. These interpreters had also been modularly designed with the capability to be used as a library to other systems or as an independent programming teaching tool. Phobos is developed with a PHP web interface to achieve accessibility and easy integration to the Learning Management System milestone used in S1-IF-ITB environment. The Phobos autograder engine and interpreters are developed in Java using Antlr parser generator as a library to achieve extensibility and platform independence. Phobos has successfully been tested to grade source codes similar to assignments given in elementary programming courses on Informatics Engineering study program. Keywords: computer science education, automatic grading, programming exercise tools, multiple programming language, interpreter ii

DAFTAR ISI Lembar Pengesahan Program Studi Sarjana Teknik Informatika... ii KATA PENGANTAR... iii ABSTRAK...i ABSTRACT... ii DAFTAR ISI... iii DAFTAR LAMPIRAN...vi DAFTAR GAMBAR... viii DAFTAR TABEL...x DAFTAR KODE...xi BAB I PENDAHULUAN...I-1 1.1 Latar Belakang...I-1 1.2 Rumusan Masalah...I-2 1.3 Tujuan...I-3 1.4 Batasan Masalah...I-3 1.5 Metodologi...I-3 1.6 Sistematika Pembahasan...I-4 BAB II DASAR TEORI & STUDI LITERATUR... II-1 2.1 Computer Aided Assessment (CAA)...II-1 2.1.1 Ikhtisar CAA...II-1 2.1.2 Penggunaan CAA untuk Pengajaran Pemrograman...II-2 2.1.3 Implementasi CAA dalam Bentuk Source Code Autograder...II-3 2.1.3.1 ASSYST...II-4 2.1.3.2 CourseMaster...II-5 2.1.3.3 GAME...II-6 2.1.3.4 Mooshak...II-8 2.2 Metodologi Penilaian Program...II-9 2.2.1 Pendekatan Blackbox...II-9 iii

2.2.1.1 Ketepatan Sintaks & Semantik...II-10 2.2.1.2 Analisis Statik...II-13 2.2.1.3 Analisis Dinamik...II-13 2.2.1.4 Efisiensi...II-14 2.2.2 Pendekatan Whitebox...II-16 2.2.2.1 Kompleksitas...II-16 2.2.2.2 Tipografi Kode...II-18 2.3 Bahasa Pemrograman dan Source Code...II-19 2.3.1 Ikhtisar Bahasa Pemrograman...II-20 2.3.2 Implementasi Bahasa Pemrograman...II-21 2.3.3 Teknik Pemrosesan Source Code...II-23 2.3.3.1 Analisis Leksikal...II-24 2.3.3.2 Analisis Sintaks...II-25 2.4 Ringkasan...II-30 BAB III ANALISIS...III-1 3.1 Deskripsi Sistem... III-1 3.2 Penilaian Program Otomatis... III-4 3.2.1 Proses Penilaian Source Code Manual... III-5 3.2.2 Proses Penilaian Source Code Otomatis... III-6 3.3 Spesifikasi Autograder Phobos... III-8 3.3.1 Model Use Case untuk Phobos... III-8 3.3.1.1 Diagram Use Case Phobos... III-8 3.3.1.2 Skenario Penggunaan Phobos... III-10 3.3.2 Spesifikasi Fungsional Phobos... III-13 3.3.3 Spesifikasi Non Fungsional Phobos... III-16 3.3.4 Deskripsi Arsitektural Phobos... III-16 3.3.4.1 Manager... III-19 3.3.4.2 Oracle... III-20 3.3.4.3 WhiteboxMarkers... III-21 3.3.5 Analisis Prosesor Bahasa Pemrograman dalam Phobos... III-21 BAB IV PERANCANGAN...IV-1 4.1 Autograder Engine... IV-1 4.1.1 Manager...IV-4 4.1.2 Oracle... IV-6 4.1.3 WhiteboxMarkers... IV-7 4.1.4 Perancangan Interaksi Kelas untuk Proses Penilaian... IV-8 iv

4.2 Aplikasi Front-End... IV-10 4.2.1 Halaman Utama...IV-10 4.2.2 Halaman Formulir Skema Penilaian...IV-11 4.2.3 Halaman Nilai Source Code...IV-11 4.2.4 Halaman Laporan Nilai...IV-12 4.2.5 Halaman Hapus Data Penilaian...IV-13 4.3 Penyimpanan Data Persisten... IV-14 4.4 Interpreter Generik Phobos... IV-14 BAB V IMPLEMENTASI DAN PENGUJIAN... V-1 5.1. Implementasi...V-1 5.1.1 Lingkungan Implementasi dan Pengembangan... V-1 5.1.2 Batasan Implementasi... V-2 5.1.3 Implementasi Kelas... V-2 5.1.4 Implementasi Antarmuka dan Penyimpanan Data Persisten... V-2 5.1.5 Implementasi Interpreter Spesifik Bahasa Pemrograman... V-3 5.1.5.1 Proses Pengembangan Interpreter... V-3 5.1.5.2 Perancangan Interpreter... V-5 5.1.6 Implementasi Ekstensibilitas Penilaian dan Bahasa Pemrograman... V-8 5.2. Pengujian...V-9 5.2.1 Lingkungan Pengujian... V-9 5.2.2 Persiapan Pengujian... V-10 5.2.2.1 Data Uji... V-10 5.2.2.2 Instalasi Prototipe... V-11 5.2.3 Kasus Uji... V-11 5.2.3.1 Pengujian Unit... V-11 5.2.3.2 Pengujian Fungsional berdasarkan Use Case... V-12 5.2.3.3 Pengujian Non-Fungsional... V-13 5.2.4 Hasil Pengujian... V-14 BAB VI KESIMPULAN DAN SARAN...VI-1 6.1 Kesimpulan... VI-1 6.2 Saran... VI-1 DAFTAR REFERENSI...i v

DAFTAR LAMPIRAN LAMPIRAN A Besaran Kompleksitas Source Code... A-i A.1 Kompleksitas Siklomatik... A-i A.2 Kompleksitas Halstead...A-ii A.3 Kompleksitas Henry dan Kafura...A-iii LAMPIRAN B Penilaian Tipografi Kode oleh Ceilidh... B-iv LAMPIRAN C Survei Bahasa-Bahasa Pemrograman yang Digunakan pada Program Studi Sarjana Informatika ITB (S1-IF-ITB)... C-ix C.1 Lisp... C-ix C.2 Pascal...C-x C.3 C... C-xi C.4 C++... C-xii C.5 Java... C-xiii LAMPIRAN D Skenario Use Case Phobos... D-xv D.1 Skenario Use Case Membuat Skema Penilaian... D-xv D.2 Skenario Use Case Menilai Program... D-xix D.3 Skenario Use Case Melihat Laporan Nilai... D-xx D.4 Skenario Use Case Menghapus Laporan Nilai... D-xx LAMPIRAN E Diagram Sequence Phobos...E-xxi E.1 Diagram Sequence Membuat Spesifikasi Tugas...E-xxi E.2 Diagram Sequence Menilai Source Code...E-xxii E.3 Diagram Sequence Melihat Laporan Nilai... E-xxiii E.4 Diagram Sequence Menghapus Laporan Nilai... E-xxiii LAMPIRAN F Penyimpanan Data Persisten...F-xxiv F.1 Penyimpanan Definisi Skema Penilaian...F-xxiv F.2 Penyimpanan Laporan Hasil Penilaian...F-xxvi LAMPIRAN G Panduan Pembuatan Interpreter Phobos...G-xxviii G.1 Spesifikasi Fitur...G-xxviii G.2 Definisi Grammar dan Pembangkitan Kelas-Kelas Prosesor... G-xxix G.3 Perancangan dan Implementasi Kelas-Kelas Eksekusi... G-xxx LAMPIRAN H Interpreter Lisp Phobos... H-xxxii H.1 Spesifikasi Kebutuhan Fungsional... H-xxxii H.2 Batasan Implementasi Interpreter Lisp Phobos...H-xxxiii H.3 Grammar Leksikal...H-xxxiii H.4 Grammar Sintaksis... H-xxxv H.5 Perancangan Kelas-Kelas Eksekusi... H-xxxv H.6 Pengujian Interpreter Lisp... H-xl LAMPIRAN I Interpreter Pascal Phobos...I-xlii vi

I.1 Spesifikasi Kebutuhan Fungsional...I-xlii I.2 Batasan Implementasi Interpreter Pascal Phobos... I-xliii I.3 Grammar Leksikal... I-xliii I.4 Grammar Sintaksis...I-xlv I.5 Perancangan Kelas-Kelas Eksekusi...I-xlix I.6 Pengujian Interpreter Pascal...I-lvi LAMPIRAN J Panduan Spesifikasi Tugas untuk Penilaian Automatis... J-lviii vii

DAFTAR GAMBAR Gambar II-1 Proses penilaian pada ASSYST [JAC97]... II-4 Gambar II-2 Arsitektur Umum CourseMaster [SYM01]... II-6 Gambar II-3 Arsitektur Umum GAME [BLU04]... II-7 Gambar II-4 Contoh Penerapan Semantik Aksiomatik [AAB04]... II-12 Gambar II-5 Perbandingan Proses Kompilasi dan Interpretasi [COO03]... II-22 Gambar II-6 Bagan Proses Kompilasi yang Disederhanakan [COO03]... II-23 Gambar II-7 Diagram NFA untuk pola regular expression a(b c)* [COO03]... II-25 Gambar II-8 Grammar abstrak untuk bahasa pemrograman Wren [SLO95]... II-27 Gambar II-9 Pembangkitan pohon sintaks abstrak dari sebuah kalimat loop [SLO95]... II-27 Gambar II-10 Ilustrasi Teknik Parsing Top-Down dan Bottom-Up [SLO95]... II-28 Gambar III-1 Diagram Use-Case Sistem milestone... III-2 Gambar III-2 Diagram Use Case Phobos... III-9 Gambar III-3 Skenario penggunaan Phobos untuk membuat definisi skema penilaian... III-11 Gambar III-4 Skenario penggunaan Phobos untuk menilai source code... III-12 Gambar III-5 Skenario penggunaan Phobos untuk melihat laporan nilai... III-12 Gambar III-6 Skenario penggunaan Phobos untuk menghapus hasil penilaian... III-13 Gambar III-7 Deskripsi Arsitektural Phobos... III-17 Gambar IV-1 Diagram Kelas Perancangan Autograder Engine Phobos...IV-2 Gambar IV-2 Diagram Kelas Perancangan Subsistem Manager bagian manajemen skema dan penilaian...iv-5 Gambar IV-3 Diagram kelas Subsistem Manager bagian manajemen laporan nilai...iv-6 Gambar IV-4 Diagram Kelas subsistem Oracle...IV-7 Gambar IV-5 Diagram Kelas subsistem WhiteboxMarkers...IV-8 Gambar IV-6 Diagram Kolaborasi untuk Proses Penilaian dalam Phobos...IV-9 Gambar IV-7 Rancangan generik antarmuka web Phobos...IV-10 Gambar IV-8 Rancangan Halaman Utama Phobos...IV-10 Gambar IV-9 Rancangan Halaman Formulir Skema Penilaian Phobos...IV-11 Gambar IV-11 Rancangan Halaman Nilai Source Code Phobos...IV-12 Gambar IV-12 Rancangan Halaman Laporan Nilai Kolektif Phobos...IV-12 Gambar IV-13 Rancangan Halaman Laporan Nilai Phobos...IV-13 Gambar IV-14 Rancangan Halaman Hapus Data Penilaian Phobos...IV-13 Gambar IV-15 Flowchart Pemrosesan Source Code pada Phobos...IV-15 viii

Gambar IV-16 Diagram Kelas Perancangan Interpreter Phobos...IV-15 Gambar V-1 Arsitektur Interpreter Phobos... V-5 Gambar V-2 Lingkungan pengujian Phobos... V-10 Gambar VI-1 Representasi graf berarah untuk perhitungan kompleksitas siklomatik... A-i Gambar VI-2 Diagram kelas perancangan Interpreter Lisp Phobos... H-xxxvi Gambar VI-3 Diagram kelas perancangan Interpreter Pascal Phobos...I-l ix

DAFTAR TABEL Tabel II-1 Format Ujian dengan Bantuan Sistem Komputer [CAR03]... II-3 Tabel II-2 Kategori Hasil Evaluasi pada Mooshak [MOO08]... II-8 Tabel II-3 Teknik Penjabaran Semantik Program [AAB04]... II-11 Tabel II-4 Representasi fungsi dalam berbagai model komputasional... II-20 Tabel II-5 Hirarki Chomsky untuk Tata Bahasa [SLO95]... II-26 Tabel II-6 Ikhtisar Teknik Parsing [GRU98]... II-29 Tabel II-7 Ikhtisar jenis penilaian program, korelasi metode pengukurannya... II-31 Tabel III-1 Perbandingan fitur proses penilaian manual, autograder yang sudah ada & Phobos... III-8 Tabel III-2 Definisi Aktor dalam Diagram Use Case Phobos... III-9 Tabel III-3 Definisi Use-Case untuk Phobos... III-10 Tabel III-4 Jenis penilaian otomatis Phobos... III-14 Tabel III-5. Spesifikasi Fungsional Phobos... III-15 Tabel III-6. Pemetaan SRS terhadap Use-Case untuk Phobos... III-15 Tabel III-7. Kebutuhan Non-Fungsional Phobos... III-16 Tabel III-8 Tanggung Jawab Setiap Subsistem pada Autograder Engine Phobos, beserta masukan yang dibutuhkan dan keluaran yang dihasilkan... III-18 Tabel IV-1. Daftar Kelas Perancangan untuk Autograder Engine...IV-3 Tabel V-1 Pengujian Unit untuk Kelas-Kelas Phobos... V-11 Tabel V-2 Hasil Pengujian Use Case terhadap Phobos... V-12 Tabel V-3 Hasil Pengujian Kebutuhan Nonfungsional Phobos... V-14 Tabel VI-1 Perbandingan singkat berbagai bahasa pemrograman... C-ix Tabel VI-2 Kebutuhan Non Fungsional pada modul Interpreter Phobos... G-xxix Tabel VI-3 Kebutuhan Fungsional Interpreter Lisp pada Phobos... H-xxxii Tabel VI-4 Daftar kelas perancangan interpreter Lisp Phobos... H-xxxvii Tabel VI-5 Hasil Pengujian Unit Interpreter LISP... H-xl Tabel VI-6 Hasil Pengujian Non Fungsional terhadap Unit Interpreter LISP... H-xli Tabel VI-7 Kebutuhan Fungsional Interpreter Pascal pada Phobos... I-xlii Tabel VI-8 Daftar Kelas Perancangan Interpreter Pascal Phobos...I-li Tabel VI-9 Hasil Pengujian Unit Interpreter Pascal...I-lvi Tabel VI-10 Hasil Pengujian Non Fungsional terhadap Unit Interpreter... I-lvii x

DAFTAR KODE Kode II-1 Perbandingan Penulisan Fungsi Fibonacci... II-18 Kode V-1 Aturan Produksi Simbol Nonterminal <ifstatement> pada Pascal... V-7 Kode V-2 Contoh implementasi metode executestatement pada kelas PascalIfStatement... V-8 Kode VI-1 Contoh Penulisan Kode yang Tepat... B-vi Kode VI-2 Contoh Kode C yang Mengikuti Panduan Tipografi Ceilidh [ZIN91]... B-viii Kode VI-3 Sebuah contoh program kecil dalam bahasa Lisp... C-x Kode VI-4 Sebuah contoh program kecil dalam bahasa Pascal... C-xi Kode VI-5 Sebuah contoh program kecil dalam bahasa C... C-xii Kode VI-6 Sebuah contoh program kecil dalam bahasa C++... C-xii Kode VI-7 Sebuah contoh program kecil dalam bahasa Java... C-xiv Kode VI-8 Definisi Tipe Dokumen untuk Definisi Skema Penilaian...F-xxv Kode VI-9 Sebuah contoh file XML untuk definisi skema penilaian...f-xxv Kode VI-10 Definisi Tipe Dokumen untuk Laporan Hasil Penilaian...F-xxvi Kode VI-11 Sebuah contoh file XML untuk laporan hasil penilaian...f-xxvii Kode VI-12 Grammar leksikal untuk bahasa LISP... H-xxxiv Kode VI-13 Grammar sintaksis untuk bahasa LISP... H-xxxv Kode VI-14 Grammar leksikal untuk bahasa Pascal...I-xliv Kode VI-15 Grammar sintaksis untuk bahasa Pascal...I-xlix xi