LAPORAN PRAKTIKUM
ALGORITMA DAN STRUKTUR DATA II
MODUL
GRAPH
Disusun Oleh : Syukur Jaya Mendrofa
201501072 Kelas: C
Dosen Pengampu : Oskar Ika Adi Nugroho, ST., MT
JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER “YOS SUDARSO”
PURWOKERTO
BAB I
DASAR TEORI
Graf (graph) adalah sebuah konsep struktur data yang terdiri dari kumpulan simpul (node) dan garis (edge). Sebuah garis harus diawali dan diakhiri dengan sebuah simpul.
Suatu Graph mengandung 2 himpunan,yaitu:
1. Himpunan V yang elemennya disebut simpul (Vertex atau Point atau Node atau Titik).
2. Himpunan E yang merupakan pasangan tak urut dari simpul. Anggotanya disebut Ruas (Edge atau rusuk atau sisi).
Contoh :
Graph berikut menyatakan Graph G (E,V) dengan :
1. V mengandung 4 simpul, yaitu A, B, C, D. 2. E mengandung 5 ruas, yaitu :
1. e1 = (A, B) 2. e2 = (B, C) 3. e3 = (A, D) 4. e4 = (D, C) 5. e5 = (B, D)
Jenis-jenis Graph :
Graph berarah tidak berbobot.
Graph berarah berbobot.
Graph tidak berarah tidak berbobot.
BAB II
Vertex* getOrigin() {return origin;}
Vertex* getDestination() {return destination;} int getDistance() {return distance;}
{
cout<<name<<":"<<endl;
for(int i = 0; i < edges.size(); i++)
vector<Edge> getEdges() {return edges;}
private:
string name;
vector<Edge> edges; };
vector<Vertex*> vertices; };
int main() {
Graph g;
Vertex v4 = Vertex("Kebumen"); Vertex v5 = Vertex("Tegal"); Vertex v6 = Vertex("Wonosobo"); Vertex v7 = Vertex("PurtoRico"); Vertex v8 = Vertex("London");
Analisa Program :
Program diatas merupakan salah satu jenis graph berarah dan berbobot, yang mengandung 8 buah simpul seperti yang telah disertakan dalam fungsi utama program/ int main ( ) yaitu:
1. Vertex v1 = Vertex("Purwokerto"); 2. Vertex v2 = Vertex("Cilacap"); 3. Vertex v3 = Vertex("Purbalingga"); 4. Vertex v4 = Vertex("Kebumen"); 5. Vertex v5 = Vertex("Tegal"); 6. Vertex v6 = Vertex("Wonosobo"); 7. Vertex v7 = Vertex("PurtoRico"); 8. Vertex v8 = Vertex("London"); Kemudian mempunyai bobot :
v1.addEdge(vp2, 100); artinya dari simpul v1/Purwokerto arah ke (→) v2/Cilacap mempunyai bobot = 100.
v1.addEdge(vp6, 20); artinya dari simpul v1/Purwokerto arah ke (→) v6/Wonosobo mempunyai bobot = 20.
v2.addEdge(vp1, 100); artinya dari simpul v2/Cilacap arah ke (→) v1/Purwokerto mempunyai bobot = 100.
v3.addEdge(vp1, 30); artinya dari simpul v3/Purbalingga arah ke (→) v1/Purwokerto mempunyai bobot = 30.
v3.addEdge(vp7, 20); artinya dari simpul v3/Purbalingga arah ke (→) v7/Purtorico mempunyai bobot = 20.
v4.addEdge(vp5, 15); artinya dari simpul v4/Kebumen arah ke (→) v5/Tegal mempunyai bobot = 15.
v5.addEdge(vp1, 10); artinya dari simpul v5/Tegal arah ke (→) v1/Purwokerto mempunyai bobot = 10.
v6.addEdge(vp1, 20); artinya dari simpul v6/Wonosobo arah ke (→) v1/Purwokerto mempunyai bobot = 20.
v8.addEdge(vp7, 45); artinya dari simpul v8/London arah ke (→) v7/Purtorico mempunyai bobot = 45.
Sehingga graphnya seperti pada gambar dibawah ini :
Oleh karena itu hasil Output program saya bisa Analisa berdasarkan dari graph yang telah saya buat sesuai dengan isi dalam programnya :
Karena dari Purokerto menuju (arah tanda panah) ke Cilacap mempunyai bobot 100 dan ada satu lagi arah tanda panah dari Purwokerto menuju Wonoso yang mempunyai bobot 20.
Karena dari Cilacap menuju (arah tanda panah) ke Purwokerto mempunyai bobot 100. Dari Cilacap hanya mempunyai 1 arah yaitu ke Purwokerto.
ada satu lagi arah tanda panah Purbalingga menuju (arah tanda panah) ke PurtoRico mempunyai bobot 20.
Karena dari Kebumen menuju (arah tanda panah) ke Tegal mempunyai bobot 15. Dari Kebumen hanya mempunyai 1 arah yaitu ke Tegal.
Karena dari Tegal menuju (arah tanda panah) ke Purwokerto mempunyai bobot 10. Dari Tegal hanya mempunyai 1 arah yaitu ke Purwokerto.
Karena dari Wonosobo menuju (arah tanda panah) ke Purwokerto mempunyai bobot 20. Dari Wonosobo hanya mempunyai 1 arah yaitu ke Purwokerto.
Pada simpul PurtoRico tidak ada arah tanda panah dari titik simpul tersebut, sehingga tidak menghasilkan nilai atau simpul tujuannya.