Kembali ke Kurikulum

Berpikir Komputasional dan Algoritma

Berpikir komputasional & algoritma: ragam strategi algoritmik, solusi terbaik, modularisasi pemrograman (prosedur/fungsi/array), algoritma standar berbasis AI, evaluasi.

Tujuan Pembelajaran (5)
  • BK-12.1Memaknai sekaligus mengkaji suatu persoalan lewat aneka strategi algoritmik demi menghasilkan ragam alternatif solusi.
  • BK-12.1.1Memilih sekaligus menerapkan solusi terbaik, efisien, optimal dari aneka strategi algoritmik.
  • AP-12.1Memahami modularisasi pada penulisan program, mengenal aneka proses standar sederhana, sembari menulis program berbantukan prosedur/fungsi maupun array.
  • AP-12.1.1Memahami aneka algoritma standar yang efisien untuk keperluan tertentu, berlandaskan kecerdasan buatan (Artificial Intelligence), demi memecahkan persoalan sederhana hingga lanjut.
  • AP-12.1.2Menilai sekaligus memilih algoritma berdasarkan performa, kemampuan dipakai ulang, sekaligus kemudahan implementasi.

Berpikir Komputasional dan Algoritma

Satu persoalan hampir selalu punya lebih dari satu cara penyelesaian. Mencari nama di daftar kontak bisa dilakukan dengan membaca satu per satu dari atas, atau dengan langsung melompat ke huruf awalnya. Keduanya benar, tetapi tidak sama cepatnya. Di kelas X dan XI kalian sudah belajar memecah masalah dan menulis program. Di kelas XII, fokusnya bergeser: membandingkan beberapa strategi algoritmik, menilai mana yang paling efisien, lalu menuliskannya sebagai program yang rapi dan modular.

Bab ini berangkat dari empat pilar berpikir komputasional yang sudah kalian kenal, yaitu dekomposisi, pengenalan pola, abstraksi, dan algoritma. Dari sana kalian akan mengenal strategi seperti brute force, greedy, divide and conquer, rekursi, dan pemrograman dinamis. Setiap strategi punya kelebihan dan keterbatasan, dan tugas kalian adalah memberi alasan mengapa satu strategi lebih layak dipilih untuk persoalan tertentu.

Ilustrasi satu persoalan dengan beberapa jalur solusi yang dibandingkan

Gambar pengantar. Satu persoalan dapat diselesaikan dengan beberapa strategi algoritmik. Bab ini melatih kalian memilih solusi yang paling efisien dan optimal, bukan sekadar solusi yang jalan.

Bagian kedua bab ini membawa kalian ke praktik pemrograman. Program yang besar akan sulit dipelihara jika ditulis sebagai satu blok panjang. Karena itu kalian akan memakai prosedur, fungsi, dan array untuk memecah program menjadi bagian-bagian yang bisa diuji dan dipakai ulang. Kalian juga akan mengenal algoritma standar seperti pencarian dan pengurutan, serta melihat bagaimana algoritma berbasis kecerdasan buatan (AI) dipakai untuk persoalan yang tidak bisa diselesaikan dengan aturan sederhana.

Kurikulum tidak menentukan bahasa pemrogramannya. Contoh di bab ini ditulis dalam pseudocode dan Python agar mudah dibaca, tetapi gagasannya sama jika kalian memakai C, C++, atau papan Arduino.

Tujuan Pembelajaran

Setelah mempelajari bab ini, kamu diharapkan dapat:

  1. mengkaji suatu persoalan dengan beberapa strategi algoritmik dan menghasilkan lebih dari satu alternatif solusi;
  2. memberi alasan tentang efisiensi, kelebihan, dan keterbatasan tiap alternatif solusi;
  3. memilih dan menerapkan solusi yang paling efisien dan optimal untuk dikembangkan menjadi program;
  4. menjelaskan makna modularisasi dan menulis program yang memakai prosedur, fungsi, dan array;
  5. mengenal proses standar sederhana seperti pencarian, pengurutan, dan penghitungan agregat;
  6. menjelaskan gagasan dasar algoritma berbasis kecerdasan buatan dan kapan algoritma seperti itu diperlukan; serta
  7. menilai algoritma berdasarkan performa, kemampuan dipakai ulang, dan kemudahan implementasi.

Pertanyaan Pemantik

  1. Jika dua program menghasilkan jawaban yang sama, apa yang membuat salah satunya "lebih baik"?
  2. Mengapa memilih pilihan yang terbaik pada setiap langkah tidak selalu menghasilkan jawaban terbaik secara keseluruhan?
  3. Kapan sebuah program sebaiknya dipecah menjadi beberapa fungsi, dan kapan cukup ditulis lurus saja?
  4. Mengapa pencarian di data yang sudah terurut jauh lebih cepat daripada di data yang acak?
  5. Persoalan seperti apa yang membuat kita beralih dari aturan tertulis ke algoritma yang "belajar" dari data?

Peta Singkat Bab

Alur bab ini dapat diringkas sebagai berikut:

persoalan → dekomposisi, pola, abstraksi → beberapa strategi algoritmik → analisis efisiensi → solusi terpilih → program modular (prosedur, fungsi, array) → algoritma standar dan algoritma berbasis AI → penilaian performa, reuse, dan kemudahan implementasi

Bagian teori membahas tiap tahap di atas dengan contoh persoalan kecil yang bisa kalian coba sendiri. Bagian soal melatih kalian membandingkan strategi, menelusuri jalannya program, dan menulis fungsi sederhana.

Buku Pilihan

Kurikulum tidak menentukan bahasa pemrogramannya, dan Python termasuk pilihan yang cocok untuk praktik bab ini.

Belajar Python untuk Pemula

Cover buku Belajar Python untuk Pemula

Panduan 21 bab dari nol sampai bikin proyek sendiri, dalam bahasa Indonesia yang santai. Bekal untuk bab ini ada di bagian fungsi, list (bentuk array di Python), modul, dan library, sampai proyek aplikasi dan game. Setiap contoh kode bisa langsung dijalankan di IDE online tanpa instalasi. Tersedia dalam format PDF dan EPUB.

Lihat detail buku →


Tim simu.konsep sedang menyiapkan simulasi interaktif untuk bab ini. Stay tuned!