IMPLEMENTASI ABSTRACT SYNTAX TREE PADA PENILAIAN KODE PROGRAM BAHASA PEMROGRAMAN C++
Keywords:
online judge sistem, abstrak sintaks tree, jaccard, penilaian, kode programAbstract
Online Judge System (OJS) telah banyak digunakan dalam proses pembelajaran pemrograman khususnya pada tingkat perguruan tinggi. Proses asesmen dilakukan dengan melakukan komparasi hasil dari eksekusi kode program berdasarkan test case yang telah diatur sebelumnya. Dalam OJS terdapat keterbatasan yaitu penilaian hanya berpatokan pada benar dan salah saja, tidak dapat menilai secara komprehensif berdasarkan grade tertentu. Perlu adanya alternatif lain dalam menentukan ketepatan penilaian dari hasil OJS, seperti menggunakan proses pengecekan dari isi tekstual kode program itu sendiri bukan hanya dari hasil eksekusinya. Penilaian kode program dengan mengukur kemiripan antara teks maupun struktur kode program mahasiswa dan kode program kunci jawaban dapat menjadi alternatif lain dalam mengukur ketepatan penilaian kode program. Pada artikel ini penulis melakukan pengukuran kemiripan teks kode program menggunakan cosine similarity dan kemiripan struktur kode program dengan menggunakan metode jaccard. Dari hasil ujicoba didapatkan bahwa perhitungan kemiripan teks antara kode program jawaban dan kunci jawaban belum dapat merepresentasikan kemiripan seutuhnya karena banyak bagian dari kode program khususnya bahasa pemrograman c++ yang perlu ditelaah secara mendalam berdasarkan strukturnya. Penerapan struktur kode program yang dilakukan dengan membuat Abstract Syntax Tree (AST) sangat representatif terhadap penilaian kode program.
References
Anam, M., & others. (2020). Sistem koreksi jawaban uraian singkat otomatis menggunakan metode cosine similarity dan query ekspansion. Universitas Islam Negeri Maulana Malik Ibrahim.
Cui, B., Li, J., Guo, T., Wang, J., & Ma, D. (2010). Code comparison system based on abstract syntax tree. 2010 3rd IEEE International Conference on Broadband Network and Multimedia Technology (IC-BNMT), 668–673.
datascientest.com. (2022, September 18). Word2vec : NLP & Word Embedding. Https://Datascientest.Com/Nlp-Word-Embedding-Word2vec.
Jain, K. (2019). String Cosine Similarity. Https://Www.Npmjs.Com/Package/String-Cosine-Similarity. https://www.npmjs.com/package/string-cosine-similarity
Kristanto, A. (2003). Algoritma dan Pemrograman dengan C++.
Mustamiin, M., Iryanto, I., Andi, M., & Ismantohadi, E. (2021). Pengembangan Sistem Manajemen Evaluasi Pembelajaran Terintegrasi Dengan Online Judge. Ikraith-Informatika, 5(3), 64–71.
Shevade, V. (2019). set-distance. https://github.com/varad11/set-distance
Wang, J., & Dong, Y. (2020). Measurement of text similarity: a survey. Information, 11(9), 421.
Watanobe, Y., Rahman, Md. M., Matsumoto, T., Rage, U. K., & Ravikumar, P. (2022). Online Judge System: Requirements, Architecture, and Experiences. International Journal of Software Engineering and Knowledge Engineering, 32(06), 917–946. https://doi.org/10.1142/S0218194022500346
Zhou, W., Pan, Y., Zhou, Y., & Sun, G. (2018). The framework of a new online judge system for programming education. Proceedings of ACM Turing Celebration Conference - China, 9–14. https://doi.org/10.1145/3210713.3210721