TIPS: Rangkuman ini hanya sebagai pemahaman secara umum. Pastikan Anda juga membaca BMP (Buku Materi Pokok) versi cetak atau digital di Ruang Baca Virtual (RBV) untuk pemahaman lebih mendalam.
DILARANG: Memperjualbelikan seluruh konten atau latihan soal yang terdapat di portal ini. Pelanggaran akan dikenakan sanksi sesuai ketentuan yang berlaku.
1. Konsep Searching
2. Algoritma Searching
1. Konsep DFS
2. Tiga Rule Algoritma DFS
3. Contoh Tahapan DFS pada Graph 9 Vertex (A–I)
1. Konsep BFS
2. Tiga Aturan Algoritma BFS
3. Contoh Tahapan BFS pada Tree 9 Vertex (A–I)
1. Struktur Coding DFS
Graph, dengan method: main, Graph, addEdge, DFSUtil, DFS.java.io.* dan java.util.*.2. Komponen Utama Coding
V (jumlah vertex, private), adj[] (LinkedList adjacency, private).visited[], panggil DFSUtil.3. Contoh Coding DFS
import java.io.*;
import java.util.*;
class Graph {
private int V;
private LinkedList<Integer> adj[];
Graph(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; ++i)
adj[i] = new LinkedList();
}
void addEdge(int v, int w) {
adj[v].add(w);
}
void DFSUtil(int v, boolean visited[]) {
visited[v] = true;
System.out.print(v + " ");
Iterator<Integer> i = adj[v].listIterator();
while (i.hasNext()) {
int n = i.next();
if (!visited[n])
DFSUtil(n, visited);
}
}
void DFS(int v) {
boolean visited[] = new boolean[V];
DFSUtil(v, visited);
}
public static void main(String args[]) {
Graph g = new Graph(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
System.out.println("DFS dengan vertex awal 2");
g.DFS(2);
}
}
4. Penjelasan Kunci
visited[v] = true → tandai vertex v telah dikunjungi.adj[v].listIterator() → daftar vertex adjacent dengan v.1. Graph Awal
2. Traversal DFS dari Vertex 2
1. Struktur Coding BFS
Graph, dengan method: main, Graph, addEdge, BFS.2. Komponen Utama Coding BFS
visited[] dan queue (LinkedList).
queue.poll()), cetak.3. Contoh Coding BFS
import java.io.*;
import java.util.*;
class Graph {
private int V;
private LinkedList<Integer> adj[];
Graph(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; ++i)
adj[i] = new LinkedList();
}
void addEdge(int v, int w) {
adj[v].add(w);
}
void BFS(int s) {
boolean visited[] = new boolean[V];
LinkedList<Integer> queue = new LinkedList<Integer>();
visited[s] = true;
queue.add(s);
while (queue.size() != 0) {
s = queue.poll();
System.out.print(s + " ");
Iterator<Integer> i = adj[s].listIterator();
while (i.hasNext()) {
int n = i.next();
if (!visited[n]) {
visited[n] = true;
queue.add(n);
}
}
}
}
public static void main(String args[]) {
Graph g = new Graph(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
System.out.println("BFS dengan vertex awal 2");
g.BFS(2);
}
}
4. Penjelasan Kunci BFS
queue.poll() → mengambil dan menghapus elemen terdepan (head) dari queue.queue.add(n) → menambahkan vertex n ke belakang antrean.queue.size() != 0.1. Graph Awal
2. Traversal BFS dari Vertex 2
3. Perbedaan DFS vs BFS