Struktur Data & Algoritma
🌟 Bab 1: Sapaan Pembuka & Rahasia Dapur Komputer Mulai!
Pernahkah kamu membayangkan bagaimana aplikasi favoritmu seperti YouTube atau game Roblox bisa bekerja dengan sangat cepat? Rahasianya bukan sihir, melainkan cara mereka mengatur barang-barang di dalam "dapur" komputer mereka.
🍳 Apa itu Struktur Data?
Bayangkan kamarmu berantakan dengan mainan, buku, dan baju yang tercampur aduk. Saat kamu ingin mencari kaus kaki favorit, kamu butuh waktu lama karena semuanya berantakan. Nah, Struktur Data adalah cara kita merapikan "mainan" (data) di dalam komputer agar saat kita membutuhkannya, kita bisa menemukannya dengan sekejap dan hemat tempat.
📜 Apa itu Algoritma?
Jika Struktur Data adalah rak bukunya, maka Algoritma adalah resep atau langkah-langkahnya. Algoritma adalah serangkaian instruksi yang harus memenuhi syarat:
- Definiteness (Pasti): Setiap langkah harus jelas. Seperti urutan memakai sepatu: (1) Ambil sepatu → (2) Masukkan kaki → (3) Ikat tali. Jika instruksinya tidak jelas, komputer akan bingung!
- Finiteness (Berakhir): Langkah-langkahnya harus ada ujungnya. Jika instruksi mengikat tali sepatu tidak pernah berhenti, kamu akan mengikat tali selamanya dan tidak pernah bisa pergi bermain!
ALGORITMA + STRUKTUR DATA = PROGRAM
• Algoritma: Bagaimana cara menyelesaikannya (Langkahnya).
• Struktur Data: Apa yang dikelola (Wadah datanya).
🏗️ Bab 2: Gudang Ajaib — Mengenal Struktur Data Dasar Eksplorasi
Gunakan bagian ini sebagai panduanmu. Cobalah praktikkan kegiatannya agar kamu semakin paham!
📚 A. Tumpukan (Stack) LIFO
- Prinsip: LIFO (Last In First Out). Yang terakhir masuk justru yang pertama keluar.
- Operasi: Push (menambah ke puncak) dan Pop (mengambil dari puncak).
- Analogi: Seperti tumpukan piring atau tombol Undo (Ctrl+Z).
- Susunlah koin atau buku satu per satu ke atas.
- Cobalah mengambil satu koin di posisi paling bawah tanpa menjatuhkan yang lain. Sulit, kan?
- Mana yang harus diambil duluan agar aman? (Jawabannya: Koin di posisi TOP!).
🚶 B. Antrean (Queue) FIFO
- Prinsip: FIFO (First In First Out). Yang pertama datang, dia yang pertama dilayani.
- Operasi: Enqueue (masuk di belakang/Rear) dan Dequeue (keluar dari depan/Front).
- Ajak teman-temanmu berbaris untuk masuk kelas.
- Orang yang berdiri paling depan adalah yang pertama kali masuk. Inilah cara kerja antrean di komputer saat mengirim dokumen ke mesin printer!
🌳 C. Pohon (Tree)
Prinsip: Struktur bertingkat atau hierarki.
┌─────────┐
│ AKAR │ ← Root (Paling atas)
└────┬────┘
│
┌────┴────┐
│ │
┌──┴──┐ ┌──┴──┐
│NODE │ │NODE │ ← Simpul Cabang
└──┬──┘ └─────┘
│
┌──┴──┐
│DAUN │ ← Leaf (Ujung, tidak punya anak)
└─────┘
Gambarlah pohon keluargamu. Letakkan Kakek/Nenek sebagai Akar, orang tuamu sebagai Simpul (Node), dan kamu sebagai Daun (Leaf).
🌐 D. Jejaring (Graph)
- Prinsip: Kumpulan titik (Node) yang dihubungkan oleh garis (Sisi/Edge).
- Jenis:
- Tak Berarah — Seperti pertemanan (Jika kamu kenal Budi, Budi pasti kenal kamu).
- Berarah — Seperti peta jalan satu arah atau pengikut di Instagram (Kamu mengikuti artis, tapi artis itu belum tentu mengikutimu).
- Gambar lingkaran berisi nama teman-temanmu.
- Tarik garis jika mereka saling kenal.
- Coba beri tanda panah untuk menunjukkan siapa yang meminjamkan buku kepada siapa!
📋 Tabel Ringkasan Wadah Data
| Struktur Data | Prinsip Utama | Akses Data | Contoh Nyata |
|---|---|---|---|
| Stack | LIFO | Lewat Puncak (TOP) | Tombol Undo, Tumpukan Piring |
| Queue | FIFO | Depan & Belakang | Antrean Kasir, Print Queue |
| Tree | Hierarki | Cabang & Akar | Silsilah Keluarga, Folder Komputer |
| Graph | Jaringan | Sisi/Garis (Edge) | Peta Jalan, Media Sosial |
🧪 Bab 3: Resep Rahasia — Algoritma Standar yang Pintar Aksi!
📊 A. Pengurutan (Sorting)
Mari kita urutkan data: [7, 2, 9, 1, 5]
1. Selection Sort (Cari Terkecil → Tukar)
Langkah 1: Cari yang paling kecil (1), tukar ke depan → [1, 2, 9, 7, 5]
Langkah 2: Cari terkecil dari sisa (2), sudah di posisi benar → [1, 2, 9, 7, 5]
Langkah 3: Cari terkecil dari sisa (5), tukar → [1, 2, 5, 7, 9]
Langkah 4: Cari terkecil dari sisa (7), sudah benar. Selesai!
2. Insertion Sort (Ambil → Sisipkan)
Langkah 1: [7] (sudah urut). Ambil 2, sisipkan sebelum 7 → [2, 7, 9, 1, 5]
Langkah 2: Ambil 9, sisipkan setelah 7 → [2, 7, 9, 1, 5]
Langkah 3: Ambil 1, sisipkan ke paling depan → [1, 2, 7, 9, 5]
Langkah 4: Ambil 5, sisipkan di antara 2 dan 7 → [1, 2, 5, 7, 9]. Selesai!
Mintalah 5 temanmu berdiri acak. Gunakan metode Selection Sort: Cari yang paling pendek, pindahkan ke depan. Ulangi sampai semua rapi dari pendek ke tinggi!
🔍 B. Pencarian (Searching)
- Linear Search: Cek satu-satu dari awal. (Lambat, tapi bisa untuk data acak).
- Binary Search: Data HARUS urut. Bagi dua terus sampai ketemu. (Sangat cepat!).
Linear Search → Bisa butuh 1.000.000 langkah.
Binary Search → Hanya butuh 20 langkah! 🚀
🔄 C. Rekursi (Recursion)
Rekursi adalah fungsi yang memanggil dirinya sendiri.
- Syarat Wajib: Harus punya Base Case (Tombol Berhenti). Tanpa ini, komputer akan terus bekerja sampai crash!
- Analogi: Boneka Rusia (Matryoshka). Di dalam boneka besar ada boneka lebih kecil, terus sampai boneka terkecil yang tidak bisa dibuka lagi (Base Case).
5! = 5 × 4 × 3 × 2 × 1 = 120
// Visualisasi:
Faktorial(5) → 5 × Faktorial(4)
→ 5 × 4 × Faktorial(3)
→ ...
→ 5 × 4 × 3 × 2 × 1 × Faktorial(0)
→ 5 × 4 × 3 × 2 × 1 × 1 ← BASE CASE!
→ 120 ✅
📊 Tabel Perbandingan Algoritma
| Algoritma | Syarat Data | Kecepatan | Kapan Digunakan? |
|---|---|---|---|
| Linear Search | Bebas (Acak/Urut) | Lambat | Data sedikit |
| Binary Search | Harus Terurut | Sangat Cepat | Data sangat besar |
| Selection Sort | Acak | Sedang | Belajar konsep dasar |
| Insertion Sort | Acak | Sedang | Data yang hampir urut |
💻 Bab 4: Menjadi Komandan Komputer — Dasar Pemrograman Kode!
📦 Variabel: "Kotak Penyimpanan"
| Tipe Data | Apa isinya? | Contoh |
|---|---|---|
| Integer | Bilangan bulat | 10, -5 |
| Float | Bilangan desimal | 3.14 |
| Boolean | Benar atau Salah | True, False |
| String | Teks atau kata | "Halo Dunia" |
🧠 Logika IF-THEN-ELSE (Keputusan)
Komputer mengambil keputusan seperti ini:
IF (lapar == True) THEN
Makan Nasi
ELSE
Main Game
🔄 Perulangan (Looping)
-
FOR: Kamu sudah tahu mau mengulang berapa kali.
Contoh: FOR 1 sampai 5: Lompat! (Lompat 5 kali lalu berhenti). -
WHILE: Mengulang selama syaratnya masih benar.
Contoh: WHILE piring belum kosong: Makan! (Berhenti hanya jika nasi habis).
🏆 Bab 5: Penutup & Tips Sukses Programmer Cilik Finis!
💪 5 Kekuatan Super Programmer
(Langkah Pemecahan Masalah):
- Identifikasi: Apa masalahnya?
- Dekomposisi: Pecah masalah besar jadi bagian-bagian kecil.
- Pengenalan Pola: Cari kesamaan dengan masalah yang pernah kamu temui.
- Abstraksi: Fokus pada hal penting, buang detail yang tidak perlu.
- Algoritma: Susun langkah solusinya!
🔑 Daftar Kata Kunci Rahasia
- LIFO — Last In First Out (Stack).
- FIFO — First In First Out (Queue).
- Push & Pop — Menambah & mengambil di Stack.
- Base Case — Tombol berhenti pada Rekursi.
📌 Tips Belajar
- Hubungkan dengan Keseharian: Antrean kantin adalah Queue, tumpukan buku adalah Stack.
- Latihan Menggambar: Gambar alur algoritmu sebelum mengetik kode.
- Gunakan Scratch: Cobalah membuat blok "IF" dan "REPEAT" (Loop) secara visual.
— Niklaus Wirth