Struktur data adalah cara menyimpan dan mengorganisasi data agar bisa diakses dan dimodifikasi secara efisien.
Mengapa penting?
- Memilih struktur data yang tepat bisa membuat program 1000x lebih cepat
- Semua framework dan library dibangun di atas struktur data
- Pertanyaan wajib di technical interview
Struktur data yang akan kamu pelajari:
| Struktur | Kegunaan |
|---|---|
| Array | Koleksi data berurutan |
| Stack | Undo/redo, validasi kurung |
| Queue | Antrian tugas, BFS |
| Linked List | Penyisipan/penghapusan cepat |
| Hash Map | Pencarian super cepat O(1) |
| Tree | Data hierarki, pencarian cepat |
| Graph | Jaringan, peta, relasi |
Setiap struktur punya kekuatan dan kelemahan — kuncinya adalah memilih yang tepat untuk masalah yang kamu hadapi.
🎭 Analogi sehari-hari: Bayangin kamu pindah rumah. Buku bisa kamu taro di rak (Array — rapi, gampang ambil nomor 5), kaos kaki masuk laci (Hash Map — ngambil cuma sebut "kaos olahraga"), antrian pakai kamar mandi pagi-pagi (Queue), tumpukan piring habis nyuci (Stack). Kotak yang sama dipakai semua = kacau. Setiap barang ada wadah yang tepat.
💡 Yang sering bikin kaget pemula: "Kok cuma nyimpen data aja ribet banget?" — karena cara nyimpen menentukan kecepatan. Cari nama di buku telpon urut alfabet vs acak — sama-sama "list" tapi performa beda 1000x.
⚠️ Jebakan: Jangan pilih struktur data karena "kelihatan canggih". Tree itu keren tapi kalau cuma butuh push/pop dari ujung, Array sudah cukup. Kompleksitas tanpa alasan = bug factory.
🎯 Cara mikir saat pilih struktur:
- Apa operasi paling sering? (akses, sisip, hapus, cari)
- Berapa besar data? (100 vs 1 juta beda strategi)
- Urutan penting? (Set tidak peduli urutan, Array peduli)
- Boleh duplikat? (Set unik, Array boleh duplikat)
TL;DR: Struktur data = wadah data yang dipilih sesuai kebutuhan. Salah pilih = lambat. Pelajari trade-off, bukan hafal nama.