Implementasi Algoritma Ant Colony Dalam Pencarian Lokasi Rumah Sakit Berbasis Mobile Gis Pada Platform Android

(1)

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)

CURRICULUM VITAE

Nama

: Yustina

Alamat Sekarang

: Mojopahit No. 73B Medan

Alamat Orang tua

: Mojopahit No. 73B Medan

Telp/Hp

: 08126506311

Email

: yustina_hi@yahoo.com

Riwayat Pendidikan

2008-2014

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

2005-2008

: SMA Santo Thomas 1 Medan

2002-2005

: SMP Santo Thomas 1 Medan

1996-2002

: SD Budi Murni 3 Medan