Teori Graf Aplikasi Pencari Rute Optimum Menggunakan Algoritma Semut Di Kampus Universitas Sumatera Utara Dengan Dukungan Sistem Informasi Geografis

BAB 2 TINJAUAN PUSTAKA

2.1 Teori Graf

2.1.1 Definisi Graf

Graf G didefenisikan sebagai pasangan himpunan V,E yang dalam hal ini V adalah himpunan tidak kosong dari verteks vertex atau node = {v 1 , v 2 , ...,v n } dan E adalah himpunan sisi edge yang menghubungkan sepasang verteks = {e 1 , e 2 , ... ,e n }, atau dapat ditulis singkat notasi G=V,E. Hal ini berarti bahwa V tidak boleh kosong, sedangkan E boleh kosong. Jadi, sebuah graf dimungkinkan tidak memiliki sisi satu buah pun, tetapi verteksnya harus ada, minimal satu. Graf yang hanya memiliki satu buah verteks tanpa sebuah sisi pun dinamakan graf trivial. Munir, 2003, hal: 291. Verteks pada graf dapat dinomori dengan huruf, bilangan asli, atau gabungan keduanya. Sedangkan sisi yang menghubungkan verteks v i dan verteks v j dinyatakan dengan pasangan v i , v j atau dengan lambang e 1 , e 2 , .... Dengan kata lain, jika e adalah sebuah sisi yang menghubungkan verteks v i dengan v j , maka e dapat ditulis sebagai e = v i , v j . A D E C B e 1 e 6 e 5 e 4 e 2 e 3 e 7 Gambar 2.1 Graf G dengan Lima Verteks dan Tujuh Sisi G adalah graf dengan: V = { a, b, c, d, e }. E = { a, b, a, c, c, d, b, d, b, e, b, e, d, e }. = { e 1 , e 2 , e 3 , e 4 , e 5 , e 6 , e 7 }. Verteks pada graf dapat merupakan obyek sembarang seperti kota, atom-atom suatu zat, nama anak, jenis buah, komponen alat elektronik dan sebagainya. Sisi dapat menunjukkan hubungan relasi sembarang seperti jalur penerbangan, jalan raya, sambungan telepon, ikatan kimia, dan lain-lain. Verteks dalam graf pada tulisan ini merupakan gedung atau persimpangan jalan dan sisi dalam graf merupakan jalan yang menghubungkan gedung atau persimpangan jalan.

2.1.2 Jenis-jenis Graf

Menurut arah dan bobotnya, graf dibagi menjadi empat bagian, yaitu: 1. Graf berarah dan berbobot: tiap sisi mempunyai anak panah dan bobot. A D E C B 5 9 6 5 6 8 9 Gambar 2.2 Graf Berarah dan Berbobot Gambar 2.1 menunjukkan graf berarah dan berbobot yang terdiri dari lima verteks yaitu verteks A, B, C, D, dan E. Verteks A menujukkan arah ke verteks B, verteks C dan verteks D, verteks B menunjukkan arah ke verteks D, verteks C menunjukkan arah ke verteks D, dan seterusnya. Bobot antar verteks pun telah di ketahui. 2. Graf tidak berarah dan berbobot: tiap sisi tidak mempunyai anak panah tetapi mempunyai bobot. A D E C B 5 9 6 5 6 8 9 Gambar 2.3 Graf Tidak Berarah dan Berbobot Gambar 2.2 menunjukkan graf tidak berarah dan berbobot. Graf terdiri dari lima verteks yaitu verteks A, B, C, D, dan E. Verteks A tidak menunjukkan arah ke verteks B atau C, namun bobot antara verteks A dan verteks B telah diketahui. Begitu juga dengan verteks-verteks yang lain. 3. Graf berarah dan tidak berbobot: tiap sisi mempunyai anak panah yang tidak berbobot. Gambar 2.3 menunjukkan graf berarah dan tidak berbobot. A D E C B Gambar 2.4 Graf berarah dan tidak berbobot 4. Graf tidak berarah dan tidak berbobot: tiap sisi tidak mempunyai anak panah dan tidak berbobot. A D E C B Gambar 2.5 Graf Tidak Berarah dan Tidak Berbobot

2.1.3 Lintasan

Misalkan v dan v n adalah verteks-verteks dalam sebuah graf. Sebuah lintasan dari v ke v n dengan panjang n adalah sebuah barisan berselang-seling dari n + 1 verteks dan n sisi yang berawal dari verteks v dan berakhir dengan verteks v n , v , e 1 , v 1 , e 2 , ..., v n- 1 , e n , v n , dengan sisi e i insiden dengan verteks v i-1 dan v i untuk i = 1, ..., n. Jhonsonbaugh, 2002. Jika graf yang ditinjau merupakan graf sederhana, maka lintasan cukup dituliskan sebagai barisan verteks: v , v 1 , v 2 , …, v n-1 , v n , karena antara dua buah verteks yang berurutan dalam lintasan tersebut hanya terdapat satu sisi. Jika graf yang ditinjau memiliki sisi ganda, maka, lintasan ditulis sebagai barisan berselang-seling antara verteks dan sisi: v , e 1 , v 1 , e 2 , v 2 , e 3 , …, v n-1 , e n , v n . Verteks dan sisi yang dilalui di dalam lintasan boleh berulang. Sebuah lintasan yang semua verteksnya berbeda setiap sisinya dilalui hanya sekali dikatakan lintasan sederhana. Lintasan yang berawal dan berakhir pada verteks yang sama disebut lintasan tertutup closed walk, sedangkan lintasan yang tidak berawal dan berakhir pada verteks sama disebut lintasan terbuka open walk. Jalur dari suatu lintasan yang mana setiap verteksnya berbeda kecuali mungkin verteks awal boleh sama verteks akhir disebut closed path. Panjang lintasan adalah jumlah sisi yang muncul dalam suatu lintasan.

2.1.4 Representasi Graf

Munir 2003, hal: 318, menyatakan bahwa agar graf dapat diproses dalam program komputer, graf harus direpresentasikan ke dalam memori. Terdapat beberapa representasi untuk graf, antara lain matriks ketetanggaan, matriks bersisian dan senarai ketetanggaan.

2.1.4.1 Matriks Ketetanggaan Adjacency Matrix

Misalkan G = V, E graf sederhana dimana |V| = n, n 1. Maka, matriks ketetanggaan A dari G adalah matriks n x n dimana: A = [a ij ], [a ij ] menjadi 1 bila verteks i dan j terhubung bertetangga, [a ij ] menjadi 0 bila verteks i dan j tidak terhubung tidak bertetangga. Dengan kata lain matriks ketetanggaan didefinisikan sebagai berikut, misalkan A matriks berordo n x n n baris dan n kolom. Jika antara dua verteks terhubung adjacent maka elemen matriks bernilai 1, dan sebaliknya jika tidak terhubung bernilai 0. Jumlah elemen matriks bertetanggaan untuk graf dengan n verteks adalah n 2 . Jika tiap elemen membutuhkan ruang memori sebesar p, maka ruang memori yang diperlukan seluruhnya adalah pn 2 . Keuntungan representasi dengan matriks ketetanggaan adalah kita dapat mengakses elemen matriksnya langsung dari indeks. Selain itu, kita juga dapat menentukan dengan langsung apakah verteks i dan verteks j bertetangga. Pada graf berbobot, a ij menyatakan bobot tiap sisi yang menghubungkan verteks i dengan verteks j. Bila tidak ada sisi dari verteks i ke verteks j atau dari verteks j ke verteks i, maka, a ij diberi nilai tak berhingga. 1 2 3 4 Gambar 2.6 Graf Matriks Ketetanggaan Bentuk matriks ketetanggaan dari graf pada gambar 2.6 adalah 4 3 2 1 4 3 2 1 1 1 1 1 1 1 1 v v v v A v v v v             = Seperti halnya matriks kedekatan, pada graf berbobot, a ij menyatakan bobot tiap sisi yang menghubungkan verteks i dengan verteks j. Bila tidak ada sisi dari verteks i ke verteks j atau dari verteks j ke verteks i, maka, a ij juga diberi nilai tak berhingga.

2.1.4.2 Matriks Bersisian Incidency Matrix

Misalkan G = V, E adalah graf dengan n verteks dan m sisi, maka matriks kebersisian A dari G adalah matriks berukuran m x n dimana: A = [a ij ], [a ij ] menjadi 1 bila verteks i dan sisi j bersisian, [a ij ] menjadi 0 bila verteks i dan sisi j tidak bersisian. Dengan kata lain matriks bersisian adalah matriks yang merepresentasikan hubungan antara verteks dan sisi. Misalkan A adalah matriks dengan m baris untuk setiap verteks dan n kolom untuk setiap sisi. Jika verteks terhubung dengan sisi, maka elemen matriks bernilai 1. Sebaliknya, jika verteks tidak terhubung dengan sisi maka elemen matriks bernilai 0. Gambar 2.7 Graf Matriks Bersisian Bentuk matriks bersisian dari graf pada gambar 2.7 adalah 4 3 2 1 4 3 2 1 1 1 1 1 1 1 1 1 e e e e A v v v v             =

2.1.4.3 Senarai Ketetanggaan Adjacency List

Matriks ketetanggaan memiliki kelemahan apabila graf memiliki jumlah sisi yang relatif sedikit sehingga graf sebagian besar berisi bilangan 0. Hal ini merupakan pemborosan terhadap memori, karena banyak menyimpan bilangan 0 yang seharusnya tidak perlu disimpan. Untuk kepentingan efisiensi ruang, maka tiap baris matriks tersebut digantikan senarai yang hanya berisikan verteks-verteks dalam adjacency set Vx dari setiap verteks x. Bentuk senarai ketetanggan graf dari gambar 2.7 diatas adalah 1: 3 2: 3,4 3: 1,2,4 4: 2,3

2.2 Permasalahan Optimasi