17
dilakukan pada ujung yang lain atau front Sjukani, 2007. Cara kerja queue menggunakan prinsip First In First Out FIFO yaitu
elemen yang pertama kali masuk maka akan menjadi elemen yang pertama keluar.
Ada dua operasi pada queue yaitu enqueue dan dequeue. Operasi enqueue digunakan untuk menambahkan elemen pada
ujung queue rear. Sedangkan operasi dequeue digunakan untuk mengambil elemen yang terdapat pada bagian depan queue.
Berikut ini contoh queue beserta operasi enqueue dan dequeue.
Gambar 2.7 Queue
2.4. Algoritma Traversal pada Graf
2.4.1. Breadth First Search BFS
Breadth First Search adalah penelusuran graph yang arah penelusurannya mendahulukan ke arah „lebar‟ graph tersebut
Sjukani, 2007. Algoritma pencarian melebar BFS melakukan penelusuran setiap simpul pada graf dengan dimulai dari sebuah
simpul awal start, kemudian dilanjutkan dengan menelusuri simpul akar dari simpul awal, lalu dilanjutkan dengan menelusuri
Data 2 Data 1
Data 3 Data 4
Data 5
front rear
dequeue enqueue
18
simpul-simpul yang bertetangga satu level dengan simpul akar tersebut. Setelah itu, kemudian akan menelusuri simpul pada level
berikutnya, begitu seterusnya. Jadi dengan kata lain algoritma BFS menelusuri simpul-simpul berdasarkan urutan level. Simpul pada
level lebih tinggi akan lebih dahulu ditelusuri daripada simpul yang berda pada level dibawahnya. Berikut ini gambaran umum dari
urutan simpul-simpul yang ditelusuri algoritma BFS.
Gambar 2.8 Urutan Penelusuran Algoritma BFS Cara kerja algoritma BFS menggunakan prinsip antrian
queue yaitu first in first out FIFO. Algoritma ini memasukan setiap simpul yang ditemukannya ke dalam queue. Selain itu pada
algoritma BFS terdapat dua status yang diberikan kepada setiap simpul yaitu status dikunjungi dan status ditemukan.
Suatu simpul berada pada status ditemukan jika simpul tersebut berada pada antrian, sedangkan simpul yang telah keluar
dari antrian berstatus dikunjungi. Adapun simpul yang belum pernah masuk antrian berarti berstatus belum dikunjungi dan belum
ditemukan. Berikut ini gambaran cara kerja algoritma BFS.
19 s
a b
c
d e
queue b
c a
d s
a b
c
d e
queue a
b s
c s
a b
c
d e
queue s
20
Gambar 2.9 Cara kerja algoritma BFS
Kompleksitas waktu dari algoritma dapat dinyatakan dengan notasi big O. Adapun kompleksitas dari algoritma BFS
adalah O jumlah simpul + jumlah sisi. Hal ini menunjukan bahwa kompleksitas waktu dari algoritma BFS sangat besar terutama jika
digunakan untuk menyelesaikan masalah yang besar, akan tetapi algoritma BFS dipastikan mendapatkan solusi terbaik. Dengan
demikian algoritma BFS harus digunakan pada pemecahan masalah atau kasus yang tepat. Beberapa kasus yang menggunakan
algoritma BFS diantaranya seperti aplikasi pencarian rute terpendek,
persoalan maximum
flow, permainan
game minesweeper dan lain-lain.
2.4.2. Depth First Search DFS