• Tidak ada hasil yang ditemukan

Rekomendasi -Solved Problems di Platform Kompetisi Pemrograman Menggunakan Recommendation Engine

N/A
N/A
Protected

Academic year: 2017

Membagikan "Rekomendasi -Solved Problems di Platform Kompetisi Pemrograman Menggunakan Recommendation Engine"

Copied!
16
0
0

Teks penuh

(1)

REKOMENDASI NEXT-SOLVED P ROBLEMS DI P LATF ORM KOMPETISI PEMROGRAMAN MENGGUNAKAN RECOMMENDATION ENGINE

SKRIPSI

FRANHEIT SANGAPTA MANULLANG 081402041

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(2)

REKOMENDASI NEXT-SOLVED P ROBLEMS DI P LATF ORM KOMPETISI PEMROGRAMAN MENGGUNAKAN RECOMMENDATION ENGINE

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

FRANHEIT SANGAPTA MANULLANG 081402041

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

(3)

PERSETUJUAN

Judul : REKOMENDASI NEXT-SOLVED PROBLEMS DI

PLATFORM KOMPETISI PEMROGRAMAN

MENGGUNAKAN RECOMMENDATION ENGINE

Kategori : SKRIPSI

Nama : FRANHEIT SANGAPTA MANULLANG

Nomor Induk Mahasiswa : 081402041

Program Studi : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2

M. Fadly Syahputra, B.Sc., M.Sc.IT NIP. 19830129 200912 1 003

Pembimbing 1

Prof. Dr. Opim Salim Sitompul, M.Sc NIP. 19610817 198701 1 001

Diketahui / disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

(4)

PERNYATAAN

REKOMENDASI NEXT-SOLVED PROBLEMS DI PLATFORM KOMPETISI PEMROGRAMAN MENGGUNAKAN RECOMMENDATION ENGINE

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Agustus 2015

(5)

UCAPAN TERIMA KASIH

Puji syukur penulis panjatkan kepada Allah Bapa Tuhan Yang Maha Esa, karena dengan limpahan berkat dan kemuliaanNYA dengan berbagai cara yang agung penulis dapat menyelesaikan penyusunan tugas akhir ini. Rasa syukur dan doa yang tak henti-hentinya penulis daraskan karena dengan penyertaanNYA selalu, penulisan tugas akhir ini dapat terselesaikan dengan baik.

Penulis juga menyadari bahwa penyusunan skripsi ini tidak lepas dari campur tangan orang-orang yang Tuhan titipkan untuk menjadi motivasi.

1. Orang tua penulis, Riani Situmorang dan Marolop Y Manullang, terimakasih mama dan bapak telah menjadi sumber kekuatan di setiap waktu. Juga kepada keluarga Kakak Santi Christina Manullang dan Lae Eko P Rajagukguk beserta calon pemimpin masa depan, Juan Trystan Rajagukguk. Juga kepada adik-adik tercinta, Abdi Pistari Manullang, Desy Yumaida Manullang, Cindy Theresia Manullang, dan keluarga abang Ebenezer Talumau Manullang dan Mauren Situmorang.

2. Dosen pembimbing penulis, Prof. Dr. Opim Salim Sitompul, M.Sc, dan M Fadly Syahputra, B.Sc., M.Sc.IT atas segala masukan dan bimbingan selama penyusunan skripsi ini.

3. Bapak/Ibu dosen di Fasilkom-TI maupun MIPA yang telah mendidik penulis mulai dari tidak tahu apa-apa sampai pada saat ini berjuang menjadi yang terbaik untuk masyarakat banyak.

4. Yayasan Karya Salemba Empat – Pak Hengky, Pak Dadit, Pak Tatan Taufik, Pak Mirza, Bu Amy Tantri serta founder dan dewan pembina dan yang menjadi sosok inspirasi dan mengajarkan penulis banyak hal untuk melanjutkan perjuangan dan menjadi pemimpin yang berakhlak.

(6)

memberikan banyak kesempatan mencicipi banyak pelatihan dan tentunya menjadi orangtua bagi anak-anak BISMA.

6. Rekan-rekan di Camp BISMA – Beasiswa Indofood Sukses Makmur se-Indonesia.

7. Rekan-rekan Paguyuban Karya Salemba Empat Universitas Sumatera Utara – tempat berkeluh kesah, tempat mewujudkan mimpi, dan tempat untuk mencoba banyak hal yang orang lain anggap tidak bisa.

8. Rekan-rekan se-angkatan dan adik-adik di Prodi Teknologi Informasi.

9. Teman seperjuangan di Asrama Putra KKB USU – bang Asril, Nanda Putra, Reyhan Samantha, Billy Az-zahry, Putra, serta Salman.

10.Rekan-rekan dan mentor cyber underground dimanapun kalian berada. Finally, I will be graduated, guys. Let’s hack the better world.

Penulis juga memohon maaf jika selama masa pendidikan strata satu ini penulis melakukan kesalahan. Semoga Tuhan menyertai segala kebaikan dan kerendahan hati untuk banyak pihak.

Dan juga semoga karya tulis ini memberikan kontribusi yang baik untuk kemajuan pendidikan di tanah air tercinta.

(7)

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.

(8)

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.

(9)

DAFTAR ISI

BAB 2 LANDASAN TEORI 7

2.1. Competitive Programming 7

2.1.1. ACM ICPC 8

2.1.2. TopCoder 9

2.1.3. Google Code Jam 11

(10)

2.2. Online Judges 12

2.2.1. UVa Online Judge 12

2.3. Statistik UVa Online Judge 13

2.3.1. Persebaran bahasa pemrograman yang digunakan 14

2.3.2. Statistik unique page views 14

2.3.3. Statistik pengunjung unik 15

2.3.4. Statistik data kunjungan rentang tahun 2014 16

2.3.5. Statistik pengunjung berdasarkan negara 17

2.3.6. Statistik pengunjung berdasarkan kota 17

2.4. Recommendation Engine 18

2.5. Personalized Recommendation Engine 19

2.6. Unified Modelling Language (UML) 19

2.6.1. Diagram use case 20

2.6.2. Spesifikasi use case 22

(11)

3.2.2. Problemsets Processing 38

3.2.3. User’s Submissions Statistics 39

3.2.4. Pembobotan Level Soal (Grading the Problemsets) 40

3.2.5. Next-Solved Problems Recommendation 41

BAB 4 ANALISIS DAN PERANCANGAN 44

4.1. Perancangan Sistem 44

4.1.1. Diagram use case 44

4.1.2. Definisi use case 45

4.2. Perancangan Tampilan Antarmuka 46

4.2.1. Rancangan tampilan halaman default username 46

4.2.2. Rancangan halaman problem category 46

4.2.3. Rancangan halaman problem categories secara detail 47

4.2.4. Rancangan halaman profil pengguna 48

4.2.5. Rancangan halaman status menu untuk live submissions 48

BAB 5 IMPLEMENTASI DAN PENGUJIAN 50

5.1. Implementasi Sistem 50

5.1.1. Spesifikasi perangkat keras dan perangkat lunak yang digunakan 50

5.1.2. Tampilan Utama Menu P roblem Category 51

5.1.3. Implementasi rekomendasi next-solved problems soal-soal kompetisi 51

5.1.4. Tampilan Menu Profil Pengguna 52

5.1.5. Tampilan menu live submissions dari semua pengguna 52

5.1.6. Tampilan pengelompokan next-solved problems berdasarkan volume soal

dan book chapter 53

5.1.7. Tampilan pengelompokan next-solved problems berdasarkan volume soal dan book chapter serta terurut berdasarkan distinct accepted user (dacu) 54

5.1.8. Tampilan next-solved problems berdasarkan Competitive Programming

(12)

5.2. Pengujian Sistem 55

5.2.1. Pengujian fungsionalitas antarmuka pengguna 55

5.2.2. Tahapan training data problemsets dan history of user’s submissions 58

BAB 6 KESIMPULAN DAN SARAN 61

6.1. Kesimpulan 61

6.2. Saran 62

DAFTAR PUSTAKA 63

(13)

DAFTAR TABEL

Hal Tabel 2.1 Hasil world final rentang tahun 2010 – 2014 (ICPC, 2014) 8 Tabel 2.2 Statistik Tahunan Submissions di Platform UVa Online Judge (UVA,

2015) 12

Tabel 2.3 Elemen-elemen diagram sekuens 22

Tabel 2.4 Elemen-elemen Pada Diagram Aktivitas 23

Tabel 3.1 Kategori soal-soal UVa online judge berdasarkan book chapter

Competitive Programming 1st Edition (Halim, et al. 2010) 34 Tabel 3.2 Kategori soal-soal UVa online judge berdasarkan book chapter

Competitive Programming 2nd Edition (Halim, et al. 2011) 35 Tabel 3.3 Kategori soal-soal UVa online judge berdasarkan book chapter

Competitive Programming 3nd Edition (Halim, et al. 2013) 35 Tabel 3.4 Kategori soal-soal UVa online judge berdasarkan Volume soal (UVA,

2014) 36

Tabel 3.5 Kategori soal-soal UVa online judge berdasarkan book chapter Art of Programming Contest 1st Edition (Arefin, 2006) 36 Tabel 3.6 Kategori soal-soal UVa online judge berdasarkan book chapter Art of

Programming Contest 2nd Edition (Halim, et al. 2011) 37 Tabel 3.7 Kategori soal-soal UVa online judge berdasarkan Training Guide Art of

Programming Contest (Arefin, 2006) 37

Tabel 3.8 Tabel Rekomendasi 25 Soal Berdasarkan Kalkulasi Nilai DACU 41

Tabel 4.1 Tabel Deskripsi Use Case 45

Tabel 5.1 Rencana Pengujian Komponen Antarmuka 56

Tabel 5.2 hasil pengujian halaman utama 56

Tabel 5.3 hasil pengujian profil pengguna 57

(14)

DAFTAR ISTILAH

Auto judging Juri otomatis atau penilaian kebenaran program yang

dikumpulkan ke sistem dilakukan oleh sistem itu sendiri dan nilai

kebenarannya (accepted, wrong answer, presentation error, timit

limit exceeded, dll) secara otomatis pula di kembalikan ke layar

Accepted verdict Nilai kembalian yang bersifat tepat benar untuk setiap submission

yang dilakukan pengguna terhadap satu soal tertentu. Biasanya

ditandai dengan pemberian warna hijau untuk soal accepted

verdict dan warna merah untuk submission yang masih salah

(wrong answer, time limit, dll)

Competitive programming

Terminologi merujuk ke berbagai kompetisi pemrograman

Dacu Distinct accepted user, bobot nilai setiap soal berdasarkan status

pengguna yang sudah menyelesaikan soal secara benar, dihitung

hanya dari submisi pertama yang benar setiap pengguna

Next-solved problems Merujuk ke permasalahan/soal-soal kompetisi pemrograman

yang direkomendasikan untuk diselesaikan

Online judge Basis arsip soal-soal kompetisi pemrograman, bersifat

autograding terhadap submissions pengguna. OJ yang paling

terkenal diantaranya UVa, LiveArchive, PKU, SPOJ, Bailian,

TopCoder Algorithm, Codeforces, dll.

Problemsetter Perancang soal untuk kompetisi pemrograman

Problemsolver Orang yang menyelesaikan soal-soal

(15)

DAFTAR GAMBAR

Hal Gambar 2.1 Persebaran Bahasa Pemrograman yang Digunakan (UVA, 2014) 14 Gambar 2.2 UVa Page Views Rentang Tahun 2014 (UVA, 2014) 15

Gambar 2.3 UVa Unique Page Views (UVA, 2014) 15

Gambar 2.4 Statistik UVa Unique Visitors rentang tahun 2014 (UVA, 2014) 16 Gambar 2.5 Statistik UVa Visits rentang tahun 2014 (UVA, 2014) 16 Gambar 2.6 UVa Visits by Country rentang tahun 2014 (UVA, 2014) 17 Gambar 2.7 UVa Visits by City rentang tahun 2014 (UVA, 2014) 18

Gambar 2.8 Use Case 21

Gambar 2.9 Contoh Aktor Pada Use Case Diagram 21

Gambar 2.10 Keterhubungan 21

Gambar 3.1 Arsitektur Umum Sistem 31

Gambar 3.2 Flowchart Tahapan Problemsets Processing 38 Gambar 3.3 Flowchart Tahapan Submissions History Pengguna 39

Gambar 3.4 Flowchart Next-solved P roblems 41

Gambar 4.1 diagram use case 44

Gambar 4.2 Rancangan halaman defa ult username 46

Gambar 4.3 Rancangan halaman problem category dan detail soal 47 Gambar 4.4 Rancangan sub bagian menu kategori soal berdasarkan chapter book

dan volume soal 47

Gambar 4.5 Rancangan halaman detail profil pengguna dan pengguna lain

yang ditambahkan ke sistem 48

Gambar 4.6 Rancangan halaman status livesubmissions yang dilakukan semua pengguna di sistem UVa online judge 49 Gambar 5.1 Tampilan halaman menu problem category 51 Gambar 5.2 Tampilan menu profiles pengguna dan pengguna lain 52 Gambar 5.3 Tampilan menu live submissions dari semua pengguna 52 Gambar 5.4 Tampilan next-solved problems berdasarkan pengelompokan soal

(16)

Gambar 5.5 Tampilan pengelompokan next-solved berdasarkan volume, chapter

book, dan distinct accepted users 54

Gambar 5.6 Tampilan next-solved problems berdasarkan Competitive Programming 3rd Edition dan terutut berdasarkan nilai dacu 55 Gambar 5.7 Tampilan kategori soal berdasarkan volume soal 58 Gambar 5.8 Tampilan kategori soal berdasarkan buku competitive programming

Referensi

Dokumen terkait

[r]

Proses PTK harus melalui 4 (empat) tahap yang tersusun menjadi sebuah siklus, yaitu tahap perencanaan, pelaksanaan tindakan, pengamatan, dan refleksi (Jalil,

Penyelenggaraan Pendidikan Madrasah (Berita Negara Republik Indonesia Nomor 1382) sebagaimana telah diubah dengan Peraturan Menteri Agama Nomor 60 Tahun 2015

Berdasarkan data-data yang telah dikumpulkan dan telah dianalisis bahwa peranan kelompok tani melati 1 terhadap kesejahteraan petani telah memberikan peningkatan, terlihat dari

Pembentukan model-model pencegahan dan pemberantasan illegal fishing yang komprehensif dan terkoordinasi compressive and coordinated in preven ng and comba ng illegal fishing

Warlaba merupakan suatu bentuk khusus lisensi, yang memberikan hak kepada terwaralaba untuk menjual produk atau jasa yang sudah terkenal,

Adanya perbedaan yang signifikan antara kedua sampel disebabkan oleh persentase rasio keuangan pada Peringkat Komposit yang merupakan komponen utama dari penilaian

Perencanaan kebutuhan sistem pendingin dilakukan dengan menghitung beban pendinginan untuk koil pendingin serta menentukan estimasi kapasitas pendingan yang dapat dihasilkan dengan