BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem merupakan teknik pemecahan masalah yang bertujuan untuk menguraikan sebuah sistem menjadi subsistem untuk mengetahui kinerja, hubungan dan interaksi tiap komponen yang berada di sistem guna mencapai suatu tujuan (Whitten, 2007).
Sistem ini akan mencari mencari rute terpendek antar tempat wisata di Kabupaten Tapanuli Tengah dan dirancang dengan menggunakan Algoritma L-Deque dan Algortima Greedy.
3.1.1 Analisis Masalah
Permasalahan yang dibahas pada penelitian ini adalah belum diketahuinya mana yang lebih optimal dari algoritma L-Deque dan algoritma Greedy serta running-time kedua algoritma tersebut dalam menentukan jarak terpendek antar tempat wisata di Kabupaten Tapanuli Tengah.
Pada penelitian ini, penulis membatasi masalah hanya dengan 20 buah vertex. Dalam representasi graph, penentuan hubungan antar vertex dan edge pada graph tempat wisata di Kabupaten Tapanuli Tengah sangat diperlukan, agar dapat dilakukan proses yang lebih optimal. Graph yang digunakan merupakan graph berarah terhubung, di mana Suatu graph berarah terhubung disebut jika ada walk yang menghubungkan setiap dua vertex (titiknya). Setelah itu sistem akan melakukan perbandingan dengan menggunakan graph yang sama terhadap kedua algoritma L-Deque dan Greedy. Analisis masalah dapat diidentifikasi dengan menggunakan diagram Ishikawa (fishbone diagram). Diagram
Ishikawa merupakan suatu alat visual untuk mengidentifikasi, mengeksplorasi dan secara graphik menggambarkan secara detail semua penyebab yang berhubungan dengan suatu permasalahan. Diagram Ishikawa sistem ini dapat dilihat pada Gambar 3.1.
Gambar 3.1 Diagram Ishikawa
3.1.2 Analisis Kebutuhan Sistem
Terdapat dua bagian pada analisis kebutuhan sistem yaitu kebutuhan fungsional dan kebutuhan non-fungsional.
3.1.2.1 Kebutuhan Fungsional
Analisis kebutuhan fungsional disini mendekripsikan tentang sistem yang disediakan. Sistem ini melakukan perhitungan, perbandingan jarak dan waktu pencarian rute terpendek tempat wisata di Kabupaten Tapanuli Tengah. Terdapat beberapa persyaratan fungsional antara lain:
menghasilkan solusi yang optimum
Material Metode
Membutuhkan informasi
jarak terpendek antar
tempat wisata Rute terpendek yang akan
dilalui dari titik
2. Sistem ini dapat mengunakan vertex awal yang sudah ditentukan sebagai vertex asal. 3. Sistem mendapatkan hasil rute mana saja yang akan dilaui pada graph dengan
menggunakan algoritma L-Deque dan algoritma Greedy.
4. Sistem ini memilih parameter yang digunakan untuk perbandingan yaitu kesesuaian kompleksitas Big Ө (theta) kedua algoritma dan running time yang dibutuhkan untuk mendapatkan jarak terpendek.
3.1.2.2 Kebutuhan Non-Fungsional
Kebutuhan non-fungsional adalah kebutuhan yang berisi kinerja operasional dan performance dari suatu sistem. Terdapat beberapa kebutuhan non-fungsional yang harus dipenuhi diantaranya:
1. User Friendly
Sistem yang dibangun harus mudah digunakan dan dimengerti oleh user dengan tampilan yang sederhana.
2. Performa
Perangkat lunak yang akan dibangun harus dapat menunjukkan hasil running time dan rute terpendek dari pencarian tempat wisata.
3. Hemat Biaya
Sistem yang digunakan tidak memerlukan perangkat tambahan yang dapat mengeluarkan biaya.
3.1.3 Flowchart
Flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program.
3.1.3.1 Flowchart Sistem
Flowchart dari sistem yang dibangun dapat dilihat pada Gambar 3.2.
Gambar 3.2 Flowchart Sistem
3.1.3.2 Flowchart Algoritma L-Deque
mulai
Input vertex awal dan vertex tujuan
Asumsikan vertex awal = 0 dan
vertex lainnya = Inisialisasi Q = jumlah vertex
dalam graph
Mencari jarak terpendek dari
vertex yang dipilih ke vertex
tujuan
3.1.3.2 Flowchart Algoritma Greedy
Flowchart dari algoritma Greedy dapat dilihat pada Gambar 3.4.
Tidak
Ya
Gambar 3.4 Flowchart Algoritma Greedy Mulai
Mencari nilai titik tetangganya
Menghitung jarak titik yang dipilih ke titik tujuan
Apakah titik tujuan sudah terpenuhi
Selesai Pilih jarak terpendek
Tentukan titik awal dan titik tujuan
3.2 Pemodelan
Pada bagian ini digunakan Unified Modeling Languange (UML) sebagai bahasa spesifikasi standar suatu model yang berfungsi untuk membantu merancang sistem. Sistem ini dibangun dengan membuat use case diagram, sequence diagram dan activity diagram.
3.2.1 Use Case Diagram
Use case adalah gambaran fungsional suatu sistem, sehingga user mengetahui layanan yang disediakan oleh sistem. Di mana penggambaran sistem dari sudut pandang user itu sendiri sehingga use case lebih ditekankan pada fungsionalitas yang ada pada sistem, bukan berdasarkan alur atau urutan kejadian. Berikut use case diagram dapat dilihat pada Gambar 3.5.
Gambar 3.5 Use Case Diagram
3.2.2. Activity Diagram
Activity diagram dapat menggambarkan berbagai alur aktivitas dalam sistem yang akan dirancang, bagaimana masing-masing alur berawal, decision yang mungkin terjadi dan bagaimana berakhir.
3.2.2.1 Activity Diagram Cara Kerja Sistem Dengan Algoritma L-Deque
Activity diagram pada Gambar 3.6 menjelaskan proses kerja dari sistem untuk proses menentukan titik asal dan tujuan serta memilih algoritma L-Deque yang akan digunakan oleh user. Activity diagram sistem pada aplikasi yang dibuat dapat dilihat pada Gambar 3.6.
Gambar 3.6 Activity Diagram Cara Kerja Sistem Dengan Algortima L-Deque
3.2.2.2 Activity Diagram Cara Kerja Sistem Dengan Algoritma Greedy
oleh user. Activity diagram sistem pada aplikasi yang dibuat dapat dilihat pada Gambar 3.7.
Gambar 3.7 Activity Diagram Cara Kerja Sistem Dengan Algortima Greedy
3.2.3 Sequence Diagram
Sequence diagram mengilustrasikan bagaimana message dikirim dan diterima diantara objek dan diurutan yang sama, sequence membantu untuk menggambarkan data yang masuk dan keluar sistem. Sequence diagram sistem ini dapat dilihat pada Gambar 3.8.
Gambar 3.8 Sequence Diagram Sistem 3.4 Perancangan Antarmuka (Interface)
Perancangan antarmuka (interface) merupakan bagian penting dalam membangun sebuah sistem. Antarmuka yang baik perlu memperhatikan faktor pengguna dalam menggunakan sistem, selain untuk mempermudah pengguna dalam menggunakan sistem yang dibangun juga perlu diperhatikan kenyamanan dari pengguna dalam menggunakan sistem tersebut. Antarmuka yang terdapat pada sistem ini adalah halaman menu Home, Shortest Path, Help dan About.
3.4.1 Halaman Menu Home
Heading Penentuan Rute Terpendek Antar Tempat Wisata
1
2
PERBANDINGAN ALGORITMA L-DEQUE DAN ALGORITMA GREEDY DALAM MENENTUKAN RUTE TERPENDEK ANTAR TEMPAT WISATA DI KABUPATEN TAPANULI
TENGAH
NURUL FITHRIYANI HARAHAP 131401060
Logo
PROGRAM STUDI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Gambar 3.9 Rancangan Antarmuka Halaman Menu Home
Tabel 3.1 Keterangan Gambar Rancangan Antarmuka Halaman Menu Home
3.4.2 Halaman Menu Shortest Path
Halaman Shortest Path merupakan halaman yang tampil saat pengguna memilih menu Shortest Path pada halaman utama Home. Pada halaman ini pengguna dapat melihat graph yang akan ditampilkan, memilih algoritma yang akan digunakan, serta melihat
No Keterangan
1 Label untuk menampilkan keterangan judul sistem
2 TabControl berfungsi untuk menunjukkan halaman-halaman yang tersedia pada sistem
3 Text Box untuk menampilkan judul skripsi, nama dan NIM 4 Picture Box untuk menampilkan logo Universitas Sumatera Utara 5 Text Box untuk menampilkan Program Studi
hasil total jarak, rute dan execution time dari kedua algoritma tersebut. Rancangan halaman menu Shortest Path dapat dilihat pada Gambar 3.10 dan keterangan gambar rancangan halaman pada Tabel 3.2.
1
Informasi Tempat Wisata Terdekat Berdasarkan Jarak
Nama Tempat Wisata Rute yang dilalui Jarak
9
14
12
13
11
Gambar 3.10 Rancangan Antarmuka Halaman Menu Shortest Path Tabel 3.2 Keterangan Gambar Rancangan Antarmuka Halaman Menu Shortest
Path
No Keterangan
1 Tab Control untuk menunjukkan halaman yang tersedia pada sistem 2 Label untuk Tentukan Rute
3 Label untuk Asal
4 Combo Box untuk pemilihan vertex asal 5 Label untuk Tujuan
6 Combo Box untuk pemilihan vertex tujuan 7 Label untuk Algoritma
10 Label untuk Waktu Proses
11 Text Box untuk menampilkan Hasil Wakru Proses 12 Label untuk judul tabel
13 Datagridview untuk menampilkan informasi tempat wisata terdekat berdasarkan jarak
14 Button untuk menampilkan graph
3.4.3 Halaman Menu Help
Halaman Help merupakan halaman yang tampil saat pengguna memilih menu pada menu bar. Pada halaman ini pengguna dapat melihat petunjuk penggunaan dari sistem. Rancangan halaman menu Help dapat dilihat pada Gambar 3.11 dan keterangan gambar rancangan halaman pada Tabel 3.3.
1
Home Shortest Path Help About
PETUNJUK PENGGUNAAN SISTEM
2
3
Gambar 3.11 Rancangan Antarmuka Halaman Menu Help
Tabel 3.3 Keterangan Gambar Rancangan Antarmuka Halaman Menu Help
3.4.4 Halaman Menu About
Halaman Tentang merupakan halaman yang berisi biodata penulis dan penjelasan lainnya, Rancangan halaman menu Tentang dapat dilihat pada Gambar 3.12 dan keterangan gambar rancangan halaman pada Tabel 3.4.
1
Home Shortest Path Help About
3 2
Gambar 3.12 Rancangan Antarmuka Halaman Menu About
No Keterangan
1 Tab Control untuk menunjukkan halaman yang tersedia pada sistem 2 Label untuk menampilkan judul petunjuk penggunaan system
Tabel 3.4 Keterangan Gambar Rancangan Antarmuka Halaman Menu About
No Keterangan
1 Tab Control untuk menunjukkan halaman yang tersedia pada sistem 2 Text Box untuk menampilkan informasi tentang aplikasi secara umum 3 Picture Box untuk menampilkan logo fakultas
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem. Sistem ini dirancang dengan menggunakan bahasa pemrograman C#. Pada sistem ini terdapat 4 (empat) tampilan halaman yaitu Halaman Home, Halaman Shortest-Path, Halaman Help dan Halaman About.
4.1.1 Tampilan Halaman Menu Home
Tampilan halaman menu home merupakan tampilan halaman terlihat pertama sekali pada saat sistem dijalankan. Halaman ini berisi judul sistem, nama penulis, nim penulis, logo Universitas dan nama Pogram Studi. Tampilan halaman menu home dapat dilihat pada Gambar 4.1.
4.1. Tampilan Halaman Menu Shortest-Path
Tampilan halaman menu shortest-path dapat dilihat pada Gambar 4.2.
Gambar 4.2 Tampilan Halaman Menu Shortest-Path
Tampila menu shortest-path merupakan halaman yang digunakan untuk mengatur lokasi asal, lokasi tujuan, algoritma yang dipilih, menampilkan hasil total jarak terpendek dan waktu proses serta dapat melihat graph antar tempat wisata dengan mengklik button
”Lihat Graph”. Tampilan Graph dapat dilihat pada Gambar 4.3.
Gambar 4.3 Tampilan Graph Tempat Wisata di Kabupaten Tapanuli Tengah
4.1.3 Tampilan Halaman Menu Help
Tampilan halaman menu help merupakan halaman yang berfungsi sebagai petunjuk penggunaan dari sistem. Tampilan halaman menu help dapat dilihat pada Gambar 4.4.
4.1.4 Tampilan Halaman Menu About
Tampilan halaman menu About merupakan halaman yang berisi deskripsi singkat tentang aplikasi dan biodata penulis serta penjelasan lainnya. Tampilan halaman menu about dapat dilihat pada Gambar 4.5.
Gambar 4.5 Tampilan Halaman Menu About
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 grap tempat wisata yang telah ditentukan dengan menggunakan dua algoritma dan membandingkan real runnung time serta hasil jarak terpendek.
4.2.1 Pengujian Proses Implementasi
Untuk melakukan proses pengujian pertama kali yang harus dilakukan adalah memilih
salah tempat wisata sebagai titik asal, contohnya „Pantai Kahona‟ dan juga memilih salah
satu tempat wisata sebagai titik tujuan jika menggunakan Algoritma Greedy, contohnya
„Makam Papan Tinggi‟ serta salah satu algoritma, contohnya Algoritma „Greedy‟. Maka
akan muncul tampilan seperti Gambar 4.6.
Gambar 4.6 Proses Pengujian Implementasi
4.2.2 Pengujian Proses Algoritma L-Deque
Pada Algoritma L-Deque tidak harus ditentukan titik tujuan, yang harus ditentukan hanya
titik awal, contohnya „Pantai Kahona‟ dan algoritma yang dipilih, contohnya Algoritma „L-Deque‟. Kemudian klik button „Proses‟ di mana button „Proses‟ akan melakukan pencarian menggunakan algoritma L-Deque dan hasil pencarian akan ditampilkan pada
tabel „Informasi Tempat Wisata Terdekat Berdasarkan jarak‟ serta menampilkan waktu
yang dibutuhkan algoritma tersebut dalam melakukan proses pencarian, dapat dilihat pada gambar 4.7. Perhitungan pada algoritma L-Deque terdapat nilai inf (∞) di mana pada perhitungan didalam sistem komputer nilai inf dihasilkan dari perhitungan satu dibagi
null ( 1 : 0 = ∞) sehingga dalam implementasinya dalam aplikasi ini menggunakan nilai
Gambar 4.7 Hasil Pengujian Menggunakan Algoritma L-Deque
4.2.2.1 Perhitungan Manual Algoritma L-Deque
Contoh pencarian lintasan terpendek dengan menggunakan algoritma L-Deque dapat dilihat pada Gambar 4.8.
Gambar 4.8 Graph Perhitungan Algoritma L-Deque
Masukkan vertex yang ada dalam graph ke dalam daftar Deque. Daftar Deque [ A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T ]. Kemudian tentukan vertex
yang akan menjadi titik asal yaitu vertex A kemudian tandai dengan nilai 0 dan vertex
lainnya nilai inf (∞). Contohnya graph pada gambar 4.8 di mana :
d [„A‟] = 0 d [„E‟] = inf d [„I‟] = inf d [„M‟] = inf d [„Q‟] = inf d [„B‟] = inf d [„F‟] = inf d [„J‟] = inf d [„N‟] = inf d [„R‟] = inf d [„C‟] = inf d [„G‟] = inf d [„K‟] = inf d [„O‟] = inf d [„S‟] = inf
d [„D‟] = inf d [„H‟] = inf d [„L‟] = inf d [„P‟] = inf d [„T‟] = inf
Kemudian beri nilai „null‟ pada point (p) tiap vertex :
d [„A‟] = null d [„F‟] = null d [„K‟] = null d [„P‟] = null
d [„B‟] = null d [„G‟] = null d [„L‟] = null d [„Q‟] = null
d [„C‟] = null d [„H‟] = null d [„M‟] = null d [„R‟] = null
d [„D‟] = null d [„I‟] = null d [„N‟] = null d [„R‟] = null
d [„E‟] = null d [„J‟] = null d [„O‟] = null d [„T‟] = null Dapat dilihat pada gambar 4.9.
Gambar 4.9 Graph Perhitungan Algoritma L-Deque dalam Penentuan Vertex Asal Vertex yang bisa dikunjungi dari vertex A ialah vertex B dengan bobot jarak 13,3 dan juga vertex C dengan bobot jarak 12. Hitung d[v] untuk vertex B :
d[v] > d[u] + edge [u][v]
d[“B”] > d[“A”] + edge [“A”][“B”]
d[“B”] > 0 + 13,3 inf > 13,3
Jadi diperoleh d[“B”] = 13,3 yaitu lintasan terpendek dari vertex „A‟ ke vertex „B‟ melalui vertex „A‟.Kemudian hitung untuk vertex C : d[v] > d[u] + edge [u][v]
d[“C”] > d[“A”] + edge [“A”][“C”] d[v] > 0 + 12
inf > 12
Jadi diperoleh d[“C”] = 12 yaitu lintasan terpendek dari vertex „A‟ ke vertex „C‟ melalui vertex „A‟. Dapat dilihat pada gambar 4.10
Gambar 4.10 Graph Perhitungan Algoritma L-Deque dari Vertex A ke
Vertex B dan Vertex C
Kemudian pilih edge yang bisa dikunjungi dari vertex B, yaitu BC dengan bobot jarak 1.8. Hitung d[v] untuk vertex C : d[v] > d[u] + edge [u][v]
d[“C”] > d[“B”] + edge [“B”][“C”]
d[“C”] > 13,3 + 1,8 12 > 15,1
Jawabannya „tidak‟ jadi d[“C”] = 12 yang dipilih. Edge BD juga bisa dikunjungi dari vertex B dengan bobot jarak 24, hitung d[v] untuk vertex D :
d[v] > d[u] + edge [u][v]
d[“D”] > d[“B”] + edge [“B”][“D”]
d[“D”] > 13,3 + 24 inf > 37,3
23,3 39
Jadi diperoleh d[“D”] = 37,3 yaitu lintasan terpendek dari vertex „A‟ ke vertex „D‟ melalui vertex „B‟. Edge BE juga bisa dikunjungi dari vertex B dengan bobot jarak 4,4. Hitung d[v] untuk vertex E : d[v] > d[u] + edge [u][v]
d[“E”] > d[“B”] + edge [“B”][“E”]
d[“E”] > 13,3 + 4,4 inf > 17,7
Jadi diperoleh d[“E”] = 17,7 yaitu lintasan terpendek dari vertex „A‟ ke vertex „E‟ melalui vertex „B‟. Dapat dilihat pada gambar 4.11.
Gambar 4.11 Graph Perhitungan Algoritma L-Deque dari Vertex B ke
Vertex C, Vertex D dan Vertex E
Pilih edge yang bisa dikunjungi dari vertex C, yaitu CB dengan bobot jarak 1.8. Hitung d[v] untuk vertex B : d[v] > d[u] + edge [u][v]
d[“B”] > d[“C”] + edge [“C”][“B”]
d[“B”] > 12 + 1,8 13,3 > 13,8
Jawabannya „tidak‟ jadi d[“B”] = 13,3 yang dipilih. Edge CE juga bisa dikunjungi dari vertex C dengan bobot jarak 4,8. Hitung d[v] untuk vertex E :
d[v] > d[u] + edge [u][v]
d[“C”] > d[“C”] + edge [“C”][“E”]
d[“C”] > 12 + 4,8
17,7 > 16,8
Jadi diperoleh d[“E”] = 16,8 yaitu lintasan terpendek dari vertex „A‟ ke vertex „E‟ melalui vertex „C‟. Dapat dilihat pada gambar 4.12.
. Gambar 4.12 Graph Perhitungan Algoritma L-Deque dari Vertex C ke
Vertex B dan Vertex E
Pilih edge yang bisa dikunjungi dari vertex D, yaitu DF dengan bobot jarak 27. Hitung d[v] untuk vertex F : d[v] > d[u] + edge [u][v]
d[“F”] > d[“D”] + edge [“D”][“F”] ; d[“F”] > 37,3 + 27 ; Inf > 64,3.
Jadi diperoleh d[“F”] = 64,3 yaitu lintasan terpendek dari vertex „A‟ ke vertex „F‟ melalui vertex „D‟. Edge DE juga bisa dikunjungi dari vertex D dengan bobot jarak 39. Hitung d[v] untuk vertex D :
d[v] > d[u] + edge [u][v]
d[“D”] > d[“D”] + edge [“D”][“E”]
d[“D”] > 37,3 + 23,3 ; 16,8 > 60,6
Jawaban „tidak‟ jadid[“D”] = 16,8 yang dipilih. Dapat dilihat pada gambar 4.13. 23,3 39
Gambar 4.13 Graph Perhitungan Algoritma L-Deque dari Vertex D ke
Vertex E dan Vertex F
Pilih edge yang bisa dikunjungi dari vertex E, yaitu ED dengan bobot jarak 23,3. Hitung d[v] untuk vertex D : d[v] > d[u] + edge [u][v]
d[“E”] > d[“E”] + edge [“E”][“D”]
d[“E”] > 16,8 + 23,3 37,3 > 40,1
Jawabannya „tidak‟ jadi d[“E”] = 37,3 yang dipilih. Edge EH juga bisa dikunjungi dari vertex E dengan bobot jarak 50. Hitung d[v] untuk vertex H :
Jawabannya „tidak‟ jadid[“F”] = 55,8 yang dipilih. Dapat dilihat pada gambar 4.14.
.
Gambar 4.14 Graph Perhitungan Algoritma L-Deque dari Vertex E ke Vertex D dan
Vertex H
Kemudian pilih edge yang bisa dikunjungi dari vertex F, yaitu FG dengan bobot jarak 33. Hitung d[v] untuk vertex G : d[v] > d[u] + edge [u][v]
d[“G”] > d[“F”] + edge [“F”][“G”]
d[“G”] > 55,8 + 33 Inf > 88,8
Jadi diperoleh d[“G”] = 88,8 yaitu lintasan terpendek dari vertex „A‟ ke vertex „G‟ melalui vertex „F‟. Dapat dilihat pada gambar 4.15.
Gambar 4.15 Graph Perhitungan Algoritma L-Deque dari Vertex F ke Vertex G
23,3 39
55,8 /E
23,3 39
55,8 /E
88,8 /F
Pilih edge yang bisa dikunjungi dari vertex G, yaitu GI dengan bobot jarak 4. vertex „G‟ . Edge GL juga bisa dikunjungi dari vertex G dengan bobot jarak 6, hitung d[v] untuk vertex I : d[v] > d[u] + edge [u][v] melalui vertex „G‟. Dapat dilihat pada gambar 4.16.
Gambar 4.16 Graph Perhitungan Algoritma L-Deque dari Vertex G ke Vertex I,
Vertex L dan Vertex M
Pilih edge yang bisa dikunjungi dari vertex H, yaitu HI dengan bobot jarak 16. Hitung d[v] untuk vertex I : d[v] > d[u] + edge [u][v]
d[“I”] > d[“H”] + edge [“H”][“I”]
d[“I”] > 66,8 + 16 92,8 > 82,8
Jawabannya „tidak‟ jadi d[“I”] = 82,8. Edge HJ juga bisa dikunjungi dari vertex H dengan bobot jarak 14, hitung d[v] untuk vertex J : vertex „H‟. Edge HK juga bisa dikunjungi dari vertex H dengan bobot jarak 12. Hitung d[v] untuk vertex M : d[v] > d[u] + edge [u][v]
d[“K”] > d[“H”] + edge [“H”][“K”]
d[“K”] > 66,8 + 12 inf > 78.8
Jadi diperoleh d[“K”] = 78,8 yaitu lintasan terpendek dari vertex „A‟ ke vertex „K‟ melalui vertex „H‟. Edge HO juga bisa dikunjungi dari vertex H dengan bobot jarak 13,1. Hitung d[v] untuk vertex M : d[v] > d[u] + edge [u][v]
d[“O”] > d[“H”] + edge [“H”][“O”]
d[“O”] > 66,8 + 13,1 inf > 79,9
Jadi diperoleh d[“O”] = 79,9 yaitu lintasan terpendek dari vertex „A‟ ke vertex „O‟ melalui vertex „H‟ Dapat dilihat pada gambar 4.17.
.
Gambar 4.17 Graph Perhitungan Algoritma L-Deque dari Vertex H ke Vertex I,
Vertex J, Vertex K dan Vertex O
Pilih edge yang bisa dikunjungi dari vertex I, yaitu IG dengan bobot jarak 4. Hitung d[v] untuk vertex I : d[v] > d[u] + edge [u][v]
d[“G”] > d[“I”] + edge [“I”][“G”]
d[“G”] > 82,8 + 4 88,8 > 86,8
Jadi diperoleh d[“G”] = 86,8 yang dipilih yaitu lintasan terpendek dari vertex „A‟ ke vertex „G‟ melalui vertex „I‟. Edge IM juga bisa dikunjungi dari vertex I dengan bobot jarak 6, hitung d[v] untuk vertex M : d[v] > d[u] + edge [u][v]
d[“M”] > d[“I”] + edge [“I”][“M”]
d[“M”] > 82,8 + 5,4 91,8 > 88,2
Jadi diperoleh d[“M”] = 90,8 yaitu lintasan terpendek dari vertex „A‟ ke vertex „L‟ melalui vertex „I‟. Edge IO juga bisa dikunjungi dari vertex I dengan bobot jarak 4,5. Hitung d[v] untuk vertex O : d[v] > d[u] + edge [u][v]
d[“O”] > d[“I”] + edge [“I”][“O”]
d[“O”] > 82,8 + 4,5 79,9 > 87,3
Jawabannya „tidak‟ jadid[“Q”] = 79,9 yang dipilih. Edge IP juga bisa dikunjungi dari vertex I dengan bobot jarak 1, hitung d[v] untuk vertex P : d[v] > d[u] + edge [u][v]
d[“P”] > d[“I”] + edge [“I”][“P”]
d[“P”] > 82,8 + 1 inf > 83,8
Jadi diperoleh d[“P”] = 83,8 yaitu lintasan terpendek dari vertex „A‟ ke vertex „P‟ melalui vertex „I‟. Edge IQ juga bisa dikunjungi dari vertex I dengan bobot jarak 9,7. Hitung d[v] untuk vertex Q : d[v] > d[u] + edge [u][v]
d[“Q”] > d[“I”] + edge [“I”][“Q”]
d[“Q”] > 82,8 + 9,7 inf > 92.5
Jadi diperoleh d[“Q”] = 92,5 yaitu lintasan terpendek dari vertex „A‟ ke vertex „Q‟ melalui vertex „I‟. Dapat dilihat pada gambar 4.18.
23,3 39
55,8 /E
88,2 /I
Gambar 4.18 Graph Perhitungan Algoritma L-Deque dari Vertex I ke Vertex G,
Jawaban „tidak‟ jadid[“K”] = 78,8 yang dipilih. Edge JO juga bisa dikunjungi dari vertex J dengan bobot jarak 13. Hitung d[v] untuk vertex O :
d[v] > d[u] + edge [u][v]
d[“O”] > d[“J”] + edge [“J”][“O”]
d[“O”] > 80,8 + 13 78,8 > 93,8
Jawaban „tidak‟ jadi d[“O”] = 78,8 yang dipilih. Dapat dilihat pada gambar 4.19.
Gambar 4.19 Graph Perhitungan Algoritma L-Deque dari Vertex J ke Vertex K dan
d[“O”] > d[“J”] + edge [“J”][“O”]
d[“O”] > 78,8 + 2,2 79,9 > 81
Jawaban „tidak‟ jadid[“O”] = 79,9 yang dipilih. Edge KJ juga bisa dikunjungi dari vertex K dengan bobot jarak 1,8. Hitung d[v] untuk vertex J:
d[v] > d[u] + edge [u][v]
d[“J”] > d[“K”] + edge [“K”][“J”]
d[“J”] > 78,8 + 1,8 80,8 > 80,6
Jawaban „tidak‟ jadi d[“J”] = 80,6 yang dipilih. Dapat dilihat pada gambar 4.20.
Gambar 4.20 Graph Perhitungan Algoritma L-Deque dari Vertex K ke Vertex J dan
Vertex O
Selanjutnya pilih edge yang bisa dikunjungi dari vertex O, yaitu OP dengan bobot jarak 4. Hitung d[v] untuk vertex P : d[v] > d[u] + edge [u][v]
d[“P”] > d[“O”] + edge [“O”][“P”]
d[“P”] > 79,9+ 4 83,8 > 83,9
Jawaban „tidak‟ jadid[“P”] = 83,8 yang dipilih. Dapat dilihat pada gambar 4.21.
23,3 39
55,8 /E
88,2 /I
. Gambar 4.21 Graph Perhitungan Algoritma L-Deque dari Vertex O ke Vertex P
Pilih edge yang bisa dikunjungi dari vertex P, yaitu PQ dengan bobot jarak 10,5. Hitung d[v] untuk vertex Q : d[v] > d[u] + edge [u][v]
d[“Q”] > d[“P”] + edge [“P”][“Q”]
d[“Q”] > 83,8 + 10,5 92,5 > 94,3
Jawaban „tidak‟ jadid[“Q”] = 92,5 yang dipilih. Dapat dilihat pada gambar 4.22.
Gambar 4.22 Graph Perhitungan Algoritma L-Deque dari Vertex P ke Vertex Q
23,3 39
55,8 /E
23,3 39
55,8 /E
Pilih edge yang bisa dikunjungi dari vertex L, yaitu LM dengan bobot jarak 6,4. Hitung d[v] untuk vertex M : d[v] > d[u] + edge [u][v]
d[“M”] > d[“L”] + edge [“L”][“M”]
d[“M”] > 90,8 + 6,4 88,2 > 97,2
Jawabannya „tidak‟ jadi d[“M”] = 88,2 yang dipilih. Edge LQ juga bisa dikunjungi dari vertex L dengan bobot jarak 6,9. Hitung d[v] untuk vertex Q :
d[v] > d[u] + edge [u][v]
d[“Q”] > d[“L”] + edge [“L”][“Q”]
d[“Q”] > 90,8 + 6,9 92,5 > 97,7
Jawaban „tidak‟ jadi d[“Q”] = 92,5 yang dipilih. Dapat dilihat pada gambar 4.23.
Gambar 4.23 Graph Perhitungan Algoritma L-Deque dari Vertex L ke Vertex Q dan
Vertex M
Pilih edge yang bisa dikunjungi dari vertex M, yaitu MN dengan bobot jarak 14. Hitung d[v] untuk vertex N : d[v] > d[u] + edge [u][v]
d[“N”] > d[“M”] + edge [“M”][“N”]
d[“N”] > 88,2 + 14 Inf > 102,2
Jadi diperoleh d[“N”] = 102,2 yaitu lintasan terpendek dari vertex „A‟ ke vertex „N‟ melalui vertex „M‟. Edge MQ juga bisa dikunjungi dari vertex M dengan bobot jarak 8. Hitung d[v] untuk vertex Q : d[v] > d[u] + edge [u][v]
d[“Q”] > d[“M”] + edge [“M”][“Q”]
d[“Q”] > 88,2 + 8 92,5 > 96,2
Jawaban „tidak‟ jadi d[“Q”] = 92,5 yang dipilih. Edge MR juga bisa dikunjungi dari vertex M dengan bobot jarak 9,3. Hitung d[v] untuk vertex R :
d[v] > d[u] + edge [u][v]
d[“R”] > d[“M”] + edge [“M”][“R”]
d[“R”] > 88,2 + 9,3 Inf > 97,5
Jadi diperoleh d[“R”] = 97,5 yaitu lintasan terpendek dari vertex „A‟ ke vertex „R‟ melalui vertex „M‟. Dapat dilihat pada gambar 4.24.
Gambar 4.24 Graph Perhitungan Algoritma L-Deque dari Vertex M ke Vertex N,
Vertex Q dan Vertex R
Pilih edge yang bisa dikunjungi dari vertex N, yaitu NQ dengan bobot jarak 9. Hitung d[v] untuk vertex Q : d[v] > d[u] + edge [u][v]
d[“Q”] > d[“N”] + edge [“N”][“Q”]
92,5 > 111,2
Jadi diperoleh d[“Q”] = 92,5 yang dipilih. Edge NR juga bisa dikunjungi dari vertex N dengan bobot jarak 3,5. Hitung d[v] untuk vertex R : d[v] > d[u] + edge [u][v]
d[“R”] > d[“N”] + edge [“N”][“R”]
d[“R”] > 102,2 + 3,5 97,5 > 105,7
Jawaban „tidak‟ jadid[“R”] = 97,5 yang dipilih. Edge NS juga bisa dikunjungi dari vertex N dengan bobot jarak 1,5. Hitung d[v] untuk vertex S :
d[v] > d[u] + edge [u][v]
d[“S”] > d[“N”] + edge [“N”][“S”]
d[“S”] > 102,2 + 1,5 Inf > 103,7
Jadi diperoleh d[“S”] = 103,7 yaitu lintasan terpendek dari vertex „A‟ ke vertex „S‟ melalui vertex „N‟. Edge NT juga bisa dikunjungi dari vertex N dengan bobot jarak 21. Hitung d[v] untuk vertex T : d[v] > d[u] + edge [u][v]
d[“T”] > d[“N”] + edge [“N”][“T”]
d[“T”] > 102,2 + 21 Inf > 123,2
Jadi diperoleh d[“T”] = 123,2 yaitu lintasan terpendek dari vertex „A‟ ke vertex „T‟ melalui vertex „N‟ Dapat dilihat pada gambar 4.25.
Gambar 4.25 Graph Perhitungan Algoritma L-Deque dari Vertex N ke Vertex Q,
Vertex R, Vertex S dan Vertex T
Pilih edge yang bisa dikunjungi dari vertex Q yaitu QR dengan bobot jarak 1,5. Hitung d[v] untuk vertex R : d[v] > d[u] + edge [u][v]
d[“R”] > d[“Q”] + edge [“Q”][“R”]
d[“R”] > 92,5 + 1,5 97,5 > 94
Jadi diperoleh d[“R”] = 94 yang dipilih. Edge QS juga bisa dikunjungi dari vertex Q dengan bobot jarak 5. Hitung d[v] untuk vertex S : d[v] > d[u] + edge [u][v]
d[“S”] > d[“Q”] + edge [“Q”][“S”]
d[“S”] > 92,5 + 5 103,7 > 97,5
Jadi diperoleh d[“S”] = 97,5 yang dipilih. Dapat dilihat pada gambar 4.26.
Gambar 4.26 Graph Perhitungan Algoritma L-Deque dari Vertex Q ke Vertex R dan
Vertex S
Pilih edge yang bisa dikunjungi dari vertex R yaitu RN dengan bobot jarak 3,5. Hitung d[v] untuk vertex N : d[v] > d[u] + edge [u][v]
d[“N”] > d[“R”] + edge [“R”][“N”]
Jadi diperoleh d[“N”] = 97,5 yang dipilih. Edge RT juga bisa dikunjungi dari vertex R dengan bobot jarak 24. Hitung d[v] untuk vertex T : d[v] > d[u] + edge [u][v]
d[“T”] > d[“R”] + edge [“R”][“T”]
d[“T”] > 94 + 24 123,2 > 118
Jadi diperoleh d[“T”] = 118 yang dipilih. Edge RS juga bisa dikunjungi dari vertex R dengan bobot jarak 3,4. Hitung d[v] untuk vertex S :
d[v] > d[u] + edge [u][v]
d[“S”] > d[“R”] + edge [“R”][“S”]
d[“S”] > 94 + 3,4 97,5 > 97,4
Jadi diperoleh d[“S”] = 97,4 yang dipilih. Dapat dilihat pada gambar 4.27.
Gambar 4.27 Graph Perhitungan Algoritma L-Deque dari Vertex R ke Vertex S dan
Vertex T
Pilih edge yang bisa dikunjungi dari vertex S yaitu ST dengan bobot jarak 22. Hitung d[v] untuk vertex T :
d[v] > d[u] + edge [u][v]
d[“T”] > d[“S”] + edge [“S”][“T”]
d[“T”] > 97,4 + 22 118 > 119,4
Jawaban „tidak‟ jadi d[“T”] = 118 yang dipilih. Edge SN juga bisa dikunjungi dari vertex
Jawaban „tidak‟ jadi d[“N”] = 98,9 yang dipilih. Dapat dilihat pada gambar 4.28.
Gambar 4.28 Graph Perhitungan Algoritma L-Deque dari Vertex S ke Vertex N dan
Vertex T
AR = 94 = AC + CE + EH + HI + IQ + QR
AS = 97,4 = AC + CE + EH + HI + IQ + QR + RS AT = 118 = AC + CE + EH + HI + IQ + QR + RT
4.2.3 Pengujian Proses Algoritma Greedy
Pada algoritma Greedy harus ditentukan titik awal dan titik tujuan, contohnya tittik awal
„‟ dan titik tujuan „‟ serta algoritma yang dipilih. Setelah dipilih titik awal, titik tujuan dan
algoritma yang dipilih kemudian klik button „Proses‟ di mana button „Proses‟ akan melakukan pencarian menggunakan algoritma Greedy dan hasil pencarian akan
ditampilkan pada tabel „Informasi Tempat Wisata Terdekat Berdasarkan jarak‟ serta
menampilkan waktu yang dibutuhkan algoritma tersebut dalam melakukan proses pencarian, dapat dilihat pada gambar 4.29.
Gambar 4.29 Hasil Pengujian Menggunakan Algoritma Greedy
4.2.3.1 Perhitungan Manual Algoritma Greedy
Contoh pencarian lintasan terpendek dengan menggunakan algoritma Greedy dengan vertex awal A dan vertex akhir F dapat dilihat pada gambar 4.30.
Gambar 4.30 Graph Perhitungan Algoritma Greedy
Lintasan terpendek pertama yang harus dipilih dari edge yang langsung bersisian dengan vertex A (vertex asal) dan pilih edge yang bobotnya terkecil yaitu vertex B (AB) dengan bobot 6, sehingga didapat L(1) =6 ditunjukkan pada gambar 4.31.
Gambar 4.31 Graph Perhitungan Algoritma Greedy dengan Rute yang dipilih dari
Vertex A ke Vertex B
Selanjutnya tentukan d(i) = panjang L(1) + bobot edge dari vertex akhir L (1) ke vertex i yang lainya. Edge BD : d(i) = 6 + 9 = 15 ; edge BE : d(i) = 6 + 17 = 23. Pilih d(i) yang terkecil, yaitu edge BD. Sehingga L(2) = 15 ditunjukkan pada gambar 4.32.
Selanjutnya hitung d(i) = panjang L(2) + bobot edge dari vertex akhir L (2) ke vertex i yang lainya. Edge DE : d(i) = 15 + 7 = 22 ; edge DF : d(i) = 15 + 16 = 31. Pilih d(i) yang terkecil, yaitu edge DE. Sehingga L(3) = 22 ditunjukkan pada gambar 4.33.
Gambar 2.33 Graph Perhitungan Algoritma Greedy dengan Rute yang dipilih dari Vertex D ke Vertex E
Selanjutnya hitung d(i) = panjang L(4) + bobot edge dari vertex akhir L (3) ke vertex i yang lainya. Edge EF : d(i) = 22 + 5 = 27. Pilih d(i) yang terkecil, yaitu edge EF.
Sehingga L(4) = 27 ditunjukkan pada gambar 4.34.
Gambar 4.34 Graph Perhitungan Algoritma Greedy dengan Rute yang
dipilih dari Vertex E ke Vertex F
Hasil yang didapat dari contoh sederhana diatas menentukan rute terpendek menggunakan algoritma Greedy ialah A B D E F dengan total jarak 27.
4.3 Kompleksitas
4.3.1 Kompleksitas Algoritma L-Deque
Perhitungan kompleksitas algoritma L-Deque dapat dilihat pada Tabel 4.1.
Tabel 4.1 Kompleksitas Algoritma L-Deque merupakan jumlah kolom C*# sebagai berikut:
T (n) = ∑
= (c2 + c4) + (c1 + 2 c2 + 3 c3 + c5) n+ (c1 +3 c2 + 2 c6 + c8) n2 = Ɵ
(n2)
4.4.2 Kompleksitas Algoritma Greedy
Perhitungan kompleksitas algoritma Greedy dapat dilihat pada Tabel 4.2. Tabel 4.2 Kompleksitas Algoritma Greedy
Code C # c*#
var result = new List<string>(); c1 1 c1
result.Add(source); c2 1 c2
simpan += getLokasiWisata(source); c2 1 c2
double totalJarak = 0; c3 1 c3
local_max = graph[current_node].Values.Min(); c3 n c3 n
foreach (var pair in graph[current_node]) c5 n c5 n
if ((pair.Value).Equals(local_max)) c6 n c6 n
if (result.Contains(pair.Key)) c6 n c6 n
simpan = "No Route Reachable using Greedy in this Graph!"; merupakan jumlah kolom C*# sebagai berikut:
T (n) = ∑
= (c1 +2 c2 + 5 c3 + 2c7) + ( 3 c2 + 3 c3 + c4 + c5 + 3c6 + c8) n = Ө(n)
Tabel 4.2 menunjukkan hasil perhitungan kompleksitas algoritma Greedy. Kolom � pada tabel 4.2 merupakan kolom yang menunjukkan berapa kali processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung pengerjaan satu baris program. Kolom � � # menghitung hasil perkalian kolom � dengan #. Hasil dari kolom � � # dijumlahkan sehingga diperoleh hasil kompleksitas algoritma Greedy yaitu Ɵ (�2).
Berdasarkan hasil perhitungan kompleksitas algoritma L – Deque dan algoritma Greedy hasil yang didapatkan adalah Ɵ (n2) untuk algoritma L-Deque dan Ɵ (n) untuk algoritma Greedy. Dari hasil tersebut dapat dilihat bahwa algoritma Greedy membutuhkan waktu lebih sedikit untuk melakukan proses perhitugan. Namun, yang harus diketahui bahwa tidak selalu hasil perhitungan kompleksitas sesuai dengan perhitungan pada saat pengimplementasian ke dalam program.
4.4 Real Running-Time
Pengujian dilakukan untuk mencari real running time dengan algoritma L-Deque dan algoritma Greedy. Sebelum mengetahui real running time, user harus memilih titik awal dan titik tujuan tempat wisata yang akan dikunjungi. Pengujian dilakukan sebanyak tiga kali terhadap tempat wisata yang akan dijadikan titik asal ke tempat wisata terdekat. Kemudian dihitung nilai rata-rata waktu proses yang diperoleh.
4.4.1 Algoritma L-Deque
Tabel 4.3 Hasil Pengujian Running Time Algortima L-Deque
Proses pengujian dilakukan secara manual dengan bahasa pemrograman C#. Hasil pengujian yang dilakukan terhadap tempat wisata yang dijadikan titik asal ke titik tujuan tempat wisata menggunakan algoritma Greedy dapat dilihat pada tabel 4.4.
Tabel 4.4 Hasil Pengujian Running Time Algortima Greedy
Pada Tabel 4.3 hasil pengujian running time algoritma Greedy diperoleh hasil total jarak tidak ditemukan mulai dari sampel no. 6 sampai no. 19. Hasil total jarak tidak ditemukan disebabkan terjadinya looping karena graph menggunakan edge dengan sistem dua arah sehingga jika edge yang sudah dilalui merupakan nilai d(i) terkecil maka
Gambar 4.8 Graph Perhitungan Algoritma Greedy
Lintasan terpendek pertama yang harus dipilih dari edge yang langsung bersisian dengan vertex G (vertex asal) dan pilih edge yang bobotnya terkecil yaitu vertex B (AB) dengan bobot 3, sehingga didapat L(1) = 3 ditunjukkan pada gambar 4.36.
Gambar 4.8 Graph Perhitungan Algoritma Greedy dari Vertex G ke Vertex M Selanjutnya tentukan untuk vertex M : d(i) = panjang L(1) + bobot edge dari vertex akhir L (1) ke vertex i yang lainya. Edge MG : d(i) = 3 ; edge MI : d(i) = 3 + 6 = 9 ; edge ML : d(i) = 3 + 6,4 = 9,4 ; edge MN : d(i) = 3 + 14 = 17 ; edge MR : d(i) = 3 + 9,3 = 12,3 ; edge MQ : d(i) = 3 + 8 = 11. Pilih d(i) yang terkecil, yaitu edge MG di mana edge MG melalui vertex G dan vertex G merupakan vertex asal sehingga terjadi looping dan titik tujuan tidak ditemukan.
Dari Tabel 4.3 dan Tabel 4.4 tersebut dapat diambil kesimpulan bahwa algoritma L-Deque dan algoritma Greedy menghasilkan rute, total jarak dan running time yang berbeda, di mana dari segi waktu proses algoritma Greedy lebih cepat dibandingkan dengan algoritma L-Deque tetapi dari segi total jarak algortima L-Deque lebih optimum dibandingkan algoritma Greedy.
Berikut ini akan ditampilkan hasil rata-rata waktu proses dari kedua algoritma yaitu algoritma L-Deque dan algoritma Greedy dan dapat dilihat pada Tabel 4.5.
Tabel 4.5 Hasil Execution Time Algoritma L-Deque dan Algoritma Greedy No Rute Algoritma L-Deque Algoritma Greedy
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil studi literatur, implementasi, dan pengujian sistem ini, maka kesimpulan yang didapat adalah sebagai berikut:
1. Telah diterapkannya algoritma L-Deque dan algoritma Greedy dalam penentuan rute terpendek antar tempat wisata di Kabupaten Tapanuli Tengah.
2. Hasil pencarian rute terpendek antar tempat wisata di Kabupaten Tapanuli Tengah dengan menggunakan algoritma L-Deque dan algoritma Greedy diperoleh rute, total jarak dan running time yang berbeda .
3. Berdasarkan hasil pengujian dari kedua algoritma, algoritma Greedy memiliki nilai running time Ө (n) sedangkan algoritma L-Deque Ө (n2).
5.2 Saran
saran-saran yang dapat dipertimbangkan untuk penelitian maupun pengembangan berikutnya adalah:
1. Sistem ini sebaiknya dikembangkan dengan menambah jumlah simpul (vertex) dan sisi (edge).
2. Sistem ini dapat dikembangkan pada studi kasus lainnya.
3. Sistem ini menggunakan algoritma L-Deque dan algoritma Greedy. Untuk pengembangan selanjutnya sebaiknya menggunakan algortima yang lain atau lebih dari 2 algoritma untuk lebih mengetahui algoritma mana yang lebih baik dan lebih cepat serta mengetahui perbandingan kinerja tiap algoritma.