💻 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
BentukKapan DigunakanContoh
Narasi/UraianPenjelasan sederhana"Bangun tidur, mandi, sarapan, berangkat sekolah"
PseudocodeSebelum codingIF cuaca = hujan THEN bawa payung
Tabel IPOInput-Proses-Output jelasInput: nilai → Proses: rata-rata → Output: hasil
FlowchartVisualisasi alur logikaSimbol-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 → End

2️⃣ 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" → End

3️⃣ 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
ENDFOR
ENDFOR
Output:
Table
12345
246810
3691215

🔍 Algoritma Pencarian (Searching)

Table
MetodeCara KerjaKeunggulanKekurangan
Sequential SearchPeriksa elemen satu per satu dari awalSimpel, data tidak perlu terurutLambat untuk data besar
Binary SearchBagi array jadi dua, cari di tengahSangat 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 → INVERTEBRATA

b. Linear Regression (Regresi Linear)

Memprediksi nilai berdasarkan hubungan linear dua variabel.
Rumus: Y = a + bX
Contoh: Prediksi Berat Badan dari Tinggi
Table
Tinggi (cm)Berat (kg)
15045
15550
16052
16555
17060
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:

  1. Klik "New Notebook"
  2. 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: 10
Lebar: 10
Sama sisi

Program 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 np
from sklearn.linear_model import LinearRegression

# Data
tinggi = np.array([150, 155, 160, 165, 170, 175, 180]).reshape(-1, 1)
berat = np.array([50, 53, 56, 60, 65, 68, 72])

# Model
model = LinearRegression()
model.fit(tinggi, berat)

# Koefisien
print("Koefisien (m):", model.coef_[0])
print("Intercept (b):", model.intercept_)

🐛 Debugging: Memperbaiki Kesalahan Program

Table
Jenis ErrorPenyebabContoh
Syntax ErrorSalah penulisan kodeprintf("Hello") tanpa ; di C
Logic ErrorProgram jalan tapi hasil salahhasil = a - b padahal mau a + b
Runtime ErrorError saat program berjalanPembagian dengan nol, string + integer
Tips Debugging:
  1. Baca pesan error dengan teliti
  2. Periksa baris dan posisi error
  3. Gunakan print() untuk tracing nilai variabel
  4. 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