*Artikel asli dimuat di Facebook Page Dr. Sunu Wibirama

Pagi ini saya membaca satu berita yang menurut saya menjadi berita bagus untuk masyarakat umum. Dalam berita yang saya baca, Kemenristek berencana akan menggelar kursus coding massal bagi seluruh lapisan masyarakat, tanpa memandang latar belakang pendidikan SDM-nya.

Belajar coding (computer programming) cukup penting. Namun yang lebih penting dari coding adalah belajar memahami proses bisnis di balik coding dan logika komputasi untuk menyusun solusi berbasis program komputer.

Ide yang menurut saya cukup fenomenal — leap of faith — ini sebenarnya bukan program baru. Dalam dua tahun belakangan, saya terlibat sebagai mentor dalam program yang mirip yang diselenggarakan oleh Kementerian Kominfo (Program Digital Talent Scholarship). Bedanya, program yang diadakan oleh Kominfo ini sedikit banyak menyasar pada mahasiswa atau lulusan sarjana yang memiliki latar belakang rekayasa (engineering) atau sains. Hal lain yang cukup berbeda adalah program Digital Talent Scholarship ini berasumsi bahwa peserta sudah memiliki kemampuan dasar coding.

Nah, jika coding ditawarkan untuk seluruh lapisan masyarakat tanpa memandang latar belakang pendidikan, benarkah coding akan menjadi satu-satunya solusi untuk memajukan ekonomi digital? Apa saja kira-kira masalah riil dalam implementasi program ini?

Sebagai computer scientist yang sudah melakukan coding sejak tahun 2004 (artinya sudah 15 tahun saya berurusan dengan computer programming), hanya semata-mata belajar coding tidak akan menyelesaikan masalah kesenjangan dalam ekonomi digital di Indonesia. Mengapa demikian? Computer programming atau coding itu hanya alat, bukan tujuan. Tujuan sebenarnya adalah memberikan solusi berbasis konsep komputasi untuk menyelesaikan masalah dan tidak membuat masalah baru dengan menambah stress pengguna solusi tersebut.

Lalu apa yang perlu dipelajari selain coding? Saya mengidentifikasi setidaknya ada empat hal pokok yang bisa dipelajari sebelum seseorang mempelajari computer programming (coding). Apapun latar belakang pendidikannya, empat hal di bawah ini penting dipelajari sebelum seseorang belajar computer programming secara serius.

[?] ?????? ???????? ??? ??????? ??????? ???????.
Sebagaimana yang saya sampaikan, coding adalah bagian kecil dari proses penyelesaian masalah. Nah, untuk menyelesaikan masalah ini, perlu pola berpikir yang komprehensif dengan mempertimbangkan berbagai macam aspek yang saling berinteraksi dalam proses bisnis tertentu (complex problem solving). Langkah-langkah penyelesaian masalah dengan mendesain solusi berbasis komputasi pun ada ilmunya (design thinking). Orang yang mengerti coding tapi tidak memiliki pengetahuan mendasar tentang design thinking dan complex problem solving ibarat orang yang memakai kaos dalam setelah memakai baju hem. Orang tersebut tahu cara memakai kaos dalam, tapi tidak mengerti bagaimana menempatkan kaos dalam dan hem dengan benar.

[?] ????????????? ????????.
Setelah mengerti bagaimana mendesain masalah, seorang programmer perlu tahu tentang computational thinking. Di Amerika Serikat dan sebagian sekolah di Australia, kurikulum sekolah dasar sudah memasukkan materi computational thinking ini. Apa itu computational thinking (CT)? CT adalah sebuah ilmu yang mempelajari bagaimana mendesain solusi dengan mempertimbangkan cara kerja komputer.

Apa saja materi-materi yang ada dalam bidang ilmu CT ini? Contoh materi CT paling sederhana adalah memahami bagaimana mendesain sebuah program komputer dengan diagram alir (flowchart). Contoh materi CT yang lain adalah memahami bagaimana komputer bekerja dengan logika komputasi (logic in computing). Selain itu, materi CT lain yang cukup penting adalah memahami kompleksitas algoritme (notasi big O dan kawan-kawannya). Jika sebuah program komputer berjalan dalam skala kecil, mungkin hal ini tidak menjadi masalah besar. Tapi jika program komputer tersebut berjalan di skala data dan proses bisnis yang besar, kompleksitas algoritme menjadi isu yang cukup penting. Ini artinya, belajar coding saja tidak cukup. Seorang programmer harus tahu pada skala apa perangkat lunak yang ia kembangkan akan diimplementasikan.

[?] ????? ?????? ??? ???????? ???????????.
Computer programming tidak semata-mata membuat solusi berbasis komputasi. Seorang programmer biasanya bekerja dalam tim. Pada saat bekerja dalam tim, kode-kode komputer yang ia tulis harus bisa dibaca oleh programmer lain, dengan standar penamaan yang baik serta tidak menimbulkan berbagai macam intepretasi terhadap kode program tersebut. Dokumentasi terhadap kode-kode program komputer tersebut juga harus mengikuti standar tertentu. Hal ini biasa disebut dengan clean coding.

Di sisi lain, membangun sebuah perangkat lunak untuk menyelesaikan masalah harus mengikuti kaidah-kaidah standar pengembangan perangkat lunak (software engineering). Kaidah-kaidah ini meliputi: bagaimana melakukan requirement gathering (user analysis), bagaimana menyusun use-case diagram (alur interaksi antara pengguna dan sistem), bagaimana melakukan validasi dan pengujian atas program komputer yang dibuat, bagaimana melakukan debugging, bagaimana melakukan implementasi perangkat lunak baru yang dikembangkan jika ada perangkat lunak lama yang sudah berjalan (existing software), dan masih banyak lagi.

[?] ?????-????? ???? ?????????? (??).
Terakhir, dan ini yang cukup penting tapi sering terlupa, seorang computer programmer harus belajar tentang dasar-dasar user experience (UX). Solusi berupa perangkat lunak tidak boleh menambah masalah dengan membuat pengguna perangkat lunak tersebut stress berat. UX adalah faktor yang tidak terlihat (intangible), tapi pengaruhnya sangat terasa jika perangkat lunak tersebut digunakan oleh pengguna awam untuk menyelesaikan tugas-tugasnya. Sudah terlalu banyak perangkat-perangkat lunak yang dikembangkan oleh berbagai organisasi maupun kantor gagal memenuhi kebutuhan penggunanya. Justru yang ada adalah perangkat lunak tersebut menambah beban kognitif penggunanya, yang pada akhirnya pengguna tidak mau dan enggan penggunakan perangkat lunak tersebut. Ini sudah saya tuliskan panjang lebar dalam sebuah artikel berbahasa Inggris di Medium.

Empat hal tadi perlu muncul jika pemerintah Indonesia benar-benar serius menggarap ekonomi digital. Saya berharap inisiatif keren ini dibarengi dengan implementasi yang keren juga di lapangan, supaya rakyat benar-benar percaya bahwa pajak yang mereka bayarkan setiap tahun memberi manfaat besar untuk mereka.

Sunu Wibirama
Universitas Gadjah Mada Indonesia
Facebook: Dr. Sunu Wibirama
Youtube: http://youtube.com/wibirama