Logika Algoritma & Representasi

Sebuah ide cemerlang tidak berguna jika tidak bisa dikomunikasikan. Pelajari cara mengubah logika berpikir menjadi algoritma yang jelas, terukur, dan dapat dieksekusi.

90 Menit
Modul 1: Computational Thinking & Algoritma
Pertemuan 2

TPTujuan Pembelajaran

  1. Peserta didik dapat mendefinisikan algoritma dan menjelaskan properti algoritma yang baik.
  2. Peserta didik dapat membuat pseudocode untuk mendeskripsikan algoritma sederhana.
  3. Peserta didik dapat membaca dan membuat flowchart menggunakan simbol-simbol standar.
  4. Peserta didik dapat membandingkan tiga cara representasi algoritma (pseudocode, flowchart, kode) dan memilih yang paling tepat sesuai konteks.

Apa itu Algoritma?

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.

Properti Algoritma yang Baik

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.

4 Properti Algoritma yang Baik

1. Jelas (Unambiguous)

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!

2. Terbatas (Finite)

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!

3. Efektif (Feasible)

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!

4. Input & Output

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

3 Cara Merepresentasikan Algoritma

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:

Evolusi Representasi: dari Ide menjadi Kode

Pseudocode

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.

mie-instan.pseudo
text
MULAI
  INPUT: mie_instan, air, bumbu, minyak, telur (opsional)
  
  // Rebus air
  JIKA kompor_tersedia MAKA
    Nyalakan kompor dengan api sedang
    Masukkan 400ml air ke panci
    Tunggu hingga air mendidih
  AKHIR JIKA
  
  // Masak mie
  Masukkan mie ke dalam air mendidih
  Masak selama 3 menit (atau sesuai instruksi kemasan)
  
  // Tiriskan dan bumbui
  Tiriskan air dari panci
  Masukkan bumbu dan minyak ke dalam mie
  Aduk hingga rata
  
  // Topping (opsional)
  JIKA ingin_topping MAKA
    Tambahkan telur atau sayuran sesuai selera
  AKHIR JIKA
  
  OUTPUT: Semangkuk mie instan siap disajikan
SELESAI

Flowchart

Flowchart (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.

Simbol-simbol Standar Flowchart

Oval — Terminator

Menandai titik MULAI dan SELESAI dari sebuah algoritma. Selalu ada tepat dua: satu di awal, satu di akhir.

Persegi Panjang — Proses

Instruksi atau tindakan yang dilakukan. Contoh: 'Nyalakan LED', 'Hitung jumlah', 'Simpan data ke variabel'.

Belah Ketupat — Keputusan

Percabangan dengan pertanyaan Ya/Tidak. Selalu memiliki dua output: satu untuk kondisi TRUE, satu untuk FALSE.

Jajar Genjang — Input/Output

Menerima data dari luar (Input) atau menampilkan data ke luar (Output). Contoh: 'Baca sensor', 'Tampilkan ke Serial Monitor'.

Anak Panah — Aliran

Menghubungkan simbol-simbol dan menunjukkan arah aliran proses. Selalu bergerak ke satu arah.

Contoh Lengkap: Algoritma Mie Instan

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.

Flowchart: Algoritma Membuat Mie Instan (dengan percabangan topping)

Cek Pemahaman

Kamu ingin menjelaskan cara membuat akun media sosial kepada temanmu yang belum pernah menggunakan smartphone. Representasi algoritma mana yang paling tepat untuk situasi ini?

Mudah

Perhatikan pseudocode berikut:\n\nMULAI\n nilai ← 85\n JIKA nilai ≥ 90 MAKA\n cetak 'A'\n JIKA nilai ≥ 80 MAKA\n cetak 'B'\n LAINNYA\n cetak 'C'\n AKHIR JIKA\nSELESAI\n\nApa output dari pseudocode tersebut?

Sedang

Latihan: Buat Flowchart Aktivitas Harianmu

Pilih satu dari dua skenario berikut dan buat dalam dua format: pseudocode dan flowchart.

🎮 Skenario A: Pilih Game Online

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.

🛒 Skenario B: Belanja Kantin

Algoritma untuk memilih makanan di kantin sekolah: cek uang saku, lihat menu yang tersedia, bandingkan harga, pilih menu, bayar, terima makanan.

  1. Tulis pseudocode — minimal 8–10 langkah, gunakan struktur JIKA-MAKA-LAINNYA dan perulangan jika relevan
  2. Gambar flowchart — gunakan simbol yang benar (oval, persegi, belah ketupat, jajar genjang)
  3. Identifikasi — tandai bagian mana dari flowchart yang menggunakan 4 pilar CT

Waktu: 20 menit. Bisa dikerjakan secara individu atau berpasangan.

Rangkuman Pertemuan 2
  • Algoritma adalah urutan langkah yang jelas, terbatas, dan dapat dilaksanakan untuk memecahkan masalah. Algoritma ≠ kode program.
  • Algoritma yang baik harus memenuhi 4 properti: Jelas, Terbatas, Efektif, memiliki Input & Output.
  • Ada 3 cara merepresentasikan algoritma: Pseudocode (teks terstruktur), Flowchart (diagram visual), dan Kode Program (bahasa mesin). Ketiganya menyatakan logika yang sama.
  • Pseudocode menggunakan bahasa natural terstruktur — cocok untuk perencanaan awal.Flowchart menggunakan simbol visual — ideal untuk memvisualisasikan percabangan logika.
  • Di pertemuan berikutnya, kita akan mulai menerjemahkan logika algoritma ini ke dalamkonsep program nyata — variabel, tipe data, dan struktur kode Arduino.

RRefleksi Pertemuan 2

Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.

Kejutan & Penemuan

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?

Masih Membingungkan

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?

Rencana Selanjutnya

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.