📘 RANGKUMAN BUKU INFORMATIKA
📖 BAB 1 — PENGANTAR STRUKTUR DATA DAN ALGORITMA
1. Struktur Data
Pengertian: Cara menyimpan dan mengorganisasi data dalam komputer agar dapat digunakan secara efisien.
Tujuan:
- Mempermudah akses data
- Menghemat memori
- Meningkatkan kecepatan pemrosesan
2. Algoritma
Pengertian: Serangkaian instruksi terstruktur dan terbatas untuk menyelesaikan masalah komputasi.
Karakteristik Algoritma Baik:
- Input → menerima masukan
- Output → menghasilkan keluaran
- Definiteness → setiap langkah jelas
- Finiteness → berakhir setelah langkah tertentu
- Effectiveness → setiap langkah dapat dilaksanakan
3. Hubungan Algoritma + Struktur Data
(Bagaimana) + (Apa yang dikelola) = (Solusi)
4. Pentingnya Efisiensi
Memilih struktur data dan algoritma yang tepat sangat mempengaruhi:
- Kecepatan eksekusi program
- Penggunaan memori
- Skalabilitas sistem
Linear Search → 1.000.000 langkah
Binary Search → hanya 20 langkah! 🚀
📊 BAB 2 — STRUKTUR DATA DASAR
1. Daftar (List)
Karakteristik:
- Data tersusun linear (berurutan)
- Setiap elemen memiliki indeks
- Ukuran dapat berubah (dinamis) atau tetap (statis)
Operasi Dasar:
| Operasi | Fungsi |
|---|---|
| Add | Menambah elemen |
| Remove | Menghapus elemen |
| Get | Mengakses elemen berdasarkan indeks |
| Search | Mencari elemen |
Contoh: Daftar belanja, daftar hadir siswa, playlist lagu
2. Tumpukan (Stack)
Prinsip: LIFO (Last In First Out) — Yang terakhir masuk, keluar pertama
Operasi Stack:
| Operasi | Fungsi |
|---|---|
| Push | Menambah elemen di puncak |
| Pop | Menghapus elemen dari puncak |
| Peek | Melihat elemen puncak (tanpa hapus) |
Contoh: Tumpukan piring, tombol Undo (Ctrl+Z), riwayat browser
3. Antrian (Queue)
Prinsip: FIFO (First In First Out) — Yang pertama masuk, keluar pertama
Operasi Queue:
| Operasi | Fungsi |
|---|---|
| Enqueue | Menambah elemen di belakang |
| Dequeue | Menghapus elemen dari depan |
| Front | Melihat elemen depan (tanpa hapus) |
Contoh: Antrian kasir, print queue, penjadwalan tugas
4. Pohon (Tree)
Karakteristik: Struktur data hierarkis dengan simpul (node) yang saling terhubung.
┌─────────┐
│ AKAR │ ← Root (paling atas)
└────┬────┘
│
┌────┴────┐
│ │
┌──┴──┐ ┌──┴──┐
│NODE │ │NODE │ ← Node (simpul)
└──┬──┘ └─────┘
│
┌──┴──┐
│DAUN │ ← Leaf (tidak punya anak)
└─────┘
Contoh: Struktur organisasi, silsilah keluarga, daftar isi buku
5. Jejaring (Graph)
Karakteristik: Simpul (node) dihubungkan oleh sisi (edge).
Jenis:
- Graph Berarah → sisi memiliki arah (contoh: peta satu arah)
- Graph Tak Berarah → sisi tanpa arah (contoh: pertemanan)
- Berbobot → sisi memiliki nilai (contoh: jarak antar kota)
Contoh: Peta jalan, jaringan sosial (FB/IG), jaringan komputer
⚙️ BAB 3 — ALGORITMA STANDAR
1. Algoritma Pengurutan (Sorting)
A. Selection Sort
Cara Kerja: Mencari elemen terkecil → tukar ke posisi awal → ulangi.
Data: [7, 2, 9, 1, 5]
Langkah 1: cari terkecil (1) → [1, 2, 9, 7, 5] ✓
Langkah 2: cari terkecil dari sisa (2) → [1, 2, 9, 7, 5] ✓
Langkah 3: cari terkecil (5) → [1, 2, 5, 7, 9] ✓
Langkah 4: cari terkecil (7) → [1, 2, 5, 7, 9] ✓
Selesai: [1, 2, 5, 7, 9] ✓
B. Insertion Sort
Cara Kerja: Ambil elemen → sisipkan ke posisi tepat di bagian yang sudah terurut.
Data: [7, 2, 9, 1, 5]
Langkah 1: [7] → masukkan 2 → [2, 7, 9, 1, 5]
Langkah 2: [2,7] → masukkan 9 → [2, 7, 9, 1, 5]
Langkah 3: [2,7,9] → masukkan 1 → [1, 2, 7, 9, 5]
Langkah 4: [1,2,7,9] → masukkan 5 → [1, 2, 5, 7, 9] ✓
2. Algoritma Pencarian (Searching)
A. Pencarian Linear (Linear Search)
Cara: Periksa satu per satu dari awal sampai ketemu.
- ✅ Kelebihan: Bisa untuk data tidak terurut
- ❌ Kekurangan: Lambat untuk data besar
Contoh: Cari 9 di [3,7,2,9,5] → periksa 3,7,2,9 (4 langkah)
B. Pencarian Biner (Binary Search)
Cara: Data terurut → bagi menjadi 2 → tentukan posisi target.
- ✅ Kelebihan: Sangat cepat
- ❌ Kekurangan: Data HARUS terurut
Contoh: Cari 9 di [2,5,7,9,12,15,18]
- Periksa tengah (index 3 = 9) → langsung ketemu! (1 langkah)
Perbandingan Efisiensi:
| Jumlah Data | Linear Search | Binary Search |
|---|---|---|
| 10 | 10 langkah | 4 langkah |
| 1.000 | 1.000 langkah | 10 langkah |
| 1.000.000 | 1.000.000 langkah | 20 langkah |
3. Rekursi (Recursion)
Pengertian: Fungsi yang memanggil dirinya sendiri.
Komponen:
- Base Case → kondisi berhenti (yang paling sederhana)
- Recursive Case → memanggil dirinya sendiri dengan masalah lebih kecil
Contoh: Faktorial (5!)
Faktorial(5) = 5 × 4 × 3 × 2 × 1 = 120
Rumus: Faktorial(n) = n × Faktorial(n-1)
Base Case: Faktorial(0) = 1
Faktorial(5)
↓
5 × Faktorial(4)
↓
5 × 4 × Faktorial(3)
↓
5 × 4 × 3 × Faktorial(2)
↓
5 × 4 × 3 × 2 × Faktorial(1)
↓
5 × 4 × 3 × 2 × 1 × Faktorial(0)
↓
5 × 4 × 3 × 2 × 1 × 1 ← BASE CASE
↓
120 ✓
💻 BAB 4 — IMPLEMENTASI PEMROGRAMAN
1. Variabel dan Tipe Data
Variabel: Tempat menyimpan data yang dapat berubah.
| Tipe Data | Penjelasan | Contoh |
|---|---|---|
| Integer | Bilangan bulat | 10, -5, 0 |
| Float | Bilangan desimal | 3.14, 0.5 |
| Boolean | Benar/Salah | True, False |
| String | Teks/kata | "Halo", "Nama" |
2. Struktur Percabangan (IF-THEN)
Fungsi: Mengatur alur program berdasarkan kondisi.
IF nilai >= 75 THEN
Tampilkan "Lulus"
ELSE
Tampilkan "Perlu belajar lagi"
3. Struktur Perulangan (LOOPING)
A. Perulangan FOR
- Jumlah perulangan sudah diketahui
- Contoh: Ulangi 5 kali
B. Perulangan WHILE
- Berulang selama kondisi terpenuhi
- Contoh: Ulangi selama angka > 0
FOR: [1] [2] [3] [4] [5] → STOP (5 kali)
WHILE: [1] [2] [3] [4] [5] → STOP (kondisi false)
🌍 BAB 5 — STUDI KASUS
Penerapan Struktur Data dalam Kehidupan
| Struktur Data | Contoh Kehidupan | Aplikasi Teknologi |
|---|---|---|
| List | Daftar belanja, daftar hadir | Playlist lagu, kontak HP |
| Stack | Tumpukan piring, tumpukan buku | Tombol Undo, riwayat browser |
| Queue | Antrian kasir, antrian tiket | Print queue, antrian pesan |
| Tree | Struktur organisasi, silsilah | Sistem file, HTML DOM |
| Graph | Peta jalan, pertemanan | Google Maps, medsos |
Langkah Pemecahan Masalah Algoritmik
↓
2. DEKOMPOSISI (Pecah menjadi bagian kecil)
↓
3. PENGENALAN POLA (Cari kesamaan/pola)
↓
4. ABSTRAKSI (Ambil informasi penting)
↓
5. PENYUSUNAN ALGORITMA (Buat langkah solusi)
📊 TABEL PERBANDINGAN CEPAT
Perbandingan Struktur Data
| List | Stack | Queue | Tree | Graph | |
|---|---|---|---|---|---|
| Prinsip | Linear | LIFO | FIFO | Hierarkis | Jaringan |
| Akses | Indeks | Puncak | Depan/Belakang | Cabang | Sisi |
| Contoh | Daftar | Tumpukan | Antrian | Silsilah | Peta |
Perbandingan Algoritma Pencarian
| Linear Search | Binary Search | |
|---|---|---|
| Syarat Data | Tidak perlu terurut | WAJIB terurut |
| Cara | Periksa satu per satu | Bagi menjadi 2 |
| Kecepatan | Lambat | Sangat cepat |
| Gunakan untuk | Data kecil | Data besar terurut |
Perbandingan Algoritma Pengurutan
| Selection Sort | Insertion Sort | |
|---|---|---|
| Cara | Cari terkecil → tukar | Ambil → sisipkan tepat |
| Mudah dipahami | ✅ | ✅ |
| Efisien untuk | Data kecil | Data hampir terurut |
🧮 RUMUS PENTING
1. Kompleksitas Waktu (Perkiraan Langkah)
| Algoritma | Kompleksitas | Untuk n=1000 |
|---|---|---|
| Linear Search | n | 1.000 langkah |
| Binary Search | log₂ n | ~10 langkah |
| Selection Sort | n² | 1.000.000 langkah |
| Insertion Sort | n² | 1.000.000 langkah |
2. Rumus Faktorial (Rekursi)
0! = 1
🔑 KATA KUNCI YANG HARUS DIINGAT
| Kata Kunci | Arti Singkat |
|---|---|
| Struktur Data | Cara menyimpan data |
| Algoritma | Langkah menyelesaikan masalah |
| LIFO | Terakhir masuk, keluar pertama (Stack) |
| FIFO | Pertama masuk, keluar pertama (Queue) |
| Rekursi | Fungsi memanggil dirinya sendiri |
| Binary Search | Pencarian dengan membagi dua |
| Selection Sort | Cari terkecil → tukar |
| Insertion Sort | Ambil → sisipkan tepat |
"Algoritma + Struktur Data = Program" — Niklaus Wirth
- Pahami konsep dengan contoh sehari-hari
- Latihan menggambar ilustrasi struktur data
- Coba implementasikan di Scratch/Blockly
- Latihan soal pengurutan dan pencarian manual
- Diskusikan dengan teman tentang penerapan di kehidupan nyata
✨ Semoga rangkuman ini membantu pemahaman Anda! 🚀
No comments:
Post a Comment
Selamat datang di blog handrizakk.blogspot.com, Mari berbagi dengan tulisan. Sahabat bisa temukan saya di f: Handri Zakki Pratama | t: @handrizakk