Anda di halaman 1dari 3

Forum 5 - Stack and Queue

Perbandingan Algoritma BFS dan DFS

Dasar untuk perbandingan BFS DFS

Dasar Algoritma berbasis vertex Algoritma berbasis tepi

Struktur data digunakan


Antre Tumpukan
untuk menyimpan node

Konsumsi memori Tidak efisien Efisien

Struktur pohon yang


Lebar dan pendek Sempit dan panjang
dibangun

Verteks yang belum


Verteks di sepanjang tepi
Melintasi mode dikunjungi tertua
dieksplorasi di awal.
dieksplorasi pada awalnya.

Optimal untuk menemukan


Optimalitas Tidak maksimal
jarak terdekat, bukan biaya.

Memeriksa grafik bipartit,


Memeriksa grafik terhubung dua
komponen yang terhubung,
Aplikasi sisi, grafik terhubung kuat, grafik
dan jalur terpendek yang ada
asiklik dan urutan topologi.
dalam grafik.

Stack
Stack adalah sebuah abstract data type dan struktur data yang mengandung konsep last in first out
(LIFO).
Sebuah stack dapat memiliki abstract data type sebagai elementnya, tetapi hanya terdapat 2 operasi di
dalamnya yaitu push dan pop.

Operasi Push adalah sebuah operasi untuk menambahkan data ke top dari sebuah stack,
menyembunyikan semua items yang sudah ada di dalam stack, atau memberikan nilai awal dari stack
jika stack tersebut masih kosong.
Operasi Pop adalah sebuah operasi untuk menghapus data top dari sebuah stack dan mengembalikan
nilai tersebut ke pemanggil functionnya.
Operasi stack memungkinkan untuk pengembalian nilai yang ada dalam stack (nilai paling atas
setelah node top di hapus) atau empty stack.
Stack sendiri juga dapat kita desain sendiri menggunakan paradigma OOP (Object Oriented
Programming). Stack dapat diimplementasikan menggunakan Array ataupun Linked List. Stack yang
diimplementasikan dengan Array biasanya bersifat statis, jika penuh maka akan terjadi stack overflow. 

Konsep Stack dalam kehidupan sehari-hari


Terdapat suatu tumpukan buku, lalu kita akan mengeluarkan salah satu buku tersebut, maka kita akan
mengambil buku yang pertama yang letaknya ada dipaling atas, yang juga termasuk buku yang paling
terakhir dimasukin atau diletakkan.

Dalam stack, ada beberapa operasi yang penting untuk diperhatikan, antara lain :

push(elemen) : memasukkan elemen ke dalam stack, sama seperti memasukin buku, ditaruh di
paling atas.
pop() : mengambil elemen dari stack, sama seperti mengeluarkan buku, maka yang dikeluarkan
adalah buku yang paling atas.
peek() : mencari elemen yang berada di paling atas (yang terakhir dimasukkan), namun tidak
dikeluarkan.

Queue
Queue adalah sebuah jenis collection yang setiap elemen dalam collection tersebut diatur dan
penambahan hanya dapat dilakukan pada data paling akhir (end terminal) dan penghapusan hanya
dapat dilakukan pada data paling depan (front terminal) hal ini yang menjadikan queue
menggunakan konsep FIFO (First In First Out).
Dalam konsep FIFO dalam stuktur data, elemen pertama yang ditambahkan dalam queue akan
menjadi elemen pertama yang dihapus. Hal ini menyebabkan jika ada sebuah elemen yang
ditambahkan, semua elemen yang sudah ditambahkan sebelumnya harus dihapus terlebih
dahulu sebelum elemen yang baru dipanggil. Queue adalah sebuah contoh linear data structure.
Konsep Stack dalam kehidupan sehari-hari
Antrian pembelian tiket, antrian masuk, atau antrian kasir ketika pembelian suatu barang.
Queue merupakan struktur data yang menggunakan paradigma FIFO (First In First Out), dimana yang
elemen pertama masuk adalah elemen yang pertama keluar. Maka jika dalam konsep antrian yang
pertama datang adalah yang pertama kali dilayani atau mendapat sesuatu yang diinginkan.

Dalam queue, ada beberapa operasi yang penting untuk diperhatikan, antara lain :

enqueue(elemen) : memasukkan elemen ke dalam queue, sama seperti ketika ada orang yang

baru datang pada antrian pembelian tiket, pasti dia orang tersebut berada di paling belakang.

(Kalau di Java interface dinamakan add/offer)

dequeue() : mengambil elemen dari queue, sama seperti ketika beli tiket, yang selesai duluan dan

mendapatkan tiket adalah orang yang paling depan. (Kalau di Java interface dinamakan

remove)

peek() : mencari elemen yang berada di paling depan (yang pertama dimasukkan), namun tidak

dikeluarkan.
poll() : mencari elemen yang berada di paling depan dan dikeluarkan.

isEmpty() : mengecek apakah queue tersebut kosong atau tidak.

isFull() : mengecek apakah queue tersebut penuh atau tidak (pada Queue statis yang diimplementasikan

dengan array).

Anda mungkin juga menyukai