Sunday, January 3rd 2016
     In 17 years of my life, I haven't been putting a real effort into my school studies. I was told by many people around me that I'm smart. But I've been thinking a lot since I entered highschool, that was not the case. There is MANY people out there that is far more smarter than me. I've tried putting real effort into Informatics Olympiad by my own effort, but I wasn't able to truly give my all back then because I was just depending on my OWN effort and power as a human. I kept saying that I was going to depend on God's power back then, it was all for God's purpose in my life. But that was not the case! It was me pursuing achievement for pride in this life.  It was my own ambition. It was my mistake.. But, those 2 first years in high school was not in vain. Maybe yes, my achievement in olympiad world during my freshman and junior year in highschool was not bright, but I really realized that God is really working to fulfill His plan through my life. In those 2 years, I learned a lot about life. The me who was having such inferiority complex and always comparing my self to others, now have truly realized. No matter how hard I try to put real effort, I wasn't able to pursue achievement. I will not say such things like "i want a chance to redo things" anymore. If i had been given the chance to redo things, maybe yes that I would have succeeded in Olympiad and had bright achievement during my highschool years that I can brag about to others, but if it had been like that, then I would have said that it was because my own hard work and my effort, not by His grace and power. I'm sure that God don't want me to say things like that. I'm sure that God want me to stop pursuing achievement in this life. I'm sure that God was trying to make me realize that achievement is not everything in this life. No matter how many times I fell in the same hole, He was still there and giving me chance. But I had enough of that, I don't want to fall in the same hole anymore.
    That's why, before I will enter the last semester of my highschool life, I decided to look back what God has been working in my life in the past, in the present, and what He is preparing for me in the future, I decided to write something that I will remember forever that i who was nothing is currently changed to something. In the last semester of my highschool life, I want to do something extraordinary that will change my study life. I will start putting a real effort on my school studies, not by my own power this time, not by my ambition this time, but with His destiny that has been planned for my life. There are many great things that are waiting for me ahead in the future! I'm sure of it. I don't know what's going to happen from now on, whether it's getting the MEXT(Monbukagakusho) scholarship and continuing my study at Japan, or whether continuing my study at Fasilkom UI or Information Engineering @ITS, i don't know. But what I know is, what I have to do is giving my best from now on without worldly ambition, because it's just absurd hoping to receive the best from God without real effort and hard-work. Hard-work is required, but hard-working using my own power as human and hard-working using His graces are different. Where I'm going to be accepted is up to Him. Wherever I'm going to continue my study, I just want that is the place where God's purposes are there. The unchanging people don't have the right to speak about change. That's why I'm going to change. I'm going to make a real breakthrough in my life after 17 years of living. To me in the future, I don't know what's going to happen from now on, but no matter what's going to happen in the future, don't lose hope, don't loosen your connection with God, keep living strong, keep buiding your life more and more, and keep running in this life!

Entering The Last Semester of My Highschool Life

Comments : 0
Posted: Minggu, 03 Januari 2016
Halo! Sudah lama sekali blog ini tidak pernah saya update lagi, sampai berdebu-debu. Jadi, kali ini saya mau menceritakan pengalaman saya setelah gagal OSP, dan intinya saya akan menceritakan kontes pemrograman saya yang pertama kali onsite yaitu PCS(Programming Competition Session) yang diadakan oleh Universitas Gadjah Mada Yogyakarta bulan lalu. Baru sempat dan ada mood untuk nulis blog lagi sekarang, sorry fot late post(lol).  Sekedar mengingatkan, post ini akan panjang sekali dan banyak hal tidak pentingnya. Read at your own risk (lol). 

Background
Kembali lagi ke bulan Februari 2015, waktu itu saya sedang mengikuti kegiatan pelatihan Pra-OSP yang diadakan oleh lembaga ALC di Bandung. Saat di kelas, saya melihat-lihat news di grup Olimpinfo tentang PCS, dan kaget nya saya tidak menyangka tahun ini ada sistem divisi semacam CodeForces gitu. Jadi dibedakan divisi yang senior (yang sudah pernah menang / dapet medali di kontes-kontes pemrogaraman) dan dvisi yang junior (yang masih newbie dan belum pernah menang sebagai juara 1 - 3 / belum pernah dapet medali).

Tidak lama setelah itu, ternyata UGM juga membuka program pelatihan semacam pelatihan jarak jauh, tapi sayangnya tidak gratis. Akhirnya saya memutuskan untuk daftar program pelatihan/tutoring jarak jauh itu, mengingat kemampuan pemrograman dan pengetahuan saya akan algoritma masih sangat minim. Singkat cerita, saya ditutor oleh mahasiswa UGM yang juga anggota dari Divisi Competitive Programming OmahTI dan alumni OSN yaitu ko Carfin. Saya daftar pelatihan ini sebelum OSP dimulai, tapi saya minta agar pelatihannya dimulai setelah OSP selesai. Jadi sistem pelatihannya ini semacam tutoring, saya dikasih uraian singkat tentang materi yang dibahas, lalu diberi soal-soal di online judge yang lain, kalau ada kesulitan maka saya tanya ke tutor saya, sekaligus progress saya juga dipantau dan dievaluasi oleh tutor saya tersebut. Setelah OSP selesai, saya mencoba untuk berlatih dan mengerjakan berbagai soal yang diberikan oleh ko Carfin di beberapa online judge yaitu UVa dan SPOJ. Soal-soal yang diberikan itu menyangkut materi greedy, DP, dan graf dengan harapan bahwa saya lebih siap kalau misalnya saya lolos OSP dan sekaligus berlatih untuk PCS UGM.  Setelah itu, saya memutuskan untuk mendaftar pada kontes PCS ini, karena saya sadar diri bahwa saya masih sangat lemah dan cupu, akhirnya saya memilih untuk daftar divisi 2, and I thought this will be a good start for my Competitive Programming achievement if I manage to win. Meski PCS ini perlombaan tim yaitu satu tim maksimal 2 orang, saya memutuskan untuk mengikuti kontes ini sendirian dikarenakan banyak alasan. Alasan tersebut antara lain tidak ada nya orang yang mampu dan cukup berpengalaman di bidang ini, daripada nanti saya repot menjelaskan dan merasa terbebani oleh rekan saya, akhirnya saya memutuskan untuk mengikuti kontes ini sendirian.

Nah, OSP itu pengumumannya keluar sekitar 3 minggu'an kan, jadi selama 3 minggu itu saya berusaha untuk berlatih dengan harap-harap-cemas gitu deh(meski aku tidak terlalu berharap lolos sih), dan yang tak ku sangka lagi itu banyak sekali yang galau gara-gara OSP. Karena OSP itu, aku akhirnya jadi kenal orang jago, masih kelas 9, cewe, dan namanya Kezia Sulami, alumni OSN Matematika dia. Tiba-tiba suatu hari dia itu ngechat facebook ku tanya aku jawab berapa soal di OSP. Tak ku sangka orang yang pra-osp nya rank 1 bisa segalau itu :o Jadinya ku kira masih ada harapan juga sih aku lolos OSP kalau begitu. Setelah itu, akhirnya pada tanggal 8 April 2015 pengumuman OSP keluar, dan nama saya tidak tercantum di dalamnya. Saya kaget, karena saya kira kemungkinan saya lolos masih cukup besar meski saya rasa dan sadar bahwa performa saya waktu OSP itu sangat kurang. Setelah saya tahu kalau saya tidak lolos ke tingkat nasional, saya sempat tulis post tentang berakhir nya perjalanan dan perjuangan saya di olimpiade di blog saya(silahkan di cek sendiri). And that day, I finally realized and experienced the pain of regret. All of my hopes were crushed so hard that I cried and screamed so hard for 2 days until I confessed to God and somehow I began to accept the result.  Sempat down untuk beberapa minggu sampai sepenuhnya saya bisa terima kalau saya gagal OSP. Setelah itu tentu tidak mudah buat saya untuk kembali berlatih lagi seperti biasa untuk mempersiapkan kontes selanjutnya yaitu PCS JOINTS. Setelah tahu kalau saya gagal di tingkat OSP, jam latihan saya semakin berkurang, dan bisa dibilang saya jarang sekali latihan coding lagi.

Penyisihan
Singkat cerita, akhirnya hari penyisihan pun tiba yaitu Senin tanggal 27 April 2015. Penyisihan diadakan online pada jam 7. Sekitar jam 6 setelah bangun tidur dan mandi saya sudah siap di depan komputer saya. Setelah tepat jam 7, soal sudah bisa dilihat dan terdapat 5 soal. Saya masih ingat betul saran dari ko Carfin yaitu jangan sampai salah pilih soal untuk dikerjakan, se-enggaknya saya harus bisa accepted minimal 1 lah. 10 menit pertama saya gunakan untuk skimming semua soal dulu, ini kebiasaan yang saya paksa karena biasanya saya langsung terburu-buru untuk ngoding terlebih dahulu kalau sudah baca soal dan ada gambaran solusi (this is not a good practice lol). Sayangnya, 5 soal itu tidak diupload ke website jadi tidak mungkin saya share juga.

Setelah skimming soal itu saya dapat gambaran solusi soal D yang cukup mudah menurut saya, yaitu hanya mencari median dari barisan digit-digit bilangan prima dari interval L sampai R. Misalnya: untuk L = 1 dan R = 20, maka barisannya yaitu: 2,3,5,7,1,1,1,3,1,7,1,9 dan mediannya adalah (1+1) / 2 = . Cukup mudah kan? Saya dapat idenya, jadi saya hanya  perlu generate bilangan prima pakai sieve of Eratosthenes saja dan masukkan ke array namun dipisah perdigitnya. Setelah 15 menit, program saya berjalan sebagaimana mestinya dan saya mencoba untuk uji sample testcase, dan sudah benar. Saya coba submit, malah dapet run time error --' Bingung entah kenapa dapat run time error, karena waktu itu saya pakai vector(array dinamis), jadi seharusnya nggak masalah. Akhirnya, saya iseng-iseng ganti approach, tidak menggunakan sieve, tapi generate bilangan prima nya dari L sampai R saya cek satu-satu apakah bilangan tersebut prima atau tidak(kita hanya perlu cek apakah N bilangan prima dengan cara mencek satu-satu apakah bilangan N itu habis dibagi oleh 2 sampai trunc(sqrt(N))). 15 menit kemudian, saya submit, dan malah dapat wrong answer. Padahal saya sudah uji testcase satu satu dan hasilnya benar. Saya sempat menduga kalau di interval bilangan dari L sampai R itu tidak ada bilangan prima apakah harus outputkan 0? Tapi saya tidak yakin dan saya kira tidak perlu output apa-apa.Ini kesalahan terbesar saya, saya tidak mencoba untuk outputkan 0. Bingung, frustrasi, karena sekitar 30 menit'an itu sudah banyak yang accepted soal ini. Akhirnya saya iseng-iseng coba soal C, ini soal relasi rekurens, tapi saya maksa banget pakai kombinasi biasa padahal jelas ini salah. Waktu sisa 1 jam, frustrasi sekali belum ada yang accepted, seolah-olah tidak ada harapan lagi saya lolos penyisihan. Akhirnya, saya mencoba soal A, cukup mudah yaitu hanya mengurutkan list nilai saja. Saya pernah mengerjakan soal tipe seperti ini, tapi soal ini lebih susah, karena prioritas sort nya ditentukan dan berbeda-beda tiap testcase, dan lebih lagi yang perlu disort ini ada 6 prioritas. Saya yakin bahwa program saya pasti akan buggy. Dan ternyata dugaan saya benar, terdapat banyak sekali bug di program saya sampai-sampai waktu pengerjaan soal itu habis dan saya belum submit untuk soal ini dan belum ada submisi soal saya yang accepted. Pasrah, dan frustrasi yang jelas. Iseng-iseng refresh website, loh, kok masih ada waktu 1 jam lagi? Kebodohan terbesar saya waktu penyisihan ini saya tidak membuka menu klarifikasi, jadi saya tidak tahu kalau ada beberapa klarifikasi soal dan penambahan waktu. Saya tahu ada penambahan waktu karena saya iseng-iseng refresh page. Akhirnya saya mencoba untuk tetap mengerjakan soal sort tadi dan debugging kode saya yang barusan. Akhirnya program saya berjalan seperti apa yang saya inginkan (saya pakai pair 6 kali untuk soal ini hahaha). Setelah submit, malah dapat wrong answer. Bingung sekali, waktu hanya tersisa 30 menit, dan saya sudah ada pikiran untuk menyerah saja karena sudah sedikit harapan untuk lolos ke final. Namun, saya mencoba untuk membaca soal sekali lagi. Ternyata soal itu hanya minta untuk mengoutputkan dari rank 1 - rank 100 yang sudah disort berdasarkan prioritas! Akhirnya, saya submit di 15 menit terakhir sebelum kontes berakhir, dan akhirnya accepted! Wah, gara-gara ketidaktelitian saya hampir saja saya tidak accepted  1 soalpun. Sisa waktu 15 menit, saya sadar sudah tidak bisa apa-apa lagi dan saya nekat hanya mencoba-coba submit soal D dan C yang tidak accepted tadi karena saya tahu soal B dan E memerlukan tedious coding dan termasuk tipe soal yang belum pernah ku selesaikan. Akhirnya, penyisihan berakhir, dan saya berada di ranking 14 dari ranking 15 yang akan diambil untuk masuk final. Mepet sekali kan? Argh T_T saya merasa lemah sekali, tetapi sekaligus bersyukur. Pikir saya waktu itu kalau ranking saya pas penyisihan bagus malah latihannya nanti jadi kurang keras dan kesannya meng-entengkan. Tapi sama aja sih, habis penyisihan saya malah jarang sekali dan hampir ga pernah coding lagi gara-gara urusan sekolah yaitu tugas-tugas ga penting yang melelahkan(baca:ngurusin KTI, buat film).

Final
Final PCS diadakan pada tanggal 18 Mei 2015 di Universitas Gadjah Mada Yogyakarta. Ini pertama kali nya saya akan pergi ke Yogyakarta ditemani oleh guru yang telah memperkenalkan saya dengan dunia pemrograman(Mr. Willy). Saya pergi ke Yogya naik kereta api pada hari Jumat 17 Mei 2015 jam 5 pagi, sampai di Yogya sekitar jam 2 siang.
Saya menginap di rumah kakak guru saya. Anehnya,saat saya berada di Yogya ini saya memanggil kakak guru saya ini dengan panggilan 'koko', sedangkan saya panggil guru saya sendiri 'Bapak', karena ngga enak, akhirnya saya memutuskan untuk memanggil guru saya selama di Yogya ini dengan panggilan 'koko' juga -___- (random topic).
Malamnya, saya diajak makan oleh kakak guru saya ini(panggilan: Ko Ai). Dan memang, kesan pertama saya untuk kota Yogya ini adalah: kulinernya luar biasa @_@ harganya juga miris-miris tidak terlalu beda di kota saya, murah sekali._. Akhirnya balik lagi ke rumah ko Ai, terus saya ngapalin beberapa algoritma yang saya kira mungkin berguna pas kontes. Setelah itu, tidur.

Ditinggal sendirian saat pembukaan._.
Besok paginya, saya berangkat jam stengah 7 naik sepeda motornya ko Ai dianter sama guru saya ke UGM. Sempat bingung lokasi lomba nya dimana(sudah diberitahu kalau diadakan di gedung PSDI UGM dekat Bunderan UGM, tapi guru saya udah lama juga ngga ke Yogya). Lalu, akhirnya ketemu setelah liat ada orang di parkiran gedung itu(ternyata entrancenya cukup tersembunyi). Setelah itu, saya lihat ada sosok om-om yang saya familiar dengan wajahnya karena pernah liat fotonya di facebook. Saya coba ajak omong dan salaman, dan ternyata benar, itu om Rudy, papanya Glenda(1 lagi orang jago yang masih kelas 9 SMP, alumni OSN Math, aku kenal dari facebook juga._.). Setelah itu, saya dibilangi kalau Glenda udah ada di dalam katanya. Selanjutnya, ya langsung aja saya registrasi ulang dan tanda tangan, diberi konsumsi/snack & buku rundown acara hari ini, lalu masuk menuju ruang tunggu sebelum kontes berlangsung. Nah, untuk PCS ini aku memang berniat bawa keyboard dan mouse sendiri dari rumah setelah tanya ke ko Carfin bahwa boleh pakai keyboard sendiri. Akhirnya masuk ke ruang tunggu ditemani guru saya itu, tapi nggak lama karena dikira ruang tunggu itu hanya untuk peserta(padahal di belakang itu banyak banget orang tua), setelah baca rundown acara hari ini dan difoto sama guru saya, guru saya pamit untuk meninggalkan saya sendirian :( akhirnya setelah bersalaman dengan guru saya dan disemangati oleh guru saya, dia pergi entah kemana keliling-keliling Yogya mungkin sama teman-temannya._.

Ternyata kontes masih dimulai agak lama lagi, jadi kita menunggu di ruangan itu sambil disambut oleh kakak-kakak panitia PCS. Nah, waktu itu HP ku silent, sedangkan aku sebelumnya sms kalau mau pakai keyboard dan mouse sendiri, dia bilang langsung bawa aja ke meja administrasi, ku kira nanti pas jalan ke ruang pengerjaan soal, jadi aku santai-santai aja mah. Karena HP ku silent, saya ga tau kalau ko Carfin sampai telpon aku sekitar 2x tapi nggak ku angkat-angkat, akhirnya dia datengin aku ke kursi ku, ya ini lah pertama kali aku bertemu secara langsung dengan tutor pelatihan UGM ku itu. Akhirnya aku disuruh bawa keyboard dan mouse yang mau ku pakai ke depan, nah karena keyboard ku itu mechanical keyboard(Corsair K70 Cherry MX Blue Switch & SteelSeries Sensei Raw), jadi aku bawa sekardus-kardusnya, lumayan berat dan besar. Akhirnya pas di meja administrasi ku kasih langsung ke ko Carfin, dia kaget karena dikira keyboard biasa aja gitu. Dia langsung bilang: "Daf*q? Kamu ke sini mau ngoding apa ngegame sih?" sambil ketawa-ketawa gitu. Setelah itu keyboardku dibawa untuk dipasang di meja pengerjaan soal pas kontes nanti, aku kembali ke ruangan sambil menunggu diarahkan untuk menuju ruang kontes, dan disana itu gj sekali._. Setelah ku lihat-lihat peserta yang ada di ruangan, ternyata cukup sedikit. Seingetku, yang lolos final divisi 1 itu hanya 7 orang terus aku dapet kabar si Kezia Sulami yang jago itu ga dateng karena masalah booking tiket pesawat, terus ko Josua Aditya Mustiko juga katanya nggak datang, jadi ku kira yang datang +- 5 orang lah tapi aku gak tau ternyata yang datang itu hanya 3 orang dari divisi 1._. Sebelum itu aku juga liat di daftar peserta pas registrasi ulang tidak ada beberapa nama yang aku familiar dan lolos OSN. Jad, banyak yang gak dateng karena masalah tiket pesawat sepertinya._. Gara-gara si Kezia itu ga dateng, akhirnya Glenda jadi peserta perempuan sendirian, dan karena dia masih kelas 9 juga, akhirnya selalu digodain sama panitianya, disuruh maju ke depan buat sharing tips-tips gitu, miris sih liatnya karena selalu dia yang disuruh wkwkwk. Setelah pembacaan peraturan, teknis dan lain-lain, kami akhirnya dipandu oleh kakak panitia menuju ke ruangan kontes yang ada di lantai atas. Makanan dan minuman boleh dibawa tapi harus ditaruh luar lab dan disediakan meja khusus di luar lab itu.
Memasuki Laboratium

Akhirnya kami masuk ke lab, disuruh duduk di depan komputer masing-masing, lalu kami disuruh login ke mooshak dan mengecek ada gangguan atau tidak. Btw, ini komputernya butuh untuk terkoneksi ke internet untuk mengakses website kontes yaitu mooshak, jadi kami dilarang keras membuka website kecuali mooshak. Kontes dimulai jam 9,sedangkan jam menunjukkan masih sekitar 15 menit lagi sebelum kontes dimulai, saya memutuskan untuk meng-adjust komputer ini supaya saya rasa senyaman mungkin, yang pertama saya rubah adalah kecepatan pointer mouse waktu itu, karena saya rasa terlalu cepat saya turunkan speednya dari control panel. Nah, yang gak ku sangka ternyata kontes nya pakai IDE CodeBlocks, ku kira pakai DevC++ atau Geany gitu, karena di rumah udah kebiasa pakai CodeBlocks, saya bersyukur sekali._. Karena nganggur menunggu kontes dimulai, akhirnya saya memutuskan untuk membuat template per soal dari soal A - soal H, dari file .cpp nya sampai buat satu-satu file notepad untuk I/O redirection nya supaya lebih praktis nanti pas debugging dan uji testcase. Setelah selesai, masih tersisa waktu sekitar 10 menit'an, saya gunakan untuk mengetik template macro(define, typedef, dll) dengan kecepatan mengetik saya yang agak paksakan untuk lebih cepat. Nah, keyboard saya ini pakai switch Cherry MX Blue yang terkenal berisik dan clicky banget, jadi saya yakin pasti seruangan itu terganggu dengan suara ketikan saya, tapi saya mencoba cuek saja, karena tujuan utama saya bukan untuk mengintimidasi lawan sebenarnya, tapi untuk kepentingan kenyamanan pas ngetik.

Akhirnya, kontes dimulai. Kontes ini akan berlangsung selama 5 jam non-stop. Saya langsung mengecek lembaran soal yang sudah diprint dan disediakan di meja beserta kertas coret-coretannya. Terdapat 8 soal pada kontes PCS kali ini, 8 soal tersebut untuk divisi 2 adalah sebagai berikut:
A. Belanjaan Harian (DP)
B. Masa Lalu (Math, relasi rekurens)
C. Banjir (Floodfill)
D. ILK(Greedy)
E. Penjumlahan String (simulasi)
F. Terbilang (Simulasi)
G. Permainan string (sepertinya simulasi._.)
H. Echo Slam (Simulasi)
(credits to Glenda, ngambil dari post di blogspot nya juga, kalau aku sempat bakal ku scan dan upload soalnya:D nanti)

Seperti biasa saya mencoba untuk skimming semua soal dulu, tetapi karena banyak soal yang background nya terlalu panjang, saya mencoba untuk mencari soal yang deskripsi nya singkat dan straightforward terlebih dahulu. Nah, ketemu yang deskripsinya cukup singkat dan straightforward, yaitu soal F (Terbilang). Jadi, soal ini sebenarnya cukup mudah, kita diberikan input bilangan desimal  N yang berkisar dari 0 - 100 dengan maksimal panjang digit nya adalah 5(jadi maksimal 3 angka di belakang koma kan?), lalu kita disuruh outputkan terbilangnya(Misal, input: 10.01, maka outputnya harus: Sepuluh koma nol satu). Saya langsung ingat, ini soal pasti terinspirasi dari CodeForces, saya pernah mengerjakan soal ini, dengan constraint N yang sama, namun pada waktu itu N adalah integer, saya pernah menyelesaikan soal ini hanya dalam waktu sekitar 10 - 15 menit, tetapi karena ada tambahan bahwa N desimal, saya bingung bagaimana cara parsing antara bilangan depan koma dan bilangan belakang koma, karena saya tau kalau coding  saya akan buggy nantinya, saya skip. Akhirnya saya baca soal E(Penjumlahan String), soalnya cukup mudah dan sekedar simulasi yaitu menjumlahkan 2 string biner dengan beberapa aturan saja. Lalu, saya coba coding dan simulasikan secara biasa, setelah selesai, saya coba uji sample testcase, dan hasilnya malah beda._. Saya bingung kenapa, dan saya duga ini salah dipenomeran string saya karena di soal penomerannya dimulai dari kanan, jadi memang sepenuhnya salah saya tidak teliti membaca soal, akhirnya saya coba baca soal lagi, coba coding lagi, dan saya sudah yakin penomeran indeks sudah benar, saya uji sample test case, masih salah._. Tambah bingung, itu sudah sekitar 30 menit setelah kontes selesai. Saya cek scoreboard, belum ada yang accepted ternyata. Akhirnya saya switch lagi ke soal Terbilang, ide nya saya sudah dapat karena pernah kerja soal semacam ini sebelumnya yaitu menyiapkan array string satuan(dari 0 - 9), lalu array string belasan(khusus untuk 10 - 19). Jika N <= 10 outputkan satuan[N], jika N >= 10 dan N <= 19, outputkan belasan[N%10], jika N > 20, outputkan satuan[N/10] + "puluh" + satuan[N%10](catatan: / = bagi(div), % = modulo). Nah, tetapi saya masih bingung untuk desimal nya bagaimana(belakang koma), saya bingung memisakahkan bilangan depan koma(depan titik) dengan bilangan belakang koma. Pertama saya coba menggunakan approach mencari bilangan belakang koma dengan mengurangi N dengan trunc(N), lalu bilangan depan koma dengan mengurangi N dengan bilangan belakang koma tadi. Bilangan belakang koma saya simpan dalam variabel double baru(ini kesalahan terbesar saya!), bilangan depan koma saya simpan dalam variabel integer baru juga. Setelah itu, saya uji testcase, masih salah. Masih banyak bug pula. Saya bingung, waktu sudah menunjukkan 48 menit, cek scoreboard, ternyata udah ada yang AC 1 soal yaitu soal terbilang. Agak panik saya, karena saya baru mulai kerja soal itu. Akhirnya saya coba debugging, dan ternyata ketemu salah saya memang di parsing bilangan depan koma dan belakang koma. Karena belakang koma nya saya masukkan ke variabel double, jadi ada precision error, yang harusnya 0,500 misalnya, malah jadi 0,499. Jelas salah kan? Dan bodohnya, saya sudah submit sekitar 2x waktu itu dan mendapatkan WA, benar-benar menambah penalty saya._. Saya baru sadar itu 90 menit setelah kontes berlangsung, dan belum ada soal yang AC 1 pun! Saya panik luar biasa, akhirnya saya putuskan untuk ke toilet untuk proses detoksifikasi (buang stress) pertama saya. Saat ke toilet, saya juga bawa coklat jadi sekalian makan coklat dan segera bertekad untuk mencoba coding soal Terbilang dan Penjumlahan String lagi dengan lebih teliti.
Frustrasi belum ada yang accepted._.


Akhirnya, kembali ke ruangan, saya mencoba coding soal Terbilang lagi. Akhirnya saya kebayang cara parsing yang lebih tepat, pakai scanf, jadi saya pisah bilangan depan koma dibaca sebagai integer, bilangan belakang koma saya baca sebagai array of char. Tetapi karena outputnya itu case-sensitive dan saya salah baca dan salah paham klarifikasi soal, akhirnya dapet WA lagi._. Akhirnya, setelah submission ke-6 saya pada soal tersebut, akhirnya saya mendapatkan verdict Accepted dengan tulisan warna hijau. Akhirnya, lega sekali saya, saya merasa ada secercah harapan untuk menaikkan peringkat! Waktu hanya tersisa 3 jam lagi, saya membutuhkan waktu 2 jam untuk accepted 1 soal karena ketidaktelitian saya lagi-lagi._. Saya putuskan saya mencoba soal E lagi(Penjumlahan String), saya curiga kenapa sample testcase saya salah, saya yakin kalau sample testcase benar pasti saya accepted  soal ini. Padahal program saya sudah berjalan sebagaimana mestinya, tetapi output masih tetap salah. Akhirnya saya periksa satu-satu command per baris dar kodingan saya tersebut, ternyata kesalahan konyol lagi! Yang harusnya dalam operator if itu mengecek == '1', program saya mengecek == '0', jadi saya salah hanya gara-gara salah pengetikan satu angka saja._. Setelah saya fix, ternyata benar saja, sample testcase langsung benar. Saya coba untuk submit kode saya tersebut, dan benar dugaan saya, saya mendapatkan accepted kedua saya. Saya cek scoreboard, ternyata peringkat saya masih kurang memuaskan, tetapi sudah masuk dalam 6 besar, saya kira masih ada harapan untuk memperbaiki ranking lagi.
Suasana Saat Kontes

I've Just Realized How Stressful Competitive Environment Is

Akhirnya, saya mencoba untuk mengerjakan lagi soal B (Masa Lalu), saya yakin ini soal relasi rekurens karena saya pernah mengerjakan soal seperti ini di TLC bab 3 dan saat latihan OSP dulu, tapi ada modifikasi sedikit dalam soal ini. Saya mencoba-coba mencari relasi rekurens nya, tetapi karena tidak ketemu-ketemu, akhirnya submission saya itu wrong answer semua. Frustrasi, akhirnya saya menyerah untuk mengerjakan soal B ini.

Karena terlalu panik lagi, saya memutuskan untuk keluar dan pergi ke toilet lagi sambil makan coklat saya yang tersisa di toilet. Nah, saya masuk toilet, terus saya kunci dari dalam kan(bukan pakai kunci sih, tau sendiri kan tapi maksudnya?). Saya sudah menduga pas ke toilet pertama kali ada yang gak beres sama 1 ruangan di kamar mandi pria ini, ternyata benar. Pas saya mau keluar, saya tidak bisa membuka kunci / segel pintu itu(wah, segel :v). Saya mencoba minta tolong kepada salah satu peserta yang lewat dari toilet itu dan saya bilang bahwa saya terkunci, akhirnya dia juga kebingungan. Setelah itu, saya mencoba-coba untuk terus membukanya, ternyata berhasil. Tak ku sangka yang ke toilet itu ternyata ko William Chanrico yang duduk di sebelahku dan sementara ini ada di peringkat 1. Memang jago gitu sih kelihatannya, pas sesi latihan dan penyisihan dia selalu accepted soal paling banyak padahal dia sendiri gitu alias solo player haha. Akhirnya, saya mengucapkan terimakasih dan memintamaaf ke ko William itu, terus masuk lagi ke ruangan kontes dan melihat scoreboard.


Satu jam pertama setelah kontes dimulai
Karena banyak yang accepted soal H(Echo Slam), akhirnya saya coba membaca soal H tersebut dengan deskripsi yang sangat panjang. Untuk para gamers yang main dota, pasti tahu Echo Slam ini apa._. Benar sekali, ini soal terinspirasi dari DotA. Jadi soal ini cukup straightforward, hanya simulasi biasa untuk menentukan damage Echo Slam dengan diberikan detail apakah menggunakan weapon atau tidak, ada berapa AI di sekitar hero, ada berapa hero musuh di sekitar hero kita, lalu kita diminta apabila kita menggunakan Echo Slam, ada berapa hero musuh yang berhasil dikalahkan. Modal dari soal ini hanya satu, tau rumus menghitung jarak dua titik pada bidang koordinat(dalam radius) yaitu: sqrt((X2-X1)^2 + (Y2-Y1)^2)), dan sisanya hanya simulasi. Setelah uji sample testcase dan yakin benar, saya submit lagi. Yes! Langsung accepted lagi ternyata! Saya langsung melihat peringkat saya di scoreboard, dan tidak disangka, saya berada di peringkat nomer 3! Jantung saya langsung berdebar sangat keras karena seolah-olah ada harapan untuk saya menjadi juara dalam kontes ini, padahal saya tidak menyangka peringkat saya akan sebagus ini. Waktu masih tersisa sekitar 1,5 jam lagi. Saya mencoba untuk membaca soal A(Belanjaan Harian) kembali, saya paham maksud soal itu tapi nggak terbayang solusinya kecuali complete search / bruteforce, akhirnya
saya nekat koding soal A dengan kompleksitas solusi yaitu O(2^n), saya sudah yakin TLE sih, tapi iseng-iseng saja siapa tahu testcase nya jelek wkwkw. Saya coba koding complete search itu menggunakan recursive backtracking dengan 6 parameter, gila kan? Setelah menguji kode saya dengan sample  testcase dengan N yang kecil dan benar, akhirnya saya submit. Benar dugaan saya, TLE(Time Limit Exceeded). Karena saya tidak kebayang solusi yang lain, akhirnya saya menyerah juga pada soal A ini. Saya cek scoreboard, ternyata peringkat saya turun ke peringkat 4 padahal jumlah accepted soal kami sama, hanya beda time penalty itu. Karena melihat ko William Chanrico sudah accepted soal G(Permainan String), akhirnya saya mencoba mengerjakan soal itu juga. Tetapi entah kenapa waktu itu saya nggak teliti lagi-lagi, akhirnya kode saya nge-bug lagi. Mencoba debugging, tapi tidak berhasil. Nah, saya juga merasa cukup terintimidasi, karena kontes ini kan ada sistem hadiah nya. Per-solve satu soal maka akan ada panitia yang mendatangi meja kita dan menaruh tas yang berisi hadiah gitu. Saya lihat sebelah kiri saya(ko William Chanrico) tas nya itu udah nambah banyak, sedangkan punya ku tetap 3._. Pas scoreboard sudah dibekukan akhirnya saya juga tau kalau dia accepted 6 soal gara-gara hadiah yang diantarkan oleh panitia tersebut.
Sudah sedikit pasrah._.

Akhirnya, waktu pengerjaan soal tersisa hanya 1 jam lagi, terdapat pengumuman bahwa scoreboard sudah dibekukan. Saya lagi-lagi mencoba membaca kembali soal C(Banjir), setelah ku baca lagi dengan seksama, ternyata soal ini mudah! Tetapi saya heran kenapa belum ada yang mengerjakan soal ini._. Ternyata soal ini hanya floodfill biasa yaitu mencari ruangan tertutup yang kekompleks'an ruanganya itu sama dengan hari yang diminta berdasarkan query nya. Saya coba coding biasa, setelah 10 - 15 menit'an , compile,uji sample testcase, dan program saya nge-bug._. Saya curiga bahwa saya salah di looping variabel nya, karena itu menggunakan koordinat dibidang kartesius(bukan baris dan kolom seperti matriks), saya sempat bingung. Karena mungkin terlalu frustrasi dan buntu tidak dapat submisi accepted lagi, saya sangat desperate mencoba debugging nya, akhirnya hanya mencoba-coba mengganti-ganti item yang tidak penting sampai menit-menit terakhir saya akhirnya coba submit. Malah dapat verdict MLE(Memory Limit Exceeded). Kontes berakhir, akhirnya saya pasrah. Melihat ko William(waktu itu belum kenal setelah kontes) yang accepted 6 soal itu, saya benar-benar pasrah apakah saya masih dapat juara harapan atau tidak._.


Setelah itu ko Carfin mendatangi ko William yang berada di sebelah saya dan mengajak ngomong saya dan mengomentari tentang keyboard saya. Ternyata ko William juga punya mechanical keyboard di rumahnya. Setelah itu, saya sempat mengajak ngomong ko William beberapa kali saat duduk di depan lab sambil bertanya-tanya tentang soal tadi dan OSN tahun lalu serta ngomongin orang-orang dewa lainnya.(SKSD banget kan :v, padahal kita belum kenal waktu itu). Hanya tersisa beberapa peserta saja yang di atas, sisanya sudah turun dan makan sambil menunggu di ruang tunggu. Kami akhirnya disuruh turun untuk menunggu di ruang tunggu. Akhirnya turun, sebenarnya nggak ada mood buat makan, tapi karena sudah 5 jam kontes dan lelah, saya putuskan untuk makan, ternyata menu nya lumayan enak(baca: ayam goreng) wkwkw. Sambil menunggu pengumuman, saya iseng buka facebook dan chat Glenda, meski kita kenal dari facebook, selama seharian itu aku belum pernah nyapa dia, akhirnya ku sapa dari facebook._. Aneh kan, kita seruangan, bukannya ngobrol, tapi malah chatting'an wkwkwk. Terus saya tanya di 1 jam terakhir dia sempat accepted soal lain atau nggak, ternyata nggak katanya. Wah, ternyata bukan saya saja yang tidak dapat submisi yang accepted lagi. Cukup lega karena ada orang yang merasakan hal yang sama :') Meski begitu, Glenda kelihatan pesimis banget, aku juga pesimis sih waktu itu, tapi dia bilang kalo aku harusnya masih dapet juara harapan gitu. Tapi aku udah ga terlalu ngarep.
Suasana Setelah Kontes, Statistika dan Pembahasan Soal
Karena satu-satunya tim perempuan._. Miris



Sambil menunggu pengumuman, ada panitia masuk dan memberikan statistika dan gambaran singkat solusi tiap soal.  Ada beberapa hal yang menurutku unik. Ada istilah "first bite" dan "first blood", 2 2 nya itu diambil sama ko William Chanrico._. Jadi first bite itu orang yang pertama kali keluar untuk makan, dan first blood itu orang yang submission nya paling pertama accepted di antara divisi 1 dan 2. Pas kontes, karena ada peserta yang terlalu frustasi, akhirnya mereka malah foto-foto pakai webcam komputer dan wallpaper komputernya itu diganti dengan foto mereka._. (Lalu inti tulisan dari fotonyanya: nggak menang gapapa asal ganteng) *pfffft* aku cuma bisa ketawa waktu itu haha. Terus ada lagi yang bercita-cita sangat mulia pas kontes, jadi bu dokter._. Jadi ada yang submit program dengan command hanya seperti ini: writelin("Bu Dokter"); sekali lagi, aku hanya bisa ketawa._. Akhirnya dibahas tiap soal statistika nya gimana, dan ternyata di divisi 2, submisi yang TLE itu hanya 2 submisi, sampai panitia nya itu heran kenapa kok ada yang bisa TLE. Aku sadar dari 2 submission itu ada 1 submission ku yang ngawur sampai pake 6 parameter dengan kompleksitas O(2^n) tadi itu :v duh parah jadinya. Pas bahas statistik soal itu, terlihat nama ko William Chanrico(forst) sebagai first solve nya, jago parah._. Setelah itu soal hanya dibahas singkat-singkat saja dengan 1 kata kunci soalnya misalnya BFS, simulasi, DP, Greedy, dll. Tiba waktu nya pengumuman, waktu itu sambil menunggu pengumuman saya juga masih chat sama Glenda, dan satu lagi sama Kezia Sulami.










Pengumuman dibacakan dari belakang, yaitu dari juara harapan 3. Ternyata dibacakan nama Glenda, wah, langsung lega luarbiasa aku. Karena dia bilang 1 jam terakhir tidak ada submission yang accepted lagi, berarti saya sudah pasti tetap di ranking 4. Akhirnya nama saya dibacakan di peringkat ke 4 yaitu juara harapan 1. Setelah itu kami diminta maju untuk foto-foto dan pemberian piagam. Meskipun hanya mendapatkan piagam dan sertifikat, saya merasa sangat bersyukur bisa mendapatkan gelar "juara harapan 1", karena saya tidak menyangka bisa seperti ini dengan latihan saya yang sangat minimal setelah penyisihan waktu itu.(Bahkan, saya hanya berlatih H-2 sebelum Final dimulai, setelah penyisihan, saya hampir tidak pernah koding lagi). Menurut saya, kemenangan saya sebagai juara harapan 1 ini sepenuhnya pemberian dari Tuhan, saya sempat menyesal karena jika pada satu jam terakhir saya accepted soal C(Banjir, solusi yang kupikirkan itu sudah sama persis dengan solusi problem setter nya yaitu ko Carfin) saya bisa meraih peringkat 2, karena peringkat 2 - peringkat 6 itu jumlah accepted soal nya sama yaitu 3 soal, hanya beda time penalty saja. Namun, saya tidak terlalu menyesali itu dan langsung sadar bahwa sebenarnya saya memiliki kemampuan yang sama dengan peringkat 2 dan peringkat 3 itu, namun di sisi lain, saya juga tidak bisa bersantai-santai karena kemampuan saya juga sama dengan peringkat 5 dan peringkat 6. Saya merasa kurang puas karena hanya bisa mengerjakan 3 soal yang tergolong "sangat mudah" yaitu hanya soal "simulasi" saja. Namun, sekali lagi saya bersyukur. Banyak sekali hal baru yang saya dapatkan karena PCS JOINTS UGM 2015 ini, salah satunya adalah bertemu dengan orang-orang yang memiliki passion yang sama dalam bidang komputer yang belum pernah saya jumpai sebelumnya serta mendapatkan kenalan baru yang lebih berpengalaman dan lebih jago daripada saya.







Foto-foto lengkap final PCS JOINTS UGM 2015 ini bisa dilihat di: https://www.facebook.com/media/set/?set=a.1002132679798615&type=3

Setelah PCS JOINTS UGM 2015 ini, saya semakin sadar bahwa saya harus berlatih dengan sungguh-sungguh dan berlatih dengan keras lagi. Meski competitive programming hanya menjadi suatu hobi bagi saya, masih banyak kontes yang harus saya perjuangkan ke depannya. Namun, menurut saya competitive programming hanyalah menjadi suatu hobi lagi bagi saya setelah kegagalan saya di OSP kemarin. Selain jalur OSN, menurut saya terlalu serius di bidang CP ini sudah terlalu risky jika tujuannya untuk mencari perguruan tinggi yang bagus. Maka dari itu, saya memutuskan untuk pensiun dari dunia CP SMA. (^^)

My First Onsite Competitive Programming Contest: PCS JOINTS UGM 2015(Div 2)

Comments : 3
Posted: Senin, 15 Juni 2015
Halo, maaf udah lama ga update blog saya. (Bentar, emang ada readersnya ya?)
Jadi 2 bulan terakhir ini banyak sekali pengalaman-pengalaman yang menurut saya jadi unforgettable di hidup saya. Dimulai dari lolos OSK lagi dengan nilai yang cukup memuaskan, terus pergi ke Bandung buat pelatihan, mengikuti seleksi OSP di Surabaya, dan berlatih competitive programming.
Post tentang pengalaman-pengalaman itu menyusul nanti, tapi hari ini, saya mau menulis tentang berakhirnya perjalanan saya di olimpiade sains tingkat SMA karena ketidak berhasilan saya lolos ke tingkat nasional.
Yup, saya nggak lolos ke tingkat nasional dan tidak berhasil masuk 7 besar Jawa Timur untuk mewakili Jawa Timur di tingkat Nasional pada tanggal 18 - 24 Mei 2015 nanti di Yogyakarta, dan tentunya hal ini menandai akhirnya perjuangan dan perjalanan saya di Olimpiade Sains tingkat SMA karena ini adalah tahun terakhir saya.

The regrets won't stop coming.
Ya, penyesalan selalu datang terlambat. Setelah mendengar kabar bahwa saya tidak lolos, segala penyesalan langsung datang begitu saja. Banyak hal yang saya sesalkan. From: why didn't I start early ? Why i'm not focused enough? Why I procrastinated too much? Why I was not able to manage my time? Why I was not able to control my own self at that time? Begitu banyak penyesalan yang datang , sama seperti tahun lalu. Saya sendiri sudah sadar bahwa setelah mengerjakan OSP 2015 kemarin, saya kurang puas dengan performa saya. Bahkan saya sangat kecewa dengan performa saya di OSP 2015 ini. Selama hari itu juga, saya terus memikirkan soal yang harusnya bisa saya jawab jika saya lebih tenang dan teliti. Tetapi pada hari itu juga, I found my resolve. Saya bertekad apapun hasilnya akan saya terima dengan hati yang besar. Mengapa? Karena saya percaya bahwa semua ini adalah jalan Tuhan untuk menunjukkan kepada saya bahwa saya tidak bisa hidup dari cara-cara dan pikiran saya sendiri, tetapi Tuhan ingin menunjukkan kepada saya bahwa I must live from His Will alone. Seringkali, saya (dan mungkin kalian yang sedang baca ini) meminta Tuhan untuk menuruti keinginan dan kehendak kita sendiri secara sadar maupun tidak sadar, kita berdoa untuk meminta Tuhan mengabulkan kehendak dan keinginan kita sendiri. Jelas ini salah, meskipun saya sudah tidak pernah melakukan ini secara sadar, saya rasa secara tidak sadar saya berpikir menggunakan cara-cara saya sendiri, dan berharap bahwa I can become an ideal person that I've thought. Inilah kesalahan terbesar saya. Saat kita berpikir bahwa kita mampu, itu adalah kesalahan besar. Karena semua hikmat, semua kepintaran dan kecerdasan, serta semua kemampuan itu berasal dari Tuhan dan milik Tuhan saja. Tanpa Tuhan kita tidak ada apa-apanya. Ini satu  hal yang saya tangkap setelah OSP selesai. Maka dari itu apapun hasilnya saya akan terima, karena ini salah satu cara Tuhan untuk lebih menyadarkan saya, pikir saya begitu waktu itu.

An end to my journey
Saya sangat bersyukur saya bisa kenal Olimpiade Komputer, looking back so far hidup saya sudah banyak berubah gara-gara olimpiade komputer ini. Saya yang dari dulu nya saat kecil memiliki worst personality dan tidak punya tujuan konkrit dalam bidang pendidikan, sekarang berhasil memiliki perspektif atau pandangan yang berbeda terhadap dunia ini. Because of competitive programming(Olympiad in Informatics), I've realized how big this world is, and how small I am compared to them. Saya sangat bersyukur diberikan kesempatan oleh Tuhan untuk dapat berkompetisi di ajang seleksi Olimpiade Sains tingkat sekolah, kabupaten dan provinsi. Berkat itu semua, saya bisa menjadi orang yang lebih menatap masa depan yang Tuhan rancang atas hidup saya. Bukan menatap dan berharap akan mimpi-mimpi saya. Di saat orang pada jaman sekarang berkata: "Bermimpilah setinggi langit!", bapak rohani saya mengatakan kepada saya bahwa saya tidak perlu bermimpi setinggi langit, bahkan saya tidak perlu bermimpi, tetapi yang saya perlukan hanya menarik masa depan yang sudah dirancang olehNya atas hidup saya. Dan sekarang, saya sadar benar bahwa statement  bapak rohani saya itu benar. Secara tidak sadar, saya berekspektasi terlalu tinggi atas hidup dan diri saya sendiri, bahwa saya mampu dan bisa, dan ini mengakibatkan kebencian dan perasaan self-disgust saat saya gagal. Yang harus saya sadari sekarang adalah, competitive programming tidak boleh menjadi lebih dari sekedar hobi dalam hidup saya. Tidak ada alasan untuk terlalu menaruh hidup saya dalam bidang olimpiade dan kompetisi, olimpiade dan kompetisi adalah salah satu titik dari hidup saya yang telah mengajarkan sesuatu yang sangat penting dalam hidup saya, dan kalau memang saya mendapatkan prestasi dari keikutsertaan saya, itu hanyalah bonus dari Tuhan yang diberikan kepada saya. Don't expect too much from yourself. Gagal adalah ketika kita tidak memutuskan untuk bangkit lagi. Saya percaya bahwa masih banyak hal yang harus saya perjuangkan dalam hidup ini lagi. Masih banyak event-event competitive programming kedepan yang bisa dijadikan salah satu tiket untuk menentukan universitas saya, selalu ada harapan demi harapan yang diberikan Tuhan kepada saya. Maka dari itu, sekali lagi saya sangat bersyukur , pengalaman dan perjuangan saya di olimpiade ini adalah hal yang tidak akan pernah saya lupakan dalam hidup saya. Ke depannya, saya akan lebih mempersiapkan diri lagi untuk mencari scholarship untuk perguruan tinggi.
-To enjoy competitive activities, you need to be really good. (Coach Ukai, Haikyuu)

An end to my journey at olympiad

Comments : 3
Posted: Selasa, 07 April 2015
Halo, disini saya mau menuliskan tentang persiapan saya untuk OSK Komputer 2015.
Persiapan untuk OSN Komputer ini sebenarnya saya mulai lagi sejak saya gagal di tingkat provinsi tahun kemarin , meskipun berhasil mewakili kabupaten saya Jember di tingkat provinsi, namun ternyata saya belum berhasil lolos untuk ke tahap Nasional. Pas selesai kerja soal saat OSP waktu itu saya sudah tahu sih, kalau peluang saya untuk lolos ke tahap Nasional itu kecil banget meskipun yang diambil itu maksimal 9 untuk provinsi Jawa Timur. Memang salah saya sendiri waktu itu, persiapan sangat kurang sekali waktu itu, alhasil saya finish di ranking 41 dengan skor 188(skor 36 - 42 sama semua, jadi bisa dianggap ranking saya 36 waktu itu haha), jelek banget kan ? Meskipun gagal saat itu, saya belum bisa mengambil keputusan untuk menyerah dalam OSN Komputer, dan saya mulai belajar lagi dari 0, meskipun saya masih butuh waktu juga waktu itu untuk "back on my feet again" dan menerima kegagalan saya.

Saya bukan seorang genius, saya juga tidak pernah ikut olimpiade dari SD, SMA ini saya ikut OSN karena rasa keingintahuan dan kegemaran saya akan Komputer dari kecil. Otomatis, saya harus berusaha lebih keras bukan dari orang lain? Salah besar, selama ini saya berpikir, bahwa simple saja, kalau banyak orang lain yang lebih pintar dari saya, saya cukup berlatih lebih keras dari mereka 2x - 3x. Ternyata saya salah dan gagal, saya juga tidak bisa berlatih lebih keras dari mereka. Hard-work? Saya belum merasa bahwa effort saya selama ini sudah bisa dikatakan hard-working enough, because I was not consistent with my training, kadang sehari ngerjain banyak, besoknya jd agak kendor latihannya, dan lama-lama perlu usaha lebih untuk sekadar latihan saja. Jadi, prinsip saya itu salah besar karena saya tidak bisa lakukan selama ini. Lalu apa yang terus membuat saya bisa bertahan melihat orang-orang yang luarbiasa lebih pintar dan lebih mampu dari saya di luar sana? Satu jawabannya, Tuhan. Saya mulai belajar untuk benar-benar mengandalkan Tuhan, bukan kerja keras saya, kedua orang tua rohani saya selalu berkata demikian di Gereja. Sekeras apapun saya berlatih, masih banyak orang di luar sana yang akan lebih baik dari kita. Maka dari itu, saya belajar untuk berhenti mengandalkan kerja keras saya. Saya tahu dan sadar betul, bahwa banyak sekali orang di luar sana yang sangat brilliant, dan orang-orang tersebut juga berlatih sangat keras!

Meskipun begitu, 8 bulan terakhir ini saya terus mencoba untuk berlatih dan berlatih. Meskipun hasil nya belum terlalu memuaskan , because of my lack of time-management. Saya mulai mempelajari bahasa C/C++ dan mulai beralih dari C/C++ sejak Juli, lalu mencoba untuk mengerjakan ulang training gate TLC dari bab 1 sampai bab 3. Mencoba untuk mengerjakan soal-soal LOPI di bulan-bulan Agustus sampai Oktober, dan mencoba berlatih di TLC meskipun usaha yg saya tuangkan sangat minimum, sampai akhir Oktober - November saya baru mengerjakan TLC sampai bab 3D. Awal November - Akhir Desember saya berhasil menyelesaikan bab 4D, setelah itu, saya memutuskan untuk berhenti mengerjakan training gate dan beralih ke OJ lain yg lebih bebas. Pada awal Januari, saya mulai fokus untuk latihan OSK.
Mulai Januari itu lah saya mulai mempersiapkan diri saya dengan  mempelajari / mengulang berbagai teori yang ada dan pernah saya pelajari dimulai dari:
1. Logika matematika(Konjungsi, Disjungsi, Hukum De Morgann, dll)
2. Barisan dan Deret(Barisan dan Deret Aritmatika, Barisan dan Deret Geometri, Barisan Bilangan Pangkat, Barisan Bilangan Asli)
3. Himpunan(Konsep, Diagram Venn, Prinsip Inklusi-Eksklusi)
4. Kombinatorika(Rule of Sum, Rule of Product, Permutasi, Kombinasi, Kombinasi dengan perulangan, Pigeonhole principle)
5. Relasi rekurens
6. Teori Bilangan(GCD,LCM, Euclidean Algorithm, Modular arithmetic, Prime factorization and its application, Bezout Identity, Linear Diophantine, Fermat's Little Theorem, Totient Euler function, Chinese Remainder Problem)
7. Sedikit teori graf
8. Pascal(bitwise operation, if-else, loop(for,while,repeat), subprogram(function,procedure), rekursi)

Dari segi teori dan materi, kira-kira itu yang saya pelajari khusus untuk OSK, meskipun sepertinya banyak yang overkill juga sih belajarnya(alias ga perlu sebenarnya), tapi berguna kok kalau mau belajar teori, kalau belum belajar dan ga sempat ya ga masalah, OSK rata-rata soalnya masih bisa dikerjakan tanpa teori, hanya bermodal logika dan kemampuan analisis yang kuat serta kemampuan baca pseudocode :p
Mungkin kelihatannya persiapan saya banyak banget ya? Tapi nggak kok, masih banyakk orang di luar sana yg lebih keras dari saya berlatihnya. Saya hanya nggak ingin untuk membenci diri saya lagi karena kelemahan saya sendiri, saya ga mau merasa menyesal lagi karena ga berhasil memberikan yang terbaik bagi diri saya sendiri. Maka dari itu, mulai sekarang ini juga bukan waktunya bersantai-santi lagi, ini waktunya saya sudah berlari lebih kencang lagi dalam hidup ini, waktunya meninggalkan dan mengurangi semua yang tidak penting.
That's all for my long post today. Good luck buat semuanya!

H-1 OSK Komputer 2015

Comments : 0
Posted: Selasa, 10 Februari 2015
Hi, it has been long time since my last post. Forgive me for not being able to post regularly (lol). Since I don't know what to write in my blog.
But today i just want to write something that I want to remember forever.
For really long time, i used to hate myself. Yup, i hate myself. Even my current self.
Maybe the biggest lie that I've told to myself is that, i will do better tommorow, i will have much more time to fix what i've been doing tomorrow. This is really naive. Because I've never been able to do better the day after.
For what I am doing, I do not understand; for I am not practicing what I would like to do, but I am doing the very thing I hate.(For what I am doing, I do not understand; for I am not practicing what I would like to do, but I am doing the very thing I hate.)
I did something that i really hate, and at the end of it i always blamed myself for it.

That's why, i will not continue doing things like this. I will never be able to change if i keep delaying things.I used to really beat myself for my failure in the past, and I thought by beating myself i can do better. But that's not it, the more i beat myself, the more i feel really worse. 
I think i've been too hard to myself.
It's no use if we keep hating our own self, instead of rejecting it , just try to accept your failure and your past self, if God can forgive us for our sin and mistakes, why we can't?
So this is it that i want to write for now.
Today is 3 days before the Regional Science Olympiad, i will post and update later regarding my preparation for Regional Science Olympiad in Informatics!(In Indonesian: OSK Komputer!)

Lesson: don't be too hard your own self.

Comments : 0
Posted: Sabtu, 07 Februari 2015
Setelah BNPCHS 2014, saya juga nekat untuk daftar CompFest UI dan Open OSN.
Singkatnya, CompFest UI diadakan sekitar 2 minggu setelah penyisihan BNPCHS , di hari yang sama yaitu Sabtu. Saya dapat ijin pulang lebih awal juga, namun kali ini lebih siang daripada saat BNCPHS, jam 12:00. Intinya, setelah saya sampai rumah, saya mentally unstable soalnya kebingungan takut macet dan lain-lain, terus sampai rumah curhat sama mama kalau pengen kos, karena rumah saya agak jauh dari sekolah, sekitar 30 - 40 menit perjalan untk sekali perjalanan. Kontes dimulai, dan seperti biasa lagi, saya mencoba mengerjakan soal dengan deskripsi paling pendek, karena saya terlalu menganggap bahwa soal dengan deskripsi panjang adalah soal yang memerlukan pengetahuan algoritma yang lebih lanjut, sedangkan saya belum tahu problem solving paradigms sama sekali, seperti greedy, Dynamic Programming, Divide and Conquer, dll. TLC saya juga masih di bab 3C waktu itu, dan saya baru beralih ke C++ sejak bulan Juni-Juli lalu, jadi seolah-olah saya membatasi diri saya sendiri waktu itu karena saya hanya bisa kerja soal ad-hoc dan brute force. Parah, soalnya kelihatan sangat simple, pythagoras biasa, namun saya perlu waktu sekitar 1,5 jam untuk dapat hint solusinya, setelah nemu, saya kurang teliti , dan mencoba terus-terus'an submit tanpa tahu kesalahan apa saya. Setelah itu, hancur lah intinya performa saya di CompFest, saya tidak berhasil accepted 1 problem pun. Lanjut, saya daftar Open OSN, bersama 2 kakak kelas saya yang dulunya juga rekan seperjuangan di tim lomba Komputer sekolah. Sekolah ternyata memberi support dan ijin untuk mengikuti kompetisi online ini, akhirnya, selama 2 hari saya absen dari jam ke 3 sampai jam ke 8 pelajaran sekolah. Pas Open OSN juga hancur, saya hanya bisa nyampah di beberapa sub-task yang mudah, itupun semua nya saya bruteforce, Day 1 lebih mending, meskipun melanggar peraturan, kami ditempatin di 1 ruangan pas kerja Open OSN, jadi pasti secara ga langsung kakak kelas saya juga bertanya-tanya terus dan berdiskusi sama saya, karena saya yang mengundang mereka buat ikut Open OSN ini, saya sempat ngasih hint ke mereka sampai mentok, dan akhirnya skor kita jadi sama deh. Day 2 , kami kerja Open OSN di ruang diskusi, kemarin kami kerja di lab komputer, namun tetap, saya memakai laptop guru saya Pak Willy. Performa saya di Day 2 lebih parah daripada Day 1, Day 2 saya hanya mencoba mengerjakan soal interaktif dan mencoba bermain gamenya dan berhasil menemukan polanya, tapi kebingungan untuk ngoding-nya. Jadi saya hanya solve untuk 2 sub task dari soal itu saja. Setelah itu saya menyerah dan menghabiskan waktu untuk makan, buka-buka facebook, dan lain-lain sedangkan kakak kelas saya yang satunya masih mencoba untuk solve 1 sub task dari problem yang lain, dimenit-menit terakhir, sekitar 30 menit terakhir, dia berhasil solve 1 subtask,  dan karena akhirnya saya dan kakak kelas saya yang satunya takut ranking kami jatuh banget dan mengecewakan sekolah, kami minta copy solusi, dan akhirnya nilai kami di Day 2 jadi sama semua -- Hancurlah pokoknya performa saya di kontes-kontes saya ini. Intinya, saya jadi agak kapok ikutan kontes dengan kemampuan yang ga jelas seperti ini.

Akhirnya, saya memutuskan untuk tidak ikut NPC kalau progress  TLC saya tidak baik. Namun dekat-dekat hari NPC , saya berminat untuk mencoba-coba ikut karena kelihatannya banyak juga yang ikut. Ya setelah itu saya memutuskan untuk daftar NLC dan NPC, untuk NLC, tim saya terdiri dari 1 kakak kelas yang waktu itu juga kebetulan ikut Open OSN dan 1 lagi anak sekelas saya yang merupakan rekan seperjuangan di tim lomba komputer sekolah saya. H-1 minggu sebelum NLC, saya minta latihan kami diintensifkan, akhirnya hampir tiap hari kami pulang sore buat ngerjain soal-soal dari buku nya LOPI. Saya mencoba mengatur strategi kerja soal pas NLC nanti, akhirnya H-1 sebelum kontes kami memutuskan untuk istirahat. Besoknya, dateng pagi kumpul di sekolah dulu(meskipun agak molor dari waktu yang dijanjikan karena ada yang telat --) , terus kami berangkat ke SMAN 4 Jember. Disana tempatnya udah penuh aja kaya ngantri sembako di gerbangnya, ternyata yang daftar ulang banyak banget, karena kebingungan tidak dapat bukti pembayaran hari itu ya akhirnya kami sempat nunggu beberapa lama dan akhirnya ikut antri. Sekitar 30 menit - 45 menit antrinya, heboh kan? Disana, saya ketemu dengan tim OSK Jember tahun ini , diantaranya bang Raca, bang Josh, bang Rangga, dan wajah-wajah yang saya sedikit familiar , Kagetnya sih bang Josh sama bang Rangga itu tim OSK nya Astronomi, dan masih ada tim OSK lain yang saya kenalin seperti Fisika, dan lain-lain. Terus akhirnya , jam 9 kami masuk ke ruangan masing-masing, ternyata 1 ruangan sama bang Raca sama wajah orang yang saya tahu, wajah pemenang lomba UNEJ Februari lalu, dan kebetulan juga ketemu di OSP waktu itu. Wah ngeri lah ya, kontes dimulai, dan akhirnya saya kecewa dengan performa saya sendiri dan tim saya. Tim saya hanya berhasil menjawab 58 soal dari 100 soal yang ada, intinya saya kecewa banget, tapi saya diem aja dan mencoba menenangkan diri, setelah itu saya ngobrol dengan bang Raca dengan kepalsuan ekspresi saya yang sebenarnya rapuh. Setelah itu pembagian konsumsi, tapi saya langsung putuskan untuk pulang karena ada NPC jam 1 nya, waktu itu selesainya sekitar jam 11 lebih, jadi ya saya langsung pulang karena sudah ditungguin juga sama papa & mama saya. Sampai rumah jam 12, saya langsung makan sambil nonton Pokemon X Y dan ngikutin twitternya Schematics. Jam 1 tepat, kontes dimulai. Seperti biasa, saya mencoba baca soal urut dari P1 , dan mencoba mencari soal dengan deskripsi paling singkat. Saya coba mengerjakan P1 dulu karena soalnya kelihatannya simple banget, hanya disuruh mencari rata-rata dari 4 nilai, tapi dipisahkan dengan "," bukan "." dan inputannya lumayan besar. Ya akhirnya berkutat dengan P1 agak lama, sekitar 30 menit dan tidak berhasil solve. Akhirnya maju ke P2, intinya hanya output 2^n yang dimodulo. Saya kira 2 soal itu adalah soal yang simple, ternyata saya salah ! Akhirnya karena saya lihat scoreboard banyak yang solve P7, saya kerja P7, nyoba ngoding, program ngebug, dan 45 menit kemudian akhirnya solve. Waktu masih ada 3 jam lagi, saya coba lagi ngoding P1 dan P2 dan sangat frustasi dan lebih down daripada kontes-kontes saya sebelumnya. Jam 4 diumumkan ada 1 jam tambahan karena ada kesalahan dalam server, akhirnya jam 6 saya berhenti untuk mandi, pas mandi itu saya ngerasa frustasi, down, dan stress banget. Saya ngerasa sampah banget waktu itu, ngerasa kalau saya belum hard-working enough. Akhirnya, setelah mandi saya coba coding sebentar dan akhirnya no result. Hanya berhasil solve 1 problem aja di P7, dan rank saya 1 jam terakhir adalah 43 dari sekitar 120'an orang yang ikut.

Intinya, saya merasa saya belum hard-working enough . Namun saya mendapatkan kesempatan yang begitu banyak untuk mengukur kemampuan saya sendiri, dan saya tentu harus merubah diri saya mulai sekarang lagi. Saya harus sadar bahwa kegagalan merupakan bagian dari kesuksesan yang akan saya dapatkan, tidak ada orang sukses yang tidak pernah mengalami kegagalan sekalipun juga. Bukan untuk menghibur diri sendiri, namun tanpa mengalami kegagalan, saya pasti tidak akan pernah belajar untuk menjadil lebih baik :) Sekian untuk post saya yang sekarang, maaf kalau post ini berantakan dan "gak maksud" ya. Terimakasih :))

CompFest, TOKI Open OSN, NLC & NPC

Comments : 2
Posted: Kamis, 16 Oktober 2014
Halo! Setelah lama tidak nge-blog , saya memutuskan untuk mulai sekarang juga menuliskan blog saya di dalam bahasa Indonesia. Jadi bukan nulis blog hanya untuk diri saya sendiri dan bisa saya baca di masa depan, tapi seenggaknya bisa buat orang lain juga. Maafkan saya kalau post-post dalam blog saya yang kemarin-kemarin pakai bahasa Inggris terlalu banyak kesalahan grammar nya X_X

Kali ini saya mau cerita tentang pengalaman saya kurang lebih 1-2 bulan ini, dari awal aja ya.
2 bulan lalu, saya ikutan BNPCHS (Binus National Programming Competition for High School Student) . Saya inget banget waktu itu warming-up BNPCHS itu diadakan pas sore hari setelah saya pulang dari kegiatan pembinaan seksualitas dari sekolah(serius menurut saya lebih banyak ga pentingnya daripada pentingnya, saya kurang suka ikut kegiatan yg mengharuskan saya terlalu berinteraksi dengan orang lain yang saya kurang akrab). Jadi waktu itu setelah pulang dari kegiatan pembinaan(pembinaannya 2 hari 1 malam, jadi ceritanya nginep di villa deket gunung gitu, sederhana sih tempatnya) , saya langsung buka komputer, berhubung saya baru beralih dari Pascal ke C++, saya belum terlalu tahu banyak library function , waktu itu saya langsung belajar buat pakai sort, string seperti find,replace,dll . Nah terus warming-up, saya ngerasa down banget , hanya bisa solve 1 soal buat yang programming, yang pilihan ganda ga tau lah, hancur pokoknya saya ngerasa cupu banget waktu itu. Saya kaget liad scoreboard di 5 menit pertama sudah banyak yang accepted, eh ternyata baru tahu dari kak Saeful kalau itu soalnya dari penyisihan BNPCHS yang tahun lalu -- otomatis lah yang udah pernah kerja tinggal submit aja , hanya buat nge-test website.

Besoknya, saya dapat ijin buat pulang sekolah lebih awal, seharusnya pulang jam 1:30 saya pulang jam 10:00 karena faktor jarak rumah dan mau lomba. Pas sampai di rumah, saya langsung buka komputer, ganti baju dan lain-lain. Jam 1 tepat, kompetisi dimulai, dimulai dari sesi 1 , ngerjain soal pilihan ganda . Agak kaget juga pas lihat scoreboard, rata-rata skornya tinggi juga ya -- Terus lihat kok time-bonusnya pada gede, wah ngeri. Pas sesi 1, banyak banget soal algoritmika pascal yang rekursif, pas mau ngitung ga selesai waktunya, mau ngakalin dibuat codenya di compiler juga udah keburu habis waktunya -- Intinya, saya waktu itu ngerasa cupu banget lah, merasa underdog lol. Terus pas sekitar kerja soal ke 35 saya tidak sengaja nemuin bug di time bonus, kalau kita submit answernya 2x atau 3x, time-bonusnya juga ikutan! Gila, ternyata yang di scoreboard yang time bonus nya gede banget ini gara-gara bug ternyata._.

Lanjut ke sesi 2, seperti biasa, saya langsung coba baca soal yang deskripsinya paling sedikit(kebiasaan buruk sampai sekarang kalau kontes selalu coba baca soal yang deskripsinya paling dikit, kalau banyak biasanya langsung saya tinggal) . Saya baca soal P1, terus nyoba coding, saya sudah tau konsep dasarnya buat soal P1 ini, saya coba brute force dengan ngitung semua kemungkinan dengan 4 for nested-loop, karena masukan cukup sedikit, saya kira tidak akan RTE. Saya juga bisa tahu konsep karena kerja soal warming-up kemaren. Intinya program saya nge-bug sampai 1 jam'an, ternyata hanya salah di variabel X_X Setelah tahu kesalahan saya, saya langsung debug terus  coba compile dan test input, benar. Saya langsung upload solusi, dan ternyata accepted! Saya senang sekali karena bisa accepted 1 soal, karena mengingat ini adalah kompetisi programming saya yang pertama kali selain iseng-iseng mencoba TOKI Open Contest. Setelah accepted, saya coba baca soal ke 2, intinya tentang nyari palindrom terpanjang, pertamanya saya mencoba-coba, tapi karena agak stuck, saya coba googling solusi, wah ternyata udah ada solusi DP, saya coba copas, saya compile dan ternyata benar outputnya(jangan ditiru ini, saya asal copas solusi doank). Saya coba submit  dan ternyata accepted. Saya ingat itu hanya tinggal 20 menit terakhir saat saya nyoba kerja soal yang ke 2. Pas kontes saya ngerasa down banget, ngerasa ga ada apa-apanya, dan kepikiran buat nyerah. Tapi saya coba terus sampai akhirnya saya tahu kesalahan program saya, dan pada akhirnya saya juga berhasil solve P2 juga. 5 menit kemudian, kontes berakhir, saya berada di peringkat 25 pas sesi 2. Pas sesi 1 jangan tanyalah, cupu banget pokoknya hasilnya, saya lupa berapa skor saya.

Setelah BNPCHS berakhir ya saya intinya down, ngerasa ga ada apa-apanya habis ngelihat scoreboard, dan ngerasa selama ini saya hanya buang-buang waktu. Akhirnya saya kembali lagi ke keseharian sekolah yang monoton , dan akhirnya pengumuman BNPCHS keluar, saya ternyata lolos, berada di peringkat 26, 1 peringkat dibawah kak Saeful yang akhirnya dapet medali perak di BNPCHS . Saya coba bbm guru saya waktu itu kalau saya lolos, dan besoknya saya diminta untuk pergi ke ruang guru. Saya bawa hasil pengumumannya, dan katanya guru saya akan mempertimbangkan dengan wakasek dan guru pembimbing tim lomba saya untuk memutuskan pergi atau tidak. Tapi sudah kelihatan jelas lah, kalau 90% ga akan berangkat, karena faktor lokasi yang jauh banget, saya kan di Jember, Binus di Jakarta, jadinya jauh banget. Akhirnya pulang sekolah, saya coba menemui guru pembimbing tim lomba saya, mereka bilang sekolah baru berani kirim kalau saya berada di peringkat 10 besar . Saya tidak berangkat untuk final BNPCHS , namun saya mendapatkan kesempatan dan pengalaman yang luar biasa untuk mengukur kemampuan saya yang masih sangat kurang. Sekian untuk post saya tentang BNPCHS 2014. Terimakasih :)

BNPCHS 2014

Comments : 0
<

Followers

Diberdayakan oleh Blogger.

Popular Posts

Total Pageviews

- Copyright © 2013 Albertus Angga - DJogzs - Powered by Blogger - Designed by Johanes Djogan -