Pencarian jalur terpendek dalam graf multi-constrained dengan Self Adapting Multiple Constraints Routing Algorithm (SAMCRA) - USD Repository

  

PENCARIAN JALUR TERPENDEK DALAM GRAF MULTI-

CONSTRAINED DENGAN SELF ADAPTING MULTIPLE

CONSTRAINTS ROUTING ALGORITHM (SAMCRA)

  Disusun oleh :

  

CICILIA SARASWATI

NIM : 055314119

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

  

PENCARIAN JALUR TERPENDEK DALAM GRAF MULTI-

CONSTRAINED DENGAN SELF ADAPTING MULTIPLE

CONSTRAINTS ROUTING ALGORITHM (SAMCRA)

  

Tugas Akhir

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

  

Program Studi Teknik Informatika

  Disusun Oleh :

  

CICILIA SARASWATI

NIM : 055314119

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

  

SHORTEST PATH FINDING IN MULTI-CONSTRAINED

GRAPH USING SELF ADAPTING MULTIPLE

CONSTRAINTS ROUTING ALGORITHM (SAMCRA)

  

Final Project

Submitted as Partial Fulfillment Of the Requirement

For the Undergreduate Degree of Sarjana Teknik

In Informatics Engineering Department

  Arranged by :

  

CICILIA SARASWATI

Student number : 055314119

INFORMATICS ENGINEERING STUDY PROGRAM

  

INFORMATICS ENGINEERING DEPARTMENT

SCIENCE AND TECHNOLOGY FACULTY

SANATA DHARMA UNIVERSITY

HALAMAN PERSEMBAHAN

  

Karya ini kupersembahkan kepada

Allah Bapa di Surga

  (Kaulah penuntun hidupku, Kaulah kasih yang tak pernah berkesudahan)

  

Mama, Bapak, mbak Desi dan adikku Frans

  (Kalian adalah sumber motivasiku, anugerah terindah yang Bapa berikan untukku)

  

Teman-temanku

  (Kalian memberikan warna indah dalam hidupku)

HALAMAN MOTTO

  

Perjalanan satu mill harus dimulai dengan satu langkah

(Lao-Tzu)

Tidak ada yang tidak mungkin di dunia ini bagi hati yang bersedia

(Abraham Lincoln)

  

Dalam iman tidak ada tempat berputus asa,

karena Tuhan selalu ikut serta

  

INTISARI

  Algoritma SAMCRA merupakan algoritma yang digunakan untuk memecahkan permasalahan optimasi jalur terpendek pada graf multi-constrained.

  Masalah optimasi multi-constraints adalah untuk menemukan jalur terpendek dari

  

vertex sumber A ke vertex tujuan B, yang meminimalkan nilai bobot vektor,

dalam penelitian ini komponen bobot vektornya adalah jarak dan kemacetan.

  Untuk mendapatkan nilai minimal bobot jarak dan kemacetan, maka diperlukan panjang maksimal jalur untuk dapat membandingkan jalur ketika sebuah graf memiliki bobot lebih dari satu pada setiap linknya. Panjang maksimal merupakan nilai minimal dari perbandingan nilai maksimal penjumlahan setiap bobot dari satu simpul ke simpul lain dibagi dengan batas atas nilai setiap bobot.

  Sistem ini dibangun untuk satu sisi saja, yaitu sisi pengguna. Pengguna dapat membuat graf yang sesuai dengan kebutuhan, yaitu dengan cara menambahkan, mengubah, dan menghapus data vertex, kemudian pengguna dapat membuat relasi antar vertex dengan cara menambah, mengubah, dan menghapus data edge. Setelah graf terbentuk maka pengguna dapat melakukan pencarian jalur terpendek pada graf, pencarian dilakukan dengan cara memasukkan vertex sumber dan vertex tujuan, hasil pencarian jalur terpendek berupa jalur yang dilalui, jarak jalur, dan kemacetan pada jalur.

  Sistem ini telah berhasil dibangun dengan menggunakan bahasa pemrograman Java. Perangkat lunak ini diharapkan dapat mempermudah

  ABSTRACT

  SAMCRA algorithm is an algorithm used to solve optimization problems in graph the shortest path multi-constrained. Multi-constraints optimization problem is to find the shortest path from source vertex A to vertex B destination, which minimizes the value of the weight vector, in this research component of weight vector is the distance and congestion. To get the minimum value weighted distance and congestion, the maximum length needed to compare track to track when a graph has a weight of more than one on each link. The maximum length is the minimum value of the ratio of the maximum value the sum of each weight from one node to another node divided by the upper limit value of each weight.

  The system is built to one side only, namely the user. Users can make graph in accordance with needs, that is by adding, modifying, and deleting data vertex, then the user can make the relation between the vertices by adding, modifying, and deleting the data edges. After a graph is formed then the user can search the shortest path in a graph, the search is done by inserting a source vertex and destination vertex, the shortest path search results of the path, the distance lanes, and congestion on the path.

  This system has been successfully built using the Java programming language. The software is expected to facilitate the search for the shortest path in a graph multi-constraints.

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

  Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Cicilia Saraswati NIM : 055314119 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

  

PENCARIAN JALUR TERPENDEK DALAM GRAF MULTI-

CONSTRAINED DENGAN SELF ADAPTING MULTIPLE

CONSTRAINTS ROUTING ALGORITHM (SAMCRA)

  Beserta Perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya secara terbatas, dan mempublikasikannya di Internet untuk kepentingan akademis tanpa perlu meminta ijin dari saya selama mencatumkan nama saya sebagai penulis.

  Demikian pernyataan ini yang saya buat dengan sebenarnya. Dibuat di Yogyakarta Pada tanggal : Oktober 2010 Yang menyatakan,

PERNYATAAN KEASLIAN KARYA

  Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

  Yogyakarta, Oktober 2010 Penulis

  Cicilia Saraswati

KATA PENGANTAR

  Puji dan syukur kepada Tuhan yang Maha Esa atas rahmat dan penyertaan Nya sehingga penulis dapat menyelesaikan Tugas Akhi r dengan judul “Pencarian Jalur Terpendek dalam Graf Multi-constrainted dengan Self Adapting Multiple

  Constraints Routing Algorithm (SAMCRA)

  ”. Tugas Akhir ini disusun guna memenuhi salah satu syarat untuk memperoleh gelar sarjana Teknik di Jurusan Teknik Informatika, Universitas Sanata Dharma.

  Penyusunan Tugas Akhir ini tidak terlepas dari doa, bantuan, bimbingan, serta dukungan dari berbagai pihak yang sangat bermanfaat bagi penulis. Dalam kesempatan ini, penulis mengucapkan terima kasih yang tak terhingga kepada :

  1. Bapak Bambang Soelistijanto, S.T., M.Sc. selaku dosen pembimbing atas segala kesabaran, bimbingan, dan bantuannya dalam membimbing penulis dalam menyelesaikan Tugas Akhir ini.

  2. Bapak Eko Hari Parmadi, S.Si., M.Kom. dan Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku dosen penguji atas saran dan masukan demi kesempurnaan Tugas Akhir ini.

  3. Para dosen Universitas Sanata Dharma yang telah membantu dan memberi bekal pengetahuan kepada penulis.

  4. Para karyawan dan staff Fakultas Sains dan Teknologi, khususnya Jurusan Teknik Informatika, atas segala bantuan yang diberikan kepada penulis.

  5. Mama, Bapak, Kakak, dan adikku tercinta atas bantuan, doa, dan dukungan

  6. Gabrelia Bonino, Ni Putu Feronika, Putri Ratnawati, Yuvenalis Andarwati, Agnes Putri, Floriska Nuhan, dan Maria Yesse atas dukungan, doa, bantuan yang sangat bermanfaat, atas kesediaan untuk mendengarkan keluh kesah, serta menjadi tempat penghiburan bagi penulis.

  7. Lusia Yuliani, Margaretha Rosita, Marsela Lotjita, dan Yuliana Rosi atas kesediaan mendengarkan keluh kesah, memberikan dukungan, terima kasih untuk menjadi tempat menghilangkan penat.

  8. Semua pihak yang telah membantu penulis dalam menyelesaikan studi dan Tugas Akhir, yang tidak dapat disebutkan satu persatu.

  Semoga segala kebaikan yang telah penulis terima menjadi berkat dan bekal yang sangat berguna di kehidupan penulis nantinya. Penulis menyadari bahwa penulisan Tugas Akhir ini masih jauh dari kesempurnaan, oleh sebab itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun.

  Atas kritik dan saran yang diberikan, penulis mengucapkan terima kasih.

  Yogyakarta, Oktober 2010 Penulis,

  Cicilia Saraswati

  

Daftar Isi

  HALAMAN PERSETUJUAN ............................................................................... iii HALAMAN PENGESAHAN ................................................................................ iv

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  Daftar Gambar

Gambar 2.1 Graf .................................................................................................... 6Gambar 2.2 Graf multi-constraints ........................................................................ 8Gambar 2.3 Representasi graf tidak berarah ke dalam matriks ........................... 10Gambar 2.4 Dominated paths : skenario (a) dan (b) ........................................... 13Gambar 2.5 Meta-Code Fase Inisialisasi ............................................................. 15Gambar 2.6 Meta-Code Feasibility ..................................................................... 16Gambar 2.7 Meta-Code Update Antrian.............................................................. 17Gambar 2.8 Meta-Code SAMCRA ..................................................................... 18Gambar 2.9 Graf yang setiap linknya memiliki dua komponen bobot vektor. ... 20Gambar 2.10 Jaringan pada fase inisialiasi ......................................................... 21Gambar 2.11 Langkah 1 dan 2 dalam operasi SAMCRA ................................... 22Gambar 2.12 Langkah 3 dan 4 dalam operasi SAMCRA ................................... 23Gambar 2.13 Langkah 5 dan 6 dalam operasi SAMCRA ................................... 24Gambar 2.14 Langkah 7 dan 8 dalam operasi SAMCRA ................................... 25Gambar 3.1 Graf multi-constraints ...................................................................... 27Gambar 3.2 Use Case Diagram ........................................................................... 29Gambar 3.3 Diagram konteks .............................................................................. 30Gambar 3.4 Diagram berjenjang sistem pencarian jalur terpendek..................... 31Gambar 3.5 Diagram Alir Data level 0................................................................ 32Gambar 3.6 Diagram Alir Data level 1................................................................ 33Gambar 3.7 Algoritma Dijkstra ........................................................................... 34Gambar 3.8 Algoritma SAMCRA ....................................................................... 36Gambar 3.11 Rancangan Antarmuka Utama Sistem ........................................... 40Gambar 3.12 Rancangan Antarmuka Form Setup Vertex ................................... 41Gambar 3.14 Rancangan Antarmuka Form Edit Vertex ..................................... 42Gambar 3.15 Rancangan Antarmuka Form Delete Vertex .................................. 43Gambar 3.16 Rancangan Antarmuka Form Setup Edge ...................................... 43Gambar 3.17 Rancangan Antarmuka Form Add Edge ........................................ 44Gambar 3.18 Rancangan Antarmuka Form Edit Edge ........................................ 45Gambar 3.19 Rancangan Antarmuka Form Delete Edge .................................... 45Gambar 3.20 Rancangan Antarmuka Form Operasi ........................................... 46Gambar 3.21 Rancangan Antarmuka Keluaran Form Setup Vertex ................... 46Gambar 3.22 Rancangan Antarmuka Hasil Keluaran dari Setup Edge ............... 47Gambar 3.23 Rancangan Antarmuka Keluaran Hasil Pencarian ......................... 47Gambar 3.24 Rancangan Antarmuka Form about software ................................ 48Gambar 4.1 Implementasi Pembuatan Database ................................................ 50Gambar 4.2 Implementasi Tabel vertex .............................................................. 50Gambar 4.3 Implementasi Tabel edge ................................................................. 51Gambar 4.4 Implementasi Halaman Utama Sistem ............................................ 57Gambar 4.8 Konfirmasi Pengubahan Data Vertex .............................................. 62Gambar 4.9 Pesan jika data vertex berhasil diubah ............................................. 62Gambar 4.10 Implementasi Delete vertex ........................................................... 65Gambar 4.11 konfirmasi penghapusan data vertex ............................................. 65Gambar 4.12 Pesan jika data berhasil dihapus .................................................... 66Gambar 4.12 Implementasi Antarmuka Add edge .............................................. 68Gambar 4.13 Pesan jika data edge berhasil ditambahkan ................................... 69Gambar 4.14 Implementasi Antarmuka Edit edge .............................................. 71Gambar 4.15 Konfirmasi Pengubahan Data edge ............................................... 72Gambar 4.16 Pesan jika data edge berhasil diubah ............................................. 72Gambar 4.17 Implementasi Antarmuka Delete edge ........................................... 75Gambar 4.18 Konfirmasi Penghapusan Data edge .............................................. 76Gambar 4.19 Pesan jika data edge berhasil dihapus ............................................ 76Gambar 4.17 Implementasi Antarmuka operation SAMCRA............................. 79Gambar 4.18 Implementasi Antarmuka about software ...................................... 85Gambar 5.1 Graf 1 ............................................................................................... 86Gambar 5.2 Graf 2 ............................................................................................... 87Gambar 5.3 Uji algoritma menggunakan aplikasi ke-1 ....................................... 89Gambar 5.4 Uji algoritma menggunakan aplikasi ke-2 ....................................... 90

  

Daftar Tabel

Tabel 2.1 Tabel Aktivitas Operasi SAMCRA ...................................................... 26Tabel 3.1 Struktur tabel vertex ............................................................................. 38Tabel 3.2 Struktur tabel edge ............................................................................... 38Tabel 3.2 Struktur tabel undirect .......................................................................... 39Tabel 5.1 Tabel Aktivitas Operasi SAMCRA gambar 5.1 ................................... 86Tabel 5.2 Tabel Aktivitas Operasi SAMCRA gambar 5.2 ................................... 88

Bab I. Pendahuluan I.1. Latar Belakang Pencarian jalur terpendek dalam graf multi-constraints merupakan

  permasalahan yang sering ditemui dalam kehidupan sehari-hari dalam berbagai aspek kehidupan. Tidak seperti pencarian jalur terpendek pada umumnya, yang biasanya dalam penentuan jalur terpendek hanya memperhitungkan satu kendala saja yang biasanya berupa jarak, ada beberapa kasus yang kurang tepat jika pencarian jalur terpendeknya menggunakan satu kendala saja, karena ada kendala lain yang berpengaruh dalam penentuan jalur terpendek dalam kasus tersebut.

  Salah satu gambaran permasalahan pencarian jalur terpendek dengan kendala lebih dari satu adalah pengendara bermotor yang menempuh perjalanan dari suatu tempat ke tempat tujuan, tentu pencarian jalur terpendeknya tidak hanya memperhitungkan kendala jarak, tetapi harus memperhitungkan pula kepadatan lalu lintas jalan yang akan dilalui, karena kepadatan lalu lintas setiap jalan berbeda-beda, bisa saja sebuah jalan memiliki jarak yang lebih dekat tetapi lalu lintas pada jalan tersebut lebih padat dibanding jalan lain yang jaraknya lebih jauh.

  Pada umumnya pencarian jalur terpendek bertujuan untuk mengurangi biaya dan waktu tempuh dari suatu tempat ke tempat tujuan, semakin cepat waktu yang ditempuh maka semakin sedikit pula biaya yang dikeluarkan.

  Berdasarkan permasalahan di atas penulis tertarik untuk membuat perangkat lunak yang dapat memecahkan permasalahan pencarian jalur terpendek dalam graf multi-constraints dengan menggunakan algoritma SAMCRA.

  I.2. Rumusan Masalah

  Rumusan masalah dari penelitian ini adalah bagaimana mencari jalur terpendek dalam graf multi-constraints dengan menggunakan algoritma SAMCRA?

  I.3. Tujuan dan Manfaat Penelitian

  Tujuan penelitian adalah membuat perangkat lunak untuk memudahkan pencarian jalur terpendek dalam graf multi-constraints dengan algoritma SAMCRA.

  Manfaat dari penelitian ini adalah  Memudahkan pencarian jalur terpendek dari satu tempat ke tempat lain yang mempunyai kendala lebih dari satu.

   Memahami algoritma SAMCRA dan pengimplementasiannya ke dalam pemrograman komputer.

  I.4. Batasan Masalah

  Routing Algorithm (SAMCRA).

  2. Bahasa pemrograman yang digunakan adalah Java.

  3. Basis data yang digunakan adalah MySQL.

  4. Graf yang digunakan merupakan graf tidak berarah.

  5. Banyaknya kendala yang diperhitungkan adalah 2, yaitu jarak antar vertex atau distance dan tingkat kemacetan atau congestion.

I.5. Metodologi Penelitian

  1. Melakukan studi kepustakaan untuk mempelajari algoritma SAMCRA, serta mencari dan mempelajari bahan kajian yang sesuai dengan sistem yang dibuat dari berbagai sumber, dapat berasal dari buku, artikel, dan internet.

  2. Mengembangkan sistem menggunakan metode Rekayasa Perangkat Lunak (RPL) secara terstruktur (Whitten, 2004) yaitu :

  1. Analisis Sistem Pada tahap ini hal yang dilakukan adalah menganalisis permasalahan yang dihadapi dan kebutuhan dari sistem.

  Mencari dan mengumpulkan data-data secara lengkap untuk pembuatan program.

  2. Desain Sistem Pada tahap ini hal yang dilakukan adalah merancang sistem

  interface .

  3. Implementasi Pada tahap ini membuat program sesuai dengan rancangan.

  4. Pengujian Pada tahap ini dilakukan pengujian program yang telah dibuat.

I.6. Sistematika Penulisan

  Laporan ini secara garis besar dibagi menjadi beberapa bab dengan perincian sebagai berikut :

  BAB I PENDAHULUAN Bab ini meliputi latar belakang, batasan masalah, tujuan dan manfaat penelitian, rumusan masalah, metodologi penelitian, serta sistematika penulisan.

  BAB II LANDASAN TEORI Bab ini berisi teori-teori yang berhubungan erat dan yang digunakan dalam penelitian. BAB III ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi analisis sistem serta perancangan sistem secara mendetail, yang meliputi perancangan input dan output, perancangan proses, dan juga perancangan interface.

  BAB IV IMPLEMENTASI SISTEM

  BAB V UJI COBA DAN ANALISIS HASIL Bab ini berisi analisis dari hasil uji coba algoritma SAMCRA dengan menggunakan perhitungan manual dan uji coba algoritma dengan menggunakan sistem.

  BAB VI PENUTUP Bab ini berisi mengenai kesimpulan dan saran berdasarkan bab-bab terdahulu.

Bab II. Landasan Teori II.1. Pengenalan Graf Secara informal, graf adalah himpunan dari benda-benda yang disebut simpul (vertex atau node) yang terhubung oleh sisi (edge-edge) atau busur (arc). Biasanya suatu graf digambarkan sebagai kumpulan titik-titik yang

  melambangkan vertex dan dihubungkan oleh garis-garis yang melambangkan

edge . Secara formalnya, Suatu graph G dapat dinyatakan sebagai G = < V,E >.

  Graph G terdiri atas himpunan V yang berisikan simpul pada graf tersebut dan himpunan dari E yang berisi sisi pada graf tersebut. Himpunan E dinyatakan sebagai pasangan dari simpul yang ada dalam V. Berikut merupakan contoh graf pada gambar 2.1 :

  v e

  1

  

4

v

  4 e

  3 e

  1 v 2 e

  

2

v

  3 Gambar 2.1 Graf

  Graf pada gambar 2.1 terdiri dari empat titik yaitu v , v , v , v dan empat garis

  1

  2

  3

  4

  e

  1 =(v 1 ,v 2 ), e 2 =(v 2 ,v 3 ), e 3 =(v 3 ,v 4 ), dan e

4 =(v

1 ,v 4 ).

  Beberapa istilah berkaitan dengan graf yang akan digunakan dalam laporan Tugas Akhir ini antara lain :

  2. Edge atau arc, merupakan garis yang menghubungkan dua vertex.

  3. Walk (perjalanan), walk atau perjalanan pada suatu graf G adalah barisan simpul dan ruas secara berganti-ganti. Contoh v

  1 , e 1 , v

2 , e

2 , v 3 , e n-1 , v n

  Perjalanan dengan notasi di atas dapat ditulis dengan menuliskan himpunan ruas saja e

  1 , e 2 , e n-1 atau dengan menuliskan himpunan simpul-simpulnya

  yaitu v

  1 , v 2 , v 3 , v n-1 , v n .

  4. Path (jalur). Path atau jalur adalah suatu walk atau perjalanan dimana semua simpul dalam himpunannya adalah berbeda.

II.2. Graf tidak berarah

  Graf tidak berarah G didefinisikan secara abstrak sebagai suatu pasangan terurut (V, E), V merupakan vertex dan E merupakan edge, dengan V suatu himpunan dan E himpunan yang unsur-unsurnya berupa multi himpunan dengan dua unsur dari V. Graf tidak berarah dapat direpresentasikan secara geometrik sebagai suatu himpunan titik-titik V dengan suatu himpunan garis-garis E antara titik-titik tersebut, graf tidak berarah tidak memperhatikan arah sisi yang menghubungkan dua vertex. Graf tidak berarah terdiri dari :

  1. Graf Sederhana, graf sederhana merupakan graf yang tidak boleh mempunyai loop dan garis paralel.

  2. Graf Lengkap dengan n titik (K n ), graf dengan n titik dan setiap dua titik

II.3. Graf Multi-Constraints

Gambar 2.2 Graf multi-constraintsGambar 2.2 merupakan gambar graf multi-constraints, graf multi- constraints merupakan graf yang mempunyai bobot edge lebih dari satu.

  Diasumsikan sebuah graf G yang setiap edge uv dari vertex u ke vertex v ditandai dengan m dimensional edge vektor, m dimensional edge vektor merupakan jumlah bobot pada edge w (u

  1 2 (u

  →v) = [w (u→v), wv),....,

  

w m (u i >0 merupakan ukuran mutu layanan (Quality of

  →v)], dimana komponen w

  

Service (QoS)), pada penelitian ini komponen bobot setiap edge yaitu w >0

  1

  merupakan jarak dan w

  2 >0 merupakan tingkat kemacetan. Algoritma routing QoS

  menghitung jalur P yang mempunyai banyak kendala w i (P) i untuk semua ≤ L

  i merupakan mutu layanan yang diminta user dan L disebut sebagai

  1≤im. L vektor kendala.

  Ukuran mutu layanan yang mungkin untuk dua kelas yang berbeda adalah

  

additive atau tambahan dan ukuran min-max mutu layanan. Untuk additive bobot mutu layanan pada link yang mendefinisikan jalur. Contoh dari ukuran tambahan mutu layanan adalah tingkat kemacetan, biaya, dan lainnya. Untuk ukuran min-max mutu layanan bobot jalur, ukuran mutu layanan adalah minimum (maksimum) dari bobot mutu layanan pada link yang terdapat pada jalur. Mutu Layanan jalur P adalah jalur antara vertex A dan vertex B yang w (P

  ) ≤ L untuk 1

  i A → B i A→B

   i m.

  II.4. Jalur Terpendek

  Jalur terpendek merupakan bagian dari Pada graf multi-

  

constraints masalah jalur terpendek adalah bagaimana kita mencari sebuah jalur

pada graf yang meminimalkan panjang maksimal jalur tersebut.

  II.5. Matriks untuk Graf Berlabel

  Di dalam matriks suatu graf tidak berarah, jumlah successor sama dengan jumlah predeccessor. Successor vertex N disimpan dalam baris N dan

  

predeccessor untuk vertex/node disimpan pada kolom N. Sebagai contoh lihat

gambar 2.3 :Gambar 2.3 Representasi graf tidak berarah ke dalam matriks

II.6. Algoritma Dijkstra Algoritma Dijkstra merupakan algoritma yang ditemukan oleh E. W.

  Dijkstra dan merupakan algoritma yang akan digunakan untuk mencari jalur terpendek dari titik awal ke titik tujuan. Langkah-langkah algoritma Dijkstra adalah sebagai berikut : Langkah 1 : Tandai titik awal yang telah dipilih dan beri beban 0 dan beban yang sangat besar untuk titik lainnya.

  Langkah 2 : Tandai sementara titik yang bisa dicapai secara langsung dari titik awal.

   Pilih jalur terpendek diantara titik yang ditandai sementara.  Jika ada panjang jalur yang sama pilih salah satunya.  Tandai titik yang terpilih. Langkah 3 : Ulangi tahap 2 hingga titik tujuan terpilih.

II.7. SAMCRA ( Self Adapting Multiple Constraints Routing Algorithm)

  SAMCRA merupakan algoritma routing yang biasa digunakan untuk memecahkan masalah optimasi multi constraints, SAMCRA didasarkan pada empat konsep, yaitu: (1) definisi non-linear panjang jalur l(P), (2) k-shortest paths , (3) non-dominated paths, (4) look-ahead.

1. Definisi non-Linear Panjang Jalur l(P)

  Bobot vektor jalur didefinisikan dalam penjumlahan vektor. Seperti pada aljabar linear, panjang vektor dibutuhkan, dimana bobot vektor didefinisikan dalam penjumlahan vektor. Definisi panjang jalur l(P) dibutuhkan untuk dapat membandingkan jalur ketika komponen bobot pada link memiliki ukuran mutu layanan yang berbeda pada spesifik unit. Berikut merupakan rumus panjang jalur : m

    d w P

  l(P) = (P) = . ( ) (2.1) i

1

d i w i Keterangan (2.1):

  w i = bobot ke i

  = panjang

  l P = jalur

  1 d = i

  L i

  Dalam konsep ini, masalah m-parameter ditransformasikan ke dalam

  Dijkstra. Algoritma Dijkstra digunakan untuk mengurangi graf yang akan dikembalikan sebagai jalur terpendek P yang meminimalkan panjang jalur l(P) yang didefinisikan oleh (2.1).

  2. k-Shortest Paths Algoritma k-shortest path mirip dengan algoritma Dijkstra.

  Penyimpanan pada setiap vertex lanjutan hanya merupakan loncatan dari vertex sebelumnya dan panjang dari jalur terpendek dari sumber ke vertex lanjutan, kita dapat menyimpan jalur terpendek pertama, kedua, ketiga, hingga k jalur terpendek bersama dengan panjang yang sesuai. Ini memungkinkan untuk tidak menyimpan sama sekali k jalur pada sebuah vertex. Pada kasus dimana nilai k tidak terbatas, algoritma

  k jalur terpendek mengembalikan semua kemungkinan jalur yang

  diminta pada panjang antara sumber dan tujuan. Pada kasus tersebut selalu ada kemungkinan bahwa end-to-end jalur terpendek tidak dapat ditemukan.

  SAMCRA memilih „self-adaptively’ yang dibutuhkan nilai dari k n pada setiap vertex n dari graf G, yang kontras dengan algoritma

  k jalur terpendek dimana pada setiap vertex n nilai sama dari k

  dialokasikan dan oleh karena itu tempat penyimpanan yang sama dalam antrian dari jalur per vertex. Didefinisikan sebagai k =

  SAMCRA max ) atau disebut juga sebagai ukuran kompleksitas n n

  G (k SAMCRA.

3. Dominated paths

  Dominated path pada dasarnya adalah teknik pengurangan tempat secara drastis yang dapat meningkatkan efisiensi proses perhitungan.

  ”Kekuasaan jalur” dapat dianggap sebagai relaksasi multidimensional. Relaksasi merupakan properti kunci dari satu parameter algoritma jalur terpendek seperti Dijkstra dan Bellman-Ford.

  Definisi non-dominated Dibatasi m = 2 dimensi, diasumsikan dua jalur P

  1 dan P 2 dari vertex

  sumber ke vertex lanjutan, setiap dengan bobot vektor jalur (w (P ),w (P )) = (x y ) dan (w (P ), w (P )) = (x y )), pada

  1

  1

  2 1 1,

  1

  1

  2

  2 2 2,

  2 gambar 2.4 ditunjukan dua skenario yang mungkin dari dua jalur.

Gambar 2.4 Dominated paths : skenario (a) dan (b)

  Pada gambar 2.4, dalam skenario (a), P mendominasi P , tapi

  1

  2

  dalam skenario (b) P

  1 dan P 2 tidak saling mendominasi satu sama

  lain. Pada skenario (a), P

  1 lebih pendek daripada P 2 dan w 1 (P 1 ) < w 1 (P 2 ) untuk semua komponen

  1≤ im. Pada skenario (b) kedua

  w 1 (P 1 ) < w 2 (P 2 ) untuk beberapa indikasi i, tapi w j (P 1 ) > w j (P 2 ) untuk setidak-tidaknya satu indeks j.

  ‟

  Sebuah jalur P disebut non-dominated jika tidak ada jalur P untuk

  w i (P i (P) untuk semua bobot komponen link i kecuali untuk

  ‟) ≤ w setidak-tidaknya satu j untuk w (P (P).

  j j

  ‟) < w

4. Look- Ahead

  Di samping jalur dominasi, konsep look-ahead dapat dilihat sebagai penambahan mekanisme untuk mengurangi tempat pencarian jalur yang mungkin. Konsep look-ahead membatasi kelompok jalur yang mungkin dengan menggunakan informasi jalur yang tersisa untuk mencapai vertex tujuan. Konsep look ahead mengajukan untuk menghitung jalur terpendek akar pohon pada tujuan untuk setiap vertex

  n dalam graf G untuk setiap m link yang terpisah. Prinsip dasar yang

  paling penting dari look-ahead adalah untuk menyediakan setiap vertex dengan pasti, batas bawah dari w

  1 (P n ) untuk setiap individu i →B;i komponen bobot link.

  Meta-Code SAMCRA

  INITIALIZE(G, m, A, B) 1 for each v {N}

2 Counter[v]← 0

  3 maxlength ← 1.0 4 for i

  = 1,….,m

  5 DIJKSTRA(G,A,B,i ) → b

  i (n), P B i A ; *

  6 if l(P B i A ; * ) < maxlength

  7 maxlength ← l(P B i A ; * )

  8 queue Q ← Ø 9 counter[A] ← counter[A] + 1

  10 INSERT(Q, A, counter[A], NIL, l(

  ) (A b

  ))

Gambar 2.5 Meta-Code Fase Inisialisasi

  Pada fase inisialisasi (gambar 2.5) dibutuhkan algoritma dan perhitungan informasi look-ahead. Pada baris 1 dan 2, angka pada jalur penyimpanan (counter) setiap vertex diset menjadi 0. Maxlength menunjuk panjang maksimum yang mungkin dimiliki sub jalur. Jalur dengan length > maxlength dapat dihapus, maxlength diset menjadi 1,0 pada baris 3. Pada baris 5, batas bawah look-ahead dihitung dengan fungsi DIJKSTRA. Untuk setiap jalur terpendek m, baris 6 menghitung panjang dan mengecek mana yang nilai lengthnya lebih dibanding maxlength. Jika ada nilai panjang yang lebih rendah, pada baris 7, maxlength diupdate dengan nilai baru yang lebih rendah tersebut. SAMCRA dimulai dengan

  FEASIBILITY(G, u, i, v, counter, d, w, maxlength) 1 dominated ← 0 2 for j = 1,…..,counter[v]

  

  

  

   d [ u [ i ]] w ( u v ) d [ v [ j ]]

  3 if(( ) - ≥

  

  OR l( d [ v [ j ]] ) > maxlength) 4 v[j ] ← BLACK

  

  

   

  

d [ v [ j ]] d [ u [ i ]] w ( u v )

  • 5 else if (

  ≥

  6 dominated ← 1 7 return dominated

Gambar 2.6 Meta-Code Feasibility

  Pada tahap FEASIBILITY (gambar 2.6), dilakukan pengecekan jalur terdominasi satu sama lain atau memaksa nilai maxlength. Sub jalur u[i] menunjuk i jalur yang disimpan pada vertex u. FEASIBILITY selanjutnya jalur i pada vertex u terhadap vertex tetangga v, dimana counter[v] vertex sudah disimpan. Untuk setiap counter[v] sub jalur v[j] disimpan pada vertex v (pada baris 2-3). Jika semua komponen dari vektor yang berbeda tidak negatif, kemudian sub jalur v[j] memaksa nilai maxlength maka tandai dengan warna hitam pada baris 4.

  Jalur yang telah ditandai dengan warna hitam menjadi nilai lama dan mungkin dapat ditempatkan kembali dengan jalur yang baru. Baris 5 mengecek jika jalur selanjutnya merupakan dirinya sendiri terdominasi oleh sub jalur v[j]. Jika demikian, maka jalur tersebut diberi label “dominated”.

  • ) (v b

  8 INSERT(Q, v, counter[v], predicted_length)

Gambar 2.7 Meta-Code Update Antrian Tahap terakhir disebut dengan UPDATEQUEUE atau update antrian.

  ]]] ← u[i]

   ) 10 [v[counter[v

  ) ( ]] [ [ v u w i u d

  [v[counter[v ]]] ← (

  d

  9

  ] ← counter[v] + 1

  UPDATEQUEUE(Q, u, i, j, d, w, , counter[v], predicted_length) 1 for j = 1,…….,counter[v] 2 if (v[j] = BLACK AND

  ]] ← u[i] 6 stop 7 counter[v

    5 [ v[j

  ← ) ( ]] [ [ v u w i u d

  ]] [ [ j v d

  4

  3 DECREASE-KEY(Q, v, j, predicted_length)

  ) > predicted_length

  l ( ]] [ [ j v d

  UPDATEQUEUE mempunyai tugas untuk mengupdate antrian Q dengan jalur baru, menamai jalur selanjutnya dari u[i] ke vertex v. Baris 1-2 mengecek jika ada jalur hitam dengan predicted_length dibanding jalur baru selanjutnya. Jika ada, jalur baru ini akan ditempatkan pada jalur hitam tersebut pada baris 3-5. Baris 3 mengurangi predicted_length dari sub jalur v[j] dengan predicted yang lebih kecil dari jalur selanjutnya dan mengupdate bobot vektor jalur (pada baris 4) dan predessor list (pada baris 5). Jika antrian telah diupdate melalui DECREASE- KEY pada baris 3-5, UPDATEQUEUE berhenti pada baris 6 dan kembali pada

  (baris 7-10). Bukan panjang asli yang disimpan, tapi ini merupakan predicted_length.

  Algoritma utama pada gambar 2.8 dimulai dengan mengeksekusi fase inisialisasi (baris 1). Antrian Q tidak kosong, fungsi extract-min pada baris 3 memilih length minimum jalur pada antrian Q dan mengembalikan u[i], jalur i P A disimpan dalam antrian pada vertex u.

  →u

  SAMCRA(G, m, A, B, L)

  

  1 INITIALIZE(G, m, A, B b ) →

  2 while(Q ≠ Ø)

  3 EXTRACT- MIN(Q) → u[i] 4 u[i

  ] ← GREY 5 if( u = B)

  6 STOP → return path 7 else 8 for each v Adj [u] \ { [u[i]], A}

  9 FEASIBILITY(G, u, i, v, counter, d, w, maxlength) → dominated

  

  

   [ [ ]] ( )

  d u i w u v (v

  10 ) predicted_length ← l(

  • b )

  11 if (predicted_length < maxlength AND dominated ≠ 1 )

  12 UPDATEQUEUE(Q, u, i, j, d, w, , counter[v], predicted_length) 13 if(v = B AND predicted_length < maxlength)

  14 maxlength ← predicted_length

Gambar 2.8 Meta-Code SAMCRA Dengan angka tersebut dan predesessor list , jalur selanjutnya ditandai dengan warna abu-abu pada baris 4. jika vertex u, berkoresponden ke jalur selanjutnya u[i], jumlah tujuan B, jalur terpendek dikembalikan. Jika u

  ≠ B, pembacaan prosedur dikenali pada baris 8. Baris 8 menjelaskan bagaimana i jalur sampai vertex u diperpanjang terhadap vertex tetangga v, kecuali untuk asal vertex sebelumnya. Vertex sebelumnya pada jalur u[i] disimpan pada predecessor list .

  Pengembalian vertex sebelumnya yang dapat menyebabkan loop, harus dapat dihindari. Sejak bobot link non-negatif, jalur yang mempunyai loop selalu didominasi oleh jalur tanpa dominasi. Baris 9 meminta tahap FEASIBILITY untuk mengecek dimana seluruh jalur disimpan pada vertex v yang tidak terdominasi oleh jalur yang disimpan sebelumnya pada vertex v. Pada baris 10, length dari prediksi end-to-end bobot vektor jalur dihitung. Baris 11 mengetes jika jalur baru selanjutnya tidak non-dominated dan predicted_length ≤ maxlength. Jika kasus ini dapat disimpan dan antriannya harus bisa diupdate (baris 12). Hapus jalur yang predicted_lengthnya > maxlength adalah pengurangan tempat pencarian dari konsep look-ahead. Terakhir, maxlength dapat diupdate pada baris 13-14.

II.8. Contoh operasi algoritma SAMCRA

  Dicari jalur terpendek dari vertex 1 ke vertex 7 dengan L =(20,20) pada gambar 2.9 !

Gambar 2.9 Graf yang setiap linknya memiliki dua komponen bobot vektor.

  Sebelum memulai langkah-langkah pencarian jalur terpendek pada graf dalam gambar 2.9, diperlukan fase inisialisasi untuk mendapatkan informasi mengenai batas bawah bobot setiap vektor dan panjang maksimal (maxlength) baru yang sebelumnya adalah 1, keduanya digunakan sebagai acuan pencarian jalur terpendek.

  Fase inisialisasi o Menentukan batas bawah bobot vektor setiap vertex. Pada gambar 2.9 dapat kita lihat adanya kotak-kotak di samping vertex, isi kotak tersebut merupakan batas bawah bobot. Batas bawah bobot ini didapatkan dengan cara mencari jalur terpendek dengan bobot minimum dari setiap vertex ke vertex tujuan dengan menggunakan algoritma Dijkstra.

Gambar 2.10 Jaringan pada fase inisialiasi

  o Menentukan panjang maksimal baru untuk menentukan jalur terpendek, jalur terpendek yang uji sesuai dengan m-dimensional edge.

  Untuk graf pada gambar 2.10 terdapat 2 komponen bobot, maka jalur

  terpendek yang diuji adalah 2 jalur Dijkstra yaitu P dan P

  1 7 ;

  1

  1 7 ;

  2

  dari vertex 1 ke vertex 7, dimana bobot komponen pertama mempunyai jalur terpendek P = 1→ 2 → 4 → 6 → 7 dengan bobot vektor

  • 1

  7 ;

  1

  w (P ) = (6,14) dan panjang l(P ) = max(6/20,14/20) = 0,7,

  1 7 ;

  1

  1 7 ;

  1

  • untuk bobot komponen kedua, jalur terpendeknya adalah P =

  1 7 ;

  2

  • w (P ) = (16,9) dan

  1→ 3 → 5 → 6→ 7 dengan bobot vektor

  1 7 ;

  2

  panjang l(P ) = max(16/20,9/20) = 0,8. Karena nilai l(P )

  1 7 ;

  1 1 7 ;

  1

  • lebih rendah dibanding l(P ), maka panjang maksimal adalah dari

  1 7 ;

  1 semula bernilai 1 menjadi 0,7.

Gambar 2.11 Langkah 1 dan 2 dalam operasi SAMCRA

  Pada langkah 1 seperti pada gambar 2.11, sumber vertex 1 membaca tetangganya yaitu vertex 2 dan 3. Diperkirakan panjang l( w (P

  1 )+ b (n)) →n

  

1

  5

  5

  7

  untuk vertex 2 adalah nilai max( , ) = max(0,3, 0,6) = 0,6 dan

  

20

  20

  8

  5

  5

  4

  diperkirakan panjang untuk vertex 3 adalah max( , ) = max(0,65, 0,45)

  20

  20

  = 0,65. Karena jalur tersebut non-dominan dan kedua panjang yang diperkirakan tidak melebihi panjang maksimal maka keduanya disimpan dalam antrian. Pada langkah 2, perkiraan panjang yang disimpan dalam antrian yaitu pada

  vertex 2 dengan panjang 0,6. Prosedur pembacaan vertex-vertex tetangga