Definisi Computational Thinking

Computational thinking adalah cara berpikir untuk menyelesaikan masalah (problem solving) dengan cara menguraikannya menjadi beberapa tahapan yang efektif, efisien, dan menyeluruh, meliputi: decomposition, pattern recognition, abstraction, algorithms yang merupakan beberapa konsep dasar ilmu komputer.

Pemikiran komputasi dianggap diinisiasi oleh artikel jurnal Wing pada tahun 2006. Namun, sebetulnya subjek serupa telah dirujuk oleh Papert (1996) dengan nama “pemikiran prosuderal”.

Wing (2006, hlm. 33) berpendapat bahwa computational thinking melibatkan pemecahan masalah, perancangan sistem, memahami perilaku manusia dengan berkaca pada konsep-konsep dasar ilmu komputer.

Apa saja tahapannya? seperti yang telah dijelaskan sebelumnya, pemikiran komputasi melibatkan 4 tahap utama, yakni:

  1. Decomposition, merupakan pembagian masalah menjadi bagian-bagian yang lebih kecil atau sederhana.
  2. Pattern recognitionyakni mencari atau mengenali kesamaan pola dalam maupun antar masalah yang ingin dipecahkan.
  3. Abstractionmelihat permasalahan secara mendasar sehingga dapat melihat jangkauan luas yang lebih penting dan mengabaikan detil kecil yang sebetulnya kurang relevan.
  4. Algorithmmengembangkan sistem, sekuen, atau langkah-langkah solusi yang dapat diterapkan secara menyeluruh terhadap pola yang sama sehingga lebih efektif dan efisien.

Dapat dikatakan pula bahwa apa itu computational thinking atau pemikiran komputasi merupakan metode untuk menyelesaikan masalah melalui tahapan-tahapan berpikir dalam merancang pengembangan sistem atau aplikasi komputer.

Ya, karena pada awalnya, pemikiran ini adalah pemikiran yang digunakan untuk memecahkan permasalahan ilmu komputer.

Biasanya, pengembangan aplikasi dimulai dengan kebutuhan sistem. Kebutuhan sistem akan menimbulkan banyak permasalahan antara keinginan pengguna (yang membutuhkan aplikasi) dengan Programmer atau sistem komputer yang digunakan untuk mengembangkan aplikasi tersebut.

Meskipun begitu, pemikiran komputasi dapat diimplementasikan terhadap permasalahan lain di luar ilmu komputer pula. Hal ini dapat terlihat dari definisi berbeda dari salah satu pemikir utama computational thinking, yakni Jeannette M. Wing.

Pada tahun 2011, Wing mengubah definisi pemikiran komputasi menjadi: Computational thinking adalah proses berpikir yang merumuskan masalah dan solusinya, sehingga solusi tersebut direpresentasikan dalam bentuk yang dapat dilakukan secara efektif oleh agen pengolah informasi (Wing, 2011).

Contoh Computational Thinking

Apakah cara berpikir computational thinking bekerja? Sebagai seseorang yang telah bergelut dengan sistem informasi dan aplikasi, ya, pemikiran komputasi sangat efektif untuk digunakan, setidaknya dalam kacamata informatika.

Sepanjang karir saya sebagai developer (programmer) terdapat masa ketika saya tidak menyadari bahwa saya sedang menggunakan metode computational thinking. Bagaimana pemikiran komputasi bekerja dalam dunia ilmu komputer akan saya gambarkan dalam beberapa baris penjelasan di bawah ini.

Computational Thinking dalam Pengembangan Aplikasi

Kebutuhan aplikasi akan banyak menimbulkan masalah yang harus dipecahkan agar aplikasi tersebut dapat bekerja dan digunakan. Salah satu contohnya adalah bagaimana input dari user harus diverifikasi validitasnya. Misalnya, suatu form isian wajib di isi, jika tidak aplikasi tidak dapat memprosesnya.

Bagaimana cara mengecek suatu form telah diisi oleh user atau tidak? Tentunya dengan mengecek satu-persatu form wajib yang harus di isi. Katakanlah, kita memberikan perintah ini pada sistem:

Jika form nama tidak diisi, Maka: “beri peringatan dan hentikan proses pendaftaran aplikasi”.

Jika form nama diisi, Maka: “lanjutkan proses pendaftaran aplikasi”.

Sehingga, jika form nama tidak diisi maka aplikasi akan menghentikan proses pendaftaran, sebaliknya jika form nama diisi, maka proses pendaftaran aplikasi akan dilanjutkan.

Tampaknya masalah tersebut sudah diselesaikan bukan? Salah. Karena banyak form lain yang wajib untuk di isi pula (bisa belasan bahkan puluhan). Tentunya, bisa saja kita membuat “Jika” yang lainnya untuk semua form. Namun di sana terdapat celah untuk melakukan salah satu aspek pertimbangan computational thinking, yakni: pengenalan pola yang sama (pattern recognition).

Daripada menduplikasi kedua perintah di atas satu persatu untuk semua form yang ada, lebih baik kita membuat algoritma yang dapat dipakai berulang-ulang untuk semua form. Maka, dengan computational thinking, kita akan membuat semacam:

$yang_divalidasi = $nama, $alamat, $nomor_telepon, dsb;

Algoritma Validasi Form yang Kosong ($yang_divalidasi) {

Jika $yang_divalidasi tidak diisi, Maka: “beri peringatan dan hentikan proses pendaftaran aplikasi”.

Jika $yang_divalidasi diisi, Maka: lanjutkan proses pendaftaran aplikasi”.

}

Selanjutnya kita tinggal memerintah Algoritma Validasi Form yang Kosong untuk menyelesaikan permasalahan pada seluruh form yang tidak boleh kosong, misalnya:

Algoritma Validasi Form yang Kosong ($yang_divalidasi);

Jauh lebih efektif bukan? Permasalahan benar-benar diselesaikan secara mendasar dan menyeluruh. Kita tidak harus membuat perintah berulang-ulang hingg puluhan baris untuk setiap masalah serupa yang akan kita hadapi.

Computational Thinking dalam Kehidupan Sehari-hari

Lalu seperti apa implementasinya dalam hal lain di luar ilmu komputer? Sesungguhnya, computational thinking telah banyak diterapkan dalam berbagai hal. Contoh mudahnya adalah bagaimana sistem antrean menyelesaikan permasalahan keadilan dan keefisienan dalam menunggu giliran.

Berbagai sistem manual seperti hukum, syarat dan ketentuan, SOP (standar operasional) dalam melaksanakan suatu pekerjaan merupakan salah satu bentuk nyata dari pemikiran komputasi.

Bedanya, jika sistem tersebut dibuat berlandaskan pemikiran komputasi, maka peraturan yang ada akan jauh menjadi lebih dinamis dan sesuai dengan kebutuhannya.

Misalnya, tanpa computational thinking pemerintah Amerika mengalami penambahan narapidana pemakai obat-obatan terlarang. Bahkan, penjara mereka yang tentunya cukup luas dengan daya tampung besar sudah tidak dapat menampungnya lagi.

Hal tersebut karena sistem hukum yang berlaku terlalu kaku, semua pengguna narkoba dianggap kriminal. Padahal, sebagian dari mereka tak lain sekedar korban yang bukan membutuhkan penjara, namun justru membutuhkan rehabilitasi. Computational thinking akan menerapkan alogirtma yang sesuai terhadap masing-masing profil pelanggar hukum.

Bandar dihukum berat (termasuk penjara), pengguna yang mengajak orang lain diberikan sanksi sosial hingga penjara, sementara korban pengguna yang “terbawa” cukup direhabilitasi saja. Terdapat sekuen yang berulang-ulang untuk memastikan setiap permasalahan ditangani oleh hal yang benar-benar akurat dan relevan yang merupakan salah satu bagian dari pemikiran komputasi: algorithm.

Tampaknya computational thinking sudah ada dalam kehidupan sehari-hari. Hal ini juga sudah kita ketahui tanpa adanya literasi ini. Lalu apa bedanya computational thinking dari pemikiran lain? Ini adalah salah satu hal yang banyak dipertanyakan oleh para ahli.