Apa itu Berpikir Komputasional?
Melalui
Berpikir komputasional (BK), kalian akan berlatih berpikir seperti seorang
ilmuwan Informatika, bukan berpikir seperti komputer karena komputer adalah
mesin.
Kegiatan
utama dalam BK ialah penyelesaian masalah (problem solving), untuk menemukan solusi yang eisien, efektif, dan optimal sehingga solusinya bisa
dijalankan oleh manusia maupun mesin. Dengan kata lain, kegiatan dalam BK ialah
mencari strategi untuk mengatasi persoalan
Ada 4 fondasi berpikir komputasional yang dikenal dalam ilmu
Informatika, yaitu Abstraksi, Algoritma, Dekomposisi, dan Pola, yang sangat
mendasar dan secara garis besar dijelaskan sebagai berikut.
1. Abstraksi, yaitu menyarikan bagian penting
dari suatu permasalahan dan mengabaikan yang tidak penting sehingga memudahkan fokus kepada solusi.
2. 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, kalian
akan dapat “memerintah” komputer mengerjakan langkah tersebut.
3. Dekomposisi dan formulasi persoalan sedemikian rupa sehingga dapat diselesaikan dengan cepat dan eisien serta optimal dengan menggunakan komputer sebagai alat bantu. Persoalan yang
sulit apalagi besar akan menjadi mudah jika
diselesaikan sebagian-sebagian secara sistematis.
4. Pengenalan pola persoalan, generalisasi serta
mentransfer proses penyelesaian persoalan ke persoalan lain yang sejenis.
Karakteristik
berpikir komputasional adalah sebagai berikut:
1.
Berdasarkan konsep, informatika tidak hanya belajar tentang bagaimana cara
menulis kode program tapi juga diperlukan pemahaman untuk berpikir pada
beberapa tingkat abstraksi.
2. Kemampuan
dasar yaitu kemampuan yang harus dimiliki setiap orang di era milenial.
3. Perlunya
berpikir komputasional agar masalah dapat dipecahkan tanpa harus berpikir
sebagaimana komputer.
4. Memadukan
pemikiran matematis dan pemikiran teknik.
5. Sebuah ide
dan bukan sebuah benda.
6. Diperlukan
bagi setiap orang.
7. Menantang
secara keilmuan dan dapat dipahami/diselesaikan secara saintifik.
8.
Informatika dapat dikuasai oleh orang yang memiliki kemampuan komputasional.
Ruang permasalahan di dunia ini
luas sekali, dan tentunya tak seorang pun ingin hidupnya menghadapi persoalan.
Setiap bidang juga mempunyai persoalan dari sudut pandang bidang masing-masing,
dan akan mengusulkan penyelesaian dengan menggunakan konsep dan prinsip
keilmuan bidangnya. Kita belajar dari persoalan-persoalan yang ada dan pernah
diusulkan solusinya. Oleh karena itu, belajar penyelesaian persoalan ialah
belajar dari kasus-kasus dan solusinya.
A. Pencarian
(Searching)
Hidup adalah pencarian yang
tiada henti. Mari, kita berpikir ke pengalaman “mencari” dalam kehidupan
sehari-hari. Perhatikan contoh berikut.
1. Pernahkah kalian merasa kebingungan saat
mencari sebuah buku di lemari buku kalian? Atau bahkan di perpustakaan? Saat
kalian meminta bantuan kepada petugas perpustakaan, mengapa dia dapat menemukan
buku yang kalian cari dengan waktu yang lebih singkat?
2. Suatu hari, kalian kehilangan baju seragam
yang harus dipakai pada hari itu dan kalian mencarinya. Apa strategi kalian
supaya baju tersebut cepat ditemukan?
3. Kalian mengingat sebuah potongan lirik lagu,
tetapi tidak ingat judul lagu tersebut. Bagaimana kalian bisa menemukan lagu
tersebut dengan cepat?
B. Pengurutan
(Sorting)
Saat merapikan
sesuatu, misalnya koleksi buku, kita menyusun buku tersebut dengan menggunakan
suatu aturan.
Terdapat
beberapa teknik (algoritma) untuk melakukan pengurutan seperti bubble sort,
insertion sort, quick sort, merge sort, dan selection sort. Pada unit ini, hanya akan diberikan
penjelasan untuk setiap tiga teknik ialah sebagai berikut. Teknik lainnya dapat
kalian pelajari dari referensi yang diberikan.
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.
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
C. Tumpukan (Stack) dan Antrean (Queue)
Kita akan
mempelajari 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.
Dalam dunia
komputasi/informatika, terkadang, kita perlu untuk menyimpan data/objek dalam
suatu urutan tertentu, untuk kemudian/sewaktu-waktu diambil/ dikeluarkan
kembali, mungkin untuk diproses lebih lanjut atau untuk tujuantujuan lain.
Ada dua cara
utama kita dapat melakukan penyimpanan ini.
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).
Baik dalam
kehidupan sehari-hari maupun dalam dunia
informatika, kedua konsep urutan penyimpanan data tersebut memiliki peran dan
kegunaan masing-masing. Ada permasalahan-permasalahan/situasi di mana antrean
(FIFO) lebih cocok digunakan. Sebaliknya, ada juga permasalahanpermasalahan di
mana tumpukan (LIFO) lebih tepat diterapkan.
Jika ingin
belajar lebih mendalam tentang materi di atas, kalian bisa mengunjungi tautan
berikut ini.
Pencarian (Searching)
1. Search
Algorithm: https://en.wikipedia.org/wiki/Search_algorithm
2. Binary
Search: https://khanacademy.org/computing/computerscience/algorithms/binary-search
Pengurutan (Sorting)
1. Sorting
Algorithm: https://en.wikipedia.org/wiki/Sorting_algorithm
2. Video
Bubble Sort:https://youtu.be/nmhjrI-aW5o
3. Video
Insertion Sort: https://youtu.be/OGzPmgsI-pQ
4. Video
Selection Sort:https://youtu.be/xWBP4lzkoyM
Rekursi
1.
Rekursi: https://en.wikipedia.org/wiki/Recursion
Graf:
1. Graf:
https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)
2.
Penelusuran graf: https://en.wikipedia.org/wiki/Graph_traversal