Konsep Dasar Struktur Data

Struktur data adalah cara untuk menyimpan dan mengorganisasi data agar bisa digunakan secara efisien. Struktur data yang tepat akan membantu algoritma bekerja lebih cepat dan hemat memori.
Terdapat berbagai macam konsep dasar dalam membuat struktur Data :
Linked List
Linked List adalah struktur data linear yang terdiri dari elemen-elemen yang disebut node. Setiap node menyimpan dua hal: data dan referensi ke node berikutnya. Berbeda dengan array yang menyimpan data secara bersebelahan di memori, node pada linked list bisa tersebar, dan saling terhubung lewat pointer. Ada beberapa jenis:
- Singly Linked List: menghubungkan satu arah.
- Doubly Linked List: dua arah (maju dan mundur). Contoh : Browser menyimpan riwayat halaman :
[Home] <-> [Artikel 1] <-> [Artikel 2] <-> [Artikel 3]
- Circular Linked List: ujungnya kembali ke awal.
Linked list cocok digunakan saat sering menambah atau menghapus data di tengah atau awal struktur, tapi tidak efisien untuk mencari data secara acak karena harus menelusuri dari awal.

Stack ( tumpukan )
Stack adalah struktur data linear Last In, First Out (LIFO). Artinya, elemen terakhir yang masuk akan keluar lebih dulu. Seperti namanya "TUMPUKAN", data yang terakhir di tumpuk, yang akan pertama di ambil.
Operasi yang digunakan :
push(item)
: Menambahkan item ke atas tumpukan.pop()
: Menghapus item teratas.peek()
: Melihat item teratas tanpa menghapusnya.

Contoh Kasus :
Saat mengetik di aplikasi bisa menekan Ctrl+Z untuk membatalkan tindakan terakhir. Sehingga tindakan terakhir yang dilakukan akan di-undo lebih dulu (pop dari atas stack). Saat kamu melakukan undo()
, stack akan pop()
dan kembali ke kondisi sebelumnya.
Queue ( Antrian )
Queue adalah struktur data linear First In, First Out (FIFO). Item pertama yang masuk akan keluar pertama.
Operasi utama:
enqueue(item)
: Menambahkan item ke belakang antrean.dequeue()
: Menghapus item dari depan antrean.
Variasi Queue:
- Circular Queue: Setelah rear mencapai akhir, bisa melingkar ke awal.
- Priority Queue: Elemen diproses berdasarkan prioritas, bukan urutan masuk.
Contoh : Task scheduler, Queue di server permintaan HTTP

Tree
Tree adalah struktur data hierarkis, seperti pohon dengan cabang. Setiap elemen disebut node, yang bisa memiliki anak (child node). Node paling atas disebut root.
Salah satu bentuk yang umum adalah Binary Tree, di mana setiap node hanya punya maksimal dua anak: kiri dan kanan. Jika memenuhi aturan tertentu (anak kiri lebih kecil, anak kanan lebih besar), maka disebut Binary Search Tree (BST).
Tree sering digunakan untuk menyusun data yang bertingkat, seperti:
- struktur folder komputer,
- menu navigasi,
- dan algoritma pencarian.
Tree juga jadi dasar dalam struktur indeks database seperti B-Tree untuk mempercepat pencarian data.

Contoh :
Elektronik
├── Laptop
│ ├── Gaming
│ └── Ultrabook
└── Smartphone
├── Android
└── iOS
Node:
data: "Laptop"
children: ["Gaming", "Ultrabook"]
Masing-masing struktur data memiliki bentuk, aturan, dan cara kerja yang berbeda, namun semuanya bertujuan sama: mengelola data agar bisa diakses dan diproses dengan efisien.