LISTING PROGRAM
public void init(List<List<double>> inputTable, double N) {
public void path(int u, int v)
public List<List<double>> FloydAlgo(List<List<double>> M) {
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;
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
Pengalaman Kepanitiaan
[2012] Koordinator Konsumsi Dies Natalis IMILKOM 2012 [2014] Anggota Dokumentasi Porseni 2014
Seminar
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.
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.
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.
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
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.
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
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
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
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
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)
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
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
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
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
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
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
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
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.
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
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
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
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
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
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”]
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
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
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
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,
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
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
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
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
Tabel 4.6 Matriks R4
Proses Perhitungan Jarak R4
Tabel 4.7 Matriks R5
Proses Perhitungan Jarak R5
Tabel 4.8 Matriks R6 Proses Perhitungan matriks r6
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
Tabel 4.10 Matriks R8 Proses perhitungan matriks R8
Tabel 4.11 Matriks R9 Proses perhitungan matriks R9
Tabel 4.12 Matriks R10 Proses pencarian matriks R10
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
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
Tabel 4.15 Matriks R13 Proses pencarian matriks R13
Tabel 4.16 Matriks R14 Proses Perhitungan matriks 14
Tabel 4.17 Matriks R15 Proses perhitungan matriks R15
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 ∞ ∞
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 ∞ ∞
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 ∞ ∞
Tabel 4.21 Matriks R19 Proses perhitungan matriks R19
Tabel 4.22 Matriks R20 Proses perhitungan matriks R20
Tabel 4.23 Matriks R21 Proses perhitungan matriks R21
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
4.3.2 Kompleksitas Algoritma Floyd
Perhitungan kompleksitas algoritma Floyd dapat dilihat pada Tabel 4.25
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
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
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.
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)
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.
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.
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
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
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
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.
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).
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 ∞
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,
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]
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 .
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.
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
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
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
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.
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.
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
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,
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