BAB 1 PENDAHULUAN Latar Belakang

dokumen-dokumen yang mirip
PENJURIAN ONLINE BERBASIS WEB SERVICE

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 2 LANDASAN TEORI

REKOMENDASI NEXT-SOLVED PROBLEMS DI PLATFORM KOMPETISI PEMROGRAMAN MENGGUNAKAN RECOMMENDATION ENGINE SKRIPSI FRANHEIT SANGAPTA MANULLANG

FALCON PROGRAMMING CONTEST

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Banyak informasi terbaru tentang olahraga sepak bola di Indonesia menjadikan sepak

BAB 1 PENDAHULUAN Latar Belakang

PEMBUATAN CONTENT MANAGEMENT SYSTEM (CMS) UNTUK SISTEM PENJURIAN LOMBA INFORMATICS LOGICAL PROGRAMMING COMPETITION DI UNIVERSITAS SURABAYA

Syarat & Ketentuan. Ketentuan Umum Kompetisi FesTIval 2017

BAB I PENDAHULUAN. Suara merupakan salah satu media komunikasi yang paling sering dan

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Bab I Pendahuluan Latar belakang

BAB I PENDAHULUAN I-1

BAB 1 PENDAHULUAN Latar Belakang

Rulebook. Uinic Programming Competition. Deskripsi Lomba

INSTITUT TEKNOLOGI BANDUNG SENIOR PROGRAMMING CONTEST 3 REGULASI DAN PERATURAN

Bagi peserta OSN 2014 dan calon peserta Open OSN William Gozali, Teknis OSN

4.6 KKNI Bidang Manajemen Informasi (D3)

Panduan Lomba Pagelaran Mahasiswa Nasional Bidang TIK Yogyakarta, Pemrograman Penyisihan

perguruan tinggi (SD, SMP, SMA, atau sederajat), sedangkan SCPC diperuntukkan bagi mahasiswa (Diploma, S1, atau S2).

INSTITUT TEKNOLOGI BANDUNG JUNIOR PROGRAMMING CONTEST 3

IMPLEMENTASI ONLINE JUDGE UNTUK PELATIHAN TIM PEMROGRAMAN BINUS

BAB I PENDAHULUAN I.1 Latar Belakang

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN. pengguna jejaring sosial yang bahkan tidak dapat dibatasi cakupannya, dapat. dibutuhkan oleh sebuah organisasi tertentu.

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN. pesat yang diindikasikan perkembangan teknologi telekomunikasi dan komputer.

BAB I PENDAHULUAN 1.1. Latar Belakang

Bab III Analisis Analisis Masalah

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

OLYMPIA STUDENT USER GUIDE

BAB 1 PENDAHULUAN. menjual berbagai jenis pakaian. Seiring dengan perkembangan fashion pakaian ini

1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. sejak lama peranan permainan dirasakan cukup efektif dalam membantu menghilangkan

BAB I PENDAHULUAN I.1 Latar Belakang Masalah

BAB I PENDAHULUAN I-1

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

3. Tema Kegiatan Kebangkitan Generasi Muda untuk Membangun Bangsa dengan Teknologi dan Kebudayaan Nusantara

BAB I PENDAHULUAN. Rental Daras Corporation adalah suatu rental mobil yang terletak Jl.

BAB 1 PENDAHULUAN. terhadap peran sistem informasi dalam perusahaan sebagai bagian dari produktivitas.

BAB I PENDAHULUAN. internet yang kini menjadi peranan penting. Kebutuhan user yang semakin

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. smartphone. Aplikasi mobile dalam hal ini adalah Android yang menjadi salah satu

BAB 1 PENDAHULUAN. koleksi bahan pustaka secara sistematis dan digunakan oleh pemakai sebagai

BAB I PENDAHULUAN 1.1 Latar Belakang dan Permasalahan

BAB I PENDAHULUAN. informasi yang berbeda-beda. Berita yang dipublikasi di internet dari hari ke hari

BAB I PENDAHULUAN. masih berkembang dan sangat sering digunakan saat ini adalah internet. Saat ini

BAB I PENDAHULUAN 1.1 Latar Belakang

Kemajuan di bidang teknologi khususnya di dunia komputer dari hari ke. yang semakin kompleks. Dari berbagai macam aktivitas yang digeluti, sebuah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Deskripsi : Penghargaan: Syarat dan Ketentuan Umum Peserta:

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1. BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN. Latar Belakang

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang. Perkembangan teknologi yang sangat pesat saat ini membawakan pengaruh yang

DAFTAR ISI DAFTAR ISI... 1 I. KETENTUAN UMUM... 2 II. III. IV. KETENTUAN KOMPETISI...5 PESERTA...10 PENGAWASAN DAN PENJURIAN...12 V. PENUTUP...14 LAMP

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

RULE BOOK IDEAFUSE 2018 ACM ICPC Multi-Provincial Programming Contest

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB 1 PENDAHULUAN Latar Belakang

BAB III METODOLOGI 3.1. Prosedur Penelitian Identifikasi Masalah

Transkripsi:

1 BAB 1 PENDAHULUAN 1.1. Latar Belakang Competitive programming merupakan terminologi untuk berbagai jenis kompetisi di bidang pemrograman. Kompetisi pemrograman ini bertujuan untuk menyelesaikan masalah-masalah dunia nyata yang solusinya dapat dimodelkan secara matematika dan algoritmik dan memrogramnya dalam bahasa pemrograman yang ditentukan berdasarkan aturan masing-masing kompetisi. Soal-soal kompetisi pemrograman ini biasanya terdiri dari bagian-bagian seperti deskripsi masalah yang harus diselesaikan, format masukan program, dan hasil keluaran yang diharapkan (deskripsi soal, batas input/output sudah ditentukan). Kontestan harus menyelesaikannya dengan membuat program sebagai solusi dan melakukan submission ke dalam sistem kompetisi. Solusi ini kemudian melalui tahap system grading dengan pengujian berbagai test data dari panitia sebagai syarat apakah solusi program kontestan benar menurut aturan lomba yang telah didefinisikan. Adapun hasil keluaran yang ditampilkan dari proses ini adalah accepted (sebagai tanda program yang dikumpulkan benar, wrong answer (jawaban tidak sesuai dengan aturan input/output yang diharapkan), time limit exceeded (program melebihi waktu eksekusi komputer server yang sudah ditetapkan sebelumnya), dan berbagai peringatan lain. Kompetisi pemrograman ini (ACM ICPC-based) merupakan kompetisi yang cukup bergengsi di bidang ilmu komputer dan di disiplin ilmu sejenis. Setiap tahunnya pelajar-pelajar di universitas terbaik di belahan dunia berlomba-lomba mempersiapkan

2 diri untuk bisa lolos sampai ke tahap final. Tentunya karena disiplin ilmu ini sangat ketat dan kompetitif, diperlukan investasi waktu yang tidak sedikit untuk masa persiapannya. Sering kali pelajar-pelajar mengalami kesulitan untuk memulai dari mana agar bisa menguasai topik-topik yang akan diujikan. Salah satu tempat berlatih untuk mengasah kemampuan menyelesaikan soal adalah dengan menyelesaikan arsip soalsoal kompetisi terdahulu yang ada di sistem online judges seperti UVa Online Judges, Sphere Online Judges, Live Archive, Top Coder, dan lain-lain. Bagi pemula, sering kali ketika mencoba berlatih dan menyelesaikan soal di platform ini merasa sangat frustasi dan membosankan karena tidak tahu soal mana yang terlebih dahulu diselesaikan, mana yang lebih mudah, atau mana yang sesuai dengan kemampuannya saat itu (Lin, et al. 2013). Oleh karena itu, penulis melakukan penelitian untuk membuat satu complementary tool yang bisa merekomendasikan soal-soal yang akan dipakai berlatih. Penelitian tentang rekomendasi soal-soal yang akan diselesaikan untuk berlatih dalam kompetisi pemrograman ini sudah pernah dilakukan sebelumnya. Di antaranya adalah uhunt (Halim, 2010). Tools ini menggunakan pendekatan rekomendasi berdasarkan preferensi soal-soal apa saja yang sudah diselesaikan seseorang dan merekomendasikan soal-soal apa yang akan diselesaikan. Kemudian soal-soal dikategorikan dalam berbagai topik, level soal, dan lain-lain. Dalam penelitian ini, soal-soal pemrograman yang direkomendasikan berasal dari platform UVa online judge. Soal-soal yang tersedia berasal dari arsip-arsip kompetisi tahun-tahun sebelumnya di berbagai level kompetisi. Prinsip kerja mesin rekomendasi ini adalah dengan merekomendasikan soal-soal apa yang paling dekat (secara topik, tingkat kesulitan) untuk diselesaikan kemudian. Rekomendasi ini didapat dengan dua cara. Pertama, dengan mempelajari preferensi soal-soal yang sudah dikerjakan sebelumnya dengan menggunakan akun terdaftar di UVa online judge. Kedua, untuk pengguna yang sama sekali tidak memiliki akun terdaftar atau belum pernah menyelesaikan satu soalpun di sistem kompetisi, rekomendasi bisa didapat dengan menampilkan halaman kepada pengguna yang berisi topik-topik soal apa yang ingin dikerjakan terlebih dahulu. Kemudian sistem merekomendasikan mulai dari level paling mudah bertahap hingga level sulit berdasarkan tingkat preferensi pengguna.

3 1.2. Rumusan Masalah Competitive programming, dalam proses persiapannya membutuhkan olah mental, pikiran, dan waktu yang panjang. Tingkat kesulitan soal-soal yang diujikan saat kompetisi sangat tinggi dan dalam perkembangannya bervariasi pada lingkup masalahmasalah nyata yang penyelesaiannya menggunakan pemodelan matematika dan solusisolusi algoritmik. Oleh karena itu, rekomendasi next-solved problems ini dapat membantu dan mempermudah proses persiapan peserta dengan membuat basis roadmap tracking of competitive programming. 1.3. Tujuan Penelitian Tujuan penelitian ini adalah memberikan rekomendasi next-solved problems pada platform online judge dan mengelompokkan berbagai soal-soal dalam tingkat kesulitan, maupun kategori teknik penyelesaian soal untuk memudahkan pengguna dalam menyelesaikan masalah-masalah yang ada di level kompetisi. 1.4. Manfaat Penelitian Adapun manfaat dilakukannya penelitian ini: 1. Sebagai tool alternatif bagi pelajar/mahasiswa yang ingin mempersiapkan diri dalam kompetisi pemrograman tingkat lanjut 2. Sebagai rekam jejak (roadmap tracking) untuk mencatat perkembangan belajar dan mengasah kemampuan dalam menyelesaikan soal-soal kompetisi pemrograman. 1.5. Batasan Masalah Pada penyusunan tugas akhir ini, ruang lingkup pembahasan mencakup: 1. Platform soal-soal kompetisi yang digunakan dibatasi pada platform UVa online judge.

4 2. Dataset yang digunakan merupakan arsip soal-soal di online judge rentang tahun 1995-2014 (UVA, 2014). 1.6. Metodologi Penelitian Dataset yang penulis gunakan pada penelitian ini diambil dari UVa online judge dimana jumlah arsip soal yang tersedia sekitar 4500+ problemsets, dengan satu juta pengguna terdaftar dan 500.000+ pengguna aktif setiap bulannya. Adapun tahapan-tahapan perancangan tools terdefinisi sebagai berikut: 1. Studi Literatur Pada tahapan ini, penulis mengkaji dataset dan teknik yang akan digunakan melalui studi literatur dan pustaka dengan mengumpulkan bahan-bahan dan referensi berupa makalah, jurnal, buku, maupun artikel terkait. 2. Dataset Crawling Mengumpulkan preferensi setiap pengguna terdaftar dan meta-data soalsoal yang ada dari ketersediaan tautan dan informasi pengelompokan soalsoal berdasarkan tahun dan deskripsi soal. 3. Dataset Extraction Mengelompokkan soal-soal berdasarkan tingkat kesulitan (easy, medium, hard), topik-topik yang sering dibahas (dynamic programming, ad-hoc, graph, math, greedy, dan lainnya), juga berdasar pengelompokan metode ataupun algoritma yang digunakan dalam penyelesaian. 4. Problemsets Clustering Berdasarkan Preferensi Pengguna Setelah mendapat informasi dataset soal-soal yang ada, sistem mengelompokkan soal-soal ke dalam masing-masing kategori ataupun berdasarkan tagging pada topik soal. 5. Analisis Permasalahan Tahapan untuk melakukan analisis permasalahan:

5 a) meneliti secara detail tahapan dan proses pengolahan dataset b) meneliti bagaimana proses rekomendasi dalam merekomendasikan soal-soal dan menentukan setiap level dan kategorinya. 6. Pengkodean Tahapan untuk melakukan implementasi kode ke dalam aplikasi berdasarkan hasil perancangan aplikasi pada tahap sebelumnya. 7. Pengujian Tahapan uji coba program untuk memastikan apakah program yang sudah dibuat berjalan sesuai dengan yang harapkan. 8. Dokumentasi dan Penyusunan Laporan Pada tahap ini dilakukan pendokumentasian hasil analisis dan implementasi. 1.7. Sistematika Penulisan Sistematika penulisan skripsi ini dibagi menjadi enam bab yaitu: BAB I Pendahuluan Pada bab ini berisi tentang konsep dasar dan teori pendukung dalam penyusunan skripsi. BAB II Landasan Teori Pada bab ini dibahas mengenai beberapa teori yang mendukung pembahasan pada bab selanjutnya. BAB II Metodologi Penelitian Pada bab ini dibahas mengenai metodologi penelitian yang digunakan. BAB IV Analisis dan Perancangan Pada bab ini dibahas mengenai permasalahan dalam pembuatan aplikasi, penjelasan tentang rancangan struktur tools yang akan dibuat.

6 BAB V Implementasi dan Pengujian Pada bab ini dibahas implementasi dari aplikasi yang akan dibuat. Berisikan gambaran arsitektur umum yang akan dibuat. Setelah itu dilakukan pengujian untuk memastikan tools yang dibuat berhasil dijalankan atau tidak. BAB VI Kesimpulan dan Saran Bab ini berisi tentang kesimpulan dan saran yang diharapkan dapat bermanfaat untuk penelitian selanjutnya.