Isi Panduan:
Total Halaman (+Cover): 16.
Manual
Book
5
th
NPLC
Instruksi :
Bacalah panduan ini dengan Seksama!
1 5th National Programming and Logic Competition, Universitas Ciputra.
Daftar Isi
1. Penjelasan Umum. ... 3
1.1 Pilihan Ganda (Multiple Choice Question). ... 3
1.2 Uraian (Essay). ... 3
1.3 Pertanyaan Programming (Programming question). ... 3
1.3.1 Problem statement ... 3
1.3.2 Input – output specification ... 3
1.3.3 Input and output example ... 3
1.3.4 Time limit ... 3 2. Penyerahan Jawaban. ... 4 2.1 Pilihan Ganda. ... 4 2.2 Uraian. ... 4 2.3 Pertanyaan Programming ... 4 3. Scoreboard. ... 5 4. Peringkat. ... 5
5. Spesifikasi Software (On-Site). ... 5
6. Petunjuk penggunaan website NPLC ... 6
6.1 Login. ... 6
6.2 Memulai kontes. ... 7
6.2.1 Untuk kontes multiple choice. ... 7
6.2.2 Untuk kontes programming. ... 8
6.2.3 Penyubmitan (Pengumpulan jawaban) ... 9
6.2.4 Melihat hasil dari pengumpulan jawaban pemrograman ... 9
7. Klarifikasi (Mengajukan Pertanyaan Ke Judges). ... 9
8. Format Pengumpulan Jawaban (Khusus untuk Pertanyaan Programming) dan hal yang harus dihindari!. ... 11 8.1 Java. ... 11 8.1.1 Contoh Penulisan: ... 11 8.2 C++. ... 11 8.2.1 Contoh Penulisan... 12 8.3 Pascal. ... 12 8.3.1 Contoh Penulisan: ... 12 9. Penilaian ... 13 9.1 Online Competition : ... 13
9.1.1 Multiple Choice Question (Pilihan Ganda). ... 13
9.1.2 Programming (Pertanyaan programming)... 13
9.2 Onsite Competition:... 13
2 5th National Programming and Logic Competition, Universitas Ciputra.
9.2.2 Programming (Pertanyaan programming)... 13
10. Peraturan Final 4th NPLC (Untuk Onsite Competition). ... 14
11. Hal yang harus diperhatikan. ... 14
3 5th National Programming and Logic Competition, Universitas Ciputra.
1. Penjelasan Umum
Setiap tim harus menyelesaikan soal pilihan ganda (Multiple Choice Question), uraian (Essay),
dan pertanyaan programming (Programming question) yang disediakan dalam waktu yang telah
ditentukan. Setiap tim disediakan beberapa PC untuk menjawab pertanyaan tersebut. Bahasa pemrograman yang digunakan dalam kompetisi ini adalah Java, Pascal, dan C++ namun hanya diberikan sebuah (1) PC untuk mengirimkan jawaban ke server.
Setiap soal terdiri dari maksimal 3 bagian (bisa kurang), yakni :
1.1 Pilihan Ganda (Multiple Choice Question)
Pada bagian ini, setiap tim diminta untuk mengumpulkan (submit) jawaban dari soal pilihan ganda. Tiap – tiap soal pilihan ganda memiliki 5 pilihan dan 1 jawaban yang benar .
1.2 Uraian (Essay)
Pada bagian ini, setiap tim diminta untuk mengumpulkan kertas jawaban kepada pengawas untuk kemudian diteruskan kepada kepada juri (judge).
1.3 Pertanyaan Programming (Programming question)
Terdiri dari Bagian – bagian : 1.3.1 Problem statement
Menjelaskan detail permasalahan yang harus diselesaikan. 1.3.2 Input – output specification
Menjelaskan detail mengenai format input dan output termasuk kriteria / batasan input yang harus dapat di jalankan oleh program.
Catatan :
Program yang telah dikumpulkan (submit) harus sama dengan spesifikasi format output. Terlalu banyak spasi / huruf besar akan menghasilkan wrong answer. Input dan output bersifat
Case-Sensitive
1.3.3 Input and output example
Menjelaskan detail contoh input dan output yang harus dihasilkan program. 1.3.4 Time limit
Menjelaskan batasan maksimum waktu yang diperbolehkan selama program dijalankan dan menghasilkan keluaran yang diinginkan.
4 5th National Programming and Logic Competition, Universitas Ciputra.
2. Penyerahan Jawaban
Setiap tim harus menyerahkan jawaban melalui website NPLC yang telah ditentukan selama kontes berlangsung. Dalam penyerahan jawaban, ada ketentuan sebagai berikut:
2.1 Pilihan Ganda
Setiap pilihan ganda akan dinilai dari jawaban yang dikumpulkan (submit) dari pilihan ganda tersebut. Peserta dapat mengirim jawaban lebih dari satu kali atau melewati(skip) jawaban. Jika peserta mengirimkan jawaban lebih dari satu kali, maka yang diambil (dinilai) adalah
jawaban yang terakhir kali dikumpulkan/submit (dan mendapat pesan sudah tersimpan)
oleh tim yang bersangkutan. Ketika mengisi (atau mereview ulang ) jawaban, mohon diisi ulang
sampai ada tanda bahwa jawaban anda tersimpan.
2.2 Uraian
Jawaban yang dinilai adalah jawaban yang terakhir kali dikumpulkan dan dapat terbaca
(dimengerti) oleh juri. Mohon untuk memperhatikan tulisan & penulisan.
2.3 Pertanyaan Programming
Problem akan dianggap benar bila jawaban tersebut diterima oleh juri dan juri menjawab benar. Untuk menentukan jawaban, para juri akan meng-compile dan menguji problem dengan menggunakan tes input rahasia (hanya diketahui oleh para juri) yang telah disiapkan oleh para juri. Setiap jawaban yang dikirim akan mendapat respon dari juri berupa :
1. Yes – Accepted. Program menghasilkan keluaran/output yang benar, tidak melebihi batasan waktu yang ditentukan, dan tanpa error. Problem ini diterima oleh juri (judges) dan problem dikatakan sudah berhasil diselesaikan.
2. No - Wrong Answer. Program tidak menghasilkan output yang benar.
3. No – Runtime Error. Program crash ketika memproses input yang diberikan judges. 4. No – Time limit exceeded. Program melebihi batas waktu yang ditentukan ketika dijalankan. 5. No – compile error. Source code yang diberikan tidak bisa di - compile .
Catatan :
Akan ada kemungkinan respon lain dari juri (judges) selain dari 5 respon di atas. Bergantung pada situasi yang ditentukan oleh judges.
5 5th National Programming and Logic Competition, Universitas Ciputra.
3. Scoreboard
Papan scoreboard adalah papan penilaian yang menunjukkan ranking tim dari jawaban
pertanyaan programming (Programming question). Hasil penilaian pilihan ganda dan uraian
akan diumumkan beserta pemenang babak penyisihan / final (dan tidak ditampilkan dalam scoreboard).
Jika ada yang mau ditanyakan perihal problem tersebut, setiap tim hanya diperbolehkan untuk bertanya/klarifikasi problem melalui website yang sudah ditentukan. Tidak diperkenankan untuk bertanya kepada tim lain atau panitia lain agar kompetisi berjalan dengan adil, sehat dan tanpa cacat.
4. Peringkat
Peringkat tim didasarkan jumlah problems yang diselesaikan. Jika terdapat tim yang menyelesaikan jumlah problems yang sama, maka tim akan diperingkat berdasarkan waktu tercepat (waktu yang paling sedikit adalah waktu yang paling bagus). Total waktu adalah jumlah dari waktu yang dibutuhkan untuk setiap problem (dalam menit). Waktu yang dibutuhkan untuk menyelesaikan suatu problem adalah waktu dimulainya kontes hingga jawaban diterima oleh penguji ditambah penalti waktu yang telah ditentukan untuk setiap jawaban yang ditolak oleh penguji (respon selain Yes –Accepted).
5. Spesifikasi Software (On-Site)
*Spesifikasi yang diberikan merupakan spesifikasi minimum dari software yang kami sediakan. Tidak menutup kemungkinan software dengan versi lebih baru tersedia.
JDK 8
Eclipse Juno (4.2) SR2 (Java dan c++).
Bloodshed Dev C++ 4.9.9.2
Visual Studio Express 2012
Free Pascal (FPC) 3.0.2 Notepad++ v7.5.1 Turbo C++ v3.2 Netbeans IDE 8.0.1 Firefox 50.0 Chrome 56.0
6 5th National Programming and Logic Competition, Universitas Ciputra.
6. Petunjuk penggunaan website NPLC
6.1 Login
Untuk masuk ke program, klik kotak Username di layar login, masukkan username tim (nama tim) lalu tekan tab atau klik kotak Password dan masukkan password tim. Setelah memasukkan username dan password, klik tombol Login.
Anda sudah berhasil masuk kedalam Dashboard (Main menu) tim anda. Ingat pastikan nama kelompok disebelah Welcome adalah nama tim anda.
7 5th National Programming and Logic Competition, Universitas Ciputra.
6.2 Memulai kontes
Saat waktu sudah menandakan dimulainya kontes, maka muncul kontes seperti berikut :
Jika contest belum dimulai, maka tidak ada contest yang keluar
Note: Jika pada saat contest dimulai, tetapi masih belum menunjukkan contest pada tab available contest, coba hapus offline cache & clear history pada Mozilla / Chrome, dan login ulang. Jika tidak muncul, hubungi support kami.
6.2.1 Untuk kontes multiple choice
8 5th National Programming and Logic Competition, Universitas Ciputra.
Untuk melihat soal, pilih lihat soal, dan akan muncul soal – soal yang harus di jawab
6.2.2 Untuk kontes programming
Untuk mengikuti kontes programming, klik ikut kontes
9 5th National Programming and Logic Competition, Universitas Ciputra.
6.2.3 Penyubmitan (Pengumpulan jawaban)
Untuk kontes multiple choices dapat memilih kirim jawaban, dan akan muncul tampilan seperti berikut
Klik send untuk mengirimkan jawaban yang anda pilih.
Untuk kontes programming dapat memilih kirim jawaban, dan akan muncul tampilan seperti berikut
Pilih nomor soal yang akan anda kirim, dan klik choose file untuk memilih file jawaban, setelah itu klik submit untuk mengirim jawaban.
6.2.4 Melihat hasil dari pengumpulan jawaban pemrograman
Klik jawaban terkirim untuk melihat jawaban yang telah anda kirim, bahasa pemograman yang anda gunakan, runtime dari program tersebut, dan hasil berdasarkan penilaian juri
10 5th National Programming and Logic Competition, Universitas Ciputra.
7. Klarifikasi (Mengajukan Pertanyaan Ke Judges)
Untuk klarifikasi, tim harus mengikuti salah satu tipe kontes (Multiple choice, Essay, atau Programming) yang mengandung soal yang ingin diklarifikasi. Lalu pilih menu pertanyaan di sebelah kiri, kemudian pilih soal yang ingin diklarifikasi dan masukkan pertanyaan disana, setelah itu klik kirim.
Setelah mengirimkan pertanyaan, maka akan muncul Klarifikasi pada bagian bawah. Disana terdapat waktu pengiriman pertanyaan, nomor soal yang ditanyakan, isi pertanyaan, dan jawaban yang diberikan oleh juri berdasarkan pertanyaan. Mohon menjaga sopan santun dan tidak men-spam
11 5th National Programming and Logic Competition, Universitas Ciputra.
8. Format Pengumpulan Jawaban (Khusus untuk Pertanyaan
Programming) dan hal yang harus dihindari!
8.1 Java
Untuk Java kirimkan file .java di source.
Jangan menggunakan Package, karena jika menggunakan package maka program bisa di compile tetapi tidak bisa di run, sehingga akan mendapatkan NO – Runtime Error.
Pastikan nama class utama adalah "class Main", bukan "Public class Main".
Java membaca tipe data long dengan Scanner nextInt(). Ingat, tipe data int hanya bisa menyimpan hingga 231-1. Jika input yang diberikan lebih besar dari itu dan dibaca dengan
Scanner nextInt(), maka Java akan mengeluarkan exception, Runtime Error. 8.1.1 Contoh Penulisan:
(Template dapat didownload dari link yang disediakan).
8.2 C++
Untuk C++ kirimkan file .cpp di source.
Jangan menggunakan void main()
Compiler yang juri gunakan mengharuskan fungsi main() memiliki return value berupa int, sehingga harus ditulis dengan int main().
Jangan menggunakan getch() atau system( “pause” )
Jika maksud dari penggunaan perintah ini adalah menghentikan program pada akhir eksekusi, maka saat submit perintah ini harus dihapus terlebih dahulu. Karena getch() dapat menyebabkan Time Limit Exceed (program akan menunggu user memberi input melalui keyboard, yang tidak akan dilakukan juri) dan system( “pause” ) akan menyebabkan Wrong Answer (ada output tambahan “Press any key to continue . . .” yang tidak diharapkan).
Jangan memanggil fungsi tanpa meng-include header yang diperlukan
Jika anda menggunakan IDE DevC++, maka anda harus berhati-hati karena DevC++ bisa meng-include secara default beberapa header yang diperlukan oleh program anda, tapi tidak demikian jika anda mengcompile dari command line (yang dilakukan juri). Sehingga submission yang seperti ini akan mendapatkan NO – Compile Error.
Jangan menggunakan strrev, fflush(stdin)
Karena juri mengcompile dari command line, maka jika menggunakan perintah ini akan mendapatkan NO-Compile Error.
12 5th National Programming and Logic Competition, Universitas Ciputra.
C/C++, konstanta yang terlalu besar
Di C/C++ jika kita ingin menuliskan suatu konstanta yang melebihi batas int, kita harus menambahkan “LL” di akhir angka tersebut. Contoh: 1000000000000000000LL. Jika LL tidak ada, maka konstanta itu akan dianggap integer dan nilainya berubah (itu sebabnya compiler akan memberikan warning).
8.2.1 Contoh Penulisan
(Template dapat didownload dari link yang disediakan).
8.3 Pascal
1. Untuk pascal kirimkan file .pas di source. 2. Dilarang menggunakan clrscr;
3. int main harus return 0
4. Jangan menggunakan readln / readkey (atau sejenisnya)
Jika maksud dari penggunaan perintah ini adalah menghentikan program pada akhir eksekusi, maka saat submit perintah ini harus dihapus terlebih dahulu. Karena akan menghasilkan Time Limit Exceed (program akan menunggu user memberi input melalui keyboard, yang tidak akan dilakukan juri).
8.3.1 Contoh Penulisan:
13 5th National Programming and Logic Competition, Universitas Ciputra.
9. Penilaian
Dalam kompetisi ini, pemenang ditentukan oleh total skor akhir. Jika didapat ada lebih dari 1 tim yang mendapatkan skor akhir yang sama, maka akan dilakukan “tie breaker” dimana ditentukan oleh 2 parameter :
Jumlah soal programming yang di AC (Accepted)
Total waktu pengerjaan soal programming. Total waktu pengerjaan ini termasuk total waktu penalty
Untuk babak penyisihan (Online Competition), juri hanya menerima penilaian berdasarkan jawaban yang di server. Juri tidak bertanggung jawab apabila peserta mengalami gangguan teknis sehingga menyebabkan jawaban tidak tersimpan di server dengan benar.
9.1 Online Competition :
9.1.1 Multiple Choice Question (Pilihan Ganda) 1. Benar: @ pertanyaan 60.
2. Salah: @ pertanyaan -20. 3. Kosong: @ pertanyaan 0.
9.1.2 Programming (Pertanyaan programming) 1. Benar: @ pertanyaan 750.
2. Salah / kosong: 0.
3. Setiap kali salah penalti 20 menit. (Tidak mempengaruhi skor).
9.2 Onsite Competition:
9.2.1 Essay (Uraian)
Akan diumumkan lebih lanjut.
9.2.2 Programming (Pertanyaan programming) Akan diumumkan lebih lanjut.
14 5th National Programming and Logic Competition, Universitas Ciputra.
10. Peraturan Final 5
thNPLC (Untuk Onsite Competition)
1. Tidak diperbolehkan membawa barang elektronik dalam bentuk apapun (handphone, kamus elektronik, disket, flash disk, kalkulator, dll). Peserta bisa menitipkan tas dan barang-barangnya di ruangan kontes.
2. Peserta diperbolehkan membawa alat-alat tulis (pulpen, pensil, penggaris, busur, jangka, dll), kecuali kertas kosong.
3. Setiap tim akan disediakan kertas kosong (untuk coretan) oleh panitia. 4. Setiap tim diperbolehkan membawa referensi tercetak dengan ketentuan:
a. Tidak lebih dari 20 halaman, single-sided, ukuran letter/quarto atau A4, dengan nomor halaman dicantumkan di sudut kanan atas dan nama sekolah dicantumkan di sudut kiri atas.
b. Teks dan ilustrasi harus bisa dibaca oleh orang dengan penglihatan normal tanpa pembesaran dari jarak 0.5 meter.
c. Materi referensi boleh diperbanyak maksimal menjadi 3 buah dengan isi yang sama. 5. Setiap tim menggunakan 2 PC / laptop yang telah di sediakan oleh pihak NPLC untuk
mengerjakan soal – soal yang diberikan.
6. Semua hasil lomba bersifat FINAL dan tidak dapat diganggu gugat.
11. Hal yang harus diperhatikan
Hanya kumpulkan file dengan format yang diterima (.java / .pas / .cpp). Selain itu bisa dipastikan jawaban anda tidak akan diterima.
Kumpulkanlah jawaban TIDAK dekat dengan waktu closing, karena jika ada keterlambatan pengumpulan dikarenakan alasan apapun, hal tersebut diluar tanggung jawab pihak NPLC. Selama babak penyisihan berlangsung, dimohon tim tidak mengajukan pertanyaan-pertanyaan (klarifikasi) yang “aneh” dari peserta:
“Kenapa runtime error?” atau “salah dimana?” atau “input yang dijudge apa?”
Respon yang hanya bisa diberikan juri untuk setiap submission hanya YES atau NO beserta statusnya. Juri tidak akan memberitahukan letak kesalahan dari program peserta. Penjurian dilakukan secara black box, submission dari peserta di compile, dan kemudian dijalankan dengan input yang sudah disiapkan. Juri sama sekali tidak membaca source code yang dikirimkan dalam menentukan respon yang harus diberikan. Setelah respon diberikan memang kadang-kadang juri membuka source code untuk melihat apa kesalahan code tersebut, namun apa yang juri temukan tidak akan diberitahukan kepada tim yang bersangkutan.
…code…
Soal kontes original semua, tidak bisa digoogling.
“Kenapa di scoreboard sudah ada submission di menit ke-x yang sudah digrade tapi submission kami di menit ke-y (y < x) belum digrade?"
Yang ini bukan pertanyaan aneh, bisa dimaklumi. Yang melakukan penjurian (tentu) lebih dari satu orang. Submission peserta akan diperiksa berdasarkan siapa yang submit duluan, tapi lama proses pemeriksaan bisa berbeda-beda tergantung dari juri dan code yang diperiksa. Jadi ada kemungkinan submission yang lebih telat mendapat respon lebih cepat karena submission yang lebih cepat tadi masih diperiksa, namun perbedaan waktunya seharusnya tidak signifikan.
15 5th National Programming and Logic Competition, Universitas Ciputra.
12. Tips
Perhatikan penggunaan syntax seperti print vs println, read vs readln, dan lain sebagainya. Hal ini akan sangat mempengaruhi jawaban anda.
Jangan lupa untk menuliskan “import” atas semua class yang anda gunakan di file Java anda.
Hapus tulisan “package” di file Java anda.
class untuk menulis PSVM (java) tidak boleh public (caranya dengan menghapus public).
Nama class untuk menulis PSVM di Java harus Main.
Input dan output bersifat case-sensitive. Jadi kalau ada perbedaan satu karakter saja akan mengakibatkan jawaban anda tidak diterima. Penambahan spasi, enter, atau karakter lain di luar yang diminta di problem juga mengakibatkan jawaban anda tidak diterima.
Untuk melihat problem mana yang lebih mudah, anda bisa melihat problem mana yang lebih dahulu diselesaikan oleh tim lain melalui scoreboard agar anda tidak menghabiskan waktu yang berlebihan di sebuah problem.
Saat submit jawaban jangan lupa untuk menyamakan bahasa yang dipakai dengan file yang dikirim
Agar lebih aman, gunakanlah template yang telah disediakan (terdapat di web penyisihan nplc), anda tinggal mengubahnya sesuai kebutuhan.
Jika ingin berpindah dari kontes multiple choice ke kontes programming ataupun sebaliknya, disarankan untuk logout terlebih dahulu dan kemudian memilih kembali kontes yang anda inginkan.