7. PENGANTAR TEORI GRAF Definisi : Secara umum merupakan kumpulan titik dan garis. NET terdiri atas : 1. Himpunan titik (tidak boleh kosong) 2. Himpunan garis (directed line) 3. Setiap directed line menentukan dengan tunggal titik awal (source) dan titik akhir (target). g1 g2 Gambar 7.1 7.1 Aksioma untuk NET Suatu kondisi yang selalu benar aksioma (tidak perlu dibuktikan). 1. Himpunan titik (V) = finite (terbatas, berhingga dan bukan himpunan kosong) 2. Himpunan (x) = finite Paralel jika sourcenya sama dan targetnya sama x3 paralel x4 x6 Source (x1) = source (xj) Target (v1) = target (xj) x5 x3 x4 x2 V1 V3 x1 Gambar 7.2 Loop jika source dari x = target dari x Relasi ekuivalensi (refleksif, simetris, transitif) Gambar 7.3 Pusat Pengembangan Pendidikan - Universitas Gadjah Mada 1 3. Tidak ada garis parallel yang relasi 4. Tidak ada loop/ digraph/ directed graph/ graph berarah. 7.2 Graph (Simple Graph) - Tidak ada multiple line - Tidak ada arah - Tidak ada loop Definisi-definisi : 1. Walk Urutan titik dan garis (diawali dengan titik dan diakhiri titik). Garis boleh berulang. 2. Trail Walk yang khusus tapi garisnya berlainan. 3. Path adalah Trail yang tidak mengulangi titik. Kecuali path tertutup (karena awal dan akhirnya sama). 4. Cycle path yang tertutup (titik dan garisnya tidak boelh berulang). Minimal terdiri dari 3 garis. 5. Panjang (x) banyaknya garis yang terdapat pada walk, trail, path, cycle. 6. Jarak panjang path terpendek dari 2 titik. x4 V4 x3 V1 V3 x5 x6 x1 V2 x2 V5 Path = V1 V2 V4 V3 Cycle = ada 3 cycle, yaitu : Cycle 1 =V2, V4, V3, V5 Cycle 2 = V2, V4, V3 Cycle 3 = V2, V5, V3 Jarak = V1 ke V3 adalah 2 Gambar 7.4 7.3 Connected Graph (Graph yang Terhubung) Connected Graph Gambar 7.5 7.4 Totally not Connected Graph Gambar 7.6 Graph Lengkap (Complete Graph) Gambar 7.7 Sub Graph Definisi Suatu graph, misal S = Subgraph dari G. Artinya semua titik di G ada di S dan semua garis di S ada di G. Pusat Pengembangan Pendidikan - Universitas Gadjah Mada 2 S= G= Gambar 7.8 7.5 Gambar 7.9 Tree atau Pohon Tree Sebuah Connected Graph yang Acyclic. Acyclic adalah graph terhubung yang tidak ada cyclenya. Gambar 7.10 7.6 Graph Berbobot Definisi Sebuah graph dimana setiap garisnya mempunyai nilai. Pada setiap connected graph selalu dapat ditemukan sub graph yang tree. Misal : Gambar 7.11 7.7 Minimum Spanning Tree Definisi Tree yang total bobotnya terkecil. Contoh : Minimum spanning tree dari gambar dibawah adalah : 5 5 7 7 10 6 9 6 6 Gambar 7.12 7.8 Algoritma Kruskal Pusat Pengembangan Pendidikan - Universitas Gadjah Mada 3 Algoritma : T:=Ø; Vs : = Ø ; Buat semua urutan edge yang mungkin (Q) For setiap v V tambahkan Vs While Vs i do Begin Pilih (v, w) dari a dengan bobot terkecil Hapus (v, v) dari Q If v dan w pada himpunan yang berbeda w1 dan w2 dalam Vs then Begin Tempatkan w1, w2 dalam Vs dengan w1 w2 Tambahkan (v, w) ke T Contoh : v5 2 12 11 v8 9 v4 8 4 v1 v3 10 1 v2 3 v6 5 7 6 v7 Gambar 7.13 Dengan menggunakan algoritma kruskal diatas, maka dapat dihasilkan : Q bobot aksi Vs {{v1}, {v2}, {v3}, {v4}, {v5}, {v6}, {v7}, {v8}} (v1, v2) 1 Pilih {{v1, v2}, {v3}, {v4}, {v5}, {v6}, {v7}, {v8}} (v1, v5) 2 Pilih {{v1, v2, v5}, {v3}, {v4}, {v6}, {v7}, {v8}} (v2, v6) 2 Pilih {{v1, v2, v5, v6}, {v3}, {v4}, {v7}, {v8}} (v5, v6) 4 Tolak {{v1, v2, v5, v6}, {v3}, {v4}, {v7}, {v8}} (v2, v3) 5 Pilih {{v1, v2, v3, v5, v6}, {v4}, {v7}, {v8}} (v6, v7) 6 Pilih {{v1, v2, v3, v5, v6, v7}, {v4},{v8}} (v3, v7) 7 Tolak {{v1, v2, v3, v5, v6, v7}, {v4},{v8}} (v3, v4) 8 Pilih {{v1, v2, v3, v4, v5, v6, v7}, {v8}} (v4, v8) 9 Pilih {{v1, v2, v3, v4, v5, v6, v7, v8}} (v7, v8) 10 (v1, v4) 11 (v5, v8) 12 Dari hasil penjabaran algoritma diatas, maka dapat digambarkan : Pusat Pengembangan Pendidikan - Universitas Gadjah Mada 4 v5 2 v1 v8 9 v4 8 v3 1 v2 v6 5 6 7 v7 Gambar 7.14 7.9 Cycle Breaking Methode Alur algoritma ini adalah dengan mencari bobot terbesar dalam cycle, untuk kemudian garisnyanya dihilangkan atau dipatahkan dan cari lagi bobot terbesar dari cycle yang masih ada sampai akhirnya tidak ada cycle lagi. Dari Gambar 7.13, maka langkah-langkahnya adalah : - Bobot yang terbesar adalah 12 dari titik v8 ke v5. Path ini dihilangkan. - Pindah ke cycle berikutnya, dan ditemukan bobot yang terbesar adalah 4 dari titik v5 ke v6. Path ini dihilangkan lagi, begitu seterusnya sampai tidak ada cycle yang tersisa. - Maka akan terbentuk graph seperti pada Gambar 7.14. 7.10 Algoritma Prim Ditemukan oleh Robert C. Prim. Cara kerja algoritma ini adalah dengan mengambil sembarang titik. Misalkan diambil titik v8. Garis – garis yang menghubungkan dari titik v8 adalah titik v5, v4, dan v7. Dari ketiga garis itu, cari bobot yang terkecil. Bobot yang terkecil dari ke 3 garis itu adalah itu adalah bobot yang menghubungkan titik v8 ke v4. Pertahankan garis tersebut, begitu seterusnya. Sampai akhirnya nanti terbentuk graph seperti pada Gambar 7.14. Pusat Pengembangan Pendidikan - Universitas Gadjah Mada 5