Sebuah ide cemerlang tidak berguna jika tidak bisa dikomunikasikan. Pelajari cara mengubah logika berpikir menjadi algoritma yang jelas, terukur, dan dapat dieksekusi.
Di Pertemuan 1, kita mengenal algoritma sebagai salah satu dari 4 pilar CT. Sekarang kita akan menyelami algoritma lebih dalam — karena algoritma adalah fondasi dari setiapprogram komputer yang pernah ditulis.
Bayangkan kamu ingin pergi ke suatu tempat yang belum pernah dikunjungi. Tanpa GPS, kamu akan meminta petunjuk arah. Petunjuk arah yang baik akan terlihat seperti ini: "Dari sekolah, belok kiri di lampu merah pertama, lurus 200 meter, belok kanan di minimarket, rumahnya yang berwarna biru di sebelah kiri."
Petunjuk arah itu adalah algoritma. Serangkaian instruksi yang jelas, berurutan, dan terbatas yang membawa kamu dari titik A ke titik B.
Algoritma adalah urutan langkah-langkah yang terdefinisi dengan baik, terbatas, dan dapat dilaksanakan untuk memecahkan masalah atau menyelesaikan tugas tertentu.
Kata "algoritma" berasal dari nama matematikawan Persia abad ke-9, Muhammad ibn Musa al-Khwarizmi, yang juga dikenal sebagai "bapak aljabar."
Tidak semua urutan langkah bisa disebut algoritma. Ada standar kualitas yang harus dipenuhi agar sebuah algoritma bisa benar-benar diandalkan — terutama saat kita mau mengubahnya menjadi kode yang dijalankan komputer.
Setiap langkah harus memiliki satu makna yang pasti. Tidak boleh ada instruksi yang bisa diinterpretasikan berbeda-beda oleh orang yang berbeda.
❌ 'Panaskan air secukupnya' → Ambigu! ✅ 'Panaskan 400ml air hingga mendidih (100°C)' → Jelas!
Algoritma harus memiliki titik akhir yang pasti. Tidak boleh berjalan selamanya tanpa henti.
❌ 'Tambahkan garam sampai enak' → Kapan berhenti? ✅ 'Tambahkan 1/2 sdt garam, aduk, cicipi.' → Terbatas!
Setiap langkah harus bisa dilaksanakan dengan sumber daya yang ada. Tidak boleh ada instruksi yang mustahil.
❌ 'Masak dengan api biru selama 3 menit' → Api biru itu apa? ✅ 'Masak dengan api sedang selama 3 menit' → Bisa dilakukan!
Algoritma menerima nol atau lebih data masukan (input) dan menghasilkan setidaknya satu keluaran (output) yang bermakna.
Input: bahan-bahan mie instan Output: semangkuk mie instan yang siap dimakan
Algoritma bisa dikomunikasikan dalam berbagai bentuk. Tiga cara yang paling umum digunakan — dari yang paling mudah dipahami manusia hingga yang paling siap dieksekusi mesin — adalah:
Pseudocode adalah cara menulis algoritma menggunakan campuran bahasa natural (Indonesia/Inggris) dengan struktur yang menyerupai kode program. "Pseudo" berarti "pura-pura" — ini adalah kode pura-pura yang tidak bisa dijalankan komputer, tapi mudah dipahami manusia.
Keunggulan pseudocode: kamu bisa fokus pada logika tanpa perlu khawatir tentang sintaks bahasa pemrograman tertentu. Tidak ada compiler yang akan marah jika kamu salah tanda titik koma.
// untuk menjelaskan maksudFlowchart (Diagram Alir) adalah representasi visual dari algoritma menggunakan simbol-simbol geometris yang dihubungkan dengan anak panah. Flowchart sangat efektif untuk memvisualisasikan alur logika yang kompleks, terutama yang melibatkan banyak percabangan (keputusan).
Jika pseudocode adalah cara menulis algoritma, flowchart adalah caramenggambarnya. Otak manusia jauh lebih mudah memahami visual daripada teks — itulah mengapa flowchart sangat populer dalam desain sistem.
Menandai titik MULAI dan SELESAI dari sebuah algoritma. Selalu ada tepat dua: satu di awal, satu di akhir.
Instruksi atau tindakan yang dilakukan. Contoh: 'Nyalakan LED', 'Hitung jumlah', 'Simpan data ke variabel'.
Percabangan dengan pertanyaan Ya/Tidak. Selalu memiliki dua output: satu untuk kondisi TRUE, satu untuk FALSE.
Menerima data dari luar (Input) atau menampilkan data ke luar (Output). Contoh: 'Baca sensor', 'Tampilkan ke Serial Monitor'.
Menghubungkan simbol-simbol dan menunjukkan arah aliran proses. Selalu bergerak ke satu arah.
Mari kita lihat bagaimana satu algoritma yang sama — cara membuat mie instan — dapat direpresentasikan dalam tiga bentuk yang berbeda. Ini akan membantu kamu memahami hubungan antara pseudocode, flowchart, dan kode program.
Pseudocode yang kita tulis di Section C dan Flowchart di atas menggambarkan algoritma yangpersis sama. Di masa mendatang, kita akan menambahkan representasi ketiga: kode Arduino dalam bahasa C++. Ketiga representasi itu setara — hanya berbeda bahasa komunikasinya.
Pilih satu dari dua skenario berikut dan buat dalam dua format: pseudocode dan flowchart.
Algoritma untuk memilih game yang akan dimainkan: cek apakah sudah ada yang mengajak, jika tidak, cek genre favorit, cek koneksi internet, tentukan game, mulai bermain.
Algoritma untuk memilih makanan di kantin sekolah: cek uang saku, lihat menu yang tersedia, bandingkan harga, pilih menu, bayar, terima makanan.
Waktu: 20 menit. Bisa dikerjakan secara individu atau berpasangan.
Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.
Apa yang paling mengejutkan atau menarik hari ini?
Apakah ada saat di mana kamu menyadari bahwa sesuatu yang kamu anggap 'mudah dan otomatis' ternyata memiliki algoritma yang cukup kompleks di baliknya? Apa contohnya?
Apa yang masih membingungkan atau ingin kamu pahami lebih dalam?
Bagian mana dari membuat flowchart yang masih terasa sulit — menentukan simbol yang tepat, menjaga aliran agar logis, atau memutuskan kapan harus membuat percabangan?
Apa yang ingin kamu coba atau pelajari minggu depan?
Jika kamu harus membuat algoritma untuk satu kegiatan belajarmu (misalnya mengerjakan PR atau mempersiapkan ujian), apa yang akan kamu optimasi dari algoritma belajarmu saat ini?
Refleksi tidak dinilai — ini adalah ruang jujurmu untuk berpikir.