• Tidak ada hasil yang ditemukan

Analisis dan Perbandingan Algoritma L-Queue dan Algoritma Floyd Dalam Penentuan Lintasan Terpendek Pada Graph

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis dan Perbandingan Algoritma L-Queue dan Algoritma Floyd Dalam Penentuan Lintasan Terpendek Pada Graph"

Copied!
114
0
0

Teks penuh

(1)

LISTING PROGRAM

public void init(List<List<double>> inputTable, double N) {

(2)

public void path(int u, int v)

public List<List<double>> FloydAlgo(List<List<double>> M) {

(3)

Console.Write("-");

public List<List<edge_>> graph = new List<List<edge_>>(); List<double> shortestDistances = new List<double>(); List<double> predecessorVertex = new List<double>();

public double totalJarak; public List<int> path;

Stopwatch watch = new Stopwatch(); public double elapsedTimeMs = 0;

(4)
(5)

CURRICULUM VITAE

Nama : Dhika Handayani Rangkuti

Alamat Sekarang : Jln. H Adam Malik Gg Selamat No. 22 Medan Alamat Orang Tua : Jln. H Adam Malik Gg Selamat No. 22 Medan Telp/ Hp : 081375892549

Email : dhikahandayani12@gmail.com

Riwayat Pendidikan

2012 – 2016 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2009 – 2012 : SMK Telkom Shandy Putra Medan

2006 – 2009 : SMP Negeri 7 Medan

2000 – 2006 : SD Swasta Cenderamata Medan

Keahlian

Bahasa : Indonesia, Inggris Pemrograman : C#, C++, Java Android

Database : MySql

Design : Photoshop

Perkantoran : Microsoft Office

Kursus yang diikuti TOEFL

Pengalaman Organisasi

[2009] Anggota Paskibra SMP Negeri 7 Medan

(6)

Pengalaman Kepanitiaan

[2012] Koordinator Konsumsi Dies Natalis IMILKOM 2012 [2014] Anggota Dokumentasi Porseni 2014

Seminar

(7)

DAFTAR PUSTAKA

Aini, Asghar. & Salehipour, Amir. 2012. Speeding Up the Floyd

WarshallAlgorithm For The cycle Shortest Path problem. Journal Applied

Mathematics Letters.25,(1-5).

Aprian, Raden Diaz novandi. 2007. Perbandigan Algoritma Djikstra dan Algoritma Floyd Warshall Dalam Penentuan Lintasan Terpendek (Single

Pair Shortest Path). Skripsi.Bandung. Institut Teknologi Bandung.

Diestel, Reinhard. 2006. Graph Theory Third Edition, Germany : Springer.

Douglas, R Shier.1981. A Computational Study Of Floyd’s Algorithm. Journal

Computerd, Vol 8, No.4, pp (275-293).

Francois, Jean Mondou.Dkk. 1991. Shortest Path Algorithms : A Computational Study With The C programming Language. Journal Computers, Vol.18, no.8, pp.767-786.

Giorgio, Gallo & Steffano, Pallotino. 1998. Shortest Path Algorithm. Pisa: J.C. Baltzer AG. Scientific Publishing Company.

Khan, Pritam. Dkk. 2014. Modification of Floyd Warshall’s Algorithm For

Shortest Path Routing in Wireless Sensor Networks. Journal India

Conference.

Munir, R. 2007. Matematika Diskrit Edisi Ketiga. Bandung: Institut Teknologi Bandung.

Barakbah, Ali Ridho., Karlita, Tita., Ahsan, Ahmad Syauqi. 2013. Logika dan Algoritma. Surabaya.

Rudi, Y Kr.Dkk.2014. Penentuan Jarak Terpendek Dengan Algoritma Floyd Warshall. Palembang : Sekolah Tinggi Teknik Musi.

Thomas, H Cormen.2009. Introduction to Algorithm.Third Edition. London: The MIT Press.

(8)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem merupakan tahapan yang menjelaskan permasalahan yang akan membantu proses perancangan model sistem yang nantinya akan diimplementasikan. Dalam tugas akhir ini fase analisis yang akan dibahas adalah analisis masalah dan analisis kebutuhan, dimana analisis masalah bertujuan untuk mempermudah dalam memahami masalah yang akan dihadapi dalam sistem, sedangkan analisis kebutuhan bertujuan untuk menjelaskan fungsi-fungsi yang mampu dikerjakan oleh sistem.

3.1.1 Analisis Masalah

Permasalahan yang akan diangkat dari penelitian ini adalah bagaimana cara kerja algoritma L-Queue dan algoritma Floyd dan perbandingan efisisensi dari sisi

running-time kedua algoritma tersebut dalam pencarian lintasan terpendek. Pada

penelitian ini, penentuan lintasan terpendek (shortest path) di simulasikan ke dalam model graph. Graph yang digunakan merupakan graph yang titik awalnya dapat diperbaharui oleh user, juga dapat melakukan penambahan node beserta jarak-nya dengan contoh pengujian menggunakan 22 node. Setelah itu sistem akan melakukan perbandingan dengan menggunakan graph yang sama terhadap kedua algoritma L-queue dan Floyd. Selanjutnya sistem akan menunjukkan hasil perbandingan real running time dan juga jarak dari masing-masing algoritma yang di simulasikan pada graph.

Analisis masalah dapat diidentifikasi dengan menggunakan diagram

Ishikawa. Diagram Ishikawa digunakan untuk mengidentifikasi kemungkinan

penyebab masalah.

(9)

Gambar 3.1 Diagram Ishikawa

Berdasarkan gambar diatas, diagram terbagi atas 2 (dua) bagian yaitu head dan

bone. Bone terdiri dari 4 aspek yaitu material, method, machine dan people.

(10)

3.1.2 Analisis Kebutuhan Sistem

Terdapat dua bagian pada analisis kebutuhan, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.

1. Kebutuhan Fungsional

Analisis kebutuhan fungsional disini mendekripsikan tentang sistem yang disediakan. sistem ini melakukan perhitungan dan perbandingan jarak dan waktu pencarian lintasan terpendek pada graph. terdapat beberapa kebutuhan fungsional antara lain:

2. Dapat menginput node baru untuk dijadikan titik awal 3. Algoritma yang digunakan adalah L-Queue dan Floyd.

4. Sistem menampilkan setiap node yang ada dalam program beserta tetangga masing-masing

5. Parameter yang digunakan untuk analisis adalah kesesuaian kompleksitas

big-theta kedua algoritma dan waktu yang diperlukan untuk mendapatkan

jarak terpendek.

2. Kebutuhan Non Fungsional

Kebutuhan non-fungsional adalah kebutuhan yang berisi kinerja operasional dan performance dari suatu sistem. Terdapat beberapa persyaratan non-fungsional yang harus dipenuhi diantaranya :

1. User Friendly

Sistem yang akan dibangun harus mudah digunakan (user friendly), artinya sistem ini akan mudah digunakan oleh user dengan tampilan yang sederhana dan dapat dimengerti.

2. Performa

Perangkat lunak yang akan dibangun harus dapat menunjukkan hasil running

time dan proses pencarian lintasan terpendek.

3. Software Pendukung

Sistem yang dibangun menggunakan software pendukung yang bersifat

(11)

4. Manajemen Kualitas

Sistem atau perangkat lunak yang akan dibangun harus memiliki kualitas yang baik yaitu dapat menghitung jarak secara tepat serta dapat menghitung nilai

running time.

3.2 Pemodelan

Pada bagian ini digunakan Unified Modeling Languange (UML) sebagai bahasa spesifikasi standar suatu model yang berfungsi untuk membantu merancang sistem. Beberapa jenis UML yang digunakan dalam penelitian ini yaitu use case

diagram, sequence diagram dan activity diagram.

3.2.1. Use Case Diagram

Use case diagram merupakan rangkaian yang saling terkait dan membentuk

sistem secara teratur yang dilakukan atau diawasi oleh seorang aktor. Use case diagram biasanya menggambarkan proses sistem yaitu kebutuhan sistem dari sudut pandang user. Berikut use case diagram dapat dilihat pada Gambar 3.2.

(12)

3.2.2. Activity Diagram

3.2.2.1. Activity Diagram Algoritma L-Queue

Activity diagram menjelaskan proses kerja dari sistem dalam proses input node

serta menentukan titik awal dan akhir yang dilakukan oleh user. Activity diagram bertujuan untuk membantu memahami keseluruhan proses dan menggambarkan interaksi antara beberapa use case. Activity diagram sistem pada aplikasi yang dibuat dapat dilihat pada Gambar 3.3.

Gambar 3.3 Activity Diagram Pencarian Lintasan Terpendek Dengan Algoritma L-Queue

Activity Diagram pada gambar 3.3. menunjukkan aktivitas pengguna (user) dapat

(13)

algoritma L-Queue dan sistem akan menampilkan hasil lintasan terpendek yang dikerjakan oleh algoritma tersebut.

3.2.2.2. Activity Diagram Algoritma Floyd

Activity diagram pada gambar 3.4 menjelaskan proses kerja dari sistem dalam

proses input node serta menentukan titik awal dan akhir yang dilakukan oleh user.

Activity diagram sistem pada aplikasi yang dibuat dapat dilihat pada Gambar 3.4.

Gambar 3.4 Activity Diagram Pencarian Lintasan Terpendek dengan Algoritma Floyd

Activity Diagram pada gambar 3.4. menunjukkan bahwa user dapat memilih

(14)

algoritma Floyd dan sistem akan menampilkan hasil lintasan terpendek yang dikerjakan oleh algoritma tersebut.

3.2.3. Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek juga mengindikasikan

komunikasi antar objek. Sequence Diagram pencarian lintasan terpendek sistem ini dapat dilihat pada Gambar 3.5.

Gambar 3.5 Sequence Diagram

3.3. Perancangan Sistem

Pada perancangan sistem ini akan dijelaskan mengenai ranangan sistem yang akan dikerjakan beserta fitur yang terdapat pada sistem dan dapat digunakan oleh user.

3.3.1 Flowchart Perancangan Sistem Menggunakan Algoritma L-Queue

Pada Gambar 3.6. akan dipaparkan flowchart untuk algoritma L-Queue dimana

flowchart tersebut akan menggambarkan cara kerja sistem yang akan berjalan

(15)

Gambar 3.6. Flowchart Perancangan Sistem Menggunakan Algoritma L-Queue

Keterangan : Pada awal proses, user dapat menginputkan node baru sebagai pertanda bahwa graph yang digunakan adalah dinamis, setelah di proses maka

node akan diinisialisasi kemudian rute-rute yang dilalui akan dievaluasi sesuai

konsep algoritma untuk dapat menghitung lintasan terpendek. Setelah selesai dihitung menggunakan algoritma L-Queue , maka hasil akan ditampilkan.

3.3.2. Flowchart Perancangan Sistem Menggunakan Algoritma Floyd

(16)

Gambar 3.7. Flowchart Perancangan Sistem Menggunakan Algoritma Floyd

Keterangan : Hampir sama dengan algoritma L-Queue pada algoritma Floyd juga melalui tahapan menginputkan node baru sebagai pertanda bahwa graph yang digunakan adalah dinamis, kemudian node akan dievaluasi dan rute-rute yang dilalui akan dibandingkan. Kemudian akan dihitung lintasan terpendek menggunakan algoritma Floyd. Setelah selesai dihitung menggunakan algoritma Floyd , maka hasil akan ditampilkan.

3.4 Perancangan Antarmuka Sistem (Interface)

(17)

3.4.1 Halaman Menu Title

Halaman menu Title merupakan halaman awal pada sistem saat dibuka. Pada halaman ini terdapat beerapa menu bar yaitu, Title, Home, Manage Verteks. Tampilan rancangan halaman menu Title dapat dilihat pada Gambar 3.8 berikut.

Gambar 3.8. Rancangan Antarmuka Halaman Menu Title Tabel 3.1. Keterangan Gambar Rancangan Interface Menu Title

No Keterangan

1 Merupakan Tool Strip Menu Item Title 2 Merupakan Tool Strip Menu Item Home

3 Merupakan Tool Strip Menu Item Manage Verteks 4 Merupakan Tool Strip Menu Item About

(18)

3.4.2. Halaman Menu Home

Halaman menu home merupakan halaman yang digunakan untuk menginputkan

node asal dan node tujuan, kemudian menentukan algoritma yang ingin digunakan

dan juga untuk melihat hasil perbandingan lintasan terpendek baik jarak maupun

execution time (waktu eksekusi). Kemudian terdapat button yang dapat mengacak

graph yang digunakan. Tampilan rancangan menu home dapat dilihat pada Gambar 3.9 berikut :

Gambar 3.9 Rancangan Antarmuka Halaman Menu Home.

Tabel 3.2. Keterangan Gambar Rancangan Interface Menu Home

No Keterangan

1 Merupakan Tool Strip Menu Item Title 2 Merupakan Tool Strip Menu Item Home

3 Merupakan Tool Strip Menu Item Manage Vertexs 4 Merupakan Tool Strip Menu Item About

(19)

7 Merupakan Combo Box untuk node tujuan 8 Merupakan Combo Box untuk Pilihan Algoritma 9 Merupakan Button untuk Hasil

10 Merupakan Material Flat Button untuk Total Jarak 11 Merupakan Material Flat Button untuk Execution Time 12 Merupakan Button untuk Acak Graph

13 Merupakan Button untuk Reload

3.4.3. Halaman Menu Manage Verteks

Halaman menu Manage Verteks merupakan halaman menu yang digunakan untuk melakukan pertambahan node dan menentukan tetangga serta jarak node baru tersebut kemudian dapat juga menghapus node yang ada pada graph yang dijalankan. Berikut adalah tampilan rancangan menu Manage Vertexs pada Gambar 3.10 berikut :

Gambar 3.10 Rancangan Antarmuka Halaman Menu Manage Vertex.

Tabel 3.3. Keterangan Gambar Rancangan Interface Menu Manage Vertex.

No Keterangan

1 Merupakan Tool Strip Menu Item Title 2 Merupakan Tool Strip Menu Item Home

(20)

4 Merupakan Tool Strip Menu Item About 5 Merupakan Tree View untuk menu Root

6 Merupakan Combo Box untuk Pemilihan Tetangga 7 Merupakan Button untuk Tambah Tetangga 8 Merupakan List View untuk Tetangga dan Jarak 9 Merupakan Button untuk Delete Selected Neighbor 10 Merupakan Button untuk Delete Selected Node 11 Merupakan Text Field untuk Nama Node 12 Merupakan Button untuk Tambah Node 13 Merupakan Button untuk Load

14 Merupakan Button untuk Save

15 Merupakan Panel untuk Menu Penambahan Node

3.4.4. Halaman Menu About

(21)

Gambar 3.11 Rancangan Antarmuka Halaman Menu About

Tabel 3.4. Keterangan Gambar Rancangan Interface Menu About

No Keterangan

1 Merupakan Tool Strip Menu Item Title 2 Merupakan Tool Strip Menu Item Home

3 Merupakan Tool Strip Menu Item Manage vertex 4 Merupakan Tool Strip Menu Item About

5 Merupakan Picture Box untuk Foto Penulis 6 Merupakan Text Box untuk Nama

(22)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem. Sistem ini dibangun dengan menggunakan bahasa pemrograman C# dan menggunakan Visual Studio 14.0. Pada sistem ini terdapat 4 (empat) tampilan halaman, yaitu Halaman Title, Halaman Home, Halaman Setting Verteks dan Halaman About.

4.1.1 Tampilan Halaman Menu Title

Halaman beranda merupakan tampilan halaman yang pertama terlihat saat sistem dijalankan. Halaman utama memiliki 4 menu bar, yaitu menu Title, menu

home, menu setting verteks dan menu about. Tampilan Halaman menu

title dapat dilihat pada gambar 4.1

Gambar 4.1 Tampilan Halaman Menu Title

(23)

Halaman menu Home merupakan halaman yang digunakan untuk mengatur node awal dan node tujuan pada graph dan juga untuk menampilkan hasil perhitungan pada graph. Tampilan menu Home dapat dilihat pada Gambar 4.2.

Gambar 4.2 Tampilan Halaman Menu Home

4.1.3 Tampilan Halaman Menu Manage Verteks

(24)

Gambar 4.3 Tampilan Halaman Menu Manage Verteks

4.1.4 Tampilan Halaman Menu About

Tampilan halaman menu tentang merupakan halaman tentang penulis dan penjelasan lainnya. Gambar 4.4 dibawah ini menunjukkan tampilan halaman menu tentang.

(25)

4.2 Pengujian

Pengujian sistem merupakan tahap lanjutan setelah implementasi sistem. Pengujian sistem bertujuan untuk membuktikan sistem yang dibangun telah berjalan dengan baik. Pengujian sistem ini dilakukan pada graph dengan node maksimal 10 nodes dan menggunakan 2 algoritma dengan membandingkan real

running time dan hasil jarak terpendek.

4.2.1 Pengujian Proses Implementasi

Untuk melakukan proses pengujian pertama kali yang harus dilakukan adalah

load graph, dengan cara menuju halaman setting verteks lalu tekan. Tampilan

load graph dapat dilihat pada Gambar 4.5.

Gambar 4.5 Tampilan Load graph

User hanya dapat membuka graph yang sudah dibuat terlebih dahulu atau telah

tersedia. Setelah user menekan button load maka sistem akan menampilkan graph yang tersedia untuk dipilih dan dimasukkan ke dalam proses pengujian. Kemudian graph dapat ditampilkan dalam sistem dengan membuka halaman

home kemudian menekan button dadu yang berarti mengacak susunan node pada

(26)

Gambar 4.6 Tampilan Graph yang Dimasukkan Dalam Sistem

Setelah user memasukkan graph kemudian dapat dilakukan penambahan node ataupun tetangga dari node yang baru, dengan cara menuju kembali ke halaman

setting verteks kemudian memilih untuk menambah node ataupun tambah

tetangga. Hasil dapat dilihat pada Gambar 4.7

Gambar 4.7 Tampilan Penambahan Tetangga pada Sebuah Node

(27)

menuju tetangga nya masing-masing. Tampilan hasil proses penambahan tetangga serta memperbaharui jarak nya dapat dilihat pada Gambar 4.8 berikut.

Gambar 4.8 Tampilan Proses Penambahan Tetangga dan Memperbaharui Jarak

Tampilan hasil graph setelah tetangga dan jarak telah diperbaharui dapt dilihat pada gambar 4.9

(28)

4.2.2 Pengujian Proses Algoritma L-Queue

Queue beroperasi dengan cara First In First Out (FIFO) elemen pertama masuk

merupakan elemen yang pertama keluar yaitu, grafik yang tingkat demi tingkat dieksplorasi.. Untuk penyisipan (insert) hanya dapat dilakukan pada satu sisi yaitu sisi belakang (rear), sedangkan untuk pe nghapusan (remove) pada sisi depan (front) dari list.

Proses pencarian jalur terpendek menggunakan algoritma l-Queue dapat dilihat pada gambar 4.10 berikut

Gambar 4.10 Tampilan Pengujian Pencarian Shortest Path dengan Algoritma L-Queue

4.2.2.1 Perhitungan Manual Algoritma L-Queue

Contoh untuk pencarian lintasan terpendek pada graph maenggunakan algoritma L-Queue dengan graph seperti pada gambar 4.11 berikut

(29)

Gambar 4.11 Contoh graph Lqueue

Tentukan node yang akan menjadi titik asal kemudian tandai dengan nilai 0 pada

node tersebut

Titik asal( a : 0)

Graph ={ a : { b:20 d: 8} b : { c:20 d: 11} c : { e:16 f: 25} d : { c:5 e: 17} e : { f: 6} f : { } }

 Berikan nilai inf atau ∞ untuk setiap node lainnya d[“a”] = 0

d[“b”] = inf d[“c”] = inf d[“d”] = inf d[“e”] = inf d[“f”] = inf

 Berikan nilai “null” pada point (p) tiap node p[“a”] = null

(30)

maka Queue (q) diinisialisasikan sebagai “a” yang merupakan titik asal.

 q={“a}

Selama q tidak kosong , maka  u= q.Dequeue = ”a”

Untuk setiap pasangan yang ada di graph [u] maka, lakukan  v =” b”

untuk relasi node a menuju node b [(b: 20)] Apabila d[v] > d[u] + graph [u] [v], maka d[v] =d[“d”]

d[v] > d[u] + graph [u] [v] = inf > 0 + 20

= “yes”

 Maka d[v] = d [“b”] = d[“a”] + 20

= 0 + 20 = 20  Maka p[v] = p[“b”] = a

Sehingga didapatkan Lintasan terpendek dari “a” menuju node “b” adalah

20 [melalui node a] = 20/a

Gambar 4.12 Graph L-Queue Setelah Update Jarak(1)

untuk relasi node a menuju node d [(d:8)]  Maka, V=”d”

Apabila: d[v] > d[u] +graph [u] [v], maka d[v] = d[“d”]

(31)

d[v] > d[u] +graph [u] [v] = Inf > 0+8

= inf > 8

=”yes”

 Maka, d[v] = d[“d”] = d[“a”]+8 = 0+8=8  P[v]= p[“d”] = a

Sehingga didapatkan Lintasan terpendek dari “a” menuju node “d” adalah

8 [melalui node a] = 8/a

(32)

4.2.3 Pengujian Proses Algoritma Floyd

Algoritma Floyd-Warshall adalah sebuah Algoritma Analisis graf untuk mencari bobot minimum dari graf berarah. Algoritma Floyd-Warshall adalah matriks hubung graf berarah berlabel, dan keluarannya adalah path terpendek dari semua titik ke titik yang lain.

Proses pencarian jalur terpendek dengan algoritma floyd menggunakan inisialisasi matriks dalam perhitungan manual nya. Matriks yang digunakan merupakan representasi dari graph yang dipakai dalam pengujian , apabila 5 node yang diuji maka matriks yang digunakan adalah matriks 5x5 dalam contoh pengujian kali ini penulis menggunakan graph yang terdiri dari 7 node(a,b,c,d,e,f,g). Dalam melakukan proses perhitungan inisialisasikan sebuah

graph ke dalam matriks. Tampilan pemilihan graph dapat dilihat pada Gambar

4.14.

Gambar 4.14 Tampilan Pemilihan Graph

(33)

Gambar 4.15 Tampilan Pengujian Pencarian Shortest Path dengan Algoritma Floyd

4.2.3.1 Perhitungan Manua Algoritma Floydl

Langkah 1. Inisialisasi graph ke dalam matriks

(34)

A B C D E F G H I J K L M N O P Q R S T U V

Dari matriks inisialisasi dapat dicari R0, R1, R2, R3, hingga R21. Dalam gambar

Graph 4.11 diatas terdapat 22 buah titik, yaitu A, B, C, D, E, F, G, H, I, J, K, L,

(35)

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 ∞ 6 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ B ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ C 4 6 0 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ D ∞ ∞ ∞ 0 5 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ E ∞ ∞ ∞ ∞ 0 ∞ 9 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ F ∞ ∞ 3 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ G ∞ ∞ ∞ 11 ∞ ∞ 0 9 8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ H ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 4 11 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ I ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ J ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 14 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ K ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ L ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 10 ∞ ∞ 0 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ M ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 3 ∞ ∞ 0 12 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ N ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 6 ∞ ∞ ∞ ∞ ∞ O ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 14 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ P ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ Q ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 0 ∞ ∞ 7 ∞ ∞ R ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 ∞ 0 ∞ ∞ ∞ ∞ S ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 ∞ ∞ ∞ T ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 7 0 ∞ 12 U ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 ∞ V ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ 4 0

Tabel 4.2 Matriks R0 Proses Perhitungan Jarak R0

(36)
(37)

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 ∞ 6 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ B ∞ 0 ∞ 7 8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

C 4 6 0 10 14 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ D ∞ ∞ ∞ 0 5 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ E ∞ ∞ ∞ ∞ 0 ∞ 9 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ F ∞ ∞ 3 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ G ∞ ∞ ∞ 11 ∞ ∞ 0 9 8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ H ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 4 11 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ I ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ J ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 14 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ K ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ L ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 10 ∞ ∞ 0 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ M ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 3 ∞ ∞ 0 12 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ N ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 6 ∞ ∞ ∞ ∞ ∞ O ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 14 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ P ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ Q ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 0 ∞ ∞ 7 ∞ ∞ R ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 ∞ 0 ∞ ∞ ∞ ∞ S ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 ∞ ∞ ∞ T ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 7 0 ∞ 12 U ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 ∞ V ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ 4 0

(38)
(39)

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 ∞ 6 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ B ∞ 0 ∞ 7 8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

C 4 6 0 10 14 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ D ∞ ∞ ∞ 0 5 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ E ∞ ∞ ∞ ∞ 0 ∞ 9 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ F 7 9 3 13 17 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ G ∞ ∞ ∞ 11 ∞ ∞ 0 9 8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ H ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 4 11 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ I ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ J ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 14 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ K ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ L ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 10 ∞ ∞ 0 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ M ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 3 ∞ ∞ 0 12 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ N ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 6 ∞ ∞ ∞ ∞ ∞ O ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 14 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ P ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ Q ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 0 ∞ ∞ 7 ∞ ∞ R ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 ∞ 0 ∞ ∞ ∞ ∞ S ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 ∞ ∞ ∞ T ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 7 0 ∞ 12 U ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 ∞ V ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ 4 0

(40)
(41)
(42)

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 ∞ 6 10 8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ B ∞ 0 ∞ 7 8 9 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ C 4 6 0 10 14 12 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ D ∞ ∞ ∞ 0 5 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ E ∞ ∞ ∞ ∞ 0 ∞ 9 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ F ∞ ∞ 3 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ G ∞ ∞ ∞ 11 16 13 0 9 8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ H ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 4 11 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ I ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ J ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 14 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ K ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ L ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 10 ∞ ∞ 0 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ M ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 3 ∞ ∞ 0 12 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ N ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 6 ∞ ∞ ∞ ∞ ∞ O ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 14 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ P ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ Q ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 0 ∞ ∞ 7 ∞ ∞ R ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 ∞ 0 ∞ ∞ ∞ ∞ S ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 ∞ ∞ ∞ T ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 7 0 ∞ 12 U ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 ∞ V ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ 4 0

Tabel 4.5 Matriks R3

(43)
(44)

Tabel 4.6 Matriks R4

Proses Perhitungan Jarak R4

(45)
(46)

Tabel 4.7 Matriks R5

Proses Perhitungan Jarak R5

(47)
(48)

Tabel 4.8 Matriks R6 Proses Perhitungan matriks r6

(49)
(50)

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 11 6 10 8 19 20 27 24 31 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ B 16 0 12 7 8 9 17 18 26 22 29 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ C 4 6 0 10 14 12 23 24 32 28 35 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ D 9 11 5 0 5 2 14 15 23 19 26 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ E 29 31 25 20 0 22 9 10 17 14 21 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ F 7 9 3 13 17 0 26 27 35 31 38 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ G 20 22 16 11 16 13 0 9 8 13 20 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ H ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 4 11 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ I 8 10 4 14 18 1 27 28 0 4 39 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ J ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 14 2 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ K ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ L ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 10 ∞ ∞ 0 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ M ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 3 ∞ ∞ 0 12 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ N ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 6 ∞ ∞ ∞ ∞ ∞ O ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 14 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ P ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ Q ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 0 ∞ ∞ 7 ∞ ∞ R ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 ∞ 0 ∞ ∞ ∞ ∞ S ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 ∞ ∞ ∞ T ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 7 0 ∞ 12 U ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 ∞ V ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ 4 0

(51)
(52)

Tabel 4.10 Matriks R8 Proses perhitungan matriks R8

(53)
(54)

Tabel 4.11 Matriks R9 Proses perhitungan matriks R9

(55)
(56)

Tabel 4.12 Matriks R10 Proses pencarian matriks R10

(57)
(58)

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 11 6 10 8 19 20 27 24 31 26 36 35 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ B 16 0 12 7 8 9 17 18 25 22 29 24 34 33 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ C 4 6 0 10 14 12 23 24 31 28 35 30 40 39 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ D 9 11 5 0 5 2 14 15 22 19 26 21 31 30 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ E 29 31 25 20 0 22 9 10 17 14 21 16 26 25 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ F 7 9 3 13 17 0 26 27 34 31 38 33 43 42 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ G 16 18 12 11 16 9 0 9 8 12 20 14 24 24 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ H 24 26 20 30 34 17 43 0 16 4 11 6 16 15 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ I 8 10 4 14 18 1 27 28 0 4 18 6 16 22 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ J 20 22 16 26 30 13 39 40 12 0 14 2 12 18 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ K ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 4 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ L 18 20 14 24 28 11 37 38 10 14 28 0 10 32 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ M 23 25 19 29 33 16 42 43 15 3 17 5 0 12 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ N ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 6 ∞ ∞ ∞ ∞ ∞ O 32 34 28 38 42 25 51 52 24 28 42 14 24 46 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ P ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ Q ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 8 0 ∞ ∞ 7 ∞ ∞ R ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 ∞ 0 ∞ ∞ ∞ ∞ S ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 ∞ ∞ ∞ T ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 7 0 ∞ 12 U ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 1 ∞ ∞ 0 ∞ V ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ 4 0

(59)
(60)

Tabel 4.14 Matriks R12 Proses Perhitungan Matriks R12

A B C D E F G H I J K L M N O P Q R S T U V

(61)
(62)

Tabel 4.15 Matriks R13 Proses pencarian matriks R13

(63)
(64)

Tabel 4.16 Matriks R14 Proses Perhitungan matriks 14

(65)
(66)

Tabel 4.17 Matriks R15 Proses perhitungan matriks R15

(67)
(68)

Tabel 4.18 Matriks R16 Proses perhitungan matriks R16

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 11 6 10 8 19 20 27 24 31 26 36 35 ∞ 49 41 ∞ ∞ 48 ∞ ∞ B 16 0 12 7 8 9 17 18 25 22 29 24 34 33 ∞ 47 39 ∞ ∞ 46 ∞ ∞ C 4 6 0 10 14 12 23 24 31 28 35 30 40 39 ∞ 53 45 ∞ ∞ 52 ∞ ∞ D 9 11 5 0 5 2 14 15 22 19 26 21 31 30 ∞ 44 36 ∞ ∞ 43 ∞ ∞ E 29 31 25 20 0 22 9 10 17 14 21 16 26 25 ∞ 39 31 ∞ ∞ 38 ∞ ∞ F 7 9 3 13 17 0 26 27 34 31 38 33 43 42 ∞ 56 48 ∞ ∞ 55 ∞ ∞ G 16 18 12 11 16 9 0 9 8 12 20 14 24 24 ∞ 38 30 ∞ ∞ 37 ∞ ∞ H 24 26 20 30 34 17 43 0 16 4 11 6 16 15 ∞ 29 21 ∞ ∞ 28 ∞ ∞ I 8 10 4 14 18 1 27 28 0 4 18 6 16 22 ∞ 36 28 ∞ ∞ 35 ∞ ∞ J 20 22 16 26 30 13 39 40 12 0 14 2 12 18 ∞ 32 24 ∞ ∞ 31 ∞ ∞ K 49 51 45 55 59 42 68 69 41 29 43 31 26 38 ∞ 18 10 ∞ ∞ 17 ∞ ∞ L 18 20 14 24 28 11 37 38 10 13 27 0 10 22 ∞ 36 28 ∞ ∞ 35 ∞ ∞ M 23 25 19 29 33 16 42 43 15 3 17 5 0 12 ∞ 26 18 ∞ ∞ 25 ∞ ∞ N 45 47 41 51 55 38 64 65 37 25 39 27 22 0 ∞ 14 6 ∞ ∞ 13 ∞ ∞ O 32 34 28 38 42 25 51 52 24 28 41 14 24 36 0 50 42 ∞ ∞ 49 ∞ ∞ P 31 33 27 37 41 24 50 51 23 11 25 13 8 20 ∞ 0 26 ∞ ∞ 33 ∞ ∞ Q 39 41 35 45 49 32 58 59 31 19 33 21 16 28 ∞ 8 0 ∞ ∞ 7 ∞ ∞ R 33 35 29 39 43 26 52 53 25 13 27 15 10 22 9 2 28 0 ∞ 35 ∞ ∞

(69)
(70)

Tabel 4.19 Matriks R17 Proses perhitungan matriks R17

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 11 6 10 8 19 20 27 24 31 26 36 35 ∞ 49 41 ∞ ∞ 48 ∞ ∞ B 16 0 12 7 8 9 17 18 25 22 29 24 34 33 ∞ 47 39 ∞ ∞ 46 ∞ ∞ C 4 6 0 10 14 12 23 24 31 28 35 30 40 39 ∞ 53 45 ∞ ∞ 52 ∞ ∞ D 9 11 5 0 5 2 14 15 22 19 26 21 31 30 ∞ 44 36 ∞ ∞ 43 ∞ ∞ E 29 31 25 20 0 22 9 10 17 14 21 16 26 25 ∞ 39 31 ∞ ∞ 38 ∞ ∞ F 7 9 3 13 17 0 26 27 34 31 38 33 43 42 ∞ 56 48 ∞ ∞ 55 ∞ ∞ G 16 18 12 11 16 9 0 9 8 12 20 14 24 24 ∞ 38 30 ∞ ∞ 37 ∞ ∞ H 24 26 20 30 34 17 43 0 16 4 11 6 16 15 ∞ 29 21 ∞ ∞ 28 ∞ ∞ I 8 10 4 14 18 1 27 28 0 4 18 6 16 22 ∞ 36 28 ∞ ∞ 35 ∞ ∞ J 20 22 16 26 30 13 39 40 12 0 14 2 12 18 ∞ 32 24 ∞ ∞ 31 ∞ ∞ K 49 51 45 55 59 42 68 69 41 29 43 31 26 38 ∞ 18 10 ∞ ∞ 17 ∞ ∞ L 18 20 14 24 28 11 37 38 10 13 27 0 10 22 ∞ 36 28 ∞ ∞ 35 ∞ ∞ M 23 25 19 29 33 16 42 43 15 3 17 5 0 12 ∞ 26 18 ∞ ∞ 25 ∞ ∞ N 45 47 41 51 55 38 64 65 37 25 39 27 22 0 ∞ 14 6 ∞ ∞ 13 ∞ ∞ O 32 34 28 38 42 25 51 52 24 28 41 14 24 36 0 50 42 ∞ ∞ 49 ∞ ∞ P 31 33 27 37 41 24 50 51 23 11 25 13 8 20 ∞ 0 26 ∞ ∞ 33 ∞ ∞ Q 39 41 35 45 49 32 58 59 31 19 33 21 16 28 ∞ 8 0 ∞ ∞ 7 ∞ ∞ R 33 35 29 39 43 26 52 53 25 13 27 15 10 22 9 2 28 0 ∞ 35 ∞ ∞

(71)
(72)

Tabel 4.20 Matriks R18 Proses perhitungan matriks R17

A B C D E F G H I J K L M N O P Q R S T U V A 0 2 11 6 10 8 19 20 27 24 31 26 36 35 ∞ 49 41 ∞ ∞ 48 ∞ ∞ B 16 0 12 7 8 9 17 18 25 22 29 24 34 33 ∞ 47 39 ∞ ∞ 46 ∞ ∞ C 4 6 0 10 14 12 23 24 31 28 35 30 40 39 ∞ 53 45 ∞ ∞ 52 ∞ ∞ D 9 11 5 0 5 2 14 15 22 19 26 21 31 30 ∞ 44 36 ∞ ∞ 43 ∞ ∞ E 29 31 25 20 0 22 9 10 17 14 21 16 26 25 ∞ 39 31 ∞ ∞ 38 ∞ ∞ F 7 9 3 13 17 0 26 27 34 31 38 33 43 42 ∞ 56 48 ∞ ∞ 55 ∞ ∞ G 16 18 12 11 16 9 0 9 8 12 20 14 24 24 ∞ 38 30 ∞ ∞ 37 ∞ ∞ H 24 26 20 30 34 17 43 0 16 4 11 6 16 15 ∞ 29 21 ∞ ∞ 28 ∞ ∞ I 8 10 4 14 18 1 27 28 0 4 18 6 16 22 ∞ 36 28 ∞ ∞ 35 ∞ ∞ J 20 22 16 26 30 13 39 40 12 0 14 2 12 18 ∞ 32 24 ∞ ∞ 31 ∞ ∞ K 49 51 45 55 59 42 68 69 41 29 43 31 26 38 ∞ 18 10 ∞ ∞ 17 ∞ ∞ L 18 20 14 24 28 11 37 38 10 13 27 0 10 22 ∞ 36 28 ∞ ∞ 35 ∞ ∞ M 23 25 19 29 33 16 42 43 15 3 17 5 0 12 ∞ 26 18 ∞ ∞ 25 ∞ ∞ N 45 47 41 51 55 38 64 65 37 25 39 27 22 0 ∞ 14 6 ∞ ∞ 13 ∞ ∞ O 32 34 28 38 42 25 51 52 24 28 41 14 24 36 0 50 42 ∞ ∞ 49 ∞ ∞ P 31 33 27 37 41 24 50 51 23 11 25 13 8 20 ∞ 0 26 ∞ ∞ 33 ∞ ∞ Q 39 41 35 45 49 32 58 59 31 19 33 21 16 28 ∞ 8 0 ∞ ∞ 7 ∞ ∞ R 33 35 29 39 43 26 52 53 25 13 27 15 10 22 9 2 28 0 ∞ 35 ∞ ∞

(73)
(74)

Tabel 4.21 Matriks R19 Proses perhitungan matriks R19

(75)
(76)

Tabel 4.22 Matriks R20 Proses perhitungan matriks R20

(77)
(78)

Tabel 4.23 Matriks R21 Proses perhitungan matriks R21

(79)
(80)

4.3 Kompleksitas

4.3.1 Kompleksitas Algoritma L-Queue

Perhitungan kompleksitas algoritma Floyd dapat dilihat pada Tabel 4.24 berikut

Tabel 4.24 Kompleksitas Algoritma L-Queue

Ʃ = T(n)

= C1+C1(N)+C2+C3+2C4+C5+C6(N)+C7+C7(N)+C8(N)+C9+C9(N)

= Ɵ(N)

Code c # c#

begin C1 1 C1

Initialize p,d,q ; C2 1 C2

Repeat C3 1 C3

Comment : selection of u; C4 1 C4

remove u from at head; C5 1 C5

Comment : exploation of FS(u); C4 1 C4

Foreach(u,v) € fs(u) suchthat

dv +Lu,v < dv do

C6 N C6(n)

Begin C1 N C1n

dv:= du+Lu,v; C7 N C7n

Pv:=U; C7 N C7n

If V € Q then insert V

into Q at tail

C8 N C8n

End C9 N C9n

Until Q= C7 N C7n

(81)

4.3.2 Kompleksitas Algoritma Floyd

Perhitungan kompleksitas algoritma Floyd dapat dilihat pada Tabel 4.25

(82)

if (i > j){ C7 J C7J

return j; C5 1 C5

Console.write(“\n\t”); C8 1 C8

For (int j=0; j<n; j++) { C2 N C2n

Console.write(j+ “\t”);} C8 N C8n

For (int j=0; j<35; j++){ C2 35 35c2

Console.write(“-“);} C8 35 35c8

For(int i=0; i<n; i++){ C2 N C2n

For(int j=0; j<n; j++){ C2 N² C2N²

Console.write(“\n”);} C8 1 C8

Ʃ = T(n)

= 7C1+ 3C2+ 3C3+ 4C5+ C6+ C7+ 2C8+ 3C2N+ C3N +C7J+ 2C2N² +C3N²+ C7NN³ + C8N + 35C2 + 35C8

(83)

4.4 Real Running-Time

4.4.1 Algoritma L-Queue

Gambar 4.17 Grafik Running Time Algoritma L-Queue

Pada gambar 4.17 dapat disimpulkan bahwa waktu percobaan running time dalam mencari lintasan terpendek menggunakan algoritma L-Queue dengan jumlah node[ n(10)] = 0,00s,dan waktu running time dalam mencari lintasan terpendek dengan jumlah node [n(50)]= 0,00s.

Tabel 4.26 Running Time Algoritma L-Queue

No Node Algortima L-Queue(s)

1 10 0,00

2 20 0,00

3 30 0,00

4 40 0,00

5 50 0,00

(84)

4.4.2 Algoritma Floyd

Pada gambar dapat disimpulkan bahwa waktu percobaan running time dalam mencari lintasan terpendek menggunakan algoritma Floyd dengan jumlah node[ n(10)] = 0,01s,dan waktu running time dalam mencari lintasan terpendek dengan jumlah node [n(50)]= 0,21s.

(85)

perbandingan waktu running time kedua algoritma tersebut, seperti pada gambar

Gambar 4.19 Grafik Running Time Algoritma L-Queue dan Algoritma Floyd

Pada gambar 4.14 dapat disimpulkan bahwa algoritma Floyd memerlukan waktu lebih lama dalam menemukan lintasan terpendek dengan banyak node lebih dari n(10) sampai dengan n(50), karena dalam menentukan lintasan terpendek dalam jumlah node yang sedikit, atau lebih kecil dari n(10) algoritma Floyd tidak memerlukan waktu yang besar. Sedangkan Algoritma L-Queue hanya membutuhkan waktu 0s dalam proses pencarian lintasan terpendek dengan jumlah

node n(10) hingga n(50) dalam percobaan diatas.

Tabel 4.28 Running Time Algoritma L-Queue dan Algoritma Floyd.

No Node Algortima L-Queue(s) Algortima Floyd(s)

(86)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil studi literatur, analisis, perancangan, implementasi, dan pengujian sistem ini, maka kesimpulan yang didapat adalah sebagai berikut:

1. Hasil pencarian lintasan terpendek dalam pengujian graph terhadap algoritma Floyd dan algoritma L-Queue menghasilkan bobot paling minimum dan bernilai sama untuk kedua algoritma.

2. Nilai running time pada algoritma Floyd didapatkan dengan melakukan pengujian terhadap graph yang terdiri dari 20 node atau lebih.

3. Nilai running time pada algoritma L-Queue didapatkan dengan melakukan pengujian terhadap graph yang terdiri dari lebih dari 50 node.

(87)

5.2 Saran

Adapun saran-saran yang diperlukan untuk penelitian maupun pengembangan berikutnya adalah:

1. Sistem ini menampilkan perbandingan jarak dan real running time, untuk penelitian selanjutnya sebaiknya menampilkan perbandingan proses pencarian lintasan terpendek.

2. Sistem ini menggunakan 2 jenis algoritma yaitu L-queue dan Floyd. Untuk pengembangan selanjutnya sebaiknya menggunakan lebih dari 2 algoritma untuk lebih mengoptimalkan pencarian lintasan terpendek dan mengetahui perbandingan kinerja tiap algoritma.

(88)

BAB 2

LANDASAN TEORI

2.1. Pengertian Algoritma

Algoritma adalah urutan atau deskripsi langkah- langkah penyelesaian masalah yang tersusun secara logis, ditulis dengan notasi yang mudah dimengerti sedemikian sehingga langkah- langkah tersebut dapat dilaksanakan oleh pemroses dan merubah masukan masukan menjadi keluaran (Thomas, 2009).

Algoritma adalah ilmu yang mempelajari cara penyelesaian suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu (Barakbah, dkk, 2013).

2.1.1. Syarat Algoritma

Menurut (Knuth, 1997) algoritma harus memenuhi persyaratan :

1. Finiteness : Algoritma harus berakhir (terminate) setelah melakukan

sejumlah langkah proses.

2. Definiteness : Tidak menimbulkan makna ganda (ambgious).

3. Input : Setiap algoritma memerlukan data sebagai masukan untuk diolah.

4. Output : Setiap algoritma memberikan satu atau beberapa hasil keluaran.

5. Effectiveness : langkah-langkah algoritma dikerjakan dalam waktu yang

wajar 2.2. Shortest Path

(89)

kebutuhan untuk efisien algoritma jalur terpendek dikelompokkan berdasarkan jenis pola dan metode pencocokan string yang digunakan (Giorgio, 1998).

2.3. Teori Dasar Graph

Teori graph adalah cabang kajian yang mempelajari sifat-sifat graph. Secara informal, suatu graph adalah himpunan benda-benda yang disebut simpul (vertex atau node) yang terhubung oleh sisi (edge) atau busur (arc) (Diestel, 2006).

Graph dapat dikelompokkan menjadi beberapa jenis bergantung pada sudut

pandang pengelompokkan-nya. Pengelompokkan graph dapat dipandang berdasarkan ada tidak nya sisi ganda atau sisi kalang, berdasarkan jumlah simpul atau berdasarkan orientasi arah pada sisi (Munir, 2007).

Berdasarkan ada atau tidaknya gelang atau busur ganda pada suatu graph maka secara umum graph dapat dikelompokkan menjadi dua jenis:

1. Graph sederhana (simple graph) yaitu graph yang tidak mengandung

gelang maupun sisi-ganda. Pada graph sederhana, sisi adalah pasangan tak-terurut (unordered pairs). Jadi menuliskan sisi (u, v) sama saja dengan (v, u). Kita dapat juga mendefinisikan graph sederhana G = (V, E) terdiri dari himpunan tidak kosong simpul-simpul dan E adalah himpunan pasangan tak-terurut yang berbeda disebut sisi (Munir, 2007).

2. Graph tak-sederhana (unsimple graph) yaitu graph yang mengandung sisi

ganda atau gelang dinamakan graph tak-sederhana (unsimple graph). Ada dua macam graph tak-sederhana, yaitu graph ganda dan graph semu. Sisi pada graph dapat mempunyai orientasi arah. Menurut orientasi arah pada sisinya, graph dibagi menjadi dua jenis, yaitu:

1. Graph tidak berarah (undirected graph) adalah graph yang sisinya

(90)

Gambar 2.1 Graph Tidak berarah

2. Graph berarah (directed graph) adalah graph yang setiap sisinya

diberikan orientasi arah, graph berarah sering dipakai untuk menggambarkan aliran proses, peta lintas suatu kota, dan sebagainya (Munir, 2007). Sebagai contoh graph berarah dapat dilihat pada gambar 2.2

Gambar 2.2 Graph Berarah

2.4. Algoritma L-Queue

Antrian (queue) merupakan pilihan yang sangat bijak ketika kita menerapkan SPT, biasanya disebut Algoritma L-queue, merupakan implementasi yang efisien dalam metode lintasan terpendek yang banyak diketahui dimana ditujukan kepada Bellman- Ford-Moore (Giorgio,1998)

Queue beroperasi dengan cara First In First Out (FIFO) elemen pertama

(91)

Operasi dasar pada queue : 1. create

Adalah suatu operator untuk membentuk dan menunjukkan suatu antrian hampa Q.

Noel ( Create(Q)) = 0

Front (Create(Q)) = tidak terdefinisi

Rear (Create(Q)) = tidak terdefinisi

2. isEmpty

Adalah operator yang menentukan apakah antrean Q hampa atau tidak. Hasil dari operator ini merupakan tipe data berjenis Boolean.

(92)

Algoritma Qdelete

Teknik untuk menghitung panjang jalan terpendek antara semua pasangan node dalam jaringan n-node yang tidak mengandung sirkuit panjang negatif merupakan teknik dari algoritma Floyd (Douglas, 1981).

Algoritma floyd adalah salah satu varian dari pemrograman dinamis, yaitu suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari solusi-solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih dari satu (Khan, 2014).

Algoritma floyd juga dikenal sebagai metode penempatan vertex yang juga merupakan jenis pemrograman dinamis dan digunakan untuk menemukan jalur terpendek antara simpul dari graph berbobot (Wei, 2010).

Algoritma Floyd sangat efisien dari sudut pandang penyimpanan data karena dapat diimplementasikan dengan hanya pengubahan sebuah matriks jarak (Rudi, 2014).

(93)

T[i,j]= min{ T[i,j] , T[i,j] · T[k,j] }

Step 3 : R+=T.

Gambar 2.3. Graph Berbobot untuk Algoritma Floyd

Graph berbotot diatas dapat dijadikan sebagai matriks inisialiasi seperti

pada Tabel 2.1.

Tabel 2.1. Inisialisasi Matriks

Dari matriks inisialisasi dapat dicari R0, R1, R2, R3 dan R4. Kotak abjad berwarna hijau disamping kiri adalah titik awal dan kotak abjad berwarna merah yang ada di atas adalah titik tujuan-nya. Sedangkan kotak angka hijau dan merah berfungsi untuk menentukan sebuah index. Dalam gambar graph 2.3 diatas terdapat 4 buah titik, yaitu A, B, C, D maka akan ada 5 proses yang akan dilewati yaitu R0, R1, R2, R3, dan R4 sebagai

DARI/KE

A B C D

A 0 3 ∞ ∞

B ∞ 0 4 1

C 2 ∞ 0 ∞

(94)

hasil akhir, perlu diingat bahwa hasil dari sebuah proses akan digunakan untuk proses berikutnya.

Dari proses perhitungan tersebut maka akan didapatkan hasil seperti pada gambar 2.4 berikut,

(95)

2.5.1. PSEUDOCODE

Pseudocode Algoritma Floyd

Function fw(int [1 .. n, 1 .. n] graph) { // inisialisasi

Var int [1 .. n, 1 .. n] jarak := graph Var int [1 .. n, 1 .. n] sebelum

For i from 1 to n

For j from 1 to n

If jarak[i,j] < takhingga Sebelum[i,j] := i // perulangan utama

For k from 1 to n

For i from 1 to n

For j from 1 to n

If jarak[i,j] > jarak [i,k] + jarak[k,j] Jarak[i,j]=jarak[i,k] + jarak[k,j]

(96)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Pencarian lintasan terpendek dari satu titik ke titik lain adalah masalah yang sering ditemui dalam kehidupan sehari-hari. Berbagai kalangan menemui permasalahan serupa dengan variasi berbeda, contohnya seorang supir taksi yang mencari jalur terpendek untuk mengantar penumpangnya yang terburu-buru, atau seorang salesman yang mencari jalur terpendek untuk pengaturan rute kunjungan kerjanya.

Seiring perkembangan zaman, ilmu dan teknologi permasalahan pencarian jalur terpendek ke suatu tempat dapat diselesaikan dengan suatu model matematika, agar permasalahan tersebut dapat terselesaikan dengan lebih mudah. Model matematika tersebut akan dibawa kedalam suatu cabang ilmu matematika, untuk pencarian jalur lintasan terpendek cabang ilmu matematika yang terkait adalah teori graph .

Dalam penyelesaian teori graph dalam penentuan jalur lintasan terpendek dibutuhkan suatu algoritma untuk menyelesaikannya, terdapat banyak algoritma dalam penyelsaian masalah pencarian lintasan terpendek seperti algoritma Dijkstra, Bellman-Ford, A*, Floyd, dan sebagainya.

Pada penelitian kali ini penulis akan meneliti pencarian jalur terpendek dengan menggunakan algoritma Floyd dan L-Queue. Algoritma Floyd adalah salah satu metode untuk mencari jalan terpendek dalam graph berbobot .

(97)

solusi-solusi tersebut dibentuk dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusinya lebih dari satu.

Sedangkan algoritma L-queue adalah algoritma yang efisien dalam pencarian jalur terpendek, algoritma ini merupakan pengembangan dari algoritma Bellman-Ford-Moore. Algoritma ini menggunakan prinsip FIFO (First In First Out) dalam penyelesaiannya (Francois, 1991).

1.2 Rumusan Masalah

Berdasarkan latar belakang diatas, maka rumusan masalah yang dapat diambil adalah :

1. Bagaimana cara kerja pencarian rute terpendek menggunakan algoritma L-Queue dan algoritma Floyd ?

2. Bagaimana perbandingan efisiensi algoritma L-Queue dan algoritma Floyd dalam lintasan terpendek (shortest path) dari sisi running time-nya ?

1.3 Ruang Lingkup Masalah

Ruang Lingkup masalah yang diangkat adalah sebagai berikut:

1. Dalam kasus ini yang diteliti yaitu graph terhubung (Connected Graph). 2. Menggunakan graph dinamis.

3. Bobot yang digunakan adalah jarak.

4. Perhitungan dilakukan dengan membandingkan running time dan hasil (result) pencarian lintasan terpendek masing-masing algoritma L-Queue dan algoritma Floyd.

5. Perhitungan dilakukan dengan membandingkan kesesuaian kompleksitas

Big Ɵ (theta) dengan hasil real running time dalam milisekon.

6. Aplikasi ini Offline.

(98)

1.4 Tujuan Penelitian Tujuan penelitian ini adalah:

1. Membandingkan algoritma L-queue dan algoritma Floyd untuk

mendapatkan jalur terpendek yang paling efektif dengan menggunakan bantuan bahasa pemrograman Python dan C#.

2. Membandingkan performansi antara kedua algoritma pencarian, yaitu algoritma L-Queue dan algoritma Floyd, untuk menyelesaikan Shortest

Path Problem, dengan melakukan pengujian terhadap graph.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dapat dihasilkan dari penelitian ini adalah untuk membantu user mengetahui perbandingan cara kerja algoritma L-Queue dan algoritma Floyd dalam pemecahan kasus jalur terpendek

1.6 Metode Penelitian

Penelitian ini menerapkan beberapa metode penelitian sebagai berikut: 1. Studi Literatur

Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan skripsi ini. referensi yang digunakan dapat berupa buku, jurnal, artikel, situs internet yang berkaitan dengan penelitian ini. 2. Pengumpulan dan Analisis Data

Pada tahap ini dilakukan pengumpulan dan analisa data yang

berhubungan dengan penelitian ini seperti fungsi algoritma Floyd dan

L-Queue dapat menentukan lintasan terpendek dari satu tempat ke tempat

lainnya.

3. Perancangan Sistem

(99)

Interface). Proses perancangan ini berdasarkan pada batasan masalah dari

penelitian ini. 4. Implementasi Sistem

Pada Penyelesaian desain yang telah dirancang, baik sistem, dan Graphic User

Interface.

5. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah dikembangkan.

6. Dokumentasi Sistem

Melakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan

penelitian (skripsi).

1.7 Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu : BAB 1 PENDAHULUAN

Bab ini akan menjelaskan mengenai latar belakang penelitian judul skripsi “Analisis dan Perbandingan Algoritma L-Queue dan Floyd Dalam Penentuan Lintasan Terpendek Pada Graph”. Rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, tinjauan pustaka dan sistematika penulisan skripsi.

BAB 2 LANDASAN TEORI

(100)

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Berisi tentang uraian analisis mengenai proses kerja dari pencarian lintasan terpendek menggunakan algoritma L-Queue dan algoritma Floyd pada graph yang terdiri dari flowchart, Unified Modeling Language (UML) serta perancangan antarmuka pengguna.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada tahap ini dilakukan pembuatan sistem dan coding sesuai dengan analisis dan perancangan, kemudian melakukan pengujian sistem.

BAB 5 KESIMPULAN DAN SARAN

(101)

ABSTRAK

Pencarian shortest path (lintasan terpendek) adalah masalah umum dalam suatu weighted,

connected graph. Salah satu cabang ilmu matematika yang terkait dalam penyelesaian

lintasan terpendek adalah teori graph. Dalam menyelesaikan teori graph diperlukan pula

algoritma lintasan terpendek (shortest path algorithm). Penelitian ini menggunakan

algoritma L-Queue dan algoritma Floyd untuk menghitung jarak tependek dari titik awal

sampai titik tujuan dan melihat perbandingan dari cara kerja masing-masing algoritma.

Algoritma L-Queue beroperasi dengan cara FIFO (First In First Out), elemen pertama

masuk merupakan elemen pertama keluar dan juga beberapa operasi dasar seperti insert,

create, remove. Algoritma Floyd menggunakan prinsip dinamis yang melakukan

pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu

keputusan yang terkait. Implementasi sistem menggunakanVisual Studio dengan bahasa

pemogaraman C#.Berdasarkan dari hasil penelitian menunjukkan bahwa perangkat lunak

yang dibangun dapat menjalankan proses pencarian lintasan terpendek menggunakan

algoritma Floyd dan algoritma L-Queue dengan baik. Jarak terpendek yang dihasilkan

kedua algoritma adalah yang paling minimum sedangkan perbandingan hasil real running

time kedua algoritma dapat terlihat dalam jumlah node yang berbeda, pada algoritma

Floyd jumlah node diatas 20, maka hasil running time akan tertera, sedangkan pada

algoritma L-Queue dibutuhkan lebih dari 50 node untuk menampilkan hasil running time.

(102)

ANALYSIS AND COMPARISON L-QUEUE ALGORITHM

AND FLOYD ALGORITHM IN DETERMINING

SHORTEST PATH ON A GRAPH

ABSTRACT

Finding shortest path is a common problem in a weighted connected graph. One of

mathematics science that involved in solved the shortest path problem is graph theory.

In completing the graph theory there also needed the shortest path algorithm. This study

uses L-Queue algorithm and Floyd algorithm to determining the distance from the

starting point to the destination point on a graph and see comparison of the workings by

each algorithm. L-Queue algorithms operate with a FIFO (First In First Out), means the

first element in is the first element out, and other basic operation like insert, create adn

remove. Floyd algorithm using dynamic principle in problem solving by looking at a

solution that would be obtained as a related decisions. Implementation of the system

using Visual Studio with C # language. The software that has been built could run each

algorithms, this application also can be used to determine the shortest distance and shown

the comparison of the real running time of each algorithms. Based on the results of the

study indicate that the software built to run the search process using the shortest path

algorithm and Floyd algorithm L-Queue as well. The shortest distance produced by two

algorithms are the minimum while the comparison of real running time of both

algorithms can be seen in a number of different nodes, the Floyd Algorithm has to add 20

nodes above to get the result of running time, while L-Queue algorithm has to add 50

nodes above to get the result of running time.

(103)

ANALISIS DAN PERBANDINGAN ALGORITMA L-QUEUE

DAN ALGORITMA FLOYD DALAM PENENTUAN

LINTASAN TERPENDEK PADA

GRAPH

SKRIPSI

DHIKA HANDAYANI RANGKUTI 121401110

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(104)

PERSETUJUAN

Judul : ANALISIS DAN PERBADINGAN ALGORITMA L-QUEUE DAN ALGORITMA FLOYD DALAM PENENTUAN LINTASAN TERPENDEK PADA GRAPH

Kategori : SKRIPSI

Nama : DHIKA HANDAYANI RANGKUTI

Nomor Induk Mahasiswa : 121401110

Program Studi : SARJANA(S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (Fasilkom-TI)

Diluluskan di Medan, Mei 2016

Komisi Pembimbing:

Dosen Pembimbing II Dosen Pembimbing I

Jos Timanta Tarigan, S.Kom, M.Sc M.Andri Budiman, ST, M.Comp.Sc, M.E.M

NIP. 19850126 201504 1 001 NIP. 19751008 200801 1 011

Diketahui/Disetujui oleh

Program Studi S1 IlmuKomputer Ketua,

(105)

PERNYATAAN

ANALISIS DAN PERBANDINGAN ALGORITMA L-QUEUE

DAN ALGORITMA FLOYD DALAM PENENTUAN

LINTASAN TERPENDEK PADA GRAPH

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa

kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 25 Mei 2016

Dhika Handayani Rangkuti

Gambar

Gambar 4.13 Graph L-Queue Setelah Update Jarak(2)
Gambar  4.16 Graph Floyd
Tabel 4.2 Matriks R0  Proses Perhitungan Jarak R0
Tabel 4.3 Matriks R1  Proses Perhitungan Jarak R1
+7

Referensi

Dokumen terkait

Berdasarkan pengabdian yang telah dilakukan dapat disimpulkan bahwa, Kedua mitra pengabdian yaitu Kelompok Petambak Gumuk Mas dan Kelompok Petambak Udang Lestari

Berdasarkan hal tersebut penulis tertarik untuk membuat kamus bahasa Jepang- Indonesia dan Indonesia-Jepang yang berbentuk elektronik yang praktis dan efisien dalam pencarian

Bidang Komunikasi dan Informatika mempunyai tugas pokok menyelenggarakan dan membina pelayanan pos, lalu lintas barang kiriman, dan jasa

Penulisan ilmiah ini membahas tentang pembuatan Animasi Gerhana Matahari yang dapat digunakan sebagai sarana informasi bagi semua kalangan umumnya dan khususnya siswa sekolah

Sirsak berpotensi sebagai terapi preventif kista ovarium karena mengandung polifenol yang mengubah area sinyal proses karsinogenik, flavonoid yang dapat menurunkan

Esimer- kiksi rentovihvilä ( Juncus bulbosus ) voi muodos- taa upoksiin hieman vastaavasti valekiehkuraisia kasvustoja, mutta se on kauttaaltaan näkinruohoja vahvempitekoinen,

Kode LED berkedip ini merupakan kode dasar yang nantinya dapat dipakai untuk menghidupkan relay shield yang akan digunakan dalam sistem kendali yang akan

Patient Monitor adalah alat yang digunakan untuk memantau kondisi berbagai kondisi sinyal tubuh pada pasien, di dalam Patient Monitor terdapat suatu parameter yaitu SPO2 dan BPM