• Tidak ada hasil yang ditemukan

IMPLEMENTASI ONLINE JUDGE UNTUK PELATIHAN TIM PEMROGRAMAN BINUS

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI ONLINE JUDGE UNTUK PELATIHAN TIM PEMROGRAMAN BINUS"

Copied!
10
0
0

Teks penuh

(1)

IMPLEMENTASI ONLINE JUDGE

UNTUK PELATIHAN TIM

PEMROGRAMAN BINUS

Felix Jingga

Binus University, Jakarta, DKI Jakarta, Indonesia

dan

Ricky Winata

Binus University, Jakarta, DKI Jakarta, Indonesia

Abstrak

Online judge adalah sistem yang menyediakan soal algoritma dan test data untuk

menguji solusi dari soal algoritma tersebut. Tujuan dari penelitian ini adalah menyediakan sistem online judge dengan user interface berupa website untuk keperluan pelatihan tim pemrograman Binus. M etode yang digunakan adalah metode studi pustaka, metode analisis, dan metode perancangan. Dalam metode analisis dilakukan wawancara dan penyebaran kuesioner untuk mengetahui kebutuhan yang diperlukan dalam sistem

online judge serta uji coba untuk menguji sistem penilaian online judge terhadap

berbagai jenis masukan dan serangan yang berbahaya. M etode perancangan menggunakan unified modelling language untuk merancang sistem yang meliputi sistem

web dan sistem penilaian. Hasil yang didapatkan adalah sistem online judge yang dapat

mengadakan kontes pemrograman dengan sistem penilaian yang mampu menahan berbagai serangan berbahaya terhadap sistem. Simpulan yang diperoleh adalah

(2)

tersedianya sistem online judge yang siap dipakai untuk pelatihan tim pemrograman Binus.

Kata Kunci: online judge, tim pemrograman Binus, website

1. Pendahuluan

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

(3)

pelatihan hanya dapat dilakukan pada waktu tertentu, memerlukan banyak sumber daya manusia dan komputer, dan terdapat faktor kelalaian manusia yang dapat menyebabkan 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.

2. Metodologi

Ruang lingkup skripsi ini adalah merancang dan mengimplementasi sistem online

(4)

Binus yang mendukung bahasa pemrograman GNU C dan GNU C++ serta dijalankan pada sistem operasi linux. Adapun pembahasan yang dilakukan meliputi sebagai berikut:

• Perancangan • Implementasi • Evaluasi

2.1. Perancangan

G ambar 1. Rancangan Sistem Secara Logis

Gambar 1 adalah gambaran logis sistem online judge secara keseluruhan. Awalnya

user membuka website pada web server yang mendukung bahasa pemrograman PHP.

Ketika user mengirim solusi, server memasukkan solusi ke database dan mengirim

notification ke Submission manager melalui XMPP Server, kemudian submission

manager menjadwalkan judge client untuk mulai melakukan proses judging terhadap

solusi yang dikirim. Setelah selesai melakukan proses judging, maka judge client akan mengubah database sesuai dengan hasil judging.

(5)

2.2. Implementasi

Implementasi akan dilakukan pada server dengan sistem operasi Ubuntu 10.10. Selain dibutuhkan server dengan sistem operasi Ubuntu, diperlukan juga apache sebagai

web server dan ejabberd sebagai xmpp server. Bahasa pemrograman PHP, GNU C,

GNU C++, dan database MySQL juga diperlukan untuk menjalankan sistem ini.

2.3. Evaluasi

Evaluasi menggunakan uji coba dan stress testing terhadap sistem. Uji coba dilakukan untuk mengetahui seberapa tahan sistem terhadap berbagai serangan berbahaya. Stress testing bertujuan untuk mengetahui sumber daya yang digunakan oleh sistem.

Uji coba dilakukan dengan mengirim berbagai bentuk solusi kepada sistem online

judge untuk melihat hasil yang dikeluarkan oleh online judge dan untuk mengetahui

seberapa tahan sistem online judge terhadap serangan berbahaya dari luar. Berikut adalah table hasil uji coba sistem:

Tabel 1. Hasil Uji Coba

Nomor uji coba Aspek yang diuji Hasil penilaian sistem

online judge

1 Pengecekan compile error Compile Error

(6)

“/dev/urandom” Exceeded

3 Pembagian dengan nol Run Time Error

4 Infinite loop Time Limit Exceeded

5 M enggunakan memori

berlebihan

Memory Limit Exceeded

6 M engeluarkan output yang

berlebihan

Output Limit Exceeded

7 Algoritma yang salah Wrong Answer

8 M engeluarkan sample

output

Wrong Answer

9 M engeluarkan spasi

berlebih pada solusi yang benar

Presentation Error

10 Algoritma yang benar Accepted

11 Fork bomb Time Limit Exceeded

12 M enghapus file pada sistem Wrong Answer

13 M engeluarkan daftar file

pada sistem

(7)

14 M embuka file test output

yang tersedia pada sistem

online judge

Run Time Error

Stress testing dilakukan dengan mengirim banyak solusi dan mengawas i

penggunaan memori dan CPU yang digunakan oleh Submission manager yang menampung dan melakukan scheduling terhadap submission. Berikut adalah hasil stress

testing:

Tabel 2. Hasil Stress Testing

Jumlah Submission Memori (%) CPU (%) 10 0.6 0.0 100 0.6 0.3 1000 0.6 0.8

3. Kesimpulan

Berdasarkan hasil analisis dan perancangan serta implementasi dan evaluasi, maka dapat diambil simpulan sebagai berikut:

1. Tersedianya sistem online judge yang dapat digunakan untuk keperluan pelatihan tim pemrograman Binus.

(8)

2. Sistem online judge tahan terhadap berbagai serangan yang membahayakan sistem.

3. Sistem online judge dapat digunakan untuk menambah soal algoritma.

4. Sistem online judge dapat digunakan untuk mengadakan kontes pemrograman. 5. Sistem penilaian dapat digunakan untuk melakukan penilaian kebenaran solus i

(9)

Daftar Pustaka

[1] Agarwal, B. B., T ayal, S. P., & Gupta, M. (2010). Software Engineering & Testing. Jones & Bartlett Publisher.

[2] Arefin, A. S., Rahman, M. A., Sharna, S. A., & Mahmud, S. (2005). Secured Programming Contest System with Online and Realtime Judgment Capability.

[3] Booch, G., Rumbaugh, J., & Jacobson, I. (2005). The Unified Modeling Language User

Guide (2nd ed.). Addison-Wesley Professional.

[4] Brucker, P. (2007). Scheduling Algorithm s (5th ed.). Springer.

[5] Connoly, T., & Begg, C. (2005). Database System s : A Practical Approach to Design,

Implem entation, and Managem ent (4th ed.). Addision-Wesley.

[6] Cottet, F., Delacroix, J., Kaiser, C., & Mammeri, Z. (2002). Scheduling in Real-Tim e

System s. John Wiley & Sons, Ltd.

[7] Forišek, M. (2006). Security of Programming Contest Systems.

[8] Gilmore, W. J. (2010). Beginning PHP and MySQL From Novice to Professional. Apress. [9] Goldberg, I., Wagner, D., Thomas, R., & Brewer, E. (1996). A Secure Environment for Untrusted Helper Applications. Sixth USENIX UNIX Security Sym posium . San Jose, California. [10] Kurnia, A., Lim, A., & Cheang, B. (2001). Online Judge. Com puters & Education , 36, 299-315.

[11] Manzoor, S. (2005). Analyzing Programming Contest Statistics. [12] Miles, R., & Hamilton, K. (2006). Learning UML 2.0. O'Reilly Media.

[13] Moffitt, J. (2010). Professional XMPP Programm ing with JavaScript and jQuery. Wiley Publishing, Inc.

[14] Object Management Group. (2009, February 02). UML 2.2 Superstructure. Retrieved January 12, 2012, from Object Management Group (OMG):

http://www.omg.org/spec/UML/2.2/Superstructure/PDF/

[15] Pinedo, M. L. (2008). Scheduling : Theory, Algorithm s, and System s (3rd ed.). Springer. [16] Rainer, R. K., & Cegielski, C. G. (2010). Introduction to Inform ation System s (3rd ed.). John Wiley & Sons, Inc.

[17] Rank of Participants Region 1 ACM Asian Programm ing Contest. (1996). Retrieved January 12, 2012, from http://uweb.txstate.edu/~ch01/rank96ka.htm

(10)

[18] Revilla, M. A., Manzoor, S., & Liu, R. (2008). Competitive Learning in Informatics: T he UVa Online Judge Experience. Olym piads in Inform atics , 2, 131-148.

[19] Rosenberg, D., & Stephens, M. (2007). Use Case Driven Object Modeling with UML :

Theory and Practice. Apress.

[20] Saint-Andre, P., Smith, K., & Tromcon, R. (2009). XMPP : The Definitive Guide. O'Reilly Media.

[21] Shneiderman, B., & Plaisant, C. (2010). Designing The User Interface : Strategies for

Effective Human-Com puter Interaction (5th ed.). Addison-Wesley.

[22] TaiPei 97 Rank. (1997). Retrieved January 12, 2012, from http://uweb.txstate.edu/~ch01/taipei97rank.htm

[23] Welling, L., & T homson, L. (2009). PHP and MySQL Web Developm ent (4th ed.). Pearson Education.

[24] Whitten, J. L., & Bentley, L. D. (2005). System s Analysis & Design Methods (7th ed.). McGraw-Hill.

Gambar

Gambar 1 adalah gambaran logis sistem online judge secara keseluruhan. Awalnya  user membuka website pada web server yang mendukung bahasa pemrograman PHP
Tabel 1. Hasil Uji Coba
Tabel 2. Hasil Stress Testing

Referensi

Dokumen terkait

Karena vektor merupakan matriks kolom, maka kalian dapat menjumlahkan vektor a dan b dengan menggunakan aturan penjumlahan matriks... Secara geometris, penjumlahan antara

a) guru dan siswa bersama-sama menyimpulkan pelajaran. b) Guru melakukan penilaian dengan tes tertulis secara individu. c) Guru memberikan umpan balik dengan memberikan beberapa

Berdasarkan hasil penelitian yang dilakukan oleh peneliti mengenai hubungan antara aktifitas fisik dengan kejadian hipertensi di Wilayah Kerja Puskesmas Bonegunu diperoleh

REPRODUKSI PADA PEKERJA SEKS KOMERSIAL LOKALISASI DOLOG” (Studi Pada Lokalisasi Dolog Desa Sumbersuko Kecamatan Sumbersuko Kabupaten Lumajang) dapat terselesaikan

Pengujian penggunaan Website STTA dalam penelitian ini menggunakan metode quicksort dan dengan metode uji statistik cronbach pada penelitian sebelumnya, memiliki hasil

dasarnya terdapat kemiripan, semuanya bersumber dari nilai-nilai yang dihasilkan budaya suatu daerah yang mana selanjutnya dikembangkan menjadi wujud perupaan dalam

Selanjutnya, Untuk variabel teknis nilai skor total yang dihasilkan sebesar 28, apabila nilai total skor tersebut dibandingkan dengan nilai interval pada