bab i pendahuluan - Institut Teknologi Bandung

advertisement
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
Download