Tumpukan (Stack) dan Antrean (Queue): Konsep, Perbedaan, dan Penerapannya

Table of Contents

Apa Itu Tumpukan (Stack)?

Tumpukan (stack) adalah struktur data linear yang mengikuti prinsip Last In, First Out (LIFO). Ini berarti elemen yang terakhir dimasukkan ke dalam tumpukan akan menjadi elemen pertama yang keluar.

Tumpukan (Stack) dan Antrean (Queue): Konsep, Perbedaan, dan Penerapannya (masulin00)

Karakteristik Tumpukan:

  • Operasi Utama:

    • Push: Menambahkan elemen ke atas tumpukan.
    • Pop: Menghapus elemen dari atas tumpukan.
    • Peek/Top: Melihat elemen yang berada di atas tanpa menghapusnya.
  • Akses Data: Hanya elemen di puncak yang dapat diakses.

Contoh dalam Kehidupan Sehari-Hari:

  • Tumpukan piring di dapur: Piring yang terakhir diletakkan di atas akan menjadi piring pertama yang diambil.

Apa Itu Antrean (Queue)?

Antrean (queue) adalah struktur data linear yang mengikuti prinsip First In, First Out (FIFO). Dalam antrean, elemen yang pertama masuk akan menjadi elemen pertama yang keluar.

Karakteristik Antrean:

  • Operasi Utama:

    • Enqueue: Menambahkan elemen di bagian belakang antrean.
    • Dequeue: Menghapus elemen dari bagian depan antrean.
  • Akses Data: Elemen yang pertama kali masuk adalah elemen pertama yang dapat diakses.

Contoh dalam Kehidupan Sehari-Hari:

  • Antrean di loket: Orang yang pertama datang akan dilayani lebih dulu.

Perbedaan Utama Antara Stack dan Queue

Aspek Stack Queue
Prinsip Last In, First Out (LIFO) First In, First Out (FIFO)
Operasi Tambah Push (di atas tumpukan) Enqueue (di belakang antrean)
Operasi Hapus Pop (dari atas tumpukan) Dequeue (dari depan antrean)
Akses Elemen Hanya elemen di atas tumpukan Hanya elemen di depan antrean
Contoh Kehidupan Tumpukan piring Antrean di loket

Jenis-Jenis Queue

  1. Queue Biasa: Mengikuti prinsip FIFO tanpa modifikasi tambahan.

  2. Deque (Double-Ended Queue): Elemen dapat ditambahkan atau dihapus dari kedua ujung antrean.

  3. Priority Queue: Elemen dengan prioritas lebih tinggi akan diproses lebih dulu, terlepas dari urutan masuknya.

  4. Circular Queue: Antrean yang berbentuk lingkaran, di mana elemen terakhir terhubung kembali ke elemen pertama.

Implementasi Tumpukan dan Antrean

1. Implementasi Tumpukan dengan Python:

# Implementasi Stack dengan List
stack = []

# Operasi Push
stack.append(10)
stack.append(20)
stack.append(30)
print("Stack setelah push:", stack)

# Operasi Pop
element = stack.pop()
print("Elemen yang di-pop:", element)
print("Stack setelah pop:", stack)

2. Implementasi Antrean dengan Python:

from collections import deque

# Implementasi Queue dengan deque
queue = deque()

# Operasi Enqueue
queue.append(10)
queue.append(20)
queue.append(30)
print("Queue setelah enqueue:", queue)

# Operasi Dequeue
element = queue.popleft()
print("Elemen yang di-dequeue:", element)
print("Queue setelah dequeue:", queue)

Penerapan Stack dan Queue

Penerapan Stack:

  1. Undo/Redo dalam Aplikasi:

    • Saat mengetik di aplikasi, fitur undo menggunakan stack untuk melacak perubahan.
  2. Pengecekan Keseimbangan Kurung:

    • Stack digunakan untuk memeriksa apakah kurung buka dan tutup dalam ekspresi matematika atau kode sesuai.
  3. Traversal Rekursif:

    • Digunakan dalam algoritma seperti Depth First Search (DFS).

Penerapan Queue:

  1. Manajemen Proses:

    • CPU menggunakan antrean untuk menjadwalkan proses yang akan dijalankan.
  2. Layanan Pelanggan:

    • Digunakan untuk mengatur antrean pelanggan di bank atau call center.
  3. Algoritma Breadth First Search (BFS):

    • Menggunakan antrean untuk traversal graf.

Kesimpulan

Tumpukan (stack) dan antrean (queue) adalah struktur data fundamental yang digunakan untuk mengelola data secara efisien. Keduanya memiliki prinsip operasi yang berbeda—LIFO untuk stack dan FIFO untuk queue—dan diterapkan dalam berbagai situasi, mulai dari algoritma hingga manajemen sistem. Memahami perbedaan dan penerapan masing-masing membantu kita memilih struktur data yang tepat untuk menyelesaikan masalah tertentu.

FAQ

1. Apa perbedaan utama antara stack dan queue?

Stack menggunakan prinsip LIFO, sedangkan queue menggunakan prinsip FIFO.

2. Apa contoh nyata penggunaan stack?

Contoh nyata adalah fitur undo/redo pada aplikasi pengolah kata.

3. Apakah queue hanya bisa menambahkan elemen di belakang?

Queue biasa hanya menambahkan elemen di belakang, tetapi deque memungkinkan penambahan di kedua ujung.

4. Bagaimana cara mengimplementasikan stack di Python?

Stack dapat diimplementasikan menggunakan list dengan metode append() untuk push dan pop() untuk pop.

5. Apa keuntungan menggunakan deque untuk queue?

Deque lebih efisien dalam operasi enqueue dan dequeue karena dirancang khusus untuk manipulasi elemen di kedua ujung.

Posting Komentar