# Algoritma, Pemrograman, dan Berfikir Komputasional melalui Flowchart ## Pendahuluan Algoritma dan pemrograman seringkali diajarkan secara terpisah: satu bagian berfokus pada *logika* dan *algoritma*, sisanya pada *implementasi* menggunakan bahasa pemrograman tertentu. Namun pendekatan yang semakin populer adalah **Berfikir Komputasional (Computational Thinking / CT)**, yaitu cara berpikir sistematis untuk memecahkan masalah. Salah satu alat paling sederhana dan efektif dalam CT adalah **flowchart** — diagram alur yang memvisualisasikan langkah blokk dalam algoritma. ## Apa Itu berfikir komputasional? Berfikir komputasional terdiri dari empat *kompetensi inti*: 1. **Decomposisi** – memecah masalah besar menjadi bagian kecil yang lebih mudah dikelola. 2. **Abstraksi** – mengekstrak elemen penting, mengabaikan detail teknis yang tidak relevan. 3. **Algoritma** – menulis urutan langkah konkret untuk memecahkan masalah. 4. **Evaluasi** – menilai solusi atas kriteria efisiensi, kegunaan, dan keabsahan. Setiap inti berdiri pada pemahaman konseptual tetapi bertumpukan di atas diagram visual, antara yang memberi jembatan antara *teori* dan *praktek*. ## Flowchart sebagai Alat Visual Flowchart memperlihatkan aliran kontrol melalui simbol standar: - **Oval** = mulai/selesai - **Persegi panjang** = operasi atau perintah - **Jajar genjang** = input / output - **Belah ketupat** = percabangan (if/else) - **Panah** = alurä Johan Kerja flowchart mirip dengan diagram *pseudocode* namun lebih mudah dibaca dan dipahami orang di luar diri pengembang. Paragu di namu. ### Membuat Flowchart: Langkah‑Langkah 1. **Identifikasi** masalah dan input‑output. 2. **Tentukan SB** (Start‑Finish) 3. **Buat blok** tugas berurutan. 4. **Terapkan percabangan** bila diperlukan. 5. **Uji** diagramсил lemur. ## Contoh: Mencari Nilai Maksimum pada Array Berikut contoh algoritma *pencarian maksimum* dan flowchart yang memvisualisasikannya. Keterangan: - `arr[0..n-1]` array of integers, n = panjang array. - `max` menyimpan nilai maksimum. ### Pseudocode ``` PRO­ Metode maximum(arr, n) max <- arr[0] FOR i FROM 1 TO n-1 IF arr[i] > max THEN max <- arr[i] RETURN max ``` ### Flowchart (Mermaid) ```mermaid flowchart TD A[Mulai] B[Inisialisasi max <- arr[0]] C[Set i = 1] D{i < n} E[Jika arr[i] > max] F[max ← arr[i]] G[i ← i + 1] H[Kembali ke D] I[Kembalikan max] J[Selesai] A --> B --> C --> D D -->|ya| E D -->|Tidak| G E -->|ya| F --> G E -->|Tidak| G G --> H H -->|Tidak| I I --> J ``` Flowchart di atas membuktikan bahwa **decomposisi** (memecah langkah menjadi pembandingan satu per satu) dan **algoritma** (penyusunan langkah) adalah inti CT. ## Mengintegrasikan Flowchart dalam Pengajaran Berikut beberapa pendekatan berskala riil: 1. **Workshop Membaca Flowchart** – Tampilkan pewarisan diagram interaktif. 2. **Tugas “Hapus”** – Pelajar membuat flowchart untuk masalah yang sudah diselesaikan. 3. **Perbandingan Sintaks** – Bandingkan flowchart dengan *pseudocode* atau kode nyata. 4. **Pegangan Interaktif** – gunakan plugin **excalidraw** atau **diagram.net** dalam Elemes. ## Kegiatan Praktis - **Latihan 1**: Buat flowchart untuk *menghitung faktorial*. - **Latihan 2**: Berikan flowchart yang mengurutkan tiga angka secara menurun. - **Latihan 3**: Model flowchart untuk *sinkronisasi sensor* pada sistem robotik. ## Kesimpulan Berfikir komputasional memberikan kerangka berpikir sistematis yang berdasarkan decomposisi, abstraksi, algoritma, dan evaluasi. Flowchart adalah perpanjangan visual dari algoritma, membuat logika menjadi *visible* dan *shareable*. Integrasi flowchart ke dalam pembelajaran algoritma & pemrograman memperkaya pemahaman siswa, membantu mengurangi kebingungan konseptual, sekaligus mempersiapkan mereka untuk pemrograman nyata. ## Referensi - *Computational Thinking for Everyone* (Raymond C. Moore & Kevin C. Ferguson) - *Number Files* (Mitchell Reese) – bab tentang flowchart. - Elemes Portal:  [Sampel Flowchart](/home/a2nr/Documents/mr-edu/content/kka/01_Algoritma_dan_Pemrograman/sample_flowcharts/maximum.md)