Salahmu sendiri

MEMBACA

Sampai awal bulan ini (Maret) saya memberi para mahasiswa bimbingan saya target bahan bacaan. Sesuatu yang tampaknya dibenci banyak mahasiswa. Apalagi bahan bacaan itu (“kebetulan”) hampir semuanya berbahasa asing. Usahanya menjadi dua kali lipat, membaca untuk berusaha memahami dan (karena itu) sampai perlu membuka kamus atau menggunakan Google Translate.

2016-03-12_10-29-44

Tujuannya tentu bukan gaya-gayaan atau untuk keren-kerenan. Ini sebenarnya langkah dan tugas yang amat biasa di sistem yang lebih maju dalam sains dan teknologi. Saat tuntutan kemajuan dan kemampuan bersaing jauh lebih tinggi daripada sekedar membela kemalasan. Terlebih lagi bentuk kemalasan yang minim mendorong kemajuan. Contoh bentuk “kemalasan” yang mendorong kamajuan adalah remote control dan wireless phone (kemudian cell phone lalu smartphone). Budaya membaca dan belajar memang belum menjadi bagian dari budaya dan peradaban di sebagian masyarakat kita di Indonesia, jujur saja lah.

Ada beberapa tujuan yang bisa saya kemukakan dari tugas baca seperti pada gambar screenshot di atas. Pertama tentu saja agar mahasiswa yang mengerjakan tugas akhir memahami terlebih dahulu peta lebar pekerjaan yang akan dilakukannya. Dengan kata lain overview. Keduaownership. Di banyak tempat, sudah biasa bahwa Tugas Akhir / Skripsi adalah pekerjaan dari mahasiswa sepenuhnya. Mereka lah yang mati-matian berjuang dari awal sampai akhir, berjibaku. Konon di negara maju, kemandirian pengerjaan tugas sekolah/perguruan tinggi relatif amat tinggi, didukung dengan sumber bantuan seperti Internet, perpustakaan dan workshop. Ini pantas ditiru, langkahnya antara lain dengan banyak membaca bahan-bahan yang relevan dengan apa yang akan dikerjakan. Baik yang berkenaan langsung maupun bahan bacaan yang sifatnya mendukung. Terkadang bahan bacaan yang tidak langsung membahas apa yang akan dikerjakan oleh mahasiswa malah menjadi bahan yang mendasari dan menjadi bahan yang fundamental untuk karya yang akan dihasilkan. Bahasan yang bersifat filosofis umumnya menjadi bahasan dalam golongan ini. Sedari awal mahasiswa dilatih untuk memiliki rasa kepedulian yang tinggi terhadap pekerjaannya dengan berinvestasi waktu dan sumberdaya lainnya pada bahan-bahan belajar yang menjadi dasar dari pekerjaaannya.

Ketiga, mahasiswa (siswa perguruan tinggi) yang telah lulus seharusnya telah berhenti menjadi pembeo. Orang yang hanya menuruti apa kata orang lain begitu saja tanpa pengkajian sama sekali, sekalipun itu sesungguhnya adalah kajian dalam bidangnya. Terlebih lagi sekedar mengekor sumber yang tidak terpercaya. Keprihatinan cukup banyak pihak juga menjadi keprihatinan saya, budaya membaca dan belajar masih sangat rendah. Karena itu, melalui tugas membaca sumber-sumber bacaan mahasiswa dilatih untuk mengacu pada sumber-sumber yang relatif dapat dipercaya, sumber-sumber primer dan sekunder. Sumber-sumber yang lebih dekat ke asal informasi dan mengurangi distorsi informasi yang tidak perlu.

Mahasiswa juga dilatih untuk memperbandingkan informasi yang datang dari berbagai sumber mengenai hal yang sama. Mengurangi kebiasaan membeo untuk hal-hal yang semestinya ditelusuri terlebih dahulu. Hal-hal yang sebenarnya merupakan bagian dari bidang pekerjaannya. Ini seperti mengumpulkan kepingan puzzle, memilih dan menyusunnya. Detail informasi sering perlu disusun sedemikan rupa agar menjadi gambaran yang pas/tepat dari sesuatu yang lebih besar. An overview, a bigger picture. Suatu keterampilan yang diperlukan kalau mau bersaing di bidang pekerjaan engineering di level lulusan perguruan tinggi. Salah itu biasa, tetapi kesalahan yang berasal dari keengganan akibat tidak terlatih adalah suatu pola. Pola yang merugikan dan berbahaya, termasuk di antaranya tidak terbiasa membandingkan sumber informasi.

 

BERLATIH BENAR DAN SALAH

Setelah fondasi membaca berbagai bahan bacaan untuk mendapatkan gambaran besar (overview) dari pekerjaan, berlatih untuk peduli terhadap pekerjaan yang dilakukan, mampu mencari kemudian membandingkan dan menyusun kepingan-kepingan informasi, maka langkah selanjutnya (dengan tetap meneruskan kegiatan membaca dengan intensif) adalah untuk berlatih melakukan pemrograman perangkat.

Kebetulan bimbingan saya tahun ini memiliki dasar penggunaan sistem yang sama, ada bagian pekerjaan yang seragam. Ini memudahkan proses belajar bersama. Keempatnya menggunakan sistem dengan komponen utama mikrokontroler. Komponen ini memerlukan pemrograman perangkat lunak untuk dapat beroperasi dengan benar sesuai yang dikehendaki.

Sebagaimana bagian lain, ada banyak sisi yang bisa menjadi cerita menarik yang dapat diangkat dari pekerjaan ini. Kali ini sisi yang dapat disebut sebagai “berlatih salah”. Tapi sebelumnya, ada baiknya untuk menyampaikan bagian yang benar, manfaat berlatih software programming, terlebih dahulu.

Ada banyak manfaat yang bisa didapat dengan belajar melakukan pemrograman. Di negara-negara maju, bahkan anak-anak sudah diajari dan dilatih untuk melakukannya. Ini sebenarnya, IMHO, bukan tentang program komputer, tetapi justru lebih tentang manusianya, tentang kemampuan berpikir [1]. Saya mengakui sebagai seorang amatir dalam hal ini, tetapi bahkan sebagai amatir sekalipun ada banyak manfaat yang bisa diperoleh dari kegiatan pemrograman perangkat lunak (software) ini, yang bahkan tidak selalu mengenai software.

Misalnya, dengan berlatih melakukan pemrograman, kita akan lebih akrab dengan konsep what-if, bagaimana seandainya jika. Ini bagian penting dari kegiatan pemecahan masalah, perencanaan dan kreatifitas secara umum. Bagaimana jika ini yang dilakukan, apa akibatnya? Bagaimana jika yang terjadi sesuatu yang tidak justru tidak ingin diperoleh, apa antisipasi yang dapat dilakukan? Hal-hal seperti ini dapat dilatih dengan menggunakan branching (percabangan) pada flow control (pengendalian aliran program). Misalnya dengan if statement atau switch statement. Berlatih mengantisipasi dengan berandai-andai dalam pemrograman itu bukanlah lamunan pengandaian yang kosong. Ini justru melatih kesigapan pikiran. Melatih memperkirakan apa yang mungkin terjadi, apa antisipasinya. Setidaknya berlatih tabah dan tidak terkejut kalau sesuatu yang diperkirakan benar-benar terjadi tetapi kuasa kita atasnya amatlah kecil, hehehe.

Selain itu, masing dengan flow control, kita bisa berlatih meringkas. Berlatih melakukan otomasi proses yang sama yang berlangsung berulang-ulang. Kita bisa melakukannya dengan looping, seperti do dan/atau while, atau dengan for loop statement. Kita berlatih untuk mengidentifikasi hal-hal yang berlangsung berulang-ulang dan dapat diringkas menjadi suatu yang bersifat otomatis. Berlatih menggabungkan bagian yang sesungguhnya sama dari banyak proses yang berbeda.

2016-03-12_09-34-21c

Gambar tepat di atas paragraf ini adalah contoh hasil kompilasi dari listing program yang salah, kode yang salah. Kompiler memberikan pesan bahwa terjadi kesalahan sehingga program gagal dikompilasi. Ada dua bentuk kesalahan dalam pemrograman, yaitu kesalahan syntax dan kesalahan logika. Kesalahan dalam bentuk pertama secara umum biasanya dapat lebih mudah untuk ditangani, diperbaiki. Sekalipun belum tentu compiler menunjukkan letak tepat dari sumber kesalahan dalam bentuk kesalahan syntax tetapi setidaknya compiler telah berusaha menunjukkan bagian program yang menyebabkan kesalahan. Hal yang berbeda untuk kesalahan dalam bentuk kesalahan logika dalam melakukan pemrograman. Kadang saya menyebut bentuk kesalahan ini sebagai kesalahan gagal pikir. Secara tradisional compiler dikatakan sangat terbatas atau bahkan sama sekali tidak memeriksa bentuk kesalahan logika dalam kode program. Meski terbatas, salah satu perangkat bantu untuk mengurangi kesalahan adalah lint, keterangannya bisa dibaca di tautan ini dan di sini.

Rencananya sebagai awalan, setelah fondasi pemrograman diperkirakan cukup dilatih, saya akan belajar bersama dnegan mahasiswa bimbingan TA mengenai kelasahan dalam bentuk syntax error, seperti pada gambar. Bentuk kesalahan ini lebih sederhana, dan seperti manusia yang baru belajar yang umumnya belajar merangkak terlebih dahulu sebelum belajar melangkah tegak dan kemudian berlari, begitu pun pelajaran ini akan dilakukan.

Apa pentingnya kesalahan ini justru dilatih? Jawabannya sederhana, seperti dalam banyak hal di dunia nyata ada sejumlah skenario kesalahan yang sengaja dilatih. Dengan simulator, para pilot pesawat terbang berlatih penanganan kegagalan mesin saat penerbangan. Pasukan anti teror berlatih situasi penyanderaan. Pemadam kebakaran berlatih melakukan upaya pemadaman di gedung bertingkat. Semuanya menuju pada kesiapan dan kesigapan pada saat situsai yang sebenarnya terjadi. Mereka mengurangi kemungkinan gagap dan bahkan gagal berfungsi dengan baik saat situasi yang sebenarnya terjadi. Begitu pun untuk kegiatan pemrograman ini, berlatih agar siap dan sigap, agar terbiasa mengatasi kesalahan yang mungkin terjadi.

Bentuk syntax error dapat terjadi karena kita tidak/belum mengetahui bagaimana melakukan penulisan kode yang benar. Hal ini dapat diatasi dengan banyak mambaca dan menonton sumber-sumber yang relevan. Hal yang sudah dibahas di bagian awal tulisan ini. Kesalahan juga bisa terjadi karena kurang berlatih, itulah yang diusahakan ditangani dengan latihan ini.

Berlatih salah dengan sengaja dalam pemrograman, dalam waktu dan tempat yang tepat, sangatlah penting. Kita perlu berlatih sedapat mungkin dalam batas proporsional untuk dapat menerjemahkan dengan baik pesan kesalahan oleh compiler. Ini mempercepat proses perbaikan (debugging) dan menghindarkan rasa frustasi yang tidak perlu. Frustasi dapat menyebabkan kondisi emosional yang tidak baik yang justru akan mengganggu proses pengerjaan Tugas Akhir dan pekerjaan lainnya.

Salah satu manfaat lain dari berlatih pemrograman perangkat lunak komputer (dalam berbagai bentuk perangkat fisik) adalah berlatih untuk bertanggung jawab secara proporsional. Misalnya, saat kita berlatih syntax suatu bahasa pemrograman kita sedikit banyak terlatih secara otomatis untuk mengingat bagian-bagian yang paling sering kita lakukan dan bagian yang terpenting. Saat kita melakukan kesalahan menulis syntax kode karena lupa, kita tidak bisa menyalahkan orang lain. Dengan asumsi tidak ada gangguan luar yang signifikan, kita yang menulis sendiri kode itu, kita lah yang secara umum bertanggung jawab atasnya. Apalagi kalau kesalahan itu terjadi karena kita kurang rajin membaca, kurang rajin mati-matian belajar. Ini adalah suatu bentuk latihan yang baik. When you learn to code, you and you alone are the master of your own code.

 

Footnotes    (↵ returns to text)

  1. Marina Umaschi Bers is a professor both of child and human development and of computer science at Tufts University. “Our research shows learning how to program has an impact in improving sequencing skills,” she told me in September. “If you get better at sequencing, it has a measurable positive effect on reading comprehension. A parent can have their kid engage in coding with the knowledge that a lot of kids won’t become programmers, but there is this broad-based benefit.”
    http://www.npr.org/sections/ed/2016/01/12/462698966/the-president-wants-every-student-to-learn-computer-science-how-would-that-work

Leave a Reply

Your email address will not be published. Required fields are marked *