BAB V TEORI GRAF
Secara kasar graf adalah suatu diagram yang memuat informasi tertentu jika diinterpretasikan secara tepat. Dalam kehidupan sehari-hari, graf digunakan untuk menggambarkan berbagai macam struktur yang ada. Tujuannya adalah sebagai visualisasi objek-objek yang lebih mudah dimengerti. Beberapa contoh graf yang sering dijumpai dalam kehidupan sehari-hari, antara lain struktur organisasi, bagan alur pengambilan mata kuliah, peta, rangkaian listrik, dan lain-lain. Tiap-tiap diagram memuat sekumpulan objek (kotak, titik, dan lain-lain) besert garis-garis yang menghubungkan objek-objek tersebut. Garis bisa berarah ataupun tidak berarah. Garis yang berarah biasanya digunakan untuk menyatakan hubungan yang mementingkan urutan antara objek-objek. Urut-urutan objek akan berarti lain jika arah garis diubah. Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graf adalah dengan menyatakan objek dinyatakan sebagai noktah, bulatan, atau titik, sedangkan hubungan antara objek dinyatakan dengan garis. Sebagai contoh, Gambar 5.1 adalah sebuah peta jaringan jalan raya yang menghubungkan sejumlah kota di Provinsi Jawa Tengah. Sesungguhnya peta tersebut adalah sebuah graf, yang dalam hal ini kota dinyatakan sebagai bulatan sedangkan jalan dinyatakan sebagai garis. Dengan diberikannya peta tersebut, kita dapat mengetahui apakah ada lintasan jalan antara dua buah kota. Selin itu, bila panjang jalan kereta api antara dua buah kota bertetangga diketahui, kita juga dapat menentukan rute perjlanan yang tersingkat dari kota A ke kota B. Masih banyak pertanyaan lain yang dapat kita munculkan berkenaan dengan graf. Sebelum kita mempelajari teori graf lebih lanjut, ada baiknya kita melakukan kilas balik menelusuri sejarah graf yang dimulai pada Abad 19.
Brebes Tegal
Pemalang
Slawi
Kendal Demak Pekalongan Semarang
Temanggung Wonosobo Salatiga Purbalingga Banjarnegara
Purwokerto
Kudus
Purwodadi
Rembang
Blora
Sragen Kroya Cilacap
Boyolali Kebumen
Solo
Magelang Purworejo
Sukoharjo Klaten Wonogiri
Gambar 5.1 Jaringan jalan raya di Provinsi Jawa Tengah A.
Sejarah Graf Menurut catatan sejarah, masalah jembatan Konigsberg adalah masalah yang pertama kali menggunakan graf (Tahun 1736). Di kota Konigsberg (sebelah timur Prussia, jerman sekarang), sekarang bernama kota Kaliningrad, terdapat sungai Pregal yang mengalir mengitari pulau Kneiphof lalu bercabang menjadi dua buah anak sungai. C
A
D
B A
Gambar 5.2 (a) Jembatan Konigsberg [ROS99], dan (b) Graf yang merepresentasikan jembatan Konigsberg Ada tujuh buah jembatan yang menghubungkan daratan yang dibelah dengan sungai tersebut (Gambar 5.1 (a)). Masalah jembatan Konigsberg adalah : apakah mungkin
melalui ketujuh buah jembatan itu masing-masing tepat satu kali, dan kembali lagi ke tempat semula? Sebagian penduduk kota sepakat bahwa memang tidak mungkin melalui setiap jembatan itu hanya sekali dan kembali lagi ke tempat asal mula keberangkatan, tetapi mereka tidak dapat menjelaskan mengapa demikian jawabannya, kecuali dengan coba-coba. Tahun 1736, seorang matimatikawan Swiss, L. Euler, adalah orang pertama yang berhasil menemukan jawaban masalah itu dengan pembuktian yang sederhana. Ia memodelkan masalah ini ke dalam graf. Daratan (titik-titik yang dihubungkan oleh jembatan) dinyatakannya sebagai titik (noktah) yang disebut simpul (vertex) dan jembatan dinyatakan sebagai garis yang disebut sisi (edge). Setiap titik diberi label huruf A, B, C, dan D. Graf yang dibuat oleh Euler diperlihatkan pada Gambar 5.2 (b). Jawaban yang dikemukakan oleh Euler adalah: orang tidak mungkin melalui ketujuh jembatan itu masing-masing satu kali dan kembali lagi ke tempat asal keberangkatan jika derajat setiap simpul tidak seluruhnya genap. Yang dimaksud dengan derajat adalah banyaknya garis yang bersisian dengan noktah. Sebagai contoh, simpul C memiliki derajat 3 karena ada tiga buah garis yang bersisian dengannya, simpul B dan D juga berderajat dua, sedangkan simpul A berderajat 5. Karena tidak semua simpul berderajat genap, maka tidak mungkin dilakukan perjalanan berupa sirkuit (yang dinamakan dengan sirkuit Euler) pada graf tersebut. B.
Definisi Graf Graf G didefinisikan sebagai pasangan himpunan, (V, E), yang dalam hal ini : V
= himpunan berhingga dan tidak kosong dari simpul-simpul (vertices atau
node) = { v1, v2, …, vn } dan E
= himpunan sisi (edge atau arcs) yang menghubungkan sepasang simpul = { e1, e2, …, en }
atau dapat ditulis singkat notasi G = (V, E) Simpul pada graf dapat dinomori dengan huruf, seperti v, w, …, dengan bilangan asli 1, 2, 3, …, atau gabungan keduanya. Sedangkan sisi yang menghubungkan simpul vi dengan simpul vj dinyatakan dengan pasangan (vi , vj) atau dengan lambang e1 , e2 , …. Dengan kata lain, jika e adalah sisi yang menghubungkan simpul vi , maka e dapat ditulis sebagai : e = ( v i , vj ) Secara geometri graf digambarkan sebagai sekumpulan noktah (simpul) di dalam bidang dwimatra yang dihubungkan dengan sekumpulan garis (sisi). 1
1 e1
e4
2 e3
e1
e4
e3 2
3
2 e5
4
e8
e2
3 e6
e7
4 (b) G2
(a) G1
2
e2 e5
3 e6
e7
4 (c) G3
Gambar 5.3 Tiga buah graf (a) graf sederhana, (b) graf ganda, dan (c) graf semu Contoh 5.1 : Gambar 5.3 memperlihatkan tiga buah graf, G1, G2, dan G3. G1 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah adalah V = {1, 2, 3, 4} E = {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4)} G2 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah: V = {1, 2, 3, 4} E = {(1, 2), (2, 3), (1, 3), (1, 3), (2, 4), (3, 4), (3, 4)} himpunan ganda = {e1, e2, e3, e4, e5, e6, e7} G3 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah: V = {1, 2, 3, 4} E = {(1,2), (2,3), (1,3), (1,3), (2,4), (3,4), (3,4), (3,3)} himpunan ganda = {e1, e2, e3, e4, e5, e6, e7, e8}
Pada G2, sisi e3 = (1, 3) dan sisi e4 = (1, 3) dinamakan sisi ganda (multiple edges atau parallel edges) karena kedua sisi ini menghubungi dua buah simpul yang sama, yaitu simpul 1 dan simpul 3. Pada G3, sisi e8 = (3, 3) dinamakan gelang atau kalang (loop) karena ia berawal dan berakhir pada simpul yang sama A. Jenis-jenis Graf Graf dapat dikelompokkan menjadi beberapa kategori (jenis) bergantung pada sudut pandang pengelompokannya. Pengelompokan graf dapat dipandang berdasarkan ada tidaknya sisi ganda atau sisi kalang, berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada sisi. Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis: 1. Graf sederhana (simple graph) Graf yang tidak mengandung gelang maupun sisi-ganda dinamakan graf sederhana. G1 pada Gambar 5.3(a) adalah contoh graf sederhana yang merepresentasikan jaringan komputer. Simpul menyatakan komputer, sedangkan sisi menyatakan saluran telepon untuk berkomunikasi. Saluran telepon dapat beroperasi pada dua arah. Pada graf sederhana, sisi adalah pasangan tak-terurut (unordered pairs). Jadi, menuliskan sisi (u, v) sama saja dengan (v, u). Kita juga dapat mendefinisikan graf sederhana G = (V, E) terdiri dari himpunan tidak kosong simpul-simpul dan E adalah himpunan pasangan tak-terurut yang berbeda yang disebut sisi. 2. Graf tak-sederhana (unsimple-graph) Graf yang mengandung sisi ganda atau gelang dinamakan graf tak sederhana (unsimple graph). Ada dua macam graf tak-sederhana, yaitu graf ganda (multigraph) dan graf semu (pseudograph). Graf ganda adalah graf yang mengandung sisi ganda. Sisi ganda yang mengubungkan sepasang simpul bisa
lebih dari dua buah. G2 pada Gambar 5.3 (b) adalah graf-ganda. Sisi ganda dapat diasosiasikan sebagai pasangan tak-terurut yang sama. Kita dapat mendifinisikan graf ganda G = (V, E) terdiri dari himpunan titik kosong simpul-simpul dan E adalah himpunan-ganda (multiset) yang mengndung sisi ganda. Pada jaringan telekomunikasi, sisi ganda pada G2 dapat diandaikan sebagai saluran telepon tambahan apabila beban komunikasi data antar komputer sangat padat. Perhatikanlah bahwa setiap graf sederhana juga adalah graf ganda, tetapi tidak setiap ganda merupakan graf sederhana. Graf semu adalah graf yang mengandung gelang (loop). G3 adalah graf semu (termasuk bila memilih sisi ganda sekalipun). Sisi gelang pada G3 dapat dianggap sebagai saluran telepon tambahan yang menghubungkan komputer dengan dirinya sendiri (mungkin untuk tujuan diagnostik). Graf semu lebih umum daripada graf ganda, karena sisi pada graf semu dapat terhubung pada dirinya sendiri. Jumlah simpul pada graf kita sebut sebagai kardinalitas graf, dan dinyatakan dengan n = V, dan jumlah sisi kita nyatakan dengan m = E. Pada contoh di atas, G1 mempunyai n = 4, dan m = 4, sedangkan G2 mempunyai n = 4 dan m = 7. Sisi pada graf dapat memiliki orientasi arah. Berdasarkan orientasi arah pada sisi maka secara umum graf dibedakan menjadi 2 jenis: 1. Graf tak Berarah (undirected graph) Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak-berarah. Pada graf tak-berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi, (u, v) = (v, u) adalah sisi yang sama. Tiga buah graf pada Gambar 5.3 adalah graf berarah. Pada jaringan telepon, sisi pada graf berarah menyatakan bahwa saluran telepon dpat beroperasi pada dua arah 2. Graf Berarah (directed graph atau digraph) Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah. Kita lebih suka menyebut sisi berarah dengan sebutan busur (arc). Pada graf berarah, (u, v) dan (v, u) menyatakan dua buah busur yang berbeda, dengan kata lain (u, v) (v, u). Untuk busur (u, v), simpul u dikatakan simpul asal
(a) (b) Gambar 5.4 (a) graf berarah, (b) graf ganda berarah
(initial vertex) dan simpul v dinamakan simpul terminal (terminal vertex) G4 pada gambar 5.4 (a) adalah contoh graf berarah. Pada G4 dapat dibayangkan sebagai saluran telepon tidak dapat beroperasi pada dua arah. Saluran hanya beroperasi pada arah yang ditujukan oleh anak panah. Jadi, sebagai contoh, saluran telepon (1, 2) tidak sama dengan saluran telepon (2, 1). Graf berarah sering dipakai untuk menggambarkan aliran proses, peta lalu lintas suatu kota (jalan searah atau dua arah), dan sebagainya. Pada graf berarah, gelang (loop) diperbolehkan, tetapi sisi ganda tidak.
Definisi graf dapat diperluas sehingga mencakup graf-ganda berarah (directed multigraph). Pada graf-ganda berarah, gelang dan sisi ganda diperbolehkan ada. G5 pada Gambar 5.4 (b) adalah contoh graf-ganda berarah. B. Terminologi Graf Kita akan sering menggunakan terminology (istilah) yang berkaitan dengan graf. Di bawah ini didefinisikan beberapa terminology yang sering dipakai. Contoh graf pada Gambar 5.5 akan digunakan untuk memperjelas terminology yang kita definisikan. Gambar pertama, G1 adalah graf sederhana, G2 adalah graf semu yang mengandung sisi ganda maupun gelang, sedangkan G3 adalah graf dengan sebuah simpul yang terpisah dari simpul lainnya. Ketiga buah graf ini adalah graf tidak-berarah. Untuk terminology yang menyangkut graf berarah, contoh grafnya akan digambarkan pda waktu pembahasan. 1
1
2
e2
1
e1
5
e3
3 2
3 e4
4 (a) G1
2
4
3 e5 (b) G2
(c) G3
Gambar 5.5 Tiga buah graf G1, G2, dan G3. 1. Bertetangga (Adjacent) Dua buah simpul pada graf tak-berarah G dikatakan bertetangga bila keduanya terhubung langsung dengan sebuah sisi. Dengan kata lain, u bertetangga dengan v jika (u, v) adalah sebuah sisi pada graf G. Contoh 5.2 Pada Gambar 5.5 (a), simpul 1 bertetangga dengan simpul 2 dan 3, tetapi simpul 1 tidak bertetangga dengan simpul 4. bisa dituliskan N(1) = {2, 3}, N(2) = {1, 3, 4}, N(4) = {2, 3}, N(3) = {1, 2, 4} Pada graf berarah, sisi kita sebut dengn busur. Jika (u, v) adalah busur maka u dikatakan bertetangga dengan v dan v dikatakan tetangga dari u. Pada Gambar 5.5 (b) simpul 1 bertetangga dengan simpul 2, simpul 2 bertetangga dengan 1. 2. Bersisian (Incident) Untuk sembarang sisi e = (u, v), sisi e dikatakan bersisian dengan simpul u dan simpul v. Contoh 5.3 Pada Gambar 5.5 (a) sisi (2, 3) bersisian dengan simpul 2 dan simpul 3, sisi (2, 4) bersisian dengan simpul 2 dan simpul 4, tetapi sisi (1, 2) tidak bersisian dengan simpul 4. 3. Simpul Terpencil (Isolated Vertex) Simpul terpencil ialah simpul yang tidak mempunyai sisi yang bersisian dengannya. Atau, dapat juga dikatakan bahwa simpul terpencil adalah simpul yang tidak satupun bertetangga dengan simpul-simpul lainnya Contoh 5.4
Pada Gambar 5.5 (c), simpul 5 adalah simpul terpencil. 4. Graf Kosong (Null Graph atau Empty Graph) Graf yang himpunan sisinya merupakan himpunan kosong disebut sebagai graf kosong dan ditulis dengan Nn, yang dalam hal ini n adalah jumlah simpul. Contoh 5.5 Graf pada Gambar 5.6 adalah graf N5 1 4
5
2
3
Gambar 5.6 Graf kosong N5 5. Derajat (Degree) Derajat suatu simpul pada graf tak-berarah adalah jumlah sisi yang bersisian dengan simpul tersebut. Notasi : d(v) menyatakan derajat simpul v Contoh 5.6 Perhatikan Gambar 5.7 di bawah ini. Berapa banyak derajat dan tetangga untuk masing-masing simpul pada Graf G dan H. b
c
d a
a
f (Graf G)
Gambar 5.7 Penyelesaian:
e
g
b
e
c
d Graf H
Pada graf G, d(a)=2, d(b)=d(c)=d(f )=4, d(d )=1,d(e)=3, dan d(g)=0. Simpul yang dikatakan bertetangga adalah N(a)={b, f}, N(b)={a, c, e, f}, N(c)={b, d, e, f}, N(d)={c}, N(e)={b, c, f}, N(f)={a, b, c, e}, and N(g)=∅. Pada H, d(a)=4, d(b)=d(e)=6, d(c)=1, dan d(d )=5. Simpul yang dikatakan bertetangga adalah N(a)={b, d, e}, N(b)={a, b, c, d, e}, N(c)={b}, N(d)={a, b, e}, dan N(e)={a, b, d}. Contoh 5.7 Pada Gambar 5.6 d(1) = d(2) = d(3) = d(4) = d(5)=0 Simpul terpencil adalah simpul dengan d(v) = 0, karena tidak ada satupun sisi yang yang bersisian dengan simpul tersebut. Sisi gelang (loop) dihitung berderajat dua. Jadi, untuk graf H pada Gambar 5.7, d(b) = 6. Secara umum, jika terdapat g buah gelang dan e buah sisi bukan-gelang yang bersisian dengan simpul v, maka derajat simpul v adalah d(v) = 2g + e Alasan mengapa gelang mengkontribusikan dua untuk derajat simpulnya adalah karena gelang direpresentasikan sebagai (v, v) dan simpul v bersisian dua kali pada sisi (v, v). Simpul yang berderajat satu disebut anting-anting (pendant vertex). dengan kata lain, anting-anting hanya bertetangga dengan sebuah simpul. Pada Gambar 5.5 (c), d(4) = 1, karena itu simpul 4 adalah anting-anting. Pada graf berarah, derajat suatu simpul dibedakan menjadi dua macam untuk mencerminkan jumlah busur dengan simpul tersebut sebagai simpul asal dan jumlah busur dengan simpul tersebut sebagai simpul terminal. Pada graf berarah, derajat simpul v dinyatakan dengan din(v) dan dout(v), yang dalam hal ini. din(v) = derajat-masuk (in-degree) = jumlah busur yang masuk ke simpul v.
dout(v) = derajat-keluar (out-degree) = jumlah busur yang keluar dari simpul v. dan d(v) = din(v) + dout(v) Contoh 5.8 Tinjau graf berarah berikut Derajat setiap simpul adalah
a
b
din(a) = 2 ; dout(a) = 1 din(b) = 2 ; dout(b) = 3 din(c) = 1 ; dout(c) = 2
c
din(d) = 2 ; dout(d) = 1
d Gambar 5.8
Pada graf berarah G = (V, E) selalu berlaku hubungan
d vV
in
(v )
d vV
out
(v ) E
Misalnya pada Contoh 5.8 di atas,
d vV
in
(v) 2 2 1 2 7 d out (v) 1 3 2 1 7 E vV
Lemma Jabat Tangan. Jumlah derajat semua simpul pada suatu graf adalah genap, yaitu dua kali jumlah sisi pada graf tersebut. Dengan kata lain, jika G = (V, E), maka:
d (v ) 2 E vV
(catatan : ingatlah 2E selalu bernilai genap) Contoh 5.9 Jumlah derajat seluruh simpul pada Gambar 5.7 Graf G adalah : d(a) + d(b) + d(c) + d(d) + d(e) + d(f) = d (g) = 2 + 4 + 4 + 1 + 3 + 4 + 0 = 18 = 2 jumlah sisi = 2 9 Jumlah derajat seluruh simpul pada Gambar 5.7 Graf H adalah : d(a) + d(b) + d(c) + d(d) + d(e) = 4 + 6 + 1 + 5 + 6 = 22 = 2 jumlah sisi = 2 11 Contoh 5.10
Diketahui graf dengan lima buah simpul. Dapatkah kita menggambar graf tersebut jika derajat masing-masing simpul. a. 2, 3, 1, 1, 2 b. 2, 3, 3, 4, 4 Penyelesaian a. tidak dapat, karena jumlah derajat semua simpulnya ganjil (2 + 3 + 1 + 1 + 2 = 9). b. dapat, karena jumlah derajat semua simpulnya genap (2 + 3 + 3 + 4 + 4 = 16). Dapat ditunjukkan pada Gambar 5.9
(a)
(b)
Gambar 5.9. Graf dengan derajat (a) 2, 3, 1, 1, 2 dan (b) 2, 3, 3, 4, 4 6. Lintasan (Path) Lintasan yang panjang n dari simpul awal v0 ke simpul tujuan vn di dalam graf G ialah barisan berselang-seling simpul-simpul dan sisi-sisi yang berbentuk v0, e1, v1, e2, v2, …, vn-1, en, vn sedemikian sehingga e1 = (v0, v1), e2 = (v1, v2), …, en = (vn-1, vn) adalah sisi-sisi dari graf G. Jika graf yang ditinjau adalah graf sederhana, maka kita cukup menuliskan lintasan sebagai barisan simpul-simpul saja: v0, v1, v2, …, vn-1, vn, karena antara dua buah simpul berturutan di dalam lintasan tersebut hanya ada satu sisi. Sebagai contoh 5.5 (a), lintasan 1, 2, 4, 3 adalah lintasan dengan barisan sisi (1,2), (2,4), (4,3). Istilah lain untuk lintasan jalur. Pada graf yang mengandung sisi ganda, kita harus menulis lintasan sebagai barisan yang berselang-seling antara simpul dan sisi menghindari kerancauan sisi mana dari sisi ganda yang dilalui. Misalnya pada Gambar 5.5 (b). 1, e1, 2, e4, 3, e5, 3
adalah lintasan dari simpul 1 ke simpul 3 yang melalui sisi e1, e4, dan e5. Catatlah bahwa simpul dan sisi yang dilalui di dalam lintasan boleh berulang. Sebuah lintasan dikatakan lintasan sederhana (simple path) jika semua simpulnya berbeda (setiap sisi yang dilalui hanya satu kali). Lintasan yang berawal dan berakhir pada simpul yang sama disebut lintasan tertutup (closed path), sedangkan lintasan yang tidak berwal dan berakhir pada simpul yang sama disebut lintasan terbuka (open path). Contoh 5.11 Pada Gambar 5.5 (a) lintasan 1, 2, 4, 3 adalah lintasan sederhana, juga lintasan terbuka lintasan 1, 2, 4, 3, 1 adalah juga lintasan sederhana, juga lintasan tertutup lintasan 1, 2, 4, 3, 2 bukan lintasan sederhana, tetapi lintasan terbuka Panjang lintasan adalah jumlah sisi dalam lintasan tersebut. Lintasan 1, 2, 4, 3 pada Gambar 5.5 (a) memiliki panjang 3. 7. Siklus (Cycle) atau Sirkuit (Circuit) Lintasan yang berawal dan berakhir pada simpul yang sama disebut sirkuit atau siklus. Sebuah sirkuit dikatakan sirkuit sederhana (simple circuit) jika setiap sisi yang dilalui berbeda. Contoh 5.12 Pada Gambar 5.5 (a) 1, 2, 3, 1 adalah sirkuit sederhana, sedangkan 1, 2, 4, 3, 2, 1 bukan sirkuit sederhana, karena sisi (1, 2) dilalui dua kali. 8. Terhubung (Connected) Keterhubungan dua buah simpul adalah penting di dalam graf. Dua buah simpul u dan simpul v dikatakan terhubung jika terdapat lintasan dari u ke v. Jika dua buah simpul terhubung maka pasti simpul yang pertama dapat dicapai dari simpul yang
kedua. Dua simpul terminal pada jaringan komputer hanya dapat berkomunikasi bila keduanya terhubung. Jika setiap pasang simpul di dalam graf terhubung, maka graf tersebut kita katakana graf terhubung. Secara formal, definisi graf terhubung adalah sebagai berikut: Graf tak-berarah G disebut graf terhubung (connected graph) jika untuk setiap pasang simpul u dan v di dalam himpunan V terdapat lintasan dari u ke v (yang juga harus berarti ada lintasan dari u ke v). Jika tidak, maka G disebut graf takterhubung (disconnected graph). G1 dan G2 pada Gambar 5.10 adalah graf terhubung, sedangkan G3 tidak. Graf pada Gambar 5.10 di bawah ini adalah contoh graf tak-terhubung. 2
5 6
1
4 3
8
7
Gamba5 5.10 Graf tak-berarah tidak berhubung Graf yang hanya terdiri atas satu simpul saja (tidak ada sisi) tetap kita katakana terhubung, karena simpul tunggalnya terhubung dengan dirinya sendiri, juga dikatakan graf terhubung. Graf berarah G dikatakan terhubung jika graf tak-berarahnya terhubung (graf takberarah dan G diperoleh dengan menghilangkan arahnya). Keterhubungan dua buah simpul pada graf berarah dibedakan menjadi terhubung kuat dan terhubung lemah. Dua simpul, u dan v pada graf berarah G disebut terhubung kuat (strongly connected) jika terdapat lintasan berarah dari u ke v, dan juga sebaliknya lintasan berarah dari u ke v. Pada Gambar 5.11 (a), simpul 1 dan simpul 3 terhubung kuat
karena terdapat lintasan dari 1 ke 3 (yaitu 1, 2, 3), begitu juga terdapat lintasan dari 3 ke 1 (yaitu 3, 5, 4, 1) tetapi tidak ada lintasan dari 1 ke 3. Kedua hal di atas (terhubung kuat dan terhubung lemah) melahirkan definisi graf terhubung kuat. Graf berarah G disebut graf terhubung kuat (strongly connected graph) apabila untuk setiap pasang simpul sembarang vi dan vi di G terhubung kuat. Kalau tidak, G disebut graf terhubung lemah. Graf pada Gambar 5.11 (a) adalah graf terhubung kuat, karena untuk sembarang sepasang simpul di dalam graf terdapat lintasan, sedangkan graf pada Gambar 5.11 (b) adalah graf terhubung lemah karena tidak semua pasangan simpul mempunyai lintasan dari dua arah. 1
1 5
5
2
2
4
3
4
3
(a)
(b)
Gambar 5.11 (a) graf berarah terhubung kuat, (b) graf berarah terhubung lemah 9. Upagraf (Subgraph) dan Komplemen Upagraf Misalkan G = (V, E) adalah suatu graf. G1 = (V1, E1) adalah upagraf (subgraph) dari G jika V1 V dan E1 E. Gambar 5.12 (b) adalah upagraf dari graf Gambar 5.12 (a). Komplemen dari upagraf G1 terhadap graf G adalah graf G2 = (V2, E2) sedemikian sehingga E2 = E – E1 dan V2 adalah himpunan simpul yang anggota-anggotanya E2 bersisian dengannya. Gambar 5.12 (c) adalah komplemen dari upagraf pada Gambar 5.12 (b). 2 1
1
3
3
1 1
2 3
6 4
5 (a)
6 2
5 (b)
5 (c)
Gambar 5.12 (a) graf G1,
(b) Sebuah upagraf dari G1, dan
(a) komplemen dari upgraf yang bersesuaian Jika graf tidak terhubung, maka graf tersebut terdiri atas beberapa komponen terhubung (connected component). Komponen terhubung (atau disingkat “komponen” saja) adalah upagraf terhubung dari graf G yang tidak terdapat di dalam upagraf terhubung dari G yang lebih besar. Ini berarti setiap komponen terhubung di dalam graf G saling lepas (disjoint). Pada Gambar 5.13 di bawah ini, graf G mempunyai 3 buah komponen terhubung, yaitu G1, G2, dan G3. Catatlah bahwa graf terhubung hanya terdiri dari satu komponen, yaitu graf itu sendiri. G1
G2
2
1 3 4
7
5
6
G3
Gambar 5.13 Graf G yang mempunyai 4 buah komponen, yaitu G1, G2, dan G3 Pada graf berarah, komponen terhubung kuat (strongly connected component) adalah upagraf terhubung-kuat dari graf G yang tidak terdapat di dalam upagraf terhubung-kuat dari G yang lebih besar. Graf pada Gambar 5.14 di bawah ini mempunyai dua buah komponen terhubung kuat, yaitu upagraf dengan simpul 1, 2, 3 dan upagraf yang hanya mempunyai satu simpul, 4. 4
1
2
3
6
5
Gambar 5.14 Graf berarah G yang mempunyai 2 buah komponen terhubung kuat 10. Upagraf Merentang (Spanning Subgraph) Upagraf G1 = (V1, E1) dari G = (V, E) dikatakan upagraf merentang jika V1 = V (yaitu G1 mengndung semua simpul dari G). Contoh 5.13 Pada gambar 5.15, G1 adalah upagraf merentang dari G, tetapi G2 bukan upagraf merentang dari G karena G2 tidak mengandung semua simpul G. (a) G 1
(b) G1 1
2
5
(c) G2 2
1
2
5
4
3
4
3
3
Gambar 5.15 (a) graf G (b) upagraf merentang dari G, dan (c) bukan upagraf merentang dari G 11. Cut-Set Cut-set dari graf dari graf terhubung G adalah himpunan sisi yang bila dibuang dari G menyebabkan G tidak terhubung. Jadi, cut-set selalu menghasilkan dua buah komponen terhubung. Nama lain untu cut-set adalah jembatan (bridge). Jembatan adalah himpunan sisi yang apabila dibuang dari graf menyebabkan graf tersebut tidak terhubung (menjadi dua buah komponen terhubung). Di dalam cut-set tidak boleh mengandung himpunan bagian yang juga cut-set, sehingga cut-set yang dimaksud adalah fundamental cut-set. Contoh 5.14 Pada Gambar 5.16, jika kita membuang sisi (1, 3), graf masih terhubung. Jika yang kita buang adalah (1, 3) dan (2, 4) graf masih tetap terhubung. tetapi, jika kita buang sisi-sisi di dalam himpunan {(1, 3), (2, 3) (2, 4), (3, 4)} barulah graf
menjadi tidak terhubung. Jadi, {(1, 3), (2, 3) (2, 4), (3, 4)} adalah cut-set. Himpunan {(1, 3), (2, 3), (2, 4)} juga cut-set. 1
1
2
3
2
3
Gambar 5.16 {(1, 3), (2, 3) (2, 4), (3, 4)} adalah cut-set 4
5
4
5
12. Graf Berbobot (Weighted Graph) Graf berbobot adalah graf yang setiap sisinya diberi sebuah harga (bobot). Bobot pada tiap sisi dapat berbeda-beda bergantung pada masalah yang dimodelkan dengan graf. Bobot dapat menyatakan jarak antara dua buah kota, biaya perjalanan antara dua buah kota, waktu tempuh pesan (message) dari sebuah simpul komunikasi ke simpul komunikasi lain (dalam jaringan komputer), ongkos produksi, dan sebagainya. Gambar 5.17 adalah contoh graf berbobot. Istilah lain yang sering dikaitkan dengan graf berbobot adalah graf berlabel. Namun graf berlabel sesungguhnya lebih luas lagi definisinya. Label tidak hanya diberikan pada sisi, tetapi juga pada simpul. Sisi diberi label berupa bilangan tak negatif, sedangkan simpul diberi label berupa data lain. Misalnya pada graf yang memodelkan kota-kota, simpul diberi nama kota-kota, sedangkan label pada sisi menyatakan jarak antara kota-kota. a
8
b
c
10
12
11
14
f
15
e
9
d
Gambar 5.17 Graf berbobot C. Beberapa Graf Sederhana Khusus 1. Graf Lengkap (Complete Graph)
Sebuah Graf G adalah lengkap jika setiap vertex terhubung ke setiap vertex yang lainnya. Graf lengkap dengan n vertex dinyatakan dengan Kn. Setiap simpul pada Kn berderajat n – 1. Gambarkan sebuah diagram dari graf-graf lengkap K1, K2, K3, K4, K5, dan K6 Pertama gambarkan jumlah n vertex yang sesuai. Kemudian gambarkan sebuah edge dari setiap vertex ke setiap vertex lainnya. Gambar yang diperlukan ada pada Gambar 5.18 Contoh 5.15
K1
K2
K3
K4
K5
K6
Gambar 5.18 Graf lengkap Kn, 1 n 6 Jumlah sisi dalam K5 =
5(5 1) 5.4 10 2 2
Jumlah sisi dalam K6 =
6(6 1) 6.5 15 2 2
Jumlah sisi pada graf lengkap yang terdiri dari n buah simpul adalah
n( n 1) . 2
Rumus ini diperoleh sebagai berikut: untuk satu buah simpul terdapat (n – 1) buah sisi ke (n – 1) simpul lainnya, maka untuk n buah simpul terdapat n(n – 1) buah sisi. Karena setiap sisi terhitung dua kali untuk pasangan simpul yang bersisian dengannya, maka jumlah sisi seluruhnya dibagi dua, yaitu
n( n 1) . 2
2. Graf Lingkaran (cycle) Graf lingkaran adalah graf sederhana yang setiap simpulnya berderajat dua. Graf lingkaran dengan n simpul dilambangkan dengan Cn. Jika simpul-simpul pada Cn adalah v1, v2, …, vn, maka sisi-sisinya adalah (v1, v2), (v2, v3), …, (vn-1, vn), dan (vn, v1). Dengan kata lain, ada sisi dari simpul terakhir, vn, ke simpul pertama v1. Contoh 5.16
Gambar 5.19 adalah empat buah graf lingkaran. Salah satu topologi cincin (ring topology) yang direpresentasikan sebagai graf lingkaran
Gambar 5.19 Graf lingkaran Cn, 3 n 6 3. Graf teratur (Regular Graph) Graf yang setiap simpulnya mempunyai derajat yang sama disebut graf teratur (regular). Dengan kata lain, sebuah graf adalah reguler berderat k jika setiap simpul mempunyai derajat k. Contoh 5.17 Terangkan dan Gambarkan graf regular berderajat 0, 1, 2 (i) 0 reguler
(ii) 1-reguler
(iii) 2-reguler
Gambar 5.20 Graf regular terhubung berderajat 0 adalah graf trivial dengan satu simpul dan tidak ada sisi. Graf regular terhubung derajat 1adalah graf dengan dua simpul dan satu sisi yang saling terhubung. Graf regular terhubung derajat 2 dengan n simpul adalah graf yang terdiri dari sebuah cycle tunggal derajat n. Gambar 5.20 menunjukkan graf regular terhubung derajat 0, dan 1 dan beberapa graf regular terhubung derajat 2. Misalkan r adalah sebuah bilangan bulat ganjil. Tunjukkan bahwa sebuah graf regular derajat r mempunyai jumlah n simpul genap. Lihat Gambar 5.18, misalnya K3 mempunyai jumlah derajat 6, K4 mempunyai jumlah derajat 12, sedangkan K5 mempunyai jmlah simpul 20. Sehingga terbukti sebuah graf regular derajat r mempunyai jumlah n simpul 4. Graf Bipartit (Biartite Graph)
Sebuah graf G dikatakan bipartit jika simpul V dapat dipartisi ke dalam dua himpunan himpunan bagian M dan N sedemikian sehingga setiap sisi dari G menghubungkan sebuah simpul dari M ke sebuah simpul dari N. Dengan sebuah graf bipartit lengkap, kita mengartikan bahwa setiap simpul dari M dihubungkan ke setiap simpul dari N, graf ini dinyatakan dengan Km,n dimana m adalah jumlah simpul di M dan n adalah jumlah simpul di N, dan untuk standarisasi, kita asumsikan m n. Graf G yang himpunan simpulnya dapat dikelompokkan menjadi dua himpunan bagian M dan N, sedemikian sehingga setiap sisi di dalam G menghubungkan sebuah simpul di M ke sebuah simpul di N disebut graf bipartite dan dinyatakan sebagai G(M, N). Dengan kata lain, setiap pasang simpul di M (demikian pula dengan simpul-simpul di N) tidak bertetangga (lihat Gambar 5.21) setiap simpul di M bertetangga dengan semua simpul di N, maka G(M, N) disebut sebagai graf bipartite lengkap (complete bipartite graph), dilambangkan dengan Km,n. Jumlah sisi pada graf bipartite lengkap adalah mn.
Gambar 5.21 Graf bipartite G(M, N) Graf lengkap K2 adalah graf bipartite, tetapi Graf lengkap K3 bukan graf bipartite. Untuk menunjukkan K3 bukan bipartite, bagilah simpul-simpul dua bagian V1 dan V2, yang dalam hal ini V1 berisi satu buah simpul dan V2 mengandung dua buah simpul. Ternyata, dua simpul di V2 terhubung oleh sebuah sisi. Hal ini jelas tidak sesuai dengan definisi graf bipartite. Contoh 5.17 Graf G pada gambar 5.22 adalah graf bipartite, karena simpul-simpulnya dapat dibagi menjadi V1 = {a, b, c} dan V2 = {c, e, f, g} dan setiap sisi menghubungkan
simpul di V1 ke simpul V2, dngan cara yang sama, perlihatkan bahwa C6 adalah graf bipartit a
b
g f
c e
d
Gambar 5.22 Graf bipartit Tentukan jumlah sisi dalam graf bipartite lengkap Km,n Setiap m simpul dihubungkan ke n simpul, sehingga Km,n mempunyai mn sisi. Gambarkan graf bipartit lengkap K2,3, K3,3, dan K2,4 Untuk menggambarkan sebuah graf lengkap, tempatkan jumlah simpul yang sesuai dalam dua kolom parallel dan hubungkan simpul-simpul dalam satu kelompok dengan semua simpul-simpul di kelompok lannya. Graf dapat ditunjukkan pada Gambar 5.23
K2,3
K3,3
K2,4
Gambar 5.23 Tentukan diameter dari suatu graf bipartite lengkap Diameter K1,1 adalah satu karena di sana hanya ada dua simpul dan lintasan terpendek antara mereka yang panjangnya satu. Semua graf bipartit lain akan mempunyai diameter dua karena dua titik sembarang di salah satu M atau N akan tepat berjarak dua terpisah. (satu sisi )ntuk mencapai subgroup simpul lain dan satu untuk kembali) Gambar graf K2,5 u1 v1
u2 v2
v3
v4
v5
Gambar 5.24 graf K2,5 K2,5 terdiri dari 7 simpul dipartisi ke dalam sebuah himpunan M dari dua simpul, missal u1 dan u2, dan sebuah himpunan N dari 5 simpul, missal v1, v2, v3, v4, dan v5 dan semua kemungkinan sisi dari sebuah simpul ui ke sebuah simpul vi. Dapat diperlihatkan pada Gambar 5.24. 5.
Tree Sebuah graf G dikatakan bebas cycle atau acyclic jika ia tidak mempunyai cyclecycle. Jika G tidak mempunyai cycle dan terhubung maka G dikatakan sebuah tree. Gambarkan semua tree dengan empat (lebih sedikit) simpul.
(a)
(b)
(c)
(d)
(e)
Gambar 5.25 Gambarkan semua tree dengan lima simpul
(a)
(b)
(c)
Gambar 5.26 Pertama gambarlah lima simpul. Kemudian hubungkan mereka sehingga tidak ada cycle yang terbentuk. Dalam latihan ini, kita harus hati-hati untuk tidak mengulang tree-tree karena tree yang muncul berbeda mungkin digambarkan secara berbeda. Terdapat tiga tree dengan lima simpul seperti ditunjukkan pada Gambar 5.26. D. Graf Tak Berarah Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak berarah. Pada graf tak berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi, (u, v) = (v, u) adalah sisi yang sama. 1 2
1 3
(a)
4 G4
4 (b) G5
Gambar 5.27 Graf tak berarah E. Graf Berarah (Directed Graph = Digraph) Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah. Sisi yang mempunyai arah biasa disebut busur (arc). Pada graf berarah (u, v) dan (v, u) menyatakan dua buah busur yang berbeda, dengan kata lain (u, v) (v, u). Untuk busur (u, v), simpul u dinamakan simpul asal (initial vertex) dan simpul v disebut simpul terminal (terminal vertex). Pada graf berarah gelang diperbolehkan tetapi sisi ganda tidak. 1
1
2
3
3 2
(G4)
4
(G5)
4
Gambar 5.28 (a) Graf berarah, (b) graf ganda berarah Definisi graf dapat diperluas sehingga mencakup graf-ganda berarah (directed multigraph). Pada graf ganda berarah, gelang dan sisi ganda diperbolehkan ada. G5 pada Gambar 5. merupakan contog graf-ganda berarah. F. Graf Isomorfik (Isomorphic Graph) Misalkan kepada dua orang mahasiswa diminta digambarkan sebuah graf dengan empat buah simpul, masing-masing simpul berderajat tiga. Graf yang digambar bisa beragam bentuknya, dua diantaranya ditunjukkan pada Gambar 5.29 (a) dan 5.29 (b). Meskipun kedua graf tersebut terlihat berbeda bentuknya, dengan penamaan simpul yang berbeda pula, namun sebenarnya keduanya merupakan graf yang sama. Dua
buah graf yang sama tetapi secara geometri berbeda disebut graf yang saling isomorfik. Dua buah graf. G1 dan G2 dikatakan isomorfik jika terdapat korespondensi satu-satu antara simpul-simpul keduanya dan antara sisi-sisi keduanya sedemikian sehingga jika sisi e bersisian dengan simpul u dan v di G1, maka sisi e’ yang berkoresponden di G2 juga harus bersisian dengan simpul u’ dan v’ di G2. 3
d
e
v
w
4 1
2 a (a) G1
b (b) G2
x
y (c) G3
Gambar 5.29 G1 isomorfik dengan G2, tetapi G1 tidak isomorfik dengan G3 Pada Gambar 5.29, G1 isomorfik dengan G2. Simpul 1, 2, 3, dan 4 di G1 berkoresponden dengan simpul a, b, c, dan d di G2. Sisi (1, 2), (2, 3), (3, 1), (3, 4), (1, 4) dan (2, 4) berkoresponden dengan sisi (a, b), (b, c), (c, d), (a, d), (a, c) dan (b, d). Semua simpul di G1 dan G2 berderajat 3. G1 maupun G2 tidak isomorfik dengan G3, karena simpul-simpul di G3 dua buah berderajat dua dan dua buah lagi berderajat tiga, sedangkan simpul-simpul di G1 dan G2 semuanya berderajat tiga.
(a)
(b)
Gambar 5.30 (a) Dua buah graf isomorfik, tiga buah graf isomorfik [DEO74]
Tidak mudah menentukan apakah dua buah graf isomorfik hanya dengan melihat gambarnya saja. Dari definisi isomorfik kita menyimpulkan dua buah graf isomorfik memenuhi ketiga syarat berikut [DEO74]: 1. Mempunyai jumlah simpul yang sama 2. Mempunyai jumlah sisi yang sama 3. Mempunyai jumlah simpul yang sama berderajat tertentu. Contoh 5.18 Gambar 5.31 mununjukkan sepuluh graf digambarkan seperti huruf abjad. Manakah dari sepuluh graf tersebut yang isomorfik dengan M? M terdiri dari 5 simpul dalam graf tunggal. Jadi S, V dan Z (dan M sendiri) adalah isomorfik dengan M
Gambar 5.31
Perhatikan huruf-huruf A, F, K, R, T dan X pada Gambar 5.31. Manakah dari mereka yang isomorfik? Huruf-huruf A dan R, F dan T, dan K dan X adalah isomorfik. G. Homomorfik Diberikan suatu graf G, kita bisa mendapatkan sebuah graf baru dengan membagi sebuah sisi dari G dengan simpul-simpul tambahan. Dua graf G dan G* dikatakan homomorfik juka mereka bisa didapatkan dari graf isomorfik dengan metode ini. Contoh 5.19
Berikan sebuah contoh graf yang homomorfik tetapi isomorfik
(a)
(b)
(c)
Gambar 5.32 Graf (a) dan (b) pada Gambar 5.32 tidak isomorfik, tetapi mereka homomorfik karena masing-masing bisa didapatkan dari (c) dengan menambahkan simpul-simpul yang sesuai. H. Komplemen Graf Komplemen suatu graf G (simbol
G
) dengan n titik adalah suatu graf sederhana
dengan: 1. Titik-titik
G
2. Garis-garis
sama dengan titik-titik G. Jadi, V ( G ) = V (G)
G
adalah komplemen garis-garis G terhadap Graf Lengkapnya (Kn).
E G E K n E G
Titik-titik yang dihubungkan dengan garis dalam G tidak terhubung dalam Sebaliknya, titik-titik yang terhubung dalam G menjadi tidak terhubung dalam
G
G
.
.
Contoh 5.20 Gambarlah komplemen graf G yang didefinisikan dalam Gambar 5.33 di bawah ini! a
b
c
d
a b c
Gambar 5.33 (a)
f e
a
b
d
c
(b)
(c)
Penyelesaian: Titik-titik dalam
G
sama dengan titik-titik dalam G, sedangkan garis-garis dalam
G
adalah garis-garis yang tidak berada dalam G. Pada Gambar 5.33 (a), titik-titik yang tidak dihubungkan dengan garis dalam G adalah garis dengan titik ujung {a, d}, {a, e}, {b, c}, dan {b, e}.
Dengan demikian, graf
G
dapat digambarkan pada Gambar 5.34 (a). Secara analog,
Gambar 5.33 (b) dan 5.33 (c) dapat digambarkan pada Gambar 5.34(b) dan
G
5.34(c). a
b
a b
c
d
b
d
c
f
c
e (a)
a e
d (b)
(c)
Gambar 5.34 Perhatikan bahwa komplemen K4 dalam soal (c) adalah graf tanpa garis di dalamnya. Secara umum, komplemen Kn adalah suatu graf dengan n titik dan tanpa garis. Contoh 5.21 Misalkan G adalah suatu graf dengan n buah titik dan k buah garis. Berapa banyak garis dalam
G
?
Penyelesaian: Jumlah garis dalam
G
adalah jumlah garis dalam Kn dikurangi jumlah garis dalam G.
Banyak garis dalam Kn adalah
n( n 1) , maka banyaknya garis dalam G adalah 2
n(n 1) k. 2
Jika garis dalam G menunjukkan relasi tertentu, maka garis dalam
G
juga
menunjukkan komplemen/ingkaran relasi tersebut. Sebagai contoh, andaikan titik-titik dalam G menyatakan karyawan-karyawan dalam suatu perusahaan dan garis-garis dalam G menyatakan relasi “dapat bekerja sama”. Dua titik dalam G akan dihubungkan dengan garis jika keduanya dapat bekerja sama. Garis-garis dalam menunjukkan ingkaran dari relasi tersebut. Dua titik dalam suatu garis jika keduanya karyawan tidak dapat bekerja sama. I. Sirkuit
G
G
dihubungkan dengan
Sirkuit sederhana dengan panjang n adalah sirkuit yang semua titiknya berbeda. Sirkuit sederhana berbentuk v0 e1 v1 e2 v2 … vn-1 en vn dengan ei ej untuk i j dan vk vm untuk k m, kecuali v0 = vn. Contoh 5.22 Tentukan mana di antara barisan titik dan garis pada Gambar 5.35 yang merupakan lintasan, lintasan sederhana, sirkuit, dan sirkuit sederhana. e4 e2 v1 e1
v3 e3 v2 e7 e8 v6
e5
v4
e6
e10
e9
v5
Gambar 5.35 a. v1 e1 v2 e v3 e4 v3 e5 v4 b. v2 e3 v3 e5 v4 e10 v5 e6 v3 e7 v6 e8 v2 c. v2 e3 v3 e5 v4 e10 v5 e9 v6 e8 v2 a. v1 b. Semua garisnya berbeda. Ada titik berulang (v3 muncul 2 kali). Titik awal dan akhirnya sama, yaitu v2. Berarti barisan tersebut merupakan sirkuit dengan panjang 6. Barisan tersebut bukan merupakan sirkuit sederhana karena ada dua titik di tengah yang muncul lebih dari 1 kali, yaitu v3. d. Semua garis dan titiknya berbeda. Barisan diawali dan diakhiri pada Penyelesaian: c. Semua garis berbeda (e1, e3, e4, dan e5 masing-masing muncul sekali). Ada titik yang berulang (v3 muncul 2 kali). Titik awal dan titik akhir tidak sama (titik awal = v1 dan titik akhir v4). Disimpulkan bahwa barisan tersebut merupakan lintasan dari v1 ke v4 dengan panjang 4. d. titik yang sama yaitu v2. Disimpulkan bahwa barisan tersebut merupakan sirkuit sederhana dengan panjang 5. e. Oleh karena barisan hanya memuat satu titik saja, berarti tidak ada garis yang sama. Barisan diawali dan diakhiri pada titik yang sama serta tidak memiliki titik
yang sama diantaranya. Dengan demikian, disimpulkan bahwa barisan merupakan sirkuit sederhana (sering disebut sirkuit trivial)
Sirkuit Euler Misalkan G dalah suatu graf. Sirkuit Euler G adalah sirkuit dimana setiap titik dalam G muncul paling sedikit sekali dan setiap garis dalam G muncul tepat satu kali. a
b
c
h
g
d
Gambar 5.36f
e
Pada Gambar 5.36 merupakan sirkuit Euler. Jika demikian, maka kita harus mencari rute kunjungan keliling yang mulai dari a, dan titik terakhir kunjungan adalah titik E. Kecuali titik a dan e, semua titik-titik lain memiliki derajat genap. Oleh karena grafnya terhubung, maka berarti merupakan sirkuit Euler. Rute kunjungan yang dimulai dari titik a adalah ahgbcdgfe Sirkuit Hamilton Suatu graf terhubung G disebut Sirkuit Hamilton bila ada sirkuit yang mengunjungi setiap titiknya tepat satu kali (kecuali titik awal yang sama dengan titik akhir). Perhatikan perbedaan Sirkuit Euler dan Sirkuit Hamilton. Dalam sirkuit Euler, semua garis harus dilalui tepat satu kali, sedangkan semua titiknya boleh dikunjungi lebih dari satu kali. Sebaliknya dalam Sirkuit Hamilton semua titik harus dikunjungi tepat satu kali dan tidak harus melalui semua garisnya. Dalam Sirkuit Euler, yang dipentingkan adalah garisnya. Sebaliknya dalam sirkuit Hamilton, yang dipentingkan adalah kunjungan pada titiknya. Contoh 5.23
Gambar 5.37 menyatakan peta beberapa kota (A … G) beserta jalan-jalan yang menghubungkan kota-kota tersebut. B
j2
j1
j4
j5 F
A
j3
j6
j12
j11
j7 E j9
C j8
j10
D
G
Gambar 5.37 Seorang penjaja (salesman) hendak mengunjungi setiap kota masing-masing satu kali, dimulai dari kota A. Carilah jalan yang harus dilalui salesman tersebut? Penyelesaian: Masalah penjaja tersebut adalah mencari sirkuit Hamilton yang dimulai dari titik A. Dengan mencoba-coba, didapatkan beberapa jalur yang mungkin, misalnya ABFECDGA, ABCFEDGA J. Contoh Terapan Graf Seperti yang sudah disebutkan di atas, aplikasi graf sangat luas. Graf dipakai di berbagai disiplin ilmu maupun dalam kehidupan sehari-hari. Penggunaan graf di berbagai bidang tersebut adalah untuk memodelkan persoalan. 1. Isomer senyawa kimia karbon Arthur Cayley (1857) meggunakan graf dalam memodelkan molekul senyawa alkane CnH2n+2 untuk menghitung jumlah isomernya. Atom karbon (C) dan atom Hidrogen (H) dinyatakan sebagai simpul, sedangkan ikatan antara atom C dan H dinyatakan dalam sisi (Gambar 5.38). Isomer adalah senyawa kimia yang mempunyai rumus molekul sama tetapi rumus bangun (bentuk graf) berbeda. H
H
C
H metana (CH4)
H
etana (C2H6)
propane (C3H6)
Gambar 5.38. Graf senyawa alkane, masing-masing metana, etana dan propana 2. Transaksi konkuren pada basis data terpusat Ini adalah terapan graf dalam bidang komputer. Basis data (database) terpusat melayani beberapa transaksi (T) yang dilakukan secara konkuren (bersamaan). Transaksi terhadap basis data dapat berupa operasi pembacaan dan operasi penulisan terhadap data yang sama. Persoalan kritis pada proses konkuren adalah deadlock, yaitu keadaan yang timbul karena beberapa transaksi saling menunggu transaksi lainnya sehingga sistem menjadi hang. Misalnya, transaksi T1 akan membaca data B yang sedang ditulis oleh transaksi T2, sedangkan T2 akan membaca data A yang sedang ditulis T1. Kedua transaksi saling menunggu data yang sedang dikuncinya (circular wait). Bila terdapat lebih dari dua transaksi yang saling menunggu sehingga membentuk siklus, maka timbul deadlock. Cara yang digunakan sistem untuk mendeteksi deadlock adalah dengan membangun graf transaksi secara periodic dan memeriksa apakah terdapat siklus pada grafnya. Jika ada siklus, maka kondisi deadlock terjadi. Misalkan: transaksi T0 menunggu transaksi T1 dan T2 ; transaksi T2 menunggu transaksi T1 ; transaksi T1 menunggu transaksi T3 ; transaksi T3 menunggu transaksi T2 ; Graf berarah yang menyatakan transaksi menunggu transaksi lainnya ditunjukkan pada Gambar 5.39 Simpul menyatakan transaksi, sedangkan busur (Ti, Tj) menyatakan transaksi Ti menunggu transaksi Tj. Graf ini mengandung siklus, yaitu: T1 – T3 – T2 – T1
Untuk mengatasi deadlock, T1 sistem harus memutuskan siklus dengan cara membatalkan satu atau lebih transaksi di dalam siklus. Metode penanganan deadlock T0 T3 T2
tidak dibahas dalam buku ini, karena merupakan bagian kuliah Sistem Operasi dan Sistem Basis Data.
Gambar 5.39 Graf transaksi yang menunjukkan keadaan deadlock 3. Turnamen Round-Robin Turnamen yang setiap tim bertanding dengan tim lainnya hanya sekali disebut turnamen round-robin. Turnamen semacam itu dimodelkan dengan braf berarah, yang dalam hal ini simpul menyatakan tiap tim yang bertanding, dan busur menyatakan pertandingan. Busur (a, b) berarti tim a berhasil memukul tim b. Gambar 5. memperlihatkan turnamen round-robin untuk 6 buah tim. Tim 1 tidak terkalahkan, sedangkan tim 3 tidak pernah menang. Tim 1
Tim 2
Tim 6
Tim 3
Gambar 5.40 Turnamen round-robin Contoh terapan lain4adalah menyatakan aliran informasi dalam pengolahan Tim 5 graf yang Tim sinyal dan aliran massa dalam industry kimia. Graf juga berguna memodelkan sesuatu yang abstrak, seperti struktur perusahaan, tingkatan social, pohon keluarga, aliran kerja dalam proyek, perencanaan dan manajemen proyek, perpindahan dalam permainan (game), dan langkah-langkah pemecahan masalah. Terapan yang terakhir ini merupakan kemampuan dasar yang harus dikuasai dalam bidang kecerdasan buatan (artificial intelligence) K. Representasi Graf dalam Matriks 1. Matriks Ketetanggan (adjacency matrix)
Matriks ketetanggan adalah representasi graf yang paling umum. Misalkan G = (V, E) adalah graf dengan n simpul, n 1. Matriks ketetanggaan G adalah matriks dwimatra yang berukuran n n. Bila matriks tersebut dinamakan A =[aij], maka aij = 1 jika simpul i dan j bertetangga, sebaliknya aij = 0 jika simpul i dan j tidak bertetangga. Karena matriks ketetanggaan hanya berisi 0 dan 1, maka matriks tersebut dinamakan juga matrik nol-matriks (zero-one). Selain dengan angka 0 dan 1, elemen matriks dapat juga dinyatakan dengan nilai false (menyatakan 0) dan true (menyatakan 1). Perhatikanlah bahwa matriks ketetanggaan didasarkan pada pengurutan nomor simpul. Di sini, terdapat n! cara pengurutan nomor simpul, yang berarti ada n! matriks ketetanggaan berbeda untuk graf dengan n simpul. Contoh 5.24 Gambar 5.41 memperlihtkan graf sederhana dengan matriks ketetanggaannya, masing-masing graf terhubung, graf tak-terhubung, dan graf berarah. 1
1
2
1 5
3 3
2
2
3
4
4
4
(a) 1 1 0 2 1 3 1 4 0
(b)
2
3
4
1 0 1 1
1 1 0 1
0 1 1 0
1 1 0 2 1 3 1 4 0 5 0
(c)
2
3
4
5
1 0 1 0 0
1 1 0 1 0
0 0 1 0 0
0 0 0 0 0
1 1 0 2 1 3 1 4 0
2
3
4
1 0 0 1
0 1 0 1
0 1 0 0
Gambar 5.41 memperlihatkan graf sederhana dengan matriks ketetanggaannya, masing-masing graf terhubung, graf tak-terhubung, dan graf berarah. Matriks ketetanggaan untuk graf sederhana dan tidak berarah selalu simetri, sedangkan untuk graf berarah matriks ketetanggaannya belum tentu simetri (akan simetri jika berupa graf berarah lengkap). Selain itu, diagonal utamanya selalu nol karena tidak ada sisi gelang.
Sayangnya,
matriks
ketetanggaan
nol-satu
tidak
dapat
digunakan
untuk
merepresentasikan graf yang mempunyai sisi ganda (graf ganda). Untuk menyiasatinya, maka elemen aij pada matriks ketetanggaan sama dengan jumlah sisi yang berasosiasi dengan (vi, vj). Matriks ketetanggaannya tentu bukan lagi matriks nol-satu. Untuk graf semu, gelang pada simpul vi dinyatakan dengan nilai 1 pada posisi (i, i) di matriks ketetanggaannya. Contoh 5.25 Gambar 8.31 memperlihatkan matriks ketetanggaan untuk graf yang mengandung sisi ganda dan gelang 1 2
3 4
1
2
3
4
1 0 2 1 3 2 4 0
1 0 1 1
2 1 1 2
0 1 2 0
Gambar 5.42 Matriks ketetanggaan untuk graf yang mengandung sisi ganda dan gelang Jumlah elemen matriks ketetanggaan untuk graf dengan n simpul adalah n2. Jika tiap elemen membutuhkan ruang memori sebesar p, maka ruang memori yang diperlukan seluruhnya adalah pn2. Pada matriks ketetanggaan untuk graf tak-berarah simetri, kita cukup menyimpan elemen segitiga atas saja, karena matriksnya simetri, sehingga ruang memori yang dibutuhkan dapat dihemat menjadi
pn 2 . 2
Keuntungan representasi dengan matriks ketetanggaan adalah elemen matriksnya dapat diakses langsung melalui indeks. Selain itu, kita juga dapat menentukan dengan langsung apakah simpul i dan simpul j bertetangga. Derajat tiap simpul i dapat dihitung dari matriks ketetanggaan. Untuk graf takberarah. n
d (vi ) aij j 1
Sedangkan untuk graf berarah
n
din (vj) = jumlah nilai pada kolom j =
a i 1
ij
n
dout (vi) = jumlah nilai pada baris i =
a j 1
ij
Contoh 5.26 Tinjau Graf ketetanggan pada Gambar 5.41 (a) Derajat simpul 2 pada Gambar 5.41 (a) adalah 1 + 0 + 1 + 1 = 3 Derajat simpul 4 pada Gambar 5.41 (a) adalah 0 + 1 + 1 + 0 = 2 (b) Derajat simpul 4 pada Gambar 5.41 (b) adalah 0 + 0 + 1 + 0 + 0 = 1 Derajat simpul 5 pada Gambar 5.41 (b) adalah 0 + 0 + 0 + 0 + 0 = 0 (c) Derajat-masuk simpul pada Gambar 5.41 (c) adalah 1 + 0 + 0 + 1 = 2 Derajat-keluar simpul pada Gambar 5.41 (c) adalah 1 + 0 + 1 + 1 = 3 Contoh 5.27 Untuk graf berbobot, aij menyatakan bobot tiap sisi yang menghubungkan simpul i dengan simpul j. Gambar 5.43 adalah graf berbobot beserta matriks ketetanggaannya. a 10
a
12
e
b 8
15 d
11 14
9 c
a b 12 c d e 10
b
c
d
e
12
9
9
11 14
11 8
14
15
10 8 15
Gambar 5.43 Graf berbobot (kiri) dan (b) matriks ketetanggaannya.
Tanda “” menyatakan bahwa tidak ada sisi dari simpul i ke simpul j atau dari simpul i ke simpul i itu sendiri, sehingga aij dapat diberi nilai tak berhingga. 2. Matrik Bersisian (incidency matrix) Jika matriks ketatanggann menyatakan ketetanggaan simpul-simpul di dalam graf maka matriks bersisian menyatakan kebersisian simpul dengan sisi. Misalnya G = (V, E) adalah graf dengan n simpul dan m buah sisi. Matriks bersisian G adalah matriks dwimatra yang berukuran n m. Baris menunjukkan label simpul, sedangkan kolom menunjukkan label sisinya. Bila matriks tersebut dinamakan A = [aij], maka aij = 1 jika
simpul i bersisian dengan sisi j, sebaliknya aij = 0 jika simpul i tidak bersisian dengan sisi j. Matriks bersisian dapat digunakan untuk merepresentasikan graf yang mengandung sisi ganda atau gelang. Derajat setiap simpul i dapat dihitung dengan menghitung kumlah seluruh eemen pada baris i (kecuali pada graf yang mengandung gelang). Jumlah elemen matriks bersisian adalah nm. Jika tiap elemen membutuhkan ruang memori sebesar p, maka ruang memori yang diperlukan seluruhnya adalah pnm. Contoh 5.28 Gambar
5.44
memperlihatkan
matriks
bersisian
untuk
graf
yang
merepresentasikannya. Jumlah matriks adalah 4 6 = 24. e1 e2
1 e4
2 e3
3 e5 4 e6
Gambar 5.44 Graf (kiri) dan matriks bersisian (kanan)
3. Senarai Ketetanggan (adjacency list) Kelemahan matriks ketetanggaan adalah bila graf memiliki jumlah sisi relative sedikit, karena matriksnya bersifat jarang (sparse), yaitu mengandung banyak elemen nol, sedangkan elemen yang bukan nol sedikit. Ditinjau dari implementasinya di dalam komputer, kebutuhan ruang memori untuk matriks jarang boros karena komputer menyimpan elemen 0 yang tidak perlu. Untuk mengatasi masalah ini, kita menggunakan representasi yang ketiga, yaitu senarai ketetanggaan. Senarai ketetanggaan mengenumerasi simpul-simpul yang bertetangga dengan setiap simpul di dalam graf. Contoh 5.29
Gambar 5.45 memperlihatkan graf tak berarah dan graf berarah beserta senrai ketetanggaannya masing-masing. Gambar 5.41 memperlihtkan graf sederhana dengan matriks ketetanggaannya, masing-masing graf terhubung, graf tak-terhubung, dan graf berarah. 1 2
1
1 5
3 3
2
2
3
4
4
4
Senarai ketetanggaan 1 : 2, 3 2 : 1, 3, 4 3 : 1, 2, 4 4 : 2, 3
Senarai Ketetanggaan 1 : 2, 3 2 : 1, 3 3 : 1, 2, 4 4:3 5:-
(a)
Senarai Ketetanggaan 1:2 2 : 1, 3, 4 3:1 4 : 2, 3
(b)
(c)
Gambar 5.45 tiga buah graf dengan matriks ketetanggaannya masing-masing
Latihan Soal! 1. Hitunglah Jumlah simpul, jumlah sisi, dan derajat masing-masing titik graf berikut! a
b
c
a
b
d f
e
e
d (b) d
(a) a a
b b
b i
e
c c h
b
g
d
a
a
d
d
2. Tentukan apakah graf-graf berikut adalah graf bipartite! e (a)
f (c)
(b) a
b b f
a
c
c f
e
d (d)
c
e
(c)
c
e
d e (e)
e
3. Apakah ada graf bipartite yang terdiri dari: a. 10 simpul yang masing-masing berderajat 3, 3, 3, 5, 6, 6, 6, 6, 6, 6 b. 10 simpul yang masing-masing berderajat 3, 5, 5, 5, 5, 5, 5, 5, 5, 5 c. 12 simpul yang masing-masing berderajat 4, 5, 5, 5, 5, 5, 5, 5, 7, 10, 10, 10 4. Suatu barisan d = (d1, d2, …, dn) disebut grafik jika ada graf sederhana yang terdiri dari n simpul yang masing-masing berderajat d1, d2, …, dn. Apakah barisan berikut ini grafik? a. (2, 3, 3, 4, 4, 5) b. (2, 3, 4, 4, 5) c. (1, 3, 3, 3) d. (2, 3, 3, 4, 5, 6, 7) 5. Berilah contoh graf tidak kosong paling sederhana yang memenuhi kondisi berikut: a. Tidak memiliki simpul berderajat ganjil b. Tidak memiliki simpul berderajat genap c. Memiliki tepat 1 simpul berderajat ganjil d. Memiliki tepat 1 simpul berderajat genap e. Memiliki tepat 2 titik berderajat ganjil f. Memiliki tepat 2 simpul berderajat genap 6. Berapa sisi yang dimiliki oleh Kn? oleh Km,n ? 7. Suatu graf sederhana disebut graf n-reguler bila setiap simpulnya memiliki derajat yang sama, yaitu n? a. Berapa harga n supaya graf Kn adalah graf n-reguler?
b. Berapa harga m dan n supaya graf Km,n adalah n-reguler? c. Berapa jumlah titik yang dimiliki graf 4-reguler yang terdiri dari 10 garis? 8. Jika G adalah graf sederhana yang terdiri dari 15 sisi dan
G
memiliki 13 sisi, berapa
simpul yang ada dalam G ? Secara umum jika graf sederhana G memiliki n simpul dan k sisi, berapa sisi yang dimiliki oleh graf komplemen? 9. Berapa jumlah simpul yang dimiliki oleh suatu graf G jika G memiliki: a. 16 sisi dan semuany berderajat 2. b. 21 garis, 3 simpul berderajat 4, dan sisanya berderajat 3. 10. Misalkan G adalah graf dengan 12 sisi. Misalkan pula G memiliki 6 titik berderajat 3 dan sisanya berderajat kurang dari 3. Tentukan jumlah minimum simpul dalam G! 11. Apakah ada graf sederhana yang terdiri dari 15 simpul dan masing-masing berderajat 5? 12. Tentukan apakah ada graf sederhana dengan 5 simpul yang masing-masing berderajat berikut ini. Jika ada gambarkan graf tersebut. a. 3, 3, 3, 3, 2 b. 1, 2, 3, 4, 5 c. 1, 2, 3, 4, 4 d. 3, 4, 3, 4, 3 e. 0, 1, 2, 2, 3 f. 1, 1, 1, 1, 1 13. Dalam graf berikut, tentukan apakah barisan berikut lintasan, lintasan sederhana, sirkuit, atau sirkuit sederhana. v1
e1
e2
v1
e3
e4 v2
e5
v0 e10 e9 v5
e8
e7 v4
e5
a. v0 e1 v1 e10 v5 e9 v2 e2 v1 b. v4 e7 v2 e9 v5 e10 v1 e3 v2 e9 v5 c. v2
d. v5 v2 v3 v4 v4 v5 e. e5 e8 e10 e3 14. Dalam graf berikut, tentukan apakah barisan berikut merupakan lintasan, lintasan sederhana, sirkuit, atau sirkuit sederhana. v1
v3
e1 e10 v0
e2 v2
e9 e8
e3 e4
e7
e5
v5
e6
v4
a. v1 e2 v2 e3 v3 e4 v4 e5 v2 e2 v1 e1 v0 b. v1 v3 v4 v5 v2 c. v4 v2 v3 v4 v5 v2 v5 d. v0 v5 v2 v3 v4 v2 v1 e. v5 v4 v2 v1 15. Carilah sirkuit Hamilton untuk setiap graf tersebut! v1
v3 v2
v0
b v4
c
a
g
d f
e
v7 v6
h m
v5
i k (b)
(a)
j
16. Tentukan apakah graf-graf berikut memiliki sirkuit Hamilton. Jika tidak, berikan alasannya. Jika memiliki, carilah sirkuit Hamilton tersebut! b
b b
a
a b
c
a e e
d
e
d
a
(b) b
(a) a
b
c d (c) b
a c
d
e
c
d
c
e
d g
f
g (d)
f (e)
e
g
f (f)
17. Tentukan mana diantara pasangan graf berikut yang isomorfik a.
a
b
b’ a’
c’
e f d
c
f’
d’ e’
b.
a d
a’
e
b
d’
c
e’
b’
c’
18. Berapa banyak graf sederhana tidak isomorfik yang terdiri dari 3 titik? 4 titik? Berapa banyak graf sederhana tidak isomorfik yang terdiri dari 5 titik dan 3 garis? 19. Carilah adjacency matrix (matriks ketetanggaan) untuk graf berikut! e1
e1
v1 (a)
v2 e2
v1
v2
(b)
e3
e2 e5
v3
e3
v4
v3 e6
v1 e1
v2
e1
e2
e3 e4
(c)
e5
v1 e3
(d)
v2 e4
v4
v3
v4
e5 v3 e6
20. Tanpa menggambarkan grafnya, tentukan apakah graf yang memiliki matriks ketetanggaan berikut merupakan graf yang terhubung, memiliki titik terasing. Tentukan juga derajat setiap titiknya! a.
1 0 0 0
0 0 2 1
1 1 1 1
2 0 1 0
c.
0 2 1 0
1 0 2 0
0 1 1 1
1 0 0 0
b.
1 0 1
0 1 2
1 2 0
d.
0 2 0
2 1 0
0 0 1
21. Dalam sebuah pesta, sepuluh orang saling berjabat tangan. Tiap orang hanya berjabat tangan satu kali dengan orang lainnya. Hitung jumlah jabat tangan yang terjadi (Petunjuk: modelkan persoalan ini ke dalam graf) 22. Tiga pasang suami istri yang sedang menempuh perjalanan sampai ke sebuah suangai. Disitu mereka menemukan sebuah perahu kecil yang hanya bisa membawa tidak lebih dari dua orang setiap kali penyeberangan. Penyeberangan suangai dirumitkan oleh kenyataan bahwa para sumi sangat pencemburu dan tidak mau meninggalkan istri-istri mereka jika ada lelaki lain. Buatlah sebuah graf untuk menunjukkan bagaimana penyeberangan itu bisa dilakukan. 23. Sebuah graf akan dibentuk dari 25 sisi. Berapa jumlah maksimum simpul di dalam graf sederhana yang dapat dibuat dari 25 buah sisi tersebut? 24. Empat buah tim bola basket mengikuti kejuaraan antar Universitas. Pertandaningan menggunakan sistem round-robin, yaitu setiap tim bertemu dengan tim lainnya satu kali. Misalkan empat tim tersebut dinamai A, B, C, dan D. Gambarkan graf berarah yang menyatakan satu set pertandingan (graf tersebut dinamakan graf turnamentournament graph). 25. Ada n buah komputer yang akan dihubungkan dengan sejumlah kabel, baik secara langsung atau terhubung melalui komputer lannya. Berapa jumlah minimum kabel yang dibutuhkan? 26. Tentukan jumlah simpul pada graf sederhana bila mempunyai 12 sisi dan tiap simpulnya berderajat dua. 27. Tentukan jumlah simpul pada graf sederhana bila mempunyai 20 buah sisi dan tiap simpul berderajat sama. 28. Tunjukkan bahwa derajat maksimum sembarang simpul pada sembarang graf sederhana dengan n simpul adalah n – 1.
29. Berapa jumlah maksimum dan jumlah minimum simpul pada graf sederhana yang mempunyai 12 buah sisi dan tiap simpul berderajat 3? 30. Gambarkan dua buah graf dengan lima buah simpul yang isomorfik? 31. Tinjau graf berbobot di bawah ini. Simpul menyatakan kota, sisi menyatakan sarana transportasi yang menghubungkan kota, dan bobot menyatakan ongkos perjalanan antara dua kota bertetangga. Seorang pedagang berangkat dari kota a dan mengunjungi setiap kota lain tepat sekali dan kembali lagi ke kota a. Gambarkan semua kemungkinan lintasan perjalanan pedagang, lalu tentukan rute perjalanan yang termurah.
b 4 a
5
c
3
6
1 2
2
d
4 f
3 10
e
32. Dalam babak penyisihan kompetensi sepakbola yang menggunakan sistem kompetensi penuh, setiap tim bertanding dengan tim lainnya dua kali. Jika ada 20 tim, berapa banyak pertandingan yang harus diadakan? Graf apa yang terbentuk? 33. Diketahui matriks ketetanggaan (adjacency matrices) dari sebuah graf tidak berarah: 0 1 0 0 1
1
0
0
0 1 1 1
1 1 1 0
1 1 0 1
1 1 0 1 0
34. Gambarkan dua buah graf yang isomorfik yang bersesuaian dengan matriks ketetanggaan di atas. 35. Manakah di antara sepuluh graf karakter di bawah ini yang isomorfik dengan huruf
M?
BAB VI GRAF PLANAR DAN POHON
A. Graf Planar (Graf Bidang) Sebuah graf dikatakan graf planar bila graf tersebut dapat disajikan (secara geometri) tanpa adanya ruas yang berpotongan. Sebuah graf yang disajikan tanpa adanya ruas yang berpotongan disebut dengan penyajian planar/map/peta. Sebuah graf yang tidak dapat disajikan (secara geometri) tanpa adanya ruas yang berpotongan dikenal sebagai graf non planar. Graf yang termasuk planar antara lain : 1. Tree / Pohon 2. Kubus 3. Bidang Empat 4. Bidang Delapan Beraturan Sebuah graf atau multigraf yang dapat digambarkan dalam sebuah ruang atau pada permukaan bidang sehingga sisi-sisinya tidak bersilangan disebut planar. Graf K4, yang mana adalah sebuah graf planar, biasanya digambarkan dengan sisi yang bersilangan seperti ditunjukkan pada gambar
(a)
(b)
Gambar 6.1 Sebuah gambar K4 tanpa sisi-sisi yang bersilangan ditunjukkan pada Gambar 6.1
Contoh 6.1
Gambarkan graf planar yang ditunjukkan pada gambar 6.2 (a) sehingga tidak ada sisi yang bersilangan.
(a)
(b)
Gambar 6.2 Contoh 6.2 Gambarkan graf planar yang ditunjukkan pada Gambar 6.3 (a) sehingga tidak ada sisi yang bersilangan.
(a)
(b)
(c)
(d)
Gambar 6.3 Contoh 6.3 Tentukan setiap graf panar yang ditunjukkan Gambar 6.4 sebagai salah satuL K 4, K2,2, K1,4, K2,3
(a)
(b)
(c)
(d)
Gambar 6.4 Ingat kembali Kn pada graf lengkap dengan n simpul dan K m,n adalah graf bipartisi lengkap dengan m simpul terhubung ke n simpul. (a) K4 karena setiap simpul terhubung ke setiap simpul yang lain. (b) K1,4 karena ini adalah bipartisi dengan m = 1 dan n = 4 (c) K2,2 karena ini adalah bipartisi dengan m = n = 2 (d) K2,3 karena ini adalah bipartisi dengan m = 2 dan n = 3 Rumus Euler Sisi-sisi pada graf bidang membagi bidang dating menjadi beberapa wilayah (region) atau muka (face). Jumlah wilayah pada graf planar dapat dihitung dengan rumus euler sebagai berikut. n–e+f=2 atau f=e–n+2 yang dalam hal ini, e = jumlah sisi n = jumlah simpul Contoh 6.4 Tentukan jumlah simpul n, sisi e dan jumlah wilayah f pada Gambar 6.5
R1
R2
R4
R3
R5 (b)
R6
R2 R1
R1 R 3 R5
R4 (a)
R7 R 2 R3 (c)
R4 R 5
Gambar 6.5 Rumus Euler: a. Gambar 6.5 (a) jumlah simpul = 5, jumlah sisi = 8, jumlah wilayah = 5 dan 5 – 8 + 5 =2 b. Gambar 6.5 (b) n = 12, e = 17, f = 7 dan 12 – 17 + 7 = 2 c. Gambar 6.5 (c) n = 3, e = 6, f = 5 dan 3 – 6 + 5 = 8 Contoh 6.5 Tentukan jumlah simpul n, sisi e, dan jumlah wilayah f pada Gambar 6.6 R 1 Gambar 6.6 Rumus Euler adalah n – e + f = 2 Jumlah simpul (n) = 9 jumlah sisi (e) = 8 jumlah wilayah (f) = 1 Rumus Euler 9 – 8 + 1 = 2 Contoh 6.6 Misalkan graf sederhana planar dan terhubung memiliki 24 buah simpul, masing-masing simpul berderajat 4. Representasi planar dari graf tersebut membagi bidang datar menjadi sejumlah wilayah atau muka. Berapa banyak wilayah yang terbentuk? Penyelesaian: Diketahui n = jumlah wilayah = 24, maka jumlah derajat seluruh simpul = 24 4 = 96. Menurut lemma jabat tangan, jumlah derajat = 2 jumlah sisi, sehingga jumlah sisi = e = jumlah derajat/2 =
96 = 48 2
Dari rumus Euler, n – e + f = 2, sehingga f = jumlah wilayah = 2 – n + e = 2 – 24 + 48 = 26 buah.
Pada graf planar sederhana terhubung dengan f wilayah, n buah simpul, dan e buah sisi (dengan e > 2) selalu berlaku ketidaksamaan berikut: e
3f 2
dan e 3n – 6 Dua ketidaksamaan yang terakhir ini dapat kita buktikan sebagai berikut: setiap daerah pada graf planar dibatasi oleh tiga atau lebih sisi. Jadi, total banyaknya sisi lebih besar atau sama dengan 3f. Tetapi, karena suatu sisi berada pada batas paling banyak dua wilayah, maka total banyaknya sisi lebih kecil atau sama dengan 2e. Jadi 2e 3f atau 2e f 3
Berdasarkan rumus Euler, kita peroleh n–e+
2e 2 3
atau e 3n – 6 Ketidaksamaan yang terakhir dinamakan ketidaksamaan Euler, yang dapat digunakan untuk menunjukkan keplanaran suatu graf sederhana (kalau graf planar, maka ia memenuhi ketidaksamaan Euler, sebaliknya jika tidak planar maka ketidaksamaan tersebut tidak dipenuhi). Jika G adalah graf sederhana terhubung dengan e adalah jumlah sisi dan v adalah jumlah simpul, yang dalam hal ini v 3, maka berlaku ketidaksamaan Euler e 3v – 6 Contoh 6.7 Lihat Gambar 6.7
(a) K4
(b) K5
(c) K 3,3
Gambar 6.7 (a) Grf Lengkap K4, (b) K5 dan (c) Graf Bipartit K3,3 Pada Graf K4 (Gambar 6.7 (a)), n = 4, e = 6, memenuhi 6 3(4) – 6. Dengan kata lain, K4 adalah graf planar. Pada Graf K5 (Gambar 6.7 (b)) tidak planar dengan ketidaksamaan Euler. Pada graf K5, n = 5 dan e = 10. K5 tidak memenuhi pertidaksamaan Euler sebab 10 3(5) – 6. Hal ini menunjukkan bahwa K5 tidak planar. Graf K3,3 (Gambar 6.7(c)) memenuhi ketidaksamaan Euler tersebut, e = 9, n = 6 9 (3)(6) – 6 = 12 (jadi e 3n – 6) Untuk menunjukkan graf K3,3 bukan graf planar, kita membuat asumsi bahwa setiap wilayah pada graf bidang dibatasi oleh paling sedikit empat buah sisi (jadi, bukan 3 sisi seperti pembuktian ketidaksamaan di atas). Dengan demikian, total banyaknya sisi lebih besar atau sama dengan 4f. Tetapi, karena suatu sisi berada pada batas paling banyak dua wilayah, maka total banyaknya sisi lebih kecil atau sama dengan 2e. Jadi, 2e 4f atau e f 2
Berdasarkan rumus Euler, kita memperoleh ne
e 2 2
e 2n - 4 Graf K3,3 tidak memenuhi ketidaksamaan e 2n – 4, karena e = 9, n = 6 9 (2)(6) – 4 = 8 salah yang berarti K3,3 bukan graf planar. B. Pewarnaan Graf
Ada tiga macam persoalan pewarnaan graf (graf colouring), yaitu pewarnaan simpul, pewarnaan sisi, dan pewarnaan wilayah (region). Pewarnaan simpul adalah memberi warna pada simpul-simpul di dalam graf sedemikian sehingga setiap dua simpul bertetangga mempunyai warna yang berbeda. Di dalam persoalan pewarnaan graf, kita tidak hanya sekedar mewarnai simpulsimpul dengan warna berbeda dari warna simpul tetangganya saja, namun kita juga menginginkan jumlah macam warna yang digunakan sedikit mungkin. lihat Gambar 6.8 merah biru hijau ungu merah merah hijau
hijau
Gambar 6.8 Pewarnaan simpul, setiap simpul mempunyai warna yang berbeda Empat warna sudah cukup untuk mewarnai 8 simpul. Jumlah warna yang dapat digunakan untuk mewarnai simpul disebut bilangan kromatik graf G, disimbolkan dengan (G). Sutu graf G yang mempunya bilangan kromatis k dilambangkan dengan (G) = k. Jadi Graf pada Gambar 6.8 memiliki (G) = 4, sedangkan pada Gambar 6.9 memiliki (G) = 3 merah hijau
biru hijau
biru
hijau
merah
Gambar 6.9 Tiga buah warna sudah cukup untuk mewarnai graf ini (G) = 3 C. Pohon (Tree) 1. Definisi Pohon (Tree) Pohon (tree) adalah graf tak-berarah terhubung yang tidak mengandung sirkuit.
Menurut definisi pohon di atas, ada dua sifat penting pada pohon: terhubung dan tidak mengandung sirkuit. Pada Gambar 6.10, hanya G1 dan G2 yang pohon, sedangkan G3 dan G4 bukan pohon karena ia tidak terhubung (dalam hal ini sisi (a, f) dn (b, e) karena titik silangnya bukan menyatakan simpul). a
b c
a
d
e
b c
f
d
e
G1
f G2
a c e G3
b
a
d
c
f
e
b d f G4
Gambar 6.10 G1 dan G2 adalah pohon, sedangkan G3 dan G4 bukan pohon. Contoh 6.8 Misalkan himpunan V = {a, A, b, B, c, C, d, D} adalah empat pasangan suami-istri tukang gosip, dengan a, b, c, dan d para suami, dan A, B, C, dan D para istri. Misalkan a menceritakan gossip lewat telpon kepada istrinya A, yang kemudian A menelpon pada istri lainnya untuk menyebarkan gosip itu, dan setiap istri itu menelpon dan menceritakan gosip kepada suami masing-masing. Pohon pada Gambar 6.11 menunjukkan bagaimana gosip tersebut tersebar, dengan simpul menyatakan istri/suami dan sisi menyatakan panggilan telpon. B a
A
C
b c
D
d
Gambar 6.11 Pohon Penyebran gosip Karena definisi pohon diacu dari teori graf, maka sebuah pohon dapat mempunyai hanya sebuah simpul tanpa sebuah sisipun. Dengan kata lain, jika G = (V, E) adalah
G1
pohon, maka V tidak boleh berupa himpunan kosong, namun E boleh kosong. Dapat diperlihatkan pada Gambar 6.12
Gambar 6.12. G1 merupakan pohon walaupun mempunyai satu titik simpul. Beberapa pohon dapat membentuk hutan. Hutan (forest) adalah kumpulan pohon yang saling lepas. Kita dapat juga menyatakan bahwa hutan adalah graf tak terhubung yang tidak mengandung sirkuit, yang dalam hal ini setiap komponen di dalam graf terhubung tersebut adalah pohon. Gambar 6.13 berikut adalah hutan yang terdiri dari 3 buah pohon
Gambar 6.13 Hutan yang terdiri dari tiga buah pohon. Contoh 6.9 Tentukan mana di antara graf pada Gambar 6.14 yang merupakan Pohon atau Hutan! v1 v4 v2
v3
v4 v 5 v 6
v7
v5 v 2 v6 v1
v8
v7
(a)
v3 (b)
v1
v7
v1
v2
v4
v6
v4 v3 v2
v8
v5 v8
v5
v8 v3
v7
v6 (b)
(d)
v9
Gambar 6.14 Penyelesaian: a. Merupakan pohon karena terhubung dan tidak memuat sirkuit b. Merupakan pohon Karena terhubung dan tidak memuat sirkut. Perhatikan bahwa sebenarnya graf pada Gambar 6.14(a) sama dengan graf pada Gambar 6.14(b) meskipun tampaknya berbeda. Suatu pohon tidak harus memiliki bentuk graf yang menyerupai tanaman (ada akar dan cabang-cabang). c. Bukan merupakan pohon merupakan suatu sirkuit. d. Merupakan suatu hutan karena tidak memuat sirkuit dan tidak terhubung. Hutan tersebut terdiri dari 2 komponen yang masing-masing merupakan suatu pohon. Contoh 6.10 Tentukan daun dan titik cabang pohon pada Gambar 6.14(a)! Penyelesaian: Pada Gambar 6.14 (a), d(v1) = d(v3) = 2; d(v2) = 3; d(v4) = d(v5) = d(v6) = d(v7) = d(v8) = 1 Dengan demikian, daunnya adalah v4, v5, v6, v7, dan v8, sedangkan titik cabangnya adalah v1, v2 dan v3. 2. Sifat-sifat Pohon Sifat-sifat (properties) pohon dinyatakan di bawah ini Misalkan G = (V, E) adalah graf tak-berarah sederhana dan jumlah simpulnya n. Maka, semua pernyataan di bawah ini ekuivalen: a. G adalah pohon b. Setiap pasang simpul dalam G terhubung dengan lintasan tunggal. c. G terhubung dan memiliki m = n – 1 buah sisi d. G tidak mengandung sirkuit dan memiliki m = n – 1 e. G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya satu sirkuit. f. G terhubung dan semua sisinya adalah jembatan (jembatan adalah sisi yang bila dihapus menyebabkan graf terpecah menjadi dua komponen)
Semua butir pernyataan di atas juga dapat dianggap sebagai definisi lain dari pohon. Kita juga dapat membuktikan bahwa hutan F dengan k komponen mempunyai m = n – k buah sisi. Contoh 6.11 Sebuah pohon mempunyai 2n buah simpul berderajat 1, 3n buah simpul berderajat 2, dan n buah simpul berderajat 3. Tentukan banyaknya simpul dan sisi di dalam pohon itu. Penyelesaian: Menurut Lemma Jabat tangan, jumlah derajat semua simpul di dalam graf adalah 2 kali jumlah sisi di dalam graf tersebut. Jadi, (2n 1) + (3n 2) + (n 3) = 2E 11n = 2E ….(1) Jumlah sisi pada sebuah pohon adalah jumlah simpul minus satu, jadi E = (2n + 3n + n) – 1 = 6n – 1 …… (2) persamaan (2) dimasukkan ke persamaan (1) 11n = 2(6n - 1) = 12n – 2 n = 2 Jadi, jumlah simpul pada pohon = 6n = 6 2 = 12 dan jumlah sisi = 6n – 1 = 11 3. Pohon Merentang Pohon Merentang (Spanning Tree) merupakan salah satu kasus khusus pohon yang memiliki banyak aplikasi, terutama pada bidang Riset Operasi. Pohon merentang suatu graf terhubung G adalah subgraf G yang merupakan pohon dan memuat semua simpul pada graf G, dan sisi-sisi pada pohon T sisisisi pada graf G. Gambar 6.15 adalah graf lengkap dengan empat buah pohon yang merentang. (coba anda temukan seluruh pohon merentang lainnya).
G
T1
T2
T3
T4
Gambar 6.15 Graf lengkap G empat buah pohon merentangnya T1, T2, T3 dan T4 Aplikasi pohon merentang misalnya pada pemeliharaan jalan raya. Misalkan graf G pada Gambar 6.15 adalah pet jaringan jalan raya yang menghubungkan empat buah kota. Karena dana pemeliharaan yang terbatas, pemerintah daerah mempertimbangkan hanya memelihara jalan-jalan sedikit mungkin sedemikian sehingga keempat kota masih tetap terhubung satu sama lain. Masalah ini dapat dipecahkan dengan membuat upagraf yang mengandung jumlah sisi minimum dan mengandung semua simpul di dalam graf. Graf semacam itu haruslah pohon merentang. Contoh 6.12 Carilah semua pohon merentang yang mungkin dibuat dari graf G yang tampak pada Gambar 6.16. v1
v4
v2
v3
v5
v6
Gambar 6.16 Penyelesaian Graf G memiliki satu sirkuit, yaitu v1 v2 v5 v4. Untuk membuat pohon merentang, salah satu garis dalam sirkuit itu harus dihilangkan agar menjadi pohon. Oleh karena satu-satunya sirkuit adalah v1 v2 v5 v4 yang memuat 4 garis, sehingga untuk menjadi pohon cukup dihilangkan satu garis, maka ada 4 pohon merentang
yang mungkin dibuat. Keempat pohon merentang tersebut tampak pada Gambar 6.17 (a) – (d) v 1 v2
v4
v5
v6
v 3 v1
v 2
v3 v1
v2
v4
v 5 T2 (b)
v6 v4
v5
T1 (a)
v3
T3 (c)
v1
v2
v 6 v4
v5
v3
v6
T4 (d)
Gambar 6.17 Setiap graf yang terhubung pasti memuat paling sedikit satu pohon rentang. Kenyataan itu dapat ditunjukkan melalui cara membuat pohon rentang dari grafnya. 4. Pohon Biner Pohon Biner (Binary Tree) adalah pohon berakar yang setiap simpulnya memiliki paling banyak 2 anak, yang disebut Anak Kiri (left Child) dan Anak Kanan (right child). Pohon biner penuh (Full Binary Tree) adalah pohon biner yang setiap simpulnya memiliki tepat 2 anak. Pohon Biner banyak digunakan dalam ilmu komputer untuk menyatakan ekspresi aljabar maupun untuk pencarian dan pengurutan data (searching and sorting). Untuk menyatakan ekspresi aljabar dalam pohon biner, dilakukan cara berkut: Setiap operand/operator dalam ekspresi aljabar bersesuaian dengan satu titik dalam pohon biner. Kedua operand dalam operasi biner merupakan anak dari operatornya. Sebagai contoh, ekspresi aljabar
x y
dapat dinyatakan dalam pohon
biner sebagai: Contoh 6.13 Nyatakan ekpresi aljabar ke dalam pohon biner a.
x yz
b.
x z y
c. ( x y ) z
u v
Penyelesaian: /
x
+ /
+
y
+
z
z
* -
y
x
z
a. Dalam ekspresi
x yz
u
v
y
x
(a) Gambar 6.18
/
(b)
(c)
, operasi y+z dilakukan terlebih dahulu sebelum operasi
pembagian sehingga pohon biner yang sesuai dapat dinyatakan dalam Gambar 6.18(a). b. Dalam operasi
x z, y
operasi pembagian dilakukan terlebih dahulu sebelum
operasi penjumlahan. Pohon biner yang sesuai pada Gambar 6.18(b). Perhatikan perbedaan pohon biner pada Gambar 6.18(a) dengan 6.18(b). c. Pohon biner yang sesuai tampak pada Gambar 6.18(c) Latihan Soal 1. Di antara begitu banyak kamar/ruangan di sebuah rumah tua yang besar, ada hantu disetiap kamar/ruangan yang jumlah pintunya genap. Jika rumah tua itu hanya mempunyai satu pintu masuk, buktikan bahwa seorang yang masuk dari luar selalu bisa mencapai sebuah kamar/ruangan yang tidak ada hantunya. 2. Misalkan G adalah graf dengan 11 buah simpul atau lebih. Tunjukkan bahwa G tidakplanar. 3. Tunjukkan bahwa suatu graf planar terhubung dengan 6 simpul dan 12 buah sisi, setiap wilayahnya (region) dibatasi oleh tiga buah sisi. 4. Manakah di antara graf berikut yang merupakan pohon? (a)
(d)
(b)
(c)
(e)
(f)
5. Carilah semua titik daun dan cabang graf berikut ini. v2 v1
v3
v5
v1
v4
v2
v4 v3
v7
v5
v6 v7
v6
(a)
v8
(b)
6. Berapa derajat total pohon yang terdiri dari n titik? 7. Sebuah pohon memiliki 2n titik berderajat 1, 3n titik berderajat 2., dan titik berderajat 3. tentukan banyaknya garis (sisi) dalam pohon tersebut! 8. Berapa banyak titik berderajat 1 yang ada dalam suatu pohon jika pohon tersebut memiliki a. 2 simpul berderajat 2, 1 simpul berderajat 3 dan 3 simpul berderajat 4. b. n2 titik berderajat 2, n3 titik berderajat 3, … dan nk titik berderajat k. 9. Dalam sol berikut, tentukan apakah graf dengan spesifikasi yang diberikan ada. Jika tidak ada, jelaskan alasannya! a. Pohon terdiri dari 9 simpul dan 9 garis (sisi) b. Graf terhubung terdiri dari 9 simpul dan 9 sisi c. Graf tanpa sirkuit terdiri dari 9 simpul dan 6 sisi. d. Pohon terdiri dari 6 titik dan derajat totalnya 14. c b e. Pohon terdiri dari 5 titik dan derajat totalnya 8. c
a a b e d a b 10. Berapa banyak pohon rentang yang bisa dibuat dari graf berikut? d
f
(a) a
v0 c
(d)
d
(b) b
d
e
v2 (e)
c (c)
v1
v3
b
11. Apakah ada pohon dengan derajat titik berikut ini? Jika ya, gambarkanlah. Jika tidak, jelskan alasannya. a. (1, 1, 2, 2, 3, 3) b. (1, 1, 1, 1, 2, 2, 3, 3) c. (1, 1, 1, 1, 2, 2, 2, 3, 3) d. (1, 1, 1, 1, 2, 2, 2, 3, 5) 12. Tunjukkan bahwa jumlah derajat semua simpul di dalam pohon dengan n simpul adalah 2n – 2. 13. Tunjukkan bahwa sebuah pohon biner teratur mempunyai sejumlah ganjil simpul. 14. Gambarkan semua pohon rentang dari graf lengkap dengan empat buah simpul. 15. Berapa banyak sisi harus dibuang dari graf terhubung dengan n buah simpul dan m buah untuk menghasilkan pohon rentang