. Jenis-jenis Graf Tertentu Ada beberapa graf khusus yang sering dijumpai. Beberapa diantaranya adalah sebagai berikut. a. Graf Lengkap (Graf Komplit) Graf lengkap ialah graf sederhana yang setiap titiknya mempunyai sisi ke semua titik lainnya atau semua titiknya bertetangga dengan semua titik lainnya. Graf lengkap dengan n titik dilambangkan dengan K n. K 1 K K 3 K 4 b. Graf Bipartisi Gambar 6. Graf lengkap K n Graf bipartisi G adalah graf yang himpunan titiknya dapat dikelompokkan menjadi dua himpunan bagian V 1 dan V, sedemikian sehingga setiap sisi di dalam G menghubungkan sebuah titik di V 1 ke sebuah titik di V, dan dinyatakan sebagai G(V 1, V ). Dengan kata lain, setiap pasang titik V 1 (demikian pula dengan titik-titik di V ) tidak bertetangga. Apabila setiap titik di V 1 bertetangga dengan semua titik di V, maka G(V 1, V ) disebut sebagai graf bipartisi lengkap. Jika V 1 terdiri dari m titik dan V terdiri dari n titik, maka graf bipartisi lengkap dilambangkan dengan K m,n. V 1 V V 1 V (a) (b) Gambar 7. (a) graf bipartisi, (b) graf bipartisi lengkap K, 13
c. Graf Teratur (Graf Reguler) Graf yang setiap titiknya mempunyai derajat yang sama disebut graf teratur atau graf reguler. Apabila derajat setiap titik adalah r, maka graf tersebut disebut sebagai graf teratur atau graf reguler derajat r atau dapat ditulis graf teratur-r (graf reguler-r). Jumlah sisi pada graf teratur adalah nr. Contoh graf teratur ditunjukkan di bawah ini. Gambar 8. Graf teratur-3 d. Graf Sikel Graf sikel adalah graf sederhana yang setiap titiknya berderajat dua. Graf sikel dengan n titik dilambangkan dengan C n. Contoh graf sikel ditunjukkan di bawah ini. C 3 C 4 C 5 e. Graf Planar dan Graf Bidang Graf G disebut graf planar (planar graph) jika G dapat digambar pada bidang datar sedemikan hingga sisi-sisinya tidak ada yang berpotongan kecuali mungkin pada titik-titik ujung dari sisi-sisi tersebut. Sedangkan graf bidang (plane graph) adalah graf yang digambar pada bidang datar sedemikan hingga sisi-sisinya tidak ada yang berpotongan kecuali mungkin pada titik-titik ujung dari sisi-sisi tersebut. Dengan demikian, graf planar adalah graf yang dapat digambar sebagai graf bidang. Graf bidang pasti graf planar tetapi sebaliknya tidak berlaku. 14
Gambar G 1, G, dan G 3 adalah graf planar, tetapi G 1 bukan graf bidang. Perhatikan graf bidang G berikut. a e b c d f Graf bidang G di atas membagi bidang menjadi 6 daerah yang masingmasing disebut muka (face), yaitu: muka a, muka b, muka c, muka d, muka e, dan muka f. Himpunan muka dari graf bidang G dinotasikan dengan F(G). Untuk graf G di atas himpunan mukanya adalah F(G) = {a, b, c, d, e, f}. Banyaknya sisi di G yang membatasi suatu muka f adalah dari G disebut derajat muka f tersebut dan dinotasikan d(f). Jembatan (sisi pemutus) graf G dihitung dua kali dalam menghitung derajat muka. Sebuah sisi e di graf G disebut jembatan (sisi pemutus) jika penghapusan sisi e tersebut mengakibatkan subgraf G-e mempunyai komponen lebih banyak daripada graf G. Untuk graf G di atas derajat masing-masing muka adalah d(a) = 7, d(b) = 4, d(c) = 3, d(d) = 3, d(e) = 3, dan d(f) = 4. f. Graf Euler dan Graf semi-euler Sebuah sirkuit di graf G yang memuat semua sisi G disebut sirkuit Euler. Jika graf G memuat sirkuit Euler, maka graf G disebut graf Euler. 15
Sebuah jejak-buka yang memuat semua sisi graf disebut jejak Euler. Graf G disebut graf semi-euler jika G memuat jejak Euler. Teorema 5 Misalkan G graf terhubung. Graf G Euler jika dan hanya jika setiap titik G berderajat genap. Teorema 6 Misalkan G graf terhubung. Graf G semi-euler jika dan hanya jika G memuat tepat dua titik berderajat ganjil. Untuk mencari sirkuit Euler pada graf Euler G, dimulai dari sembarang titik v di G dan akan berakhir di titik v tersebut juga. Jejak Euler pada graf semi-euler, berawal di sebuah titik berderajat ganjil dan berakhir di sebuah titik berderajat ganjil lainnya. Berikut contoh graf Euler dan graf semi-euler. G1 G Gambar 9. G 1 graf Euler dan G graf semi-euler g. Graf Hamilton dan Semi-Hamilton Misalkan G adalah sebuah graf. Sebuah sikel yang memuat semua titik di G disebut sikel Hamilton. Jika G memuat sikel Hamilton, maka G disebut graf Hamilton. Sebuah lintasan yang memuat semua titik di G disebut lintasan Hamilton. Sebuah graf G disebut graf semi-hamilton jika graf G bukan graf Hamilton dan graf tersebut memuat lintasan Hamilton. Perhatikan tiga graf di bawah ini. 16
Graf G 1 tidak memuat lintasan Hamilton, G memuat lintasan Hamilton tetapi tidak memuat sikel Hamilton dan G 3 memuat sikel Hamilton. Dengan demikian, G adalah graf semi-hamilton dan G 3 adalah graf Hamilton. h. Pohon Pohon (tree) adalah graf terhubung yang tidak memiliki sikel. Berikut adalah contoh-contoh pohon. T 1 T T 3 T 4 Sifat-sifat Pohon Misalkan G = (V, E) adalah graf sederhana dan banyak titiknya n buah. Pernyataan-pernyataan di bawah ini adalah ekivalen. 1) G adalah pohon. ) Setiap pasang titik di G terdapat tepat satu lintasan. 3) G terhubung dan memiliki n 1 buah sisi. 4) G tidak mengandung sikel dan memiliki n 1 buah sisi. 5) G terhubung dan semua sisinya adalah jembatan. Graf bobot (weighted graph) G adalah sebuah graf yang setiap sisinya dikaitkan dengan sebuah bilangan real. Bobot sisi e ditulis sebagai w(e). Bobot graf G, ditulis w(g), adalah jumlah bobot semua sisi di G. Graf bobot G pada Gambar 10 mempunyai bobot w(g) = + 3 + + 1 = 8. 17
3 G Gambar 10. Graf bobot 1 Dari sebuah graf terhubung dapat diperoleh sebuah graf bagian yang memuat semua titik di G yang berupa pohon. Sebuah graf bagian yang memuat semua titik di G yang berupa pohon disebut pohon rentang (spanning tree). Graf pada Gambar 10 di atas kemungkinan pohon rentangnya adalah sebagai berikut. 3 1 1 3 1 T1 T T3 Masing-masing pohon rentang tersebut mempunyai bobot w(t 1 ) = 6, w(t ) = 5, dan w(t 3 ) = 6. Perhatikan bahwa pohon rentang T memiliki bobot minimal di antara pohon rentang-pohon rentang yang diperoleh dari G. Pohon rentang yang memiliki bobot minimal tersebut disebut pohon rentang minimal (minimum spanning tree). Untuk mendapatkan pohon rentang minimal dari sebuah graf bobot G di atas dengan cara: dicari semua pohon rentangnya, baru kemudian dihitung bobot masing-masing pohon rentang tersebut, dan yang punya bobot minimal itulah yang merupakan pohon rentang minimal. Cara mendapatkan pohon rentang minimal dengan cara seperti itu tentu tidak efektif dan efisen sebab membutuhkan pekerjaan dan waktu yang banyak. Untuk mencari sebuah pohon rentang minimal dari graf bobot G, pada bahasan ini akan digunakan dua algoritma, yaitu algoritma Kruskal dan algoritma Prim. Dengan menerapkan algoritma Kruskal atau algoritma Prim tersebut akan diperoleh sebuah pohon rentang minimal. Berikut penjelasan kedua algoritma itu. 18
Algoritma Kruskal Dalam algoritma ini, pertama pilih sisi di G yang memiliki bobot terkecil di antara sisi-sisi G yang bukan loop. Untuk menghindari sikel, dipilih dari sisi yang tersisa yang memiliki bobot terkecil yang tidak membentuk sikel dengan sisi yang telah terpilih. Ulangi lagi proses pengambilan sisi dengan bobot terkecil di antara sisi-sisi yang belum dipilih, asalkan tidak membentuk sikel dengan sisi yang telah terpilih. Jika graf tersebut memiliki n titik, proses tersebut dihentikan setelah memilih n 1 sisi. Sisi-sisi tersebut membentuk graf bagian T yang tidak memiliki sikel dari G dan T adalah pohon rentang minimal dari G. Langkah-langkah tersebut dapat dituliskan sebagai berikut. Algoritma Kruskal Langkah 1. Pilih e 1, sebuah sisi di G sehingga w(e 1 ) sekecil mungkin dan e 1 bukan loop. Langkah. Jika sisi-sisi e 1, e,, e i telah dipilih, lalu pilih sebuah sisi e i+1, yang belum terpilih sedemikian sehingga (i) graf bagian dari G yang dikonstruksi oleh sisi-sisi e 1, e,, e i+1 tidak memiliki sikel dan (ii) w(e i+1 ) adalah terkecil. Langkah 3. Jika G memiliki n titik, hentikan langkah tersebut setelah memilih n 1 sisi. Jika belum terpilih n 1, ulangi langkah. Algoritma Prim Pada algoritma ini untuk menemukan pohon rentang minimal, pertama dipilih sebarang titik v 1 pada graf bobot G. Kemudian pilih satu sisi dengan bobot terkecil dari G yang bukan loop dan yang terkait dengan v 1, misalnya e 1 = v 1 v. Kemudian pilih sisi dengan bobot terkecil di G yang terkait dengan v 1 atau v tetapi titik ujung lain dari sisi tersebut adalah selain titik v 1 atau v. Misalkan pilih sisi e = v i v 3 dengan i {1,} tetapi v 3 19
v 1, v. Ulangi proses pengambilan sisi dengan bobot terkecil yang berujung di titik yang telah terpilih sebelumnya dan ujung lainnya dari sisi tersebut adalah titik dari G yang bukan ujung dari sisi yang sudah terpilih. Jika graf G memiliki n titik, dipilih sampai n 1 sisi. Langkah-langkah algoritma Prim tersebut adalah sebagai berikut. Algoritma Prim Langkah 1. Pilih sebarang titik v 1 di G. Langkah. Pilih sebuah sisi e 1 = v 1 v di G sehingga v v 1 dan e 1 memiliki bobot terkecil di antara sisi-sisi G yang terkait dengan v 1. Langkah 3. Jika sisi e 1, e,, e i telah dipilih dengan titik-titik ujung dari sisi-sisi tersebut adalah titik-titik v 1, v,, v i+1, selanjutnya pilih sisi e i+1 = v j v k dengan v j {v 1, v,, v i+1 } dan v k {v 1,, v i+1 } sedemikian sehingga e i+1 memiliki bobot terkecil di antara sisi-sisi G yang salah satu ujung sisi tersebut di {v 1,, v i+1 }. Langkah 4. Hentikan langkah tersebut setelah n 1 sisi telah dipilih. Jika tidak, ulangi langkah 3. Contoh. Carilah sebuah pohon rentang minimal pada graf bobot G di bawah ini. Penyelesian: Dengan menerapkan algoritma Kruskal atau Prim diperoleh sebuah pohon 0
rentang minimal T sebagai berikut. Pohon rentang minimal T Bobot pohon rentang minimal T di atas adalah w(t) = w(e 1 ) + w(e ) + w(e 3 ) + w(e 4 ) + w(e 5 ) = + 1 + 1 + 3 + 3 = 10. Pada graf bobot G tersebut memuat bentuk pohon rentang minimal yang tidak tunggal. Untuk melancarkan penggunaan algoritma Kruskal atau Prim, coba Anda cari bentuk lainnya tersebut. 1