BAB 1 PENDAHULUAN 1.1
Latar Belakang Belakangan ini, kontes pemrograman banyak diadakan oleh lembaga – lembaga
pendidikan seperti Indonesia National Contest (INC) oleh Binus, Pagelaran M ahasiswa Nasional Bidang Teknologi Informasi dan Komunikasi (Gemastik) oleh Direktorat Pendidikan, Institut Teknologi Bandung Programming Contest (ITBPC) oleh ITB, Computer Festival oleh UI, International Collegiate Programming Contest (ICPC) oleh ACM , dan sebagainya. Binus University mempunyai associate team yang disebut tim pemrograman Binus yang dibentuk khusus untuk berpartisipasi dalam kontes pemrograman tersebut. Kontes pemrograman merupakan lomba untuk mengukur kemampuan algoritma peserta dengan cara menyediakan soal algoritma untuk diselesaikan dengan bahasa pemrograman. Penilaiannya dilakukan dengan mengumpulkan source code dari perserta, mengompilasi source code menjadi program, dan menguji kebenaran program berdasarkan input data dan output data yang disediakan. Untuk mempersiapkan tim pemrograman Binus dalam kontes pemrograman diperlukan
pelatihan
untuk
menyelesaikan
soal algoritma.
Pelatihan
tersebut
memerlukan proses penilaian yang sama dengan proses penilaian pada lomba. Proses penilaian secara manual dalam pelatihan mempunyai banyak kekurangan seperti pelatihan hanya dapat dilakukan pada waktu tertentu, memerlukan banyak sumber daya manusia dan komputer, dan terdapat faktor kelalaian manusia yang dapat menyebabkan 1
2
kesalahan penilaian. Oleh karena itu diperlukan sistem untuk mengotomatiskan proses penilaian tersebut dalam pelatihan tim pemrograman Binus seperti online judge. Online judge adalah sistem yang menyediakan berbagai soal algoritma sebagai sarana untuk melatih kemampuan logika berpikir dan algoritma pemrograman dimana sistem ini menerima solusi untuk diuji kebenarannya dengan menggunakan test data yang sudah disediakan. Tim pemrograman Binus saat ini sudah menggunakan beberapa sistem online judge seperti Peking University Online Judge, Sphere Online Judge, dan Tian Jin University Online Judge. Tetapi online judge yang selama ini dipakai tidak mempunyai fasilitas untuk menambah soal algoritma, sehingga soal algoritma yang dapat digunakan hanyalah yang tersedia pada online judge tersebut. Fitur lain yang diperlukan adalah mampu mengadakan kontes pemrograman untuk menambah pengalaman
tim
pemrograman Binus dalam suasana kontes pemrograman. Untuk mengatasi kendala tersebut perlu dibuat online judge khusus untuk tim pemrograman Binus. M elalui sistem online judge khusus untuk tim pemrograman Binus, pelatih ataupun senior dapat menambah soal algoritma baru dan mengadakan kontes pemrograman.
1.2
Ruang Lingkup Ruang lingkup skripsi ini adalah merancang dan mengimplementasi sistem online
judge dengan user interface berupa website untuk keperluan pelatihan tim pemrograman Binus yang mendukung bahasa pemrograman GNU C dan GNU C++ serta dijalankan pada sistem operasi linux.
3
1.3
Tujuan dan Manfaat Tujuan dari pembuatan sistem online judge adalah: 1. M embuat sistem online judge untuk tim pemrograman Binus. 2. M enyediakan sistem penilaian yang dapat digunakan untuk penilaian kontes pemrograman. M anfaat dari pembuatan sistem online judge adalah: 1. Tersedianya online judge untuk keperluan pelatihan tim pemrograman Binus 2. M empermudah trainer atau juri kontes untuk melakukan penilaian terhadap kebenaran solusi peserta kontes pemrograman.
1.4
Metodologi Penelitian M etode yang digunakan untuk menyelesaikan skripsi ini terbagi menjadi tiga
bagian yaitu: • M etode Studi Pustaka M etode studi pustaka dilakukan dengan membaca berbagai literatur yang menunjang pengembangan sistem online judge. Studi pustaka dilakukan untuk mengetahui beberapa algoritma, skema sistem, serta rancangan keamanan yang akan diimplementasikan ketika membuat sistem online judge. • M etode Analisis
4
M etode analisis dilakukan untuk menganalisis sistem yang sedang berjalan dan kebutuhan untuk sistem online judge serta untuk mengevaluasi sistem online judge yang diimplementasi. M etode analisis meliputi wawancara, kuesioner, dan uji coba sistem. Wawancara dilakukan terhadap Bapak Suhendry Effendy S.Kom sebagai pelatih tim pemrograman Binus. Kuesioner disebar secara online kepada anggota-anggota tim pemrograman Binus baik yang masih aktif ataupun yang sudah lulus dari Binus. Uji coba dilakukan dengan menguji sistem online judge terhadap berbagai masukan dan serangan yang membahayakan sistem. • M etode Perancangan M etode perancangan yang digunakan adalah perancangan sistem secara logis, perancangan sistem dengan unified modelling language meliputi use case diagram, sequence diagram, class diagram serta perancangan layar sistem.
1.5
Sistematika Penulisan Sistematika penulisan dalam penyusunan skripsi ini terdiri dari 5 bab: • BAB 1 : Pendahuluan Bab ini berisi latar belakang, ruang lingkup, tujuan dan manfaat yang diperoleh, metodologi yang digunakan, dan sistematika penyusunan skripsi. • BAB 2 : Landasan Teori Bab ini berisi landasan-landasan teori yang dipakai dalam membuat sistem online judge.
5
• BAB 3 : Analisis dan Perancangan Sistem Bab ini berisi penjabaran sistem online judge yang dibuat, beserta rancangan sistem secara logis yang dipakai dalam membuat sistem online judge. • BAB 4 : Implementasi dan Evaluasi Bab ini berisi informasi terkait implementasi sistem, dan evaluasi terhadap sistem online judge yang sudah diimplementasi. • BAB 5 : Simpulan dan Saran Bab ini berisi simpulan yang diambil dari analisis, perancangan, implementasi dan evaluasi yang dilakukan serta saran yang dapat diberikan untuk pengembangan lebih lanjut sistem online judge.