Senin, 21 Oktober 2019

Akhir Perjalanan


Kilas Balik

Saya yang duduk di kelas 10 SMA bertemu dengan olimpiade sains bidang komputer. Berhasil meraih medali perunggu di tingkat nasional membawa saya menuju Pemusatan Latihan Nasional (Pelatnas) Pelatnas terdiri dari 4 tahap pelatihan sekaligus seleksi untuk memilih siswa-siswi yang akan mewakili Indonesia di Internasional Olympiad in Informatics (IOI). Perjuangan saya di Pelatnas tidak berlangsung lama, saya gugur di tahap pertama. Namun baru memasuki jenjang kelas 11 saat itu, saya masih punya sekali kesempatan untuk mengikuti olimpiade sains SMA.

Sejak Pelatnas tahap 1 berakhir, saya kembali menjalani kehidupan sekolah. Ada banyak tugas sekolah yang harus saya kerjakan serta ujian semester yang harus saya hadapi. Setelah menyelesaikan semua susulan, saya baru dapat melanjutkan latihan olimpiade. Buku Competitive Programming karya Steven Halim menjadi buku pegangan saya untuk belajar.

OSK

Olimpiade Sains Kota/Kabupaten (OSK) tahun 2015 tingkat SMA diadakan pada bulan Februari, lebih awal daripada tahun sebelumnya untuk menyesuaikan jadwal dengan tingkat SMP dan SD. Saya cukup beruntung diberi kesempatan untuk berpartisipasi dalam OSK 2015 tanpa seleksi tingkat sekolah karena pernah lolos ke tingkat nasional. Tentunya karena saya menjadi juara 1 OSK 2014, saya sangat optimis dan hanya memikirkan target emas di Olimpiade Sains Nasional (OSN) 2015.

Februari adalah waktu yang begitu dekat, beberapa minggu setelah kegiatan belajar sekolah dimulai, seleksi dan pelatihan sekolah untuk OSK segera dimulai. Berbeda dari tahun sebelumnya, kali ini peserta pelatihan mendapatkan makan siang dari sekolah. Selain itu, pelatihan juga diselingi dengan rekreasi berupa jalan-jalan mengunjungi kebun. Selama pelatihan kali ini, saya lebih fokus memperdalam pemrograman dan mengerjakan beberapa soal-soal OSK.

Hari pelaksanaan OSK pun tiba. Kali ini OSK dilaksanakan di SMAN 8 Pontianak. Perubahan tempat pelaksanaan ini tidak mengubah rasa percaya diri saya untuk kembali mengulang prestasi saya pada OSK 2014. Dalam mengerjakan soal-soalnya, saya mengerjakannya dengan cara yang biasa saya lakukan yaitu menuliskan jawaban pada kertas buram terlebih dahulu lalu menuliskan ke lembar jawaban 15 menit sebelum waktu habis. Kali ini, saya lebih berhati-hati dalam mengerjakan karena posisi tempat duduk yang berdekatan antar peserta.

Setelah mengerjakan, saya dan teman-teman sekolah saya berkumpul untuk mendiskusikan jawaban masing-masing. Saya merasa bahwa saya akan mendapatkan hasil yang tidak terlalu baik karena lebih berhati-hati dalam mengerjakan soal telah mempengaruhi kecepatan kerja saya. Soal-soal pemrograman yang lebih saya fokuskan juga sangat mudah dibanding tahun sebelumnya sehingga dapat dengan mudah dijawab para peserta lain.

Perasaan buruk saya terbukti setelah hasil OSK diumumkan, saya meraih peringkat ketiga dengan nilai yang sama dengan seorang peserta lainnya. Hasil OSK ini membuat saya kembali sadar bahwa tentunya setiap siswa-siswi juga berjuang untuk tingkat kota maupun provinsi, saya belum pasti lolos ke nasional hanya karena sudah mengikuti Pelatnas. Namun, saya sangat bersyukur masih mendapat kesempatan bertanding di provinsi.

OSP

Karena waktu pengumuman OSK dan waktu pelaksanaan Olimpiade Sains Provinsi (OSP) yang berdekatan, pelatihan untuk OSP pun segera dimulai. Tidak ingin mengulangi kesalahan yang sama, saya lebih memperdalam materi-materi untuk seleksi tingkat provinsi daripada mempersiapkan diri untuk meraih medali emas di OSN. Saya juga terbantu dalam belajar karena adanya situs kujawab.com yang berisi soal-soal dengan jawaban dari berbagai orang.

Hari demi hari, soal demi soal, tidak terasa saya sudah duduk di bangku peserta untuk mengerjakan soal OSP. Pada OSP tahun ini, terdapat beberapa soal jenis baru yaitu menuliskan program/ide penyelesaian untuk suatu permasalahan (seperti soal pada tingkat nasional), saya sendiri tidak dapat mengerjakan salah satu soal yang penyelesaiannya menggunakan prinsip sarang merpati (Pigeon Hole Principle) meskipun soal ini muncul dalam Pelatnas yang saya ikuti.

Selesai mengerjakan soal OSP, saya dan teman-teman seperti biasa berkumpul untuk mendiskusikan beberapa soal dan jawaban. Ternyata saya tidak teliti dalam menghitung hasil akhir di beberapa soal, saya menjadi cukup tegang menunggu hasil OSP. Sambil menunggu pengumuman, saya melanjutkan latihan untuk tingkat nasional dengan mengerjakan soal-soal tingkat nasional tahun-tahun sebelumnya.

Selanjutnya pada suatu sore hari yang cerah, isu keluarnya pengumuman hasil OSP mulai bermunculan di Facebook. Saya lalu menemukan sebuah surat softcopy yang mengundang siswa-siswi untuk berpartisipasi pada OSN tahun 2015 yang akan diselenggarakan di Jogja. Nama-nama yang tercantum pada surat tersebut telah lolos OSP dan saya menemukan nama saya di situ! Saya senang sekali dapat lolos. Meskipun kali ini hanya saya sendiri untuk bidang komputer dari Kalimantan Barat, saya ingin memberikan hasil terbaik.

OSN

Seperti sebelumnya, ada Pelatihan Jarak Jauh (PJJ) yang disediakan Tim Olimpiade Komputer Indonesia (TOKI) untuk para peserta OSN komputer. PJJ berbentuk pengerjaan 6 bab training gate yang diawasi seorang supervisor. Berbeda dengan tahun sebelumnya, kali ini saya mengetahui siapa supervisor saya, dia adalah Alva Thomson.

Meskipun sudah menyelesaikan 6 bab training gate, saya tetap mengerjakannya saat PJJ sebagai latihan. Rangkaian PJJ juga meliputi tryout yang dilaksanakan sebanyak 2 kali. Nilai tryout pertama saya tidak terlalu bagus dan bahkan buruk untuk tryout ke-2. Saya juga sempat mengerjakan open Asia-Pacific Informatics Olympiad (APIO) dan juga mendapat hasil yang buruk. Saya menjadi tidak yakin bisa mendapat emas di OSN.

Siap tidak siap, akhirnya OSN pun akan dimulai. Dengan mengenakan batik kuning, tim dari Kalimantan Barat berangkat untuk OSN melalui penerbangan menuju Jakarta kemudian Jogja. Dalam perjalanan, saya membaca buku Competitive Programming agar tidak lupa dengan konsep yang telah dipelajari.

Hari 1

Rangkaian acara OSN diadakan dalam waktu 1 minggu dengan waktu kompetisi umumnya 2-3 hari untuk setiap bidang. Tim dari Kalimantan Barat tiba pada siang hari, berbeda dengan tahun sebelumnya dimana kami tiba di malam hari. Setibanya, kami segera dimobilisasi ke hotel berdasarkan bidang yang kami ikuti. Peserta OSN bidang komputer menginap di Hotel Sahid Rich bersama beberapa bidang lain.

Setelah registrasi, kami diberikan tas, kaos serta beberapa souvenir OSN. Sempat terjadi sedikit masalah dalam pembagian kamar, namun pada akhirnya saya sekamar dengan Andreas dari SMAK 3 Penabur Jakarta.

Hari 2

Mungkin karena sudah mengetahui rangkaian acara dan sangat tidak sabar untuk berkompetisi, pembukaan yang dilaksanakan pada hari kedua ini tidak begitu meriah buat saya dibandingkan tahun sebelumnya.

Untuk bidang komputer, hari ke-2 adalah hari pelaksanaan sesi 0 atau practice session. Sesi ini dimanfaatkan peserta untuk mencoba environment (komputer, software, internet, sistem, dsb) yang akan digunakan untuk OSN nantinya. Kontes OSN Komputer sendiri dilaksanakan di Universitas Islam Indonesia (UII). Saat itu komputer yang digunakan para peserta adalah komputer dengan layar datar dan touchscreen, tentu saya sangat penasaran dan antusias menggunakan komputer seperti itu. Saya pun mengerjakan 3 soal yang diberikan dan mencoba-coba sistem. Trivia: karena sempat terjadi kesalahan teknis, saya sempat menyelesaikan ketiga soal tersebut dengan 1 source code.

Hari 3

Inilah hari dimulainya sesi 1 kompetisi, para peserta diberikan 3 soal untuk dikerjakan selama 5 jam dengan poin maksimal 100 untuk setiap soalnya. Seketika kontes dimulai, saya membaca soal ketiga terlebih dahulu karena judulnya yang cukup menarik yaitu “Bisa Jadi Tebak Angka”. Setelah memahami soal dan karena soal bertipe interaktif, saya langsung koding tanpa analisis kompleksitas dan mendapatkan nilai 26. Saya baru mulai berpikir bahwa ternyata soal ini cukup sulit, lalu melirik soal lain terlebih dahulu.

Setelah membaca soal pertama dan kedua, saya memutuskan untuk mengerjakan soal pertama. Saya cukup yakin bahwa soal pertama adalah soal paling mudah dari ketiga soal, saya lalu menggunakan greedy untuk menyelesaikannya. Hasilnya adalah Wrong Answer, saya mendapat 34 poin meskipun saya yakin bahwa greedy saya benar.

Kesalahan saya adalah saya tidak cast variabel ke double terlebih dahulu sehingga salah ketika melakukan pembagian. Namun saat OSN saya tidak mengetahui kesalahan saya dan akhirnya mengganti sedikit implementasinya yang melakukan perhitungan secara matematis menjadi menggunakan binary search. Setelah mengubahnya, saya berhasil mendapatkan Accepted  (100 poin), kemudian saya lanjut ke soal kedua tanpa memikirkan kesalahan saya sebelumnya.

Saya tidak mengetahui solusi untuk mendapatkan Accepted pada soal kedua, sehingga saya pindah lagi ke soal ketiga. Saya lalu mengerjakan soal ketiga dengan approach yang cukup memaksa namun berhasil mendapatkan 47 poin. Setelah tidak lagi memiliki ide penyelesaian, akhirnya saya bruteforce soal kedua dan mendapatkan 55 poin. 202 menjadi total nilai yang saya peroleh pada sesi 1.

Setelah kontes berakhir, saya lalu melihat scoreboard 4 jam pertama sesi 1 dan ternyata saya berada di posisi ketiga, posisi yang cukup aman namun cukup bahaya juga bila menargetkan emas. Saya cukup puas dengan hasil saya karena berdasarkan hasil tryout saya tidak menyangka dapat berada di posisi ketiga sekarang. Trivia: ternyata ada live commentary OSN bidang komputer di Facebook (https://www.facebook.com/josua.mustiko/posts/10200506457781433 bisa diakses jika berteman dengan Josua) selama kontes berlangsung

Hari 4

Untuk kontes pada sesi 2 ini, saya mulai membaca soal secara urut. Setelah membaca soal pertama, saya merasa sepertinya soal ini cukup sulit dan lanjut membaca soal kedua. Sangat terlihat bahwa soal ini bisa diselesaikan dengan greedy. Setelah mencoret-coret di kertas buram, saya lalu mulai koding dan berhasil mendapatkan 70 poin. Saya segera mencari bug pada kode saya lalu mendapatkan Accepted setelah mengganti tipe variabel. “Awal yang bagus”, kata saya dalam hati.
Saya lalu lanjut membaca soal ketiga. Melihat soal ketiga berinteraksi dengan string dan merasa bahwa kodenya akan panjang, akhirnya saya memutuskan kembali kepada soal pertama terlebih dahulu. Saya tidak menemukan solusi untuk memperoleh Accepted untuk soal pertama. Namun saya melihat bahwa 72 poin dapat diperoleh dengan bruteforce, saya lalu bruteforce soal pertama dan memperoleh 72 poin.

Saya kembali ke soal ketiga meskipun belum mendapat solusinya. Saya lalu mencoba memainkan game yang tersedia pada soal tersebut dan berhasil menemukan ide solusi. Karena saya belum terlalu jago dalam analisis kompleksitas, saya mengerjakannya dengan cara terbaik yang saya dapatkan dengan pikiran “Kayaknya sih AC (Accepted)”. Saya berhasil memperoleh 94 poin dengan cara tersebut, dan Accepted setelah menambahkan kasus khusus untuk subtask pertama.

Sisa waktu saya habiskan dengan memikirkan solusi untuk mendapatkan Accepted pada soal pertama. Akhirnya setelah berpikir cukup lama, saya memiliki ide yang sepertinya benar namun sepertinya akan panjang dan banyak bug. Akhirnya soal pertama tidak berhasil saya selesaikan karena waktu sudah tidak cukup.

Saya berhasil memperoleh total nilai 474 dari sesi 1 dan 2. Saya menempati posisi kedua pada scoreboard gabungan 4 jam pertama sesi 1 dan 2. Tentu karena penasaran, saya dan beberapa peserta lain saling bertanya nilai satu sama lain dan akhirnya saya cukup yakin bahwa saya tetap berada di posisi kedua di hasil akhir meskipun nilai saya cukup jauh dari peringkat pertama yang full score (600).

Hari 5

Hari ini merupakan hari ‘libur’ dimana para peserta OSN akan diajak jalan-jalan di tempat wisata Jogja. Seperti sebelumnya untuk lebih menikmati wisata, saya bersama guru dan teman sekolah berwisata terpisah dari rombongan peserta lainnya. Wisata kami diisi dengan mengunjungi Candi Borobudur, Goa Pindul, hingga membeli bakpia yang masih Rp25.000,-/kotak. (saat kisah ini ditulis harga sekitar Rp45.000,-/kotak)

Hari 6

Penutupan sekaligus pengumuman hasil OSN yang merupakan momen yang ditunggu semua peserta. Entah karena musik yang kurang meriah atau scoreboard 4 jam pertama OSN, saya dan sebagian peserta bidang komputer merasa cukup tenang saat menanti pengumuman.

Nama medalis dibacakan mulai dari perunggu, perak, kemudian emas. Dengan lajunya penyebaran informasi, nama-nama medalis yang dibacakan sudah langsung dapat diketahui melalui berbagai media sosial (saya termasuk salah satu live reporter saat itu). Setelah nama-nama medalis perunggu maupun perak dibacakan, saya bernafas lega karena tidak mendengar nama saya.

Muncullah nama saya saat pembacaan peraih medali emas, saya pun segera maju ke panggung setelah mendengar nama saya. Pak Anies (selaku Mendikbud saat itu) kemudian mengalungkan medali emas di leher saya. Saya begitu bangga dan senang karena tujuan saya telah tercapai.
Saat nama saya dipanggil

Tim Olimpiade Santu Petrus

Selesai acara, para medalis kemudian diantar menuju studio MetroTV untuk menjadi penonton langsung acara Mata Najwa. Karena studio kepenuhan, saya bersama teman-teman dan guru-guru sekolah pun pergi meninggalkan studio dan makan di restoran Jejamuran yang unik karena menunya berbahan pokok jamur.

Hari 7

Selesainya rangkaian kegiatan OSN, kontingen setiap provinsi pulang pada hari ini.
———
Penutup

Setelah mendapat medali pada OSN, para medalis bidang komputer akan melalui tahapan-tahapan pelatihan dan seleksi untuk mewakili Indonesia di Internasional Olympiad in Informatics (IOI). Saya berhasil lolos melalui tahap 1 dan 2 kemudian mewakili Indonesia dalam National Olympiad in Informatics (NOI) Singapore 2019 dan Asia-Pacific Informatics Olympiad (APIO) namun saya tidak berhasil terpilih menjadi wakil Indonesia untuk IOI.

Pencapaian selama 3 tahun

Akhir kata, begitulah kisah perjalanan saya dalam olimpiade informatika SMA. Semoga pengalaman saya ini dapat bermanfaat bagi pembaca khususnya yang masih duduk di bangku sekolah. Ada banyak sekali kesempatan, hanya tergantung kita yang mau berjuang untuk mengambil kesempatan itu. Manfaatkan waktu yang ada dan mengutip dari semboyan sekolah saya, Tetap bersemangat!

Kamis, 16 Juli 2015

Pelatnas 1 TOKI 2015


Yakkkk setelah osn, ada yang namanya pelatnas alias pemusatan latihan nasional yang terbagi atas 4 tahap. Tahap pertama ini, pesertanya adalah medalis OSN 2014 dan beberapa veteran. Karena saya berhasil meraih perunggu di osn 2014 saya juga diundang. Surat undangan pelatnas ini bagaikan berkah luar biasa ketika datang ke sekolah karena saya sudah sangat bosan bersekolah.

Sebelum pelatnas ini sendiri, ada PJJ pelatnas yang saya telat 1 minggu karena emailnya masuk spam. Ternyata soal pjj pelatnas sangat susah. Saya hanya mengerjakan beberapa soal yang masih dalam jangkauan level saya, dan beberapa soal yang pernah saya lihat. Saya lebih fokus mempelajari C++ karena pelatnas kali ini wajib menggunakan C++ sementara saya belum pernah belajar C++. Sebelum pelatnas, sudah tidak ada masa pelatihan dari sekolah. ‘Nanti di sana belajar dulu, tidak langsung tes’ kata guru sekolah saya. Saya mengira..yahh mungkin soal pjj kemarin diambil dari soal-soal final pelatnas jadi susah, mungkin nanti waktu pelatnas, soalnya bisa dikerjakan asal mengikuti penjelasan dengan baik.

I’ve never been so wrong in my life. Kenapa? Yah..waktu pelatnas telah tiba, saya pun berangkat ke bandung via pesawat dan dijemput oleh sepupu saya yang berkuliah di bandung. Sialnya dalam perjalanan ini botol minum saya hilang ketika turun pesawat. Kemudian saya berangkat menuju lotus hotel yang dijadikan tempat penginapan peserta pelatnas toki kali ini. Setiap kamar berdua, dan saya sekamar dengan om Turfa (jangan salah, ini peserta juga).

Malam pertama ini..ambigu ya malam pertama. Waktu malam dari hari pertama pelatnas adalah sesi perkenalan peserta, asisten, pembina, pengurus, sistem penilaian, jadwal, dan sebagainya. Keesokkan harinya diadakan pembukaan pelatnas di wisma kartini. Kemudian dari wisma kartini menuju ke ITB, hari ini ada beberapa sesi kelas, penjelasan, dan lain-lain. Oh iya pelatnas kali ini peserta disuruh membawa laptop sendiri, saya jadi berhasil membeli laptop baru wahahaha. Karena dengan laptop masing-masing kami diberi tempat koding yang nyaman, ruang terbuka, bukan dalam lab yang tertutup.

Pengarahan di malam hari pertama


Tempat latihan, foto by xing xing

Kehidupan pelatnas ini cukup sederhana, tiap pagi di hotel mempersiapkan diri untuk berangkat ke ITB (kalau nggak salah jam 7an kumpul semua di lobby biasanya). Nah ada 3 angkot untuk membawa kami ke ITB ( ini pertama kali saya naik angkot, di pontianak jarang yang naik angkot). Di ITB biasanya ada sesi kelas, kemudian sesi latihan yang sesuai dengan materi kelas. Di sinilah kesalahan saya, beberapa materi mungkin tidak asing dan penjelasannya masih dapat saya pahami. Tetapi soal latihan yang diberikan sungguh sulit bagi saya. Setiap harinya saya biasanya hanya AC 1-2 dari 4 soal, itupun setelah dijelaskan solusinya oleh yang AC duluan. Kemampuan koding saya sungguh masih kurang, saya bahkan sempat menanyakan ‘apa itu pair?’ kepada pembina.

Saya mempelajari banyak hal baru di pelatnas, terlalu banyak, tidak mampu saya terima semua. Dalam segi materi sendiri masih banyak yang baru bagi saya, atau yang saya belum bisa. Seperti graf, DP, DnC, geometri, dan sebagainya. Sementara dari segi koding C++, saya mempelajari struct, pair, STL sort, vector, STL queue, STL stack, dan sebagainya.

Saya menyadari perbedaan kemampuan yang jauh antara saya dengan peserta lain, meskipun saya juga berhasil meraih medali dalam kontes OSN yang sama, tetapi mereka sangat jago dibandingkan saya. Hal yang sangat mengesankan adalah ketika Pak Rully (salah satu dosen pembina) memberikan soal SPOJ di kelasnya, yang bagi saya sangat sulit, beberapa peserta hanya perlu beberapa menit untuk AC, dan mendiskusikan timenya. Saya sungguh kagum, karena mereka tidak perlu waktu yang lama untuk coding, debug dan mengejar solusi AC dengan time terbaik. Sungguh berbeda dengan saya, saya sama sekali tidak memiliki solusi untuk soal yang diberikan.

Kemungkinan saya bisa lolos pelatnas 1 ini sangat kecil, nilai latihan, kuis maupun simulasi saya sangat jelek dibandingkan peserta lain. Hal-hal yang terjadi selama pelatnas ini adalah (yang saya ingat) :

  • Setiap hari biasanya ada latihan dengan waktu yang cukup lama dari seusai kelas (biasanya jam 10an-11an) hingga jam 5 sore..apa jam 6 ya saya lupa.. diselangi istirahat dari jam 12 hingga jam 1 dengan makan siang.
  • Makan siang, snack pagi, snack sore, dan makan apapun ada beberapa aturan. Buanglah sampah pada tempatnya (ini normal banget), dan ada piring dewa. Piring dewa ini benar-benar dewa yang bisa menyelamatkan orang, piring dewa adalah tempat menyimpan makanan yang tidak diinginkan yang kemudian dapat dimakan oleh yang berminat, piring ini beberapa kali membantu saya karena saya tidak kuat makan pedas. Ada juga permen dan kopi serta milo yang boleh diambil, tetapi stock terbatas dan terkadang terjadi perebutan.
  • Sarapan dan makan malam dilakukan di lotus hotel. Sarapan cukup biasa tetapi makan malam selalu enak..entah karena lapar atau stress. Kadang-kadang juga ada snack malam di hotel, biasanya siomay yang kalau telat keburu habis. Pernah juga diberi 2 bungkus snack ukuran besar tiap orangnya, dan kadang-kadang ada ultra milk.
  •  Ini pertama kalinya saya menggunakan laundry, jadi setiap hari apa gitu biasanya diadakan pengumpulan laundry dan setelah laundrynya selesai biasanya kantong plastiknya diperebutkan untuk laundry selanjutnya.
  • Saya biasanya singgah ke kamar josua dan ragil, bukan singgah sih..ngerumpi. Kamar josua dan ragil ini sudah seolah tempat perkumpulan kamar 1 lorong ini. Kamar-kamar ini terpisah 3 lokasi jadi 1 lokasi dengan lokasi lainnya rada ngansos.
  • Saya mendapatkan game seperti cookie-clicker dan acakata yang biasa dimainkan sewaktu istirahat atau stress ngoding latihan atau bagi yang imba(jago) setelah full-score latihan. Sementara di malam hari kadang DOTA dan juga CS.
  • Ada psikotest yang diikuti semua peserta, lama banget dan sepertinya peserta lain cukup mudah mengerjakannya, tidak seperti saya. (Dan memang terbukti dengan hasil psikotestnya).
  • BIT(Binary Indexed Tree) adalah materi yang sangat membuat saya tertarik, dan saya berhasil AC 1 soal simulasi terakhir dengan BIT.
  • Wynne berulangtahun, dirayakan dengan domino pizza yang banyak.
  • Saya berkenalan dengan seorang makhluk bernama Yusuf atau dipanggil Ucup, yang banyak sekali aibnya jika saya buka semua bisa 2 paragraf. Tapi Yusuf ini banyak membantu saya dalam belajar.
  • Ada kejadian ‘toki weak’ yang saya gatau detailnya, sepertinya hack wifi.
  • Adanya kejadian angkot mogok (untung bukan angkot yang saya naiki), jadi 1 angkot tiba di ITBnya telat dan mentrigger kejadian yang tidak terlupakan.
  • Hari minggu adalah hari yang lain dari hari normal.. hari minggu pertama bebas, dan saya habiskan hanya dengan di hotel, saya telat sarapan jadi saya mesan mcD . Hari minggu kedua, jalan pagi sehat kemudian bermain sekaligus olahraga. Hari minggu ketiga jalan-jalan ke gunung tangkuban perahu, dilanjutkan ke deRanch yaitu tempat berkuda dan beberapa macam arena rekreasi lain seperti memanah, masuk dalam bola di atas air, ada sepeda squidward juga, lalu ada yang kayak trampolin gitu tapi ini kita dilontarin ke atas tinggi banget, pingin banget nyoba tapi ada batas berat katanya.. 
Di Tangkuban Perahu


 Saya sedang memanah, foto by Cenna
  • Sementara minggu keempat adalah hari kepulangan, ada yang pulang senin juga sih..dan ada event pasar seni ITB yang membuat macet luar biasa sehingga saya ketinggalan pesawat :’( . Saya tekor hampir 1 juta karena ini.. dan menyebabkan saya harus pulang di hari selasa. Semua peserta pelatnas di lotus hotel termasuk pengurus-pengurus pelatnas maksimal senin pulangnya, jadi saya dapat kamar baru yang untungnya tak perlu saya bayar lagi. Ini sedih banget hari senin setelah pada pulang , saya cuman main laptop, nonton tv dan makan mcD di kamar sendiri.
  • Pernah juga ice skating (di PVJ kalau ngga salah) setelah kuis atau simulasi..saya lupa, dan ini pertama kalinya saya ice skating, buset susah banget..sementara ada anak kecil yang jagonya bukan main. Saya sempat jatuh dengan sangat keras dan kehilangan penglihatan dan pendengaran untuk sementara(<=1 menit).
  • Malam hari, karena belum kenyang dengan makan malam biasanya pada mesan kfc, yang karena deliverynya lama banget berubah jadi mcD.
  • Ada repeating juga untuk ngerjain kembali soal-soal latihan sebelumnya, ada juga kelas C++11 special feature yang tidak jadi, diganti kontes practice, berkat kontes practice saya jadi mengenal COCI.
  • Saya pernah ditegur karena tidak mengerjakan sama sekali 2 soal SPOJ yang diberikan, awalnya saya memang tidak bisa jadi saya skip..kemudian kelupaan hingga esoknya. .
  • Ada 1 soal yang dapat diselesaikan dengan solusi lain tetapi dipaksakan menggunakan solusi yang diinginkan (DnC kalau nggak salah), kalau menggunakan solusi lain jadi -1 skornya kalau gak salah.

Kemudian pada akhir pelatnas, yaitu setelah simulasi terakhir diberi video yang sepertinya merupakan clue hasil pelatnas tetapi sangat random. Kemudian ada game mencari burung kertas origami yang tersebar di lantai 3 sama lantai 2 (kalau gak salah) ITB..yang berisi kode-kode buat hasil pelatnas sepertinya tetapi batal mungkin karena kelamaan..jadi akhirnya, dibagikan hasil tes psikotes kemudian di beri minum teh dan ketika diminum, ada yang berkata tehnya asin, tapi rasanya punya saya manis..Yah seperti yang diduga, yang tehnya asin yang lolos ke pelatnas 2, dan saya tidak lolos..kemudian kami berkumpul untuk foto bareng, wajah saya sungguh suram setelah mendengar hasil ini.

 Foto Penutupan Pelatnas 1 TOKI 2015

Yahh jadi inilah akhirnya..setelah saya pulang dengan selamat (setelah tekor karena ketinggalan pesawat), saya sibuk dengan sekolah dulu, susulan, dan sebagainya, kemudian liburan akhir semester..menuju 2015.

Perjalanan Saya Hingga OSN 2014


Prakata

Ketertarikan saya terhadap bidang komputer sudah dimulai sejak kecil. Saya diikutkan kursus komputer oleh orangtua dimana saya belajar Microsoft Word dan Excel. Saya juga gemar bermain game komputer sejak secara offline, warnet, hingga adanya internet di rumah. Programmer menjadi cita-cita saya karena ingin membuat game sendiri.

Pra-OSK – OSK – OSP

Juli 2013, saya menjadi siswa SMA Santu Petrus. Seluruh siswa kelas 1 SMA saat itu diharuskan mengisi angket minat bidang olimpiade. Angket berisi 10 pilihan yang terdiri dari 9 bidang Olimpiade Sains Nasional (OSN) dan bahasa inggris. Saya memilih 3 bidang di antaranya, secara berurutan komputer, inggris, dan matematika. Saya tidak ingin memilih fisika meskipun menyukainya namun saya masih ingat horornya soal fisika ketika mengikuti Olimpiade Sains Kota (OSK) saat duduk di kelas 3 SMP.

Seminggu kemudian, seleksi untuk memilih siswa-siswi yang akan mengikuti pembinaan pun dimulai. Saya mengikuti tes bidang komputer dan matematika karena inggris belum mengadakannya. Saya cukup terkejut melihat bahwa tes untuk bidang komputer terdiri dari soal-soal logika, teka-teki, dan matematika. Meskipun saya sudah mendengar kabar mengenai soal-soal bidang komputer sebelumnya, namun tetap timbul pertanyaan, "Kenapa dinamakan komputer?"

Sekitar 2 minggu setelah seleksi, guru komputer saya memberi tahu bahwa saya lolos. Saya sempat bingung karena sepertinya saya hanya menjawab 40 dari 50 soal sedangkan tertulis bahwa syarat minimal adalah meraih nilai 160 (sistem penilaian benar 4 poin, salah -1, tidak diisi 0). "Masa benar semua? Beruntung banget!". Ketika saya melihat daftar nilai seleksi, ternyata saya peringkat 1 dengan nilai 130. Saya kaget karena saya merasa bahwa soal yang bisa saya jawab seharusnya juga bisa dijawab orang lain. Berhasil lolos untuk mengikuti pembinaan sekolah menjadi langkah awal saya bergelut dalam dunia Competitive Programming (CP).

Pelatihan pun dimulai, saya bersama beberapa teman yang lolos kemudian diajarkan pemrograman menggunakan bahasa Pascal, akhirnya saya tahu alasan bidang ini disebut bidang komputer. Saya pernah diajarkan sedikit mengenai Pascal ketika duduk di bangku SD namun tidak mengingat apa-apa. Akhirnya saya dan teman-teman mulai belajar pemrograman dari nol dengan mengerjakan training gate yang ada di TOKI Learning Center (TLC).

TOKI merupakan singkatan dari Tim Olimpiade Komputer Indonesia yaitu siswa-siswi yang mengikuti pemusatan latihan nasional (Pelatnas) — pelatihan dan seleksi untuk menentukan wakil Indonesia dalam ajang olimpiade komputer tingkat internasional. Menelusuri website TOKI sangat membuat saya merasa tertarik, tertantang, hingga membayangkan rasa bangga seandainya nama saya ada di hall of fame situs tersebut. Hal yang semakin memotivasi saya adalah lokasi pelaksanaan Olimpiade Sains Nasional (OSN) saat itu adalah di Mataram. “Kapan lagi bisa ke Mataram? Ini tempat OSN terbaik! Saya harus sampai ke OSN.”

Para veteran — siswa-siswi kelas 2 SMA yang sudah mengikuti OSK tahun lalu mulai bergabung di pelatihan sejak semester 2. Pada pelatihan semester ini, banyak sekali hal baru yang saya pelajari seperti modulo dan kombinatorik yang bisa cukup saya pahami dengan mengerjakan soal, bertanya kepada guru, dan juga mencari tahu di internet.

Seleksi untuk memilih siswa-siswi yang akan bertanding di OSK pun diadakan. Sekolah hanya dapat mengirimkan 5 orang untuk bidang komputer ke OSK, dan saya berhasil lolos menjadi 1 di antaranya. Pelatihan setelah seleksi menjadi lebih intensif, kami dibebaskan dari pelajaran sekolah untuk berlatih. Masa pelatihan ini juga dikenal dengan masa karantina. Selama karantina, saya melanjutkan training gate hingga menyelesaikan dasar-dasar pemrograman (bab 2). Saya juga membahas soal-soal OSK tahun sebelumnya bersama teman-teman peserta lainnya.

Tibalah saatnya OSK, suasana kompetisi persis seperti saat saya mengikuti OSK Fisika tahun lalu namun kali ini situasi berbeda karena saya bukan lagi siswa yang ikut OSK saja namun juga siswa yang sudah persiapan menghadapi OSK. Sekolah saya memiliki prestasi selama beberapa tahun di OSK bidang komputer, rasa optimis pun membuat saya tetap tenang meski bertemu siswa-siswi yang sudah langganan juara berbagai kompetisi.

Bel tanda dimulainya OSK berbunyi, artinya dalam waktu 3 jam ke depan ada 50 soal yang dapat saya kerjakan. Dengan mekanisme penilaian benar +4, salah -1, dan tidak menjawab 0, 3 peserta dengan nilai terbaik akan mewakili Kota Pontianak di Olimpiade Sains Provinsi (OSP) Kalimantan Barat. Saya mulai dengan mengerjakan soal-soal yang tidak memakan waktu lama, menuliskan semua jawaban di kertas buram dan memindahkannya ke lembar jawaban sekitar 15 menit sebelum waktu pengerjaan berakhir. Saya berhasil menjawab 36 soal.

Kembali dalam kehidupan sekolah, saya harus mengejar materi, tugas, dan ujian yang telah saya lewati saat mengikuti karantina. Akhirnya pada suatu hari saya bersama 1 teman sekelas saya dipanggil ke kantor guru, ternyata saya berhasil lolos OSK dan meraih peringkat 1. Rasanya senang sekali karena berhasil maju selangkah menuju OSN dan ini pertama kalinya saya menang dalam kompetisi yang pesertanya begitu banyak.

Berhasil lolos OSK, yang selanjutnya saya tunggu adalah Olimpiade Sains Provinsi (OSP) dan pelatihannya, karena bebas dari pelajaran sekolah. Menjelang pelatihan OSP saya menuliskan berbagai soal dan solusi dengan konsep-konsep unik seperti diophantine, pigeon-hole, teori bilangan, dan sebagainya pada sebuah buku tulis yang kemudian dikenal sebagai buku keramat yang saya pelajari sebelum kompetisi setiap saatnya. Saat pelatihan saya juga melanjutkan pengerjaan training gate dan berhasil menyelesaikan bab 3 (ad hoc). Tanpa terasa tibalah hari pelaksanaan OSP.

Buku keramat saya

OSP bidang komputer tahun 2014 terdiri dari 2 sesi. Pada sesi pertama disediakan soal-soal menemukan pola (seperti pada tes IQ) sedangkan sesi kedua terdiri dari 50 soal — 48 soal isian singkat dan 2 soal pemrograman. Soal pemrograman adalah tipe soal yang baru ada pada OSP tahun ini, dan saya tidak bisa mengerjakan keduanya. Saya mengerjakan semua soal yang bisa saya kerjakan, kemudian menjawab ‘asal’ (dengan 0 atau 1) soal yang masih kosong karena tidak ada pengurangan nilai bila salah.

Selesai menghadapi OSP, saya harus menghadapi ujian semester dan juga susulan tugas dan ujian. Tidak begitu lama hingga liburan tiba. Selama liburan saya melajutkan latihan training gate dan berhasil menyelesaikan sebagian besar bab 4A (complete search), hanya sedikit bug yang menghambat untuk lanjut ke bab berikutnya. Saya juga sempat mengalami depresi pada masa liburan ini sehingga tidak banyak latihan.

Pada suatu hari, tiba-tiba saya dikirimkan sebuah gambar oleh teman saya melalui Facebook. Gambar tersebut merupakan screenshot yang berisi beberapa nama, dan ada nama saya beserta sekolah dan provinsi saya. Ternyata screenshot tersebut merupakan screenshot surat pemanggilan peserta OSN! Terdapat 2 orang yang akan mewakili provinsi Kalimantan Barat untuk OSN bidang komputer, dan saya senang sekali menjadi satu di antaranya. Keinginan saya untuk bisa sampai ke tingkat OSN yang diadakan di Mataram tercapai!

OSN

Dalam persiapan menuju OSN, terdapat Pelatihan Jarak Jauh (PJJ) yang disediakan oleh para alumni dan pembina TOKI. Pelatihan ini terdiri dari latihan training gate yang disupervisi alumni TOKI sehingga bisa bertanya bila kesulitan, dan juga tryout OSN yang akan dilaksanakan 2 kali. PJJ tahun ini bertemakan Pokemon, dimana semua peserta memiliki simbolis pokemonnya, sayangnya saya tidak pernah mengetahui siapa supervisor saya dan Pokemon apa yang saya dapatkan.

Saya mengerjakan setiap soal training gate PJJ yang sudah saya kerjakan sebelumnya dari awal, hingga akhir PJJ saya berhasil menyelesaikan 80% dari bab 4 dan bisa mengerjakan beberapa soal di bab 5. Selama PJJ ini saya juga mencoba mengerjakan beberapa soal OSN sebelumnya, namun soal OSN tahun lalu (2013) belum ada yang bisa saya kerjakan. Trivia: Saya memikirkan soal berjudul “Anagram” dari bab 4 dan belum menemukan solusinya selama 2 hari.

Selama pelatihan, saya 2 kali berada di lab komputer sekolah hingga jam 6 malam untuk mengerjakan tryout. Setiap tryout terdiri dari 4 soal dan berdurasi 5 jam seperti pada 1 hari OSN. Pada tryout pertama saya hanya berhasil mendapat nilai 42 dari 400, dengan bruteforce soal “Equation” dan “Baby Emolga”. Sementara pada tryout kedua saya berhasil mendapat nilai 60 dengan floodfill pada soal “Depresi” menghasilkan 50 poin dan bruteforce soal “Shazam” 10 poin.

Selama pelatihan saya belajar beberapa hal baru seperti merge sort, binary search, dan breadth-first-search. Saya menyadari ada perbedaan yang cukup besar antara kemampuan saya dengan peserta lainnya. Saya tidak terlalu percaya diri dapat memperoleh medali dan tanpa terasa hari keberangkatan pun tiba.

Hari 1

Perjalanan menuju Mataram, Kontingen Kalimantan Barat berangkat dari bandara Supadio Pontianak dengan berpakaian batik merah. Perjalanan dilakukan melalui 2 kali penerbangan yaitu Pontianak-Jakarta dan Jakarta-Pontianak. Kami tiba di Mataram pada malam hari karena penerbangan mengalami delay. Peserta bidang komputer dan beberapa bidang lainnya menginap di Hotel Lombok Raya. Setelah melakukan registrasi, kami diberikan tas yang berisi buku panduan, kaos OSN, dan beberapa barang lainnya. Saya sekamar dengan Jonathan dari Jakarta, dan meskipun kamar hotelnya memiliki 3 kasur, namun hanya ada 1 selimut sehingga saya berselimutkan sprei selama OSN.

Hari 2

Jam 3 subuh saya terbangun, melihat seseorang sedang membongkar koper. Orang inilah teman sekamar saya yang kedua yaitu Ragil dari Sibolga. Pada hari kedua ini diadakan pembukaan, saya bertemu dengan beberapa siswa lain berpakaian kaos merah seperti saya yang berarti mereka juga peserta bidang komputer. Mereka membahas entah soal atau apa dengan istilah-istilah keren yang belum banyak saya mengerti saat itu. Semangat dalam diri saya membara, saya lupa terhadap rasa tidak percaya diri saya.

Selain pembukaan, beberapa bidang lain melaksanakan bagian dari lombanya hari ini. Untuk bidang komputer sendiri, dilaksanakan practice session atau sesi day 0. Sesi ini digunakan sebagai kesempatan bagi peserta untuk mencoba sistem yang digunakan saat lomba. Sesi ini dan juga lomba 2 hari selanjutnya dilaksanakan di hotel tempat kami menginap, dengan menggunakan 3 ruangan yang dinamai menggunakan nama pulau yaitu gili air, gili meno, dan gili trawangan. OSN tahun ini juga merupakan pertama kalinya osn menggunakan laptop.

Hari 3

Setelah sarapan, para peserta bidang lain mulai diberangkatkan ke tempat perlombaan masing-masing. Peserta bidang komputer menunggu dan bersiap untuk berlomba di hotel. Dimulailah sesi day 1 OSN Komputer 2014.

Diberikan 4 soal untuk dikerjakan selama 5 jam. Saya mulai dengan membaca soal pertama “Pelontar Bebek” dimana terdapat gambar gerak melambung dan rumus fisika, merasa ini pasti sulit saya lanjut ke soal berikutnya. Soal kedua “Reduksi String” mirip seperti soal yang baru saya kerjakan saat PJJ di bab 4 yang melakukan kompres data yang diberikan. Merasa soal ini bisa diselesaikan dengan prefix sum (saat itu saya belum tahu namanya prefix sum) dan binary search, saya segera implementasi dan berhasil mendapatkan Accepted! (AC, poin penuh untuk 1 soal yaitu 100 poin). Saya senang sekali karena ini merupakan soal tingkat OSN pertama yang saya bisa AC dalam percobaan pertama.

Lanjut membaca soal berikutnya “Perang Dunia Ketiga”, soal yang menarik namun sepertinya tidak bisa saya selesaikan. Saya lanjut membaca soal terakhir “Cat Rumah”. Setelah membaca soal dan mencoba memainkan permainan interaktifnya saya masih tidak mengerti bagaimana dengan Pascal bisa menyelesaikan soal ini. Akhirnya saya ‘nyampah’ open subtask soal pertama dan ketiga dan berhasil mendapat 18 poin masing-masing. Total perolehan nilai saya 136(18+100+18+0) dan pada scoreboard 4 jam pertama, saya berada pada posisi 20-an, posisi perunggu.

Hari 4

Sesi day 2 dilaksanakan. Sama seperti sesi sebelumnya saya mulai dengan membaca soal pertama “Komunikasi Bebek”, saya mengetahui bahwa ini adalah jenis soal yang sering muncul namun saya juga mengetahui saya belum bisa menyelesaikan jenis soal ini. Saya lanjut ke soal berikutnya “Suten”, soal interaktif yang sepertinya bisa saya kerjakan tanpa algoritma-algoritma aneh namun akan lama, jadi saya lanjut membaca soal berikutnya. Soal ketiga “Sang Pelompat” adalah soal dengan kemampuan andalan saya yaitu floodfill, tapi karena sepertinya akan lama saya lanjut membaca soal terakhir. “Hiasan Dinding”, soal terakhir yang bahkan open subtasknya tidak bisa saya kerjakan.

Setelah membaca semua soal, saya mulai mengerjakannya. Pertama saya menerapkan strategi yang baru saya pelajari dari teman-teman peserta lainnya yaitu ‘nyampah dulu’, jadi saya me-‘nyampah’ open subtask setiap soal kecuali “Hiasan Dinding”. Setelah itu saya mengerjakan “Sang Pelompat” dengan depth-first-search (DFS) 2 tingkat dan berhasil mendapat nilai 84 dengan subtask sisanya mendapat Time Limit Exceeded (TLE, program berjalan melampaui batas waktu yang diberikan). Saat itu pengetahuan saya berkata bahwa saya harus mengganti ke BFS untuk mendapatkan Accepted namun karena saya masih tidak begitu jago BFS dan resikonya cukup besar untuk mendapatkan 16 poin akhirnya saya puas dengan nilai 84 dan beralih ke soal berikutnya.

Soal selanjutnya yang saya kerjakan adalah “Suten”, saya mulai dengan bermain game interaktif yang diberikan beberapa kali kemudian dengan pola yang saya temukan saya mulai implementasi solusi dengan if yang sangat banyak, untuk setiap kasus saya flag di matriks sesuai analisanya. Saya berhasil memperoleh nilai 59 dengan solusi tersebut yang saya tidak tahu salahnya dimana saat itu (salahnya ternyata kasusnya kurang general sehingga ada kasus yang tidak di-cover). Total nilai saya hari ini 163(20+59+84+0), ditambahkan nilai saya kemarin menjadi 299. Saya sangat puas dengan kerja saya selama 2 hari ini dan merasa nilai saya cukup bagus untuk memperoleh medali.

Setelah kontes dan beristirahat, kami diberikan penjelasan mengenai TOKI dan bertemu para pembuat soal serta nama-nama yang ada di hall of fame TOKI. Kami juga diberikan flashdisk berbentuk gelang dan menandatangani papan spanduk. Malam harinya, saya bersama teman-teman dan guru dari sekolah saya mencoba beberapa makanan khas Lombok.

Hari 5

Hari ini merupakan hari jalan-jalan. Saya bersama teman-teman dan guru dari sekolah berencana jalan-jalan ke gili trawangan. Pada pagi harinya, saya telat bangun karena lupa memasang alarm dan silent HP. Sampai di gili trawangan, kami menyewa sepeda untuk berkeliling pulau. Sayangnya karena banyaknya pasir, sepedanya malah sering didorong :’).  Pulangnya kami singgah di toko oleh-oleh dan makan McD di Mall Mataram, ini pertama kali saya makan McD karena tidak ada di Pontianak.

Hari 6

Hari Penutupan, dan disinilah akan dilaksanakan pengumuman medalis yang ditunggu-tunggu. Saking tidak sabarnya menunggu pengumuman, saya tidak ingat apa yang terjadi saat penutupan, yang jelas ada pergantian tuan rumah untuk tahun berikutnya. Dimulailah pembacaan pengumuman dari emas setiap bidang, perak setiap bidang, lalu perunggu setiap bidang. Saya sempat pesimis saat mendengar nama Ragil yang nilainya berbeda jauh dari saya, muncul di ujung pembacaan peraih medali perak, yang ternyata pembacaan dimulai dari peringkat bawah ke atas. Nama saya tidak muncul baik dalam pembacaan medali emas maupun perak yang sudah saya perkirakan, tibalah pembacaan medali perunggu. “..., Windi Chandra ...”, nama saya muncul! Syukurlah, saya segera berjalan ke depan dan ikut berbaris di panggung. Saya merasa senang sekali dan sangat bangga berdiri di atas panggung dengan medali dan sorotan kamera, ini merupakan pertama kalinya bagi saya. Saya sampai ingat lagu yang diputar saat itu, judulnya “Stand Up (for the Champions)”.

Selesai menerima medali, saya lalu diarahkan untuk mengambil buku tabungan untuk pemberian hadiah dari pemerintah. Setelah mengambil buku tabungan, foto-foto, kemudian mengambil kotak dan sertifikat medali. Malam harinya saya dan teman-teman jalan-jalan ke mall lagi karena terletak tepat di sebelah hotel.

Penutupan OSN 2014, saya yang pakai seragam putih dan celana hijau di depan.



Hari 7

Hari kepulangan, tim Kalimantan Barat berangkat pagi-pagi ke bandara dan pulang menggunakan rute yang sama ke Pontianak. Saya sendiri merasa sangat bangga membawa pulang salah satu dari 2 medali yang berhasil diperoleh. Selanjutnya saya harus mempersiapkan diri untuk kembali ke kehidupan sekolah dengan susulan ujian dan tugas yang sudah menumpuk.