B. DASAR TEORI AlGORITMA TRAVERSAL GRAPH Terdapat beberapa perbedaan Tree dan Graph dijelaskan pada tabel Tabel 31.1 Perbedaan Tree dan Graph

dokumen-dokumen yang mirip
Politeknik Elektronika Negeri Surabaya

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

ALGORITMA PENCARIAN (1)

Politeknik Elektronika Negeri Surabaya

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

Politeknik Elektronika Negeri Surabaya

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Praktikum Blind Search (BFS dan DFS)

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Mata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

CRITICAL PATH. Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5. Graph G. Alternatif

Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian.

Penerapan BFS dan DFS dalam Garbage Collection

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

MASALAH, RUANG KEADAAN & PENCARIAN

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

METODE PENCARIAN DAN PELACAKAN

Tree (Struktur Data) Nisa ul Hafidhoh, MT

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

Pohon dan Pohon Biner

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

Tujuan Instruksional

BAB III ALGORITMA BRANCH AND BOUND. Algoritma Branch and Bound merupakan metode pencarian di dalam ruang

GAME EDUKASI MENGENAL DAN MEMBACA BAHASA ARAB

Implementasi Permainan Reversi menggunakan Penelusuran BFS dengan Konsep Algoritma MinMax

Penerapan BFS dan DFS pada Pencarian Solusi

Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan. B.1 Pohon Biner (Binary Tree)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

PENERAPANAN ALGORITMA BFS, DFS, DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH ROMANIA

SEARCHING. Blind Search & Heuristic Search

Masalah, Ruang Keadaan dan Pencarian 4/7/2016. fakultas ilmu komputer program studi informatika

Aplikasi Algoritma DFS untuk Deteksi Celah Jaringan Komputer

Penerapan Search Tree pada Penyelesaian Masalah Penentuan Jalur Kota Terpendek.

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING)

BAB 2 TINJAUAN PUSTAKA

Penerapan BFS dan DFS pada Pencarian Solusi

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KATA PENGANTAR. Maha Esa, yang telah berkenan memelihara dan membimbing penulis, sehingga

Implementasi DFS dan BFS Dalam Recognizer Pushdown Automata

BAB III ANALISIS DAN PERANCANGAN SISTEM

Kode MK/ Pemrograman Terstruktur 2

HEURISTIC SEARCH UTHIE

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

Penggunaan BFS dan DFS untuk Pixel Traversing

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

Penerapan Graf dalam validasi path di Permainan Saboteureun menggunakan DFS

Gambar 1. Single Linked List

Jurnal TIMES, Vol. IV No 1 : 1-5, 2015 ISSN : Maze Generator Dengan Menggunakan Algoritma Depth-First-Search

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Struktur Data & Algoritma

Gambar 1. Single Linked List

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 08

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Prolem Solving Based on AI

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

BAB I PENDAHULUAN. himpunan bagian bilangan cacah yang disebut label. Pertama kali diperkenalkan

PENYELESAIAN MASALAH MISSIONARIES DAN CANNIBAL MENGGUNAKAN ALGORITMA DFS DENGAN VARIASI PENGHINDARAN REPEATED STATE

BFS dan DFS. Bahan Kuliah IF2151 Strategi Algoritmik. Oleh: Rinaldi Munir

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Pembentukan pohon pencarian solusi dan perbandingan masingmasing algoritma pembentuknya dalam simulasi N-Puzzle

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

Perbandingan BFS dan DFS pada Pembuatan Solusi Penyelesaian Permainan Logika

Gambar 1. Single Linked List

BAB III METODE PELACAKAN/PENCARIAN

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

Artificial Intelegence/ P_2. Eka Yuniar

Pertemuan 15 REVIEW & QUIS

Penggunaan Metode Depth First Search (DFS) dan Breadth First Search (BFS) pada Strategi Game Kamen Rider Decade Versi 0.3

PENERAPAN ALGORITMA BFS PADA CHINESE SLIDE BLOCK PUZZLE (KLOTSKI)

Politeknik Elektronika Negeri Surabaya

METODE PENCARIAN BFS dan DFS

Penggunaan Algoritma Pathfinding pada Game

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

Algoritma Traversal di dalam Graf

Pemanfaatan Directed Acyclic Graph untuk Merepresentasikan Hubungan Antar Data dalam Basis Data

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

BAB I PENDAHULUAN 1.1 Latar Belakang

Gambar 1. Ilustrasi Stack

Denny Setyo R. Masden18.wordpress.com

ADT Graph. Disusun untuk Memenuhi Laporan Praktikum Algoritma dan Struktur Data. Oleh: NIM : Asisten:

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Algoritma dan Struktur Data 2

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

Masalah, Ruang Masalah dan Pencarian

Transkripsi:

A. TUJUAN PEMBELAJARAN PRAKTIKUM 31 GRAPH ALGORITMA TRAVERSAL GRAPH 1. Memahami konsep dari Algoritma Traversal Graph yaitu algoritma Breadth First Search (BFS) dan Depth First Search (DFS). 2. Memahami cara mengimplementasikan algoritma traversal Graph yaitu BFS dan DFS ke dalam bahasa pemrograman Java. B. DASAR TEORI AlGORITMA TRAVERSAL GRAPH Terdapat beberapa perbedaan Tree dan Graph dijelaskan pada tabel 31.1. Tabel 31.1 Perbedaan Tree dan Graph Tree Graph Mempunyai root Terdapat path unik dari root menuju ke vertex tertentu Tidak mempunyai root, proses traversal dapat dilakukan pada sembarang vertex. Graph memungkinkan memiliki cycle yang menghasilkan multiple visit ke sebuah vertex Terdapat dua metode Algoritma Traversal Graph yaitu : 1. Pencarian Melebar Pertama (Breadth-First Search) Pada metode Breadth-First Search, semua vertex pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi vertex-vertex pada level n+1. Pencarian dimulai dari vertex awal terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya demikian pula dari kiri ke kanan sampai ditemukannya solusi. o Algoritma BFS 1. Tandai semua Vertex yang terdapat pada Graph dengan warna WHITE 241

2. Tentukan Vertex Awal. 3. Buat sebuah Queue, masukkan vertex awal ke Queue, tandai dengan warna GRAY 4. Ambil vertex dari Queue (sebut Vertex P), tandai dengan BLACK, langsung tulis 5. jika Vertex P GOAL, diganti dengan NEIGHBORS/tetangganya (pilih Vertex yang masih berwarna WHITE), masukkan dalam QUEUE, tandai Vertex-vertex tersebut dengan warna GRAY. Lakukan pengulangan langkah 5. 6. Bila vertex P = GOAL, selesai Sebagai contoh, kita lakukan algoritma traversal pada graph pada gambar 1. Gambar 31.1. Contoh Graph Langkah-langkah algoritma traversal Graph menggunakan BFS. Terdapat dua QUEUE yaitu visitqueue untuk menyimpan Vertex-Vertex yang sedang dikunjungi dan visitlist untuk Vertex-Vertex yang sudah dikunjungi. Warnai semua Vertex dengan WHITE dan masukan Vertex Awal yaitu A ke visitqueue, warna Vertex A dengan GRAY visitlist visitqueue A Gambar 31.2 Langkah 1 Algoritma Traversal Graph : BFS 242

Ambil A dari visitqueue, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex A yang masih berwarna WHITE yaitu B, C dan G, masukkan dalam visitqueue. Warnai Vertex B,C,G dengan GRAY. visitlist A visitqueue B C G Gambar 31.3 Langkah 2 Algoritma Traversal Graph : BFS Ambil B dari visitqueue, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex B yang masih berwarna WHITE yaitu D, masukkan dalam visitqueue. Warnai Vertex D dengan GRAY. visitlist A B visitqueue C G D Gambar 31.4 Langkah 3 Algoritma Traversal Graph : BFS Ambil C dari visitqueue, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex C yang masih berwarna WHITE. Tetangga dari Vertex C adalah G tapi berwarna GRAY, sehingga tidak ada Vertex yang dapat dimasukkan dalam visitqueue. visitlist A B C visitqueue G D Gambar 31.5 Langkah 4 Algoritma Traversal Graph : BFS Ambil G dari visitqueue, warnai dengan BLACK dan masukkan dalam visitlist. Vertex G tidak memiliki tetangga sehingga tidak ada Vertex yang dapat dimasukkan dalam visitqueue. 243

visitlist A B C G visitqueue D Gambar 31.6 Langkah 5 Algoritma Traversal Graph : BFS Ambil D dari visitqueue, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex D yang masih berwarna WHITE yaitu E dan F, masukkan dalam visitqueue. Warnai Vertex E dan F dengan GRAY. visitlist A B C G D visitqueue E F Gambar 31.7 Langkah 6 Algoritma Traversal Graph : BFS Ambil E dari visitqueue, warnai dengan BLACK dan masukkan dalam visitlist. Vertex E tidak memiliki tetangga sehingga tidak ada Vertex yang dapat dimasukkan dalam visitqueue. visitlist A B C G D E visitqueue F Gambar 31.8 Langkah 7 Algoritma Traversal Graph : BFS Ambil F dari visitqueue, warnai dengan BLACK dan masukkan dalam visitlist. Vertex F tidak memiliki tetangga sehingga tidak ada Vertex yang dapat dimasukkan dalam visitqueue. visitlist A B C G D E F visitqueue Gambar 31.9 Langkah 8 Algoritma Traversal Graph : BFS 244

Karena Queue kosong maka proses traversal selesai 2. Pencarian Mendalam Pertama (Depth-First Search) Pada Depth First Search, proses pencarian akan dilaksanakan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukaannya solusi. Algoritma DFS 1. Tandai semua Vertex yang terdapat pada Graph dengan warna WHITE 2. Tentukan Vertex Awal. 3. Buat sebuah Stack, masukkan vertex awal ke Stack, tandai dengan warna GRAY 4. Ambil vertex dari Stack (sebut Vertex P), tandai dengan BLACK, langsung tulis 5. jika Vertex P GOAL, diganti dengan NEIGHBORS/tetangganya (pilih Vertex yang masih berwarna WHITE), masukkan dalam Stack, tandai Vertex-vertex tersebut dengan warna GRAY. Lakukan pengulangan langkah 5. 6. Bila vertex P = GOAL, selesai Sebagai contoh, kita lakukan algoritma traversal pada graph pada gambar 31.1. Langkah-langkah algoritma traversal Graph menggunakan DFS. Terdapat Stack yaitu visitstack untuk menyimpan Vertex-Vertex yang sedang dikunjungi dan Queue untuk visitlist untuk Vertex-Vertex yang sudah dikunjungi. Warnai semua Vertex dengan WHITE dan masukan Vertex Awal yaitu A ke visitstack, ubah warna Vertex A menjadi GRAY visitlist visitstack A Gambar 31.10 Langkah 1 Algoritma Traversal Graph : DFS 245

Ambil A dari visitstack, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex A yang masih berwarna WHITE yaitu B, C dan G, masukkan dalam visitstack. Warnai Vertex B,C,G dengan GRAY. visitlist A visitstack G C B Gambar 31.11 Langkah 2 Algoritma Traversal Graph : DFS Ambil B dari visitstack, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex B yang masih berwarna WHITE yaitu D, masukkan dalam visitstack. Warnai Vertex D dengan GRAY. visitlist A B visitstack G C D Gambar 31.12 Langkah 3 Algoritma Traversal Graph : DFS Ambil D dari visitstack, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex D yang masih berwarna WHITE yaitu E dan F. visitlist A B D visitstack G C F E Gambar 31.13 Langkah 4 Algoritma Traversal Graph : DFS Ambil E dari visitstack, warnai dengan BLACK dan masukkan dalam visitlist. Vertex E tidak memiliki tetangga sehingga tidak ada Vertex yang dapat dimasukkan dalam visitstack. 246

visitlist A B D E visitstack G C F Gambar 31.14 Langkah 5 Algoritma Traversal Graph : DFS Ambil F dari visitstack, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex F yang masih berwarna WHITE. Karena tetangga dari E dan G tidak berwarna WHITE maka tidak ada yang dimasukkan ke visitstack. visitlist A B D E F visitstack G C Gambar 31.15 Langkah 6 Algoritma Traversal Graph : DFS Ambil C dari visitstack, warnai dengan BLACK dan masukkan dalam visitlist. Cari tetangga dari Vertex C yang masih berwarna WHITE. Karena tetangga dari C adalah G tidak berwarna WHITE maka tidak ada yang dimasukkan ke visitstack. visitlist A B D E F C visitstack G Gambar 31.16 Langkah 7 Algoritma Traversal Graph : DFS Ambil G dari visitstack, warnai dengan BLACK dan masukkan dalam visitlist. Vertex G tidak memiliki tetangga sehingga tidak ada Vertex yang dapat dimasukkan dalam visitstack. 247

visitlist A B D E F C G visitstack Gambar 31.17 Langkah 8 Algoritma Traversal Graph : DFS Karena Stack kosong maka proses traversal selesai C. TUGAS PENDAHULUAN Buatlah review mengenai : Konsep dari Algoritma BFS dan DFS Berikan 1 contoh Graph selesaikan dengan algoritma traversal BFS dan DFS. D. PERCOBAAN Pada praktikum algoritma traversal Graph menggunakan algoritma BFS dan DFS ini tambahkan pada class DiGraph. Tabel 31.1 Method-method yang ditambahkan pada class DiGraph untuk mengimplementasikan algoritma BFS dan DFS Method public void colorwhite() public VertexColor getcolor(t v) public VertexColor setcolor(t v, VertexColor c) public static <T> LinkedList<T> bfs( DiGraph<T> g, T svertex) public static <T> LinkedList<T> bfs( DiGraph<T> g, T svertex) Kegunaan Memberikan warna pada setiap Vertex dengan warna WHITE Mengembalikan warna dari Vertex Memberikan warna dari Vertex v dan mengembalikan warna sebelumnya dari Vertex tersebut. Algoritma BFS, mengembalikan list vertex yang dikunjungi dengan algoritma BFS Algoritma DFS, mengembalikan list vertex yang dikunjungi dengan algoritma DFS 248

Percobaan 1 : Method colorwhite() untuk memberikan warna pada setiap Vertex dengan warna WHITE public void colorwhite() { Iterator it = vinfo.iterator(); while (it.hasnext()) { VertexInfo<T> v = (VertexInfo<T>) it.next(); v.color = VertexColor.WHITE; } } Percobaan 2 : Method getcolor() untuk mengembalikan warna dari Vertex public VertexColor getcolor(t v) { int index = getvinfoindex(v); return vinfo.get(index).color; } Percobaan 3 : Method setcolor() untuk memberikan warna dari Vertex v dan mengembalikan warna sebelumnya dari Vertex tersebut. public VertexColor setcolor(t v, VertexColor c) { int index = getvinfoindex(v); VertexColor temp = vinfo.get(index).color; vinfo.get(index).color = c; return temp; } E. LATIHAN 1. Implementasikan algoritma traversal Graph yaitu BFS. public static <T> LinkedList<T> bfs( DiGraph<T> g, T svertex) 2. Implementasikan algoritma traversal Graph yaitu DFS. public static <T> LinkedList<T> dfs( DiGraph<T> g, T svertex) F. LAPORAN RESMI Kerjakan hasil percobaan(d) dan latihan(e) di atas dan tambahkan analisa. 249