Implementasi Algoritma Ant Colony Dalam Pencarian Lokasi Rumah Sakit Berbasis Mobile Gis Pada Platform Android
IMPLEMENTASI ALGORITMA ANT COLONY DALAM
PENCARIAN LOKASI RUMAH SAKIT BERBASIS MOBILE GIS
PADA PLATFORM ANDROID
(STUDI KASUS : KOTA MEDAN)
SKRIPSI
YUSTINA
081401028
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(2)
IMPLEMENTASI ALGORITMA ANT COLONY DALAM PENCARIAN LOKASI RUMAH SAKIT BERBASIS MOBILE GIS PADA PLATFORM
ANDROID
(STUDI KASUS: KOTA MEDAN)
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
YUSTINA 081401028
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
(3)
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA ANT COLONY
DALAM PENCARIAN LOKASI RUMAH SAKIT BERBASIS MOBILE GIS PADA PLATFORM ANDROID
(STUDI KASUS: KOTA MEDAN)
Kategori : SKRIPSI
Nama : YUSTINA
Nomor Induk Mahasiswa : 081401028
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan,
Komisi Pembimbing :
Pembimbing II, Pembimbing I,
Ade Candra, S.T., M.Kom Dr. Poltak Sihombing,M.Kom NIP. 197909042009121002 NIP. 196203171991031001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
(4)
PERNYATAAN
IMPLEMENTASI ALGORITMA ANT COLONY DALAM PENCARIAN LOKASI RUMAH SAKIT BERBASIS MOBILE GIS PADA PLATFORM
ANDROID
(STUDI KASUS: KOTA MEDAN)
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan,
YUSTINA 081401028
(5)
PENGHARGAAN
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas limpahan rahmat, kasih dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Pada pengerjaan skripsi dengan judul Implementasi Algoritma Ant Colony dalam Pencarian Lokasi Rumah Sakit Berbasis MOBILE GIS pada Platform Android, penulis menyadari bahwa banyak campur tangan pihak yang turut membantu dan memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, MSc(CTM). Sp.A(K), selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis, M.Sc., selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informas Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Program Studi Ilmu
Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
4. Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
5. Bapak Dr. Poltak Sihombing, M.Kom dan Bapak Ade Candra S.T., M.Kom selaku dosen pembimbing yang telah memberikan arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini.
6. Ibu Maya Silvi Lydia, B.Sc., M.Sc dan Bapak Amer Sharif S.Si, M.Kom sebagai dosen penguji yang telah memberikan saran dan kritik kepada penulis dalam penyempurnaan skripsi ini.
7. Seluruh dosen Program Studi S1 Ilmu Komputer Fasilkom-TI USU dan semua pegawai Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
8. Ayah Handy, S.E, Ibu Yulia, Adik Yuliani serta anggota keluarga lain yang telah memberikan do’a, dukungan, perhatian serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya.
9. Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2008, Novalia Bodhiratna, Gina Agnesia, Yeni Susanti br. Tarigan, Sri Elsa Panjaitan, Eko Verdianto, Nicolas Barus dan teman-teman lain yang telah memberikan motivasi, arahan dan perhatiannya.
(6)
10. Adik-adik angkatan 2009, 2010 dan 2011 yang telah member semangat untuk menyelesaikan skripsi ini.
11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh karena itu penulis menerima saran dan kritik yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
Medan,
(7)
ABSTRAK
Mobilitas masyarakat dalam menjalani aktivitas sehari-hari semakin tinggi. Banyak kejadian orang sakit tetapi mengalami kesulitan dalam menentukan rumah sakit mana yang harus dituju. Sehingga kecepatan dalam mengambil keputusan rumah sakit yang harus dituju menjadi lambat, apalagi dengan kondisi orang sakit yang harus dilakukan tindakan dan penanganan sesegera mungkin. Dengan memanfaatkan perkembangan teknologi sekarang, khususnya smartphone berbasis Android, dibuatlah Android apps pencari rute rumah sakit terpendek sebagai bantuan kepada masyarakat untuk
menentukan rute perjalanan ke rumah sakit sehingga membuat waktu menjadi efisien. Skripsi ini mengimplementasikan algoritma Ant Colony System untuk mendapatkan gambaran rute terpendek yang dapat ditempuh. Ant Colony System sudah terbukti bisa menyelesaikan masalah baik pada symmetric maupun asymmetric Travelling Salesman Problem. Dari hasil pengujian, gambaran umum rute yang bisa dilalui dapat dilihat dengan jelas dan dibantu dengan tersedianya petunjuk arah ke masing-masing tempat. KataKunci: Android, Travelling Salesman Problem, Ant Colony System, Shortest Path, Mobile GIS.
(8)
ANT COLONY ALGORITHM IMPLEMENTATION IN LOCATING HOSPITAL BASED ON MOBILE GIS FOR ANDROID
(CASE STUDY : MEDAN CITY)
ABSTRACT
Society mobility in their daily life is getting higher. There are many events where people are sick but they have difficulty in determining which hospital they have to go to. As the result, the speed in deciding which hospital they are going to becomes slow, moreover with the condition of the sick who need action and treatment as soon as possible. By utilizing technology developments nowadays, particularly Android-based Smartphone, an Android app which can be used to search for the shortest path to the hospital is made as an aid to the society to determine the route to the hospital to make the time be efficient. This paper implements Ant Colony System algorithm to obtain the shortest route that can be taken. Ant Colony System has been proven to resolve the problem either symmetric or asymmetric on the Traveling Salesman Problem. From the test results, the general picture of the route that is passable can be seen clearly and assisted by providing directions to each place.
Keywords: Android, Travelling Salesman Problem, Ant Colony System, Shortest Path, Mobile GIS.
(9)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan v
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metode Penelitian 3
1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori
2.1 Teori Graf 6
2.1.1 Definisi Graf 7
2.1.2 Macam – Macam Graf 8
2.1.3 Matriks Ketetanggaan (Adjacency Matrix) Dan Matriks Bersisian ( Incidency Matrix) Dari Suatu Graf
10
2.1.4 Lintasan Dan Sirkuit Euler serta Lintasan Dan Sirkuit Hamilton
13
2.2 Optimasi 14
2.2.1 Definisi 14
2.2.2 Permasalahan Optimasi 15
2.3 Travelling Salesman Problem 15
2.4 Algoritma Ant Colony 15
2.4.1 Skema Algoritma Ant Colony 17
2.5 Android 19
2.5.1 Features 20
2.5.2 Arsitektur Android 20
2.5.3 The Dalvik Virtual Machine (DVM) 23
2.5.4 Android SDK 24
2.5.5 Versi Android 24
2.5.6 Komponen Aplikasi Android 27
2.6 Eclipse 28
2.7 Waterfall Model 28
(10)
Bab 3 Analisis Dan Perancangan Sistem
3.1 Analisis Sistem 32
3.1.1 Analisis Masalah 32
3.1.2 Analisis Kebutuhan Sistem 33
3.1.2.1 Kebutuhan Fungsional Sistem 33 3.1.2.2 Kebutuhan Non Fungsional Sistem 33
3.1.3 Pemodelan 34
3.1.3.1 Use Case Diagram 34
3.1.3.2 Activity Diagram 38
3.1.3.2.1 Activity Diagram Tampil Peta 39 3.1.3.2.2 Activity Diagram Pencarian Rute 39 3.1.3.2.3 Activity Diagram Perhitungan Ant
Colony
41
3.1.3.2.4 Activity Diagram Peta Hasil Perhitungan Ant Colony
42
3.1.3.3 Sequence Diagram 42
3.1.3.3.1 Sequence Diagram Tampil Peta 42 3.1.3.3.2 Sequence Diagram Pencarian Rute 43
3.2 Pseudo Code Ant Colony 44
3.3 Flowchart Algoritma Ant Colony 46
3.4 Perancangan Sistem 47
3.4.1 Antarmuka Splash Screen 47
3.4.2 Antarmuka Menu Utama 48
3.4.3 Antarmuka Tentang 49
3.4.4 Antarmuka Daftar Rumah Sakit 50
3.4.5 Antarmuka Rute Pencarian 51
3.4.6 Antarmuka Detail Rumah Sakit 52
3.4.7 Antarmuka Login 53
3.4.8 Antarmuka Tambah Rumah Sakit 54
Bab 4 Implementasi Dan Pengujian Sistem
4.1 Implementasi Sistem 58
4.1.1 Implementasi Algoritma Ant Colony 58 4.1.1.1 Proses Pencarian Rute Terpendek Rumah
Sakit TKII Kesdam Medan
59
4.1.2 Tampilan Program 61
4.1.2.1 Moborobo 61
4.1.2.2 Splash Screen 62
4.1.2.3 Menu Utama 63
4.1.2.4 Tentang 63
4.1.2.5 Daftar Rumah Sakit 64
4.1.2.6 Proses Pencarian 68
4.1.2.7 Login 70
4.2 Pengujian Sistem 74
Bab 5 Kesimpulan Dan Saran
5.1 Kesimpulan 79
(11)
Daftar Pustaka 80
Lampiran A : Listing Program A-1
(12)
DAFTAR TABEL
Halaman
2.1 Matriks Ketetanggaan dari Graf Sederhana 11
2.2 Matriks Ketetanggaan Graf dari Masalah Jembatan
Königsberg 11
2.3 Matriks Bersisian Graf dari Masalah Jembatan
Königsberg 12
2.4 Tabel Representasi Koloni Semut 17
3.1 Dokumentasi Naratif Use Case Tampil Peta 35
3.2 Dokumentasi Naratif Use Case Pencarian Rute 36
3.3 Dokumentasi Naratif Use Case Perhitungan Ant Colony 37 3.4 Dokumentasi Naratif Use Case Peta Hasil Perhitungan
Ant Colony
38
4.1 Daftar Jarak antara Lokasi Pengguna dengan Rumah Sakit 59 4.2 Daftar Atribut Jalur Perjalanan Semut dari Lokasi
Pengguna menuju Rumah Sakit TKII Kesdam Medan
60
(13)
DAFTAR GAMBAR
Halaman
2.1 Masalah Jembatan Königsberg 6
2.2 Representasi Graf dari Masalah Jembatan Königsberg 7
2.3 Graf dari Masalah Jembatan Königsberg 8
2.4 Graf Berarah dan Berbobot 8
2.5 Graf Tidak Berarah dan Berbobot 9
2.6 Graf Berarah dan Tidak Berbobot 9
2.7 Graf Tidak Berarah dan Tidak Berbobot 10
2.8 Graf Sederhana 10
2.9 Graf dari Masalah Jembatan Königsberg 11
2.10 Graf dari Masalah Jembatan Königsberg 12
2.11 Graf Euler 13
2.12 Graf Semi Euler 13
2.13 Graf 14
2.14 Koloni semut 16
2.15 Perjalanan semut 17
2.16 Arsitektur Android 21
3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem 33 3.2 Use Case Diagram Sistem Pencarian Rute Rumah Sakit
Terpendek
35
3.3 Activity Diagram Tampil Peta 39
3.4 Activity Diagram Pencarian Rute 40
3.5 Activity Diagram Perhitungan 41
3.6 Activity Diagram Peta Hasil Perhitungan 42
3.7 Sequence Diagram Tampil Peta 43
3.8 Sequence Diagram Pencarian Rute 44
3.9 Flowchart Algoritma Ant Colony 47
3.10 Antarmuka Splash Screen 48
3.11 Antarmuka Menu Utama 49
3.12 Antarmuka Tentang 50
3.13 Antarmuka Daftar Rumah Sakit 51
3.14 Antarmuka Rute Pencarian 52
3.15 Antarmuka Detail Rumah Sakit 53
3.16 Antarmuka Login 54
3.17 Antarmuka Tambah Rumah Sakit Manual 55
3.18 Antarmuka Tambah Rumah Sakit Long Click 56
4.1 Tampilan Jalur Pada Peta Lokasi Rumah Sakit TKII Kesdam Medan (B) terhadap Lokasi Pengguna (A)
59
4.2 Aplikasi Moborobo 62
4.3 Tampilan Splash Screen 62
4.4 Tampilan Menu Utama 63
4.5 Tampilan Halaman Tentang 64
(14)
4.7 Tampilan Detail Rumah Sakit 66
4.8 Option Rute Pencarian 67
4.9 Peta Kota Medan 68
4.10 Options pada Peta Kota Medan 69
4.11 Hasil Pencarian 70
4.12 Tampilan Halaman Login 71
4.13 Tampilan Halaman Tambah Rumah Sakit secara Manual 72 4.14 Tampilan Peta sebelum dilakukan Long Click 73 4.15 Tampilan Tambah Rumah Sakit secara Long Click 73
4.16 Hasil Pencarian dari Jalan Mojopahit 74
4.17 Hasil Pencarian dari Jalan Merak Jingga 75
4.18 Hasil Pencarian dari Jalan Imam Bonjol 76
4.19 Hasil Pencarian dari Jalan Salak 77
(15)
ABSTRAK
Mobilitas masyarakat dalam menjalani aktivitas sehari-hari semakin tinggi. Banyak kejadian orang sakit tetapi mengalami kesulitan dalam menentukan rumah sakit mana yang harus dituju. Sehingga kecepatan dalam mengambil keputusan rumah sakit yang harus dituju menjadi lambat, apalagi dengan kondisi orang sakit yang harus dilakukan tindakan dan penanganan sesegera mungkin. Dengan memanfaatkan perkembangan teknologi sekarang, khususnya smartphone berbasis Android, dibuatlah Android apps pencari rute rumah sakit terpendek sebagai bantuan kepada masyarakat untuk
menentukan rute perjalanan ke rumah sakit sehingga membuat waktu menjadi efisien. Skripsi ini mengimplementasikan algoritma Ant Colony System untuk mendapatkan gambaran rute terpendek yang dapat ditempuh. Ant Colony System sudah terbukti bisa menyelesaikan masalah baik pada symmetric maupun asymmetric Travelling Salesman Problem. Dari hasil pengujian, gambaran umum rute yang bisa dilalui dapat dilihat dengan jelas dan dibantu dengan tersedianya petunjuk arah ke masing-masing tempat. KataKunci: Android, Travelling Salesman Problem, Ant Colony System, Shortest Path, Mobile GIS.
(16)
ANT COLONY ALGORITHM IMPLEMENTATION IN LOCATING HOSPITAL BASED ON MOBILE GIS FOR ANDROID
(CASE STUDY : MEDAN CITY)
ABSTRACT
Society mobility in their daily life is getting higher. There are many events where people are sick but they have difficulty in determining which hospital they have to go to. As the result, the speed in deciding which hospital they are going to becomes slow, moreover with the condition of the sick who need action and treatment as soon as possible. By utilizing technology developments nowadays, particularly Android-based Smartphone, an Android app which can be used to search for the shortest path to the hospital is made as an aid to the society to determine the route to the hospital to make the time be efficient. This paper implements Ant Colony System algorithm to obtain the shortest route that can be taken. Ant Colony System has been proven to resolve the problem either symmetric or asymmetric on the Traveling Salesman Problem. From the test results, the general picture of the route that is passable can be seen clearly and assisted by providing directions to each place.
Keywords: Android, Travelling Salesman Problem, Ant Colony System, Shortest Path, Mobile GIS.
(17)
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi saat ini telah memberikan pengaruh yang sangat besar bagi dunia teknologi informasi dan telekomunikasi. Munculnya beragam aplikasi memberikan pilihan dalam peningkatan kinerja suatu pekerjaan, baik yang bersifat desktop based, web based hingga yang sekarang ini munculnya aplikasi-aplikasi baru yang berjalan dalam mobile pada sistem platform android. Pemilihan mobile android untuk salah satu pengembangan aplikasi selain lebih mudah dalam pengoperasiannya, karena sifat dari mobile yang fleksibel menjadi salah satu alasannya. Selain itu layanan sistem aplikasi ini sangat mendukung mobilitas penggunanya.
Dalam http://www.android.com/developer [13] disebutkan bahwa Android
memberikan platform terbuka untuk mengembangkan setiap aplikasi (“apps”) sesuai dengan yang dibayangkan dan pasar terbuka untuk mendistribusikan produk ke basis pengguna yang besar dan berkembang. Pada kuartal ketiga 2011 saja, sudah lebih dari 2,4 miliar aplikasi yang diunduh untuk perangkat Android.
Dengan mobilitas yang semakin tinggi sekarang, setiap orang bisa bepergian ke beberapa tempat berbeda dalam satu kesempatan. Saat bepergian tersebut sering kali kita tidak mempunyai gambaran rute perjalanan yang akan ditempuh. Dalam jurnal yang ditulis Satria Prasamya [9], penentuan rute terpendek diperlukan karena mempertimbangkan efisiensi waktu, jarak tempuh, dan biaya.
Satria Prasamya juga mengemukakan bahwa permasalahan penentuan rute tersebut dikategorikan sebagai Travelling Salesman Problem (TSP). Dalam The
(18)
dalam berbagai bidang, misalnya transportasi dan logistik. Untuk menyelesaikan TSP, M. Dorigo dan L. Gambardella [4] berhasil menerapkan ant colony system dalam baik symmetric maupun asymmetric TSP. Berdasarkan penelitian tersebut, ant colony system memberikan hasil yang lebih baik dibanding genetic algorithms, evolutionary programming, dan simulated annealing.
Dalam https://developers.google.com/maps/mobile-apps [14], dikemukakan bahwa Google Maps, sebagai peta virtual yang dapat diakses secara online, merupakan satu-satunya platform peta yang menyediakan native Software Development Kit (SDK) pada Android.
Berdasarkan pemaparan tersebut, maka terbuka peluang untuk merancang dan membangun Android apps penentu rute terpendek pencarian rumah sakit berbasis ant colony.
1.2 Rumusan Masalah
Berdasarkan latar belakang maka rumusan masalah dalam penelitian ini adalah bagaimana cara merancang dan membangun Androidapps penentu rute terpendek pencarian rumah sakit berbasis ant colony.
1.3 Batasan Masalah
Pada pembuatan aplikasi ini perlu didefinisikan batasan masalah mengenai sejauh
mana pembuatan Android apps ini akan dikerjakan. Beberapa batasan masalah
tersebut antara lain:
1. Android apps ini dibuat berbasis mobile, yang menggunakan sistem operasi Android mulai dari versi 2.2 (“Froyo”) sampai versi 4.0 (“Ice cream”).
2. Android apps ini mensimulasikan rute terpendek pencarian rumah sakit dari satu lokasi awal ke maksimum 100 lokasi tujuan dan kembali lagi ke tempat awal.
(19)
4. Rumah sakit yang dicari merupakan rumah sakit yang terdekat dari lokasi user.
1.4 Tujuan Penelitian
Tujuan penelitian ini untuk menghasilkan Android apps rute pencarian rumah sakit terdekat berbasis ant colony.
1.5 Manfaat Penelitian
Manfaat yang diharapkan dapat diperoleh dari pembuatan Android apps rute
pencarian rumah sakit terpendek berbasis ant colony adalah membantu masyarakat dalam mencari rumah sakit terdekat berdasarkan lokasi pengguna untuk menghemat jarak tempuh dan waktu dalam penentuan rute rumah sakit.
1.6 Metode Penelitian
Dalam membuat aplikasi Android pencarian rumah sakit terpendek berbasis ant colony, digunakan metode studi literatur dan eksperimen. Langkah-langkah kerja penelitian adalah:
1. Studi Literatur
Tahap awal dilakukan studi mengenai referensi-referensi yang berhubungan dengan pembuatan peta secara native pada Android dan tentang ant colony. Referensi-referensi tersebut dapat berupa buku, artikel, jurnal, dan lain-lain. 2. Analisis
Menganalisa penentuan jarak terdekat menggunakan algoritma Ant Colony dengan membandingkan atau melihat aplikasi sejenis yang ada pada GoogleMaps.
(20)
Perancangan aplikasi ini meliputi pembuatan flowchart dan perancangan tampilan.
4. Implementasi
Aplikasi ini akan diimplementasikan pada ponsel berbasis Android. 5. Pengujian
Android apps pencarian rumah sakit terpendek berbasis ant colony yang telah dibuat akan diuji coba. Hal ini bertujuan untuk mencari kesalahan yang masih ada pada aplikasi tersebut dan memperbaiki aplikasi tersebut.
6. Dokumentasi
Membuat dokumentasi dari aplikasi yang telah dibuat beserta hasil-hasil pengujian aplikasi.
1.7 Sistematika Penulisan
Laporan ini tersusun menjadi beberapa bab, sesuai dengan fase pengembangan yang dilakukan antara lain:
Bab I: Pendahuluan
Berisi tentang pendahuluan dari pembangunan aplikasi ini, meliputi latar belakang masalah, rumusan masalah, batasan masalah, tujuan, dan manfaat penelitian.
Bab II: Tinjauan Pustaka
Berisi tentang landasan-landasan teori yang mendasari keseluruhan proses pembangunan aplikasi ini. Bagian ini juga merupakan hasil dari fase studi literature yang dilakukan penulis.
Bab III: Analisis dan Perancangan Sistem
Berisi tentang analisis dan perancangan dari aplikasi yang dihasilkan dari penelitian ini.
(21)
Berisi tentang hasil implementasi dan evaluasi dari aplikasi yang sudah dibangun.
Bab V: Kesimpulan dan Saran
Berisi tentang kesimpulan yang bisa diambil dari keseluruhan kegiatan penelitian serta saran untuk perbaikan di masa mendatang.
(22)
BAB 2
LANDASAN TEORI
2.1 Teori Graf
Teori graf merupakan pokok bahasan yang banyak penerapannya pada masa kini [2]. Pemakaian teori graf telah banyak dirasakan dalam berbagai ilmu, antara lain: optimisasi jaringan, ekonomi, psikologi, genetika, riset operasi (OR), dan lain-lain. Makalah pertama tentang teori graf ditulis pada tahun 1736 oleh seorang matematikawan Swiss yang bernama Leonard Euler. Ia menggunakan teori graf untuk menyelesaikan masalah jembatan Königsberg [5] (sekarang, bernama Kaliningrad). Berikut adalah ilustrasi masalah tersebut:
Gambar 2.1 Masalah JembatanKönigsberg
Masalah yang dikemukakan Euler: Dapatkah melewati setiap jembatan tepat sekali dan kembali lagi ke tempat semula? Berikut adalah sketsa yang merepresentasikan ilustrasi jembatan Königsberg yang pada gambar diatas. Himpunan titik yaitu {A, B, C, D} merepresentasikan sebagai daratan, dan garis yang menghubungkan titik-titik tersebut adalah sebagai jembatan.
(23)
Gambar 2.2 Representasi Graf dari Masalah Jembatan Königsberg
Jawaban pertanyaan Euler adalah tidak mungkin. Agar bisa melalui setiap jembatan tepat sekali dan kembali lagi ke tempat semula maka jumlah jembatan yang menghubungkan setiap daratan harus genap.
2.1.1 Definisi Graf
Graf merupakan struktur diskrit yang terdiri himpunan sejumlah berhingga obyek yang disebut simpul (vertices, vertex) dan himpunan sisi (edges) yang menghubungkan simpul-simpul tersebut [8]. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Notasi sebuah graf adalah G = (V, E), dimana:
• V merupakan himpunan tak kosong dari simpul-simpul (vertices), misalkan V = { v1 , v2 , ... , vn }
• E merupakan himpunan sisi – sisi (edges) yang menghubungkan sepasang simpul, misalkan E = {e1 , e2 , ... , en }
Contoh:
(24)
Gambar 2.3 Graf dari Masalah Jembatan Königsberg
2.1.2 Macam – macam Graf
Macam – macam graf menurut arah dan bobotnya, graf dibagi menjadi empat bagian [8], yaitu:
1) Graf berarah dan berbobot: setiap edge mempunyai arah (yang ditunjukkan dengan anak panah) dan bobot. Gambar 2.4 adalah contoh graf berarah dan berbobot yang terdiri dari tujuh vertek yaitu vertek A, B, C, D, E, F, G. Vertek A mempunyai dua edge yang masing – masing menuju ke vertek B dan vertek C, vertek B mempunyai tiga edge yang masing – masing menuju ke vertek C, vertek D dan vertek E. Bobot antara vertek A dan vertek B pun telah di ketahui.
Gambar 2.4 Graf Berarah dan Berbobot
2) Graf tidak berarah dan berbobot: setiap edge tidak mempunyai arah tetapi mempunyai bobot. Gambar 2.5 adalah contoh graf tidak berarah dan berbobot.
(25)
Graf terdiri dari tujuh vertek yaitu vertek A, B, C, D, E, F, G. Vertek A mempunyai dua edge yang masing – masing berhubungan dengan vertek B dan vertek C, tetapi dari masing – masing edge tersebut tidak mempunyai arah. Edge yang menghubungkan vertek A dan vertek B mempunyai bobot yang telah diketahui begitu pula dengan edge – edge yang lain.
Gambar 2.5 Graf Tidak Berarah dan Berbobot
3) Graf berarah dan tidak berbobot: setiap edge mempunyai arah tetapi tidak mempunyai bobot. Gambar 2.6 adalah contoh graf berarah dan tidak berbobot.
Gambar 2.6 Graf Berarah dan Tidak Berbobot
4) Graf tidak berarah dan tidak berbobot: setiap edge tidak mempunyai arah dan tidak terbobot. Gambar 2.7 adalah contoh graf tidak berarah dan tidak berbobot.
(26)
Gambar 2.7 Graf Tidak Berarah dan Tidak Berbobot
2.1.3 Matriks Ketetanggaan (adjacency matrix) dan Matriks Bersisian (incidency matrix) dari Suatu Graf
• Matriks bertetanggaan
Dua buah simpul dikatakan bertetangga jika kedua simpul tersebut terhubung langsung oleh suatu sisi [8]. Matriks ketetanggaan untuk graf sederhana merupakan matriks busur sangkar yang unsur-unsurnya hanya terdiri dari dua bilangan yaitu 0 (nol) dan 1 (satu). Baris dan kolom pada matriks ini, masing-masing merupakan representasi dari setiap simpul pada graf tersebut. Misalkan ��� merupakan unsur pada matriks tersebut, maka:
a) Jika ��� = 1 maka hal ini berarti simpul i dan simpul j bertetangga. b) Jika ��� = 0 maka hal ini berarti simpul i dan simpul j tidak bertetangga. Contoh:
Perhatikan graf sederhana berikut ini:
Gambar 2.8 Graf Sederhana
(27)
Tabel 2.1 Matriks Ketetanggaan dari Graf Sederhana
P Q R S
A 0 1 0 1
B 1 0 1 1
C 0 1 0 1
D 1 1 1 0
Terlihat bahwa matriks tersebut simetris dan setiap unsur diagonalnya adalah nol (0). Matriks ketetanggaan untuk graf tak sederhana merupakan matriks bujur sangkar yang unsur-unsurnya hanya terdiri dari bilangan 0 (nol), 1 (satu) dan 2 (dua). Baris dan kolom pada matriks ini, masing-masing merupakan representasi dari setiap simpul pada graf tersebut. Misalkan ��� merupakan unsur pada matriks tersebut, maka:
a) Jika ��� = n maka hal ini berarti simpul i dan simpul j bertetangga oleh n buah sisi. b) Jika ��� = 0 maka hal ini berarti simpul i dan simpul j tidak bertetangga.
Contoh:
Perhatikan graf dari masalah jembatan Königsberg:
Gambar 2.9 Graf dari Masalah Jembatan Königsberg Matriks ketetanggaan dari graf tersebut adalah sebagai berikut:
Tabel 2.2 Matriks ketetanggaan Graf dari Masalah Jembatan Königsberg
P Q R S
A 0 2 2 1
B 2 0 1 1
C 2 1 0 1
(28)
• Matriks Bersisian
Sementara itu, suatu sisi e dikatakan bersisian dengan simpul v1 dan simpul v2 jika e menghubungkan kedua simpul tersebut, dengan kata lain e = (v1, v2) [8]. Seperti halnya matriks ketetanggaan, unsur-unsur matriks bersisian pun hanya terdiri dari dua bilangan yaitu 0 (nol) dan 1 (satu), tapi tidak harus bujur sangkar. Hal ini disebabkan, baris dan kolom pada matriks bersisian, masing-masing merepresentasikan simpul dan sisi pada graf yang dimaksud. Misalkan ��� merupakan unsur pada matriks tersebut, maka:
a) Jika ��� = 1 maka hal ini berarti simpul ke-i dan sisi ke-j adalah bersisian. b) Jika ��� = 0 maka hal ini berarti simpul ke-i dan sisi ke-j tidak bersisian.
Contoh:
Perhatikan graf berikut ini:
Gambar 2.10 Graf dari Masalah Jembatan Königsberg Bentuk matriks bersisian dari graf tersebut adalah:
Tabel 2.3 Matriks Bersisian Graf dari Masalah Jembatan Königsberg �� �� �� �� �� �� ��
A 1 1 1 1 0 1 0
B 0 0 1 1 1 0 0
C 1 1 0 0 0 0 1
(29)
2.1.4 Lintasan dan Sirkuit Euler serta Lintasan dan Sirkuit Hamilton • Lintasan dan Sirkuit Euler
Lintasan Euler dalam suatu graf merupakan lintasan yang melalui masing-masing sisi di dalam graf tersebut tepat satu kali [8]. Jika lintasan tersebut kembali kesimpul awal sehingga membentuk lintasan tertutup (sirkuit) maka lintasan ini dinamakan sirkuit Euler. Dengan demikian, sirkuit Euler merupakan sirkuit yang melewati masing-masing sisi tepat satu kali. Graf yang memuat sirkuit Euler dinamakan graf Euler (Eulerian graph), sedangkan graf yang memuat lintasan Euler dinamakan graf semi Euler (semi-Eulerian graph).
Contoh:
Perhatikan graf berikut ini:
Gambar 2.11 Graf Euler
Graf G1 merupakan graf Euler karena memiliki lintasan yang membentuk lintasan tertutup (sirkuit), yaitu: pr – rt – ts – sq – qt – tp. Sementara itu,
Gambar 2.12 Graf Semi Euler
Terlihat bahwa graf G2 merupakan graf semi Euler karena graf tersebut memiliki lintasan yang melalui masing-masing sisi didalam graf tersebut tepat satu kali. Lintasan tersebut adalah: pq – qs – st – tp – pr – rt – tq.
(30)
• Lintasan dan Sirkuit Hamilton
Lintasan Hamilton suatu graf merupakan lintasan yang melalui setiap simpul dalam graf tersebut tepat satu kali [8]. Jika lintasan tersebut kembali kesimpul awal, sehingga membentuk lintasan tertutup (sirkuit) maka lintasan ini dinamakan sirkuit Hamilton.
Dengan demikian, sirkuit Hamilton merupakan sirkuit yang melewati masing-masing sisi tepat satu kali. Graf yang memuat sirkuit Hamilton dinamakan graf Hamilton (Hamiltonian graph), sedangkan graf yang memuat lintasan Hamilton dinamakan graf semi Hamilton (semi- Hamiltonian graph).
Contoh:
Perhatikan tiga graf di bawah ini:
Gambar 2.13 graf
Graf G1 merupakan graf semi Hamilton, lintasan hamiltonya adalah: s – r – p – q – r.
Sedangkan graf G2 merupakan graf Hamilton, sirkuit hamiltonya adalah: t – p – r – q – p – s – q – t .
Sementara itu pada graf G3 tidak terdapat lintasan maupun sirkuit Hamilton.
2.2 Optimasi
(31)
Optimasi merupakan masalah yang berhubungan dengan keputusan yang terbaik, maksimum, minimum dan memberikan cara penentuan solusi yang memuaskan [7].
2.2.2 Permasalahan Optimasi
Permasalahan yang berkaitan dengan optimisasi sangat kompleks dalam kehidupan sehari-hari. Nilai optimal yang didapat dalam optimisasi dapat berupa besaran panjang, waktu, jarak, dan lain-lain. Berikut ini adalah termasuk beberapa persoalan optimisasi [7]:
• Menentukan lintasan terpendek dari suatu tempat ke tempat yang lain.
• Menentukan jumlah pekerja seminimal mungkin untuk melakukan suatu proses produksi agar pengeluaran biaya pekerja dapat diminimalkan dan hasil produksi tetap maksimal.
• Mengatur rute kendaraan umum agar semua lokasi dapat dijangkau.
• Mengatur routing jaringan kabel telepon agar biaya pemasangan kabel tidak terlalu besar dan penggunaannya tidak boros.
2.3 Travelling Salesman Problem
Travelling Salesman Problem merupakan permasalahan pencarian jalur terdekat dari satu titik ke satu titik itu lagi [3]. Penyelesaian persoalan ini melibatkan banyak lintasan dengan jarak yang berbeda. Solusi merupakan salah satu dari sekian banyak alternatif jalur yang diambil. Pencarian jalur terdekat (TSP) dapat diaplikasikan dalam banyak hal, karena itu sampai saat ini penyelesaian yang paling baik masih terus dicari. Berbagai metode sudah ada dan dapat digunakan untuk menyelesaikan persoalan ini. Metode-metode tersebut bervariasi kompleksitas algoritmanya.
(32)
Ant Colony diadopsi dari perilaku koloni semut yang dikenal sebagai sistem semut [4]. Secara alamiah Ant Colony mampu menentukan rute terpendek dalam perjalanan dari sarang ke tempat-tempat sumber makanan. Koloni semut dapat menemukan rute terpendek antara sarang dan sumber makanan berdasarkan jejak kaki pada lintasan yang dilalui. Semakin banyak semut yang melalui lintasan maka akan semakin jelas jejak kakinya. Hal ini akan menyebabkan lintasan yang dilalui semut dalam jumlah sedikit, semakin lama akan semakin berkurang kepadatan semut yang melewatinya, atau bahkan akan tidak dilewati sama sekali, dan sebaliknya, lintasan yang dilalui semut dalam jumlah banyak, semakin lama akan semakin bertambah kepadatan semut yang melewatinya, atau bahkan semua semut akan melalui lintasan tersebut.
Mengingat prinsip algoritma yang didasarkan pada perilaku koloni semut dalam menemukan jarak perjalanan paling pendek tersebut, Ant Colony sangat tepat digunakan untuk diterapkan dalam penyelesaian masalah optimasi, salah satunya adalah untuk menentukan jalur terpendek. Secara alamiah koloni semut mampu menemukan rute terpendek dalam perjalanan dari sarang ke tempat-tempat sumber makanan. Sebagai ilustrasi koloni semut dalam pencarian rute terpendek dapat dilihat pada Gambar 2.14.
Gambar 2.14 Koloni semut.
Tabel 2.4 merupakan representasi koloni semut dalam dunia nyata dan saat diimplementasikan pada Algoritma Ant Colony.
(33)
Tabel 2.4 Tabel representasi koloni semut
No Kenyataan ACO
1 Habitat alamai Graf
2 Sarang dan makanan Node pada graf; asal dan tujuan
3 Koloni semut Agents
4 Visibilitas 1/jarak(n)
5 Feromon Feromon buatan;(г) 6 Perilaku mencari
makanan
Perjalanan secara acak melalui graf
2.4.1 Skema Algoritma Ant Colony
Secara logika dan matematik semut-semut dari titik asal yang sama, misalnya sarang, bergerak sendiri-sendiri melewati jalur masing-masing menuju makanan sebagai titik tujuannya. Setelah mereka sampai pada titik tujuan, semut-semut ini di data satu per satu untuk mengetahui jalur yang dilalui beserta jaraknya. Semut yang menempuh jarak terpendek adalah pemenangnya dan jalur yang dilaluinya ditetapkan sebagai jalur terpendek.
Berikut adalah tahapan-tahapan algoritma semut dalam graf:
(34)
a) Pada gambar 2.15.a menunjukkan semut yang akan melakukan perjalanan mencari tempat dimana ada makanan, dari X menuju Y.
b) Semut akan melakukan gerakan secara acak menuju tempat makanan dengan jalur masing-masing. Seperti pada gambar 2.15.b semut berjalan dengan jalurnya masing-masing.
c) Setelah berjalan secara acak berdasarkan jalurnya masing-masing kemudian semut-semut tersebut akan bertemu lagi dimana tempat makanan berada seperti pada gambar 2.15.c
d) Pada saat melakukan perjalanan melalui jalurnya masing-masing, semut meninggalkan feromon sebagai jejak yang akan diikuti oleh semut yang lainnya. Semakin banyak semut dan semakin dekat jarak yang ditempuh maka feromon juga semakin kuat sehingga semut yang lainnya akan mengikuti jalur tersebut. e) Pada optimisasi algoritma Ant Colony, proses tadi akan dilakukan secara berulang
sesuai dengan siklus maksimum yang telah ditentukan.
Pencarian solusi masalah rute terpendek dengan menggunakan algoritma Ant Colony dimulai dengan meletakkan seekor semut pada sembarang vertex awal. Selanjutnya semut tersebut akan memilih vertex berikutnya berdasarkan pengaruh jumlah pheromone yang terakumulasi pada setiap edge yang berpangkal pada vertex tersebut. Semut kemudian seolah-olah melalui edge tersebut untuk menuju vertex berikutnya, dengan meletakkan sejumlah pheromone (local updating) berdasarkan formula [7]:
τrs←�1-ε�.τrs+ε.τ0 ……...……….. (2.1)
dengan τ0= 1
nCnn
dimana:
τrs = intensitas jejak semut (pheromone) antara titik r dan titik s
ε = parameter penguapan (evaporasi) pheromone lokal τ0 = intensitas jejak semut (pheromone) awal
n = jumlah titik
(35)
Langkah-langkah dalam menjalankan algoritma Ant Colony:
1. Set jumlah semut, pheromone awal pada setiap edge, jumlah iterasi 2. Lakukan sebanyak jumlah iterasi yang diinginkan
3. Lakukan untuk setiap semut letakkan setiap semut pada setiap node awal.
4. Lakukan pencarian rumah sakit berikutnya, lakukan local updating sampai semua semut mengunjungi semua node.
5. Catat rute terpendek yang didapat lakukan global updating sampai batas iterasi.
Selanjutnya pada setiap akhir iterasi akan dilakukan evaluasi untuk menentukan lintasan yang terbaik dan untuk membuat lintasan tersebut menjadi sedikit kurang disenangi pada iterasi berikutnya, maka dilakukan global updating yang diaplikasikan hanya kepada lintasan yang terbaik sampai dengan iterasi tersebut dengan mengunakan formula [7]:
τrs←�1-ρ�.τrs+ρ.∆τrsbest ……...……….. (2.2)
dengan ∆τrsbest=�
1 Cbest
0
dimana:
τrs = intensitas jejak semut (pheromone) antara titik r dan titik s
ρ = parameter penguapan (evaporasi) pheromone global Cbest = panjang lintasan terbaik keseluruhan
2.5 Android
Android adalah sistem operasi Mobile Phone berbasiskan Linux [12]. Android bersifat open source yang source codenya diberikan secara gratis bagi para pengembang untuk menciptakan aplikasi mereka agar dapat berjalan di Android.
jika (r,s)
∈
lintasan terbaik
keseluruhan
(36)
2.5.1 Features
Features yang terdapat pada android itu sendiri adalah: Framework Aplikasi, Mesin Virtual Dalvik, Integrated browser, Grafis, SQLite, Media support, GSM Telephony, Bluetooth, EDGE, 3G dan WiFi, Multi-touch, serta Lingkungan Development Market.
Android bukan sekedar hanya untuk perangkat mobile saja. Android merupakan sebuah sistem operasi yang dikemas sedemikian rupa sehingga dapat digunakan untuk berbagai perangkat yang menggunakan layar mobile. Berikut penjelasan mengenai layer arsitektur android:
a. Applications
Android akan menggabungkan dengan serangkaian aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak, dan lain-lain.
b. Application Framework:
Dengan menyediakan sebuah platform pengembangan yang terbuka, pengembang Android menawarkan kemampuan untuk membangun aplikasi yang sangat kaya dan inovatif.
c. Libraries
Android termasuk satu set pustaka C/C++ yang digunakan oleh berbagai komponen sistem Android.
d. Android Runtime
Android termasuk satu set perpustakaan inti yang menyediakan sebagian besar fungsi yang tersedia di perpustakaan inti dari bahasa pemrograman Java.
e. Linux Kernel
Android bergantung pada Linux versi 2.6 untuk layanan sistem inti seperti keamanan, manajemen memori, manajemen proses, network stack, dan model pengemudi. Kernel juga bertindak sebagai lapisan abstraksi antara hardware dan seluruh software stack.
(37)
Google mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Berikut ini susunan dari lapisan – lapisan tersebut jika di lihat dari lapisan dasar hingga lapisan teratas:
a. Linux Kernel b. Android Runtime c. Libraries
d. Application Framework e. Application
Gambar 2.16 Arsitektur Android [6]
1. Linux Kernel
Android menggunakan Kernel Linux versi 2.6 sebagai sistem utama. Fungsi kernel yang digunakan antara lain untuk keamanan, manajemen memori, manajemen proses, manajemen jaringan dan driver model. Kernel juga berfungsi sebagai layer abstrak antara hardware dan lapisan lainnya pada software stack.
2. Android Runtime
Tiap aplikasi pada Android memiliki prosesnya masing-masing. Tiap aplikasi tersebut memiliki instan dari Dalvik virtual machine (VM). Dalvik virtual machine dirancang
(38)
agar suatu device dapat menjalankan beberapa VM secara efisien. Dalvik VM mengeksekusi file dengan format Dalvik Executable format (.dex) yang dirancang untuk meminimalkan memory footprint. Dalvik VM berbasis register, dan dapat menjalankan kelas-kelas yang dikompilasi dengan bahasa pemrograman java dan ditransformasikan menjadi format .dex. Dalvik VM sendiri bergantung pada Kernel Linux untuk fungsi dasarnya, seperti threading dan manajemen memori secara low-level.
3. Libraries
Android mendukung beberapa library C/C++ yang digunakan pada berbagai komponen Android. Kemampuan ini dapat diakses oleh developer melalui Android application framework. Beberapa library diantaranya adalah :
- System C library. Implementasi library C standar (libc).
- Media Libraries. Mendukung berbagai format multimedia (termasuk MPEG4, H.264, MP3, AAC, AMR, JPG, PNG).
- Surface Manager. Mengatur akses ke subsistem display. - LibWebCore. Engine web browser modern.
- SGL. Engine grafis 2D.
- 3D Library. Implementasi OpenGL ES 1.0 yang mendukung akselerasi hardware.
- FreeType. Rendering untuk bitmap dan vector font.
- SQLite. Basis data relasional yang kecil namun sangat ampuh.
4. Application Framework
Lapisan ini berisi sekumpulan API yang dapat digunakan oleh programmer maupun core application dari Android. Lapisan ini dirancang untuk memudahkan penggunaan komponen dari Android sendiri. Aplikasi manapun dalam Android dapat berbagi fungsi sehingga aplikasi lain dapat memanfaatkannya.
Aplikasi pada Android disusun atas beberapa komponen: a) Sekumpulan Views.
Digunakan untuk mengatur tampilan pada aplikasi. Contohnya adalah lists, grids, text box, button, bahkan embeddable web browser.
(39)
Komponen yang mengatur agar aplikasi dapat mengakses resources dari aplikasi lain (seperti Contacts), atau berbagi data dengan aplikasi lain.
c) Resource Manager.
Menyediakan akses ke pada resource non-code seperti localized string, grafik dan file layout.
d) Notification Manager.
Memungkinkan agar suatu aplikasi dapat menampilkan peringatan yang dapat dikostumasi pada status bar.
e) Activity Manager.
Mengatur siklus aplikasi dan navigasi antar aplikasi yang sedang berjalan.
5. Application
Application merupakan program yang langsung berhubungan dengan user. Baik program yang merupakan bawaan dari Android sendiri maupun program yang dibuat oleh developer menggunakan bahasa pemrograman java. Contoh program bawaan dari platform Android sendiri adalah email client, program SMS, calendar, maps, web browser, contact dan sebagainya.
2.5.3 The Dalvik Virtual Machine (DVM)
Android berjalan di dalam DVM bukan pada Java Virtual Machine (JVM) yang dikira selama ini [13]. Banyak kesamaan antara DVM dan JVM, namun DVM memiliki feature yang lebih baik dibandingkan dengan JVM untuk perangkat mobile. DVM adalah register bases sementara JVM adalah stack based, DVM didesain dan ditulis oleh Dan Bornsten dan beberapa engineers Google lainnya. Dalam mengatasi fungsionalitas tingkat rendah, DVM menggunakan kernel Linux untuk keamanan, threading, proses dan manajemen memori. Itu memungkinan kita menggunakan bahasa C/C++ dalam membuat aplikasi sama halnya dengan OS Linux kebanyakan. Oleh karena itu kita harus kita harus memahami arsitektur dan proses dari kernel Linux yang digunakan dalam Android tersebut.
Para pengembang tidak perlu khawatir bila ia tidak memiliki device Android, karena Android memiliki virtual machine untuk eksekusi aplikasi. DVM mengeksekusi
(40)
executeable file, artinya sebuah format yang dioptimalkan untuk memastikan memori yang digunakan sangatlah kecil. Mengapa bisa seperti itu? Karena executeable file mengubah kelas bahasa Java dan dikompilasi dengan menggunakan tools yang sudah ada.
2.5.4 Android SDK (Software Development Kit)
Android SDK merupakan sebuah tools yang diperlukan untuk mengembangkan aplikasi berbasis Android menggunakan bahasa pemrograman Java [13]. Pada saat ini Android SDK telah menjadi alat bantu dan API (Application Programming Interface) untuk mengembangkan aplikasi bebasis Android. Android SDK dapat Anda lihat dan unduh pada situs resminya, yaitu http://www.developer.android.com/.
Android SDK bersifat gratis dan bebas Anda distribusikan karena Android bersifat open source.
2.5.5 Versi Android
2.5.5.1 Android versi awal (2007 – 2008)
Pada September 2007, Google mengajukan hak paten aplikasi telepon seluler. Google mengenalkan Nexus One, salah satu jenis telepon pintar GSM yang menggunakan Android pada sistem operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada 5 Januari 2010. Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat bergerak (mobile) yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru. Smartphone yang memakai sistem operasi Android adalah HTC Dream, yang dirilis
(41)
pada 22 Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18 jenis telepon seluler yang menggunakan Android.
2.5.5.2Android versi 1.1
Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.
2.5.5.3Android versi 1.5 ( Cupcake )
Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.
2.5.5.4Android versi 1.6 ( Donut )
Donut (versi 1.6) dirilis pada September 2009 dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA/EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA.
(42)
2.5.5.5Android versi 2.0 / 2.1 ( Éclair )
Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair). Perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps - aplikasi unggulan).
Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik. Dengan semakin berkembangnya dan semakin bertambahnya jumlah handset Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.
2.5.5.6Android versi 2.2 (Froyo : Frozen Yoghurt)
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.
2.5.5.7Android versi 2.3 ( Gingerbread )
Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan
(43)
kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization,headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.
2.5.5.8Android versi 3.0/3.1 ( Honeycomb )
Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom.
2.5.5.9Android versi 4.0 (Ice Cream Sandwich)
Android versi 4.0 akan dirilis akhir tahun 2011. Setelah kita ketahui versi Android ini perlu diketahui bahwa nama lain dari versi-versi tersebut diambil oleh Google dari nama makanan penutup.
2.5.6 Komponen Aplikasi Android
Ada 4 macam komponen aplikasi yang merupakan titik masuk di mana aplikasi Android bisa berjalan. Keempat komponen tersebut memiliki fungsi dan daur hidup yang berbeda yang menentukan bagaimana masing-masing komponen dibuat dan dihancurkan. Keempat tipe komponen aplikasi tersebut adalah:
1. Activities 2. Services
3. Content providers 4. Broadcast receivers
(44)
2.6 Eclipse
Dalam pengembangan aplikasi Android biasanya para pengembang (developer Android) menggunakan Eclipse sebagai Integrated Development Environment (IDE) [12]. IDE merupakan program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Eclipse tersedia secara bebas untuk merancang dan mengembangkan aplikasi Android. Eclipse merupakan IDE terpopuler di kalangan developer Android, karena Eclipse memiliki Android plug-in lengkap yang tersedia untuk mengembangkan aplikasi Android. Selain itu, Eclipse juga mendapat dukungan langsung dari Google untuk menjadi IDE pengembangan Android, membuat project Android di mana source software langsung dari situs resminya Google. Selain Eclipse, dapat pula menggunakan IDE Netbeans untuk pengembangan aplikasi Android.
Sampai saat ini Eclipse memiliki 5 versi package, yaitu: Indigo Package, Helios Package, Galileo Package, Ganymade Package dan Europa Package. Dari total download pada situs resmi Eclipse yaitu http://www.eclipse.org/ sebanyak 988,945 pengunduh Eclipse Classic Indigo pertanggal 20 Agustus 2011.
Aplikasi Android dapat dikembangkan pada sistem operasi, diantaranya: • Windows XP, Vista dan 7
• Mac OS X atau lebih baru • Linux
2.7 Waterfall Model
Waterfall Model adalah model yang muncul pertama kali yaitu sekitar tahun 1970 [10]. Waterfall Model merupakan model yang paling banyak digunakan dalam pembuatan program. Model ini disebut waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.
Terdapat beberapa tahapan pada model Waterfall. Berikut adalah penjelasan dari tahap-tahap yang di lakukan di dalam model ini:
(45)
Pemodelan ini diawali dengan komunikasi dengan konsumen untuk mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb.
b) Planning
Setelah proses communication, kita menetapkan rencana untuk pengerjaan software yang meliputi tugas-tugas teknis yang akan dilakukan, resiko yang mungkin terjadi, sumber-sumber yang dibutuhkan, hasil yang akan dibuat, dan jadwal pengerjaan.
c) Modeling
Pada proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement.
d) Construction
Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu software, artinya penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki.
e) Deployment
Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala.
(46)
Sumber : Pressman, Roger S.[10]
Model ini menjadi terkenal karena pengaplikasian yang mudah, dan ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal proyek, maka pembuatan program dapat berjalan dengan baik dan tanpa masalah. Akan tetapi karena model ini melakukan pendekatan secara terurut maka ketika ada suatu tahap yang terhambat maka tahap berikutnya akan ikut terhambat juga.
2.8 Penelitian Terdahulu
Penelitian terdahulu merupakan penelitian yang telah dilakukan oleh pengarang sebelumnya sebagai sumber tinjauan pustaka guna menguatkan penulisan tinjauan pustaka dari sumber yang terpercaya. Berikut ini adalah beberapa penelitian yang telah dilakukan sebelumnya:
1. Penelitian yang dilakukan oleh Agus Leksono dengan judul Algoritma Ant Colony Optimization (ACO) Untuk Menyelesaikan Travelling Salesman Problem (TSP). Dalam penelitian ini, peneliti menjelaskan dan membandingkan 4 jenis Algoritma Ant Colony Optimization (ACO) dalam menyelesaikan masalah Travelling Salesman Problem (TSP). 4 jenis Algoritma Ant Colony Optimization (ACO) yang dibandingkan adalah Algoritma Ant System, Elitist Ant System, Rank Based Ant System, Max-Min Ant System, dan Ant Colony System. Dari hasil perbandingan, maka diketahui bahwa Ant Colony System memiliki hasil yang paling optimal [7]. 2. Penelitian yang dilakukan oleh Satria Prasamya dengan judul Penentuan Jalur
(47)
Android. Dalam penelitian ini, peneliti membangun sebuah aplikasi untuk menentukan rute terpendek pada Platform Android dengan menggunakan Google Maps dan Algoritma Ant Colony Optimization. Aplikasi ini mengharuskan user untuk memasukkan lokasi user serta lokasi yang ingin dituju oleh user sendiri. Aplikasi ini memiliki dua fitur, yaitu fitur one way trip dan fitur round trip. Fitur one way trip akan mencari rute terpendek dimana lokasi yang pertama diinputkan adalah lokasi awal dan lokasi terakhir menjadi lokasi tujuan sedangkan fitur round trip akan mencari rute terpendek yang dapat ditempuh untuk kembali ke lokasi awal [9].
3. Penelitian yang dilakukan oleh Eko Verdianto dengan judul Perancangan Sistem Penentuan Rute Terpendek Jalur Evakuasi Tsunami dengan Algoritma Ant Colony (Studi Kasus : Belawan). Dalam penelitian ini, peneliti membangun sebuah aplikasi berbasis desktop untuk mencari rute terpendek dengan bantuan Arcview GIS. Algoritma yang digunakan adalah Algoritma Ant Colony System. Aplikasi ini berguna untuk mencari rute terpendek jalur evakuasi apabila terjadi tsunami di Belawan [11].
(48)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisa sistem merupakan kegiatan penguraian suatu sistem informasi yang utuh dan nyata ke dalam bagian-bagian atau komponen-komponen komputer yang bertujuan untuk mengidentifikasi serta mengevaluasi masalah-masalah yang muncul, hambatan-hambatan yang mungkin terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya. Tahapan yang dilakukan dalam analisis ini yaitu:
3.1.1 Analisis Masalah
Rute terpendek merupakan salah satu solusi ketika kita melakukan perjalanan menuju rumah sakit di kota Medan karena dengan rute terpendek, kita dapat menghemat biaya dan menghemat waktu. Namun terkadang kita tidak mengetahui rute terpendek untuk menuju suatu lokasi di kota Medan karena banyaknya rute yang terdapat pada kota tersebut. Oleh karena itu perlunya optimasi dalam penentuan rute terpendek menuju rumah sakit.
(49)
Rute terpendek dengan algoritma ant colony Pengguna Peta konvensional
Machine Metode ant colony Keterbatasan dalam
proses data Proses pencarian memakan waktu relatif lama
Pencarian rute terpendek Secara manual rentan terjadi
Kesalahan dan tidak efisien
Pencarian rute terpendek Secara manual
Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem
3.1.2 Analisis Kebutuhan Sistem
3.1.2.1 Kebutuhan Fungsional Sistem
Kebutuhan fungsional yang harus dimiliki oleh sistem pencarian rute terpendek pencarian rumah sakit adalah:
1. Sistem dapat membaca masukan berupa titik awal pencarian rute.
2. Sistem dapat melakukan pencarian rute terpendek berdasarkan algoritma Ant Colony System
3. Sistem dapat menampilkan hasil pencarian rute terpendek pencarian rumah sakit.
3.1.2.2 Kebutuhan Non Fungsional Sistem
Untuk mendukung kinerja sistem, sistem sebaiknya dapat berfungsi sebagai berikut: 1. Sistem dapat melakukan pencarian rute terpendek dengan kecepatan komputasi
yang tinggi.
2. Sistem harus mudah digunakan sehingga pengguna dapat mengoperasikannya dengan baik.
(50)
3.1.3 Pemodelan
Pada penelitian ini digunakan UML sebagai bahasa pemodelan untuk mendesain dan merancang sistem pencarian rute terpendek pencarian rumah sakit. Model UML yang digunakan antara lain use case diagram, activity diagram, dan sequence diagram.
3.1.3.1 Use Case Diagram
Use case diagram akan menjelaskan apa saja fungsi-fungsi yang akan dikerjakan oleh sistem. Hal ini dikarenakan use case diagram akan merepresentasikan bagaimana interaksi antara aktor (user) dengan sistem. Untuk mengidentifikasikan apa saja aktor dan use case yang terlibat pada sistem ini, kita perlu menjawab beberapa pertanyaan berikut ini:
1. Siapa yang menggunakan sistem? Jawaban: Pengguna
2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban: Pengguna
3. Apa saja yang dapat dilakukan pengguna pada sistem?
Jawaban: Melihat peta kota Medan, Melakukan proses pencarian rute rumah sakit di kota Medan.
(51)
Gambar 3.2 Use Case Diagram Sistem Pencarian Rute Rumah Sakit Terpendek
Berikut adalah dokumentasi naratif dari Use Case Diagram. 1. Nama Use Case : Tampil Peta
Aktor : Pengguna
Tujuan : Menampilkan Peta Kota Medan
Tabel 3.1 Dokumentasi Naratif Use Case Tampil Peta Nama Use case Tampil Peta
Aktor Pengguna
Deskripsi
Proses ini menjelaskan proses menampilkan peta kota Medan yang menjadi titik fokus pencarian rute rumah sakit terpendek.
Prakondisi Sudah masuk kedalam aplikasi
Bidang khas Kegiatan pengguna Respon sistem
Pencarian Rute Terpendek untuk Pencarian Rumah Sakit dengan Algoritma Ant Colony
Tampil Peta
Pencarian Rute
Perhitungan Ant Colony
Peta Hasil Perhitungan Ant Colony
<<extend>>
<<extend>>
(52)
1. Pilih Rute
2. Menambah data rumah sakit
1. Menampilkan Peta Kota Medan.
2. Menampilkan lokasi pengguna pada peta 3. Menampilkan lokasi
rumah sakit pada peta 4. Menyimpan data rumah
sakit ke database Post-kondisi Detail rumah sakit ditampilkan pada Window
2. Nama Use Case : Pencarian Rute Aktor : Pengguna
Tujuan : Mencari rute terpendek menuju rumah sakit terdekat
Tabel 3.2 Dokumentasi Naratif Use Case Pencarian Rute Nama Use case Pencarian Rute
Aktor Pengguna
Deskripsi Proses ini menjelaskan proses pencarian rute rumah sakit terpendek
Prakondisi Sudah masuk dalam tampilan antarmuka sistem
Bidang khas
Kegiatan pengguna Respon sistem
1. Pilih proses pencarian 1. Menampilkan peta kota Medan
2. Mengecek Lokasi pengguna berdasarkan data lokasi dari GPS 3. Menampilkan rute
rumah sakit beserta nama jalan
4. Menampilkan jarak tiap-tiap jalan yang harus dilalui.
(53)
5. Menampilkan estimasi waktu yang dibutuhkan untuk menempuh perjalanan pada masing-masing jalan.
Bidang Alternatif - -
Post-kondisi Sistem menampilkan rute terpendek pencarian rumah sakit
3. Nama Use Case : Perhitungan Ant Colony Aktor : Pengguna
Tujuan : Mendapatkan rute terpendek menuju rumah sakit terdekat
Tabel 3.3 Dokumentasi Naratif Use Case Perhitungan Ant Colony Nama Use case Perhitungan Ant Colony
Aktor Pengguna
Deskripsi
Proses ini menjelaskan proses perhitungan jarak rute terpendek ke rumah sakit terdekat dengan algoritma Ant Colony
Prakondisi Sudah masuk ke dalam aplikasi
Bidang khas
Kegiatan pengguna Respon sistem
1. Pilih Start Pencarian 1. Mencari lokasi semua rumah sakit yang ada di database
2. Menghitung jarak semua rumah sakit ke pengguna 3. Menentukan rumah sakit
yang terdekat 4. Menentukan rute
(54)
sakit terdekat
Post-kondisi Sistem mendapatkan rute terpendek untuk rumah sakit terdekat
4. Nama Use Case : Peta Hasil Perhitungan Ant Colony Aktor : Pengguna
Tujuan : Menampilkan peta lengkap dengan polyline yang menandakan rute terpendek menuju rumah sakit terdekat
Tabel 3.4 Dokumentasi Naratif Use Case Peta Hasil Perhitungan Ant Colony Nama Use case Peta Hasil Perhitungan Ant Colony
Aktor Pengguna
Deskripsi
Proses ini menampilkan peta yang telah dilengkapi dengan rute terpendek dan ditandai dengan polyline menuju rumah sakit terdekat
Prakondisi Sudah masuk ke dalam tampilan antarmuka sistem
Bidang khas
Kegiatan pengguna Respon sistem
1. Pilih Start Pencarian 1. Memproses pencarian rute terpendek ke rumah sakit terdekat
2. Memberikan polyline pada rute terpilih
3. Merequest perintah arah rute terpendek ke rumah sakit terdekat
Post-kondisi Sistem menampilkan peta ber-polyline yang berupa rute terpendek dari lokasi pengguna ke rumah sakit terdekat
3.1.3.2 Activity Diagram
Berikut dijelaskan proses tampil peta kota Medan dan pencarian rute yang terjadi pada sistem pencarian rute rumah sakit terdekat dengan menggunakan activity diagram.
(55)
3.1.3.2.1 Activity Diagram Tampil Peta
Activity Diagram untuk tampil peta kota Medan dapat kita lihat pada gambar 3.3.
Sistem Pengguna
Pilih rute Peta Medan ,lokasi rumah sakit,lokasi pengguna
Pilih tambah data rumah sakit Menyimpan data rumah sakit pada database
Gambar 3.3 Activity Diagram Tampil Peta
Pada tampilan tampil peta kota Medan, sistem akan menampilkan peta kota Medan beserta lokasi rumah sakit dan lokasi pengguna pada peta. Pengguna bisa melihat detail hasil proses pencarian rumah sakit.
3.1.3.2.2 Activity Diagram Pencarian Rute
(56)
Sistem Pengguna
Cek lokasi pengguna
Menampilkan lokasi pengguna pada peta Pilih proses pencarian
Memproses pencarian rute terpendek
Menampilkan hasil rute rumah sakit terpendek Mengulangi pencarian rute
Ya
Tidak
Pilih menu rute Menampilkan peta kota medan dan lokasi rumah sakit
Gambar 3.4 Activity Diagram Pencarian Rute
Proses pencarian rute terpendek diawali dengan mengambil data lokasi pengguna yang didapatkan dari data gps pada smartphone android berupa latitude dan longitude. Mengambil semua data latitude dan longitude rumah sakit yang berada pada database aplikasi ini. Sistem akan melakukan penghitungan jarak antara pengguna dengan semua lokasi rumah sakit dan menghasilkan nilai jarak terkecil dari semua jarak yang dihitung. Sistem akan merequest pada http google untuk mendapatkan
(57)
node-node lokasi yang harus dilalui, mendapatkan jarak tiap node yang akan dilalui, estimasi waktu tiap node dan estimasi total waktu yang dibutuhkan untuk menempuh lokasi pengguna menuju rumah sakit terdekat. Setelah semua informasi tersedia system akan melakukan proses draw berupa garis-garis yang menghubungkan antar node-node sampai pada node terakhir.
3.1.3.2.3 Activity Diagram Perhitungan Ant Colony
Activity Diagram untuk use case perhitungan Ant Colony dapat dilihat pada gambar 3.5.
Gambar 3.5 Activity Diagram Perhitungan Ant Colony
Pada Perhitungan Ant Colony, sistem pertama-tama mencari rumah sakit yang terdekat dengan pengguna. Sistem kemudian menentukan rute terpendek untuk menuju rumah sakit terdekat.
Pengguna
Sistem
Pilih Start Pencarian Mencari lokasi semua rumah sakit yang ada di database
Menghitung jarak semua rumah sakit ke pengguna
Menentukan rumah sakit terdekat
(58)
3.1.3.2.4 Activity Diagram Peta Hasil Perhitungan Ant Colony
Activity Diagram untuk use case peta hasil perhitungan Ant Colony dapat dilihat pada gambar 3.6.
Gambar 3.6 Activity Diagram Peta Hasil Perhitungan Ant Colony
Pada Peta Hasil Perhitungan Ant Colony, sistem menampilkan peta yang telah dilengkapi dengan polyline dimana polyline tersebut menunjukkan rute terpendek dari lokasi pengguna menuju rumah sakit terdekat. Peta ini juga menampilkan arah dan jarak yang harus ditempuh pengguna untuk menuju rumah sakit terdekat.
3.1.3.3 Sequence Diagram
Berikut dijelaskan proses tampil peta kota Medan dan pencarian rute yang terjadi pada sistem pencarian rute rumah sakit terpendek dengan menggunakan sequence diagram.
3.1.3.3.1 Sequence Diagram Tampil Peta
Pengguna Sistem
Pilih Start Pencarian Memproses pencarian rute terpendek ke rumah sakit terdekat
Memberikan polyline pada rute yang terpilih
(59)
Pada proses tampil peta kota Medan, sistem akan menampilkan peta kota Medan, lokasi rumah sakit dan lokasi pengguna pada peta. Sequence diagram untuk proses ini diperlihatkan pada Gambar 3.5.
Gambar 3.7 Sequence Diagram Tampil Peta
Pada sequence diagram gambar 3.7 terlihat bahwa user akan memilih menu rute, kemudian sistem akan menampilkan peta kota Medan, lokasi rumah sakit dan lokasi pengguna pada peta.
3.1.3.3.2 Sequence Diagram Pencarian Rute
Proses Pencarian Rute akan menampilkan peta kota Medan, lokasi rumah sakit, lokasi pengguna dan kontrol pencarian rute terpendek. Sequence diagram yang dapat menggambarkan proses pencarian rute pada sistem dapat dilihat pada gambar 3.8.
(60)
Gambar 3.8 Sequence Diagram Pencarian Rute
Pada sequence diagram diatas terlihat bahwa user memilih memilih menu pencarian rute. Sistem akan menerima data latitude dan longitude yang berasal dari data gps pada smartphone dan mengambil semua data latitude dan longitude rumah sakit yang berada pada database aplikasi ini. Sistem akan melakukan penghitungan jarak antara pengguna dengan semua lokasi rumah sakit dan menghasilkan nilai jarak terkecil dari semua jarak yang dihitung. Sistem akan merequest pada http google uuntk mendapatkan node-node lokasi yang harus dilalui, mendapatkan jarak tiap node yang akan dilalui, estimasi waktu tiap node dan estimasi total waktu yang dibutuhkan untuk menempuh lokasi pengguna menuju rumah sakit terdekat. Setelah semua informasi tersedia system akan melakukan proses draw berupa garis-garis yang menghubungkan antar node-node sampai pada node terakhir.
3.2 Pseudo Code Ant Colony
Penggunaan metode ACO bertujuan untuk mendapatkan rute pencarian terpendek dengan mengoptimasi input-input yang berupa koordinat koordinat dari titik lokasi rumah sakit dan lokasi pengguna. Algoritma ini adalah inti dari sistem yang sedang dibangun. Algoritma Ant Colony mengikuti skema berikut:
(61)
Procedure ACO
Penetapan parameter, inisialisasi pheromone trail
While (sebelum memenuhi kondisi yang diinginkan)do Bangun solusi
Cari solusi terbaik Update pheromon endwhile
End Procedure
Pada perancangan algoritma ini terlebih dahulu harus menentukan input awal berupa koordinat lokasi rumah sakit dan lokasi pengguna yang berbentuk data latitude, longitude. Dalam perhitungannya, metode ini mempunyai langkah-langkah untuk pengoptimasiannya. Berikut adalah langkah-langkah perhitungannya :
1. Inisialisasi harga parameter-parameter algoritma 2. Intensitas jejak semut antar state dan perubahannya (τij) 3. Visibilitas dari suatu solusi yang akan dipilih oleh semut (ήij) 4. Tetapan pengendali intensitas jejak semut (α),nilai α ≥ 0 5. Tetapan pengendali visibilitas (β), nilai β ≥ 0
(62)
3.3 Flowchart Algoritma Ant Colony
Start
Inialiasi harga parameter proses : Jumlah semut(m)
Jumlah siklus maksimum(Ncmax)
Tetapan pengendali intensitas jejak semut(a) Tetapan pengendali visibilitas(B)
Koefesien siklus semut(Q) Tetapan penguapan jejak semut(p) Intensitas jejak semut
Siklus = 1
Semut = 1
Pengisian rumah sakit pertama ke tabu list
Hitung probabilitas rumah sakit yang dikunjungi
Bangkitkan angka random untuk memilih rumah sakit yang akan dikunjungi
RndProbabilitas=random
Semua rumah sakit yang dikunjungi telah terhubung
Hitung jarak dengan cara menjumlahkan semua node yang dilalui semut.
Semut=banyak semut
Hitung rute terpendek
Semut= Semut + 1
Siklus= Siklus + 1 Tidak
Ya
Tidak
Ya
(63)
Terjadi Konvergensi
Perbarui harga intensitas semut antara titik
Siklus = Banyak siklus maksimal
Hitung rute terpendek
Lintasan jalur optimal Selesai Ya
Tidak
Tidak
Ya
A B
Gambar 3.9 Flowchart Algoritma Ant Colony
3.4 Perancangan Sistem
Antarmuka merupakan perantara antara pengguna dengan sistem. Tampilan antarmuka sangat mempengaruhi penggunaan suatu sistem. Oleh karena itu, antarmuka harus dirancang sedemikian rupa sehingga memudahkan pengguna dalam menggunakan sistem tersebut. Pada tahap ini akan dilakukan perancangan antarmuka sistem yang akan digunakan.
3.4.1 Antarmuka Splash screen
Antarmuka splash screen merupakan tampilan yang muncul pertama kali, ketika aplikasi ini dijalankan oleh pengguna. Tampilan splash screen memiliki durasi waktu selama 4 detik, dan antarmuka ini akan menghilang secara otomatis.
(64)
Gambar 3.10 Antarmuka Splash Screen
Keterangan: 1. Judul
Bagian yang berisi judul dari aplikasi. 2. Body
Bagian yang berisi icon loading dan icon peta.
3.4.2 Antarmuka Menu Utama
Antarmuka Menu Utama merupakan tampilan yang muncul setelah tampilan splash screen menghilang. Tampilan menu utama memilki 3 tombol utama yaitu:
• Login
Login berfungsi untuk menuju halaman login • Tentang
Tentang berfungsi untuk menuju halaman tentang aplikasi ini. • Rute
Penentuan Rute Terpendek
Pencarian Rumah Sakit
1
(65)
Rute berfungsi untuk menuju halaman rute.
Gambar 3.11 Antarmuka Menu Utama
Keterangan: 1. Button
Menu button mempunyai 3 tombol yang merupakan link ke halaman-halaman berbeda. 3 tombol tersebut adalah tombol Login, Tentang dan Rute.
2. Body
Bagian yang berisi icon peta. 3. Button
Bagian yang berisi tombol yang berfungsi sebagai link ke Menu Utama.
3.4.3 Antarmuka Tentang
Antarmuka Tentang akan muncul saat tombol Tentang dipilih. Antarmuka Tentang berisi judul aplikasi, nama author dan user manual.
Login Tentang Rute 1
2
(66)
Gambar 3.12 Antarmuka Tentang
Keterangan: 1. Judul
Bagian yang berisi judul dari aplikasi. 2. Body
Bagian yang berisi user manual untuk menuntun pengguna dalam menjalankan aplikasi.
3. Button
Bagian yang berisi button yang berfungsi sebagai link ke Menu Utama.
3.4.4 Antarmuka Daftar Rumah Sakit
Antarmuka Daftar Rumah Sakit akan muncul jika pengguna memilih tombol Rute. Antarmuka ini berisi daftar semua rumah sakit dan tombol Rute Pencarian.
1
2
3
Penentuan Rute Terpendek
Pencarian Rumah Sakit dengan
Algoritma Ant Colony
(67)
Gambar 3.13 Antarmuka Daftar Rumah Sakit
Keterangan:
1. List Daftar Rumah Sakit
Bagian ini berisi daftar semua rumah sakit yang ada di database. 2. Button Rute Pencarian
Bagian ini berisi tombol yang berfungsi sebagai link ke Rute Pencarian.
3.4.5 Antarmuka Rute Pencarian
Antarmuka Rute Pencarian akan muncul saat tombol Rute Pencarian dipilih. Antarmuka ini berfungsi untuk menampilkan peta kota Medan, lokasi rumah sakit, lokasi pengguna pada peta. Proses pencarian rute dimulai ketika pengguna menekan menu proses pencarian. Sistem kemudian akan menghitung jarak-jarak semua rumah sakit terhadap lokasi pengguna saat itu. Sistem akan memproses rute terpendek dari lokasi pengguna sebagai titik awal dan rumah sakit yang telah dicari jarak terpendek dengan menggunakan Algoritma Ant Colony System.
2 1
(68)
Gambar 3.14 Antarmuka Rute Pencarian
Keterangan: 1. View Peta
Bagian ini berisi tampilan peta kota Medan, lokasi pengguna dan lokasi rumah sakit. 2. Button
Bagian ini berisi 3 tombol dimana tombol Start Pencarian berfungsi untuk memulai pencarian rute terpendek menuju rumah sakit terdekat, tombol Bersihkan Semua berfungsi untuk membersihkan rute pencarian sebelumnya dan tombol Center Lokasi untuk mengarahkan layar ke lokasi pengguna.
3.4.6 Antarmuka Detail Rumah Sakit
Antarmuka Detail Rumah Sakit akan muncul jika pengguna memilih nama rumah sakit pada Daftar Rumah Sakit.
2 1
Start Pencarian
Bersihkan Semua
Center Lokasi
(1)
android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"
android:background="@drawable/abstract_dark_red_background_hd_mobile_ wallpaper" android:weightSum="1">
<LinearLayout
android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/redb"> <ImageButton
android:id="@+id/image" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginBottom="2dp" android:layout_marginLeft="2dp" android:layout_marginTop="2dp" android:src="@drawable/go_home" android:background="#00000000"/> </LinearLayout>
<TextView android:layout_width="wrap_content" android:layout_height="36dp"
android:text="Nama rumah sakit" android:textColor="#ffffff" android:textSize="16sp" android:paddingLeft="5dp"
android:background="@drawable/red" android:gravity="center_vertical" android:paddingRight="5dp"/>
<EditText
android:id="@+id/name"
android:layout_width="match_parent" android:layout_height="36dp"
android:layout_marginLeft="1dp" android:layout_marginRight="2dp" android:layout_marginTop="2dp" />
<TextView android:layout_width="wrap_content" android:layout_height="36dp"
android:text="Alamat" android:textColor="#ffffff" android:textSize="16sp" android:paddingLeft="5dp" android:background="@drawable/red"
android:gravity="center_vertical"/> <EditText
android:id="@+id/address"
android:layout_width="match_parent" android:layout_height="36dp"
android:layout_marginLeft="3dp" android:layout_marginRight="3dp" /> <LinearLayout
android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView
android:layout_width="110dp" android:layout_height="36dp" android:paddingLeft="5dp" android:text="Telpon"
android:textColor="#ffffff" android:textSize="16sp"
android:background="@drawable/red" android:gravity="center_vertical"/>
(2)
<EditText
android:id="@+id/phone"
android:layout_width="match_parent" android:layout_height="36dp"
android:layout_marginLeft="3px" android:layout_marginRight="3px" android:layout_weight="1" /> </LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView
android:layout_width="110dp" android:layout_height="36dp" android:paddingLeft="5dp" android:text="Latitude" android:textColor="#ffffff"
android:textSize="16sp" android:background="@drawable/red" android:gravity="center_vertical"/>
<EditText
android:id="@+id/latitude"
android:layout_width="match_parent" android:layout_height="36dp"
android:layout_marginLeft="3px" android:layout_marginRight="3px" android:layout_weight="1" /> </LinearLayout>
<LinearLayout
android:id="@+id/linearLayout4" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView
android:layout_width="110dp" android:layout_height="36dp" android:paddingLeft="5dp" android:text="Longitude" android:textColor="#ffffff" android:textSize="16sp"
android:background="@drawable/red" android:gravity="center_vertical"/> <EditText
android:id="@+id/longitude"
android:layout_width="match_parent" android:layout_height="36dp"
android:layout_marginLeft="3px" android:layout_marginRight="3px" android:layout_weight="1" /> </LinearLayout>
<RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5"
android:stepSize="1.0" android:isIndicator="false" android:paddingTop="5dp" android:paddingBottom="5dp" android:layout_gravity="center"
(3)
android:layout_marginLeft="3dp" android:layout_marginRight="3dp" android:max="5" android:layout_weight="1"/>
<LinearLayout
android:id="@+id/linearLayout5" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/redb"
android:gravity="center_horizontal|center_vertical" > <Button
android:id="@+id/confirm"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="3dp" android:background="@drawable/red" android:drawableLeft="@drawable/simpan" android:text="Simpan"
android:textColor="#ffffff" android:paddingLeft="5dp"/> </LinearLayout>
</LinearLayout>
Record_list.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/abstract_dark_red_background_hd_mobile_ wallpaper">
<ListView
android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp"
android:textSize="16sp" android:textStyle="bold"/>
<TextView
android:id="@+id/android:empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp"
android:textSize="16sp" android:textStyle="bold"
android:text="No record found.."/> </LinearLayout>
Splash.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@drawable/abstract_dark_red_background_hd_mobile_ wallpaper"
android:gravity="center_horizontal" android:orientation="vertical" > <LinearLayout
(4)
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:gravity="center_vertical"
android:orientation="horizontal" android:background="@drawable/redb" android:alwaysDrawnWithCache="true" android:animationCache="true"> <ImageView
android:id="@+id/imageView1" android:layout_width="40dip" android:layout_height="40dip" android:layout_marginBottom="5dip" android:layout_marginLeft="5dip" android:layout_marginTop="5dip" android:src="@drawable/map_down" /> <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:shadowColor="#000000"
android:shadowDx="0.5" android:shadowDy="0.5" android:shadowRadius="0.5"
android:text="Penentuan rute terpendek pencarian rumah sakit" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#ffffff"
android:textSize="20sp" /> </LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_marginTop="30px" android:layout_marginBottom="30px"
android:layout_marginLeft="3px" android:layout_marginRight="3px"> <ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5px" android:layout_marginTop="5px"/> </LinearLayout>
<LinearLayout
android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView
android:id="@+id/imageView5"
android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginRight="2dip" android:layout_weight="1.4"
android:src="@drawable/world" /> </LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="match_parent"
android:gravity="bottom|center_horizontal"
(5)
<LinearLayout
android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="60dip"
android:background="@drawable/redb" android:gravity="center_horizontal" > </LinearLayout>
</LinearLayout> </LinearLayout>
(6)