• Tidak ada hasil yang ditemukan

Think Different Materi ASD 2014 pertemuan_21

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Materi ASD 2014 pertemuan_21"

Copied!
24
0
0

Teks penuh

(1)
(2)
(3)

Metode Penelusuran

Graph Traversal : Mengunjungi tiap

simpul/node secara sistematik.

Metode :

DFS (Depth First Search) : Pencarian

Mendalam

BFS (Breadth First Search) : Pencarian

(4)

Algoritma BFS

BFS diawali dengan vertex yang

diberikan, yang mana di level 0. Dalam

stage pertama, kita kunjungi semua

vertex di level 1. Stage kedua, kita

kunjungi semua vertex di level 2. Disini

vertex baru, yang mana adjacent ke

vertex level 1, dan seterusnya.

(5)

Breadth First Search (BFS)

(6)

Breadth First Search (BFS)

….

(7)

Algoritma BFS

Traversal dimulai dari simpul v.

Algoritma:

1. Kunjungi simpul

v,

2. Kunjungi semua simpul yang bertetangga

dengan simpul

v

terlebih dahulu

.

(8)

Depth First Search (DFS)

Pada setiap pencabangan, penelusuran

verteks-verteks yang belum dikunjungi

dilakukan secara lengkap pada

pencabangan pertama, kemudian

(9)

Depth First Search (DFS)

(10)

Depth First Search (DFS)

….

(11)

Algoritma DFS

Traversal dimulai dari simpul

v.

Algoritma:

1. Kunjungi simpul

v,

2. Kunjungi simpul

w

yang bertetangga dengan

simpul

v.

3. Ulangi

DFS mulai dari simpul w.

4. Ketika mencapai simpul

u sedemikian sehingga

semua simpul yang bertetangga dengannya

telah dikunjungi, pencarian dirunut-balik

(

backtrack)

ke simpul terakhir yang dikunjungi

sebelumnya dan mempunyai simpul

w yang

belum

dikunjungi.

(12)

Latihan

Telusuri graph disamping dengan

mengunakan BFS dan DFS. Secara

berturut-urut root dimulai dari 1,2,3

dan 4.

(13)

Latihan

2. Telusuri dengan BFS dan DFS!

root : node 1

2

3

8 1

4

5

9

6

(14)

Latihan

3. Telusuri dengan BFS dan DFS!

root : node 1

(15)
(16)

Operasi-operasi

Menggunakan adjacency matriks,

operasi-operasinya sebagai berikut :

1. Deklarasi

2. Inisialisasi

3. Penambahan node

4. Penambahan edge

5. Menandai Node

6. Traversal

(17)

Contoh Program

Deklarasi

public class AdjacencyMatriksGraph {

private final int MAX_VERTS = 20;

private Vertex vertexList[];

private int adjMat[][];

private int nVerts;

(18)

Contoh Program

Inisialisasi

public AdjacencyMatriksGraph() // constructor {

vertexList = new Vertex[MAX_VERTS]; // adjacency matrix

adjMat = new int[MAX_VERTS][MAX_VERTS]; nVerts = 0;

for(int j=0; j<MAX_VERTS; j++) // set adjacency for(int k=0; k<MAX_VERTS; k++) // matrix to 0 adjMat[j][k] = 0;

(19)

Contoh Program

Tambah Node

public void addVertex(char lab)

{

(20)

Contoh Program

Tambah Edge

public void addEdge(int start, int end)

{

(21)

Contoh Program

Menandai Node

public int getAdjUnvisitedVertex(int v) {

for(int j=0; j<nVerts; j++)

if(adjMat[v][j]==1 && vertexList[j].wasVisited==false) return j;

(22)

DFS

public void dfs() // depth-first search { // begin at vertex 0

vertexList[0].wasVisited = true; // mark it displayVertex(0); // display it

theStack.push(0); // push it

while( !theStack.isEmpty() ) // until stack empty, {

int v = getAdjUnvisitedVertex( theStack.peek() ); if(v == -1) // if no such vertex,

theStack.pop();

else // if it exists, {

vertexList[v].wasVisited = true; displayVertex(v); // display it theStack.push(v); // push it }

} // end while

for(int j=0; j<nVerts; j++) // reset flags vertexList[j].wasVisited = false;

(23)

BFS

public void bfs() // breadth-first search { // begin at vertex 0

vertexList[0].wasVisited = true; // mark it displayVertex(0); // display it

theQueue.insert(0); // insert at tail int v2;

while( !theQueue.isEmpty() ) {

int v1 = theQueue.remove();

// until it has no unvisited neighbors

while( (v2=getAdjUnvisitedVertex(v1)) != -1 ) { // get one,

vertexList[v2].wasVisited = true; // mark it displayVertex(v2); // display it

theQueue.insert(v2); // insert it } // end while

} // end while(queue not empty) // queue is empty, so we're done

for(int j=0; j<nVerts; j++) // reset flags vertexList[j].wasVisited = false;

(24)

Contoh Program

Display Node

public void displayVertex(int v)

{

Referensi

Dokumen terkait

Hasil uji skor kesukaan menunjukkan beras B dan F merupakan sampel yang paling sering memiliki skor kesukaan tertinggi pada parameter spesifik yang diujikan

Keluhan Minor Askep/Manage r sector melakukan klarifikasi dan verifikasi terhadap bukti- bukti keluhan bersama pihak yang menyampaika n keluhan Askep/Manag er sector

positi untuk (at bermuatan negati !anoda#. 3lektrolit dalam jam lemon bertenaga adalah asam sitrat. erakan elektron dimulai ketika lapisan seng pada salah satu paku

Karakter meristik yang diamati meliputi struktur sisik, jumlah rigi pada bagian belakang duri terakhir sirip dorsal, jumlah jari - jari pada sirip punggung (dorsal),

Unified Modeling Language (UML) merupakan bahasa pemodelan dimana unsur-unsur atau aturan-aturan yang dimilikinya berfokus pada presentasi konseptual dan fisikal

Menjadi seorang pemimpin bukan berarti menjadi penguasa yang bebas melakukan apapun sesuai dengan keinginannya, pemimpin mempunyai tanggungjawab untuk memenuhi

secara parsial tidak berpengaruh dan tidak signifikan terhadap Nilai Perusahaan pada perusahaan sektor Barang Konsumsi yang terdaftar di Bursa Efek Indonesia

Antarmuka yang kebanyakan berhubungan dengan jaringan dan aspek switching, misalnya dengan fungsi yang dilakukan oleh MSC, HLR dan VLR, dengan manajemen link