Breadth First Search BFS

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