BAB I PENDAHULUAN 1.1 Latar Belakang Pengajaran mata kuliah pemrograman dasar pada pada banyak universitas seringkali diikuti oleh banyak mahasiswa [SLA06]. Sejak 2006, peserta kelas pemrograman dasar pada Institut Institut Teknologi Bandung telah mencapai lebih dari 300 mahasiswa. Dengan semakin besarnya jumlah mahasiswa dan banyaknya tugas yang harus diperiksa, pemeriksaan tugas source code manual menjadi sangat menghabiskan waktu dan tenaga, kadang melebihi yang dihabiskan untuk interaksi langsung [CHI98]. Oleh karena itu, otomasi penilaian atau assessment terhadap tugas source code telah menjadi suatu kebutuhan penting. Autograder adalah suatu aplikasi atau modul program untuk melakukan penilaian atau assessment secara otomatis. Kemampuan menilai secara otomatis ini seringkali menjadi fitur dari perangkat lunak lain yang juga terkait dengan bidang akademik, misalnya dalam Course Management System, seperti ClydeVU, Moodle, BlackBoard dan WebCT [RAW02]; program tutorial cerdas, seperti Problet [KUM02]; atau sistem pengumpulan tugas seperti BOSS, CHARLIE dan CAPA [BON02]. Penilai otomatis yang biasa ditemukan pada sistem pembelajaran berbasis komputer saat ini pada umumnya berorientasi pada format tes pilihan ganda atau isian [RAW02]. Di dalam beberapa penelitian, autograding sudah mulai diterapkan untuk format esai atau teks bebas [MAS02, ALF05]. Autograder juga telah lama digunakan dalam bidang pengajaran pemrograman. Sejak tahun 1961, kuliah pengantar pemrograman dan metode numerik di Universitas Stanford telah menggunakan program penilai dalam bentuk library tambahan yang dikompilasi bersama source code mahasiswa. Pionir autograder ini melakukan penilaian secara blackbox, memberikan input terhadap hasil kompilasi source code mahasiswa dan mencocokkan hasil keluaran dengan keluaran yang diharapkan [FOR65]. Dalam bidang informatika, autograding yang dilakukan umumnya berbasis pada pengujian blackbox, mulai dari program penilai yang digunakan pada berbagai universitas [SLA06], sampai dengan program juri otomatis pada IOI – International Olympiad in Informatics. Autograder untuk kepentingan pendidikan secara spesifik perlu mencakup penilaian atas aspek-aspek lain di luar ketepatan program (program correctness) melalui eksekusi program ke dalam proses autograding, seperti misalnya aspek readability, efisiensi, atau kompleksitas. I-1 I-2 Beberapa aplikasi telah mencakup aspek-aspek tersebut, namun masing-masing masih memiliki keterbatasan – misalnya, ASSYST bersifat mainframe-sentris, tidak terdistribusi [BLU04]; sementara aplikasi komersial CourseMaster hanya menangani source code dalam bahasa C, C++ dan Java [RAW02]. Meskipun memiliki kekurangan tersendiri dan masih dianggap belum mampu menangani proses grading secara utuh [SLA06], keberadaan autograder banyak membantu untuk menangani kelas yang besar. Keuntungan utama penggunaan autograder adalah pada penghematan waktu yang dibutuhkan untuk memeriksa source code – pada satu kasus hingga melebihi 85% [CHI98]. Dengan bantuan autograder, diharapkan instruktur lebih dapat berkonsentrasi pada interaksi dengan mahasiswanya lewat kuliah atau diskusi, dan mahasiswa terpacu untuk mengerjakan tugasnya dengan lebih baik. 1.2 Rumusan Masalah Tugas Akhir ini akan mengkaji mengenai proses penilaian otomatis oleh sistem komputer, yaitu penilaian source code menurut metode blackbox (ketepatan program dan efisiensi) dan whitebox (kompleksitas solusi dan keterbacaan kode) dan proses yang dilakukan terhadap source code agar penilaian ini dapat dilakukan. Masalah - masalah yang akan dikaji dan diselesaikan dalam Tugas Akhir ini adalah: 1. Bagaimana mendefinisikan suatu skema penilaian (grading scheme) terhadap source code yang dapat diimplementasikan ke dalam sebuah perangkat lunak. 2. Bagaimana merancang sebuah sistem autograder yang generik (dapat dikembangkan untuk menerima source code dalam berbagai bahasa pemrograman). Karakteristik lain yang dibutuhkan dari autograder akan dipelajari lebih lanjut dan diimplementasikan dalam Tugas Akhir ini. 3. Bagaimana mengimplementasikan sistem autograder sesuai dengan rancangan yang telah dibuat. 4. Bagaimana mengintegrasikan autograder yang telah dibuat ke dalam suatu Learning Management System yang beroperasi pada sebuah kelas besar. I-2 I-3 1.3 Tujuan Tujuan yang hendak dicapai dalam pelaksanaan Tugas Akhir ini adalah: 1. Mendefinisikan suatu skema penilaian source code yang dapat diotomasikan dengan sejumlah masukan dan keluaran yang tertentu. 2. Membuat rancangan dan implementasi sistem autograder sesuai dengan skema penilaian yang telah dibuat, dengan design goals berupa kebutuhan non fungsional untuk sebuah autograder. 3. Mengintegrasikan modul autograder ke dalam suatu Learning Management System yang beroperasi pada suatu kelas besar. 1.4 Batasan Masalah Pada Tugas Akhir ini, ditetapkan beberapa batasan masalah, yaitu: 1. Source code yang akan dinilai adalah source code tekstual yang tidak bersifat interaktif. 2. Source code yang akan dinilai adalah source code program untuk memecahkan masalah berukuran kecil atau menengah. Skala ukuran masalah dirancang untuk dapat dipecahkan dalam satu kali sesi praktikum atau ujian praktek. 3. Modul akan diuji pada sebuah lingkungan spesifik yaitu Learning Management System yang beroperasi pada sebuah kelas besar. 1.5 Metodologi Metodologi yang akan digunakan selama pelaksanaan Tugas Akhir meliputi: 1. Studi literatur dan diskusi umum. Mempelajari literatur, buku teks, jurnal ilmiah, serta forum diskusi yang terkait dengan topik assessment otomatis. 2. Survei Skema Penilaian Melakukan studi literatur, diskusi dengan pakar dalam hal programming, dan merumuskannya ke dalam suatu skema penilaian yang dapat diotomatisasi. 3. Implementasi Perangkat Lunak Setelah terbentuk skema penilaian yang dapat diimplementasikan ke dalam suatu program, maka akan dibangun sistem autograder sesungguhnya. Metodologi yang akan dipakai untuk mengembangkan source code autograder adalah metodologi Object Oriented yang mengacu pada Rational Unified Process (RUP). Dalam metodologi ini, pembangunan perangkat lunak dibagi menjadi empat fase, yaitu: I-3 I-4 a. Fase Insepsi (Pengumpulan kebutuhan perangkat lunak). Dalam fase ini dilakukan pengumpulan kebutuhan perangkat lunak. b. Fase Elaborasi (Analisis dan perancangan perangkat lunak). Dalam fase ini dilakukan perancangan perangkat lunak berdasarkan kebutuhan yang telah dispesifikasikan. Proses perancangan dibantu dengan pembuatan diagramdiagram Unified Modeling Language (UML). c. Fase Konstruksi (Implementasi perangkat lunak). Dalam fase ini dilakukan pembangunan modul autograder berdasarkan rancangan yang telah dibuat. Dalam fase ini juga dilakukan dilakukan pengujian awal dan penyempurnaan modul dari kekurangan-kekurangan yang mungkin nampak. 4. Integrasi Modul Modul autograder diintegrasikan ke dalam suatu Learning Management System berbasis web untuk kepentingan pengujian lanjutan dan penggunaan modul. 1.6 Sistematika Pembahasan Sistematika penulisan laporan Tugas Akhir ini adalah sebagai berikut: 1. Bab I Pendahuluan, berisi penjelasan mengenai latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi, serta sistematika pembahasan yang digunakan untuk menyusun laporan Tugas Akhir. 2. Bab II Dasar Teori & Studi Literatur, berisi studi literatur dan landasan teori yang digunakan dalam analisis, perancangan, dan implementasi Tugas Akhir. 3. Bab III Analisis, berisi analisis perangkat lunak yang akan dibangun sebagai dasar tahap perancangan dan implementasi 4. Bab IV Perancangan, berisi perancangan prototipe perangkat lunak yang akan dibangun sebagai dasar tahap implementasi yang akan dilaksanakan sesudahnya 5. Bab V Implementasi dan Pengujian, berisi implementasi prototipe perangkat lunak hasil perancangan beserta hasil pengujian perangkat lunak. 6. Bab VI Penutup, berisi kesimpulan dan saran yang didapatkan selama pelaksanaan Tugas Akhir. I-4