Monday, 6 June 2016

Data Structures - Pertemuan 9



Regina
1901457321
Hari: Rabu, 01/06/2016
Kelas: CD01-CL
Lecturer: Rulyna ( D4689 ) dan Henry Chong ( D4460 )

GRAPH
·         Graph adalah struktur data yang abstrak yang digunakan untuk implementasi konsep graph secara matematis.
·         Graph adalah koleksi dari vertices (node) dan edges yang menghubungkan vertices.
   Degree pada graph dihitung pada jumlah edges yang terhubung dengan suatu vertex.
·      
Vertex A memiliki 2 degree, Vertex B memiliki 4 degree dan seterusnya.


·         Undirected graph merupakan graph yang tiap edge tidak ada arahnya.
·         Directed graph merupakan graph yang tiap edge ada arahnya.
·         Pada directed graph, ada 2 macam degree:
o   Out-degree : degree suatu edge yang mengarah keluar vertex
o   In-degree : degree suatu vertex yang menuju ke vertex
Contoh in-degree dan out-degree pada gambar directed graph diatas:
o   Out-degree: 1 : 1 , 2 : 2 , 3 : 1, 4 : 1 , 5 : 0
o   In-degree: 1 : 1 , 2 : 1 , 3 : 0 , 4 : 2 , 5 : 1
·         Adjecency list adalah salah satu cara untuk mendeskripsikan koneksi pada graph. Dapat di-implementasikan dengan array dan linked-list.
·         Minimum Spanning Tree (MST) adalah tree yang merepresentasikan graph tanpa loop dan dalam bentuk tree.
·         Ada beberapa metode untuk membuat MST, Prim’s Algorithm dan Kruskal’s Algorithm.
PRIM’S ALGORITHM
1.       Buat array dengan nama T
2.      Pilih vertex awal
3.      Kapanpun tiap vertex ditunjuk, edge yang terhubung akan ditandai sebaga aktif.
4.      Bandingkan semua value edges yang aktif lalu, cari value terkecil
5.      Tambahkan node yang memiliki edge aktif terkecil ke T
6.      Ulang step 3-5 selama node di T masih kurang dari total node yang ada.

http://i.stack.imgur.com/KofyW.gif

KRUSKAL’S ALGORITHM
1.       Buat array dengan nama T
2.      Sortir semua edge dengan menggunakan heap (priority queue)
3.      Ambil value paling kecil pada edge
4.      Jika ada loop, lanjut ke edge berikutnya
5.      Jika tidak ada loop, tambahkan edge tersebut ke T
6.      Ulang step 3-5 sampai semua vertex dikunjungi

http://i.stack.imgur.com/6RCFr.gif

·         Shortest path adalah metode untuk menemukan jalur terpendek dari graph dengan awal dan akhir vertex yang spesifik.
·         Metodenya menggunakan Dijkstra’s Algorithm

DIJKSTRA’S ALGORITHM
1.       Pilih node inisial/awal.
2.      Definisikan N sebagai empty set.
3.      Label node inisial tersebut dengan 0, dan masukkan ke N
4.      Lakukan step 5-7 sampai node akhir sudah di N atau tidak adalahi mode labelled nodes di N
5.      Pertimbangkan semua node yang tidak ada di N dan yang terhubung dengan edge dari node yang baru di tambahkan
6.      Ada 2 kemungkinan:
a.      Jika node yang tidak ada di N tidak ada label lalu, set label pada node = label dari node yang baru di insert + panjang edge
b.      Jika node yang tidak ada di N ada label lalu, set label node = minimum (label dari vertex yang baru di insert + panjang edge, label lama)
7.      Ambil node yang tidak ada di N yang memiliki label terkecil dan tambahkan pada N

http://www.cosc.canterbury.ac.nz/tad.takaoka/alg/graphalg/da_simple.gif