• Posted by : Admin Sabtu, 21 Oktober 2017

    PENGERTIAN BFS (BREADTH FIRST SEARCH )

    Breadth-first search adalah algoritma yang melakukan pencarian secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan simpulsimpul yang tadi dikunjungi , demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi lebih dahulu sebelum simpul-simpul pad aras d+1.
    Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang telah dikunjungi. Simpulsimpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul yang bertetanggaan dengannya. Tiap simpul yang telah dikunjungu masuk ke dalam antrian hanya satu kali. Algoritma ini juga membutuhkan table Boolean untuk menyimpan simpul yang te lah dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.

    CARA KERJA ALGORITMA BFS

    Dalam algoritma BFS, simpul anak yang telah dikunjungi disimpan dalam suatu antrian. Antrian ini digunakan untuk mengacu simpul-simpul yang bertetangga dengannya yang akan dikunjungi kemudian sesuai urutan pengantrian.
    Untuk memperjelas cara kerja algoritma BFS beserta antrian yang digunakannya, berikut langkah-langkah algoritma BFS:

    • Masukkan simpul ujung (akar) ke dalam antrian.
    • Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.
    • Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan..
    • Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian.
    • Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan.
    • Ulangi pencarian dari langkah kedua.
    Contoh Metode Pencarian BFS (BREADTH FIRST SEARCH )

    Maka penyelesaiannya adalah:

    Gambar (a) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1.
    Gambar (b) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1
    Gambar (c) BFS(1): 1, 2, 3, 4, 5, 6, 7, 8, 9


    PENGERTIAN DEPTH FIRST SEARCH

    DFS (Depth-First-Search) adalah salah satu algoritma penelusuran struktur graf / pohon berdasarkan kedalaman. Simpul ditelusuri dari root kemudian ke salah satu simpul anaknya ( misalnya prioritas penelusuran berdasarkan anak pertama [simpul sebelah kiri] ), maka penelusuran dilakukan terus melalui simpul anak pertama dari simpul anak pertama level sebelumnya hingga mencapai level terdalam.

    Setelah sampai di level terdalam, penelusuran akan kembali ke 1 level sebelumnya untuk menelusuri simpul anak kedua pada pohon biner [simpul sebelah kanan] lalu kembali ke langkah sebelumnya dengan menelusuri simpul anak pertama lagi sampai level terdalam dan seterusnya.

    Contoh pohon biner Depth First Search :

    Maka, urutan penelusurannya adalah : A – B – D – H – E – I – C – F – G – J – K – L

    Dalam implementasinya DFS dapat diselesaikan dengan cara rekursif atau dengan bantuan struktur data stack. Kita akan membahas dengan cara yang menggunakan stack. Stack yang digunakan adalah stack yang isi elemennya adalah simpul pohon / tree. Bagaimana cara kerjanya ? Berikut ini adalah urutan algoritmanya :

    • Masukkan simpul root ke dalam tumpukan dengan push.
    • Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan teratas.
    • Hapus isi stack teratas dengan prosedur pop.
    • Periksa apakah simpul pohon yang disimpan tadi memiliki anak simpul.
    • Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack.
    • Jika tumpukan kosong berhenti, tapi jika tidak kembali ke langkah dua.
    Jadi, untuk gambar pohon biner di atas urutan langkah dan kondisi stack-nya setiap iterasi adalah :




    Contoh diatas menggunakan prioritas untuk memasukkan anak simpul dari sebelah kanan terlebih dahulu ke dalam stack. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak simpulnya yaitu C dulu, baru B ke dalam stack. Selain itu bisa dilihat stack teratas (yang diwarna biru) pada tiap iterasi memiliki urutan A – B – D – H – E – I – C – F – G – J – K – L. Oiya, pada iterasi ke 13 itu kondisi stack sudah kosong karena ketika simpul J dibangkitkan tidak ada anak simpul yang dimasukkan ke stack.


    Sumber : https://onbuble.wordpress.com/2011/05/26/6/

                    https://saungkode.wordpress.com/2014/04/16/penelusuran-pohon-biner-berdasarkan-kedalaman-dengan-algoritma-dfs-stack-dan-secara-melebar-level-order-dengan-algoritma-bfs-queue-dan-implementasinya-dalam-bahasa-c/






    { 18 komentar... read them below or Comment }

    1. Metode ini BFS ini rumus nya gak seperti rumus rumus metode lain ya,contoh nya logika penerepan?

      BalasHapus
    2. Wew mantap gan baru tahu ada algoritma bfs dfs dalam pencarian, biasanya tahunya queue. Ikutan juga gan Alfian Guide , Ulumul Islamiyah

      BalasHapus
    3. wibuuuuuu bau bawang tapi saya suka ty materinya

      BalasHapus
    4. waw keren sekali aku jadi paham dan wawasan ku jadi luas
      terimakasih

      BalasHapus
    5. terima kasih, izin menggunakan post tersebut

      BalasHapus
    6. ini yang comment bocah gundar ya

      BalasHapus
    7. AAKKK KYUT BANGET SAMPULNYA PAKE ANIME K ON :))))))

      BalasHapus
    8. What is Breadth-first search, and how does it perform a breadth-first traversal by visiting nodes in a preorder manner, starting with a node and then visiting all its neighboring nodes first?
      Telkom University

      BalasHapus

  • - Copyright © Welcome To My BLOG - Powered by Blogger - Designed by Johanes Djogan -