Daftar Isi ⇅
show
Komputer telah banyak dipergunakan dalam kehidupan sehari-hari untuk mempermudah kehidupan, atau membantu penyelesaian berbagai permasalahan yang kita hadapi. Hal itu rasanya sangat wajar, karena komputer merupakan salah satu pencapaian dan penemuan termuktahir umat manusia. Namun dibalik segala kecanggihan tersebut, sebetulnya cara kerja komputer menyerupai bahkan meniru cara kerja manusia.
Misalnya, komputer akan menerima input atau asupan data agar dapat mengolah dan memberikan outputnya. Manusia juga membutuhkan input agar dapat berpikir dan menyelesaikan masalah, yakni masalahnya itu sendiri. Komputer menggunakan peranti lunak dan keras untuk melakukannya, sementara manusia menggunakan berbagai organ tubuhnya.
Sistem komputer pada pada hakikatnya meniru dunia ini untuk dijadikan dunia digital sehingga bisa membantu atau menggantikan manusia dalam melakukan pekerjaan-pekerjaan yang sulit, dalam kuantitas yang banyak, maupun membosankan karena repetitif.
Namun bukan berarti bahwa berpikir komputasional berarti berpikir seperti komputer. Kita adalah manusia, dan komputer adalah mesin. Sejatinya kita akan berpikir seperti ilmuwan informatika atau seperti seorang programmer yang akan mengembangkan suatu sistem maupun aplikasi. Mengapa demikian? Karena berbagai pemikiran tersebut sangat relevan dengan bidang lain, tidak hanya dalam bidang ilmu komputer.
Apa itu Berpikir Komputasional?
Sederhananya, berpikir komputasional adalah cara berpikir untuk menyelesaikan persoalan, yang cara penyelesaiannya, jika dikembangkan, dapat dilakukan oleh komputer. Dengan kata lain, kita akan berpikir mengenai bagaimana menyelesaikan berbagai persoalan dengan cara yang efektif dan efisien. Dengan demikian, kita akan menemukan solusi yang efisien, efektif, dan optimal sehingga solusinya bisa dijalankan oleh manusia maupun mesin (komputer).
Persoalan apa yang akan diselesaikan? Sebetulnya, hampir semua persoalan sehari-hari mengandung konsep komputasi sehingga bisa diselesaikan dengan bantuan mesin komputer. Sebagai contoh, robot yang bertugas melayani penjualan di restoran atau mengantar makanan dan obat untuk pasien di rumah sakit yang sudah dipakai di beberapa negara maju, sistem komputer untuk memantau perkebunan sawit yang siap panen dan sebagainya.
Itulah mengapa berpikir komputasional merupakan salah satu kemampuan penting yang harus dimiliki. Saat kita menggeluti berpikir komputasional, kita dapat mengaplikasikannya pada sistem konvensional atau kehidupan sehari-hari tanpa teknologi, maupun mengadopsinya pada solusi digital.
Empat Pondasi Berpikir Komputasional
Menurut Tim Kemdikbud (2021, hlm. 25) terdapat 4 pondasi berpikir komputasional yang dikenal dalam ilmu Informatika, yaitu Abstraksi, Algoritma, Dekomposisi, dan Pola, yang sangat mendasar dan secara garis besar dijelaskan sebagai berikut.
- Dekomposisi,
yakni dekomposisi dan formulasi persoalan sedemikian rupa sehingga dapat diselesaikan dengan cepat dan efisien serta optimal. Persoalan yang sulit apalagi besar akan menjadi mudah jika diselesaikan sebagian-sebagian secara sistematis. - Pengenalan pola persoalan,
dilakukan sebagai generalisasi terhadap pola persoalan serta mentransfer proses penyelesaian persoalan ke persoalan lain yang sejenis, sehingga pola dari persoalan diketahui. - Abstraksi,
yaitu menyarikan bagian penting dari suatu permasalahan dan mengabaikan yang tidak penting sehingga memudahkan fokus kepada solusi. - Algoritma,
yaitu menuliskan otomasi solusi melalui berpikir algoritmik (langkah-langkah yang terurut) untuk mencapai suatu tujuan (solusi). Jika langkah yang runtut ini diberikan ke komputer dalam bahasa yang dipahami oleh komputer, kita dapat “memerintah” komputer mengerjakan langkah tersebut.
Intinya, kita akan memecah masalah menjadi unsur-unsur utamanya, kemudian mengenali pola permasalahannya sehingga dapat mencari bagian inti permasalahan yang terjadi, lalu membuat langkah-langkah terurut untuk menyelesaikannya.
Pencarian (Searching)
Apa itu mencari? Mencari adalah menemukan “sesuatu” yang bisa berupa benda, angka, konsep, informasi yang memenuhi kriteria tertentu dalam suatu ruang pencarian. Masalah pencarian sangat umum ditemukan di dalam kehidupan, termasuk dalam dunia komputasi.
Ketika melakukan suatu pencarian, kita harus menemukan suatu benda atau objek yang memenuhi kriteria tertentu dari sekumpulan benda atau objek lain. Masalah pencarian dapat dibuat dalam bentuk yang lebih formal agar dapat diterapkan pada banyak kasus. Elemen pada masalah pencarian meliputi hal-hal berikut.
- Sekumpulan benda atau objek.
- Kriteria dari benda atau objek yang dicari.
- Pengecekan benda atau objek, untuk memeriksa apakah ia memenuhi kriteria pencarian.
Pertanyaan selanjutnya ialah bagaimana strategi untuk mencari. Banyak cara yang dapat kita lakukan, misalnya: kita dapat mengambil objek yang dicari secara acak kemudian mengecek apakah objek tersebut adalah sesuatu yang kita cari.
Cara lain, misalnya dengan memeriksa objek dari yang berada paling atas ke paling bawah. Tentunya, ada banyak strategi lain yang dapat kita gunakan. Ada strategi yang lebih baik daripada strategi yang lain, bergantung pada keadaan benda atau objek tersebut saat pencarian dilakukan.
Tentunya, kita akan lebih mudah mencari suatu buku dengan judul tertentu di lemari perpustakaan yang tersusun rapi dengan aturan tertentu dibandingkan dengan mencarinya di sebuah lemari yang berantakan. Hal ini akan membawa kita pada pembahasan selanjutnya, yakni pengurutan atau sorting.
Pengurutan (Sorting)
Saat merapikan sesuatu, misalnya koleksi buku, kita menyusun buku tersebut dengan menggunakan suatu aturan. Misalnya, jika kita memiliki koleksi buku cerita berseri, kemungkinan besar kita akan menyusunnya secara berurut dari volume pertama hingga volume yang terbaru.
Atau, ketika sedang berbaris, kita diminta untuk membentuk barisan berdasarkan tinggi badan. Hal-hal tersebut merupakan sebuah proses pengurutan atau sorting. Proses pengurutan akan menjadi bagian yang tidak terpisahkan dari program komputer atau aplikasi yang sering kita gunakan.
Terdapat beberapa teknik (algoritma) untuk melakukan pengurutan seperti bubble sort, insertion sort, quick sort, merge sort, dan selection sort.
1. Insertion Sort
Insertion Sort adalah salah satu algoritma yang digunakan untuk permasalahan pengurutan dalam list (daftar objek). Sesuai namanya, insertion sort mengurutkan sebuah list dengan cara menyisipkan elemen satu per satu sesuai dengan urutan besar kecilnya elemen hingga semua elemen menjadi list yang terurut.
Misalnya, dalam kasus mengurutkan elemen list dari yang terkecil hingga terbesar (ascending), tahap pertama ialah kita akan membaca suatu elemen dengan elemen yang berdekatan. Apabila elemen yang berdekatan dengan elemen saat ini lebih kecil, elemen yang lebih kecil akan ditukar dengan elemen yang lebih besar dan dibandingkan kembali dengan elemenelemen sebelumnya yang sudah terurut. Apabila elemen saat ini sudah lebih besar dari elemen sebelumnya, iterasi berhenti. Hal ini dijalankan satu per satu hingga semua list menjadi terurut.
2. Selection sort
Selection sort merupakan algoritma pengurutan yang juga cukup sederhana, dengan algoritma mencari (menyeleksi) bilangan terkecil/terbesar (bergantung pada urut naik atau turun) dari daftar bilangan yang belum terurut dan meletakkannya dalam daftar bilangan baru yang dijaga keterurutannya.
Algoritma ini membagi daftar bilangan menjadi dua bagian, yaitu bagian terurut dan bagian yang belum terurut. Bagian yang terurut di sebelah kiri dan bagian yang belum terurut di sebelah kanan. Awalnya, semua elemen bilangan dalam daftar ialah bagian yang belum terurut, dan bagian yang terurut kosong.
Berikut langkah-langkah yang terdapat pada algoritma selection sort.
- Cari bilangan terkecil yang ada pada bagian belum terurut.
- Tukar bilangan tersebut dengan bilangan pertama bagian belum terurut, lalu masukkan ke bagian terurut.
- Ulangi langkah 1 dan 2 sampai bagian yang belum terurut habis (Tim Kemdikbud, 2021, hlm. 34).
Tumpukan (Stack) dan Antrean (Queue)
Terdapat dua buah konsep cara penyimpanan data/ objek dalam sebuah struktur yang akan menentukan urutan pemrosesan data/objek tersebut, yaitu tumpukan (stack) dan antrean (queue). . Kedua konsep ini memiliki prosedur yang berbeda dalam menyimpan dan mengeluarkan data. Kedua konsep tersebut masing-masing memiliki peranan yang berbeda dan digunakan pada situasi yang berbeda pula.
1. Antrean (queue)
Pada metode ini, objek-objek disimpan dalam metode penyimpanan yang berupa sebuah antrean sehingga objek yang pertama/ lebih dulu datang, juga akan lebih dulu keluar/selesai, layaknya sebuah antrean di loket, pintu masuk, dll. Prinsip ini disebut prinsip First In First Out (FIFO). Dalam sebuah antrean orang, misalnya, jelas orang yang pertama datang akan berada di depan antrean, dan harus menjadi yang pertama yang mendapat pelayanan.
2. Tumpukan (stack)
Pada metode ini, objek-objek disimpan dalam metode penyimpanan yang menyerupai sebuah tumpukan (misal: tumpukan piring). Dengan demikian, objek yang pertama/lebih dulu disimpan justru akan menjadi yang terakhir keluar. Prinsip ini disebut juga Last In First Out (LIFO). Dalam tumpukan piring, misalnya, piring pertama yang diletakkan akan berada di posisi paling bawah, dan jika kita ambil piring satu per satu dari tumpukan itu, tentunya piring yang berada di posisi paling bawah tersebut akan menjadi yang terakhir diambil.
Referensi
- Tim Kemdikbud (2021). Informatika X. Jakarta: Pusat Kurikulum dan Perbukuan, Balitbang, Kemendikbud.
- Tim Kemdikbud (2021). Informatika VII. Jakarta: Pusat Kurikulum dan Perbukuan, Balitbang, Kemendikbud.
Aku cuma mencari contoh
Contoh berpikir komputasional ada di sini: https://serupa.id/apa-itu-computational-thinking-penjelasan-contoh/