Struktur Dasar Algoritma: Menguasai Sequence, Selection, Iteration untuk Pemecahan Masalah

By | September 27, 2025

 

Struktur Dasar Algoritma: Menguasai Sequence, Selection, Iteration untuk Pemecahan Masalah

Pernah nggak sih kamu bingung bagaimana cara menjelaskan langkah-langkah membuat kopi kepada robot? Atau bagaimana membuat tutorial yang bisa dipahami oleh orang yang benar-benar pemula? Nah, itulah yang dilakukan algoritma—memberikan instruksi yang jelas, terurut, dan tidak ambigu untuk menyelesaikan suatu masalah.

Algoritma itu seperti resep masakan. Bayangkan kamu mau masak nasi goreng. Resepnya akan bilang: “Panaskan minyak → Tumis bawang → Masukkan nasi → Beri kecap → Aduk rata”. Itu adalah algoritma sederhana! Dan yang menakjubkan, semua program komputer yang complex, dari game sampai AI, dibangun dari tiga struktur dasar yang sama: Sequence, Selection, dan Iteration.

Di panduan fundamental ini, kita akan bahas ketiga struktur dasar algoritma dengan contoh-contoh yang relatable dari kehidupan sehari-hari. Saya janji tidak akan menggunakan jargon teknis yang bikin pusing. Bahkan jika kamu belum pernah programming sama sekali, setelah baca artikel ini kamu akan paham cara berpikir seperti programmer!

Apa Itu Algoritma dan Kenapa Dia Penting?

Secara sederhana, algoritma adalah langkah-langkah sistematis untuk menyelesaikan suatu masalah. Algorithm berasal dari nama matematikawan Persia, Al-Khwarizmi, yang memperkenalkan konsep langkah-langkah terstruktur untuk memecahkan masalah.

Analoginya: Kalau kamu mau pergi dari rumah ke mall, algoritmanya adalah:

  1. Keluar dari rumah
  2. Belok kiri di jalan utama
  3. Jalan lurus 2 km
  4. Belok kanan di lampu merah
  5. Sampai di mall

Karakteristik algoritma yang baik:

  • Clear dan Unambiguous: Setiap langkah jelas dan tidak multitafsir
  • Well-Defined Inputs: Tahu apa yang dimasukkan
  • Well-Defined Outputs: Tahu apa yang dihasilkan
  • Finite: Pasti berakhir (tidak infinite loop)
  • Feasible: Bisa dilaksanakan dengan resources yang ada

Struktur 1: Sequence (Runtutan) – Dasar Segalanya

Sequence adalah struktur paling dasar dimana instruksi dieksekusi secara berurutan, satu per satu, dari atas ke bawah. Seperti membaca buku—dimulai dari halaman pertama, kedua, ketiga, dan seterusnya.

Contoh Sequence dalam Kehidupan Sehari-hari

Algoritma Membuat Kopi:

1. Ambil gelas
2. Masukkan 2 sendok kopi
3. Tuang air panas 200ml
4. Aduk selama 10 detik
5. Tambahkan gula sesuai selera
6. Kopi siap disajikan

Algoritma Menyebrang Jalan:

1. Pergi ke zebra cross
2. Tunggu lampu hijau menyala
3. Lihat kiri dan kanan
4. Berjalan menyebrang
5. Sampai di seberang jalan

Contoh Sequence dalam Programming

// JavaScript
let harga = 10000;
let jumlah = 3;
let total = harga * jumlah;
console.log("Total harga: " + total);

// Python
harga = 10000
jumlah = 3
total = harga * jumlah
print("Total harga:", total)

// Java
int harga = 10000;
int jumlah = 3;
int total = harga * jumlah;
System.out.println("Total harga: " + total);

Hal penting tentang Sequence:

  • Urutan sangat penting! Tukar urutan bisa hasilkan output yang berbeda
  • Setiap langkah harus complete sebelum lanjut ke next step
  • Ini adalah foundation untuk struktur yang lebih complex

Struktur 2: Selection (Pemilihan) – Decision Making

Selection memungkinkan algoritma membuat keputusan berdasarkan kondisi tertentu. Ini seperti memiliki persimpangan jalan dimana kamu harus memilih belok kiri atau kanan tergantung tujuan.

Konsep Dasar Selection

Struktur selection biasanya menggunakan statement IF-ELSE atau SWITCH-CASE.

Contoh Selection dalam Kehidupan Sehari-hari

Algoritma Memakai Jaket:

JIKA suhu_di_luar < 20°C MAKA
    Pakai jaket
SELAIN ITU
    Tidak pakai jaket
SELESAI JIKA

Algoritma Memilih Transportasi:

JIKA jarak < 2 km MAKA
    Jalan kaki
SELAIN ITU JIKA jarak < 10 km MAKA
    Naik motor
SELAIN ITU
    Naik mobil
SELESAI JIKA

Contoh Selection dalam Programming

// JavaScript - IF-ELSE
let nilai = 85;
let grade;

if (nilai >= 90) {
    grade = "A";
} else if (nilai >= 80) {
    grade = "B";
} else if (nilai >= 70) {
    grade = "C";
} else {
    grade = "D";
}

console.log("Grade: " + grade);

// Python - IF-ELSE
nilai = 85

if nilai >= 90:
    grade = "A"
elif nilai >= 80:
    grade = "B"
elif nilai >= 70:
    grade = "C"
else:
    grade = "D"

print("Grade:", grade)

Switch-Case untuk Multiple Conditions

// JavaScript - SWITCH CASE
let hari = "Senin";
let aktivitas;

switch (hari) {
    case "Senin":
        aktivitas = "Meeting mingguan";
        break;
    case "Jumat":
        aktivitas = "Persiapan weekend";
        break;
    default:
        aktivitas = "Kerja biasa";
}

console.log("Aktivitas: " + aktivitas);

Hal penting tentang Selection:

  • Selalu ada kondisi yang dievaluasi (true/false)
  • Hanya satu branch yang akan dieksekusi
  • Condition harus well-defined dan measurable

Struktur 3: Iteration (Perulangan) – Automation Power

Iteration memungkinkan kita mengulangi serangkaian instruksi beberapa kali tanpa harus menuliskannya berulang-ulang. Ini seperti memiliki assistant yang bisa mengerjakan tugas yang sama berulang kali sampai kondisi tertentu terpenuhi.

Jenis-Jenis Iteration

Jenis Kapan Digunakan Contoh
FOR Loop Ketahui jumlah iterasi sebelumnya Ulangi 10 kali, proses 100 data
WHILE Loop Jumlah iterasi tidak pasti, tergantung kondisi Ulangi sampai jawaban benar
DO-WHILE Loop Pastikan eksekusi minimal 1 kali Input validation

Contoh Iteration dalam Kehidupan Sehari-hari

Algoritma Memompa Ban:

ULANGI
    Pompa ban sekali
SELAMA tekanan_ban < 30 PSI

Algoritma Mencuci Piring:

UNTUK SETIAP piring di bak cucian LAKUKAN
    Sabuni piring
    Bilas piring
    Tumpuk piring bersih
SELESAI UNTUK

Contoh Iteration dalam Programming

// JavaScript - FOR Loop
console.log("Menghitung 1 sampai 5:");

for (let i = 1; i <= 5; i++) {
    console.log("Hitungan: " + i);
}

// Output:
// Hitungan: 1
// Hitungan: 2
// Hitungan: 3
// Hitungan: 4
// Hitungan: 5

// JavaScript - WHILE Loop
let password = "";
while (password !== "secret123") {
    password = prompt("Masukkan password:");
}
console.log("Akses diberikan!");

// Python - FOR Loop dengan list
buah_buahan = ["apel", "jeruk", "mangga"]

for buah in buah_buahan:
    print("Saya suka", buah)

Menggunakan Counter untuk Control Loop

// Counter-controlled iteration
let counter = 0;
while (counter < 5) {
    console.log("Ini adalah iterasi ke-" + (counter + 1));
    counter++; // Increment counter
}

Hal penting tentang Iteration:

  • Pastikan ada termination condition (jangan infinite loop!)
  • Loop counter harus di-update dengan benar
  • Gunakan jenis loop yang tepat untuk situasi yang tepat

Kombinasi Tiga Struktur: Solving Complex Problems

Kekuatan sebenarnya datang ketika kita mengkombinasikan ketiga struktur ini. Mari lihat contoh yang lebih kompleks.

Contoh: Sistem Login Sederhana

ALGORITMA SistemLogin:
    // SEQUENCE: Setup awal
    password_benar = "rahasia123"
    percobaan_maksimal = 3
    percobaan_sekarang = 0
    login_berhasil = false
    
    // ITERATION: Loop untuk multiple attempts
    SELAMA percobaan_sekarang < percobaan_maksimal DAN TIDAK login_berhasil LAKUKAN
        
        // SEQUENCE: Input dan processing
        tampilkan("Masukkan password:")
        input_password = baca_input()
        percobaan_sekarang = percobaan_sekarang + 1
        
        // SELECTION: Cek password
        JIKA input_password == password_benar MAKA
            login_berhasil = true
            tampilkan("Login berhasil! Selamat datang.")
        SELAIN ITU
            sisa_percobaan = percobaan_maksimal - percobaan_sekarang
            tampilkan("Password salah. Sisa percobaan: " + sisa_percobaan)
        SELESAI JIKA
    
    SELESAI SELAMA
    
    // SELECTION: Feedback akhir
    JIKA TIDAK login_berhasil MAKA
        tampilkan("Akun terkunci. Coba lagi nanti.")
    SELESAI JIKA
SELESAI ALGORITMA

Implementasi dalam JavaScript

function sistemLogin() {
    // SEQUENCE
    const passwordBenar = "rahasia123";
    const percobaanMaksimal = 3;
    let percobaanSekarang = 0;
    let loginBerhasil = false;
    
    // ITERATION + SELECTION
    while (percobaanSekarang < percobaanMaksimal && !loginBerhasil) {
        // SEQUENCE
        const inputPassword = prompt("Masukkan password:");
        percobaanSekarang++;
        
        // SELECTION
        if (inputPassword === passwordBenar) {
            loginBerhasil = true;
            alert("Login berhasil! Selamat datang.");
        } else {
            const sisaPercobaan = percobaanMaksimal - percobaanSekarang;
            alert(`Password salah. Sisa percobaan: ${sisaPercobaan}`);
        }
    }
    
    // SELECTION
    if (!loginBerhasil) {
        alert("Akun terkunci. Coba lagi nanti.");
    }
}

Flowchart: Visual Representation of Algorithms

Flowchart membantu memvisualisasikan algoritma dengan simbol-simbol standar:

Simbol Nama Kegunaan
Terminator Start/End of algorithm
Process Sequence operations
Decision Selection (if-else)
Input/Output Get input or display output

Contoh Flowchart Login System

Start
  ↓
[Setup variables]
  ↓
[percobaan < 3 AND NOT login_berhasil?] → No → [Tampilkan "Akun terkunci"]
  ↓ Yes
[Input password]                         ↓
  ↓                                    End
[password correct?] → No → [Tampilkan "Salah, sisa X"]
  ↓ Yes
[Tampilkan "Login berhasil"]
  ↓
End

Common Algorithm Patterns untuk Pemula

1. Linear Search Pattern

// Cari item dalam list
FUNCTION linearSearch(list, target):
    FOR setiap item dalam list:
        IF item == target:
            RETURN true
    RETURN false

2. Counting Pattern

// Hitung kemunculan item
FUNCTION countItems(list, target):
    count = 0
    FOR setiap item dalam list:
        IF item == target:
            count = count + 1
    RETURN count

3. Accumulator Pattern

// Jumlahkan semua item
FUNCTION sumList(list):
    total = 0
    FOR setiap item dalam list:
        total = total + item
    RETURN total

Best Practices dalam Mendesain Algoritma

  1. Start Simple: Pecah masalah besar menjadi bagian-bagian kecil
  2. Use Descriptive Names: Nama variabel yang jelas
  3. Test dengan Contoh Kecil: Verifikasi dengan input sederhana
  4. Consider Edge Cases: Apa yang terjadi jika input kosong, negatif, dll?
  5. Optimize Later: Buat dulu yang bekerja, optimisasi belakangan

Latihan Mandiri untuk Menguasai Konsep

Exercise 1: Kalkulator Sederhana

Buat algoritma kalkulator yang bisa menerima dua angka dan operator (+, -, *, /), lalu memberikan hasil.

Exercise 2: Penilaian Nilai

Buat algoritma yang mengkonversi nilai angka (0-100) menjadi huruf (A, B, C, D, E).

Exercise 3: FizzBuzz Challenge

Buat algoritma yang untuk angka 1-100:
– Jika habis dibagi 3, tampilkan “Fizz”
– Jika habis dibagi 5, tampilkan “Buzz”
– Jika habis dibagi 3 dan 5, tampilkan “FizzBuzz”
– Selain itu, tampilkan angka itu sendiri

Kesalahan Umum Pemula dan Cara Menghindarinya

Kesalahan Contoh Solusi
Infinite Loop while (true) { … } tanpa break condition Pastikan ada termination condition
Off-by-One Error for (i=0; i<=5; i++) padahal mau 5 iterasi Perhatikan boundary conditions
Nested Condition Complex If dalam if dalam if yang sulit dibaca Simplify logic atau extract ke function
Asumsi Input Anggap input selalu valid Selalu validasi input

Dari Sini Kemana? Next Steps dalam Learning Journey

Setelah menguasai tiga struktur dasar ini, kamu bisa explore:

  • Data Structures: Arrays, Objects, Lists, Trees
  • Algorithm Complexity: Big O Notation
  • Sorting Algorithms: Bubble sort, Quick sort, Merge sort
  • Search Algorithms: Binary search, Hash tables
  • Problem Solving Patterns: Divide and conquer, Dynamic programming

Struktur dasar algoritma adalah foundation yang akan membantumu memecahkan masalah apapun—tidak hanya di programming, tapi juga dalam kehidupan sehari-hari. Dengan menguasai sequence, selection, dan iteration, kamu sudah memiliki toolkit yang powerful untuk berpikir secara komputasional.

Remember: Setiap programmer expert memulai dengan memahami dasar-dasar ini. Practice makes perfect! Selamat ber-algoritma! 🧠