Penyisihan ITB JPC 2013

Hmm, selama 2012 kemaren aku ga pernah posting tentang Programming Contest ya. Karena mulai aktif blogging lagi, aku akan bahas mengenai ITB JPC 2013.

Nggak tau kenapa, ITB JPC diundur hingga ganti tahun (akhir 2012 -> awal 2013). ITB JPC 2011 lalu aku ikutan, nyampe final & dapet kaos.

Tahun ini, aku ngerjain dengan lebih santai karena udah banyak latihan di pelatnas kemaren. Penyisihan kali ini aku dapet 300 dari 500 waktunya 3 jam. Soalnya sampah kali yak, tahun lalu aja skorku nggak nyampe 100 deh. Haha.

Karena finalnya barengan sama pelatnas 2, jadi bisa sedikit latihan persiapan. Walaupun pesertanya banyak yang lebih dewa, tapi boleh lah mimpi bisa menang. 😀

Yang pengen liat soal-soalnya, ini dia :

  1. Lantai 1
  2. Tukang Makan
  3. OEAIOUA
  4. Garis Kotak
  5. Number Grouping

Sorry kalo formatnya plain text. 😀

Kalah ISPO 2012

ISPO = Indonesian Science Project Olympiad. ISPO adalah sebuah kompetisi pameran karya ilmiah tingkat nasional yang diselenggarakan oleh Pasiad Indonesia.

Dulu kelas 10 aku merasa bahwa ISPO itu ga penting dan cuma buang-buang waktu aja. Tapi kelas sebelas ini aku jadi tertarik untuk ikut ISPO karena lagi kurang kerjaan, buat nambah pengalaman juga sih. Sebelumnya belum pernah ikut lomba karya ilmiah soalnya.

Banyak temenku yang tertarik ikut ISPO. Aku pun juga mulai mencari ide buat project. Yang terpenting adalah aku pengen bikin project di bidangku : komputer. Setelah muter-muter ternyata nemu beberapa ide. Dan yang aku pilih adalah : mengembangkan Cloud Computing buatan sendiri. Menurutku itu penting banget saat ini karena sekarang lagi trend “Cloud Computing”. Setelah dapet ide akhirnya dapet partner tim juga.

Persiapan dimulai dengan bikin makalah dan presentasi. Tapi aku sendiri belum cobain sistemnya. Jadi kayak project mimpi gituh. Ternyata bikin makalah karya ilmiah itu susah. Perlu ratusan kali diedit dan itu pun masih terasa belum sempurna. Pada waktu yang ditentukan, dua kali aku dan siswa project lainnya presentasi di depan guru-guru dan General Manager. Feedbacknya lumayan sih, mereka pada tertarik.
Selama liburan semester satu aku ga menyentuh project sama sekali. Januari awal aku mendaftarkan projectku dan setelah itu aku ada Olympiad Camp di KBS Jogja. Seminggu terakhir aku camp, finalis ISPO untuk bertandang ke Jakarta pun diumunkan. Aku lolos. Tapi aku dihadapkan pada dua pilihan penting, ikut ISPO atau ILPC Surabaya (yang tahun kemaren dapet juara 1). Ternyata aku milih ISPO, itung-itung cari hal baru. haha.

Waktu di jogja, aku nyoba sistemku. Ternyata berhasil. Langsung optimis. Setelah aku amati ternyata projectku adalah project komputer satu-satunya dari Pasiad. Tambah optimis.

Waktu balik dari camp langsung disuguhkan dengan kerjaan-kerjaan susah yang harus diselesaikan dalam 3 hari. Bikin brosur, bikin poster, cari modem, cari router, benahin proposal, print sana print sini, dan masibanyaklagi.

Minggu, 19 Februari 2012 aku dan yang lain berangkat ke jakarta (beserta anak-anak Turkish Olympiad). Kami menginap di Kharisma Bangsa. Sempat ada cekcok ama seorang Guru karena kami dipaksa menginap disana sampai ISPO berakhir. Tapi akhirnya kami bisa lepas dari sana dan menginap di YTKI Jakarta. Waktu masih di kharisma bangsa kami sedikit latian dan banyak senang-senang.

ISPO hari pertama.
Kami datang telat di Balairung Universitas Indonesia. Yang lain datang jam 7 tapi kami jam 9 baru sampai, karena perjalanan Pondok Cabe – Depok Macet total. Yang lain udah pada mulai menata stand, namun kami masih masang muka tidur & sarapan dulu. Aku dapat stand di bagian paling belakang, tempatnya sepi. ISPO hari pertama cuma ada satu juri yang datang, dia ambil brosur & tanya-tanya dikit, dia bilang dia akan datang lagi besok & tanya lebih lanjut. Sore pun datang, pameran pun berakhir.

ISPO hari kedua.
Sempat excited karena ini hari terakhir penilaian. Aku muter-muter liat project lain & ternyata bagus-bagus. Pagi-pagi udah ada juri lain yang dateng, tapi standku dilewatin begitu aja karena kebetulan ada tamu. Siangnya lagi juri itu dateng, dia dosen fasilkom. Aku kalah debat. Tapi masih pede aja. Aku nunggu juri-juri lainnya buat balas dendam. Ternyata sampai sore ga ada yang datang padahal aku melihat sosok-sosok mereka, termasuk yang kemaren bilang janji dateng.

Pengumuman
Pengumuman dilaksanakan di TMII Jakarta. Optimist banget karena banyak yang bilang pasti aku dapat medali, minimal perak atau emas. Setelah lama banget nunggu sampai jam tiga, pemenang pun dibacakan. Honorable Mention. Bukan aku (seneng). Perunggu. Bukan aku (seneng). Perak. Bukan aku. Dua project dari sekolahku dapet perak. Saingan terberatku ternyata belum dipanggil. Aku berharap semoga aku yang dapet emas, bukan saingan terberatku. Emas. Bukan aku. Tidaaakkk….

Aku kalah. Sempat shock sesaat. Dan kegalauan berlanjut seminggu selanjutnya. 2 tim dari sekolahku dikirim ke Belanda dan Dreamline International (Ankara) buat kompetisi internasionalnya.

Ternyata nasib bisa berubah hanya dalam hitungan detik. Mulanya optimist bisa ke luar negeri, ternyata detik selanjutnya mimpi itu musnah. Dan ISPO kali ini mempertebal daftar kekalahanku, terutama waktu SMA yang memang udah tebal.

Juara 1 IT Venture 4, 2011

Tanggal 15 dan 17 November lalu, aku bersama dua orang temenku (Yasya’ dan Aushaf) ikut Lomba IT Venture 2011 di Universitas Negeri Sebelas Maret (UNS), Surakarta. Sekolahku mengirim tiga tim, kebetulan tiap angkatan mengirim satu tim. Aku baru tau kalau diikutkan lomba ini sehari sebelum lomba dilaksanakan, ya gitu deh, ga sempat persiapan.

Sampai di UNS, ternyata masih belum ada orang. Kukira malah ga ada peserta yg dateng, jadi aku ama pak sopir muter-muter keluar dulu cari Indomaret buat beli minum, walaupun akhirnya ga nemu. Waktu balik lagi ke UNS, ternyata udah ada puluhan peserta berseragam abu-abu putuh yg dateng. Sial.

Soal penyisihan terdiri dari 100 nomor, gabungan dari bidang matematika, logika, programming, jaringan, hardware, operating system, office dan pengetahuan umum IT. Untuk yg logika, matematika & jaringan kuserahkan pada temen-temenku, sedangkan sebagian lainnya aku yang ngerjain . Walaupun ada pengurangan nilai jika jawaban salah, entah kenapa masih juga mau dijawab semua. Katanya kalau ada yang kosong, ntar nilainya ga maksimal.

Hasil babak penyisihan pun diumumkan siang itu, diambil 10 tim buat maju ke final dan timku peringkat 1, kakak kelasku peringkat 6! Kaget juga bisa ngalahin anak-anak SMK yang tiap hari ngoprek-oprek komputer, ga kayak sekolahku yang pegang komputer aja cuma di LabKom seminggu sekali.

Finalnya dilaksanakan di Solo Grand Mall hari kamis, tanggal 17 November. Aneh ya? Lomba kok di Mall, haha. Babak Final ama babak penyisihan beda jauh, kalo penyisihannya full teori, maka finalnya full praktek. Ada satu hari buat persiapan, dan aku cuma latian Corel draw ama html dikit, sedangkan temen-temenku office, jaringan dan hardware komputer. Babak ini sistemnya Rally Games, jadi tiap bidang disediain satu pos, trus kita lari-lari dari Ground floor sampe lantai 4 buat cari posnya gitu. Walaupun naik turun lantai berkali-kali, tapi ga terlalu capek sih, kan di mall ada elevator ama AC nya, haha.

Babak final selesai abis Ashar, dan kita diminta menunggu hasilnya sambil nonton animasi-animasi 3D yang cukup keren. Waktu peringkat 3 dan peringkat 2 nya dimumkan, aku ga terlalu yakin karena nilaiku pas-pasan. Juara 1 pun diummkan dan nama sekolahku pun dipanggil. Deg-degan, sepertinya kakak-kelasku lebih cocok untuk menang karena lebih sangar & berpengalaman. Tapi ternyata timku yang dipanggil. Seneng banget deh walaupun hadiahnya ga seberapa. 😀

Penyisihan ITB JPC 2011

Kemarin ITBJPC (ITB Junior Programming Competition) dilaksanakan, tapi payah banget karena aku ga bisa ngerjain soalnya. Padahal menurutku soalnya ga terlalu susah, tapi entah kenapa aku stuck terus waktu coding.

Biasanya kalo peserta Programming Contest yang sukses itu posting pembahasan di blog, tapi kali ini aku akan bahas soalnya sebagai orang yang kurang sukses. haha..

Soal Mendaki Gunung Lewati Lembah : Ini adalah soal termudah di problem set tahun ini, tinggal looping dari awal sampai akhir dan cek nilai terendah & tertinggi aja dengan serentetan if-else.

Soal Programmer dan Meeting : Soal ini input range nya gede, jadi ga mungkin diselesaikan dengan manual. Yang diperlukan hanyalah looping setiap meeting dan hitung produktifitas dengan rumus deret aritmatika (inget kan?).

Soal Pelupa : Soal ini sebenarnya cukup mudah, tapi source code ku bisa sampai 150 baris :(. Kalau caraku, aku simpan semua operator di array a, semua angka positif di array b, trus semua angka negatif di array c. Jumlahkan setiap elemen di array a, dan jumlahkan setiap elemen di array b, dan output jumlah a-jumlah b. Di soal udah ada penjelasak kalo hasil bisa aja ga muat di int64, jadi harus pake penjumlahan & pengurangan string.

Soal Bonus Belanja : Karena soal ini input rangenya kecil, jadi cukup di bikin fungsi rekursi aja yang state-nya : nomor toko (idtoko), nomor item (iditem), pembelian yang ke berapa (k), dan sisa uang (sisa); Trus kalo k itu kelipatan tiga, ntar hasilnya ditambah 1.

Soal Maling Motor Lagi : ini soal yang sampai sekarang masih mikir solusinya, harusnya sih di dfs aja, tapi parameternya jumlah belokan. Trus cari gerbang yang jumlah belokannya minimal.

Soal ada disini, tinggal Save Original aja (CTRL+S);

Overall, soalnya mungkin rasanya mudah buat segerombolan anak pelatnas TOKI yang ikut kompetisi ini. Tapi berdoa saja semoga aku lolos :p, amin…

Update : akhirnya saya lolos ke babak final dengan peringkat 2!!!  (dari bawah). Alhamdulillah!

My Journey : OpenOSN 2011 Day 2

Alhamdulillah, itulah kata kesekian yang ku ucapkan ketika kompetisi Open OSN ini berakhir. 5 jam penuh aku duduk di depan komputer dengan sekali ke kamar mandi.

Berikut ini adalah penjelasan dari soal-soal Sesi 3 OSN 2011 :

Soal 1 : Tiang Pemancar
Menurutku soal ini adalah yang paling mudah di Sesi 3 ini, makanya aku kerjakan paling awal. Pertama kali mikir sih memang pusing bener, tapi setelah tau kalo yang paling penting itu Titik sudut siku-sikunya.  Jadi ada inspirasi buat solve cepet.

Setiap titik di koordinat kita looping, trus kita cari berapa banyak yang koordinat X nya sama, anggap aja itu NX dan kita cari berapa banyak yang koordinat Y nya sama, anggap aja itu NY. Dengan satu titik sudut siku-siku itu, bisa kita temukan banyak segitiga siku-siku yang bisa dibentuk dengan (NX-1)*(NY-1). Trus kita jumlah deh di setiap loopnya.. Gampang kan. 😀

My Score : 100 (AC)
My Solution is here. (100) (AC).
Soal 2 : Radar Pesawat
Pertama kali liat, kayaknya ini soal paling sulit di sesi 3 ini, makanya aku cuma nyampah 1 paket testcase. Tapi setelah kontes usai, katanya mas alpan ternyata ini mudah, Special case nya itu kalo ada beberapa pesawat yang T ama V nya sama semua. Kalo semua pesawat T dan V nya berbeda, bisa hanya dengan 1 radar. Kalo semua T dan semua V sama juga gampang tinggal output (N+1)/2 aja. Selebihnya agak rumit. Hahaha.

My Score : 15
My Solution : Coming Soon

Soal 3 : Bebek Istimewa
Soal ini mungkin yang paling mudah kedua. Kalo aku sih tinggal di proses pake Bottom Up DP di matrix boolean (Nkandang*NLangkah) aja, tapi skornya cuma 90. Karena pada paket testcase terakhir, udah pasti Memory Limit karena arraynya berjuta-juta. Cara yang lain yaitu pake Top Down DP, yang kayaknya bisa  AC di paket testcase terakhir. Atau malah bisa pake DFS atau BFS, trus kita telusuri langkahnya.

My Score : 90 (Memory Limit Exceeded)
My Solution is here. (90) (MLE)

Soal 4 : Bongkar Sandi
Sebenarnya soal ini ga terlalu sulit. Cukup output 000000, 111111, …, 999999 trus itung berapa kemunculan angka itu dan cari gimana biar mem-permutasikan secara efisien hingga bisa nebak. Waktu kontes sama sekali nggak kepikiran cara ini & males banget buat mikir. Jadi cuma aku output 00,01,02.. ampe 99 aja (nyampah), lumayan sih bisa dapet nilai 30 :D.

My Score : 90
My Solution : Coming Soon.

Buat yang mau Soal Sesi 3 ini, bisa diliat di sini. Sebentar lagi pasti akan di publish di Toki LC.