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 obyek-obyek agar lebih mudah
dimengerti. Beberapa contoh graf yang sering dijumpai dalam kehidupan
sehari-hari antara lain: struktur organisasi, bagan alir pengambilan
mata kuliah, peta, rangkaian listrik, dan lain-lain. Graf struktur
sebuah organisasi dan peta beberapa daerah tampak pada Gambar 1 dan
Gambar 2.
Tiap-tiap diagram memuat sekumpulan obyek (kotak, titik, dan lain-lain) beserta garis-garis yang menghubungkan obyek-obyek tersebut. Garis bisa berarah ataupun tidak berarah. Garis yang berarah biasanya digunakan untuk menyatakan hubungan yang mementingkan urutan antar objek-objek. Urut-urutan objek akan mempunyai arti yang lain jika arah garis diubah. Sebagai contoh adalah garis komando yang menghubungkan titik-titik struktur sebuah organisasi. Sebaliknya, garis yang tidak berarah digunakan untuk menyatakan hubungan antar objek-objek yang tidak mementingkan urutan. Sebagai contoh adalah garis untuk menyatakan jarak hubung 2 kota pada Gambar 2. Jarak dari kota A ke kota B sejauh 200 km akan sama dengan jarak dari kota B ke kota A. Apabila jarak 2 tempat tidak sama jika dibalik (misalnya karena harus melalui jalan memutar), maka garis yang digunakan haruslah garis yang berarah.
Dalam materi ini, graf akan dibahas secara teoretis, baik graf secara umum maupun Tree (pohon) yang merupakan kasus khusus graf yang banyak dipakai dalam ilmu komputer. Terminologi yang dipakai dalam teori graf tidak baku. Dalam buku yang berbeda, sebuah simbol mungkin menyatakan beberapa hal yang berbeda. Hal ini bisa dimaklumi mengingat luasnya aplikasi graf dalam berbagai bidang. Dalam materi ini, diusahakan agar definisi-definisi maupun simbol-simbol yang digunakan merupakan definisi-definisi dan simbol-simbol yang biasa dipakai.
Dasar-Dasar Graf
Definisi 1
Suatu graf G terdiri dari 2 himpunan yng berhingga, yaitu himpunan titik-titik tidak kosong (simbol V(G)) dan himpunan garis-garis (simbol E(G)).
Setiap garis berhubungan dengan satu atau dua titik. Titik-titik tersebut dinamakan Titik Ujung. Garis yang hanya berhubungan dengan satu titik ujung disebut Loop. Dua garis berbeda yang menghubungkan titik yang sama disebut Garis Paralel.
Dua titik dikatakan berhubungan (adjacent) jika ada garis yang menghubungkan keduanya. Titik yang tidak mempunyai garis yang berhubungan dengannya disebut Titik Terasing (Isolating Point)
Graf yang tidak mempunyai titik (sehingga tidak mempunyai garis) disebut Graf Kosong.
Jika semua garisnya berarah maka graf-nya disebut Graf Berarah (Directed Graph, atau sering disingkat Digraph). Jika semua garisnya tidak berarah, maka graf-nya disebut Graf Tak Berarah (Undirected Graph). Dalam materi ini, jika hanya disebutkan graf saja, maka yang dimaksud adalah graf tak berarah.
Kadang-kadang suatu graf dinyatakan dengan gambar. Gambar suatu graf G terdiri dari himpunan titik-tilik V(G), himpunan garis-garis E(G) yang menghubungkan titik-titik tersebut (beserta arah garis pada graf berarah), dan label pada garisnya (jika ada). Panjang garis, kelengkungan garis, dan letak titik tidak berpengaruh dalam suatu graf.
Contoh 1
Ada 7 kota (A,...,G) yang beberapa di antaranya dapat dihubungkan secara langsung dengan jalan darat. Hubungan-hubungan langsung yang dapat dilakukan adalah sebagai berikut:
A dengan B dan D
B dengan D
C dengan B
E dengan F
Buatlah graf yang menunjukkan keadaan transportasi di 7 kota tersebut.
Penyelesaian :
Misalkan kota-kota dianggap sebagai titik-titik. Dua titik/kota dihubungkan dengan garis bila dan hanya bila ada jalan yang menghubungkan langsung kedua kota tersebut. Dengan demikian, keadaan transportasi di 7 kota dapat dinyatakan dalam Gambar 3.
Dalam graf tersebut e1 berhubungan dengan titik A dan B (keduanya disebut titik ujung e1). Titik A dan B dikatakan berhubungan, sedangkan titik A dan C tidak berhubungan karena tidak ada garis yang menghubungkannya secara langsung.
Titik G adalah titik terasing karena tidak ada garis yang berhubungan dengan G. Dalam interpretasinya, kota G merupakan kota yang terasing karena tidak dapat dikunjungi dari kota-kota lain dengan jalan darat.
Dalam graf tak berarah, garis e dengan titik ujung (v,w) menyatakan suatu garis yang menghubungkan titik v dengan titik w. Dalam graf berarah, garis tersebut menyatakan garis dari titik v ke titik w.
Dengan diketahuinya graf, maka himpunan garis, titik serta titik-titik ujungnya adalah tunggal. Tetapi hal ini tidak berlaku sebaliknya. Dengan diketahuinya himpunan garis, titik dan titik-titik ujung garis, maka dapat dibentuk beberapa graf yang “berbeda”. Perbedaan graf-graf tersebut terletak pada panjang garis, kelengkungan garis, dan posisi titik yang berbeda antara satu graf dengan graf yang lainnya.
Tetapi karena visualisasi titik dan garis (panjang garis, kelengkungan posisi titik dan lain-lain) tidak berpengaruh, maka graf-graf tersebut merupakan graf yang sama meskipun secara visual tampak berbeda.
Contoh 2
Gambarlah graf G dengan titik dan garis berikut ini
V(G) = {v1, v2, v3, v4}
E(G) = {e1, e2, e3, e4, e5}
Titik-titik ujung garis adalah :
Garis Titik Ujung
e1 {v1,v3}
e2 {v2,v4}
e3 {v1}
e4 {v2,v4}
e5 {v3}
Penyelesaian :
Ada banyak graf yang dapat dibentuk. Semua graf tersebut sebenarnya menggambarkan objek yang sama, tetapi tampak berbeda karena letak titik, panjang garis dan kelengkungannya berbeda. Dua di antara graf-graf tersebut tampak pada Gambar 4 dan 5
Graf juga banyak dipakai untuk membantu menyelesaikan masalah-masalah yang berhubungan dengan Kecerdasan Buatan (Artificial Intelligence), seperti dalam contoh 3, yang merupakan suatu teka-teki yang banyak dipakai sebagai ilustrasi. Dalam hal ini, graf digunakan untuk menyatakan hubungan-hubungan yang terjadi di antara objek-objek. Dengan cara itu, deduksi ke kesimpulan akan lebih mudah dibuat.
Contoh 3
Ada sebuah pulau yang penghuninya hanya terdiri dari 2 macam yaitu : pemakan orang (cannibal) dan pemakan sayuran (vegetarian). Pada mulanya, ada 2 orang pemakan orang dan 2 orang pemakan sayuran di sisi barat sungai. Di sisi barat itu pula terdapat sebuah perahu kecil yang hanya dapat menampung paling banyak 2 orang. Masalahnya adalah bagaimana cara mengangkut keempat orang tersebut ke sisi timur sungai. Syaratnya adalah : jumlah pemakan manusia pada suatu sisi sungai tidak boleh lebih banyak dari jumlah pemakan sayuran di sisi yang sama, karena hal itu akan menyebabkan pemakan manusia akan memakan pemakan sayuran.
Penyelesaian:
Suatu cara penyelesaian yang sistematis adalah dengan menggambarkan semua kemungkinan keadaan, dan kemudian menghilangkan bagian-bagian yang tidak mungkin terjadi karena tidak memenuhi kendala yang diisyaratkan.
Misalkan simbol s menyatakan pemakan sayuran, o menyatakan pemakan orang, P menyatakan perahu dan simbol "/" menyatakan sungai. Dengan menggunakan simbol tersebut maka ssoP/o berarti suatu keadaan di mana di sisi barat sungai (di sebelah kiri simbol /) ada 2 orang pemakan sayuran dan satu orang pemakan orang, sedangkan di sisi timur sungai ada seorang pemakan orang. Perahu ada di sisi barat sungai.
Semua kemungkinan keadaan di sungai tersebut dapat digambarkan pada Gambar 6 (sumbu mendatar menyatakan jumlah pemakan sayur di timur sungai dan sumbu tegak menyatakan jumlah pemakan orang di timur sungai). Pada suatu titik tertentu, ada 2 kemungkinan posisi perahu (P), yaitu di kiri sungai atau di kanan sungai.
Selanjutnya, dihilangkan keadaan-keadaan yang tidak mungkin terjadi:
a. Karena jumlah pemakan orang (o) di suatu sisi sungai tidak boleh lebih banyak dari jumlah pemakan sayurnya (s), maka titik-titik : s/Psoo, sP/soo, soo/Ps, sooP/s harus dihilangkan
b. Perahu harus berada pada sisi sungai yang ada orangnya. Jika tidak demikian, maka tidak ada orang yang dapat menyeberang. Oleh karena itu, harus dihilangkan titik-titik ssoo/P dan P/ssoo
Dengan adanya beberapa titik yang dihilangkan tersebut, maka didapatkan keadaan yang dinyatakan pada Gambar 7
Dari titik-titik yang tersisa, dibuat garis-garisnya. Suatu garis menghubungkan 2 buah titik yang dapat dicapai satu dari yang lainnya. Sebagai contoh, titik ssoP/o dapat dihubungkan dengan titik o/Psso karena dari titik ssoP/o, perahu dapat mengangkut 2 orang pemakan sayur (s) ke sisi kanan sungai, sehingga didapatkan titik o/Psso. Kondisi ini juga berlaku sebaliknya. Dari titik o/Psso, perahu dapat mengangkut 2 orang pemakan sayur ke kiri sungai sehingga didapatkan titik ssoP/o. Dengan penambahan semua garis yang mungkin dibuat, maka didapatkan graf yang dinyatakan pada Gambar 8.
Untuk menyelesaikan masalah tersebut, berarti harus dicari jalur (garis) yang menghubungkan titik ssooP/ (perahu dan semua orang yang terlibat berada di barat sungai) dengan titik /Pssoo (perahu dan semua orang yang terlibat berada di timur sungai)
Dari Gambar 8 didapatkan 2 kemungkinan jalur yaitu :
ssooP/ ss/Poo ssoP/o o/Psso ooP/ss /Pssoo
atau:
ssooP/ so/Pso ssoP/o o/Psso ooP/ss /Pssoo
Graf Tak Berarah
Berdasarkan jenis garis-garisnya, graf dibedakan dalam 2 kategori yaitu Graf Tak Berarah (Undirected Graph) dan Graf Berarah (Directed Graph = Digraph).
Graf Bipartite
Definisi 2
Graf Sederhana (Simple Graph) adalah graf yang tidak mempunyai loop ataupun garis paralel.
Contoh 4
Gambarlah semua graf sederhana yang dapat dibentuk dari 4 titik {a, b, c, d} dan 2 garis
Penyelesaian :
Sebuah garis dalam graf sederhana selalu berhubungan dengan 2 buah titik. Karena ada 4 titik, maka ada garis yang mungkin dibuat, yaitu garis-garis yang titik-titik ujungnya adalah {a, b}, {a, c}, {a, d}, {b, c}, {b, d}, dan {c,d}.
Dari keenam garis yang mungkin tersebut, selanjutnya dipilih 2 di antaranya. Jadi ada ( 6 2 ) = 6! / 2! 4! = 15 buah graf yang mungkin dibentuk. Graf-graf tersebut dapat dilihat pada Gambar 9.
Definisi 3
Graf Lengkap (Complete Graph) dengan n titik (simbol Kn) adalah graf sederhana dengan n titik, di mana setiap 2 titik berbeda dihubungkan dengan suatu garis.
Teorema 1
Banyaknya garis dalam suatu graf lengkap dengan n titik adalah n(n-1) / 2 buah
Bukti
Misalkan G adalah suatu graf lengkap dengan n titik v1, v2,..., vn.
Ambil sembarang titik (sebutlah v1). Karena G merupakan graf lengkap, maka v1 dihubungkan dengan (n-1) titik lainnya (v2, v3, ... , vn). Jadi ada (n-1) buah garis.
Selanjutnya, ambil sembarang titik kedua (sebutlah v2). Karena G adalah graf lengkap, maka v2 juga dihubungkan dengan semua titik sisanya (v1, v3, ..., vn), sehingga ada (n-1) buah garis yang berhubungan dengan v2. Salah satu garis tersebut menghubungkan v2 dengan v1. Garis ini sudah diperhitungkan pada waktu menghitung banyaknya garis yang berhubungan dengan v1. Jadi, ada (n-2) garis yang belum diperhitungkan.
Proses dilanjutkan dengan menghitung banyaknya garis yang berhubungan dengan v3, v4, ..., vn-1 dan yang belum diperhitungkan sebelumnya. Banyak garis yang didapat berturut-turut adalah : (n-3), (n-4), ...,3,2,1.
Jadi secara keseluruhan terdapat (n-1) + (n-2) + (n-3) + ... + 2 + 1 = n(n-1) / 2 buah garis.
Contoh 5
Gambarlah K2, K3, K4, K5, dan K6 !
Penyelesaian :
Kadang-kadang, titik-titik dalam suatu graf dapat dipecah menjadi 2 bagian, di mana titik-titik dalam satu bagian dihubungkan dengan titik-titik di bagian yang lain. Dengan demikian, graf terlihat seolah-olah "terpisah" menjadi 2 bagian.
Definisi 4
Suatu graf G disebut Graf Bipartite apabila V(G) merupakan gabungan dari 2 himpunan tak kosong V1 dan V2, dan setiap garis dalam G menghubungkan suatu titik dalam V1 dengan titik dalam V2.
Apabila dalam Graf Bipartite, setiap titik dalam V1 berhubungan dengan setiap titik dalam V2, maka graf-nya disebut Graf Bipartite Lengkap.
Jika V1 terdiri dari m titik dan V2 terdiri dari n titik, maka Graf Bipartite Lengkapnya sering diberi simbol Km,n.
Contoh 6
Tentukan mana di antara graf-graf berikut ini yang merupakan graf Bipartite dan Bipartite lengkap.
Penyelesaian :
a. Jelas bahwa titik-titik graf-nya terbagi menjadi 2 bagian yaitu V1 = {v1, v2, v3} dan V2 = {v4, v5}. Setiap titik dalam V1 dihubungkan dengan setiap titik dalam V2. Maka graf-nya merupakan K3,2.
b. Hanya merupakan graf bipartite saja karena titik-titik dalam graf terbagi menjadi 2 bagian, yaitu V1 = {v1, v3} dan V2 = {v2, v4}. Akan tetapi, tidak semua titik dalam V1 dihubungkan dengan semua titik dalam V2 (v1 tidak dihubungkan dengan v4).
c. Dengan pengaturan letak titik-titiknya, maka graf Gambar 11 (c) dapat digambarkan sebagai graf pada Gambar 12.
Tampak bahwa titik-titiknya terbagi menjadi 2 bagian yaitu V1 = {v1, v3, v5} dan V2 = {v2, v4, v6}. Setiap garis menghubungkan sebuah titik dalam V1 dengan sebuah titik dalam V2, sehingga graf-nya merupakan graf bipartite
d. Perhatikan bahwa meskipun tampak berbeda, sebenarnya graf pda Gambar 11 (d) sama dengan graf Gambar 11 (a), sehingga graf Gambar 11 (d) adalah K3,2.
Posisi titik-titik dalam penggambaran graf kadang-kadang mempengaruhi pandangan, seperti halnya pada contoh (c) dan (d). Dalam kedua graf tersebut, semua titik tampaknya terhubung dan tidak dapat dipisahkan walaupun kenyataannya tidaklah demikian. Oleh karena itu, harus jeli dalam menentukan apakah suatu graf merupakan Graf Bipartite.
sumber : http://ovieciinduts.blogspot.com/2012/01/teori-graf.html
1 komentar:
wah, kaga mudeng pak yg kayak ginian mah hehehe... ikut nyimak aja deh :)
Posting Komentar