Berpikir komputasional (Computational Thinking) adalah pendekatan dalam memecahkan masalah yang melibatkan penggunaan konsep dan teknik yang biasanya digunakan dalam ilmu komputer sehingga solusinya dapat dijalankan baik oleh mesin (komputer) maupun manusia.
BK bukan tentang belajar kode atau menjadi seorang programmer, tetapi tentang berpikir dengan cara yang lebih logis dan sistematis dalam menyelesaikan berbagai jenis masalah. Karena sistem komputer pada pada hakikatnya meniru dunia ini untuk dijadikan dunia digital sehingga bisa membantu atau menggantikan manusia dalam melakukan pekerjaan pekerjaan yang sulit maupun membosankan.
Ada 4 fondasi berpikir komputasional yang dikenal dalam ilmu Informatika, yaitu:
Dekomposisi (Decomposition): Memecah masalah yang besar dan kompleks menjadi bagian-bagian yang lebih kecil dan lebih mudah dipecahkan.
Pengenalan Pola (Pattern Recognition): Mengidentifikasi pola atau kesamaan di antara masalah yang berbeda untuk memudahkan pemecahannya.
Abstraksi (Abstraction) : Mengabaikan detail yang tidak relevan untuk fokus pada informasi yang paling penting dan umum dari suatu masalah.
Algoritma (Algorithm): Merancang langkah-langkah yang jelas dan terstruktur untuk menyelesaikan masalah, yang kemudian dapat diimplementasikan sebagai program komputer.
Dekomposisi adalah salah satu dari empat pilar utama dalam computational thinking (berpikir komputasional), yang melibatkan proses memecah masalah atau tugas yang kompleks menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan memecah masalah besar menjadi sub-masalah yang lebih sederhana, kita bisa lebih mudah memahami dan menyelesaikan setiap bagian secara terpisah sebelum menyusun solusi keseluruhan.
Contoh penerapan dekomposisi dalam dunia nyata:
Pembangunan Gedung:
Masalah utama: Membangun sebuah gedung pencakar langit.
Dekomposisi:
Perencanaan Arsitektur: Mendesain tata letak dan struktur gedung.
Fondasi dan Struktur: Membangun fondasi dan rangka utama gedung.
Instalasi Utilitas: Pemasangan listrik, pipa air, dan sistem HVAC (Heating, Ventilation, and Air Conditioning).
Interior dan Eksterior: Menyelesaikan dinding, lantai, dan atap, serta dekorasi interior.
Keamanan dan Sistem Darurat: Instalasi sistem pemadam kebakaran, alarm, dan tangga darurat.
Menciptakan video game baru:
Masalah utama: Menciptakan video game baru.
Dekomposisi:
Storyline Development: Menulis cerita utama, karakter, dan alur game.
Graphic Design: Mendesain karakter, lingkungan, dan antarmuka pengguna.
Programming: Mengembangkan mekanika permainan, kecerdasan buatan, dan integrasi dengan perangkat keras.
Audio Design: Membuat efek suara, musik latar, dan suara karakter.
Testing dan Debugging: Memastikan game berjalan lancar tanpa bug (error tersembunyi).
Abstraksi dalam berpikir komputasional adalah proses menyederhanakan masalah kompleks dengan cara memfokuskan pada komponen atau elemen penting, sambil mengabaikan detail-detail yang tidak relevan. Tujuannya adalah untuk memahami dan memecahkan masalah dengan lebih efektif dengan cara melihat pola atau konsep umum yang berlaku.
Contoh Kasus dalam Dunia Nyata:
Penggunaan Peta Digital:
Masalah: Ketika Anda menggunakan aplikasi peta digital seperti Google Maps untuk mencari rute dari satu tempat ke tempat lain, aplikasi ini tidak menampilkan setiap detail kecil (seperti setiap bangunan kecil, pepohonan, atau saluran air) di sepanjang jalan.
Abstraksi: Aplikasi peta hanya menampilkan jalan, nama tempat, dan fitur penting lainnya yang relevan dengan perjalanan Anda. Semua detail yang tidak relevan diabaikan.
Manfaat: Ini memudahkan pengguna untuk fokus pada rute dan navigasi tanpa terganggu oleh informasi yang tidak diperlukan.
Desain User Interface (UI) Aplikasi:
Masalah: Pengguna ingin berinteraksi dengan aplikasi untuk mencapai tujuan tertentu, misalnya mengirim pesan, membeli produk, atau memeriksa saldo bank.
Abstraksi: Desainer UI menyederhanakan antarmuka dengan hanya menampilkan elemen-elemen yang relevan bagi pengguna untuk menyelesaikan tugasnya, seperti tombol kirim, gambar produk, atau jumlah saldo.
Manfaat: Pengguna dapat menggunakan aplikasi dengan mudah tanpa harus memahami bagaimana data diproses di balik layar atau bagaimana algoritma bekerja untuk menampilkan informasi.
Pengenalan Pola melibatkan identifikasi dan analisis pola atau kemiripan dalam data atau masalah yang dihadapi. Dengan mengenali pola-pola ini, kita dapat menemukan solusi yang lebih efisien dan menerapkan kembali solusi yang sudah ada pada masalah baru yang serupa.
Contoh Kasus dalam Dunia Nyata:
Pengolahan Gambar (Image Processing):
Kasus: Mengidentifikasi objek dalam gambar, seperti mengenali wajah dalam foto.
Penerapan: Dalam aplikasi pengenalan wajah, komputer memproses gambar wajah dan mengenali pola seperti jarak antar mata, bentuk hidung, dan posisi mulut. Pola-pola ini kemudian dibandingkan dengan database untuk mengidentifikasi identitas seseorang.
Analisis Data Kesehatan:
Kasus: Mendiagnosis penyakit dari data medis, seperti gambar MRI atau hasil tes darah.
Penerapan: Dalam sistem pendukung keputusan medis, data kesehatan pasien dianalisis untuk menemukan pola yang konsisten dengan penyakit tertentu. Misalnya, dengan mengenali pola dari gambar MRI, sistem dapat membantu mendeteksi tumor atau kondisi medis lainnya.
Algoritma adalah serangkaian langkah atau instruksi yang jelas dan sistematis untuk menyelesaikan suatu masalah atau mencapai tujuan tertentu, yang kemudian dapat diimplementasikan sebagai program komputer.
Contoh Kasus dalam Dunia Nyata:
Pencarian Rute Tercepat dalam Aplikasi Peta (Navigasi GPS):
Masalah: Bagaimana menemukan rute tercepat dari titik A ke titik B?
Algoritma: Aplikasi peta menggunakan algoritma seperti Dijkstra atau A* (A-star) untuk mencari rute terpendek dengan mempertimbangkan berbagai faktor seperti jarak, lalu lintas, dan waktu tempuh.
Langkah-langkah:
Mulai dari titik A.
Identifikasi semua rute yang mungkin menuju titik B.
Periksa panjang dan waktu tempuh masing-masing rute.
Evaluasi kondisi lalu lintas terkini di masing-masing rute.
Pilih rute dengan waktu tempuh terpendek.
Tampilkan rute tersebut kepada pengguna.
Penentuan Harga Produk dalam E-commerce:
Masalah: Menentukan harga diskon terbaik untuk menarik pembeli namun tetap menguntungkan.
Algoritma: Algoritma optimisasi seperti Linear Programming atau Dynamic Programming dapat digunakan untuk menentukan harga terbaik berdasarkan berbagai parameter seperti biaya, margin keuntungan, dan harga kompetitor.
Langkah-langkah:
Tentukan harga dasar produk.
Kumpulkan data harga dari kompetitor.
Hitung margin keuntungan minimal yang diinginkan.
Simulasikan berbagai skenario diskon.
Pilih skenario yang memberikan keuntungan optimal dengan harga kompetitif.
Terapkan harga tersebut pada produk di situs (website).