Kapan Pakai Apa? — Struktur Data

Memilih struktur data yang tepat adalah skill paling penting dalam programming. Berikut panduan praktis: Cheat Sheet Kebutuhan Struktur Data Terbaik Akses by in

Memilih struktur data yang tepat adalah skill paling penting dalam programming. Berikut panduan praktis:

Cheat Sheet

Kebutuhan Struktur Data Terbaik
Akses by index cepat Array
LIFO (undo, parsing) Stack
FIFO (antrian, BFS) Queue
Pencarian by key cepat Hash Map
Nilai unik, cek membership Set
Insert/delete sering di tengah Linked List
Data terurut + cari cepat BST
Ambil min/max cepat Heap
Relasi antar entitas Graph
Autocomplete, prefix search Trie

Decision Flowchart

Butuh urutan?

Butuh pencarian cepat?

Butuh relasi antar data?

Contoh Real-world

// 1. Counting kata — Hash Map
const freq = {};
words.forEach(w => freq[w] = (freq[w] || 0) + 1);

// 2. Hapus duplikat — Set
const unique = [...new Set(items)];

// 3. Undo system — Stack
const history = [];
history.push(currentState);  // save
const prev = history.pop();  // undo

// 4. Task queue — Queue
const tasks = new Queue();
tasks.enqueue(newTask);       // tambah
const next = tasks.dequeue(); // proses berikutnya

🎭 Analogi sehari-hari: Pilih struktur data = pilih alat di kotak peralatan. Ngebor pakai obeng? Bisa, tapi salah alat. Mau ngitung kata sering muncul pakai array biasa? Bisa, tapi O(n²). Pakai Hash Map = O(n). Alat yang tepat = kerja 1000x lebih cepat.

💡 Pertanyaan kunci saat pilih struktur:

  1. Operasi paling sering apa? (akses, sisip, hapus, cari)
  2. Urutan penting? (Set/Map vs Array)
  3. Boleh duplikat? (Set vs Array)
  4. Berapa data? (kecil = pakai yang simpel, besar = optimasi)
  5. Akses by index atau by key? (Array vs Hash Map)

⚠️ Jebakan klasik pemula:

🎯 Quick reference 80% kasus pakai apa:

TL;DR: 80% kasus cuma butuh Array, Hash Map, Set, Queue/Stack. Sisanya situasional. Hafalin kapan pakai apa lebih penting daripada hafal implementasi.