Bagi seseorang yang baru pertama kali mencoba pemrograman, mungkin akan mengalami sedikit kesulitan, baik dalam memahami sintaks bahasa pemrograman, ataupun memahami algoritma program itu sendiri.
Ini merupakan hal yang wajar dalam proses pembelajaran. Dan seiring berjalannya waktu, memahami sebuah program tidak akan sesulit seperti saat pertama kali. Dengan catatan, bahwa kita harus mengikuti proses pembelajaran itu dengan baik.
Yang tidak wajar justru ketika sudah cukup lama belajar bahasa pemrograman, tetapi tidak paham tentang apa yang dibuatnya itu. Atau hanya paham sedikit. Hanya sebatas mengetik sebuah kode. Yang penting, program yang dibuat bisa dijalankan. Itu saja sudah cukup.
Jika diibaratkan, maka ini seperti ketika kita belajar, tapi tidak tahu, maksud sebenarnya kita belajar itu apa. Yang kita tahu adalah bahwa kita harus belajar. Belajar ini, ini, dan ini. Kemudian dapat nilai yang bagus saat ujian, dan selesai.
Apakah hanya itu saja? Harusnya tidak. Tujuan kita belajar adalah untuk mendapatkan ilmu. Untuk meng-upgrade diri agar menjadi individu yang lebih baik lagi. Jika hanya mengejar nilai yang sempurna, gampang. Kita tidak perlu belajar, cukup kerjakan tugas yang jawabannnya bisa didapatkan dari internet. Salin, kumpulkan. Ketika ujian, tinggal siapkan contekan. Atau tinggal lirik kiri-kanan, lihat jawaban teman di sebelah.
Tapi… jangan kaget ketika nanti muncul variasi-variasi soal baru. Karena kita tahu, bahwa ada banyak sekali permasalahan yang memerlukan penanganan yang berbeda-beda. Beda penanganan, beda pula kode yang harus dibuat. Dan orang yang dalam memprogram hanya sebatas mengetik saja, tanpa paham apa maksud dari kode yang dia buat itu, hanya bisa duduk terdiam, bingung harus memulai dari mana.
Membangun Paradigma Pemrograman
Jika sudah cukup lama belajar bahasa pemrograman, dan masih saja tidak mengerti akan program yang dibuatnya itu, maka jelas, ada sesuatu yang salah dan harus segera diperbaiki.
Biasanya, ini terjadi karena mereka tidak paham akan masalah yang akan dibuat programnya. Atau mungkin sudah paham masalahnya, tapi bingung harus memulainya darimana. Atau, kebanyakan langsung mengetikkan kodenya tanpa mengidentifikasikan masalahnya terlebih dahulu.
Sebagaimana yang kita ketahui, bahwa secara teoritis, ada tahapan-tahapan yang harus dilakukan dalam membuat sebuah program. Pertama: identifikasi permasalahan. Pada tahap ini, kita memahami permasalahan yang dihadapi Kemudian, memperkirakan kemungkinan-kemungkinan yang akan terjadi untuk melakukan error handling.
Contohnya, ketika ingin menginput sebuah nilai ujian ke dalam sebuah variabel, maka yang diperlukan adalah sebuah variabel untuk menampung nilai, dan sebuah nilai yang akan diinput. Ada 2 kemungkinan yang terjadi. Yang pertama, nilai ujian yang diinput itu berkisar antara 0 sampai 100, yaitu nilau ujian pada umumnya. Dan kemungkinan kedua, nilai ujian yang diinput lebih dari 100 atau kurang dari 0.
Jika telah melakukan identifikasi masalah, maka langkah selanjutnya adalah menyusun algoritmanya. Secara sederhana, algoritma adalah sekumpulan perintah yang jelas, logis dan sistematis untuk menyelesaikan suatu masalah. Dalam kasus input nilai ujian di atas, maka algoritmanya adalah sebagai berikut:
- Mendeklarasikan sebuah variabel untuk menampung nilai ujian yang diinput, misalnya variabel a;
- Menginput sebuah nilai ke dalam variabel a;
- Jika nilai yang diinput lebih dari 100 atau kurang dari 0, maka ulangi perintah nomor 2;
- Jika tidak, maka program selesai.
Setelah menyusun algoritmanya, maka langkah selanjutnya adalah menerjemahan algoritma yang telah disusun ke dalam sebuah kode program. Setelah selesai, maka kode yang telah dibuat bisa dicoba untuk dieksekusi.
Ada 3 kemungkinan, berdasarkan pengalaman saya, yang akan terjadi ketika kita mengeksekusi program yang telah kita buat. Yang pertama, program kita tidak berjalan karena ada sebuah error pada sintaks penulisan, misalnya lupa memberi tanda semicolon (“;”) pada setiap instruksi yang diberikan. Ini adalah sebuah kemungkinan yang menurut saya paling gampang untuk diatasi.
Yang kedua, program kita berjalan dengan semestinya. Ini adalah sebuah momen yang membuat para programmer senang bukan kepalang. Minimal, programnya bisa jalan saja sudah senang. Meskipun belum tahu apakah ada bug atau semacamnya. Syukur-syukur kalau program yang dibuat tidak ada bug-nya sama sekali.
Yang ketiga, kemungkinan yang menurut saya paling menyebalkan. Program yang dibuat berhasil di jalankan, namun tidak berjalan sesuai dengan apa yang diinginkan karena adanya bug. Kemungkinan ini cukup membuat para programmer pusing, karena untuk menemukan di mana letak kesalahannya, harus teliti sekali memahami alur program yang dibuat itu. Baru kemudian bisa memprediksi di mana letak kesalahannya.
Yah, kira-kira begitulah alur dari pembuatan sebuah program. Dan jika mengacu kepada penuturan di atas, maka jelas bahwa langsung membuat program tanpa identifikasi masalah kurang tepat dan tidak dianjurkan untuk dilakukan. Boleh-boleh saja dilakukan, tapi menurut saya, that is such a nonsense. Percuma, dan hanya akan buang-buang waktu.
Inilah yang saya maksud dengan membangun sebuah paradigma pemrograman. Cara kita memandang bagaimana kita membuat sebuah program untuk menyelesaikan suatu permasalahan yang diberikan. Bahwa dalam menyusun sebuah program, ada tahapan-tahapan yang harus dilakukan. Semuanya bertahap dan berproses.
Kesulitan dalam memahami inti permasalahan
Inilah yang seringkali terjadi, ketika kita hendak membuat sebuah program. Dan justru inilah yang terpenting, menurut saya. Karena dari inti permasalahan ini, bisa didapatkan informasi-informasi yang dapat menyelesaikan permasalahan itu. Jika inti permasalahannya saja belum dapat dipahami, maka bagaimana mungkin program bisa dibuat?
Ada 2 tips untuk mengasah kemampuan dalam memahami inti permasalahan. Yang pertama, mulailah dari hal-hal sepele. Seperti, apa inti dari permasalahan pintu kamar kost kita? Apakah terkunci dan kuncinya hilang? Apakah engselnya rusak? Apakah pintunya sudah jelek? Dari sana, kita bisa mendapatkan informasi-infomasi untuk mengatasi inti permasalahan itu, kemudian menyusun langkah-langkah yang harus dilakukan, dan melaksanakan langkah-langkah itu.
Yang kedua, tingkatkan jam terbang. Ini adalah pepatah dari dosen saya. Dan memang benar, dengan jam tebang yang lebih ditingkatkan, kemampuan programming kita akan lebih mantap lagi. Ibarat sebuah pisau yang diasah selama 30 menit, akan lebih tajam daripada pisau yang diasah selama 1 jam.
Sebenarnya jika dipikirkan lebih dalam, pemrograman mirip sekali dengan penyelesaian masalah sehari-hari kita. Atau, bahkan mungkin sudah menjadi bagian daripada itu. Maka harusnya , kita tidak mengalami kesulitan yang berarti dalam membuat sebuah program.
Harusnya loh, ya… He he he.