STRUKTUR DATA Struktur Data Graf.

Slides:



Advertisements
Presentasi serupa
ALGORITMA GREEDY : MINIMUM SPANNING TREE
Advertisements

Pertemuan 8 STRUKTUR POHON (TREE).
PERTEMUAN 14 POHON (TREE).
Tugas #3 File soal UTS sudah dikirim ke alamat masing-masing.
Graf Berarah PART 5 DOSEN : AHMAD APANDI, ST.
Pengenalan Graph Disusun Oleh: Budi Arifitama Pertemuan 9.
STRUKTUR DATA GRAPH dan DIGRAPH
GRAPH STRUKTUR DATA Disusun Oleh :
Struktur Data Graph.
STRUKTUR DATA Struktur Data Graf.
MATRIKS PENYAJIAN GRAPH
PART 4 TREE (POHON) Dosen : Ahmad Apandi, ST
*copyleft*1 Ade Ariyani A Agung Taufiqurrahman Annas Firdausi Hario Adit W Kartika Anindya P Kelompok XII Implementation of Dijkstra’s Shortest Path Algorithm.
Pertemuan 6 TREE & BINARY TREE
BAB 8 GRAF.
Pendahuluan Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut Representasi : Objek : noktah, bulatan.
5. Pohon Merentang Minimum
Rahmady Liyantanto liyantanto.wordpress.com
BAB VIII G R A F.
Algoritma dan Struktur Data
Matakuliah : T0034 / Perancangan & Analisis Algoritma
Pertemuan 23 Minimum Cost Spanning Tree
Pertemuan 23 BRANCH AND BOUND (1)
Pertemuan 24 BRANCH AND BOUND (2)
Pertemuan 16 DYNAMIC PROGRAMMING : TRAVELING SALESMAN PROBLEM (TSP)
Pertemuan 5 STACK & QUEUE
Pertemuan 21 BASIC SEARCH AND TRAVERSAL
Algoritma Greedy (lanjutan)
Pertemuan 22 BACKTRACKING
Graf Berarah / DIGRAPH PART 5 DOSEN : AHMAD APANDI, ST.
Fak. Teknologi Industri
TEORI GRAPH (LANJUTAN)
TEORI GRAPH by Andi Dharmawan.
MATRIKS PENYAJIAN GRAPH
P O H O N ( T R E E ) Fitri Utaminingrum
TERAPAN POHON BINER.
Graf Berlabel Graf Euler Graf Hamilton
Greedy Pertemuan 7.
BAB 5 TREE (Pohon) 179.
Diagram Pohon (Tree Diagram)
Pertemuan 12 METODA GREEDY lanjutan….
ALGORITMA GREEDY, KRUSKAL, MINIMUM SPANNING TREE
BAB 9: Pewarnaan Graf Matematika Diskrit DU1023 Heru Nugroho, S.Si
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Pertemuan 20 GRAPH COLORING
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Fakultas Ilmu Komputer Universitas Lancang Kuning
Pertemuan 8 Review Berbagai Struktur Data Lanjutan …..
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Algoritma Prim Algoritma Kruskal Algoritma Dijkstra
Matematika Diskrit Semester Ganjil TA Short Path.
BAB 10: Short Path Matematika Diskrit DU1023 Heru Nugroho, S.Si., M.T.
STRUKTUR DATA (9) Struktur Data Graf.
P O H O N ( T R E E ) Fitri Utaminingrum
Trees Directed Graph Algoritma Dijkstra
ALGORITMA GRAF.
ANALISA JARINGAN.
P O H O N ( T R E E ) Fitri Utaminingrum
ANALISA JARINGAN.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
ALGORITMA GREEDY : MINIMUM SPANNING TREE
GRAPH Graph didefinisikan sebagai pasangan himpunan titik-titik simpul (V) dan himpunan garis atau busur (E) dinyatakan dalam bentuk G=(V,E) dimana V tidak.
POHON DAN APLIKASI GRAF
Algoritma dan Struktur Data Lanjut
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Anyquestion?.
Aplikasi Graph Minimum Spaning Tree Shortest Path.
Logika Matematika/DPH1A3
Graf dan Analisa Algoritma
Transcript presentasi:

STRUKTUR DATA Struktur Data Graf

GRAPH Graph adalah kumpulan dari simpul dan busur yang secara matematis dinyatakan sebagai : G = (V, E) Dimana G = Graph V = Simpul atau Vertex, atau Node, atau Titik E = Busur atau Edge, atau arc

Contoh graph : vertex V terdiri dari v1, v2, …, v5 B V terdiri dari v1, v2, …, v5 E terdiri dari e1, e2, … , e7 e1 e4 e3 v1 A C edge v3 e2 e5 e7 D E v4 e6 v5 Undirected graph

Sebuah graph mungkin hanya terdiri dari satu simpul Sebuah graph belum tentu semua simpulnya terhubung dengan busur Sebuah graph mungkin mempunyai simpul yang tak terhubung dengan simpul yang lain Sebuah graph mungkin semua simpulnya saling berhubungan

Graph Berarah dan Graph Tak Berarah : v2 v2 B B e9 e8 e3 e1 e3 e1 e4 e4 v3 v1 A C A C v1 v3 e10 e2 e2 e5 e7 e5 e7 D E D E e6 v5 v4 e6 v5 v4 Directed graph Undirected graph Dapat dilihat dari bentuk busur yang artinya urutan penyebutan pasangan 2 simpul.

Graph tak berarah (undirected graph atau non-directed graph) : Urutan simpul dalam sebuah busur tidak dipentingkan. Mis busur e1 dapat disebut busur AB atau BA Graph berarah (directed graph) : Urutan simpul mempunyai arti. Mis busur AB adalah e1 sedangkan busur BA adalah e8.

Graph Berbobot (Weighted Graph) Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka busur tersebut dinyatakan memiliki bobot. Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.

Graph Berbobot : Directed graph Undirected graph B B A C A C D E D E v2 v2 B B 7 4 3 5 3 5 12 v3 v1 12 A C A C v1 v3 10 4 e2 6 8 6 8 D E D E 3 v5 v4 3 v5 v4 Directed graph Undirected graph Panjang busur (atau bobot) mungkin tidak digambarkan secara panjang yang proposional dengan bobotnya. Misal bobot 5 digambarkan lebih panjang dari 7.

Istilah pada graph Incident Degree (derajat), indegree dan outdegree 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. Degree (derajat), indegree dan outdegree Degree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut.

Indegree sebuah simpul pada graph berarah. adalah jumlah busur Indegree sebuah simpul pada graph berarah adalah jumlah busur yang kepalanya incident dengan simpul tersebut, atau jumlah busur yang “masuk” atau menuju simpul tersebut. Outdegree sebuah simpul pada graph berarah adalah jumlah busur yang ekornya incident dengan simpul tersebut, atau jumlah busur yang “keluar” atau berasal dari simpul tersebut.

Adjacent Pada graph tidah berarah, 2 buah simpul disebut adjacent bila ada busur yang menghubungkan kedua simpul tersebut. Simpul v dan w disebut adjacent. Pada graph berarah, simpul v disebut adjacent dengan simpul w bila ada busur dari w ke v. e w v w e v

Successor dan Predecessor Pada graph berarah, bila simpul v adjacent dengan simpul w, maka simpul v adalah successor simpul w, dan simpul w adalah predecessor dari simpul v. Path Sebuah path adalah serangkaian simpul-simpul yang berbeda, yang adjacent secara berturut-turut dari simpul satu ke simpul berikutnya. 1 1 1 2 1 2 2 2 4 4 4 4 3 3 3 3

Representasi Graph dalam bentuk matrix Adjacency Matrix Graph tak berarah A B C D E Urut abjad 1 2 3 4 B A 1 B 1 A C C 2 D 3 D E E 4 Graph Degree simpul : 3

Representasi Graph dalam bentuk matrix Adjacency Matrix Graph berarah A B C D E ke 1 2 3 4 B dari A 1 B 1 out A C C 2 D 3 D E E 4 Graph in

Representasi Graph dalam bentuk Linked List Adjency List graph tak berarah Digambarkan sebagai sebuah simpul yang memiliki 2 pointer. Simpul vertex : Simpul edge : left right left right info info Menunjuk ke simpul edge pertama Menunjuk ke simpul edge berikutnya, bila masih ada. Menunjuk ke simpul vertex berikutnya, dalam untaian simpul yang ada. Menunjuk ke simpul vertex tujuan yang berhubungan dengan simpul vertex asal.

Define struct untuk sebuah simpul yang dapat digunakan sebagai vertex maupun edge. typedef struct tipeS { tipeS *Left; int INFO; tipeS *Right; }; tipeS *FIRST, *PVertex, *PEdge;

Contoh : untuk vertex A, memiliki 2 edge yang terhubung yaitu e1 dan e2. Urut abjad e1 A e1 e2 e3 e4 A C B e2 e5 e7 C D E e6 D Graph E

Gambar di atas dapat disusun dengan lebih sederhana, sbb : C E C B D E A C D A C E E B C D D E Graph

Adjency List graph berarah

Graph berarah dan berbobot C D E 1 2 3 4 B 6 5 2 6 3 9 12 7 14 A 3 5 B 1 A 14 C C 2 12 2 12 D 3 D E E 4 7 Perhatikan pemilihan nilai 0.

Penyelesaian kasus Graph halaman sebelumnya : Define simpul untuk vertex dan edge Mengidentifikasi Simpul pertama sebagai vertex yang pertama Tambahkan vertex sisanya Tambahkan edge pada masing-masing vertex yang telah terbentuk Tampilkan representasi graph berikut bobotnya

Hasil :

Next

GRAPH vs TREE Sebuah Graph memiliki ciri berbeda dengan Tree Dalam Graph, edge bebas menghubungkan node-node mana pun. Dalam Tree, satu node hanya boleh terhubung ke satu parent dan beberapa child, tidak boleh ke beberapa parent. Dalam sebuah Graph bisa dirunut jalur edge yang membentuk jalur putaran dari 1 node kembali ke node semula; ini tidak boleh terjadi dalam Tree [buku utama, bab 6.5] Bina Nusantara

SPANNING TREE Spanning Tree adalah sebuah Tree yang dibuat dari sebuah Graph dengan menghilangkan beberapa edge-nya. Tree ini harus mengandung semua node yang dimiliki Graph. Bina Nusantara [buku utama, ilustrasi 6.3]

MINIMUM SPANNING TREE Jika Weighted Graph diubah menjadi Spanning Tree, tiap kombinasi Tree yang dapat dibuat memiliki total weight yang berbeda-beda. Problem Minimum Spanning Tree (MST) berusaha mencari Tree seperti apa yang bisa dibuat dari sebuah Weighted Graph dengan total weight seminimal mungkin. Bina Nusantara

MST DENGAN METODE GREEDY Algoritma Prim-Dijkstra Ditemukan oleh Robert C. Prim di tahun 1957 dan oleh Edsger Dijkstra di tahun 1959. Algoritma Kruskal Ditemukan oleh Joseph Kruskal di tahun 1956. Bina Nusantara

ALGORITMA PRIM-DIJKSTRA Langkah-langkah algoritma Prim-Dijkstra : Tentukan node awal, asumsikan semua edge berwarna hitam Dari semua edge yang terhubung ke node awal tersebut, pilih edge dengan bobot terkecil Tandai edge yang dipilih dengan warna hijau Apabila ada edge yang kedua node-nya sudah terkena jalur hijau, tandai edge tersebut dengan warna merah (karena jika dipilih akan membentuk jalur putaran à melanggar syarat tree) Tentukan node-node yang berada di jalur hijau sebagai node aktif Bandingkan semua edge yang terhubung ke node aktif (hanya edge hitam), pilih yang bobotnya terkecil Ulangi dari langkah ke-4 hingga semua node terlewati jalur hijau Ketika semua node telah dilewati jalur hijau, maka jalur hijau yang terbentuk adalah MST yang dicari Bina Nusantara

ALGORITMA KRUSKAL Langkah-langkah algoritma Kruskal : Asumsikan semua edge berwarna hitam Bandingkan bobot semua edge hitam, pilih edge dengan bobot terkecil Tandai edge yang dipilih dengan warna hijau Apabila ada edge yang kedua node-nya sudah terkena jalur hijau, tandai edge tersebut dengan warna merah (karena jika dipilih akan membentuk jalur putaran à melanggar syarat tree) Ulangi dari langkah ke-2 hingga semua node terlewati jalur hijau Ketika semua node telah dilewati jalur hijau, maka jalur hijau yang terbentuk adalah MST yang dicari Bina Nusantara

CONTOH PROBLEM MST Pelajari langkah-langkah algoritma pada : bab 6.5.1 (algoritma Prim-Dijkstra) bab 6.5.2 (algoritma Kruskal) Bina Nusantara

SHORTEST PATH Dalam sebuah Graph yang setiap edge yang memiliki weight (bobot), jarak terpendek (shortest path) antara 2 node dapat dicari dengan Metode Greedy Misal kita hendak mencari jalur terpendek (shortest path) dari node A ke node F, bagaimana cara menghitungnya dengan Metode Greedy? [buku utama, bab 6.7] Bina Nusantara

METODE GREEDY SHORTEST PATH Langkah-langkah Metode Greedy Berangkat dari node awal Pilih edge yang memiliki bobot terkecil dari node tersebut Maju ke node yang dituju Ulangi dari langkah ke-2 hingga mencapai node tujuan Bina Nusantara

CONTOH PROBLEM SHORTEST PATH [buku utama, bab 6.7] Bina Nusantara

SOLUSI OPTIMAL? Benarkah solusi yang didaptkan dari Metode Greedy untuk Shortest Path problem adalah benar-benar solusi terbaik? Coba bandingkan solusi berikut : Metode Greedy menghasilkan solusi yang cukup baik, tapi bukan yang paling baik Diskusikan mengapa bisa begitu? Bina Nusantara

LATIHAN Buatlah Minimum Spanning Tree menggunakan algoritma Prim-Dijkstra dan algoritma Kruskal Carilah Shortest Path dari node A ke node F dengan Metode Greedy! Diskusikan mengapa kadang Metode Greedy gagal menghasilkan solusi terbaik! Bina Nusantara

REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara