Menganalisis strategi algoritmik, membandingkan efisiensi solusi, dan memilih pendekatan terbaik dalam pemecahan masalah kompleks menggunakan logika, algoritma, dan struktur data.
Berpikir Komputasional (Computational Thinking) adalah kemampuan memecahkan masalah secara sistematis dan efisien menggunakan prinsip-prinsip yang ada dalam ilmu komputer. Berpikir komputasional bukan berarti berpikir seperti komputer, melainkan berpikir secara logis dan terstruktur untuk menyelesaikan masalah nyata.
Memecah masalah besar menjadi bagian-bagian kecil yang lebih mudah diselesaikan. Misalnya, membuat program game dipecah menjadi: desain antarmuka, logika permainan, sistem skor, dan penanganan input.
Mengidentifikasi kesamaan, tren, atau keteraturan dalam data dan masalah. Misalnya, mengenali bahwa semua bilangan genap habis dibagi 2 adalah pengenalan pola yang membantu membuat algoritma lebih efisien.
Menyederhanakan masalah dengan fokus pada informasi yang penting dan mengabaikan detail yang tidak relevan. Contoh: peta kota adalah abstraksi dari kota nyata — hanya menampilkan jalan dan lokasi penting.
Merancang serangkaian langkah-langkah logis dan terurut untuk menyelesaikan masalah. Algoritma harus jelas, tidak ambigu, dan menghasilkan output yang benar untuk setiap input yang valid.
| Strategi | Deskripsi | Kompleksitas | Contoh Penggunaan |
|---|---|---|---|
| Brute Force | Mencoba semua kemungkinan | O(n²) atau lebih | Mencari elemen dalam daftar tak terurut |
| Divide & Conquer | Bagi masalah, selesaikan, gabungkan | O(n log n) | Merge Sort, Binary Search |
| Greedy | Pilih solusi terbaik lokal setiap langkah | O(n log n) | Huffman Coding, Dijkstra |
| Dynamic Programming | Simpan hasil submasalah yang sudah dihitung | O(n²) | Knapsack Problem, Fibonacci |
| Backtracking | Coba solusi, mundur jika gagal | O(2โฟ) | Sudoku Solver, N-Queens |
Memilih struktur data yang tepat adalah kunci efisiensi algoritma. Berikut pertimbangan utama:
Misalnya, sekolah ingin menjadwalkan 30 mata pelajaran di 10 ruang kelas tanpa konflik waktu. Berikut pendekatan berpikir komputasional:
Setelah memahami konsep di atas, coba jawab pertanyaan berikut:
"Setiap masalah yang kelihatan rumit sebenarnya terdiri dari masalah-masalah kecil yang bisa diselesaikan satu per satu." — Donald Knuth