Graph, termasuk struktur non linear, yang oleh beberapa buku literatur didefinisikan sebagai berikut :



dokumen-dokumen yang mirip
Struktur. Bab 6: 4/29/2015. Kompetensi Dasar. Mahasiswa mendapatkan pemahaman mengenai cara kerja dan penyajian graph

STRUKTUR DATA: GRAPH. Program Studi S-1 Informatika, FMIPA Unsyiah

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Data Structure GRAPH. Chapter 8. Dahlia Widhyaestoeti, S.Kom

Denny Setyo R. Masden18.wordpress.com

Representasi Graph Isomorfisme. sub-bab 8.3

TEKNIK INFORMATIKA. Teori Dasar Graf

Linked List 6.3 & 7.3 NESTED LOOP

BAB II LANDASAN TEORI

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

CRITICAL PATH. Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5. Graph G. Alternatif

A. TUJUAN PEMBELAJARAN

BAB II TINJAUAN PUSTAKA

Diktat Algoritma dan Struktur Data 2

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Pertemuan 11 GRAPH, MATRIK PENYAJIAN GRAPH

Graf. Program Studi Teknik Informatika FTI-ITP

Kode MK/ Matematika Diskrit

graph 3/12/2013 struktur data by andi arfian 1

BAB II LANDASAN TEORI

IKI 20100: Struktur Data & Algoritma

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. Secara garis besar ilmu statistik dibagi menjadi dua bagian yaitu:

Bagaimana merepresentasikan struktur berikut? A E

GRAF. V3 e5. V = {v 1, v 2, v 3, v 4 } E = {e 1, e 2, e 3, e 4, e 5 } E = {(v 1,v 2 ), (v 1,v 2 ), (v 1,v 3 ), (v 2,v 3 ), (v 3,v 3 )}

x 6 x 5 x 3 x 2 x 4 V 3 x 1 V 1

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Graf dan Pengambilan Rencana Hidup

APLIKASI PEWARNAAN SIMPUL GRAF UNTUK MENGATASI KONFLIK PENJADWALAN MATA KULIAH DI FMIPA UNY

Graf. Matematika Diskrit. Materi ke-5

BAB 2 TINJAUAN PUSTAKA

Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Demak Semarang. Kend al. Salatiga.

GRAF. Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

BAB II TINJAUAN PUSTAKA. Pada bab ini diberikan definisi-definisi, istilah-istilah yang digunakan dalam

LATIHAN ALGORITMA-INTEGER

BAB 2 LANDASAN TEORI

BAB III ANALISA DAN PERANCANGAN

BAB 2 TINJAUAN PUSTAKA

Algoritma dan Struktur Data. Click to edit Master subtitle style Konsep Tree

Pemanfaatan Directed Acyclic Graph untuk Merepresentasikan Hubungan Antar Data dalam Basis Data

TIPE DATA ABSTRAK MENGGUNAKAN BAHASA C

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

= himpunan tidak-kosong dan berhingga dari simpul-simpul (vertices) = himpunan sisi (edges) yang menghubungkan sepasang simpul

Pencarian Lintasan Hamilton Terpendek untuk Taktik Safe Full Jungle Clear dalam Permainan League of Legends

BAB 2 LANDASAN TEORI

Graph. Politeknik Elektronika Negeri Surabaya

Graph. Rembang. Kudus. Brebes Tegal. Demak Semarang. Pemalang. Kendal. Pekalongan Blora. Slawi. Purwodadi. Temanggung Salatiga Wonosobo Purbalingga

Studi dan Implementasi Struktur Data Graf

Struktur dan Organisasi Data 2 G R A P H

PENDAHULUAN MODUL I. 1 Teori Graph Pendahuluan Aswad 2013 Blog: 1.

BAB II LANDASAN TEORI

MODUL PRAKTIKUM STRUKTUR DATA

Konsep graph Struktur data graph Implementasi graph dengan matriks dan linked list dalam Bahasa C

BAB II LANDASAN TEORI

G r a f. Pendahuluan. Oleh: Panca Mudjirahardjo. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.

BAB 1 PENDAHULUAN. Siklus kehidupan adalah suatu rangkaian aktivitas secara alami yang dialami oleh

Analogi Pembunuhan Berantai Sebagai Graf Dalam Investigasi Kasus

BAB 2 LANDASAN TEORI

PEWARNAAN GRAF SEBAGAI METODE PENJADWALAN KEGIATAN PERKULIAHAN

SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013. Graf Berarah

BAB 2 LANDASAN TEORI. Algoritma adalah urutan atau deskripsi langkah-langkah untuk memecahkan suatu masalah.

TEORI GRAF DALAM MEREPRESENTASIKAN DESAIN WEB

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

Discrete Mathematics & Its Applications Chapter 10 : Graphs. Fahrul Usman Institut Teknologi Bandung Pengajaran Matematika

TUGAS KELOMPOK STRUKTUR DATA. (Yuniasyah) GRAPH

Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

ALGORITMA DAN STRUKTUR DATA

BAB 2 TINJAUAN PUSTAKA

Graf. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.

BAB II LANDASAN TEORI

Aplikasi Pohon Merentang Minimum dalam Rute Jalur Kereta Api di Pulau Jawa

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Aplikasi Teori Graf dalam Manajemen Sistem Basis Data Tersebar

BAB II LANDASAN TEORI

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

BAB 2 LANDASAN TEORI

Pemrograman Algoritma Dan Struktur Data

Data Structure TREE & BINARY TREE. Chapter 5b. Dahlia Widhyaestoeti, S.Kom

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

LOGIKA DAN ALGORITMA

Bab 2 LANDASAN TEORI

TEORI DASAR GRAF 1. Teori Graf

BAB II TINJAUAN PUSTAKA. masing-masing tepat satu kali dan kembali lagi ke tempat semula?

7. PENGANTAR TEORI GRAF

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Pohon Biner (Bagian 1)

Aplikasi Shortest Path dengan Menggunakan Graf dalam Kehidupan Sehari-hari

VERTEX EXPONENT OF A TWO-COLOURED DIGRAPH WITH 2 LOOPS ABSTRACT

Preorder Tree Traversal

Minimum Spanning Trees algorithm

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Graf Sosial Aplikasi Graf dalam Pemetaan Sosial

LIST. Dewi Sartika, M.Kom

TINJAUAN PUSTAKA. Pada bab ini akan diberikan beberapa definisi, istilah istilah yang berhubungan dengan materi

PENERAPAN ALGOITMA DIJKSTRA DALAM MENCARI LINTASAN TERPENDEK PADA JARINGAN KOMPUTER

Transkripsi:

ab Graph, termasuk struktur non linear, yang oleh beberapa buku literatur didefinisikan sebagai berikut : graph, G, consists of two sets V and. V is a finite non-empty set of vertices. is a set of pairs of vertices, these pairs are called edges. llis Horowitz, Sartaj Sahni, Fundamentals of ata Structures graph consists of a set of nodes (or vertices) and a set of arcs ( or edges). ach arc in a graph is specified by a pair of nodes. arn M. Tenebaum, ata Structures Using and ++ ari definisi diatas dapat disimpulkan, bahwa graph adalah kumpulan dari simpul dan busur yang secara matematis dapat dinyatakan sebagai berikut : imana : G = (V, ) G = Graph, V = Simpul atau Vertex, atau Node, atau Titik. = usur atau dge, atau arc. ontoh sebuah graph v Simpul = Titik, Node atau Vertex. isini diambil istilah Vertex (dilambangkan dengan V). alam gambar diilustrasikan dengan lingkaran V = { v, v,.., v5 e e e v aca : V terdiri dari v, v, v5. Matematik : V adalah himpunan dengan anggota v, v, v,.v5 v usur = rc, dge isini diambil istilah dge (dilambangkan dengan ) e e 5 e 6 v v 5 Gambar. a ontoh sebuah Graph e 7 = { e, e,., e7 atatan : usur sebenarnya hanyalah sebuah kejadian (incidence) dimana dua dua buah simpul mempunyai hubungan satu sama lain. Sehingga dapat dikatakan, busur adalah dua buah simpul yang berpasangan. Untuk menyatakan dua buah simpul berpasangan, maka dalam gambar diilustrasikan dengan sebuah garis yang mengubungkan kedua buah simpul tersebut. Jadi sebenarnya secara fisik garis itu tidak ada. Untuk menyatakan sebuah busur yang merupakan pasangan simpul v dan v biasanya ditulis sebagai berikut : e v,v atau e, atau (,)

Sebuah graph mungkin hanya terdiri dari satu simpul (Gambar-. b) Sebuah graph belum tentu semua simpulnya terhubung dengan busur (Gambar-. c) alam sebuah graph mungkin saja ada simpul yang tak terhubung dengan simpul lainnya oleh busur (Gambar-.d) alam sebuah graph kemungkinan semua simpul saling berhunbungan (Gambar-. e) Gambar. b Gambar. c Gambar. d Gambar.e Full connected Graph.. Graph Tak erarah dan Graph erarah. ilihat dari bentuk busur (baca: urutan penyebutan pasangan dua buah simpul), graph dapat dibedakan menjadi macam :. Graph Tak erarah (undirected graph atau non-directed graph), dan. Graph berarah (directed graph atau sering ditulis digraph) ontoh graph tak berarah (Gambar-.) dan graph berarah (Gambar-.). v v e e e 9 e 8 e v e v v e e e v e e 5 e 7 e e 5 e 7 e 6 Gambar. ontoh sebuah Graph Tak erarah v v 5 e 6 Gambar. ontoh sebuah Graph erarah v v 5 Graph tak berarah (undirected graph atau non-directed graph). Pada graph tak berarah, urutan simpul dalam sebuah busur, tidak dipentingkan. Sehingga pada busur e, dapat disebut busur, atau,. Hal ini dapat diidentikkan dengan sebuah jalan yang yang menghubungkan dua buah titik, yang dapat dilalui dari dua arah. Pada Gambar. terlihat bahwa dari dapat ke, dan dari dapat ke melalui jalan yang sama. Graph berarah (directed graph). Pada graph berarah, urutan simpul mempunyai arti. Pada Gambar., telihat busur, adalah busur e. Sedangkan busur, adalah busur e8. Hal ini dapat diidentikkan, kalau dari ke hanya dapat menggunakan jalan e, sedangkan dari ke hanya menggunakan jalan e8. Pada Gambar. juga terlihat tidak ada jalan langsung dari simpul ke simpul.

.. Graph erbobot (Weighted Graph). pabila setiap busur mempunyai sebuah nilai yang menyatakan hubungan antara dua buah simpul, maka busur tersebut dikatakan mempunyai bobot, dan graph disebut graph berbobot atau weighted graph. obot sebuah busur dapat menyatakan panjang sebuah jalan antara dua buah titik, atau jumlah rata-rata kendaraan per hari yang melalui sebuah jalan atau mungkin saja selisih nilai antara dua buah simpul dan sebagainya. ontoh graph berbobot diperlihatkan pada Gamabr-. dan Gambar-.5 5 8 6 5 8 7 6 Gambar. ontoh sebuah Graph berbobot Tak erarah Gambar.5 ontoh sebuah Graph berbobot erarah atatan : alam penggambaran sebuah graph berbobot, panjang busur (baca : bobot hubungan antara dua buah simpul) mungkin tidak digambarkan secara panjang yang proporsional dengan bobotnya. Misal, ada kemungkinan 5 digambarkan lebih panjang dari 7. Hal ini biasa dalam teknis penggambaran... Graph Sederhana (Simple Graph), dan Graph Tak Sederhana (complex graph). Graph sederhana adalah graph yang mempunyai busur (baca : hubungan antara dua buah simpul) paling banyak hanya satu macam. Graph pada Gambar-., Gambar-., Gambar-., Gambar-.5 adalah contoh graph sederhana, baik berarah atau tak berarah, berbobot atau tak berbobot. pabila dalam suatu graph ada paling sedikit dua buah simpul yang mempunyai hunbungan lebih dari satu macam, atau ada busur yang membentuk loop (busur yang keluar dari dan masuk ke simpul yang sama), atau yang menyatakan hubungan didalam simpul itu sendiri, maka graph tersebut dikatakan graph tidak sederhana (complex graph), atau sering juga disebut multi graph, seperti yang dicontohkan pada Gambar-.6. a b c d Gambar-.6 Graph Tidak Sederhana 5

.. Sub Graph. Sub graph adalah bagian dari graph. ahkan graph itu sendiri merupakan sub graph dari dirinya sendiri. erikut ini dicontohkan hanya untuk graph sederhana tak berbobot dan tak berarah seperti pada Gamabr-.7. a. Graph G. b. Graph G c. Graph G d. Graph G Keterangan Gambar-.7. : e. Graph G Gambar-.7 f. Graph G5 G merupakan sub graph dari graph G. G merupakan sub graph dari G sehingga G juga merupakan sub graph dari graph G G dan G merupakan subgraph yang membentuk struktur pohon sehingga disebut Spanning Tree. Spanning Tree adalah sub graph yang membentuk pohon dengan jumlah simpul sama dengan yang dimiliki oleh graph aslinya. Tree adalah graph tanpa cycle. (pengertian cycle, lihat keterangan berikutnya) G, G5 juga merupakan sub graph dengan jumlah simpul yang lebih sedikit dari dari jumlah simpul graph aslinya. ari ilustrasi diatas, terlihat bahwa :. Jumlah simpul suatu subgraph mungkin sama atau mungkin juga lebih sedikit dari jumlah simpul graph aslinya. Secara matematik dinyatakan : V V. Jumlah busur suatu sub graph selalu lebih sedikit dari jumlah busur graph aslinya, yang aslinya, yang secara matematik dinyatakan 6 dengan :

.5. Full onnected Graph. Suatu graph disebut full connected graph (graph terhubung penuh) apabila setiap simpul dalam graph tersebut saling berhubungan seperti yang digambarkan pada Gambar-.8 berikut ini Pada graph full connected, berlaku : m = n(n-) / Gambar.8 Full onnected Graph imana : n = jumlah simpul, dan m = jumlah busur Terlihat : Untuk jumlah simpul n = 5, maka jumlah busur m = 5(5-)/ = ontoh Soal.. Sebuah graph dengan buah simpul. itanya: a. erapa maksimum jumlah busur b. erapa minimum jumlah busur. Jawab :a. Maksimum jumlah busur = 6 (sama dengan jumlah busur pada full connected) b. Minimum jumlah simpul =. maksimum jumlah busur = 6 minimum jumlah busur = minimum jumlah busur = minimum jumlah busur =. Sebuah graph full connected dengan simpul eberapa jumlah busur yang ada? Jawab : Jumlah busur = / n (n-) = / * * (-) = 6. Untuk simpul Jumlah busur = 6. Sebuah graph dengan n simpul a eberapa maksimum jumlah busur? Jawab : / n (n-) b erapa minimum jumlah busur? Jawab : n - 7

Sebuah graph full connected dengan n simpul. erapa jumlah busur? Jawab : / n ( n - ) Sebuah Graph terdiri dari 75 busur. erapa minimum jumlah simpul? Jawab : Jumlah busur maksimum = ½ n ( n - ) Jadi : 75 < ½ n (n-) 5 < n (n-) Menggunakan tabel mungkin lebih praktis sbb: Jumlah simpul (n) 5 6 7 8 9 Maximum jumlahbusur (=full connected) ( n(n-)/ 6 5 8 6 5 55 66 75 berada disini diantara 66 dan 78 Secara matematis mencari nilai n disini agak sulit sbb: dengan trial and error didapat n = karena *=56 dan benar 5 < 56 Jadi n = Jadi jumlah simpul tak mungkin, karena kalau n = maka jumlah busur paling banyak 66. Untuk jumlah busur = 75, maka n bisa,, 5,.., 76 Yang mimimum adalah 78 9 Jadi jumlah simpul minimum = atau minimum n = 6. Sebuah graph terdiri dari 75 busur erapa maksimum jumlah simpul? Jawab : Jumlah simpul maksimum = 75 + = 76 tidak mungkin lebih dari 76 Perhitungan : 75 = n - n = 76 75 Jumlah busur = 75 75 76 Jumlah simpul Maksimum = 76 8

.6. eberapa Istilah pada Graph. eberapa istilah atau pengertian yang digunakan pada graph.. Incident. pabila e merupakan busur dengan simpul-simpulnya adalah v dan w yang ditulis e=(v,w), maka v dan w disebut terletak pada e, dan e disebut incident dengan v dan w v e w Gambar-.9. egree (derajat), indegree dan outdegree. egree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut. Pada Gambar -, degree simpul atau v =. an degree simpul atau v =. Sedangkan pada Gambar-. degree simpul atau v = 5. Indegree sebuah simpul pada graph berarah, adalah jumlah busur yang kepalanya (head) incident pada simpul tersebut, atau dapat dikatakan jumlah busur yang masuk atau menuju simpul tersebut. Outdegree sebuah simpul pada graph berarah, adalah jumlah busur yang buntutnya (tail) incident pada simpul tersebut, atau dapat dikatakan jumlah busur yang keluar atau berasal dari simpul tersebut. Pada Gambar-. outdegree = indegree simpul adalah dan. djacent. Pada graph tak berarah, dua buah simpul disebut adjacent bila ada busur yang menghubungkan kedua simpul tesebut Pada Gambar-.a simpul v dan simpul w disebut adjacent. v v e v e e 5 e e w e e 7 e v 6 v 5 Gambar. Graph Tak erarah e e 9 8 e e e e 5 v e e e v 6 v 5 Gambar. Graph erarah e 7 Gambar-.a v v Pada graph berarah, sebuah simpul v disebut adjacent dengan simpul w, ( v is adjacent to w) apabila ada busur dari w ke v. Pada Gambar-.b simpul v adjacent dengan simpul w.. Successor dan Predecessor. Pada graph berarah, v e w Gambar-.b bila simpul v adjacent dengan simpul w, lihat Gambar-.b, maka disebut simpul v adalah successor (pengganti atau pelanjut) simpul w, dan simpul w adalah predecessor (pendahulu) dari simpul v 9

5. Path. Sebuah path adalah serangkaian ( a sequence) simpul-simpul yang berbeda, yang adjacent secara berturut turut dari simpul satu ke simpul berikutnya. Gambar-. a, menggambarkan path dari simpul ke simpul pada graph tak berarah, sedangkan Gambar. b, menggambarkan path pada graph berarah. a b Gambar-.. 6. ycle. ycle adalah path yang terdiri dari sekurang-kurangnya simpul sedemikian rupa simpul yang terakhir adjacent dengan simpul pertama. Gambar-. c, menggambarkan cycle buah simpul pada graph tak berarah, sedangkan c d irected ycle Gambar-. d, menggambarkan cycle pada graph berarah. ycle sering juga diterjemahkan menjadi path yang melingkar, atau path yang membuat suatu lingkaran..7. Representasi Graph. alam pemrograman, agar data data yang ada dalam graph dapat diolah, maka graph harus dinyatakan dalam suatu struktur data yang dapat mewakili graph tersebut. alam hal ini graph perlu direpresentasikan kedalam bentuk array dua dimensi yang sering juga disebut matrix, atau direpresentasikan dalam bentuk linked-list. entuk mana yang dipilih, biasanya tergantung kepada efisiensi dan kemudahan dalam membuat program. erikut ini beberapa bentuk representasi graph : I. Representasi graph dalam bentuk matrix :. djacency Matrix. Inverse djacency Matrix (hanya unuk Graph erarah). Insidence Matrix. Vector Matrix II. Representasi graph dalam bentuk Linked List :. djanency List. Inverse djacency List (Hanya untuk Graph erarah)

.7.. Reprersentasi Graph dalam bentuk Matrix.7... djacency Matrix Graph Tak erarah (Undirected Graph) Gambar. a Graph Gambar. b djacency Matrix Setiap elemen matrix diisi dengan angka atau angka. ngka, menyatakan ada hubungan (ada busur) atau adjacent antara dua buah Simpul. ontoh : angka pada elemen (,) menyatakan ada hubungan antara Simpul dan Simpul Matrix yang digambarkan pada Gambar-. b merupakan representasi dalam bentuk djacency Matrix dari graph yang digambarkan pada Gambar-. a. eberapa hal yang dapat dilihat atau dapat diterangkan pada djacency Matrix tersebut adalah sebagai berikut :. Matrix yang terbentuk adalah matrix bujur sangkar n * n, dimana n = jumlah simpul yang ada dalam graph tersebut. Matrix ini menyatakan hubungan antara simpul satu dengan simpul lainnya (simpul-simpul yang adjacent ).. Matrix yang terbentuk adalah matrix symetris dengan sumbu symetris adalah diagonal dari titik kiri atas ke titik kanan bawah. Lihat Gambar-. Terlihat bagian matrix sebelah atas sumbu symetris sama dengan bagian matrix sebelah bawah sumbu symetris.. ata yang terdapat baik dalam row maupun column, dapat menyatakan degree sebuah simpul. ontoh : baik row (row ) maupun column (column ) jumlah angka sama dengan buah. Ini menyatakan bahwa degree simpul adalah =. Lihat Gambar-. a dan Gambar- b, Gambar. djacency Matrix sumbu symetris Gambar. a djacency Matrix Gambar. b Graph

Representasi djacency Matrix dalam ahasa / ++. NmS Untuk menyatakan simpulsimpul dibuatkan sebuah array yang berisi nama atau identitas simpul : har NmS [5] = ; Gambar.5a Graph Gambar.5 b djacency Matrix Untuk Matrix dapat dibuat dengan : Perhatikan Gambar-.5 a.,,, dan adalah Nama Simpul, atau Nomor Simpul atau Identitas Simpul yang dapat disimpan dalam array satu dimensi tipe karakter sebagai berikut : char NmS [5] = ; Untuk merepresentasikan graph.5a menjadi djacency Matrix dapat dibuat dengan instruksi sebagai berikut : tau dengan : int [5][5] = {,,,,,,,,,,,,,,,,,,,,,,,, ; int [5][5] = {,,,,,,,,,,,,,,,,,,,,,,,, ; ila ingin menggunakan tipe karakter (char), dapat ditulis sebagai berikut : tau dengan : char [5][5] = {,,,, ; ila dibuat dengan tipe char maka untuk menyatakan nilai harus menggunakan tanda kutip. Sebagai contoh : if( [i][j] == ) char [5][5] = {,,,, ;

.7... djacency Matrix Graph erarah (irected Graph) ke Gambar.6 a Graph erarah dari, Gambar.6 b djacency Matrix Graph erarah ari simpul ada dua busur yang keluar. Satu menuju simpul dan satu lagi menuju simpul Tidak ada busur yang keluar dari simpul Matrix yang digambarkan pada Gambar-.6 b merupakan adjacency matrix dari graph berarah yang digambarkan pada Gambar-.6 a. eberapa hal yang dapat dilihat atau dapat diterangkan pada adjacency matrix tersebut adalah sebagai berikut :. Matrix yang terbentuk adalah matrix bujur sangkar n * n, dimana n = jumlah simpul yang ada dalam graph tersebut. Matrix ini menyatakan hubungan satu arah antara simpul satu dengan simpul lainnya.. Matrix yang terbentuk mungkin symetris mungkin juga tidak symetris. Menjadi symetris bila hubungan antara dua buah simpul (v dan v) terdapat busur dari v ke v dan juga terdapat busur dari v ke v.. Hal pokok yang ingin dinyatakan oleh matrix ini adalah : usur yang keluar dari suatu simpul. engan demikian, data yang terdapat dalam suatu row, dapat menyatakan outdegree simpul yang bersangkutan. ontoh : Jumlah elemen yang nilainya = pada row (row ) ada elemen, ini menyatakan outdegree simpul =. Lihat Gambar-.7c ke dari Gambar.7 a Gambar.7 b outdegree simpul =, Gambar.7 c Outdegree simpul = Yang keluar dari simpul ada busur yaitu menuju simpul, simpul dan simpul. (lihat elemen yang berisi nilai )

. ata yang terdapat dalam suatu column, dapat menyatakan indegree simpul yang bersangkutan. ontoh : Jumlah elemen yang nilainya = pada column (column ) ada elemen, ini menyatakan indegree simpul =. Lihat Gambar-.8c ke dari, Gambar.8 a Gambar.8 b indegree simpul = Gambar.8 c indegree simpul = Yang menuju simpul ada busur yaitu dari simpul dan dari simpul (lihat elemen yang berisi nilai ).7... Inverse djacency Matrix Graph erarah (irected Graph) Menuju ke dari Hanya ada satu busur yang menuju simpul yaitu yang dari simpul. Gambar.9 a Graph erarah, Gambar.9 b djacency Matrix Graph erarah da tiga busur yang menuju simpul yaitu dari simpul, dan Matrix yang digambarkan pada Gambar-.9 b merupakan Inverse adjacency matrix dari graph berarah yang digambarkan pada Gambar-.9 a. Hal pokok yang ingin dinyatakan oleh matrix ini adalah : busur yang menuju ke suatu simpul. Perbedaan pokok dengan adjacency matrix adalah :. ata yang ada dalam suatu row, menyatakan indegree, dan. ata yang ada dalam column, menyatakan outdegree.

.7... djacency Matrix Graph erbobot Tak erarah (Weighted Undirected Graph) 5 8 Gambar. a ontoh sebuah Graph berbobot Tak erarah 6 5 999 999 5 999 999 8 6 999 8 999 6 Nilai yang ada dalam tiap elemen matrix, menyatakan bobot busur yang menghubungkan dua buah simpul yang bersangkutan. Untuk dua buah simpul yang tidak berhubungan langsung atau tidak dihubungkan langsung oleh sebuah busur, maka dianggap dihubungkan oleh sebuah busur yang nilai bobotnya tidak terhingga. alam pemrograman, karena keperluan algoritma, maka untuk menyatakan nilai tak terhingga, dapat digunakan sebuah nilai yang dipastikan lebih besar dari total bobot seluruh busur yang ada atau yang mungkin ada. ontoh lihat Gambar-.. Simpul dan simpul tidak berhubungan langsung melalui sebuah busur, maka untuk elemen matrix yang bersangkutan diisi dengan nilai 999, karena nilai 999 dalam kasus ini dianggap cukup mewakili nilai tak terhingga..7..5. Incidence Matrix Graph Tak erarah. v e e v e 5 e e e 7 e v 6 v 5 Gambar. a Graph Tak erarah v Gambar. b djacency Matrix Graph berbobot Tak berarah., Incidence matrix ini dengan ukuran n * m ( n = jumlah simpul, dan m = jumlah busur) merepresentasikan hubungan antara simpul dengan busur, e e e e e5 e6 5 Gambar. c Incidence Matrix e7 6 e e e e e5 e6 5 Gambar. b Incidence Matrix e7 6 Simpul berhubungan dengan simpul dan simpul, masing-masing dengan bobot busur = 5 dan. Matrix n * m usur yang ada hubungan dengan simpul adalah busur : e, e, dan e. Terlihat dalam row (baris) terdapat buah angka artinya : ari Simpul busur, yaitu e, e, dan e n = jumlah simpul, dan m = jumlah busur keluar buah Simpul yang dihubungkan oleh busur e adalah simpul dan. Terlihat : Kolom suatu Incidence Matrix memperlihatkan hubungan antara dua buah simpul. (hanya dua buah simpul) Sehingga : alam suatu kolom selalu ada dua angka 5

ontoh Program - : Mencetak busur terpendek 5 5 999 999 5 999 NmS 8 6 999 8 6 999 8 999 6 Gambar. a ontoh sebuah Graph berbobot Tak erarah Gambar. b djacency Matrix Graph berbobot Tak berarah. Sudah dibuat awal program untuk menyimpan (merepresentasikan) graph berbobot seperti pada Gambar-. a kedalam bentuk djacency Matrix seperti Gambar-. b. sebagai berikut : #include<stdio.h> #include<stdlib.h> void main() { int [5][5] = {,5,999,,999, 5,,,999,, 999,,,8,6,,999,8,,, 999,,6,, ; char NmS[5] = ; // Nama, atau Nomor, atau Identitas Simpul Soal- : Lengkapi program diatas untuk mencetak busur yang paling pendek, serta berapa panjang busurnya. ila busurnya lebih dari satu buah, maka sebutkan nama busurnya satu per satu. Untuk menyebutkan nama busur maka yang disebut adalah nama Simpul- sal dan Simpul-Tujuan. ila program nda benar, maka harus tercetak : adalah panjang busur yang terpendek, dan adalah nama busurnya Jawab : int I, J, rs, Kol, Min; Min = ; // anggapan tidak ada busur // yang panjangnya >= for(i=; I<=; I++) { for(j=; J<=; J++) { if([i][j]!= && [I][J]!= 999) { if(x < Min) { Min = X; rs = I; Kol = J; printf( \n %i, Min); printf( \n %c %c, NmS[rs], NmS[Kol]); Minyimpan index aris di rs dan index Kolom di Kol Program ini masih kurang lengkap karena hanya mencetak nama busur terpendek yang pertama kali ditemui yaitu. Sedangkan busur berikutnya, tidak ikut dicetak. Program yang benar lihat halaman berikutnya. 6

Mencetak semua busur yang terpendek : int I, J, Min; Min = ; // anggapan tidak ada busur // yang panjangnya >= for(i=; I<=; I++) { for(j=; J<=; J++) { if( [I][J]!= && [I][J]!= 999) { if( [I][J] < Min) { Min = [I][J]; printf( \n %i, Min); for(i=; I<=; I++) { for(j=; J<=; J++) { if ([I][J] == Min) { printf( \n %c %c, NmS[I], NmS[J] ); Mencetak nilai terkecil Mencetak busur sebanyak nilai terkecil yang ada dalam matrix Soal- : Lengkapi program diatas untuk mencetak hubungan antar simpul. ila program nda benar, maka harus tercetak : :, : : : : : menyatakan bahwa Simpul- ada hubungan dengan Simpul- dan Simpul- 5 8 6 Jawab : Mencetak Hubungan ntar Simpul : Gambar. a ontoh sebuah Graph berbobot Tak erarah int I, J; for(i=; I<=; I++) { printf( \n %c :, NmS[I] ); for(j=; J<=; J++) { if( [I][J]!= && [I][J]!= 999) { printf( %c, NmS[J] ); 7

.7..6. Vector Matrix Graph Tak erarah. v e e e 5 v e e e 7 v e e e e 7 5 6 Simpul berhubungan dengan busur : e, e, dan e7 e v 6 v 5 Gambar. a Graph Tak erarah, 6 7 Gambar. b Vector Matrix Vector Matrix ini merepresentasikan hubungan simpul dan busur dengan cara lain, yang berbeda dengan Incidence Matrix. Ukuran matrixnya : n * (n-) engan n = jumlah simpul, dan (n-) = jumlah maksimum busur yang mungkin incedence dengan sebuah simpul.7..7. Soal-soal Latihan Mandiri.. Gambarkan adjacency matrix graph berikut ini : a b. Gambarkan graph yang adjacency matrixnya diberikan sebagai berikut : a b 8

.7.. Representasi Graph alam entuk Linked-List...7... djacency List Graph Tak erarah. Perhatikan graph Gambar-. a dan djacency List Gambar-. b berikut ini : e e e e e5 e6 e7 Gambar. a Graph tak erarah Gambar. b djacency List Graph Tak erarah igambarkan secara sederhana Graph pada Gambar-.a, bila ingin direpresentasikan dalam bentuk Linked-List, dapat diilustrasikan secara sederhana seperti pada Gambar-. b. ari ilustrasi sederhana tersebut terlihat ada 5 buah simpul,,,, dan yang dibariskan dari atas ke bawah seperti Gambar. a. Kemudian dari masing-masing simpul keluar pointer ke arah kanan yang menunjuk simpul-simpul lain. Salah satu contoh, yang digambar ulang pada Gambar. b, dimana terlihat simpul menunjuk simpul dan simpul. PSimpul PSimpul Perhatikan Gambar-. a. da 5 buah simpul, sampai, yang dalam djacency List digambar urut abjad. Perhatikan Gambar-. b. Simpul berhubungan dengan simpul dan simpul. alam djacency List, simpul ditulis lebih dulu dari simpul, sesuai dengan urutan abjad. Gambar. a Gambar. b Kedua hal diatas merupakan kesepakatan dalam menggambar simpul-simpul dalam djacency List. Sama halnya dengan aplikasi pada djacency Matrix. 9

Gambar djacency List yang digambarkan pada Gambar-. b. hanyalah sebagai ilustrasi hubungan simpul-simpul secara konsep. Hubungan sebenarnya yang dinyatakan dalam sebuah program dapat dilihat pada Gambar.5 berikut ini : PVertex PVertex Pdge ua simpul ini inamai : Simpul-dge e e Left INFO Right Gambar.5 c Struktur Simpul Struct tipes { struct tipes *Left; int INFO; struct tipes *Right; ; Struct tipes *, *PVertex, *Pdge; Gambar-.5 a Simpul-Vertex Instruksi membuat struktur Simpul Gambar-.5 b Pada djacency List, kita perlu membedakan antara Simpul-Vertex dan Simpul- dge. Simpul-Vertex untuk menyatakan simpul atau Vertex, dan Simpul-dge untuk menyatakan hubungan antar simpul yang biasa disebut busur. Struktur keduanya bisa sama, bisa juga tidak sama, tergantung kebutuhan. Untuk memudahkan pembuatan program, struktur kedua macam simpul dibuat sama seperti yang digambarkan pada Gambar-.5 c. Yang membedakan antara Simpul-Vertex dan Simpul-dge, adalah anggapan terhadap simpul tersebut. alam contoh ini, terlihat struktur simpul dibuat terdiri dari elemen. Satu elemen untuk INFO, dan dua elemen untuk pointer. Pointer disebelah kiri disebut Pointer Left, dan pointer disebelah kanan disebut Pointer Right. ila simpul dianggap sebagai Simpul-Vertex, maka : Pointer Left digunakan untuk menunjuk simpul berikutnya dalam untaian simpul-simpul yang ada, atau diisi NULL bila sudah tidak ada simpul yang perlu ditunjuk. Sedangkan Pointer Right digunakan untuk menunjuk Simpul-dge yang pertama. ila simpul dianggap sebagai Simpul-dge, maka : Pointer Left digunakan untuk menunjuk Simpul-Vertex tujuan yang berhubungan dengan Simpul-Vertex asal, dan Pointer Right digunakan untuk menunjuk Simpul-dge berikutnya bila masih ada, atau niisi NULL bila tak ada lagi Simpul-usur yang ditunjuk..

Perhatikan bagian representasi graph yang diambil dari representasi graph Gambar-.5 b sebelumnya, sebagai berikut : e PVertex Pdge ua buah Simpul-dge ini menunjukkan bahwa ada dua busur yang keluar dari Simpul. e e e Gambar.5 d Graph tak erarah Pointer ini diperlukan hanya untuk menujuk simpul berikutnya, dalam suatu untaian simpul secara keseluruhan ukan menyatakan hubungan busur antar simpul Pointer ini menunjuk simpul pertama yang berhubungan dengan simpul, dalam hal ini adalah Simpul- Gambar.5 e Hubungan Simpul an usur Pointer ini menunjuk simpul ke-dua yang berhubungan dengan simpul, dalam hal ini adalah Simpul- Pointer ini berisi NULL yang menyatakan tidak ada lagi busur dari. Gambar.5 ea Graph tak erarah PVertex e e5 Pdge e6 ontoh Soal : Susun penggalan program untuk mencetak nama nama simpul yang berhubungan dengan simpul PVertex = ; while(pvertex->info!= && PVertex->Left!= NULL ) {PVertex = PVertex->Left; if(pvertex->info == ) { if(pvertex->right == NULL) { printf( Simpul tidak berhubungan dengan ); printf( simpul lain ); else { Pdge = PVertex; while (Pdge->Right!= NULL ) { Pdge = Pdge->Right; printf( %c, Pdge->Left->INFO) ; else printf( Simpul Tidak da ); kan tercetak : e e5 e6 Gambar.5 f agian dari djacency List Graph tak erarah Instruksi : printf( %c, Pedge->Left->INFO); yang akan mencetak : atau atau

Kembali kita perhatikan gambar graph dan djacency List yang digambar ulang sebagai berikut : PVertex Pdge e e e e Gambar.6 a Graph tak erarah Kita tinjau hubungan Simpul dengan Simpul dan Simpul-, seperti terlihat pada graph Gambar-.6 a. agaimana hubungan ini dinyatakan dalam bentuk djacency List. Pada Gambar-.6 b terlihat pointer Right Simpul, yaitu PVertex->Right menunjuk sebuah Linked List yang terdiri dari dua buah simpul. Pointer Left dari simpul pertama menunjuk Simpul, dan Pointer Left simpul ke-dua menunjuk Simpul. Ini menyatakan Simpul berhubungan dengan Simpul dan Simpul. Gambar-.6 b Terlihat dalam djacency List ini Simpul ada hubungan dengan Simpul dan Simpul. Hubungan dinyatakan dengan melalui dua buah Simpul-usur. Untuk Simpul- yang berhubungan dengan Simpul-, dan, djacency List, dapat digambarkan seperti pada Gambar-.7 b e e e PVertex Pdge ila pointer Q dan pointer R menunjuk simpul seperti pada Gambar.7b, maka Q->Left menunjuk simpul dan R->Left menunjuk Q R e e e Gambar.7 a Graph tak erarah Gambar-.7 b

Selengkapnya dapat digambarkan sebagai berikut : PVertex Pdge e e e e e5 e6 e e e e e e7 e e5 e6 Gambar.8 a Graph tak erarah e e5 e7 e e6 e7 Selanjutnya gambarnya dapat disederhanakan seperti Gambar.9 a atau bahkan cukup dengan Gambar-.9 b Gambar.8 b Linked-List Graph erbobot Tak berarah digambarkan secara lengkap e e e e e e e5 e6 e e5 e7 e e6 e7 Gambar.9 a Linked-List Graph Tak berarah Tak berbobot Gambar.9 b djacency List Graph Tak erarah igambarkan secara sederhana

.7... djacency List Graph erbobot Tak erarah jacency List Graph Tak erarah, sama dengan adjacency List Graph erarah dimana arah busurnya selalu pberpasangan. ila ada busur dari ke, harus ada juga busur dari ke. djacency List Graph Tak erarah diperlihatkan pada Gambar -7 b berikut ini : 5 8 7 5 5 8 8 7 7 Gambar.7 Graph erbobot Tak erarah Gambar.8 djacency-list Graph erbobot Tak berarah PVertex Pdge digambarkan secara sederhana 5 5 8 8 7 7 Gambar.9 djacency-list Graph erbobot Tak berarah digambarkan secara lengkap

.7... djacency List Graph erarah dan erbobot 6 5 5 9 6 9 7 7 Gambar. a Graph erarah an berbobot Gambar. b djacency-list Graph erarah an erbobot igambarkan secara sederhana Graph pada Gambar-. a, bila ingin direpresentasikan dalam bentuk djacency List, dapat diilustrasikan secara sederhana seperti pada Gambar-. b. Ilustrasi sebenarnya dalam pemrograman dapat digambarkan seperti pada Gambar-. c. PVertex Pdge 5 6 Sama dengan djacency List graph tidak berarah dan tidak berbobot sebelumnya, untuk graph berbobot Simpul-Vertex dan Simpul-dge dibuat seragam yaitu terdiri dari elemen. Untuk graph berbobot, INFO Simpul-dge berisi bobot busur tersebut. 9 7 Pointer yang menunjuk ke simpul yang ditunjuk olehbusur berikutnya. Info berisi data ila simpul ini digunakan untuk Vertex, maka berisi data untyuk Vertex. ila simpul ini digunakan untuk dge, maka berisi bobot dge tersebut. Pointer yang menunjuk simpul berikutnya dalam suatu graph. Gambar. c Linked-List Graph Tak berarah Tak berbobot Gambar d Struktur sebuah Simpul digunakan baik untuk Vertex maupun untuk dge 5

.7... Inverse djacency List Graph erarah dan erbobot 6 6 5 9 5 7 9 7 Gambar. a Gambar. b Graph erarah Inverse djacency List an berbobot Graph erarah an erbobot igambarkan secara sederhana Graph pada Gambar-. a, bila ingin direpresentasikan dalam bentuk Inverse djacency-list, dapat diilustrasikan secara sederhana seperti pada Gambar-. b. Ilustrasi sebenarnya dalam pemrograman dapat mencontoh djacency List yang digambarkan pada Gambar-. c halaman sebelumnya. alam Inverse djacency List graph berarah, ditunjukkan simpul apa saja yang menunjuk simpul tertentu. Pada Gambar-. b terlihat pointer yang menuju atau menunjuk Simpul- adalah berasal dari Simpul dengan bobot 5 dan dari Simpul- dengan bobot atatan:. ontoh diatas adalah untuk graph berarah dan berbobot. ila graphnya tidak berbobot strukstur simpulnya tetap elemen, tapi elemen INFO pada Simpul-dge, tidak perlu diisi, atau diabaikan. Q Q Walaupun arah panahnya dari ke, tapi maksudnya untuk menyatakan bahwa : ari simpul mana saja, terdapat busur yang menunjuk. 5 Kalau Q dan R menunjuk simpul seperti pada gambar, maka Q->Left menujnjuk, dan R->Left menunjuk simpul. ari contoh ini, terlihat ada busur dari simpul dengan bobot = 5, dan ada busur dari dengan bobot = yang menunjuk simpul Gambar. b Inverse djacency List Graph erarah an erbobot igambarkan secara sederhana 6

ontoh Program : Perhatikan graph yang digambarkan pada Gambar-.a, dan djacency Matrix graph tersebut yang digambarkan pada Gambar-. b. 6 5 9 Gambar. a Graph erarah 7 dan berbobot Sudah ditulis program sebagai berikut : 5 999 999 6 999 999 999 999 999 9 999 999 7 999 999 999 #include<stdio.h> typedef struct tipes { struct tipes *Left; char INFO; struct tipes *Right; ; typedef Struct tipes Simpul; Simpul *P,*,*LST, *PVertex, *Pdge, *Q, *R, *S; Simpul *PointS[5]; void main() { int [5][5] = {,5,999,,999, 6,,,999,999, 999,999,,999,9, 999,999,,,7, 999,,999,999, ; char NmS[5] = ; // Nama, atau Nomor, atau Identitas Simpul int I,J; Gambar. b djacency Matrix Graph Gambar-. a Soal : Tambahkan (lengkapi) program diatas untuk membuat djacency List graph Gambar-. a, yang diilustrasikan pada Gambar-. c. PVertex Pdge 5 6 9 Jawab: Langkah-: // Membuat Simpul wal Linked-List. I=; J=; P=(Simpul*)malloc(sizeof(Simpul)); P->INFO = NmS[]; //ingat INFO tipenya : char, = P; LST=P; P->Left=NULL; P->Right=NULL; PointS[] = P; // menyimpan alamat Simpul pertama Langkah- ini menghasilkan sebuah simpul sebagai berikut : 7 Gambar. c djacency-list Graph Gambar-. a LST P Gambar. cd Simpul awal djacencyd-list Graph Gambar-.. a 75