Pertemuan 15
Universitas Pertahanan RI
Setelah pertemuan ini, mahasiswa mampu:
Gambar 15.1: Peta konsep seluruh struktur data yang dipelajari
Struktur Data Linear: Elemen tersusun secara sekuensial, satu demi satu dalam urutan tertentu.
Empat struktur data linear utama:
Array β Linked List β Stack β Queue
β Kelebihan:
β Kelemahan:
Gunakan ketika: Ukuran diketahui, akses random sering
β Kelebihan:
β Kelemahan:
Gunakan ketika: Insert/delete sering, ukuran berubah-ubah
Operasi Utama: push(), pop(), top() β semua O(1)
Aplikasi:
Operasi Utama: enqueue(), dequeue(), front() β semua O(1)
Variasi:
Struktur Data Non-Linear: Elemen dapat memiliki banyak successor atau predecessor, membentuk struktur hierarkis atau jaringan.
Struktur non-linear utama:
Tree β BST β Heap β Hash Table
| Operasi | Average | Worst |
|---|---|---|
| Search | O(log n) | O(n) |
| Insert | O(log n) | O(n) |
| Delete | O(log n) | O(n) |
β οΈ Worst case terjadi pada BST tidak seimbang (skewed tree)
Min-Heap:
Max-Heap:
| Operasi | Kompleksitas |
|---|---|
| getMin/getMax | O(1) |
| Insert | O(log n) |
| Extract | O(log n) |
| Build Heap | O(n) |
Operasi average case: Search, Insert, Delete β semua O(1)
Collision Handling:
β οΈ Worst case O(n) jika banyak collision atau load factor tinggi
| Algoritma | Best | Average | Worst | Space | Stable |
|---|---|---|---|---|---|
| Bubble Sort | O(n) | O(nΒ²) | O(nΒ²) | O(1) | β |
| Selection Sort | O(nΒ²) | O(nΒ²) | O(nΒ²) | O(1) | β |
| Insertion Sort | O(n) | O(nΒ²) | O(nΒ²) | O(1) | β |
| Merge Sort | O(n log n) | O(n log n) | O(n log n) | O(n) | β |
| Quick Sort | O(n log n) | O(n log n) | O(nΒ²) | O(log n) | β |
| Heap Sort | O(n log n) | O(n log n) | O(n log n) | O(1) | β |
Gambar 15.2: Perbandingan Array vs Linked List
| Struktur | Access | Search | Insert | Delete | Space |
|---|---|---|---|---|---|
| Array | O(1) | O(n) | O(n) | O(n) | O(n) |
| Linked List | O(n) | O(n) | O(1)* | O(1)* | O(n) |
| Stack/Queue | - | - | O(1) | O(1) | O(n) |
| BST (avg) | - | O(log n) | O(log n) | O(log n) | O(n) |
| Heap | O(1)** | O(n) | O(log n) | O(log n) | O(n) |
| Hash Table | - | O(1) | O(1) | O(1) | O(n) |
*di posisi diketahui | **hanya min/max
Gambar 15.3: Flowchart pemilihan struktur data
Sistem perlu menyimpan data dengan operasi:
Struktur data apa yang paling tepat?
Jawaban: Hash Table
Search O(1), Insert O(1), Delete O(1) β optimal untuk operasi berbasis key!
Mengapa array sorted + binary search tidak selalu lebih baik dari BST?
Jawaban:
Contoh nyata penggunaan kombinasi struktur data:
Gambar 15.4: Arsitektur LRU Cache
Kombinasi: Hash Table (O(1) lookup) + Doubly Linked List (O(1) removal & insertion)
| Operasi | Langkah | Kompleksitas |
|---|---|---|
| get(key) | 1. Cari di hash table 2. Pindahkan node ke head |
O(1) |
| put(key, val) | 1. Insert ke hash table 2. Insert node di head 3. Evict tail jika penuh |
O(1) |
Gambar 15.5: Mekanisme undo/redo dengan dua stack
void execute(Operation op) {
op.apply(document);
undoStack.push(op);
redoStack.clear(); // Invalidate redo history
}
void undo() {
if (!undoStack.empty()) {
Operation op = undoStack.pop();
op.inverse().apply(document);
redoStack.push(op);
}
}
void redo() {
if (!redoStack.empty()) {
Operation op = redoStack.pop();
op.apply(document);
undoStack.push(op);
}
}
Gambar 15.6: Arsitektur multi-index untuk aset pertahanan
| Query | Struktur Data | Kompleksitas |
|---|---|---|
| Cari berdasarkan ID | Hash Table | O(1) |
| Cari berdasarkan region | BST (by region code) | O(log n + k) |
| Ambil prioritas tertinggi | Max-Heap | O(log n) |
| History perubahan | Stack | O(1) |
Cakupan UAS: Seluruh materi Pertemuan 1-15, dengan penekanan pada Pertemuan 9-15
| Prioritas | Topik | Jenis Soal |
|---|---|---|
| βββ | Sorting (Merge, Quick, Heap) | Tracing, implementasi, analisis |
| βββ | Tree & BST operations | Traversal, insert, delete |
| βββ | Hash Table | Collision handling, lookup |
| ββ | Heap & Priority Queue | Build heap, extract |
| ββ | Pemilihan struktur data | Analisis trade-off |
| β | Stack, Queue, Linked List | Operasi dasar, aplikasi |
Diberikan array: [3, 1, 4, 1, 5, 9, 2, 6]
Setelah 3 iterasi Selection Sort, bagaimana kondisi array?
Jawaban:
| Struktur Data | Best For | Key Operation |
|---|---|---|
| Array | Random access, data statis | Access O(1) |
| Linked List | Insert/delete sering | Insert/Delete O(1)* |
| Stack | LIFO, backtracking | Push/Pop O(1) |
| Queue | FIFO, scheduling | Enqueue/Dequeue O(1) |
| BST | Data terurut, range query | All O(log n) avg |
| Heap | Priority queue, top-k | Extract O(log n) |
| Hash Table | Key-value lookup | All O(1) avg |
Silakan bertanya atau diskusi
Referensi: Cormen (seluruh bab) | Weiss (seluruh bab)
Struktur Data dan Algoritma
Pertemuan 15
Selamat belajar untuk UAS!
Β© 2026 - CC BY 4.0