PembukaanSemua orang yang pernah nyoba ngoding pasti merasa kesulitan & kebingungan (dari orang yang baru belajar bahkan sampai orang yang udah expert sekalipun) karena harus menyesuaikan pola pikir. Dan apabila ada sedikit saja kesalahan dalam program yang kita buat, maka otomatis kita juga harus debugging program tersebut sampai berhasil menyelesaikan program dengan tepat dengan menggunakan solusi yang paling simple agar program terlihat lebih sederhana.

Dari pengalaman diri sendiri dan pengalaman dari orang lain (yang juga coder pastinya) dapat disimpulkan bahwa ada beberapa hal yang harus kita perhatikan saat kita coding.
Tips Mengerjakan Soal Teori
  1. Jangan terburu-buru, biarpun kemampuan matematika kita bisa dibilang di atas rata-rata tetapi lebih baik mengerjakan dengan lebih hati-hati dan perlahan.
  2. Hitung jumlah soal dan waktu, cara ini cukup berguna untuk memperkirakan waktu rata-rata pengerjan kita dalam setiap soal, sehinga kita bisa mengerjakan sebanyak mungkin soal dalam waktu seminimal mungkin. Jangan terjebak dengan soal yang terlihat menarik, karena soal yang seperti ini hanya akan menjebak kita terhadap daya tariknya. Jadi sebaiknya mengerjakan soal yang mudah(walaupun kurang menarik) tapi bisa dikerjakan dengan cepat.
  3. Baca dan perhatikan soal dengan baik-baik, biarpun kita merasa pernah menemui soal yang sama sebelumnya dengan soal yang ada di berkas soal yang dihadapi, lebih baik jangan memakan mentah-mentah yang kita ingat.. lebih baik kita mengerjakan dengan cara yang baru, karena soal yang kita temui yang baru ini mempunyai penilaian yang tidak sama dengan soal yang pernah kita temui sebelumnya.
  4. Kuasai matematika dasar (misal : kombinatorik & peluang).
  5. Kuasai teknik pemrograman dasar, seperti standart input-output, struktur data, ad-hoc, sorting, binary search, & dynamic programming.
  6. Mengenal istilah-istilah (misal : palindrom, absolute, relatif prima, nonincreasing, nondecreasing, dan istilah prosedur).
  7. Berlatih secara rutin, semakin banyak berlatih menjawab soal secara individu (tanpa bantuan orang lain) maka akan semakin terasah kemampuan kamu yang sebenarnya. Tapi ingat, jangan terlalu diforsir juga waktu latihannya.. tetap beri waktu otak dan badan kita untuk beristirahat sejenak dari kegiatan ini.
  8. Kuasai Pascal, ketika menjawab soal teori akan menjadi sedikit lebih mudah karena kita sudah mengerti bagaimana pola petunjuk yang ada dalam program pseudocode.
  9. Berdoa, ini juga penting.. karena kalau tanpa doa rasanya akan menjadi kurang lengkap perjuangan selaman ini :D

Tips Mengerjakan Soal Praktek (Competitive Programming)
  1. (optional) Baca keterangan input-output terlebih dahulu beserta contohnya, cara ini sering saya terapkan dan memang aneh sih.. tapi ini efektif misalnya waktu kontes sudah mau habis :p
  2. Baca dulu semua soal yang ada jika waktu pengerjaan tidak mempengaruhi nilai(hanya dihitung jumlah problem yang ACCEPTED). Hal ini dilakukan untuk mencari dan membuat list problem yang akan dikerjakan terlebih dahulu yang dianggap lebih mudah.
  3. Beri waktu sekitar 10 menit untuk pemahaman, cara ini dilakukan agar kita bisa mencari dan menemukan solusi atau algoritma terbaik untuk problem yang akan dikerjakan.
  4. Kerjakan soal menurut proirotas. Masing-maing coder punya cara tersendiri untuk menjawab problem yang ada. Hanya coder dengan keberanian yang cukup tinggi dan dengan kemampuan yang mumpuni yang berani mengerjakan dari problem yang paling sulit. Sedangkan untuk yang awam (baca : yang lain) mungkin lebih baik mengerjakan dari problem yang paling mudah terlebih dahulu (seperti saya).
  5. Tulislah code di kertas terlebih dahulu, biasanya setelah membaca soal dan merasa menemukan algo yang sesuai maka coder langsung beraksi menyambar keyboard dan langsung mengetikkan code yang ada di pikirannya ke dalam code jadi dan pada akhirnya setumpuk bug muncul ke permukaan dan membuat bingung. Tetapi alangkah lebih bak untuk menuliskan di kertas terlebih dahulu pseudocode nya untuk mengurangi kebingungan di tengah-tengah proses dan mengurangi resiko bug yang akan dihadapi (tapi ini bukan masalah berat jika anda seorang debugger)
  6. Cari countercase / cornercase, seperti input minimum, input maximum, multiple test case, dll.
  7. Beberapa menit akhir adalah waktu yang mendebarkan, pikirkan secepat kilat untuk mendapatka algo dan solusi terbaik untuk problem agar terhindar dari bug. Disarankan untuk tidak mengganti code yang sudah ada. Biasanya di beberapa menit akhir server akan semakin sibuk dan peserta semakin berlomba untuk men-submit programnya. Kecuali anda yakin dengan code anda yang sedikit bug, boleh diganti untuk mendapatkan hasil yang lebih maksimal.
  8. yang terakhir adalah Doa, bagaimanapun tanpa doa maka akan sia-sia.
 





Leave a Reply.