💻 Bab 2: Algoritma dan Pemrograman Lanjut – Panduan Praktis untuk SMA/MA Kelas 10
Table of Contents
📌 Mengapa Algoritma Penting?
Setiap hari, tanpa kamu sadari, kamu menjalankan algoritma — menentukan rute tercepat ke sekolah, menyalakan televisi, mengatur jadwal harian, bahkan membuat jadwal belajar. Semua itu melibatkan langkah-langkah berurutan agar tujuan tercapai dengan benar.
💡 Definisi Algoritma: Rangkaian langkah-langkah logis dan sistematis untuk menyelesaikan masalah atau mencapai tujuan tertentu.
Sistem kerja komputer bekerja dengan cara yang sama: mengikuti instruksi langkah demi langkah yang ditulis dalam bahasa pemrograman. Dengan memahami algoritma dan pemrograman, kamu dapat menciptakan solusi cerdas — mulai dari aplikasi sederhana hingga teknologi kompleks.
🎯 Bentuk-Bentuk Algoritma Dasar
Algoritma dapat disajikan dalam berbagai format agar mudah dipahami:
Table
| Bentuk | Kapan Digunakan | Contoh |
|---|---|---|
| Narasi/Uraian | Penjelasan sederhana | "Bangun tidur, mandi, sarapan, berangkat sekolah" |
| Pseudocode | Sebelum coding | IF cuaca = hujan THEN bawa payung |
| Tabel IPO | Input-Proses-Output jelas | Input: nilai → Proses: rata-rata → Output: hasil |
| Flowchart | Visualisasi alur logika | Simbol-simbol standar (oval, persegi panjang, belah ketupat) |
🔄 Tiga Jenis Logika Pemrograman dalam Flowchart
1️⃣ Logika Urutan (Sequence Logic)
Instruksi dieksekusi secara berurutan dari atas ke bawah.
Contoh: Menghitung Nilai Rata-Rata
plain
Start → Input nilaiA, nilaiB, nilaiC, nilaiD → Jumlah = nilaiA + nilaiB + nilaiC + nilaiD→ Rata2 = Jumlah / 4 → Output Rata2 → End2️⃣ Logika Seleksi/Percabangan (Selection Logic)
Pengambilan keputusan berdasarkan kondisi tertentu.
Contoh: Menentukan Kelulusan
plain
Start → Input nilaiSiswa → Apakah nilaiSiswa >= 60?→ YA: Output "Lulus" → End→ TIDAK: Output "Tidak Lulus" → End3️⃣ Logika Perulangan (Iteration/Looping Logic)
Blok kode dieksekusi berulang selama kondisi terpenuhi.
Contoh: Mencetak Angka 1-10
plain
Start → counter = 1 → Apakah counter <= 10?→ YA: Output counter → counter = counter + 1 → Ulangi→ TIDAK: End🏗️ Struktur Data: Array
Array adalah struktur data untuk menyimpan sekumpulan nilai dalam satu variabel dengan tipe data sama.
plain
A = [10, 2, 30, 4]
A[0] = 10 (indeks ke-0)
A[1] = 2 (indeks ke-1)
A[2] = 30 (indeks ke-2)
A[3] = 4 (indeks ke-3)⚠️ Catatan Penting: Indeks array dimulai dari 0, bukan 1!
🔀 Pengondisian Bertingkat (Nested If)
Nested if = pernyataan
if di dalam if lainnya, untuk keputusan yang lebih kompleks.Contoh: Prediksi Nilai Akhir
plain
IF nilai >= 90 THEN predikat = "A"ELSE IF nilai >= 75 THEN predikat = "B"ELSE IF nilai >= 60 THEN predikat = "C"ELSE predikat = "D"🔁 Pengulangan Bersarang (Nested Loop)
Loop di dalam loop, digunakan untuk pola kompleks seperti tabel perkalian.
Contoh: Tabel Perkalian 1-3 × 1-5
plain
FOR i = 1 TO 3 DO FOR j = 1 TO 5 DO Hasil = i × j OUTPUT Hasil ENDFORENDFOROutput:
Table
| 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|
| 2 | 4 | 6 | 8 | 10 |
| 3 | 6 | 9 | 12 | 15 |
🔍 Algoritma Pencarian (Searching)
Table
| Metode | Cara Kerja | Keunggulan | Kekurangan |
|---|---|---|---|
| Sequential Search | Periksa elemen satu per satu dari awal | Simpel, data tidak perlu terurut | Lambat untuk data besar |
| Binary Search | Bagi array jadi dua, cari di tengah | Sangat cepat (logaritmik) | Data HARUS terurut dulu |
Perbandingan Efisiensi (100 data):
- Sequential Search: 100 kali perbandingan
- Binary Search: Hanya 7 kali perbandingan!
📊 Algoritma Pengurutan (Sorting)
Selection Sort
Pilih elemen terkecil, tukar ke posisi awal, ulangi.
plain
Data awal: [6, 3, 8, 5, 2]
Langkah 1: Cari terkecil (2), tukar dengan indeks 0
→ [2, 3, 8, 5, 6]
Langkah 2: Cari terkecil dari indeks 1 (3), sudah benar
→ [2, 3, 8, 5, 6]
Langkah 3: Cari terkecil dari indeks 2 (5), tukar
→ [2, 3, 5, 8, 6]
...dan seterusnya hingga terurut: [2, 3, 5, 6, 8]Insertion Sort
Seperti menyusun kartu — ambil satu per satu, tempatkan di posisi yang tepat.
🤖 Algoritma Machine Learning Dasar
a. Decision Tree (Pohon Keputusan)
Struktur pohon untuk klasifikasi berbasis pertanyaan ya/tidak.
plain
Apakah hewan memiliki tulang belakang?├── YA → Apakah bertelur?│ ├── YA → Apakah memiliki sisik?│ │ ├── YA → REPTIL│ │ └── TIDAK → Apakah memiliki sayap?│ │ ├── YA → BURUNG│ │ └── TIDAK → AMFIBI│ └── TIDAK → MAMALIA└── TIDAK → INVERTEBRATAb. Linear Regression (Regresi Linear)
Memprediksi nilai berdasarkan hubungan linear dua variabel.
Rumus:
Y = a + bXContoh: Prediksi Berat Badan dari Tinggi
Table
| Tinggi (cm) | Berat (kg) |
|---|---|
| 150 | 45 |
| 155 | 50 |
| 160 | 52 |
| 165 | 55 |
| 170 | 60 |
Dari data ini, bisa dihitung slope (b) dan intercept (a), lalu prediksi berat untuk tinggi 175 cm = ~62.9 kg
c. K-Means Clustering
Mengelompokkan data berdasarkan kemiripan. Contoh: mengelompokkan teman berdasarkan hobi (olahraga, membaca, musik).
d. Naive Bayes
Klasifikasi berbasis probabilitas. Contoh: menebak jenis buah dari warna dan rasa.
💻 Pemrograman Teks: Python di Google Colab
Langkah Memulai:
- Buka colab.google.com
- Klik "New Notebook"
- Ubah nama file (misal:
latihanprogram1.ipynb)
Program 1: Menentukan Persegi atau Persegi Panjang
Python
panjang = int(input("Panjang: "))lebar = int(input("Lebar: "))
if panjang == lebar: print("Sama sisi")else: print("Persegi panjang")Output:
plain
Panjang: 10Lebar: 10Sama sisiProgram 2: Menghitung Tahun Lahir
Python
nama = input("Nama: ")umur = int(input("Umur: "))tahunlahir = 2025 - umur
print("Halo, " + nama + ", kamu lahir tahun " + str(tahunlahir))Program 3: Prediksi Berat Badan dengan Linear Regression
Python
import numpy as npfrom sklearn.linear_model import LinearRegression
# Datatinggi = np.array([150, 155, 160, 165, 170, 175, 180]).reshape(-1, 1)berat = np.array([50, 53, 56, 60, 65, 68, 72])
# Modelmodel = LinearRegression()model.fit(tinggi, berat)
# Koefisienprint("Koefisien (m):", model.coef_[0])print("Intercept (b):", model.intercept_)🐛 Debugging: Memperbaiki Kesalahan Program
Table
| Jenis Error | Penyebab | Contoh |
|---|---|---|
| Syntax Error | Salah penulisan kode | printf("Hello") tanpa ; di C |
| Logic Error | Program jalan tapi hasil salah | hasil = a - b padahal mau a + b |
| Runtime Error | Error saat program berjalan | Pembagian dengan nol, string + integer |
Tips Debugging:
- Baca pesan error dengan teliti
- Periksa baris dan posisi error
- Gunakan
print()untuk tracing nilai variabel - Periksa tipe data (string vs integer)
🎓 Kesimpulan
Bab 2 membekalimu dengan:
- ✅ Fondasi algoritma yang kuat
- ✅ Kemampuan membuat flowchart logis
- ✅ Pemahaman struktur data (array)
- ✅ Algoritma searching dan sorting
- ✅ Machine learning dasar (Decision Tree, Linear Regression, K-Means, Naive Bayes)
- ✅ Coding Python praktis di Google Colab
- ✅ Skill debugging untuk memperbaiki program
🚀 Siap ke Bab 3? Kita akan menjelajahi Literasi dan Etika Kecerdasan Artifisial — dari pengenalan pola citra dan suara hingga profesi menarik di bidang AI!
Referensi:
Chaerani, D., Subeno, B., & Rahayu, B. (2025). Koding dan Kecerdasan Artifisial untuk SMA/MA Kelas X. Kementerian Pendidikan Dasar dan Menengah Republik Indonesia.
Tags: #Algoritma #Pemrograman #Python #Flowchart #MachineLearning #SMAKel10 #KKA #GoogleColab #Coding #DecisionTree #LinearRegression #KMeans #NaiveBayes
Post a Comment