MODUL V
GRAPH
5.1 TUJUAN
Tujuan dari praktikum ini adalah:
1. Mahasiswa mampu memahami konsep graph dalam program.
2. Mahasiswa dapat mengimplementasikan metode graph dalam bahasa Java.
3. Adjacent
Dua buah simpul disebut adjacent bila ada busur yang menghubungkan kedua
simpul tersebut.
4. Incident
Jika e merupakan busur dengan simpul-simpulnya adalah v dan w yang ditulis e
= (v,w), maka v dan w disebut “terletak” pada e dan e disebut incident dengan v dan w.
5. Degree
Degree adalah jumlah busur yang incident dengan simpul
6. Path
Path adalah serangkaian simpul-simpul yang berbeda, yang adjacent secara
berturut-turut dari simpul satu ke simpul berikutnya
5.2.2 Jenis - Jenis Graph
Berikut ini jenis – jenis graph [2]:
1. Graph tak berarah (undirected graph atau non-directed graph)
Dikatakan graph tak berarah dimana urutan simpul dalam sebuah busur tidak
dipentingkan.
5.3 PERMASALAHAN
1. Implementasikan penggunaan graph pada perjalanan dari rumah ke Universitas
Mataram, kemudian buatlah program graph yang menghitung jumlah jarak yang
dilalui untuk sampai ke Universitas Mataram.
kata = a;
}
}
public class Graph{
Node start, temp;
public void addvertex(String nana){
Node baru = new Node(nana);
if(start==null){
start = baru;
}else{
temp = start;
while(temp.prev!=null){
temp = temp.prev;
}
temp.prev = baru;
}
}
public void addedge(String awal, String akhir, int jarak){
Node isi = new Node(jarak);
Node temp1=cari(awal);
while(temp1.next!=null){
temp1=temp1.next;
}
temp1.next = isi;
isi.prev = cari(akhir);
}
public Node cari(String nama){
Node balik;
if(start.kata==nama){
balik = start;
}else{
temp = start;
while(temp.prev.kata!=nama){
temp = temp.prev;
}
balik = temp.prev;
}
return balik;
}
public void tampil(){
Node muncul = start;
while(muncul.prev!=null){
Node muncul1=muncul;
while(muncul1.next!=null){
muncul1 = muncul1.next;
System.out.print(muncul.kata+" ->
"+muncul1.prev.kata+" : "+muncul1.data);
System.out.println();
}muncul = muncul.prev;
}
}
public static void main(String[] args){
Graph q = new Graph();
q.addvertex("Sayang-Sayang");
q.addvertex("Rembiga");
q.addvertex("Monjok");
q.addvertex("Udayana");
q.addvertex("Catur Warga");
q.addvertex("Gomong");
q.addvertex("Unram");
q.addedge("Sayang-Sayang","Rembiga", 2 );
q.addedge("Sayang-Sayang","Monjok", 2);
q.addedge("Rembiga","Udayana", 1);
q.addedge("Monjok","Catur Warga", 3);
q.addedge("Udayana","Catur Warga", 1);
q.addedge("Catur Warga","Gomong", 1);
q.addedge("Gomong","Unram", 1);
q.tampil();
}
}
3. Output
Node muncul1=muncul;
while(muncul1.next!=null){
muncul1 = muncul1.next;
System.out.print(muncul.kata+" ->
"+muncul1.prev.kata+" : "+muncul1.data);
System.out.println();
}muncul = muncul.prev;
}
}
Script “public void tampil(){” di atas merupakan sebuah method yang
digunakan untuk menampilkan data yang sudah di masukkan di mana di dalamnya di
deklarsikan variabel muncul yang memiliki nilai “start”. Kemudian di lakukan
perulangan untuk menampilkan data secara berulang.
public static void main(String[] args){
Graph q = new Graph();
Script “public static void main(String[] args){” merupakan main yang
merupakan tempat eksekusi awal dari program. Script “Graph q = new Graph();”
merupakan perintah untuk membuat objek dengan nama “q” dari class “Graph”.
q.addvertex("Sayang-Sayang");
q.addvertex("Rembiga");
q.addvertex("Monjok");
q.addvertex("Udayana");
q.addvertex("Catur Warga");
q.addvertex("Gomong");
q.addvertex("Unram");
Script “q.addvertex” merupakan perintah untuk memasukkan nilai pada vertex
dengan memanggil method “addvertex” dengan contoh parameter seperti “"Sayang-
Sayang"”.
q.addedge("Sayang-Sayang","Rembiga", 2 );
q.addedge("Sayang-Sayang","Monjok", 2);
q.addedge("Rembiga","Udayana", 1);
q.addedge("Monjok","Catur Warga", 3);
q.addedge("Udayana","Catur Warga", 1);
q.addedge("Catur Warga","Gomong", 1);
q.addedge("Gomong","Unram", 1);
Script “q.addedge” merupakan perintah untuk memasukkan nilai pada edge
dengan memanggil method “addedge” dengan contoh parameter seperti “"Sayang-
Sayang","Rembiga", 2”.
q.tampil();}}
Script “q.tampil();” digunakan untuk menampilkan data.
5.6 KESIMPULAN
Berdasarkan praktikum modul 5 yang telah dilakukan, dapat disimpulkan bahwa:
1. Konsep graph dapat diimplementasikan pada kehidupan sehari-hari, graph ini
merupakan pendekatan untuk mencari jarak terdekat untuk sampai ke tujuan,
dimana setiap node atau titik dihubungkan dengan titik lainnya melalui sebuah jalur
atau bisa juga disebut edge dan kemudian akan dilakukan pencarian untuk
menentukan jarak terpanjang dan terpendek dari hubungan tersebut.
2. Graph dapat direpresentasikan dan diimplementasikan ke dalam program dalam
bentuk array dua dimensi (matriks) maupun ke dalam bentuk linked list. Dan pada
praktikum kali ini yaitu pengimplementasian graph dalam menentukan jumlah
jarak yang dilalui dari rumah ke Universitas Mataram dibuat dengan menggunakan
linked list yakni dengan double linked list.
DAFTAR PUSTAKA