94 lines
4.1 KiB
Markdown
94 lines
4.1 KiB
Markdown
|
|
# 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)
|