BIODATA PENULIS 1. DATA PRIBADI
nama : Aldy Mercyano Iqbal jenis kelamin : Laki-laki
tempat, tanggal lahir : Bandung, 26 September 1990
agama : Islam
kewarganegaraan : Indonesia status : Belum kawin
anak ke : Dua dari dua bersaudara
alamat : Jalan Prayuda No. 9, RT 05 RW 08, Bandung 40263 telepon : +62896 348 100 06
e-mail : aldymercyanoiqbal@gmail.com
2. RIWAYAT PENDIDIKAN
1. Sekolah Dasar : SD Kartika XI-12 tahun ajaran 1996 - 2002 2. Sekolah Menengah Pertama : SMP Negeri 40 Bandung tahun ajaran 2002
- 2005
3. Sekolah Menengah Atas : SMA BPI 2 Bandung tahun ajaran 2005-2008
sadar dan tanpa paksaan.
Bandung, 22 Februari 2013
ANALISIS PERFOMANSI ALGORITMA BEAM PADA
PENCARIAN RUTE TERPENDEK DI KOTA TASIKMALAYA
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi S1 Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
ALDY MERCYANO IQBAL
10108065
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
Alhamdulillah, puji syukur dipanjatkan kepada Allah SWT yang telah
memberikan taufik dan hidayah-Nya sehingga penulis dapat menyelesaikan laporan skripsi dengan judul âAnalisis Perfomansi Algoritma Beam Pada Pencarian Rute Terpendek di Kota Tasikmalayaâ.
Banyak sekali kesulitan dan hambatan yang dihadapi dalam penyusunan laporan skripsi ini, akan tetapi berkat bantuan, bimbingan dan dorongan dari banyak pihak, akhirnya laporan skripsi ini dapat diselesaikan. Untuk itu penulis mengucapkan terima kasih yang sebesar-besarnya kepada banyak pihak yang telah memberikan bantuan baik pikiran maupun tenaga sehingga laporan skripsi ini dapat diselesaikan. Dalam kesempatan ini penulis mengucapkan terima kasih banyak kepada:
1. Allah SWT yang telah memberikan anugerah kekuatan, keselamatan dan kesehatan serta bimbingan-Nya sehingga dapat menyelesaikan skripsi ini. 2. Ayah dan Ibu yang selalu memberikan semangat serta doâa yang tiada
henti-hentinya, serta keluarga besar yang selalu membantu baik moril maupun materil.
3. Bapak Adam Mukharil Bachtiar, S.Kom. selaku dosen pembimbing skripsi yang telah banyak memberikan dorongan, motivasi dan ilmu selama menjalani penelitian skripsi.
4. Bapak Galih Hermawan ,S.Kom., M.T., selaku penguji 1 yang telah banyak membimbing dalam perbaikan penelitian skripsi ini.
5. Ibu Tati Harihayati M., S.T., M.T., selaku penguji 3 yang telah banyak membimbing dalam perbaikan penelitian skripsi ini.
6. Saudara Daeng Rosanda yang membantu penulis dalam penyelesaian penyusunan skripsi ini.
iv
Akhir kata, penulis mohon maaf yang sebesar-besarnya atas keterbatasan dan kekurangan ini. Namun demikian penulis tetap berharap semoga laporan skripsi ini dapat bermanfaat.
Wassalamualaikum Wr. Wb. Bandung, Februari 2013
v DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
DAFTAR SIMBOL ... xii
DAFTAR LAMPIRAN ... xvii
BAB I PENDAHULUAN ... 1
I.1 Latar Belakang Masalah ... 1
I.2 Perumusan Masalah... 2
I.3 Maksud dan Tujuan ... 2
I.4 Batasan Masalah ... 3
I.5 Metodologi Penelitian ... 3
I.5.1 Metode Pengumpulan Data ... 3
I.5.2 Metode Pembangunan Perangkat Lunak ... 4
I.6 Sistematika Penulisan ... 5
BAB II LANDASAN TEORI ... 7
II.1 Kecerdasan Buatan ... 7
II.2 Algoritma ... 9
II.3 Algoritma Pencarian ... 10
II.4 Algoritma Pencarian Beam ... 10
II.5 Struktur Data ... 16
II.6 Rute Terpendek ... 18
II.7 Peta ... 18
II.8 Tools Pemodelan Perangkat Lunak ... 20
II.8.1 UML (Unified Modeling Language) ... 20
II.8.2 DFD ... 21
vi
II.9.1 Android... 22
II.9.2 Eclipse ... 23
II.9.3 Web Service ... 23
II.9.4 MySQL ... 24
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 27
III.1 Analisis Sistem ... 27
III.1.1 Analisis Kasus ... 27
III.1.2 Analisis Struktur Data ... 28
III.1.3 Analisis Strategi ... 32
III.1.4 Analisis Algoritma ... 33
III.1.5 Spesifikasi Kebutuhan Perangkat Lunak... 41
III.1.6 Analisis Kebutuhan Non Fungsional ... 42
III.I.6.1 Analisis Kebutuhan Perangkat Keras ... 42
III.I.6.2 Analisis Kebutuhan Perangkat Lunak ... 43
III.I.6.3 Analisis Kebutuhan Perangkat Pikir ... 43
III.1.7 Analisis Data / File ... 44
III.1.8 Analisis Kebutuhan Fungsional ... 45
III.1.8.1 Diagram Konteks... 45
III.1.8.2 DFD Level 1 Web service ... 45
III.1.8.3 DFD Level 2 Web Service ... 46
III.1.8.4 Kamus Data DFD ... 48
III.1.8.5 Usecase Diagram Aplikasi Simulasi Android ... 49
III.1.8.6 Activity Diagram ... 53
III.1.8.7 Class Diagram ... 55
III.1.8.8 Sequence Diagram... 55
III.2 Perancangan Sistem... 57
III.2.1 Perancangan Basis Data ... 57
III.2.2 Perancangan Struktur Menu ... 58
III.2.2.1 Aplikasi Android ... 58
III.2.2.2 Web service ... 58
vii
III.2.3.1 Perancangan Antarmuka Aplikasi Simulasi Pada Android ... 59
III.2.3.2 Perancangan Antarmuka Web service... 61
III.2.4 Perancangan Pesan ... 63
III.2.5 Jaringan Semantik ... 65
III.2.6 Perancangan Prosedural Web Service ... 66
III.2.7 Perancangan Method ... 71
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM... 75
IV.1 Implementasi Simulasi ... 75
IV.1.1 Implementasi Perangkat Keras ... 75
IV.1.2 Implementasi Perangkat Lunak ... 75
IV.1.3 Implementasi Basis Data ... 76
IV.1.4 Implementasi Antarmuka ... 76
IV.2 Pengujian Simulasi ... 78
IV.2.1 Rencana Pengujian ... 78
IV.2.2 Pengujian White Box ... 79
IV.2.3 Pengujian Black Box ... 83
V.2.4 Pengujian Performansi ... 85
IV.2.5 Kesimpulan Pengujian... 89
BAB V KESIMPULAN DAN SARAN ... 91
V.1 Kesimpulan... 91
V.2 Saran ... 91
93
DAFTAR PUSTAKA
[1] Tadashi Yamaguchi, Chuda Basnet, and Tang Guochan, "A Beam Search Heuristic for Multi-Mode Single Resource Constrained Project Scheduling," Oktober 2012.
[2] Peter Tarasewic and P.R. McMullena, "A beam search heuristic method for mixed-model scheduling with setups," Desember 2003.
[3] Chih Kun Wu, Wei Chun Lan, and Jung Ting Ching, "Beam Search
Heuristics for the Single Vehicle Pickup and Delivery Problem," Desember 2010.
[4] Danardi Nugraha, "Pencarian Jarak Terdekat Di Kota Tasikmalaya
Menggunakan Algoritma Semut Pada Sistem Operasi Android," September 2012.
[5] Gajendra K.Verma and Kanka Mallick, Researching Education: Perspectives
and Techniques.: Taylor & Francis e-Library, 2005.
[6] Ian Sommerville, Software Enginering, 9th ed.: Addison-Wesley, 2010. [7] Kusrini, Sistem Pakar Teori dan Aplikasi. Yogyakarta: ANDI, 2006. [8] Rinaldi Munir, Algoritma dan Pemrograman. Bandung: Informatika
Bandung, 2007.
[9] Wikipedia. http://id.wikipedia.org/wiki/Algoritma_pencarian.
[10] Weixiong Zhang, State-Space Search: Algorithms, Complexity, Extensions,
and Applications. Marina del Rey, USA, 1999.
[11] Heri Sismoro and Kusrini Iskandar, Struktur Data dan Pemrograman
Dengan Pascal. Yogyakarta: ANDI, 2004.
[12] Wikipedia. (2012, Oktober)
http://en.wikipedia.org/wiki/Shortest_path_problem#Definition.
[13] Wirastuti and Dini Natalia, Geografi SMP/MTs Kls VII (KTSP). Jakarta: PT Grasindo, 2008.
Informatika, 2011.
[15] Marimin , Hendri Tanjung, and Haryo Prabowo, Sistem Informasi
Manajemen Sumber Daya Manusia. Bogor: Grasindo, 2006.
[16] Nazarudin Safaat, Android Pemrograman Aplikasi Mobile Smartphone dan
Tablet PC Berbasis Android. Bandung: Informatika, 2012.
[17] Yadi Utama. (2013, Februari) elib.unikom.ac.id. [Online]. elib.unikom.ac.id/download.php?id=132941
[18] Miftakhul Huda and Bunafit Komputer, Membuat Aplikasi Database Dengan
1 BAB I
PENDAHULUAN I.1 Latar Belakang Masalah
Algoritma pencarian adalah algoritma yang menerima data atau kunci dan dengan langkah-langkah tertentu mencari rekaman dengan data atau kunci tersebut. Setelah proses pencarian selesai, akan didapatkan satu dari dua kemungkinan, yaitu ditemukan atau tidak ditemukan. Pada algoritma pencarian, terdapat beberapa jenis, seperti pencarian informed, pencarian adversarial, pemenuhan kendala, pencarian interpolasi dan uninformed. Terdapat banyak contoh algoritma pencarian seperti algoritma A*, Beam, Bellman-Ford, Best-First, BFS, DFS, Hill climbing dan lain-lain. Algoritma pencarian telah diterapkan dalam berbagai masalah salah satunya adalah dalam permasalahan rute terpendek. Rute terpendek adalah masalah menemukan rute antara dua simpul. Contohnya adalah menemukan untuk mendapatkan rute terpendek dari satu lokasi menuju lokasi lain dalam peta jalan. Pencarian rute terpendek merupakan hal yang paling sering dilakukan oleh banyak orang dalam melakukan perjalanan karena dengan rute terpendek, kita dapat menghemat dan mengefisiensikan waktu.
terpendek, tidak ditemukan hasil penelitian dengan menerapkan algoritma pencarian beam.
Penelitian sebelumnya menerapkan algoritma ant colony dalam mencari rute terpendek di kota Tasikmalaya dan berbasis Android. Algoritma ant colony
mampu memberikan solusi, namun algoritma ant colony dirasa kurang optimal karena pencarian dirasa lambat [4]. Algoritma beam digunakan untuk mengantisipasi kelemahan yang ada pada algoritma ant colony dalam pencarian rute terpendek di kota Tasikmalaya meskipun belum diketahui apakah algortima pencarian beam mampu memberikan solusi yang lebih baik daripada algoritma
ant colony.
Berdasarkan latar belakang, diperlukan analisis perfomansi algoritma pencarian beam pada pencarian rute terpendek untuk mencari rute terpendek menuju lokasi di kota Tasikmalaya yang mana dalam analisis ini diharapkan dapat mengetahui seberapa cepat algoritma pencarian beam bekerja mencari rute terpendek di kota Tasikmalaya.
I.2 Perumusan Masalah
Berdasarkan latar belakang diatas, masalah yang ada pada penelitian ini adalah bagaimana menganalisis performansi algoritma pencarian beam dalam mencari rute terpendek menuju suatu lokasi di kota Tasikmalaya.
I.3 Maksud dan Tujuan
Maksud dari penelitian ini adalah menganalisis performansi algoritma pencarian beam dalam mencari rute terpendek di kota Tasikmalaya. Sedangkan tujuan dari penelitian ini adalah:
3
I.4 Batasan Masalah
Adapun batasan-batasan masalah yang ada dalam analisis ini adalah : 1. Algoritma yang digunakan hanya algortima pencarian beam karena untuk
algoritma ant colony sudah dilakukan penelitian sebelumnya.
2. Perhitungan kompleksitas algoritma yang digunakan adalah model kebutuhan waktu.
3. Notasi asimtotik yang digunakan adalah Big Oh (O).
4. Aplikasi dibangun untuk menyimulasikan algoritma pencarian beam.
5. Parameter performansi yang digunakan adalah kecepatan dan ketepatan. 6. Rute pada peta merupakan rute dua arah.
7. Masukan data hanya titik awal dan titik akhir. 8. Aplikasi dibangun berbasis mobile Android.
I.5 Metodologi Penelitian
Metodologi yang digunakan dalam penulisan penelitian ini adalah metodologi analisis desktiptif yang merupakan cara analisis yang mendeskripsikan data-data yang telah terkumpul [5]. Metodologi ini terbagi menjadi dua metode yaitu metode pengumpulan data dan metode pembangunan perangkat lunak.
I.5.1 Metode Pengumpulan Data
Metode pengumpulan data yang digunakan terbagi menjadi dua yaitu: 1. Studi Literatur yaitu pengumpulan data dengan cara
mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian dan
I.5.2 Metode Pembangunan Perangkat Lunak
Metode pembangunan perangkat lunak dalam aplikasi simulasi ini menggunakan model waterfall, yang meliputi beberapa proses diantaranya:
a. Requirements analysis and definition
Tahap Requirements analysis and definition merupakan layanan, batasan dan tujuan dari sistem yang dibuat dengan menkonsultasikannya bersama pengguna sistem. Hal tersebut didefinisikan secara detail dan ditampilkan sebagai spesifikasi dari sistem.
b. System and software design
Tahap System and software design merupakan tahap proses desain sistem membagi kebutuhan sistem akan perangkat lunak dan perangkat keras. Hal tersebut membangun arsitektur sistem keseluruhan. Desain software meliputi identifikasi dan penjabaran abstraksi sistem perangkat lunak dasar dan keterhubungannya
c. Implementation and unit testing
Tahap Implementation and unit testing merupakan tahap desain peangkat lunak yang direalisasikan sebagai sekumpulan program atau unit program. Unit testing meliputi verifikasi bahwa setiap unit telah memenuhi spesifikasinya.
d. Integration and system testing
5
e. Operation and maintenance
Tahap Operation and maintenance merupakan tahap terpanjang dalam
lifecycle. Sistem di-install dan digunakan secara praktikal. Pemeliharaan
ini meliputi perbaikan kesalahan yang tidak diketahui pada tahapan sebelumnya, memperbaiki implementasi unit sistem dan meningkatkan layanan sistem ketika terdapat kebutuhan baru.
Requirements definition
System and Software Design
Implementation and unit testing
Integration and sytem testing
Operation and maintenance
Gambar I-1 Model Proses Waterfall [6] I.6 Sistematika Penulisan
Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan penelitian ini adalah sebagai berikut :
BAB I PENDAHULUAN
yang kemudian diikuti dengan pembatasan masalah, asumsi, serta sistematika penulisan.
BAB II LANDASAN TEORI
Bab II membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan seperti membahas tentang kecerdasan buatan, algoritma secara umum, algoritma pencarian, algoritma pencarian beam, struktur data, rute terpendek, peta, tools implementasi yang mana membahas android, eclipse, webservice, MySQL, pemodelan perangkat lunak yang membahas tentang UML dan DFD.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab III menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar variabel yang diteliti serta model matematis untuk analisisnya. BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab IV merupakan tahapan yang dilakukan dalam penelitian secara garis besar sejak dari tahap persiapan sampai penarikan kesimpulan, metode dan kaidah yang diterapkan dalam penelitian. Termasuk menentukan variabel penelitian, identifikasi data yang diperlukan dan cara pengumpulannya, penentuan sampel penelitian dan teknik pengambilannya, serta metode/teknik analisis yang akan dipergunakan dan perangkat lunak yang akan dibangun jika ada.
BAB V KESIMPULAN DAN SARAN
7 BAB II
LANDASAN TEORI II.1 Kecerdasan Buatan
Kecerdasan buatan adalah suatu ilmu yang mempelajari cara membuat komputer komputer melakukan sesuatu yang dilakukan oleh manusia (Minsky, 1989). Definisi lain diungkapkan oleh H. A. Simon [1987]. Kecerdasan buatan
(artificial intelegence) merupakan kawasan penelitian, aplikasi dan instruksi yang
terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas.
Rich and Knight [1991] mendifinisikan kecerdasan buatan (AI) sebagai sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia. Sementara ensiklopedi Britannica mendefinisikan kecerdasan buatan (AI) sebagai cabang dari ilmu komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan.
Ada tiga tujuan kecerdasan buatan, yaitu membuat komputer lebih cerdas, mengerti tentan kecerdasan dan membuat mesin lebih berguna. Yang dimaksud kecerdasan adalah kemampuan untuk belajar atau mengerti dari pengalaman , memahami pesan yang kontradiktif dan ambigu, menganggapi dengan cepat dan baik atas situasi yang baru, menggunakan penalaran dalam memecahkan masalah serta menyelesaikan dengan efektif (Winston dan Prendergast, 1994).
dapat berupa kalimat, kata atau angka yang digunakan untuk merepresentasikan obyek, proses dan hubungannya.
Beberapa bidang penelitian dalam kecerdasan buatan diantaranya adalah:
1. Formal tasks (matematika, games).
2. Mundane task (perception, robotics, natural language, common sense,
reasoning).
3. Expert task (financial analysis, medical duagnotics, engineering,
scientific analysis, dan lain-lain).
Ada beberapa konsep yang harus dipahami dalam kecerdasan buatan, diantaranya:
1. Turing Test â Metode Pengujian Kecerdasan
Turing Test meruakan sebuah metode pengujian kecerdasan yang
dibuat oleh Alan Turing. Proses uji ini melibatkan penanya (manusia) dan dua obyek yang ditanyai. Yang satu adalah seorang manusia dan satunya adalah sebuah mesin yang akan diuji. Penanya tidak dapat melihat langsung kepada obyek yang ditanyai. Penanya diminta untuk membedakan mana jawaban komputer dan mana jawaban manusia berdasarkan jawaban kedua obyek tersebut. Jika penanya tidak dapat membedakan mana jawaban mesin dan mana jawaban manusia maka Turing bependapat bahwa mesin yang diuji tersebut dapat diasumsikan cerdas.
2. Pemrosesan Simbolik
9
melakukan proses secara simbolik dan non-algoritmik dalam penyelesaian masalah.
3. Heuristic
Istilah heuristic diambil dari bahasa Yunani yang berarti menemukan.
Heruristic merupajan suatu strategi untuk melakukan proses pencarian
(search) ruang problem secara selektif, yang memandu proses
pencarian yang kita lakukan sepanjang jalur yang memiliki kemungkinan sukses yang paling besar.
4. Penarikan Kesimpulan (Inferencing)
AI mencoba membuat mesin memiliki kemampuan berpikir atau mempertimbangkan (reasoning). Kemampuan berpikir (reasoning) termasuk didalamnya proses penarikan kesimpulan (inferencing) berdasarkan fakta-fakta dan aturan dengan menggunakan metode heuristik atau metode pencarian lainnya.
5. Pencocokan Pola (Pattern Matching)
AI bekerja dengan metode pencocokan pola (pattern matching) yang berusaha untuk menjelaskan obyek, kejadian (events) atau proses, dalam hubungan logik atau komputasional [7].
II.2 Algoritma
Algoritma adalah langkah-langkah untuk memecahkan suatu masalah. Terdapat beberapa definisi lain dari algoritma tetapi senada dengan definisi yang diungkapkan diatas yang dikutip dari beberapa literatur, antara lain:
1. Algoritma adalah deretan langkah-langkah komputasi yang mentransormasikan data masukan menjadi keluaran.
3. Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang -menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi, algoritma adalah langkah komputasi yang mentransformasikan masukan menjadi keluaran [8].
II.3 Algoritma Pencarian
Algoritma pencarian adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Pada algoritma pencarian, terdapat beberapa jenis, seperti pencarian
informed, pencarian adversarial, pemenuhan kendala, pencarian interpolasi dan
uninformed.
Uninformed search, sering juga disebut pencarian buta (blind search) atau
pencarian naïf (naïve search) adalah algoritma yang tidak mempertimbangkan sifat alami dari permasalahan. Oleh karena itu algoritma tersebut dapat diimplementasikan secara umum, sehingga dengan implementasi yang sama dapat digunakan pada lingkup permasalahan yang luas. Pada uninformed search, terdapat pencarian list, pencarian graf dan pencarian pohon [9].
II.4 Algoritma Pencarian Beam
Algoritma pencarian beam adalah suatu metode heuristik untuk menyelesaikan masalah optimasi kombinatorial dan algoritma pencarian beam merupakan optimasi algoritma best-first search untuk mengurangi kebutuhan memori. Algoritma ini hanya menyimpan nilai terbaik saja, sedangkan nilai yang dianggap buruk langsung dihapus dan karena metode ini memang dirancang untuk pencarian yang cepat, meskipun sebenarnya simpul yang dihapus dapat menghasilkan solusi yang optimal.
11
hapus, tidak dapat dibangkitkan kembali bila dibutuhkan untuk perhitungan selanjutnya. Algoritma pencarian beam membutuhkan nilai-nilai dalam melakukan pencariannya, yaitu nilai beam. Nilai beam digunakan untuk menentukan besar senarai yang akan digunakan untuk menyimpan simpul yang dikunjungi. Pada algoritma pencarian beam, simpul terbaik yang disimpan adalah sebanyak nilai beamnya. Fungsi evaluasi heuristik pada algoritma pencarian beam adalah f (n) = h(n) dimana h(n) adalah nilai estimasi jarak menuju tujuan. Sebagai contoh, terdapat dua simpul yaitu simpul A dan B yang mana simpul tersebut memiliki busur sebesar 10. Berdasarkan fungsi evaluasi heuristiknya, maka nilai
f(n) adalah 10.
Bila dilihat dari sisi kecerdasan buatan, algoritma pencarian beam merupakan salah satu dari agen tunggal untuk memecahkan suatu masalah karena algoritma ini termasuk algoritma dengan tipe pemangkasan kedepan [10].
Contoh sederhana dari algoritma pencarian beam misalkan simpul awal pada simpul S dan simpul tujuan adalah simpul F. Nilai beam yang digunakan dalam contoh kasus ini adalah dua.
Pada tahap pertama, kita tentukan besar nilai beam yang akan digunakan. Untuk contoh disini, besar nilai beam yang digunakan adalah dua. Setelah itu, periksa seluruh simpul tetangga dari simpul awal. Ambil simpul tetangga terbaik dari simpul awal sebesar nilai beam yang mana nilai beam disini adalah sebesar dua dan masukan simpul tersebut kedalam antrian dengan kondisi simpul memiliki nilai heuristik terkecil.
Tabel II-1 Kondisi Pada Penelusuran Pertama Simpul Yang Diperiksa Urutan Simpul
S {S}
{S,A},{S,B}
Gambar II-2 Penelusuran Pertama
Setelah penelusuran dari simpul awal didapatkan dua simpul tebaik, penelusuran simpul-simpul dilanjutkan dengan memeriksa simpul tetangga dari masing-masing simpul terbaik tersebut yaitu simpul A dan B. Sama seperti langkah pertama, ambil dua simpul terbaik dan masukan kedalam antrian.
Tabel II-2 Kondisi Pada Penelusuran Ke Dua
Simpul Yang Diperiksa Urutan Simpul
13
Gambar II-3 Penulusuran Ke Dua
Penelusuran dilanjutkan dengan menelusuri simpul-simpul tetangga dari simpul C dan D. Setelah itu, cari simpul tetangga terbaik dari simpul C dan D dan masukan simpul ke dalam antrian.
Tabel II-3 Kondisi Pada Penelusuran Ke Tiga
Simpul Yang Diperiksa Urutan Simpul
C dan D {S,A,C},{S,B,D}
{S,A,C,E},{S,B,D,G}
Penelusuran dilanjutkan dengan memeriksa simpul dari simpul terbaik yang didapatkan sebelumnya yang mana simpul tersebut adalah simpul E dan G. Langkah pencariannya sama seperti langkah sebelumnya dan masukan simpul terbaik dari hasil penelusuran simpul E dan G ke dalam antrian.
Tabel II-4 Kondisi Pada Penelusuran Ke Empat
Simpul Yang Diperiksa Urutan Simpul
E dan G {S,A,C,E},{S,B,D,G}
{S,A,C,E,G},{S,B,D,G,E}
Gambar II-5 Penulusuran Ke Empat
Penelusuran dilanjutkan dengan langkah pencarian simpul sama seperti pencarian sebelumnya dan simpan simpul terbaik dari hasil penelusuran simpul G dan E.
Tabel II-5 Kondisi Pada Penelusuran Ke Lima
Simpul Yang Diperiksa Urutan Simpul
G dan E {S,A,C,E,G},{S,B,D,G,E}
15
Gambar II-6 Penulusuran Ke Lima
Penelusuran dilanjutkan dengan langkah pencarian simpul sama seperti pencarian sebelumnya yang mana pada kondisi ini, simpul yang diperiksa adalah simpul simpul D dan C.
Tabel II-6 Kondisi Pada Penelusuran Ke Enam Simpul Yang Diperiksa Urutan Simpul
D dan C {S,A,C,E,G,D},{S,B,D,G,E,C}
{S,B,D,G,E,C,A}, {S,A,C,E,G,D,H}
Penelusuran dilanjutkan dengan memeriksa simpul A dan H. Pada saat penelusuran simpul H, solusi simpul tujuan telah ditemukan oleh karena itu, pencarian selesai dengan menghasilkan solusi tujuan dengan solusi S-A-C-E-G-D-H-F.
Gambar II-8 Tujuan Ditemukan II.5 Struktur Data
Struktur data adalah suatu kumpulan objek-objek data yang memiliki aturan (terorganisir) yang kemudian digolongkan berdasarkan operasi-operasi untuk memanipulasinya. Kompponen yang dimuat daam struktur data ini dapat berupa objek data elementer atau objek terstruktur lainnya. Contoh objek data terstruktur adalah array, record, list, stack/tumpukan, quwuw/antrian, tree/pohon, set/himpunan, file/berkas dan lain-lain.
Atribut-atribut penting untuk suatu tipe data terstruktur meliputi: 1. Jumlah komponen
17
komponennya tidak berubah dan struktur data dinamis yang jumlah komponennya dapat berubah.
2. Tipe untuk setiap komponen
Apabila tipe data untuk seluruh komponennya harus sama, maka disebut struktur data homogen, dan bila dimungkinkan komponennya mempunyai tipe yang berbeda-beda, maka disebut struktur data heterogen.
3. Nama-nama untuk memilih komponen
Hampir semua struktur data menyediakan operasi untuk mengakses komponen secara individu. Pada suatu array, hal ini dilakukan dengan sebuag subscript/indeks berupa angka.
4. Jumlah maksimum komponen
Untuk sebuah struktur data dinamis mungkin perlu ditentukan dengan jelas.
5. Pengorganisasian semua komponennya.
Susunan yang paling umum adalah berupa barisan linier seperti pada array
berdimensi 1, record, list, stack dan file. Selanjutnya ada yang dapat dikembangkan menjadi struktur non linear seperti array multi dimensi dan juga pohon/tree.
Operasi-operasi pada struktur data meliputi: 1. Operasi seleksi komponen
2. Operasi struktur data secara keseluruhan
Operasi ini memungkinkan struktur data secara keseluruhan sebagai argumenya dan menghasilkan struktur data yang baru.
3. Penyisipan dan penghapusan komponen
Operasi ini akan mengubah jumlah komponen dan berpengaruh pada representasi dan pengelolaan penyimpanan.
4. Pembuatan dan penghapusan struktur data [11].
II.6 Rute Terpendek
Masalah rute terpendek dapat didefinisikan sebagai graf, baik tidak berarah, berarah atau campuran. Masalah ini juga terkadang disebut single-pair
shortest path problem, dan dibedakan sebagai berikut:
1. Single-source shortest path problem, di mana kita harus menemukan jalan
terpendek dari sumber titik v untuk semua simpul lain dalam grafik.
2. Single-destination shortest path problem, di mana kita harus menemukan
jalur terpendek dari semua simpul dalam grafik diarahkan ke tujuan simpul tunggal v. Masalah ini dapat direduksi menjadi single-source shortest path
problem dengan membalik busur dalam grafik terarah.
3. All-pairs shortest path problem, di mana kita harus menemukan jalur
terpendek antara setiap pasangan dari simpul v, v' dalam grafik [12].
II.7 Peta
19
fotogrametri (pembuatan peta dengan teknik fotografi), kompilasi peta dan reproduksi peta.
Pada dasarnya peta berfungsi sebagai alat komunikasi. Peta menginformasikan kondisi suatu wilayah secara sederhana sehingga menjadi mudah dipahami. Peta juga merupakan alat bantu untuk mempelajari suatu wilayah tanpa perlu mendatangi tempat tersebut.
Lebih lanjut, fungsi peta adalah sebagai berikut.
1. Untuk menggambarkan atau memperlihatkan bentuk muka bumi. 2. Untuk menunjukan posisi dan letak
3. Untuk menunjukan jarak dan luas
4. Sebagai media informasi untuk berbagai keperluan
Peta tebagi berdasarkan jenis data, skala peta dan bentuk peta. Berdasarkan jenis data, peta terbagi atas peta tematik yaitu peta yang menggambarkan unsur/kenampakan, baik yang bersifat kualitatif dan kuantitatif, dan berhubungan dengan tema tertentu saja, peta topografi yaitu peta yang menggambarkan unsur-unsur topografi di suatu wilayah dan memuat informasi relief (tinggu rendahnya permukaan buni) yang dihubungkan dengan garis kontur.
Berdasarkan sumber data, peta terdiri dari peta dasar, yaitu peta yang menjadi acuan dalam pembuatan peta-peta tematik, peta topografi, peta turunan. Peta turunan yaitu peta yang diturunkan dari peta induk dengan skala lebih kecil dan umumnya telah mengalami proses pemilahan dan penyederhanaan informasi.
Dan berdasarkan bentuknya, peta terdiri dari peta analog, peta streometri dan peta digital yaitu peta yang diolah dengan bantuan komputer dan disimpan dalam data digital [13].
II.8 Tools Pemodelan Perangkat Lunak II.8.1 UML (Unified Modeling Language)
UML singkatan dari Unified Modeling Language yang berarti bahasa pemodelan standar. Ketika kita membuat model menggunakan konsep UML ada aturan-aturan yang harus diikuti. Bagaimana elemen pada model-model yang kita bua berhubungan satu dengan lainnya harus mengikuti standar yang ada. UML
bukan hanya sekedar diagram, tetapi juga menceritakan konteksnya.
UML diaplikasikan untuk maksud tertentu, biasanya antara lain untuk: 1. Merancang perangkat lunak.
2. Sarana komunikasi antara perangkat lunak dengan proses bisnis.
3. Menjabarkan sistem secara terinci untuk analisa dan mencari apa yang diperlukan sistem.
4. Mendokumentasikan sistem yang ada, proses-proses dan organisasinya.
Beberapa literatur menyebutkan bahwa UML menyediakan sembilan jenis diagram, yang lain menyebutkan delapan. Namun demikian model-model itu dapat dikelompokan berdasarkan sifatnya yaitu statis atau dinamis. Jenis diagram itu antara lain:
1. Diagram kelas. Bersifat statis. Diagram ini memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka, kolaborasi-kolaborasi serta relasi-relasi.
21
3. Diagram Use-Case. Bersifat statis. Diagram ini memperlihatkan himpunan
use-case dan aktor-aktor (suatu jenis khusus dari kelas). Diagram ini
sangat penting terutama untuk mengorganisasi dan memodelkan perilaku suatu sistem yang dibutuhkan serta diharapkan pengguna.
4. Diagram interaksi dan Sequence (urutan). Bersifat dinamis. Diagram urutan adalah diagram interaksi yang menekankan pada pengiriman pesan dalam suatu waktu tertentu.
5. Diagram komunikasi. Bersifat dinamis. Diagram sebagai pengganti diagram kolaborasi UML 1.4 yang menekankan organisasi struktural daru objek-objek yang menerima serta mengirimkan pesan.
6. Diagram suksesorchart. Bersifat dinamis. Diagram status memperlihatkan keadaan-keadaan pada sistem, memuat status, transisi, kejadian serta aktifitas.
7. Diagram aktivitas. Bersifat dinamis. Diagram aktivitas ada;ah tipe khusus dari diagram status yang memperlihatkan aliran dari suatu aktivitas ke aktivitas lainnya dalam suatu sistem.
8. Diagram komponen. Bersifat statis. Diagram komponen ini memperlihatkan organisasi serta kebergantungan sistem/perangkat lunak pada komponen â komponen yang telah ada sebelumnya.
9. Diagram deployment. Bersifat statis. Diagram ini memperlihatkan konfigurasi saat aplikasi dijalankan (run time) [14].
II.8.2 DFD
Data Flow Diagram (DFD) menggambarkan aliran data atau informasi
DFD merupakan serangkaian diagram yang menggambarkan kegiatan-kegiatan yang ada dalam suatu sistem. Teknik pembuatan DFD dimulai dengan menggambarkan sistem secara global dan dilanjutkan dengan analisis masing-masing bagian. Pada awalnya, digambarkan konteks diagram yang
menggambarkan sebuah sistem secara menyeluruh yang akan diinvestigasi. Konteks diagram tersebut dapat dikatakan sebagai DFD level 0. Analisis sistem yang lebih detail selanjutnya dapat dilakukan dengan menggambarkan DFD level 1, 2 dan seterusnya. Kebanyakan investigasi akan dihentikan pada DFD level 2.
Data Flow Diagram (DFD) secara umum harus dapat dimengerti oleh programer
karena akan menjadi panduan untuk pembuatan program.
Untuk memperoleh gambaran logika dari sistem yang diinginkan dapat digambarkan dalam logical model. Logical model dari sistem informasi lebih menjelaskan kepada pengguna bagaimana nantinya fungsi-fungsi pada sistem informasi secara logika akan bekerja. Logical model secara keseluruhan dan lebih rinci tentang proses, input, output dan storage [15].
II.9 Tools Implementasi II.9.1 Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencangkup sistem operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat piranti lunak untuk ponsel/smartphone. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsiun dari 34 perusahaan piranti keras, piranti lunak dan telekomunikasi termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile dan Nvidia.
Sistem operasi yang mendasari Android dilisensikan di bawah GNU, Genereal Public Lisensi Versi 2 (GPLv2), yang sering dikenal dengan istilah
23
terms. Android didistribusikan dibawah lisensi Apache Software (ASL/Apache2), yang memungkinkan untuk distribusi kedua dan seterusnya. Pengembang aplikasi Android diperbolehkan untuk mendistribusikan aplikasi mereka dibawah skema lisensi apapun yang mereka inginkan [16].
II.9.2 Eclipse
Eclipse adalah IDE yang paling populer untuk pengembangan Android
karena memiliki plug-in yang tersedia untuk memfasilitasi pengembangan Android. Selain itu, Eclipse juga mendapat dukungan langsung dari Google untuk menjadi IDE pengembangan aplikasi Android, ini terbukti dengan adanya penambahan plugins untuk Eclipse untuk membuat projek Android dimana source
software langsung dari situs resmi Google [16].
II.9.3 Web Service
Web service adalah suatu sistem perangkat lunak yang dirancang untuk mendukung interoperabilitas dan interaksi antar sistem pada suatu jaringan. Web service digunakan sebagai suatu fasilitas yang disediakan oleh suatu web site untuk menyediakan layanan (dalam bentuk informasi) kepada sistem lain, sehingga sistem lain dapat berinteraksi dengan sistem tersebut melalui layanan-layanan (service) yang disediakan oleh suatu sistem yang menyediakan web service. Web service menyimpan data informasi dalam format XML, sehingga data ini dapat diakses oleh sistem lain walaupun berbeda platform, sistem operasi, maupun bahasa compiler.
Web service memiliki tiga entitas dalam arsitekturnya, yaitu:
1. Service Requester (peminta layanan). Peminta layanan yang mencari
2. Service Provider (penyedia layanan). Berfungsi untuk menyediakan layanan/service dan mengolah sebuah registry agar layanan-layanan tersebut dapat tersedia.
3. Service Registry (daftar layanan). Berfungsi sebagai lokasi central
yang mendeskripsikan semua layanan/service yang telah di-register [17].
II.9.4 MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL atau yang dikenal dengan DBMS (database management system), database ini
multithread, multi-user. MySQL AB membuat MySQL tersedia sebagai perangkat
lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual di bawah lisensi komersial untuk kasus-kasus yang bersifat khusus.
MySQL didistribusikan secara gratis dibawah lisensi GPL (General Public License). Di mana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed source atau komesial. MySQL sebenarnya merupakan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan penoperasian data dikerjakan dengan mudah secara otomatis.
Sebagai databse server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya, terutama dalam kecepatan. Berikut ini beberapa keistimewaan MySQL, antara lain:
1. Portability
25
2. Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa menglami masalah atau konflik.
3. Security
MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
4. Scalability dan limits
MySQL mampu menangani database dalam skala besar, jumlah record
27 BAB III
ANALISIS DAN PERANCANGAN SISTEM III.1 Analisis Sistem
Analisis 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 :
1. Analisis Kasus
2. Analisis Struktur Data 3. Analisis Strategi 4. Analisis Algoritma
5. Analisis Kebutuhan Non Fungsional 6. Analisis Data
7. Analisis Kebutuhan Fungsional
III.1.1 Analisis Kasus
Rute terpendek merupakan salah satu solusi ketika kita melakukan suatu perjalanan dari suatu lokasi menuju lokasi lain baik untuk melakukan perjalanan wisata ataupun perjalanan dikota tempat kita tinggal khususnya di kota Tasikmalaya karena dengan rute terpendek, kita dapat menghemat biaya dan menghemat waktu. Namun terkadang kita tidak mengetahui rute terpendek untuk menuju suatu lokasi di kota Tasikmalaya karena banyaknya rute yang terdapat pada kota tersebut.
penelitian dari Danardi Gunawan [4]. Namun pada algoritma ant colony, terdapat beberapa kelemahan yaitu:
1. Pencarian optimalnya tergantung dari jumlah iterasi perhitungan yang digunakan.
2. Semakin banyak data yang diolah, tingkat akurasinya pun semakin menurun.
3. Membutuhkan nilai-nilai pada implementasinya.
4. Masih memiliki kesalahan dalam pencarian titik, karena di dalam sistem ini menggunakan random yang kurang optimal.
Dengan kelemahan yang ada pada algoritma ant colony, diperlukan untuk menganalisis performansi algoritma yang diharapkan dapat lebih baik dari algoritma ant colony dalam mencari rute terpendek di kota Tasikmalaya, salah satunya algoritma pencarian beam. Dengan menganalisis algoritma pencarian beam, maka akan diketahui perfomansi algoritma pencarian beam pencarian rute terpendek di kota Tasikmalaya.
III.1.2 Analisis Struktur Data
Graph merupakan struktur data yang tersusun atas simpul-simpul atau titik-titik (Simpul) yang terhubung satu sama lain dengan garis-garis (edge). Secara matematis, graph dinyatakan sebagai berikut:
G = (V,E) Dimana:
G = Graph
V= Simpul atau vertex, simpul E = Sisi, busur atau edge
29
[image:43.595.195.461.159.368.2]graph berarah, urutan pasangan simpul sangat diperhatikan karena dapat menyatakan hal yang berbeda.
Gambar III-1 Graph Berarah
Pada gambar Gambar III-1 Graph Berarah, dapat dilihat bahwa dua busur yang menghubungkan (Yogyakarta, Surabaya) dan (Surabaya, Yogyakarta) menyatakan hal yang berbeda. Untuk busur yang menghubungkan simpul Yogyakarta dan Surabaya, simpul Yogyakarta dinamakan sebagai simpul awal
(initial suksesor) dan simpul Surabaya dinamakan sebagai simpul terminal.
Sebaliknya, pada busur yang menghubungkan simpul Surabaya dan Yogyakarta, simpul Surabaya merupakan simpul awal dan simpul Yogyakarta adalah simpul terminal.
Gambar III-2 Graph Tidak Berarah
Dari gambar Gambar III-2 Graph Tidak Berarah dapat dilihat bahwa pasangan simpul (Bandung, Garut) dan (Garut, Bandung) menyatakan hal yang sama karena busur yang ada tidak memiliki orientasi arah. Graph dapat dinyatakan sebagai sebuah struktur data, atau secara spesifik dinamakan sebagai ADT (abstract data type) yang terdiri dari kumpulan simpul dan sisi yang membangun hubungan antar simpul. Secara umum terdapat dua macam representasi dari struktur data graph, yang pertama adjacency list dan yang kedua
adjacency matrix.
Adjacency list merupakan bentuk representasi dari busur atau sisi dalam
31
Gambar III-3 Adjency List
Graph pada Gambar III-3 Adjency List dapat digambarkan sebagai senarai {A,B}, {A,C} dan {B,C}. Representasi dari adjacency list dapat dilihat pada
Tabel III-1 Representasi Adjacency List.
Tabel III-1 Representasi Adjacency List
Simpul Kedekatan Senarai Dari Simpul yang Berhubungan A Dekat dengan B,C
B Dekat dengan A,C C Dekat dengan A,B
Salah satu kekurangan dari representasi adjacency list adalah tidak adanya tempat untuk menyimpan nilai yang melekat pada sisi yang mana contoh nilai ini adalah nilai jarak simpul.
Gambar III-4 Graph Tak Berarah
[
[image:46.595.246.360.113.277.2]]
Gambar III-5 Representasi Adjacency Matrix Dari Gambar III-4 Kelebihan dari adjacency matrix ini adalah elemen matriksnya dapat diakses langsung melalui indeks. Sedangkan kekurangannya bila graph memiliki jumlah sisi atau busur yang relatif sedikit, kebutuhan ruang hash tabel untuk matriks menjadi boros dan tidak efisien karena komputer menyimpan elemen yang tidak perlu.
III.1.3 Analisis Strategi
33
Algoritma ini merupakan optimasi dari algoritma best-first search. Algoritma best-first search merupakan gabungan dengan mengambil kelebihan dari algoritma breadth-first search dan algoritma dept-first search. Pada setiap langkah proses algoritma best-first search, kita akan memilih simpul-simpul dengan menggunakan fungsi heuristik yang memadai pada setiap simpul yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan penggantinya. Algoritma best-first search memperbolehkan pencarian ke level yang lebih rendah jika nilai heuristik di simpul level yang lebih tinggi memiliki nilai yang lebih buruk. Cara kerja algoritma best-first search adalah sebagai berikut:
1. Asumsikan senarai untuk simpul yang sudah dibangkitkan namun belum diuji sebagai list OPEN dan senarai untuk simpul yang telah diuji sebagai CLOSE.
2. Masukan simpul awal pada list OPEN.
3. Kerjakan langkah-langkah berikut hingga tujuan ditemukan atau antrian OPEN sudah kosong:
a. Ambil simpul terbaik dari list OPEN.
b. Bangkitkan semua suksesor dari simpul yang ada di list OPEN. c. Untuk setiap suksesor kerjakan:
ï· Jika simpul tersebut belum pernah dibangkitkan, periksa simpul tersebut dan masukkan ke OPEN;
ï· Jika simpul tersebut sudah pernah dibangkitkan, ubah parent jika lintasan baru lebih menjanjikan. Hapus simpul tersebut dari antrian OPEN.
III.1.4 Analisis Algoritma
1. Langkah kerja algoritma beam 2. Flowchart
3. Pseudocode
III.1.4.1Algoritma Pencarian beam
Algoritma pencarian beam merupakan algoritma yang hanya menyimpan nilai terbaik dan menghapus simpul yang tidak digunakan karena memiliki nilai yang besar. Cara kerja algoritma pencarian beam adalah sebagai berikut:
1. Masukan besar nilai beam.
2. Periksa simpul tetangga dari simpul awal hingga tidak ada lagi simpul yang dapat diperiksa dan simpan semua simpul tersebut ke dalam antrian. Bila pada pencarian ini terdapat simpul tujuan, simpan simpul sebagai solusi dan pencarian selesai.
3. Bandingkan nilai dari simpul-simpul pada array antrian. Simpul dengan nilai terkecil adalah simpul yang akan dipilih dan di simpan sebagai solusi dan simpul yang disimpan tersebut sebesar nilai beam. 4. Bila solusi belum ditemukan, pencarian akan dilakukan lagi dengan
memperluas pencarian dari simpul-simpul yang bertetangga dengan simpul yang dipilih sebelumnya hingga tujuan ditemukan.
35
Gambar III-6 Flowchart Algoritma Pencarian beam
[image:49.595.179.450.102.512.2]Pseudocode algoritma pencarian beam dapat dilihat pada Tabel III-2 Pseudocode Algoritma Pencarian beam.
Tabel III-2 Pseudocode Algoritma Pencarian beam
No Algoritma Pencarian Beam
1 Procedure Beam()
2 {IS : jumlah simpul dan besar nilai beam telah didapatkan
3 FS : Mendapatkan solusi terbaik dari pencarian algoritma
beam}
4
5 Kamus
6 const maxsize = 100
No Algoritma Pencarian Beam
8 type antrian : array[0..maxsize] of integer
9 beam, i, j, h : integer
10 Algoritma
11 i ï 0
12 input beam
13 while(solusi[i] != null) do
14 j ï 0
15 for j = 0 to j < beam do
16 if(simpul = solusi[j]) then
17 solusi[j] ï simpul
18 jï beam-1
19 else
20 antrian[j] ï simpul
21 endif
22 j ï j+1
23 endfor
24
25 jï0
26 while (antrian[j] != null) do
27 compare(h)
28 simpul ï h
29 delete(antrian[j])
30 solusi[j] ï simpul
31 j ï j+1
32 endwhile
33 i ïi+1
34 endwhile
35 endprocedure
Untuk perhitungan Big-O algoritma pencarian beam, dapat dilihat pada Tabel III-3 Perhitungan Big-O Algoritma Beam.
Tabel III-3 Perhitungan Big-O Algoritma Beam
No Pseudocode Nilai Big-O
1 i ï 0 O(1)
2 input beam O(1)
3 while(solusi[i] != null) do O(n)
4 j ï 0 O(1)
5 for j = 0 to j < beam do O(n)
6 if(simpul = solusi[j]) then O(1)
7 solusi[j] ï simpul O(1)
8 jï beam-1 O(1)
37
No Pseudocode Nilai Big-O
10 j ï j+1 O(1)
11 jï0 O(1)
12 while (antrian[j] != null) do O(n)
13 compare(h) O(1)
14 simpul ï h O(1)
15 delete(antrian[j]) O(1)
16 solusi[j] ï simpul O(1)
17 j ï j+1 O(1)
18 i ïi+1 O(1)
Berdasarkan hasil perhitungan performansi algoritma pencarian beam menggunakan notasi Big-O, didapat kompleksitas waktu dengan O(n2).
III.1.4.2Kasus Algoritma Pencarian beam
39
Langkah Peancarian:
1. Pencarian dimulai dengan menelusuri seluruh lokasi yang bertetangga dengan Karang Resik, dimana simpul yang bertetangga pada kondisi ini adlah Terminal Pancasila dan Tugu Koperasi. Karena hanya dua simpul yang bertetangga dan nilai beam yang digunakan adalah dua, maka kedua lokasi tersebut merupakan simpul terbaik yang akan disimpan ke dalam solusi dan diperluas pencariannya.
Tabel III-4 Kondisi Awal Penelusuran Simpul Yang Diperiksa Urutan Simpul
Karang Resik (Karang Resik)
Tabel III-5 Kondsi Penelusuran Pertama Simpul Yang Diperiksa Urutan Simpul
Karang Resik (Karang Resik)
(Karang Resik, Terminal Pancasila), (Karang Resik, Tugu Koperasi) 2. Pencarian dilanjutkan dengan memperluas pencarian dengan
memeriksa seluruh simpul yang bertetangga dengan Terminal Pancasila dan Tugu Koperasi. Pada kondisi ini, lokasi yang bertetangga dengan Terminal pancasila adalah Alun-alun, RSUD, TMP Kusuma Bangsa. Sedangkan yang bertetangga dengan Tugu Koperasi adalah Batik Tasik dan Karang Resik. Dengan memperhatikan jarak, maka lokasi yang diambil adalah Batik Tasik dan RSUD.
Tabel III-6 Kondisi Penelusuran ke Dua Simpul Yang Diperiksa Urutan Simpul
3. Pencarian dilanjutkan dengan memperluas pencarian dengan memeriksa seluruh simpul yang bertetangga dengan Batik Resik dan RSUD. Pada kondisi ini, lokasi yang bertetangga dengan Batik Resik adalah Payung Tasik dan Mesjid Agung. Sedangkan yang bertetangga dengan RSUD adalah Alun-alun, GOR Sukapura, Terminal Pancasila dan TMP Kusuma Bangsa. Berdasarkan jarak, maka lokasi yang dipilih adalah Alun-Alun dan Payung Tasik.
Tabel III-7 Kondisi Penelusuran ke Tiga Simpul Yang Diperiksa Urutan Simpul
RSUD dan Batik Tasik (Karang Resik, Terminal Pancasila, RSUD), (Karang Resik, Tugu Koperasi, Batik Tasik)
(Karang Resik, Terminal Pancasila, RSUD, Alun-Alun), (Karang Resik, Tugu Koperasi, Batik Tasik, Payung Tasik)
4. Pencarian dilanjutkan dengan memperluas pencarian dengan memeriksa seluruh lokasi yang bertetangga dengan Payung Tasik dan Alun-alun. Pada kondisi ini, lokasi yang bertetangga dengan Payung Tasik adalah Waterboom. Sedangkan yang bertetangga dengan Alun-alun adalah GOR Sukapura, Mall, Mesjid Agung dan RSUD. Berdasarkan jarak, maka lokasi yang dipilih adalah Mesjid Agung dan Waterboom.
Tabel III-8 Kondisi Penelusuran ke Empat Simpul Yang Diperiksa Urutan Simpul
Alun-alun dan Payung Tasik (Karang Resik, Terminal Pancasila, RSUD), (Karang Resik, Tugu Koperasi, Batik Tasik)
41
5. Pencarian dilanjutkan dengan memperluas pencarian dengan memeriksa seluruh lokasi yang bertetangga dengan Waterboom dan Masjid Agung. Pada kondisi ini, lokasi yang bertetangga dengan Waterboom adalah Kawasan Lingga Yani. Sedangkan lokasi yang bertetangga dengan Masjid Agung adalah Alun-alun, Batik Tasik, Makam Sakarembang dan Mall. Karena lokasi tujuan telah ditemukan pada penelusuran dari Mesjid Agung, maka pencarian di hentikan. Jadi rute terpendek dari Karang Resik menuju Mall adalah melalui Terminal Pancasila, menuju RSUD, menuju Alun-alun, menuju Mesjid Agung hingga sampai di lokasi tujuan yaitu Mall.
III.1.5 Spesifikasi Kebutuhan Perangkat Lunak
Spesifikasi kebutuhan perangkat lunak diperlukan untuk mempelajari kebutuhan dan menetapkan fungsi perangkat lunak. Pada spesifikasi perangkat lunak disini dibagi menjadi dua yaitu SKPL-F (Spesifikasi Perangkat Lunak Fungsional) dan SKPL-NF (Spesifikasi Perangkat Lunak Non Fungsional. Pada aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya, spesifikasi kebutuhan perangkat lunak fungsional dapat dilihat pada Tabel III-9 Spesifikasi Kebutuhan Perangkat Lunak Fungsional dan spesifikasi kebutuhan perangkat lunak non fungsional dapat dilihat pada
Tabel III-10 Spesifikasi Kebutuhan Perangkat Lunak Non Fungsional. .
Tabel III-9 Spesifikasi Kebutuhan Perangkat Lunak Fungsional
Kode Kebutuhan
SKPL-F001 Perangkat lunak dapat menerima inputan lokasi awal dan destinasi lokasi tujuan.
SKPL-F002 Perangkat lunak dapat mengukur waktu proses pencarian rute terpendek.
Tabel III-10 Spesifikasi Kebutuhan Perangkat Lunak Non Fungsional
Kode Kebutuhan
SKPL-NF001 Perangkat lunak berbasis mobile Android SKPL-NF002 Sistem operasi minimal android 2.3
SKPL-NF003 Bahasa pemrograman yang digunakan adalah Java SKPL-NF004 Pemetaan menggunakan Google Map
SKPL-NF005 Web service hanya menyimpan nama lokasi dan koordinat lokasi
III.1.6 Analisis Kebutuhan Non Fungsional
Analisis kebutuhan non fungsional adalah langkah dimana seorang pembangun perangkat lunak (software developer) menganalisis sumber daya yang akan digunakan dan menggunakan perangkat lunak yang dibangun. Perangkat keras dan perangkat lunak yang dimiliki harus sesuai dengan kebutuhan atau permintaan, sehingga dapat ditentukan kompabilitas aplikasi yang dibangun terhadap sumber daya yang ada.
Apabila terjadi ketidakcocokan antara fakta dan kebutuhan maka perlu dilakukan penyesuaian fakta terhadap kebutuhan yang ada. Apabila kebutuhan tidak dipenuhi maka sistem yang dibangun tidak akan berjalan baik sesuai yang diharapkan.
Analisis kebutuhan non fungsional yang dilakukan dibagi dalam tiga tahap, yaitu:
1. Analisis perangkat keras (hardware). 2. Analisis perangkat lunak (software). 3. Analisis pengguna (user).
III.I.6.1Analisis Kebutuhan Perangkat Keras
Perangkat keras yang digunakan untuk membangun aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya memiliki spesifikasi sebagai berikut:
43
2. VGA 2 Gb 3. RAM 4 Gb 4. Harddisk 500 Gb
Sedangkat perangkat lunak minimal agar dapat menjalankan aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya adalah sebagai berikut:
1. Processor 800 Hz 2. RAM 512 Mb
3. Memori kosong 5 Mb 4. Sistem operasi Android 2.3
III.I.6.2Analisis Kebutuhan Perangkat Lunak
Adapun perangkat lunak yang digunakan untuk membangun aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya adalah sebagai berikut:
1. Eclipse Indigo
2. Macromedia Dreamweaver 5 3. Wamp Server 5
III.I.6.3Analisis Kebutuhan Perangkat Pikir
Analisis kebutuhan perangkat pikir diperlukan agar kemampuan perangkat lunak yang dibangun menjadi jelas. Beberapa analisa dan kebutuhan yang berkaitan dengan perangkat lunak yang akan dibangun nanti yaitu analisa dan kebutuhan pengguna. Adapun yang diperlukan pada aplikasi android.
1. Mengerti penggunaan mobile dengan sistem operasi Android. 2. Mengerti secara umum penggunaan internet pada mobile Android.
2. Dapat mengolah data yang dengan fitur yang disediakan didalam web.
III.1.7 Analisis Data / File
Analisis data adalah kegiatan menganalisis data yang akan diolah dan disimpan dalam database. Dalam analisis ini direpresentasikan darimana data berasal dan atribut dari data tersebut. Berikut adalah ERD dari basis data yang digunakan dalam aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya yang dapat dilihat pada Gambar III-8 Entitas Aplikasi Simulasi Pencarian Rute Terpendek di Kota Tasikmalaya.
Gambar III-8 Entitas Aplikasi Simulasi Pencarian Rute Terpendek di Kota Tasikmalaya
Penjelasan untuk entitas-entitas pada gambar Gambar III-8 adalah sebagai berikut.
Tabel III-11 Entitas ERD No Entitas Atribut Keterangan
1. Admin Username Nama pengguna admin Password Sandi admin
2. Lokasi Id Nilai kunci data lokasi Nama_Lokasi Nama lokasi
45
III.1.8 Analisis Kebutuhan Fungsional
Analsis kebutuhan fungsional mendefinisikan aksi dasar yang ada dalam perangkat lunak yang dibangun untuk menerima dan memproses masukan dan menghasilkan keluaran.
III.1.8.1 Diagram Konteks
Diagram konteks adalah diagram yang menggambarkan secara umum yang menjadi masukkan, proses, dam keluaran yang terjadi pada sebuah sistem. Diagram konteks untuk perangkat lunak yang akan dibangun sebagai berikut :
info_login info_data_lokasi
data_login data_lokas i
0 Simulasi Pencarian Rute
Terpendek Admin
Gambar III-9 Diagram Konteks Web Service
III.1.8.2 DFD Level 1 Web service
data_lokasi data_lokasi info_data_lokasi
data_lokasi
data_admin info_data_login
data_login
Admin
1 Login
2 Olah Data
Lokasi Lokasi
Gambar III-10 DFD Level 1 Web Service
III.1.8.3 DFD Level 2 Web Service
Pada DFD level 2 web service, terdapat tiga proses utama yaitu tambah data lokasi, ubah data lokasi dan hapus data lokasi.
1. Tambah Data Lokasi
Pada Proses ini, admin menambahkan data lokasi dengan menginputkan nama lokasi, latitude dan longitude lokasi.
2. Ubah Data Lokasi
Pada Proses ini, admin mengubah data lokasi dengan menginputkan nama lokasi, latitude dan longitude lokasi yang baru.
3. Hapus Data Lokasi
Pada Proses ini, admin menghapus data lokasi.
47 data_lokasi data_lokasi data_lokasi data_lokasi data_lokasi data_lokasi info_data_lokasi info_data_lokasi data_lokasi info_data_lokasi data_lokasi data_lokasi Admin 2 Ubah Lokasi 3 Hapus Lokasi 1 Tambah Lokasi Lokasi
Gambar III-11 DFD Level 2 Web Service
Berikut ini adalah spesifikasi proses yang mana spesifikasi proses ini akan menjelaskan proses-proses pada DFD dengan lebih terperinci. Spesifikasi proses pada aplikasi simulasi ini dapat dilihat pada Tabel III-12 Spesifikasi Proses.
Tabel III-12 Spesifikasi Proses
NO Proses Keterangan
1
No Proses 1
Nama Proses Login
Input Data Login
Output Info Login
Destination (Tujuan) Admin Logika Proses
Jika Username dan Password benar maka admin masuk ke sistem, jika salah akan muncul info login invalid
2 No Proses 2
Nama Proses Olah Lokasi Data
Input Data Lokasi
Output Info data lokasi
Destination (Tujuan) Admin
Logika Proses 1. Admin dapat mengelola data lokasi 2. Sistem menyimpan semua data-data
3 No Proses 2.1
Nama Proses Tambah Lokasi
Input Data Lokasi
Output Info Data Lokasi
Destination (Tujuan) Admin
Logika Proses 1. Admin menambahkan data lokasi 2. Sistem menyimpan data yang
ditambahkan oleh admin
4 No Proses 2.2
Nama Proses Ubah Lokasi
Input Data Lokasi
Output Info Data Lokasi
Destination (Tujuan) Admin
Logika Proses 1. Admin mengubah data lokasi
2. Sistem menyimpan perubahan data yang dilakukan oleh admin
5 No Proses 2.3
Nama Proses Hapus Lokasi
Input Data Lokasi
Output Info Data Lokasi
Destination (Tujuan) Admin
Logika Proses 1. Admin menghapus data lokasi 2. Sistem menghapus data yang ingin
dihilangkan oleh admin III.1.8.4 Kamus Data DFD
[image:62.595.86.489.112.468.2]Kamus data dapat membantu mendefinisikan data yang mengalir dengan lengkap diantara proses, penyimpanan dan entitas luar. Data tersebut dapat berupa masukan ataupun keluaran dari proses sistem. Kamus data pada aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya dapat dilihat padaTabel III-13 Kamus Data DFD.
Tabel III-13 Kamus Data DFD
NO. Data Keterangan
1. Nama data_login
Deskripsi Bersisi data username dan password untuk admin
Struktur Data username+password
Username [A-Z|a-z|0-9]
Password [A-Z|a-z|0-9]
2 Nama data_lokasi
49
lokasi, dan koordinat lokasi
Struktur Data id,nama_lokasi, latitude, longitude
Id [0-9]
nama_lokasi [A-Z|a-z|0-9]
Latitude [0-9]
Longitude [0-9]
III.1.8.5 Usecase Diagram Aplikasi Simulasi Android
Use case merupakan gambaran skenario dari interaksi antara user dengan sistem. Sebuah diagram use case menggambarkan hubungan antara aktor dan kegiatan yang dapat dilakukan terhadap aplikasi. Berikut adalah usecase model untuk aplikasi simulasi android.
Gambar III-12 Usecase Diagram Aplikasi Simulasi III.1.8.5.1 Definisi Aktor
Definisi aktor berfungsi menjelaskan peran setiap aktor yang terdapat pada use case. Definisi aktor pada aplikasi simulasi ini adalah sebagai berikut.
System
User
Pencarian Rute
Update Lokasi
PengaturanParameter
Tabel III-14 Definisi Aktor
No. Aktor Deskripsi
1 User Pengguna yang menggunakan aplikasi
simulasi pencarian rute terpendek. III.1.8.5.2 Definisi Use Case
Definisi Use Case berfungsi untuk menjelaskan proses yang terdapat pada setiap use case. Definisi usecase pada aplikasi simulasi ini dapat dilihat padaTabel III-15 Definisi Use Case.
Tabel III-15 Definisi Use Case
No. Use Case Deskripsi
1 Pencarian Rute Proses untuk mencari rute terpendek
2 Update Lokasi Proses untuk memperbaharui data-data lokasi 3 Pengaturan Proses untuk mengatur parameter algoritma
pencarian beam
III.1.8.5.1 Skenario Usecase
51
Tabel III-16 Skenario Use Case Pencarian Rute Identifikasi
Nomor 1
Nama Pencarian Rute
Tujuan Menampilkan form pencarian lokasi
Deskripsi Proses untuk memanggil form pencarian lokasi
Aktor User
Skenario Utama
Kondisi Awal User berada menu awal
Aksi Aktor Reaksi Sistem
1. Memilih menu Pencarian Rute
2. Menampilkan form pencarian lokasi 3.Memasukan lokasi awal dan lokasi
tujuan
4.Menekan tombol cari 5.Membaca inputan lokasi awal dan tujuan 6.Mencari rute dengan algoritma pencarian beam
7. Menampilkan hasil pencarian rute Kondisi Akhir Sistem menampilkan hasil pencarian rute
Tabel III-17 Skenario Use Case Update Lokasi Identifikasi
Nomor 2
Nama Update Lokasi
Tujuan Menampilkan kembali menu awal Deskripsi Proses untuk memperbaharui data lokasi
Skenario Utama
Kondisi Awal User berada menu awal
Aksi Aktor Reaksi Sistem
1. Memilih menu update lokasi
2. Mengambil data lokasi dari web service
3. Menampilkan menu utama Kondisi Akhir Sistem memperbaharu
[image:66.595.78.485.140.704.2]i data lokasi dan kembali ke menu utama
Tabel III-18 Skenario Use Case Pengaturan Identifikasi
Nomor 3
Nama Pengaturan Parameter
Tujuan Mengatur Parameter Algoritma Pencarian Beam
Deskripsi Proses untuk mengatur nilai parameter algoritma pencarian beam
Aktor User
Skenario Utama
Kondisi Awal Berada di form pencarian lokasi
Aksi Aktor Reaksi Sistem
1.Menekan tombol pengaturan 2.Menampilkan form pengaturan parameter
3.Memasukan nilai parameter
53
III.1.8.6 Activity Diagram
[image:67.595.188.435.244.534.2]Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses pararel yang mungkin terjadi pada eksekusi.
Gambar III-13 Activity Diagram Pencarian Lokasi
User Sistem
Menampilkan form pencarian
lokasi
Memasukan Lokasi Awal dan Tujuan
Menekan tombol cari
Menampilkan hasil pencarian
rute Membaca inputan lokasi awal dan tujuan
Mencari rute dengan algoritma pencarian beam Memilih menu
Gambar III-14 Activity Diagram Update Lokasi
Gambar III-15 Activity Diagram Pengaturan Parameter
User Sistem
Memilih menu
update lokasi Mengambil datalokasi dari web service
Menampilkan menu utama
User Sistem
Menampilkan form pengaturan
parameter
Memasukan nilai parameter
Menyimpan parameter Menekan
tombol simpan Menekan tombol
55
III.1.8.7 Class Diagram
Kelas merupakan satu set objek yang memiliki atribut dan perilaku yang sama (Whitten, 2004: 410). Kelas dapat juga diartikan sebagai suatu definisi sumber daya yang termasuk didalamnya informasi-informasi yang menggambarkan fitur suatu entitas dan bagaimana penggunaanya.
[image:69.595.120.506.304.612.2]Berikut adalah class diagram untuk aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya.
Gambar III-16 Class Diagram Aplikasi Simulasi III.1.8.8 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan
disekitar sistem (termasuk pengguna, display, dan sebagainya). Sequence diagram algoritma skripsi db BeamQUeue +removeAll() +addBack() +getPaths() +sort() HandlerLokasi +refresh() +availableDestination() +indexName() +hasString)() +indexId() Rute
+public boolean equals() +public String toString()
terdiri atas dimensi vertical (waktu) dan dimensi horizontal (objek-objek yang terkait).
Gambar III-17 Pemilihan Menu Pencarian Lokasi
Gambar III-18 Pemilihan Menu Update
: User
PencarianRute HandlerLokasi Beam
1 : Memilih Menu Pencarian Rute
2 : Memasukan Lokasi Awal dan Tujuan
3 : doProses()
4 : getLokasi()
5 : indxName()
6 : doStep()
7 : Menampilkan Hasil Pencarian
: User
ActivityUtama
1 : Memilih Menu Update
2 : updateLokasi()
57
Gambar III-19 Pengaturan Parameter III.2 Perancangan Sistem
Tahap perancangan merupakan kelanjutan dari proses analisis. Perancangan sistem ini meliputi parancangan basis data, pencangan aristektur perangkat lunak, perancangan struktur menu, perancangan antarmuka, perancangan pesan, jaringan semantik, perancangan prosedural. Semua perancangan yang telah disebutkan diatas harus saling berhubungan agar menciptakan suatu sistem yang baik.
III.2.1 Perancangan Basis Data
Perancangan basis data dalam web service aplikasi simulasi pencarian rute terpendek di kota Tasikmalaya adalah sebagai berikut:
: User
PencarianRute Pengaturan
1 : onCreate()
2 : Setting()
3 : Mengisi Nilai Parameter
4 : onClick()
Tabel III-19 Perancangan Basis Data No. Nama Basis Data Atribut <