• Tidak ada hasil yang ditemukan

BAB 4 IMPLEMENTASI DAN PENGUJIAN

4.3 Running Time

Untuk mengetahui running time harus dilakukan proses pengujian sistem dengan melakukan pencarian rute terpendek, pengujian akan dilakukan pada semua titik tempat wisata yang telah ditentukan yaitu sebanyak 18 titik. Akan dilakukan 17 kali proses pengujian karena titik awal tidak boleh dijadikan titik tujuan dan titik awalnya ditetapkan Danau Siombak, jadi akan dilakukan pencarian rute terpendek dari Danau Siombak menuju 17 tempat wisata lainnya serta akan dicatat running time nya. Berikut ini adalahtable hasil running timedangrafiknya.

Tabel 4.3Hasil Running Time

No Titik Awal Titik Tujuan Running Time

(ms) 1 Danau Siombak Graha Maria Annai Valengkanni 1035

2 Danau Siombak Hairos Waterpark 1014

3 Danau Siombak Istana Maimun 1013

4 Danau Siombak Kolam Renang Citra Garden 1013 5 Danau Siombak Kolam Renang Kenanga 1019 6 Danau Siombak Kolam Renang Paradiso 1013 7 Danau Siombak Kolam Renang Selayang 1014 8 Danau Siombak Kuil Shri Mariamman 1016 9 Danau Siombak Masjid Raya Al Mashun 1014

10 Danau Siombak Mora Indah 1015

11 Danau Siombak Rahmat International Museum

and Wildlife Galery 1012

12 Danau Siombak Taman Ahmad Yani 1015

13 Danau Siombak Taman Gajah Mada 1015

14 Danau Siombak Taman Kebun Bunga 1013

15 Danau Siombak Taman Sri Deli 1013

16 Danau Siombak Taman Teladan 1012

17 Danau Siombak Tjong A Fie 1013

Rata-rata running time 1015.2

Gambar 4.8 Grafik Running Time

1000 1005 1010 1015 1020 1025 1030 1035 1040

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Waktu (ms)

Pencarian ke

Grafik Running Time

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

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

1. Algoritma Genetika mampu melakukan pencarian dan menghasilkan rute terpendek dengan baik.

2. Berdasarkan hasil running time, Algoritma Genetika dengan crossover rate 0,3 dan mutation rate 0,3 bisa melakukan pencarian rute terpendek dengan cepat dengan rata-rata waktu pencarian 1015,2ms yang sama dengan 1,015s.

3. Algoritma Genetika merupakan suatu Algoritma yang powerfull tetapi juga membutuhkan resource yang besar.

5.2Saran

Aplikasi pencarian rute terpendek wisata Kota Medan yang dirancang masih dapat dikembangkan lebih jauh lagi untuk memperoleh hasil yang lebih baik. Beberapa hal yang perlu dikembangkan untuk penelitian lebih lanjut antara lain:

1. Menambahkan fitur-fitur penunjang sebuah aplikasi wisata seperti pencarian hotel atau penginapan, pusat pembelian oleh-oleh, dan rekomendasi kuliner khas kota medan.

2. Mengkombinasikan Algoritma Genetika dengan Algoritma lain agar bisa melakukan pencarian rute terpendek dari lokasi terkini pengguna menuju tempat wisata yang di inginkan.

DAFTAR PUSTAKA

Almuzakki, M.A. 2013. Rancang Bangun Aplikasi Location-Based Service Pencarian Lokasi Wisata Di Kota Semarang Berbasis Android.

Barakbah, A.R., Karlita, T. & Ahsan, A.S. 2013. Logika dan Algoritma : Surabaya Egham. 2016. Gartner Says Five of Top 10 Worldwide Mobile Phone Vendors

Increased Sales in Second Quarter of 2016. Gartner.com, 19 Agustus 2016 (diakses 22 November 2016).

Hayati, E.N. & Setiawan, A. 2013. Program Dinamis Untuk Penentuan Lintasan Terpendek Dengan Pendekatan Algoritma Floyd-Warshall. Dinamika Teknik 7(1): 17-25.

Hayati, E.N. & Yohanes, A. 2014. Pencarian Rute Terpendek Menggunakan Algoritma Greedy. Seminar Nasional IENACO : 391-397.

Hidayatno, A., Darjat. & H L T, Hendry. 2016. Penerapan Algoritma Genetika Pada Perencanaan Lintasan Kendaraan.

Joni, I.D.M.A.B. & Nurcahyawati, V. 2012. Penentuan Jarak Terpendek Pada Jalur Pendistribusian Barang Di Pulau Jawa Dengan Menggunakan Algoritma Genetika. Jurnal Nasional Pendidikan Teknik Informatika (JANAPATI) 1(3):

244-258.

Looper, C.D. 2016. From Android 1.0 To Android 7.0 Here’s How The Top Mobile OS Has Evolved Over The Years. Digitaltrends.com, 16 Oktober 2016 (diakses 18 November 2016).

Pratama, Iosi. 2015. Ciri-ciri Algoritma Menurut Donald Ervin Knuth. Iosinotes.com, 29 Juni 2015 (diakses 11 Januari 2016).

Roza, Imelda., Narwen., Zulakmal. 2014. Graf Garis (Line Graph) Dari Graf Siklus , Graf Lengkap Dan Graf Bintang. Jurnal Matematika UNAND 3 (2). 1-4.

Siboro, R. 2010. Penerapan Algoritma Genetika Untuk Menentukan Jalur Terpendek (Shortest Path). Skripsi. Universitas Sumatera Utara.

Sukaton, R.M. 2011. Penggunaan Algoritma Genetika Dalam Masalah Jalur Terpendek Pada Jaringan Data. Skripsi. Universitas Indonesia.

Verma, V.K. & Kumar, B. 2014. Genetic algorithm: an overview and its application.

International Journal of advanced studies in Computer Science and Engineering 3(2): 21-27.

Walde, N., Khatri, P., Mehta, D. & Avinash, A.V. 2014. Android Location Based Service. International Journal of Advanced Research in Computer and Communication Engineering 3(3): 5269-5272.

Widodo, A.W. & Mahmudy, W.F. 2010. Penerapan Algoritma Pada Sistem Rekomendasi Wisata Kuliner. Jurnal Ilmiah KURSOR 5(4): 205-211.

LISTING PROGRAM

a. Source Code Halaman Utama

#Region Project Attributes

#ApplicationLabel: WM

#Region Activity Attributes

#FullScreen: False

#IncludeTitle: True

#End Region

SubProcess_Globals

Dim GMAP AsGoogleMap Public S AsSQL

Public C AsCursor Public DB AsString Public Proses AsBoolean Private Timer1 AsTimer EndSub

SubGlobals

Private MF AsMapFragment PrivateMK(18) AsMarker Private TH AsTabHost

Private SP_KATEGORI AsSpinner Private LV_KATEGORI AsListView Dim LOKASI AsList

Dim MDS, MDT AsList Dim INDEX AsInt Dim T1, T2 AsDouble EndSub

SubActivity_Create(FirstTime AsBoolean) Activity.LoadLayout("main")

Activity.AddMenuItem("Graph", "GRP")

If MF.IsGooglePlayServicesAvailable = FalseThen

ToastMessageShow("Please install Google Play Services", True)

EndIf

DB = CopyDBFromAssets("db.db") S.Initialize(DB, "db.db", True) Timer1.Initialize("Timer1", 500) Buat_Menu : Ambil_Data_Lokasi EndSub

SubActivity_Resume

If S.IsInitialized = FalseThen

S.Initialize(DB, "db.db", True) EndIf

EndSub

SubCopyDBFromAssets(FileName AsString) AsString Dim TargetDir AsString

TargetDir = File.DirInternal

File.Copy(File.DirAssets, FileName, TargetDir, FileName) Return TargetDir

GMAP = MF.GetMap

Dim cp AsCameraPosition

cp.Initialize(3.567852, 98.657435, 12) GMAP.AnimateCamera(cp)

GMAP.Clear

Dim NAMA, LAT, LON, KAT AsString

C = S.ExecQuery("SELECT * FROM `LOKASI WISATA` ORDER BY `NAMA`

ASC")

For i = 0To C.RowCount - 1 C.Position = i

NAMA = C.GetString("NAMA") LAT = C.GetString("LATITUDE") LON = C.GetString("LONGITUDE") KAT = C.GetString("KATEGORI")

MK(i) = GMAP.AddMarker(LAT, LON, NAMA) MK(i).Snippet = KAT

Next

LoadBitmap(File.DirAssets, "ic_action_refresh.png"), True) Activity.AddMenuItem("Bantuan", "Bantuan")

Activity.AddMenuItem("Tentang", "Tentang")

TH.AddTab("Beranda", "home")

TH.AddTab("Lokasi Wisata", "lokasi_wisata") EndSub

SubAmbil_Data_Lokasi Dim LBL AsLabel

LBL = LV_KATEGORI.SingleLineLayout.Label LBL.TextSize = 14

LBL.TextColor = Colors.DarkGray

SP_KATEGORI.Clear

C = S.ExecQuery("SELECT `KATEGORI` FROM `LOKASI WISATA` GROUP BY `KATEGORI` ORDER BY `KATEGORI` ASC")

For i = 0To C.RowCount - 1 C.Position = i

SP_KATEGORI.Add(C.GetString("KATEGORI")) Next

LV_KATEGORI.Clear

C = S.ExecQuery("SELECT `NAMA` FROM `LOKASI WISATA` WHERE

`KATEGORI` = '"& SP_KATEGORI.SelectedItem &"' ORDER BY `NAMA` ASC") For i = 0To C.RowCount - 1

C.Position = i

LV_KATEGORI.AddSingleLine(C.GetString("NAMA")) Next

LOKASI.Initialize

C = S.ExecQuery("SELECT * FROM `LOKASI WISATA` ORDER BY `NAMA`

ASC")

SubSP_KATEGORI_ItemClick (Position AsInt, Value AsObject) LV_KATEGORI.Clear

C = S.ExecQuery("SELECT `NAMA` FROM `LOKASI WISATA` WHERE

`KATEGORI` = '"& SP_KATEGORI.SelectedItem &"' ORDER BY `NAMA` ASC") For i = 0To C.RowCount - 1

C.Position = i

LV_KATEGORI.AddSingleLine(C.GetString("NAMA")) Next

EndSub

SubLV_KATEGORI_ItemClick (Position AsInt, Value AsObject) TH.CurrentTab = 0

Dim LAT, LON AsString

C = S.ExecQuery("SELECT * FROM `LOKASI WISATA` WHERE `NAMA` = '"& Value &"'")

C.Position = 0

LAT = C.GetString("LATITUDE") LON = C.GetString("LONGITUDE") Dim cp AsCameraPosition

cp.Initialize(LAT, LON, 18) GMAP.AnimateCamera(cp) For i = 0To MK.Length - 1

IfMK(i).Title = Value Then

MK(i).InfoWindowShown = True Exit

EndIf Next

EndSub

SubBTN_CARI_Click

Dim TA AsInt = InputList(LOKASI, "Pilih Titik Awal:", -1) If TA >= 0Then

Dim TT AsInt = InputList(LOKASI, "Pilih Titik Tujuan:", -1)

If TT >= 0Then

ProgressDialogShow2("Loading...", False) Sleep(0)

T1 = DateTime.Now

Algoritma_Genetika(LOKASI.Get(TA), LOKASI.Get(TT)) T2 = DateTime.Now

EndIf EndIf

EndSub

SubTimer1_Tick

If Proses = FalseAnd INDEX < MDS.Size Then Map_Drawer.Sumber = MDS.Get(INDEX) Map_Drawer.Tujuan = MDT.Get(INDEX) StartService(Map_Drawer)

Proses = True INDEX = INDEX + 1 ElseIf INDEX = MDS.Size Then

ProgressDialogHide Timer1.Enabled = False

Msgbox((T2 - T1) &" ms", "Waktu Proses") EndIf

EndSub

SubH(XS AsDouble, YS AsDouble, XT AsDouble, YT AsDouble) AsDouble ReturnAbs((XT - XS) + (YT - YS))

EndSub

SubAlgoritma_Genetika(TA AsString, TT AsString) Dim NA, NT AsAntNode

DimNmrAsString

C = S.ExecQuery("SELECT * FROM `LOKASI WISATA` WHERE `NAMA` = '"& TT &"'")

C.Position = 0 Dim X, Y AsDouble

X = C.GetString("LATITUDE") Y = C.GetString("LONGITUDE")

'Isi Node

C = S.ExecQuery("SELECT * FROM `LOKASI WISATA` ORDER BY ID ASC")

DimN(C.RowCount) AsAntNode For i = 0To C.RowCount - 1

C.Position = i

Nmr = C.GetString("ID") Dim Lat, Lon AsDouble

Lat = C.GetString("LATITUDE") Lon = C.GetString("LONGITUDE")

N(i).Initialize(Nmr, H(Lat, Lon, X, Y))

'Isi TA DAN TT

IfC.GetString("NAMA") == TA Then NA = N(i)

EndIf

IfC.GetString("NAMA") == TT Then

NT = N(i) EndIf

Next

'Isi Edge

For i = 0To N.Length - 1

C = S.ExecQuery("SELECT * FROM `DATA JARAK` WHERE

`LOKASI1` = '"& i &"'")

DimE(C.RowCount) AsAntEdge

N(i).adjacencies = E Next

'GA

Dim GA AsACO

GA.AcoSearch(NA, NT)

Dim Hasil AsList = GA.printPath(NT) Dim Sumber, Tujuan AsString

MDS.Initialize : MDT.Initialize

If Hasil.Size >= 2Then

For i = 1To Hasil.Size - 1 Dim Temp AsAntNode

Temp = Hasil.Get(i-1) : Sumber = Temp.value Temp = Hasil.Get(i) : Tujuan = Temp.value

C = S.ExecQuery("SELECT * FROM `LOKASI WISATA`

WHERE ID = '"& Sumber &"'") C.Position = 0

MDS.Add(C.GetString("LATITUDE") &", "&

C.GetString("LONGITUDE"))

C = S.ExecQuery("SELECT * FROM `LOKASI WISATA`

WHERE ID = '"& Tujuan &"'") C.Position = 0

MDT.Add(C.GetString("LATITUDE") &", "&

C.GetString("LONGITUDE")) Next

EndIf

Timer1.Enabled = True Proses = False

INDEX = 0 EndSub

b. Source Code Map Drawer

#Region Service Attributes

#StartAtBoot: False

#End Region

SubProcess_Globals

Dim Sumber, Tujuan AsString Dim travelduration AsInt = 0 Dim traveldistance AsInt = 0 Dim pline AsPolyline

Dim polyPoints AsString EndSub

SubService_Create EndSub

SubService_Start (StartingIntent AsIntent) GetDirections(Sumber, Tujuan)

EndSub

SubService_Destroy

Main.Proses = False EndSub

SubGetDirections(source AsString, destination AsString) Dim j AsHttpJob

j.Initialize("Directions", Me)

j.Download2("https://maps.googleapis.com/maps/api/directions/j son", ArrayAsString("origin", source,"destination", destination,

"key", "AIzaSyBdMuhy4YpjnPYizmcoi7d8jV9Skggw7SE")) EndSub

SubJobDone(j AsHttpJob) If j.Success Then

Dim parser AsJSONParser

parser.Initialize(j.GetString) Dim root AsMap = parser.NextObject Ifroot.Get("status") = "OK"Then

Dim routes AsList = root.Get("routes") ForEach colroutes AsMapIn routes

Dim legs AsList = colroutes.Get("legs") ForEach collegs AsMapIn legs

Dim steps AsList = collegs.Get("steps")

ForEach colsteps AsMapIn steps Dim duration AsMap = colsteps.Get("duration")

travelduration = travelduration + duration.Get("value")

Dim distance AsMap = colsteps.Get("distance")

traveldistance = traveldistance + distance.Get("value")

Next

Dim overview_polyline AsMap = colroutes.Get("overview_polyline")

ToastMessageShow("Error: "& root.Get("status"), True)

EndIf Dim Points AsList Points.Initialize jo.InitializeContext

Points = jo.RunMethod("decodePoly", Array(polyPoints)) If Points.Size >0Then

pline = Main.GMAP.AddPolyline pline.Points = Points

pline.Color = Colors.Black

Dim Lat1, Lon1, Lat2, Lon2 AsString Dim DLat1, DLon1, DLat2, DLon2 AsDouble Dim Skip AsBoolean = False

For i = 0To Sumber.Length - 1

IfSumber.CharAt(i) <>","And Skip = FalseThen Lat1 = Lat1 &Sumber.CharAt(i)

ElseifSumber.CharAt(i) = ","Then Skip = True

Else

Lon1 = Lon1 &Sumber.CharAt(i) EndIf

Next

Skip = False

For i = 0To Tujuan.Length - 1

IfTujuan.CharAt(i) <>","And Skip = FalseThen Lat2 = Lat2 &Tujuan.CharAt(i)

ElseifTujuan.CharAt(i) = ","Then Skip = True

Else

Lon2 = Lon2 &Tujuan.CharAt(i) EndIf

Next

DLat1 = Lat1 : DLat2 = Lat2 DLon1 = Lon1 : DLon2 = Lon2

Main.GMAP.AddMarker(DLat1, DLon1,

"Sumber").InfoWindowShown = True

Main.GMAP.AddMarker(DLat2, DLon2, "Tujuan")

Dim cp AsCameraPosition

cp.Initialize(DLat1, DLon1, 14) Main.GMAP.AnimateCamera(cp) EndIf

EndSub

c. Source Code Halaman Bantuan

#Region Activity Attributes

#FullScreen: False

d. Source Code Halaman Tentang

#Region Activity Attributes

#FullScreen: False

e. Source Code Halaman Graph

#Region Activity Attributes

#FullScreen: False

#IncludeTitle: False

#End Region

SubProcess_Globals

Dim GMAP AsGoogleMap EndSub

SubGlobals

Private MF AsMapFragment Private LL AsLatLng Private PL AsPolyline Private Point AsList Private LV AsList PrivateMK(18) AsMarker EndSub

SubActivity_Create(FirstTime AsBoolean) Activity.LoadLayout("graph")

If MF.IsGooglePlayServicesAvailable = FalseThen

ToastMessageShow("Please install Google Play Services.", True)

EndIf EndSub

SubMF_Ready

GMAP = MF.GetMap

Dim cp AsCameraPosition

cp.Initialize(3.567852, 98.657435, 12) GMAP.AnimateCamera(cp)

Buat_Vertex : Buat_Edge EndSub

SubBuat_Vertex

GMAP.Clear : LV.Initialize

Dim NAMA, LAT, LON, KAT AsString

Main.C = Main.S.ExecQuery("SELECT * FROM `LOKASI WISATA` ORDER BY `NAMA` ASC")

For i = 0To Main.C.RowCount - 1 Main.C.Position = i

NAMA = Main.C.GetString("NAMA") LAT = Main.C.GetString("LATITUDE") LON = Main.C.GetString("LONGITUDE") KAT = Main.C.GetString("KATEGORI") MK(i) = GMAP.AddMarker(LAT, LON, NAMA) MK(i).Snippet = KAT

LL.Initialize(LAT, LON) LV.Add(LL)

Next EndSub

SubBuat_Edge

PL = GMAP.AddPolyline Point.Initialize

Main.C = Main.S.ExecQuery("SELECT * FROM 'DATA JARAK' ORDER BY 'LOKASI1' ASC")

For i = 0To Main.C.RowCount - 1 Main.C.Position = i

Point.Add(LV.Get(Main.C.GetInt("LOKASI1"))) Point.Add(LV.Get(Main.C.GetInt("LOKASI2"))) Next

PL.Points = Point EndSub

DAFTAR RIWAYAT HIDUP

Curriculum Vitae

Data Pribadi / Personal Details

Nama / Name : Ilham Saputra

Tempat Kelahiran / Place of Birth : Durian Tinggi Tanggal Kelahiran / Date of Birth : 13 Oktober 1994 Jenis Kelamin / Gender : Laki- Laki

Agama / Religion : Islam

Warga Negara / Nationality : Indonesia

Alamat / Address : Jl. Setia Budi Pasar 2, Gg. Bunga Dewi VIII, Kelurahan Tanjung Sari,kecamatan Medan Selayang, Medan

Kode Post / Postal Code : 20132

Nomor Telepon / Phone : 082287221337

Email : 21.ilhamsaputra@gmail.com

Informasi Pendidikan /Education Information

Periode Institusi Pendidikan

2000-2006 SD Negeri 02 Kenagarian Durian Tinggi

2006-2009 SMP Negeri 1 Kecamatan Pangkalan Koto Baru 2009-2012 SMK Negeri 2 Kota Payakumbuh

2012 - Selesai S1 Ilmu Komputer, Universitas Sumatera Utara

Pengalaman Kerja / Work Experience

Pengalaman Organisasi / Organization Experience Pendidikan Non Formal / Non Formal Educati

Periode/Tahun Jabatan Nama Organisasi

2015-2016 Pengurus

IMILKOM (Ikatan Mahasiswa S-1 Ilmu Komputer) Universitas

Sumatera Utara

No Pekerjaan Tempat/Instansi

1

Praktek Kerja Industri

(PRAKERIN) Sekolah Menengah Kejuruan

SO Service Electronic, Medan

2 Praktek Kerja Lapangan (PKL) Tingkat Perguruan Tinggi

Staf Fraksi Partai Amanat Nasional, Dewan Perwakilan Rakyat Daerah Provinsi Riau

3 Pelayan/waitress Kedai Kopi Refresho

4 Pelayan/waitress Warung Ijo Excellence

5 Pelayan/waitress Taichand Warkop Medan

6 Pelayan/waitress Cut Dewi Kopi Ulee Kareng &

Gayo

Dokumen terkait