BAB 3
ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang pembahasan analisis dan perancangan sistem aplikasi, termasuk di dalamnya Ishikawa Diagram, Use Case Diagram, Activity Diagram, Sequential Diagram, Flowchart, dan desain interface.
3.1 Analisis Sistem
Pada tahapan ini yang dilakukan ialah menganalisa sistem untuk menghasilkan pemahaman yang menyeluruh akan kebutuhan sistem yang terdiri dari tugas-tugas yang akan dikerjakan oleh sistem. Tahapan ini dilakukan untuk mengurangi terjadinya kesalahan yang mempengaruhi kenerja sistem dalam proses perancangan aplikasi. Tahapan analisis dalam tugas akhir ini terdiri dari analisis masalah, analisis persyaratan dan analisis proses.
Kelayakan masalah perlu dipahami dan dibahas dalam analisis masalah serta merta menjelaskan fungsi-fungsi yang ditawarkan dan dapat dikerjakan oleh sistem juga dibahas dianalisis persyaratan. Analisis proses diperlukan guna mengetahui bagaimana proses tersebut akan bekerja dan bagaimana langkah-langkah yang harus ditempuh untuk mendapatkan hasil yang optimum.
3.1.1 Analisis masalah
Diagram Ishikawa (fishbone diagram) biasanya disebut juga diagram sebab akibat yang digunakan untuk mengidentifikasi masalah yang ada pada sistem yang akan dirancang. Dengan menggunakan diagram ini, kita dapat mengidentifikasi, mengeksplorasi dan menggambarkan suatu masalah dengan mengikutsertakan sebab dan akibat dari permasalahan terkait. Dengan demikian proses pencapaian sistem akan sangat terbantu.
jalur terpilih, dan perbandingan. Maka dari keseluruhan kategori tersebut dijelaskan melalui diagram Ishikawa yang dapat dilihat pada Gambar 3.1.
Gambar 3.1 Diagram Ishikawa (Fishbone) untuk Analisis Permasalahan Sistem
Pada gambar 3.1 permasalahan pada penelitian ini ditunjukan pada akhir garis horizontal utama (head) dan penyebab dari permasalahan tersebut ditunjukan dari garis-garis diagonal (bone). Bone dibagi menjadi empat aspek yang terdiri dari pengguna, material, sistem dan metode. Pengguna (Man) berkaitan dengan tindakan ataupun upaya yang dilakukan pengguna untuk menjalankan sistem dengan memasukkan data berupa node dan edge kemudian memilih algoritma yang digunakan untuk menentukan lintasan dalam penyelesaian Traveling Salesman Problem yang ditampilkan dalam graph. Mesin ialah sistem itu sendiri dimana sistem akan menerapkan metode dari Algoritma Generate and Test atau Algoritma Hill Climbing untuk kemudian dibandingkan berdasarkan hasil dari kedua algoritma tersebut. Material mencakup hal-hal yang dibutuhkan dalam membangun sistem dimana dalam penelitian ini material yang digunakan adalah jarak. Metode merupakan cara yang digunakan dalam memperoleh lintasan tercepat untuk Traveling Salesman Problem dan metode yang digunakan yaitu Algoritma Generate and Test dan Hill Climbing.
Penetuan lintasan tercepat untuk mengunjungi objek-objek wisata terpilih di Kabupaten Tapanuli Tengah mengunakan Algoritma
Generate and Test dengan Algoritma Hill Climbing
Membutuhkan informasi lokasi-lokasi objek wisata yang akan dikunjungi
Waktu yang dibutuhkan untuk menentukan lintasan tercepat sangat lama
Man Material
Machine Method
Bagaimana mesin menggunakan metode heuristik menentukan lintasan tercepat
Belum diketahui perbandingan antara Algoritma Generate and Test dan Algoritma Hill Climbing
Objek-objek wisata yang ditentukan pada peta Kabupaten Tapanuli Tengah dan dinyatakan sebagai node
3.1.2 Analisis kebutuhan sistem
Analisis kebutuhan sistem dibagi menjadi dua bagian, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.
1. Kebutuhan Fungsional
Analisis kebutuhan fungsional pada sistem ini menjabarkan mengenai tahap-tahap atau fungsi-fungsi yang dapat dilakukan atau tersedia pada sistem. Fungsi-fungsi tersebut yang akan bekerja untuk dapat menampilkan hasil penetuan dari algoritma Generate and Test dan algoritma Hill Climbing dalam menentukan hasil dalam penyelesaian Traveling Salesman Problem atau jarak terkecil yang paling optimal dalam pengunjungan objek-objek wisata yang akan dikunjungi, serta membandingkan hasil kerja dari kedua algoritma tersebut.
Beberapa kebutuhan fungsional yang terdapat pada sistem ini, antara lain: a. Sistem dibuat sesuai dengan representasi graf yang sebenarnya dati Peta
Kabupaten Tapanuli Tengah yang ditampilkan.
b. Sistem dapat membaca data berupa simpul (vertex) dan sisi (edge) yang sudah disimpan di dalam memori dalam bentuk matriks 2 dimensi.
c. Sistem mampu menghitung dan menampilkan hasil pencarian optimum menggunakan algoritma Generate and Test dan algoritma Hill Climbing yang telah digunakan dalam sistem.
d. Sistem mampu menghitung dan menentukan kecepatan waktu proses (running time) dari masing-masing algoritma.
2. Kebutuhan Non-Fungsional
Analisis kebutuhan non-fungsional pada sistem ini berupa kinerja atau performansi dari sistem berdasarkan algoritma yang digunakan serta kemudahan pengunaanya. Beberapa kebutuhan non-fungsional yang terdapat pada sistem ini, antara lain: a. Kinerja atau Performansi
Sistem atau perangkat lunak yang akan dibangun harus mampu menampilkan hasil dari algoritma yang diterapkan di dalam sistem, yaitu algoritma Generate and Test dan algoritma Hill Climbing.
b. Mudah Digunakan
tampilan yang sederhana namun dapat dengan mudah dipahami. c. Hemat Biaya
Sistem atau perangkat lunak yang akan dibangun tidak membutuhkan perangkat tambahan yang dapat mengeluarkan biaya tambahan.
d. Manajemen Kualitas Sistem
Sistem atau perangkat lunak yang akan dibangun harus mempunyai kualitas yang baik dan hasil yang tepat.
3.1.3 Analisis proses
Sistem dibangun menggunakan bahasa pemrograman Basic. Algoritma untuk penyelesaian Traveling Salesman Problem yang digunakan untuk menentukan lintasan tercepat dalam mengunjungi semua objek wisata terpilih adalah Generate and Test dan Hill Climbing. Hasil yang diperoleh dari kedua algoritma tersebut akan dibandingkan sehingga dapat diperoleh algoritma yang paling efisien tetapi memberikan hasil optimum dalam waktu proses tercepat dalam menentukan jarak optimum.
Berdasarkan data yang ada, Kabupaten Tapanuli Tengah memiliki banyak objek wisata, namun pada penelitian ini penulis hanya mengunakan 10 objek wisata yang lebih dikenal warga setempat. Adapun daftar objek wisata yang akan diterapkan sebagai verteks di dalam sistem ini dapat dilihat pada Tabel 3.1 berikut:
Tabel 3. 1 Daftar Objek Wisata Yang Dijadikan Sebagai Verteks
No. Nama Objek Wisata A. Bandara F.L. Tobing B. Pantai Batu Gajah C. Pantai Pandan D. Air Terjun Sihobuk E. Patai Pandaratan F. Air Terjun Silaklak G. Pantai Binasi
H. Makam Papan Tinggi I. Pantai Kahona J. Air Terjun Mursala
Gambar 3.2 Peta Kabupaten Tapanuli Tengah
Dalam representasi graf, bobot dari setiap sisi (edge) yang menghubungkan setiap simpul (vertex) adalah jarak dari antar objek wisata yang akan dijadikan sebagai simpul. Graf akan digambarkan berdasarkan jarak tempuh dari setiap simpul ke simpul tetangga yang saling terhubung. Data tersebut dikumpulkan dan disimpan dalam data matriks 2 dimensi.
1. Edge AB
Bobot dari edge AB ialah 18,4 km yang diambil dari jarak antara objek wisata A ke objek wisata B, dapat dilihat pada gambar 3.3.
Gambar 3.3 Jarak tempuh objek A ke objek B
2. Edge AC
Bobot dari edge AC ialah 22 km yang diambil dari jarak antara objek wisata A ke objek wisata C, dapat dilihat pada gambar 3.4.
3. Edge BC
Bobot dari edge BC ialah 4,9 km yang diambil dari jarak antara objek wisata B ke objek wisata C, dapat dilihat pada gambar 3.5.
Gambar 3.5 Jarak tempuh objek B ke objek C
4. Edge BH
Bobot dari edge BH ialah 43,27 km yang diambil dari jarak antara objek wisata B ke objek wisata H melalui transportasi laut, dapat dilihat pada gambar 3.6.
Gambar 3.6 Jarak tempuh objek B ke objek H
5. Edge CD
Gambar 3.7 Jarak tempuh objek C ke objek D
6. Edge CE
Bobot dari edge CE ialah 6,9 km yang diambil dari jarak antara objek wisata C ke objek wisata E, dapat dilihat pada gambar 3.8.
7. Edge CH
Bobot dari edge CH ialah 42,15 km yang diambil dari jarak antara objek wisata C ke objek wisata H melalui transportasi laut, dapat dilihat pada gambar 3.9.
Gambar 3.9 Jarak tempuh objek C ke objek H
8. Edge DE
Bobot dari edge DE ialah 7,1 km yang diambil dari jarak antara objek wisata D ke objek wisata E, dapat dilihat pada gambar 3.10.
Gambar 3.10 Jarak tempuh objek D ke objek E
9. Edge DF
Gambar 3.11 Jarak tempuh objek D ke objek F
10. Edge DH
Bobot dari edge DH ialah 37,71 km yang diambil dari jarak antara objek wisata D ke objek wisata H melalui transportasi laut, dapat dilihat pada gambar 3.12.
Gambar 3.12 Jarak tempuh objek D ke objek H
11. Edge EF
Gambar 3.13 Jarak tempuh objek E ke objek F
12. Edge FG
Bobot dari edge FG ialah 27 km yang diambil dari jarak antara objek wisata F ke objek wisata G, dapat dilihat pada gambar 3.14.
Gambar 3.14 Jarak tempuh objek F ke objek G
13. Edge GH
Gambar 3.15 Jarak tempuh objek G ke objek H
14. Edge GJ
Bobot dari edge GJ ialah 24,3 km yang diambil dari jarak antara objek wisata G ke objek wisata J, dapat dilihat pada gambar 3.16.
15. Edge HI
Bobot dari edge HI ialah 40,81 km yang diambil dari jarak antara objek wisata H ke objek wisata I melalui transportasi laut, dapat dilihat pada gambar 3.17.
Gambar 3.17 Jarak tempuh objek I ke objek H
16. Edge IJ
Bobot dari edge IJ ialah 13,3 km yang diambil dari jarak antara objek wisata I ke objek wisata J, dapat dilihat pada gambar 3.18.
Setelah keseluruhan bobot telah didapatkan maka graf tidak berarah dan berbobot dapat dilihat pada gambar 3.19.
Gambar 3.19 Graf tidak berarah Kabupaten Tapanuli Tengah
3.2 Pemodelan Sistem
Pemodelan sistem pada penelitian ini menggunakan Unified Modelling Language (UML) sebagai bahasa spesifikasi standar suatu model yang berfungsi untuk membantu merancang sistem dengan tujuan untuk menggambarkan peran pengguna terhadap sistem yang dibuat. Sistem ini dirancang dengan menggunakan use case diagram, activity diagram, dan sequence diagram, serta flowchart.
3.2.1 Use Case Diagram
Use case diagram digunakan untuk mengetahui kebutuhan sistem dari sudut pandang user (pengguna) dan merepresentasikan interaksi antara user tersebut dengan sistem. Use case diagram dari sistem pada penelitian ini dapat dilihat pada Gambar 3.20.
Algoritma
Gambar 3.20 Use Case Diagram Sistem
3.2.2 Activity Diagram
Tentukan Verteks –
Tampilkan Total Jarak Tempuh dan Running Time Algoritma
Generate and Test
Tampilkan Total Jarak Tempuh dan Running Time Algoritma
Hill Climbing Sistem
Gambar 3.21 Activity Diagram Sistem
3.2.3 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek juga dapat mengindikasikan komunikasi antar objek yang berhubungan. Sequence diagram pencarian lintasan tercepat sistem ini dapat dilihat pada gambar3.22.
User
Pilih Algoritma Generate and Test
Menampilkan Total Lintasan dan Running Time Algoritma Generate and Test
Pilih Algoritma Hill Climbing
Menampilkan Total Lintasan dan Running Time Algoritma Hill Climbing
Gambar 3.22 Sequence Diagram Sistem
3.2.4 Flowchart
Mulai Nilai Lintasan_terpilih = Nilai Lintasan_awal
Bangkitkan Lintasan_Baru
Gambar 3.23 Flowchart Algoritma Generate and Test
Mulai Tentukan posisi yang akan ditukar setiap Operator
Lintasan_Terpilih=Lintasan_Awal Nilai_Terpilih=Nilai_Awal
Terbitkan seluruh lintasan baru sebanyak operator yang tersedia dari
Lintasan_Terpilih
3.3 Perancangan Antarmuka Sistem (Design Interface System)
Perancangan sistem merupakan suatu spesifikasi dari solusi berbasis komputer secara rinci, yang juga dikenal dengan physical design. Perancangan sistem menekankan pada penerapan atau implementasi sistem tersebut secara teknis. (Whitten. Bentley. Dittman. 2004).
Perancangan sistem merupakan tahap dari siklus pengembangan sistem setelah tahap analisis, yang dilakukan untuk memberikan gambaran dan rancangan bangun secara jelas dan lengkap mengenai bagaimana suatu sistem dibentuk sehingga dapat dipahami dan digunakan secara mudah. Perancangan sistem dilakukan agar sistem yang dibangun sesuai dengan yang diharapkan.
Perancangan antarmuka sistem merupakan salah satu bagian penting dalam membangun sebuah sistem. Perancangan antarmuka sistem bertujuan untuk mempermudah pengguna dalam menggunakan sistem. Berikut adalah beberapa rancangan antarmuka sistem pada aplikasi yang dibangun:
1. Form utama
Form utama merupakan halaman utama dari sistem yang ditampilkan ketika sistem pertama dijalankan atau dengan kata lain merupakan tampilan utama dari sistem. Rancangan tampilan form ini dapat dilihat pada Gambar 3.25.
Tentang
Gambar 3.25 Rancangan Form Utama
Tabel 3. 2 Keterangan Gambar Rancangan Form Utama
No. Keterangan
1 Menu Proses yang menampilkan halaman untuk mengelola vertex, edges dan graf
2 Menu Tentang yang menampilkan halaman dari profil mahasiswa 3 Label untuk menampilkan judul skripsi
4 Label untuk menampilkan Nama dan NIM 5 Picture Box untuk menampilkan logo fakultas
6 Label untuk menampilkan nama program studi dan fakultas 2. Form Proses
Pada form utama dari sistem terdapat menu Proses yang menampilkan halaman bagi pengguna untuk mengelola data yang akan di proses oleh sistem. Pada halaman ini user akan memilih algoritma mana yang akan digunakan dan melakukan proses pencarian lintasan tercepat menggunakan algoritma Generate and Test atau algoritma Hill Climbing dalam bentuk graf dan lama waktu prosesnya. Rancangan tampilan untuk Form Proses dapat dilihat pada Gambar 3.26.
Form Proses
Gambar 3.26 Rancangan Form Proses
Tabel 3.3 Keterangan Gambar Rancangan Form Proses
No. Keterangan
1 Canvas untuk menampilkan graf
2 Label untuk menampilkan keterangan graf
3 Group Box untuk melakukan pemilihan algoritma, proses dan hasil
4 Combo Box untuk memilih algoritma Generate and Test atau Hill Climbing 5 Button untuk melakukan proses pencarian total lintasan terkecil
6 Progress Bar untuk mengetahui jalannya proses pencarian 7 Label untuk menampilkan hasil pencarian dan waktu prosesnya 3. Form Tentang
Form ini berisikan profil dan foto penulis sekaligus perancang sistem ini. Rancangan dari form tentang ini dapat dilihat pada Gambar 3.27.
Tentang
Judul Skripsi
Foto Penulis Profil Penulis
1
2 3
Gambar 3.27 Rancangan Form Tentang
Keterangan dari rancangan form tentang pada gambar 3.27 dapat dilihat pada Tabel 3.4 dibawah ini.
Tabel 3.4 Keterangan Gambar Rancangan Form Proses
No. Keterangan
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisi implementasi dari sistem yang telah dirancang beserta pengujian yang dilakukan terhadap sistem untuk menemukan kelebihan dan kekurangan pada sistem.
4.1 Implementasi Sistem
Implementasi sistem merupakan penerapan dari seluruh tahap yang telah dibahas dalam analisis dan perancangan sistem. Sistem dibangun menggunakan aplikasi Microsoft Visual Studio 2010 dengan bahasa pemrograman Basic. Sistem yang dibangun memiliki tiga halaman menu utama, yaitu halaman menu Utama, halaman menu Proses dan halaman menu Tentang.
4.1.1 Form Utama
Form Utama merupakan halaman yang pertama sekali muncul pada saat sistem dijalankan. Tampilan halaman utama ini dapat dilihat pada Gambar 4.1.
4.1.2 Form Proses
Form Proses merupakan halaman yang menampilkan graf dengan bobot dan hasil penerapan algoritma Generate and Test dan algoritma Hill Climbing. Tampilan halaman proses ini dapat dilihat pada Gambar 4.2.
Gambar 4.2 Form Proses
4.1.3 Form Tentang
Halaman Tentang merupakan halaman yang menampilkan informasi tentang penulis. Tampilan halaman tentang ini dapat dilihat pada Gambar 4.3
4.2 Pengujian Sistem
Pengujian sistem merupakan tahapan yang dilakukan dengan tujuan untuk melihat apakah sistem mendapatkan solusi yang tepat sasaran dalam penentuan lintasan tercepat kasus TSP ini. Pengujian sistem dilakukan dengan memasukkan data berupa graf dengan 10 simpul (vertex) dan 16 sisi (edge). Graf yang ditampilkan oleh sistem merupakan representasi graf dari peta Kabupaten Tapanuli Tengah. Setiap simpul (vertex) dibentuk menggunakan posisi sebenarnya dari peta. Sisi (edge) menghubungkan satu simpul ke simpul lain yang terpilih dan memungkinkan untuk dilalui. Setiap data sisi yang membentuk graf telah disimpan dalam satu variabel dalam bentuk data matriks.
4.2.1 Pengujian Proses Algoritma Generate and Test
Untuk melakukan proses pengujian pertama kali yang harus dilakukan adalah memilih menu Proses untuk menampilkan graph yang ada. Kemudian memilih algoritma Generate and Test pada pilihan ComboBox. Tampilan pemilihan algoritma dapat dilihat pada Gambar 4.4.
Gambar 4.4 Pemilihan Algoritma Generate and Test
Gambar 4.5 Hasil Penentuan Algoritma Generate and Test
4.2.1.1Proses Manual Algoritma Generate and Test
Algoritma Generate and Test dapat diterapkan setelah mengetahui seluruh verteks yang akan dikunjungi dan menghitung nilai seluruh kemungkinan kombinasi yang ada. Kemudian algoritma ini akan menyusun verteks-verteks tersebut dan menggunakan metode backtracking untuk membentuk lintasan baru. Jika dicontoh dengan graf pada Gambar 4.6.
A B
D C
6
3
5
7
4
Gambar 4.6 Graf Proses Manual
(1) Langkah pertama adalah menyusun verteks secara terurut untuk membentuk lintasan awal, yaitu: A-B-C-D kemudian menambah titik awal menjadi A-B-C-D-A. Setelah itu melakukan validasi sekaligus menghitung nilai total lintasan =
+ + + = 6+3+4+5 = 18 km. Oleh karena lintasan tercepat masih belum ada maka lintasan awal ini dijadikan sebagai lintasan terpilih sementara sebagai dasar untuk melakukan perbandingan. Lintasan pada tahap pertama ini dapat dilihat pada Gambar 4.7.
A B
Gambar 4.7 Lintasan Langkah Pertama
(2) Langkah kedua ialah melakukan backtracking 2 langkah yaitu V(C) dan V(D) pada
lintasan awal yang terbentuk sebelumnya dan menambah titik awal untuk membentuk lintasan baru sehingga membentuk lintasan A-B-D-C-A. Selanjutnya memeriksa apakah lintasan ini valid atau tidak. Oleh karena litasan ini tidak valid dimana V(A) dengan V(C) tidak memiliki jarak, maka lintasan ini tidak dihitung.
Proses backtracking dapat dilihat pada Gambar 4.8.
A
B
C
D C
D
Gambar 4.8 Proses Backtracking Langkah Kedua
A
Gambar 4.9 Proses Backtracking Langkah Ketiga
(4) Langkah keempat melakukan backtracking 2 langkah dari lintasan sebelumnya hingga membentuk lintasan baru A-C-B-D-A. Lintasan ini juga meerupakan lintasan yang tidak valid maka lintasan ini diabaikan. Proses backtracking dapat dilihat pada gambar 4.10.
A
Gambar 4.10 Proses Backtracking Langkah Keempat
(5) Pada langkah kelima ini backtracking kembali dilakukan sebanyak 3 langkah untuk membentuk lintasan baru A-D-B-C-A. Oleh karena litasan ini tidak valid dimana V(A) dengan V(C) tidak memiliki jarak, maka lintasan ini tidak dihitung.
Proses backtracking pada langkah ini dapat dilihat pada gambar 4.11.
A
Gambar 4.11 Proses Backtracking Langkah Kelima
sebelumnya yaitu 18=18, maka lintasan ini menjadi lintasan terpilih sementara. Proses backtracking tidak lakukan lagi karena lintasan ini merupakan kombinasi yang terakhir dan hasil penentuan lintasan tercepat ialah pada langkah ini, yaitu A-D-C-B-A dengan bobot 18km. Proses backtracking pada langkah ini dapat dilihat pada gambar 4.12 dan lintasan terbentuk pada gambar 4.13.
A
B C D
B
C
Gambar 4.12 Proses Backtracking Langkah Keenam
A B
D C
6
3
5
7
4
Gambar 4.13 Lintasan Langkah Keenam
4.2.2 Pengujian Proses Algoritma Hill Climbing
Gambar 4. 14 Hasil Penentuan Algoritma Hill Climbing
4.2.2.1Proses Manual Algoritma Hill Climbing pada sistem
Algoritma Hill Climbing yang diterapkan pada sistem ini ialah Steepest Ascent Hill Climbing. Pada algoritma ini banyaknya operator penukar akan sangat menentukan cepatnya lintasan tercepat ataupun solusi ditemukan oleh sistem. Sebelum memulai proses harus diketahui terlebih dahulu jumlah operator penukar yang akan digunakan, yaitu: 2! (�−1!
�−1)−2 ! =
4−1!
2! (4−1)−2 ! = 3 operator penukar. Setelah banyaknya operator penukar diketahui, maka lintasan awal A-B-C-D-A dengan jarak tempuh 18 km dijadikan sebagai dasar untuk melakukan penukaran posisi sesuai operator yang digunakan dan perbandingan terhadap lintasan baru. Jika menggunakan graf pada gambar 4.6 sebelumnya maka langkah-langkah proses pencarian lintasan tercepat dari algoritma ini adalah:
valid. Kemudian menggunakan operator yang ketiga dan merupakan operator terakhir. Dengan menggunakan operator ketiga yaitu tukar(2,4) maka didapatkan lintasan A-D-C-B-A dengan bobot 18km. Kemudian melakukan perbandingan dari kedua lintasan valid tersebut dan lintasan awal untuk mendapatkan lintasan yang terkecil. Setelah melakukan perbandingan ternyata tidak didapatkan lintasan yang bobotnya lebih kecil dari lintasan A-B-C-D-A, maka lintasan ini tidak dijadikan sebagai kandidat untuk melakukan proses penukar ditahap selanjutnya. Proses pada langkah pertama ini dapat dilihat pada gambar 4.15 dan lintasan yang didapatkan setelah langkah pertama pada gambar 4.16.
A-B-C-D-A
Gambar 4.15 Proses Langkah Pertama
A B
Gambar 4.16 Lintasan Langkah Pertama
(2) Langkah kedua ialah memeriksa apakah kandidat lintasan tercepat ditemukan atau tidak. Jika tidak ditemukan maka lintasan terpilih sebelumnya ini menjadi hasil dari penentuan lintasan tercepat, yaitu A-B-C-D-A dengan bobot 18km. Proses dari langkah kedua ini dapat dilihat pada gambar 4.17.
A-B-C-D-A
4.3 Hasil Pengujian Sistem
Berdasarkan pengujian sistem yang telah dilakukan pada penelitian ini, maka didapatkan hasil pengujian real running time program antara dua algoritma ini seperti terlihat pada Gambar 4.18.
a. Generate and Test b. Hill Climbing
Gambar 4.18 Pengujian Running Time Kedua Algoritma
time Hill Climbing sebesar 1425ms. Berdasarkan data-data yang telah didapatkan diatas maka tabel perbandingan antara 2 algoritma tersebut dapat dilihat pada tabel 4.1.
Tabel 4.1 Hasil Pengujian Real Running Time
Algoritma Lintasan
Terbentuk Lintasan Terpilih
Jarak Tempuh
(km)
Run Time (ms)
Generate and Test 362880 A-C-E-D-F-G-J-I-H-B-A 225,38 144536
Hill Climbing 72 A-B-H-I-J-G-F-D-E-C-A 225,38 1425
Setelah mendapatkan hasil pengujian dari Tabel 4.1, maka dapat dibuatkan grafik perbandingan dari kedua algoritma tersebut. Grafik perbandingan run time dan dapat dilihat pada gambar 4.19.
Gambar 4.19 Grafik Perbandingan Run Time
Berdasarkan grafik pada Gambar 4.19 dapat disimpulkan bahwa algoritma Hill Climbing memiliki run time yang jauh lebih cepat dibandingkan dengan Generate and Test untuk mencari lintasan tercepat dimana Hill Climbing membutuhkan waktu 1425ms sementara Generate and Test 144536ms. Hal ini disebabkan karena proses pada Generate and Test tidak akan selesai jika belum seluruh kemungkinan kombinasi telah dicoba yang terlihat pada tabel 4.1 dengan perbandingan 362880:72.
0
Generate and Test Hill Climbing
144536
1425 Run Time (ms)
4.4 Kompleksitas Waktu Big Theta
Kompleksitas algoritma yang akan diuji adalah kompleksitas algoritma Generate and Test dan Hill Climbing.
4.4.1 Kompleksitas Algoritma Generate and Test
Perhitungan kompleksitas algoritma Generate and Test dapat dilihat pada tabel 4.2.
Tabel 4.2 Kompleksitas Algoritma Generate and Test
Public Function backtrack(ByVal n As Integer) C # C#
For i = 0 To n C1 n C1n
titikTerakhir = jalur(jalur.Count - 1) C2 n C2n
daftarInduk.Add(titikTerakhir) C3 n C3n
jalur.Remove(titikTerakhir) C4 n C4n
titikTerakhir -= 1 Next C5 n C5n
jalurPilih = String.Join("-", titik) & "-0" C4 1 C4
Dim Run As Stopwatch = Stopwatch.StartNew() C5 1 C5
For l = 1 To n - 1 C1 n C1n
k = n - 2 C6 n C6n
jalur = addJalur() C3 n C3n
counter += 1 C7 n C7n
jalurProses = String.Join("-", jalur.ToArray)
& "-0" C8 n C8n
tempuhProses = hitung(jalurProses, jarak) C9 n C9n
test(jalurPilih, jalurProses, tempuhPilih,
test(jalurPilih, jalurProses, tempuhPilih,
tempuhProses = hitung(jalurProses, jarak) C9 n2 C9n2
test(jalurPilih, jalurProses, tempuhPilih,
tempuhProses = hitung(jalurProses, jarak) C9 n2 C9n2
test(jalurPilih, jalurProses, tempuhPilih,
Dim titikAwal As Integer =
daftarInduk(daftarInduk.Count - 1) C12 n2 C12n2
jalur.Add(titikAwal) C3 n2 C3n2
daftarInduk.Remove(titikAwal) C2 n2 C2n2
If counter = Fn Then C11 n C11n
Exit For Next C14 n C14n
Run.Stop() C5 1 C5
Dim runTime As Integer =
CInt(Run.Elapsed.TotalMilliseconds) C15 1 C15
Return jalurPilih C16 1 C16
Kompleksitas dari algoritma Generate and Test : C adalah konstanta, # adalah frekuensi yang berfungsi sebagai ukuran dan C# sebagai pencari kompleksitas waktu (T(n)), n adalah jumlah proses. Jumlah hasil perkalian C.#, lalu diambil pangkat terbesar dari hasil masukan (#) dan didapatlah pangkat terbesar yaitu: n3.
4.4.2 Kompleksitas Algoritma Hill Climbing
Perhitungan kompleksitas algoritma Hill Climbing dapat dilihat pada tabel 4.3.
Tabel 4.3 Kompleksitas Algoritma Hill Climbing
Public Function HillClimbing() C # C#
For i = 1 To (n - 1) - 2 C1 n C1n
Fn2 *= i Next C2 n C2n
nOp = Fn / (2 * Fn2) C3 1 C3
buatOp(n - 1) C4 1 C4
jalurPilih = String.Join("-", titik)& "-0" C5 1 C5
Dim run As Stopwatch = Stopwatch.StartNew() C6 1 C6
For i = 0 To n - 1 C1 n C1n
titikProses(i) = Split(jalurPilih, "-")(i)Next C7 n C7n
For i = 0 To n - 1 C1 n2 C1n2
jalurProses(i) = String.Join("-", jalur) &
"-0" C11 n2 C11n2
Dim runTime As Integer =
CInt(run.Elapsed.TotalMilliseconds) C16 1 C16
BAB 5
KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang didapat dari keseluruhan uraian pada bab sebelumnya dan saran yang diharapkan dapat bermanfaat dalam pengembangan penelitian berikutnya.
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 tercepat dalam pengujian graf algoritma Generate and Test dan algoritma Hill Climbing menghasilkan lintasan dengan bobot paling minimum dan jarak bernilai sama untuk kedua algoritma.
2. Berdasarkan hasil pengujian pada kedua algoritma, algoritma Hill Climbing memiliki nilai running time yang lebih cepat dibandingkan dengan algoritma Generate and Test.
5.2 Saran
Adapun saran-saran yang dapat diberikan penulis untuk pengembangan dan perbaikan sistem ini selanjutnya adalah sebagai berikut:
1. Pada penelitian selanjutnya diharapkan sistem ini dapat dikembangkan pada studi kasus lainnya.
2. Pada penelitian selanjutnya diharapkan pengembang dapat menambahkan fitur yang dapat membantu agar sistem menjadi lebih baik dan dapat digunakan dibasis android.