Rekomendasi -Solved Problems di Platform Kompetisi Pemrograman Menggunakan Recommendation Engine

vi

ABSTRAK

Competitive programming merupakan istilah yang populer untuk berbagai level

kompetisi pemrograman di kalangan pelajar, mahasiswa, maupun profesional yang
menekuni bidang ilmu komputer dan teknologi informasi. Dalam kompetisi
pemrograman, peserta tidak hanya dituntut untuk menguasai bahasa pemrograman
secara mendalam, tetapi kemampuan pemecahan masalah dengan solusi yang sudah
diformulasikan sedemikian rupa, diterjemahkan dalam baris-baris kode dengan
mempertimbangkan kecepatan eksekusi program serta penggunaan memori komputer
seefisien mungkin. Dalam masa persiapannya, peserta biasanya mengalami berbagai
kendala teknis, misalnya, kesulitan untuk menemukan soal-soal yang menarik untuk
dipakai dalam berlatih. Apabila peserta mencoba soal-soal yang tingkat kesulitannya
jauh lebih tinggi dari kemampuan si peserta, biasanya peserta akan merasa frustasi
karena tidak bisa menyelesaikannya, sebaliknya apabila peserta mencoba soal-soal yang
jauh lebih rendah dari kemampuannya, si peserta akan merasa bosan dan proses
pengerjaan soal seterusnya menjadi tidak menarik. Oleh karena itu, penulis melakukan
penelitian untuk merekomendasikan soal-soal (next-solved problems) baik secara
kategori, tingkat kesulitan soal, maupun soal-soal yang menarik untuk dikerjakan untuk

persiapan dalam kompetisi pemrograman. Dalam penelitian ini, data soal-soal yang ada
diambil dari arsip soal-soal di UVa online judge. Penulis mempelajari preferensi setiap
peserta yang ada dalam online judge ini, kemudian dari proses pembelajaran preferensi
ini, didapat pola frekuensi soal-soal yang paling sering dicoba, soal-soal yang
dikategorikan sulit, dan rekomendasi lainnya. Proses rekomendasi soal-soal ini
menggunakan teknik recommendation engine.

Kata Kunci: competitive programming, uva online judge, recommendation engine.

Universitas Sumatera Utara

vii

ABSTRACT

Competitive programming is a popular term of programming competitions that vary on
difficulty levels among students, college students, and professional programmers that
pursue the computer science and information technology field. In programming
competitions, students not only need to master programming language in depth, but
sharpen the ability of problem solving in advanced and then the formulated solution

translates in line of codes taking into account both of the runtimes and the memory
limits efficiently. In the preparation phase, students usually encounter vary of technical
problems, for example, the difficulty of finding interesting problemsets to solve. If
students try a problem that the degree of its difficulty is much higher than student’s
ability, in common, they will frustrate because they can’t solve it. Otherwise, if the
degree of problem’s difficulty is lower than their ability, students will get bored and
solving the problemsets itself become unattractive. Therefore, the author tries to do a
research that recommend next-solved problems either in categories, levels of difficulty,
as well as the interesting problemsets to solve in preparation phase. In this research,
datasets are grabbed from the archives of problems in UVa online judge via UHunt API.
The author tries to learn the preferences of each participant in the online judge, and then
the learning process of user’s preferences obtained a pattern of problemset’s frequency
mostly tried, level of problemset difficulty, category of problems, and the others. This
recommendation of next-solved problems uses recommendation engine technique.

Keywords: competitive programming, uva online judge, recommendation engine

Universitas Sumatera Utara