PENENTUAN RUTE JARAK TERPENDEK DI KOTA SURABAYA MENGGUNAKAN ALGORITMA DIJKSTRA BERBASIS JAVA MIDLET.

98  11  Download (1)

Teks penuh

(1)

MIDLET

SKRIPSI

Disusun Oleh :

SAEFUDDIN ESA

NPM. 0434010193

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN“JAWA TIMUR

SURABAYA

(2)

MIDLET

SKRIPSI

Diajukan Untuk Memenuhi Sebagai Persyaratan

Dalam Memperoleh Gelar Sarjana Komputer

Jurusan Teknik Informatika

Disusun oleh :

SAEFUDDIN ESA

NPM. 0434010193

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR

SURABAYA

(3)

PENENTUAN RUTE JARAK TERPENDEK DI KOTA SURABAYA

MENGGUNAKAN ALGORITMA

DIJKSTRA

BERBASIS JAVA

MIDLET

Disusun Oleh :

SAEFUDDIN ESA

0434010193

Telah disetujui untuk mengikuti Ujian Negara Lisan Gelombang II Tahun Akademik 2009/2010

Pembimbing Utama Pembimbing Pendamping

Hj. Asti Dwi Irfianti, S.Kom, M.Kom Nur Cahyo Wibowo, S.Kom, M.Kom NPT. 373 020 602 14 NPT. 379 030 401 97

Mengetahui,

Ketua Jurusan Teknik Informatika Fakultas Teknologi Industri UPN ”Veteran” Jawa Timur

(4)

PENENTUAN RUTE JARAK TERPENDEK DI KOTA SURABAYA

MENGGUNAKAN ALGORITMA

DIJKSTRA

BERBASIS JAVA

MIDLET

Disusun Oleh :

SAEFUDDIN ESA

NPM. 0434010193

Telah dipertahankan di hadapan dan diterima oleh Tim Penguji Skripsi Jurusan Teknik Informatika Fakultas Teknologi Industri

Universitas Pembangunan Nasional ”Veteran” Jawa Timur Pada Tanggal 21 Juni 2010

Pembimbing : Tim Penguji :

1. 1.

Hj. Asti Dwi Irfianti, S.Kom, M.Kom M. Irwan Afandi, ST, M.Sc NPT. 373 020 602 14 NPT. 376 0707 0220

2. 2.

Nur Cahyo Wibowo, S.Kom, M.Kom Ir. M. Rachmat, MT NPT. 379 030 401 97 NPT. 196203041991031002

3.

Intan Yuniar Purbasari S.Kom NPT. 380 060 401 98

Mengetahui,

Dekan Fakultas Teknologi Industri

Universitas Pembangunan Nasional ”Veteran” Jawa Timur

(5)

YAYASAN KESEJAHTERAAN PENDIDIKAN DAN

PERUMAHAN UPN “VETERAN” JAWA TIMUR

FAKULTAS TEKNOLOGI INDUSTRI

KETERANGAN REVISI

Kami yang bertanda tangan di bawah ini menyatakan bahwa mahasiswa berikut:

Nama : Saefuddin Esa

NPM : 0434010193

Jurusan : Teknik Informatika

Telah mengerjakan revisi/ tidak ada revisi*) pra rencana (design)/ skripsi ujian lisan

gelombang II, TA 2009/2010 dengan judul:

“PENENTUAN RUTE JARAK TERPENDEK DI KOTA SURABAYA MENGGUNAKAN ALGORITMA DIJKSTRA BERBASIS JAVA MIDLET”

Surabaya, 17 Juni 2010

Dosen Penguji yang memerintahkan revisi:

{

}

1) M. Irwan Afandi, ST, M.Sc NPT. 376 0707 0220

{

}

2) Ir. M. Rachmat, MT

NPT. 196203041991031002

{

}

3) Intan Yuniar Purbasari S.Kom NPT. 380 060 401 98

Mengetahui,

Pembimbing Utama Pembimbing Pendamping

(6)

Pembimbing II : Nur Cahyo Wibowo, S.Kom, M.Kom

Penyusun : Saefuddin Esa

i

ABSTRAK

Dewasa ini informasi atas kondisi lalu lintas di daerah Surabaya sangat dibutuhkan oleh masyarakat terutama oleh pengguna kendaraan bermotor, mengingat biaya kendaraan bermotor yang terbilang cukup mahal. Selain mahal, kendaraan bermotor juga memperhitungkan jarak yang ditempuh oleh pengendara apabila jarak yang ditempuh oleh pengendara semakin jauh, maka biaya yang dikeluarkan akan semakin besar dan begitu pula sebaliknya. Jika pegendara bingung akan tujuan yang ditujunya dan memilih jalan yang salah, maka biaya yang harus dikeluarkan untuk sampai ketempat tujuan menjadi lebih mahal.

Aplikasi Penentuan Rute Jarak Terpendek Di Kota Surabaya Menggunakan Algoritma Dijkstra Berbasis Mobile merupakan salah satu solusi untuk menghindari kesalahan yang tidak diperlukan dalam memilih jalan yang akan digunakan. Implementasi dari desain sistem menggunakan teknologi berbasis java untuk menentukan jarak terpendek yang dapat digunakan untuk sampai ketempat tujuan.

Uji kelayakan aplikasi dilakukan dengan melakukan serangkaian skenario uji coba antara lain: uji coba proses install dan uninstall pada handphone, uji coba pencarian jarak terpendek antara jalan protokol di Surabaya dengan menggunakan algoritma dijkstra. Hasil uji coba menunjukkan bahwa aplikasi dapat diinstall dan uninstall pada berbagai macam merk handphone yang mendukukung java versi 2. Hasil dari uji coba menunjukkan aplikasi sbydijkstra dapat menemukan jalur terpendek dari seluruh node yang ada.

(7)

KATA PENGANTAR

Syukur Alhamdulillaahi rabbil alamin terucap ke hadirat Allah SWT atas segala limpahan Kekuatan-Nya sehingga dengan segala keterbatasan waktu, tenaga,

pikiran dan keberuntungan yang dimiliki penyusun, akhirnya penyusun dapat

menyelesaikan Skripsi yang berjudul “ penentuan rute jarak terpendek di kota

Surabaya menggunakan algoritma dijkstra berbasis java midlet ” tepat waktu.

Skripsi dengan beban 4 SKS ini disusun guna diajukan sebagai salah satu

syarat untuk menyelesaikan program Strata Satu (S1) pada jurusan Teknik

Informatika, Fakultas Teknologi Industri, UPN ”VETERAN” Jawa Timur.

Melalui Skripsi ini penyusun merasa mendapatkan kesempatan emas untuk

memperdalam ilmu pengetahuan yang diperoleh selama di bangku perkuliahan,

terutama berkenaan tentang penerapan teknologi perangkat bergerak. Namun,

penyusun menyadari bahwa Skripsi ini masih jauh dari sempurna. Oleh karena itu

penyusun sangat mengharapkan saran dan kritik dari para pembaca untuk

pengembangan aplikasi lebih lanjut.

Surabaya, 21 juni 2010

(Penyusun)

(8)

UCAPAN TERIMA KASIH

Penyusun menyadari bahwasanya dalam menyelesaikan Skripsi ini telah

mendapat banyak bantuan dan dukungan dari berbagai pihak, untuk itu pada

kesempatan yang berharga ini, penyusun mengucapan terima kasih kepada:

1. Bapak dan Ibu tersayang di rumah yang senantiasa memberikan dukungan dan

mendoakan penyusun supaya Skripsi ini segera terselesaikan.

2. Bapak Basuki Rachmat, SSi, MT selaku Ketua Jurusan Teknik Informatika.

3. Ibu Hj. Asti Dwi Irfianti, S.Kom, M.Kom selaku Dosen Pembimbing I yang telah

giat meluangkan banyak waktu untuk memberikan arahan, ilmu dan dorongan

serta motivasi kepada penyusun untuk menyelesaikan Skripsi ini.

4. Bapak Nur Cahyo Wibowo, S.Kom, M.Kom selaku Dosen Pembimbing II yang

dengan sabar telah meluangkan banyak waktu, pikiran dan tenaga di antara

kesibukan beban-beban kegiatan akademik.

5. Ibu Intan Yuniar Purbasari, S.kom dan Bapak Doddy Ridwandono, S.kom selaku

Penguji Skripsi yang telah banyak memberi masukan.

6. Saudara-saudara penyusun tercinta, Mas vindi, mbak dewi, adekku yang telah

membantu dan meringankan beban pekerjaan dirumah, yang seharusnya tugasku.

7. Cintaku, Kartika Tri Elyasari si penyemangat hidup yang kemana-mana selalu setia melewati hari-hari bersama, mendamaikan dan memusingkan suasana hati

penyusun.

8. Teman-teman satu angkatan yang telah membantu, banana fc(kebersamaan no.1

pek), Beny & Kerr(best friends ever, smangat es), Ma’ruf (printer kejam e), bedon

(yang sering mengkalahkan dotA), uwek(ojok buntu-buntu je).

(9)

DAFTAR ISI

2.2. Permasalahan jalur terpendek... 8

2.3. Graf………. ... 9

2.3.1. Macam-macam Graf... 9

2.4. Perbandingan Macam-macam Tipe Algoritma Penentu Jarak Terpendek……… 11

2.4.1. Algoritma Dijkstra... 12

2.4.2. Algoritma Floyd-Warshall... 14

2.4.3. Algoritma Bellman-Ford……… 15

2.5. Java 2 Micro Edition (J2ME)……… 16

2.5.1. Midlet……… 18

2.5.2. Siklus Hidup Aplikasi……….. 18

(10)

2.5.3. J2ME Configuration………. 20

2.5.4. Mobile Information Device Profil (MIDP)……….. 21

2.5.5. Linked List………... 22

2.5.5.1. Manfaat dan Penggunaan………... 22

2.5.5.2. Beberapa Operasi Dasar………….……… 23

2.5.6. Push Registry……… 25

2.6. Teknologi Nirkabel atau Mobile 25 2.7. Unified Modelling Language (UML)……….. 26

2.7.1. Use Case……… 27

2.7.2. Aktor………. 28

2.7.3. Identifikasi Use Case……… 31

2.7.4. Dokumentasi Model Use Case………. 33

BAB III ANALISA DAN PERANCANGAN SISTEM... 34

3.1. Analisa Sistem... 34

4.2. Implementasi Basis Data... 47

4.3. Implementasi Antarmuka... 49

4.3.1. Form Daftar Menu Utama... 49

4.3.2. Form Jalur Terpendek... 50

4.3.3. Form Jalan………... 51

(11)

4.3.4. Form Hasil... 52

4.3.5. Form Peringatan... 53

BAB V UJI COBA DAN EVALUASI... 54

5.1. Lingkungan Uji Coba…... 54

5.2. Skenario Uji Coba…... 55

5.3. Pelaksanaan Uji Coba…... 55

5.3.1. Uji Coba Install Aplikasi... 55

5.3.2. Uji Coba Uninstall Aplikasi... 57

5.3.3. Uji Coba Menjalankan Aplikasi... 59

5.3.4. Uji Coba Menggunakan Form Jalur Terpendek…... 59

5.3.5. Uji Coba Menggunakan Form Jalan... 60

5.3.6. Uji Coba Apabila Teks Field Diketikkan Secara Manual... 61

5.3.7. Uji Coba Apabila Teks Field Belum Di isi... 61

5.3.8. Uji Coba Mencari Jarak Terpendek... 62

5.4. Evalusi... 69

BAB VI PENUTUP... 70

6.1. Kesimpulan... 70

6.2. Saran... 70

DAFTAR PUSTAKA... 72

LAMPIRAN... 73

(12)

DAFTAR GAMBAR

Gambar 2.1. Graf ABCDEFG... 8

Gambar 2.2. Graf Berarah Dan Berbobot... 9

Gambar 2.3. Graf Tidak Berarah Dan Berbobot... 10

Gambar 2.4. Graf Berarah Dan Tidak Berbobot... 10

Gambar 2.5. Graf Tidak Berarah Dan Tidak Berbobot...11

Gambar 2.6. Pseudocode Algoritma Dijkstra... 12

Gambar 2.7. Contoh Graf Berbobot Tersambung... 13

Gambar 2.8. Pseudocode Algoritma Floyd-Warshall.... 14

Gambar 2.9. Representasi Keterhubungan Antar Kota Dalam Graf Berbobot.... 14

Gambar 2.10. Pseudocode Algoritma Bellman-Ford...16

Gambar 2.11. Siklus Hidup Midlet... 19

Gambar 2.12. Linked list...22

Gambar 2.13. Contoh Proses Insert Linked List………... 23

Gambar 2.14. Contoh Proses View Linked List... 23

Gambar 2.15. Contoh Proses Find Linked List...24

Gambar 2.16. Contoh Proses Delete Linked List...24

Gambar 2.17. Elemen-Elemen Push Registry...25

Gambar 2.18. Contoh Aktifitas Aktor Dan Use Case... 28

Gambar 2.19. Contoh Aktor Pengukur Waktu... 30

Gambar 2.20. Aktor Dan Use Case Dalam Sistem Bank... 32

Gambar 3.1. Model Data Fisik Aplikasi... 37

Gambar 3.2. Use Case Diagram Aplikasi Jalur Terpendek... 38

Gambar 3.3. Activity Diagram... 39

Gambar 3.4. Sequence Diagram...40

Gambar 3.5. Antarmuka Menu Utama...41

Gambar 3.6. Antarmuka Penentuan Jalur Terpendek... 42

Gambar 3.7. Antarmuka Hasil Penentuan Jalur Terpendek... 43

Gambar 3.8. Antarmuka Contoh Output Aplikasi... 44

Gambar 3.9. Antarmuka Nama Jalan... 44

Gambar 4.1. Spesifikasi handphone nokia 6600……... 46

Gambar 4.2. Script Data Tabel Graf... 48

Gambar 4.3. Contoh Data Tabel Graf... 49

Gambar 4.4. Form Daftar Menu Utama... 50

Gambar 4.5. Form Jalur Terpendek... 50

Gambar 4.6. Contoh Proses Pengisian Data Pada Form Jalur Terpendek... 51

Gambar 4.7. Form Jalan... 52

Gambar 4.8. Form Hasil...52

Gambar 4.9. Form Peringatan... 53

Gambar 5.1. Spesifikasi Nokia 6600...54

Gambar 5.2. Spesifikasi Nokia 7610...54

Gambar 5.3. Spesifikasi Sony Ericsson K530i.... 54

Gambar 5.4. Proses Installasi Bagian 1...56

Gambar 5.5. Proses Installasi Bagian 2...56

Gambar 5.6. Proses Installasi Bagian 3...57

(13)

Gambar 5.7. Proses Installasi Bagian 4...57

Gambar 5.8. Proses Uninstall Bagian 1... 58

Gambar 5.9. Proses Uninstall Bagian 2... 58

Gambar 5.10. Proses Uninstall Bagian 3... 59

Gambar 5.11. Menjalankan Aplikasi... 59

Gambar 5.12. Menggunakan Form Jalur Terpendek 1... 60

Gambar 5.13. Menggunakan Form Jalur Terpendek 2... 60

Gambar 5.14. Teks Field Diketikkan Secara Manual... 61

Gambar 5.15. Teks Field Belum Diisi... 61

Gambar 5.16. Proses Mencari Jalur Terpedek Kutisari-Letjen Suprapto... 63

Gambar 5.17.Proses Mencari Jalur Terpendek Jagir Wonokromo-Raya Jend. A Yani JTV... 63

Gambar 5.18. Proses Mencari Jalur Terpendek Raya Panjang Jiwo-Rungkutu Tengah...64

Gambar 5.19. Proses Mencari Jalur Terpendek Jemur Sari-Rungkut Tengah...65

Gambar 5.20. Proses Mencari Jalur Terpendek Raya Jemur Sari Rsi-Raya Jend. A Yani Royal... 66

Gambar 5.21. Proses Mencari Jalur Terpendek Letjen Suprapto-Kutisari... 66

Gambar 5.22. Proses Mencari Jalur Terpendek Panjang Jiwo-Letjen Suprapto... 67

Gambar 5.23.Proses Mencari Jalur Terpendek Jemur Andayani Tengah – letj Suprapto... 68 Gambar 5.24. Proses Mencari Jalur Terpendek jemur andayani-rungkut tengah. 69

(14)

ix

DAFTAR TABEL

Tabel 2.1. Penyelesaian Graf ABCDEFG... 8

Tabel 2.2. Penyelesaian Algoritma Floyd-Warshall Tahap 1... 15

Tabel 2.3. Penyelesaian Algoritma Floyd-Warshall Tahap 2... 15

Tabel 2.4. Perbandingan CDC dan CLDC... 20

Tabel 3.1. Contoh Nama-Nama Jalan Protokol Dikota Surabaya...37

(15)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Dalam kehidupan sehari-hari sering dilakukan perjalanan dari suatu tempat

ketempat lain dengan mempertimbangkan efisiensi waktu dan biaya, sehingga

diperlukan ketepatan dalam menentukan jalur terpendek antar suatu tempat. Hasil

penentuan jalur terpendek akan menjadi pertimbangan dalam pengambilan keputusan

untuk menunjukkan jalur yang akan ditempuh. Untuk itu, penulis akan merancang

suatu aplikasi yang dapat menentukan jarak terpendek yang dapat digunakan pada

Handphone. Handphone (HP) saat ini bukan merupakan hal yang baru bagi masyarakat, selain digunakan untuk komunikasi, beberapa macam tipe HP

mempunyai fitur-fitur yang menarik seperti games, music player dan internet. Hal ini dikarenakan HP tersebut menggunakan sistem operasi berbasis java. Oleh karena HP

tersebut berbasis java, maka didalamnya terdapat terdapat paket Java 2 Micro Edition (J2ME), fasilitas pada J2ME tersebut dapat kita manfaatkan untuk menentukan jarak terpendek antar suatu tempat.

Kota Surabaya sebagai salah satu kota terbesar di Indonesia yang memiliki

tingkat kepadatan penduduk yang cukup besar membuat penulis berpikir, bagaimana

di kota yang sangat padat ini kita dapat mengadakan perjalanan dari suatu jalan ke

jalan lain tanpa pusing oleh banyaknya jalan raya di kota Surabaya ini, dan sepertinya

masyarakat yang tidak terlalu mengenal jalan raya yang ada di kota Surabaya, akan

mengalami sedikit kesulitan untuk menentukan jalan yang harus ditempuh bila

sewaktu-waktu mereka bepergian harus membawa peta kota Surabaya agar dapat

sampai ketempat tujuan.

(16)

Secara umum, pencarian jalur terpendek dapat dibagi menjadi dua metode,

yaitu metode konvensional dan metode heuristic.metode konvensional cenderung

lebih mudah dipahami daripada metode heuristic, tetapi jika dibandingkan, hasil yang

diperoleh menggunakan metode heuristic lebih variatif dan waktu perhitungan yang

diperlukan lebih singkat. Metode konvensional terdiri dari beberapa macam algoritma

yang biasa digunakan. Salah satunya adalah algoritma dijkstra.

Algoritma dijkstra merupakan algoritma untuk menentukan jarak terpendek dari suatu vertex ke vertex lain pada suatu graph yang berbobot, dimana jarak antar

vertex adalah bobot dari tiap edge pada graph tersebut, strategi yang diterapkan pada algoritma dijkstra ini adalah greedy. Strategi greedy pada algoritma dijkstra ini merupakan algoritma yang pada setiap langkahnya mengambil sisi yang berbobot

minimum yang menghubungkan sebuah simpul yang telah terpilih dengan simpul lain

yang belum terpilih. Lintasan dari simpul asal kesimpul yang baru haruslah

merupakan lintasan terpendek diantara semua lintasannya kesimpul-simpul yang

belum terpilih.

1.2 Perumusan Masalah

Berdasarkan latar belakang yang telah diuraikan sebelumnya, terdapat

beberapa permasalahan yang akan diangkat didalam skripsi ini, antara lain:

a. Bagaimana cara meningkatkan proses penentuan jalan yang ditempuh agar dapat

menghemat waktu dan biaya.

b. Bagaimana membuat antarmuka aplikasi yang menarik untuk digunakan

pengguna.

(17)

1.3 Batasan Masalah

Dari perumusan masalah diatas, batasan dalam skripsi ini adalah:

a. Hasil yang diperoleh dalam aplikasi ini berupa teks kalimat yang menjelaskan

arah jalan yang harus ditempuh.

b. User pada aplikasi ini adalah pengendara mobil pribadi.

c. Jalur yang digunakan dalam aplikasi ini adalah jalan-jalan protokol yang ada

di Surabaya.

d. Aplikasi ini tidak memperhitungkan adanya hambatan pada jalan yang dilalui,

dalam hal misalnya kecelakaan.

e. Aplikasi yang dibuat hanya ditujukan pada handphone yang mempunyai fasilitas berbasis java yang mendukung profil MIDP (Mobile Information Device Profile) versi 2.0

1.4 Tujuan

Tujuan skripsi ini adalah membuat dan merancang aplikasi yang dapat

digunakan untuk menentukan jalur terpendek antar jalan protokol yang ada dikota

Surabaya.

1.5 Manfaat

Penelitian ini diharapkan mempunyai nilai guna dan manfaat bagi pembaca

pada umumnya dan penulis pada khusunya, selain itu diharapkan:

a. Dapat memperkaya pengetahuan tentang dunia pemrograman J2ME

(18)

b. Dapat digunakan untuk mempermudah mobilitas pengguna aplikasi

dalam menentukan jalur yang harus ditempuh.

1.6 Metodologi pembuatan skripsi

Pembuatan Skripsi terbagi menjadi beberapa tahapan sebagai berikut

a. Studi literatur

Pada tahap ini dilakukan pengumpulan dokumen-dokumen, referensi-referensi,

buku-buku, sumber dari internet, atau sumber-sumber lain yang diperlukan untuk

merancang dan mengimplementasikan aplikasi.

b. Analisa dan perancangan aplikasi

Dari hasil studi literatur dan hasil survei lapangan akan dibuat deskripsi umum

sistem serta dilakukan analisa kebutuhan sistem, selain itu juga dilakukan

perancangan awal aplikasi yang akan dibuat, sehingga akan dihasilkan disain

antarmuka dan proses yang siap untuk diimplementasikan.

c. Pembuatan aplikasi

Pada tahap ini merupakan tahap yang paling banyak memerlukan waktu karena

model dan rancangan aplikasi yang telah dibuat diimplementasikan dengan

menggunakan teknologi J2ME.

d. Uji coba dan evaluasi aplikasi

Pada tahap iniaplikasi yang telah dibuat ini akan dilakukan beberapa skenario uji

coba dan dievaluasi untuk kelayakan pemakaian sistem.

e. Penyusunan laporan skripsi

Pada tahap ini merupakan tahap terakhir dari pengerjaan Skripsi. Laporan ini

(19)

laporan ini diharapkan dapat memudahkan pembaca yang ingin menyempurnakan

dan mengembangkan aplikasi lebih lanjut.

1.7 Sistematika Penulisan

Sistematika pembahasan yang dibuat dalam Skripsi ini disusun dalam beberapa

bab, yang dijelaskan sebagai berikut:

BAB I : PENDAHULUAN

Bab ini menjelaskan tentang latar belakang, rumusan

masalah, batasan masalah, tujuan, manfaat, metodologi

penelitian dan sistematika penulisan.

BAB II : TINJAUAN PUSTAKA

Pada bab ini dijelaskan tentang teori-teori serta

penjelasan-penjelasan yang dibutuhkan dalam pembuatan Aplikasi

penentuan jalur terpendek dikota Surabaya.

BAB III : ANALISA DAN PERANCANGAN SISTEM

Bab ini berisi tentang analisa dari sistem yang akan dibuat

dan perancangan sistem yang meliputi antara lain: deskripsi

umum sistem, kebutuhan sistem, pemodelan sistem

berorientasi objek, perancangan proses latar dan

perancangan antarmuka aplikasi.

BAB IV : HASIL DAN PEMBAHASAN

Bab ini berisi penjelasan hasil Tugas Akhir serta

pembahasannya tentang Aplikasi penentuan jalur terpendek

(20)

BAB V : UJICOBA DAN EVALUASI PROGRAM

Bab ini berisi penjelasan lingkungan uji coba aplikasi,

skenario uji coba, pelaksanaan uji coba dan evaluasi dari

hasil uji coba yang telah dilakukan untuk kelayakan

pemakaian aplikasi.

BAB VI : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran untuk pengembangan

aplikasi lebih lanjut dalam upaya memperbaiki kelemahan

pada aplikasi guna untuk mendapatkan hasil kinerja aplikasi

yang lebih baik.

DAFTAR PUSTAKA

(21)

BAB II

TINJAUAN PUSTAKA

2.1 Surabaya

Surabaya, adalah ibukota provinsi Jawa Timur. Letak geografisnya antara

07°12’LS - 07°21’LS dengan luas wilayah 280,44 kilometer persegi dan berpenduduk

lebih dari 3 juta orang, menjadikan Surabaya sebagai kota terbesar kedua di

Indonesia.

Surabaya, sebagai kota metropolitan ke 2 di Indonesia setelah Jakarta,

mempunyai masalah yang pelik mengenai penataan arus lalu lintas selain

masalah-masalah lain yang berhubungan dengan tata kota. Sama halnya dengan kota-kota

besar lainnya, masalah lalu lintas menjadi perhatian serius pemerintah daerah

masing-masing. Bahkan, terkadang pengambilan keputusan strategis penataan lalu-lintas

manjadi terkesan lambat. Sebenarnya, pemkot Surabaya pun sudah memikirkan jalan

keluar untuk mengatasi masalah lalu lintas ini. Beberapa ruas jalan alternatif, atau

lebih di kenal ring-road sudah dibangun, pelebaran di beberapa ruas jalan serta

rekayasa lalu lintas. Lalu pernah juga ada pembahasan mengenai tol dalam kota,

pembangunan ruas tol lingkar timur yang tembus langsung ke jembatan suramadu,

sampai terakhir penerapan program time shift yang dicanangkan oleh pemkot

Surabaya. Beberapa alternatif yang disebutkan diatas, sampai saat ini belum juga ada

kabarnya. Sedangkan, program time shift yang dicanangkan oleh pemkot beberapa waktu yang lalu tampaknya belum juga membuahkan hasil yang optimal. Ini terlihat

dari kondisi lalu lintas di jalan-jalan protokol pada jam-jam sibuk (pagi dan sore hari)

belakangan ini.

(22)

2.2 Permasalahan Jalur Terpendek

Jalur terpendek adalah suatu jaringan pengarahan perjalanan dimana seorang

pengarah jalan ingin menentukan jalur terpendek antara dua tempat berdasarkan

beberapa jalur alternative yang tersedia, dimana titik tujuan hanya satu.

Gambar 2.1 Graf ABCDEFG

Pada gambar diatas, misalkan kita dari titik A dan ingin menuju titik G. untuk

menuju ke titik G dapat dipilih beberapa jalur yang tersedia.

Tabel 2.1 Penyelesaian Graf ABCDEFG

A →B →C →D →E →G A →B →D →G

A →B →C →D →F →G A →B →E →G

A →B →C →D →G A →C →D →E →G

A →B →C →F →G A →C →D →F →G

A →B →D →E →G A →C →D →G

A → B →D →F →G A → C →F →G

Berdasarkan data diatas, dapat dihitung jalur terpendek dengan mencari jarak

antara jalur tersebut. Apabila jarak antar jalur belum diketahui, jarak dapar dihitung

berdasarkan koordinat titik-titik tersebut. Kemudian menghitung jalur terpendek yang

(23)

2.3 Graf

Menurut zakaria (2006), Graf adalah kumpulan simpul (nodes) yang dihubungkan satu sama lain melalui sisi/busur (edge). Suatu graf G terdiri dari dua himpunan yaitu himpunan V dan himpunan E:

V = verteks (simpul)

Himpunan simpul yang terbatas dan tidak kosong

E = edge (sisi/busur)

Himpunan busur yang menghubungkan sepasang simpul

Simpul-simpul pada graf dapat merupakan objek-objek seperti kota,

atom-atom suatu zat, nama anak, jenis buah, komponen alat elektronik dan juga suatu jalan.

Busur dapat menunjukkan hubungan (relasi) sembarang seperti rute penerbangan,

sambungan telepon, ikan kimia dan jalan raya. Notasi graf: G(V,E) yang artinya suatu

graf G memiliki V simpul dan E busur.

2.3.1 Macam-macam Graf

Menurut arah dan bobotnya, graf dibagi menjadi 4 bagian, yaitu:

1. Graf berarah dan berbobot: tiap busur memiliki anak panah dan bobot.

(24)

Gambar 2.2 menunjukkan graf berarah dan berbobot yang mempunyai tujuh

titik. Dan masing-masing titik telah memiliki arah dan memiliki bobot.

2. Graf tidak berarah dan berbobot: tiap busur tidak memiliki arah, tetapi

memiliki bobot pada masing-masing sisinya.

Gambar 2.3 Graf Tidak Berarah dan Berbobot

Gambar 2.3 menunjukkan graf tidak berarah dan berbobot yang mempunyai

tujuh titik yang memiliki nilai pada masing-masing sisinya tetapi tidak

memiliki arah pada setiap simpulnya.

3. Graf berarah dan tidak berbobot: tiap busur mempunyai anak panah yang

tidak berbobot. Gambar 2.4 menunjukkan graf berarah dan tidak berbobot

(25)

4. Graf tidak berarah dan tidak berbobot: tiap busur tidak memiliki anak panah

dan tidak memiliki bobot.

Gambar 2.5 Graf Tidak Berarah dan Tidak Berbobot

2.4 Perbandingan Macam-macam Tipe Algoritma Penentu Jarak Terpendek

Secara umum pencarian jarak terpendek dapat dilakukan menggunakan 2

metode, yaitu metode konvensional dan metode heuristic. Metode kenventional

diterapkan dengan menggunakan perhitungan matematis biasa, sedangkan metode

heuristik diterapkan dengan perhitungan kecerdasan buatan.

a. Metode kenvensional

metode konvensional adalah metode yang menggunakan perhitungan

matematis biasa. Ada beberapa metode konvensional yang sering digunakan

untuk melakukan pencarian jalur terpendek, diantaranya: algoritma dijkstra, algoritma floyd-warshall, dan algoritma bellman-ford

b. Metode heuristic

metode heuristic adalah sub bidang dari kecerdasan buatan yang digunakan

untuk melakukan pencarian dan optimasi. Ada beberapa metode heuristic

(26)

genetika, algoritma semut, logika fuzzy, jaringan syaraf tiruan, pencarian tabu,

simulated annealing.

2.4.1 Algoritma Dijkstra

Algoritma dijkstra, dinamai menurut penemunya, edsger dijkstra, adalah sebuah algoritma rakus (greedy algorithm) dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk mencari sebuah graf berarah (directed graf) dengan bobot-bobot sisi yang tidak bernilai negatif. Misalnya, bila vertices dari sebuah graf melambangkan kota-kota tersebut, maka algoritma dijkstra dapat digunakan untuk menemukan jarak terpendek antara 2 kota tersebut. Input algoritma

ini adalah sebuah graf berarah yang berbobot (weighted directed graf) G dan sebuah sumber vertexs dalam G dan V adalah himpunan semua vertices dalam graf G. setiap sisi dari graf ini adalah pasangan vertices (u,v) yang melambangkan hubungan dari vertex u ke vertex v. himpunan semua tepi disebut E.

Pseudocode

Sumber http://www.id.wikipedia.org/wiki/HuffAlgoritma_dijkstra

(27)

Sebagai contoh, carilah lintasan terpendek dari vertex a ke z dalam graf

berbobot tersambung dan tidak berarah berikut berikut:

a

Gambar 2.7 Contoh Graf Berbobot Tersambung

Hasil pelaksanaan baris ke 2-4 dari algoritma 2.6, L(a) = 0, L(b) = L(c) = L(d) = L(e)

= L(f) = L(g) = L(z) =∞. Pada baris ke 7 z tidak dilingkari. Kita lanjutkan ke baris 9,

di mana kita memilih verteks a, verteks tak dilingkari dengan label terkecil, dan

melingkarinya. Pada baris 11 dan 12 kita perbarui setiap verteks tak terlinkari, b dan

f, yang berdekatan dengan a. Kita dapatlkan label-label baru

L(b) = min{∞, 0+2} = 2, L(f) = min{∞, 0+1} = 1.

Sampai pada bagian ini, kita kembali ke baris 7. Karena z tak dilingkari, kita

lanjutkan ke baris 9, di mana kita memilih verteks f, verteks tak dilingkari dengan

label terkecil, dan melingkarinya. Pada baris 12 dan 13 kita perbarui setiap label dari

verteks tak dilingkari, d dan g, yang berdekatan dengan f. Kita dapatkan label-label

baru

L(d) = min{∞, 1+3} = 4, L(f) = min{∞, 1+5} = 6.

Sampai pada bagian ini, kita kembali ke baris 7. Demikian seterusnya dan pada akhir

algoritma, z dilabeli 5, menyatakan panjang lintasan terpendek dari a ke z adalah 5.

(28)

2.4.2 Algoritma Floyd-Warshall

Algoritma floyd-warshall membandingkan semua kemungkinan lintasan pada graf untuk setiap sisi dari semua simpul. Menariknya, algoritma ini mampu

mengerjakan proses perbandingan ini sebanyak V3. hal tersebut bisa terjadi karena

adanya perkiraan pengambilan keputusan pada setiap tahap antara dua simpul, hingga

perkiraan tersebut diketahui sebagai nilai optimal.

Pseudocode

sumber http://www.id.wikipedia.org/wiki/HuffAlgoritma_floyd-warshall

Gambar 2.8 Pseudocode Algoritma Floyd-Warshall

Misalkan terdapat suatu graf berbobot yang mempresentasikan kondisi

keterhubungan antar kota di suatu daerah, dengan ilustrasi sebagai berikut:

(29)

Misalkan seseorang akan melakukan perjalanan dari kota A ke kota C dengan

menerapkan algoritma floyd-warsahall untuk mencari jalur terpendek dari kota A ke

C.

Tahap 1:

Tabel 2.2 Penyelesaian Algoritma Floyd-Warshall Tahap 1 Solusi

S

Jarak (f1) Awal(x1)

B 33 A F 30 A H 34 A

Dari table diatas dapat kita lihat kota-kota yang terhubung dengan kota A yaitu

B(33km), F(30km), H(34km).

Tahap 2:

Table 2.3 Penyelesaian Algoritma Floyd-Warshall Tahap 2

Total Jarak ke Solusi

B F H Jarak(f2) Awal(x2)

C 74 90 ∞ 74 B

E ∞ 56 ∞ 26 F

G ∞ 94 89 89 H

Tahap 2 penyelesaian di atas menunjukkan jalur terpendek dari kota A ke kota C

dengan jarak 74km (A-B-C).

2.4.3 Algoritma Bellman-Ford

Algoritma Bellman-Ford menghitung jarak terpendek (dari satu sumber) pada sebuah di graf berbobot. Maksudnya dari satu sumber ialah bahwa ia menghitung

(30)

negatif. Maka Algoritma Bellman-Ford hanya digunakan jika ada sisi berbobot negatif. Algoritma Bellman-Ford menggunakan waktu sebesar O(V.E), di mana V dan E adalah banyaknya sisi dan titik.

pseudocode

Gambar 2.10 Pseudocode Algoritma Bellman-ford

2.5 Java 2 Micro Edition (J2ME)

Menurut Raharjo dan Heryanto (2007), Java adalah bahasa pemrograman

yang disusun oleh James Gosling dan dibantu oleh rekan-rekannya seperti Patrick

Naughton, Chris Warth, Ed Frank, dan Mike Sheridan pada tahun 1991 di suatu

perusahaan perangkat lunak bernama Sun Microsystems. Bahasa pemrograman ini

mula-mula diinisialisasi dengan nama “Oak”, namun pada tahun 1995 diganti

(31)

Alasan utama pembentukan bahasa Java adalah untuk membuat

aplikasi-aplikasi yang dapat diletakkan di berbagai macam perangkat elektronik, seperti

microwave oven dan remote control, sehingga Java harus bersifat portable atau yang sering disebut dengan platform-independent (tidak tergantung pada platform). Itulah yang menyebabkan dalam dunia pemrograman java, dikenal adanya istilah ‘write once, run everywhere’, yang berarti kode program hanya ditulis sekali, namun dapat dijalankan di bawah platform manapun, tanpa harus melakukan perubahan kode program. Sun Microsystems telah mendefinisikan tiga buah edisi dari Java 2, yaitu

sebagai berikut:

1. Java 2 Standard Edition (J2SE), yang digunakan untuk mengembangkan aplikasi-aplikasi desktop dan applet (aplikasi Java yang dapat dijalankan di dalam browser web).

2. Java 2 Enterprise Edition (J2EE), Merupakan superset dari J2SE yang

memperbolehkan untuk mengembangkan aplikasi-aplikasi berskala besar, yaitu

dengan pembuatan aplikasi-aplikasi di sisi server dengan mengunakan EJBs (Enterprise JavaBeans), aplikasi web dengan menggunakan Servlet dan JSP (Java Server Pages) dan teknologi lainnya seperti CORBA (Common Object Request Broker Architecture) dan XML (Extensible Markup Language).

3. Java 2 Micro Edition (J2ME), merupakan subset dari J2SE yang digunakan untuk menangani pemrograman di dalam perangkat-perangkat kecil, yang tidak

memungkinkan untuk mendukung implementasi dari J2SE secara penuh.

J2ME merupakan sebuah kombinasi yang terbentuk antara sekumpulan

(32)

dengan ruang memori terbatas. Kombinasi tersebut kemudian digunakan untuk

melakukan pembuatan aplikasi-aplikasi yang dapat berjalan pada mobile device.

2.5.1 Midlet

MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah

bagian dari kelas javax.microedition.midlet. MIDlet yang didefinisikan pada MIDP.

MIDlet berupa sebuah kelas abstrak yang merupakan sub kelas dari bentuk dasar

aplikasi sehingga antarmuka antara aplikasi J2ME dan aplikasi manajemen pada

perangkat dapat terbentuk.

2.5.2 Siklus Hidup Aplikasi J2ME

Application Management Software (AMS) merupakan lingkungan tempat sebuah Midlet dapat di-install, dijalankan, dihentikan maupun di-uninstall. AMS akan membuat instance baru dari Midlet dan dapat mengontrol keadaannya, yaitu dengan cara menjalankan (start), mengistirahatkan (pause) maupun menghentikannya (destroy) secara langsung oleh dirinya sendiri.

Terdapat tiga buah method yang harus diimplementasikan oleh setiap Midlet. Dengan kata lain, setiap Midlet yang dibuat harus memilik ketiga buah method

tersebut. Adapun method-method tersebut adalah startApp(), pauseApp(), destroyApp(). Setiap Midlet dapat berada dalam salah satu keadaan (state) berikut,: Pause, Active, maupun Destroyed. Gambar Siklus berikut ini akan mengilustrasikan

ketiga buah keadaan tersebut dan pada saat kapan Midlet akan berada dalam keadaan

(33)

Sumber e-zest.net/j2me.html

Gambar 2.11 Siklus Hidup Midlet

Tampak pada Gambar 2.11 bahwa pada saat pembuatan Midlet baru,

mula-mula Midlet akan berada dalam keadaan Paused. Apabila proses pembuatan Midlet gagal atau mengakibatkan kesalahan, maka Midlet akan langsung berada pada

keadaan Destroyed. Namun apabila proses pembuatan Midlet berjalan dengan baik, maka setelah Midlet dijalankan, maka AMS secara otomatis akan mengeksekusi

methodstartApp(), method yang berfungsi untuk menjalankan Midlet dan hal ini akan mengubah MIDlet untuk berada dalam keadaan Active dan dapat diubah kembali menjadi keadaan Paused melalui pemanggilan method pauseApp(), method yang berfungsi untuk menghentikan Midlet sejenak atau diubah menjadi keadaan

Destroyed melalui pemanggilan method destroyApp(). Sebagai contoh, pada saat Midlet akan mengalami perubahan keadaan, yaitu dari Active menjadi Destroyed, atau pada saat Midlet berada pada kedaan Paused melalui pemanggilan method

(34)

2.5.3 J2ME Configuration

Untuk mendukung berbagai jenis produk ponsel dan PDA yang sesuai dengan

skopa J2ME, Sun Microsystem memperkenalkan konfigurasi pada J2ME yang sampai

saat ini terdapat dua konfigurasi yaitu :

1. CLDC (Connected Limited Device Coniguration)

CLDC atau Connected Limited Device Coniguration adalah perangkat dasar J2ME, spesifikasi dasar yang berupa library dan API yang diimplementasikan pada J2ME, seperti yang digunakan dalam telephone seluler, pager, dan PDA. Perangkat

tersebut dibatasi dengan keterbatasan memory, sumber daya, dan kemampuan

memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal dari package,

kelas,dan sebagai fungsi Java Virtual Machine yang dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat-alat tersebut, JVM

yang digunakan disebut KVM (Kilobyte Virtual Machine). 2. CDC (Connected Device Configuration)

CDC atau Connected Device Configuration adalah spesifikasi dari konfigurasi dari J2ME yang memiliki standarisasi. Implementasi CDC pada J2ME adalah source code yang menyambungkan dengan macam-macam platform. Berikut adalah perbedaan CLDC dan CDC.

Perbedaan CDC dan CLDC dapat dilihat pada table 2.3

Tabel 2.4 Perbandingan CDC dan CLDC

Sumber plex.coe.psu.ac.th/java/j2me/intro.html

CDC CLDC

Implementasi J2SE Seluruh feature Susbset Java Virtual Machine CVM KVM

(35)

2.5.4 Mobile Information Device Profil (MIDP)

MIDP atau Mobile Information Device Profile adalah spesifikasi untuk profil J2ME. MIDP memiliki lapisan di atas CLDC, API tambahan untuk daur hidup

aplikasi, antarmuka, jaringan, dan penyimpanan persisten. Pada saat ini terdapat

MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0 terdapat dukungan

memainkan tone, tone sequence, dan file WAV walaupun tanpa adanya Mobile Media API (MMAPI).

Profil merupakan bagian perluasan dari konfigurasi. Artinya, selain

sekumpulan kelas yang terdapat pada konfigurasi, terdapat juga beberapa kelas-kelas

spesifik yang didefinisikan lagi dalam profil. Dengan kata lain, profil akan membantu

secara fungsional yaitu dengan menyediakan kelas-kelas yang tidak terdapat pada

level konfigurasi

Adapun profil yang sangat popular penggunaannya adalah profil yang

disediakan oleh Sun Microsystems, yaitu yang dinamakan dengan MIDP. Beberapa profil yang tersedia untuk kebutuhan-kebutuhan spesifik lainnya:

- Personal Digital Assistant Profile (PDAP), yaitu profil untuk PDA yang memperluas fungsi-fungsi pada konfigurasi CLDC dan digunakan khusus

untuk menambahkan kemampuan-kemampuan lebih apabila dibandingkan

dengan penggunaan MIDP

- Foundation Profile, yaitu profil yang digunakan untuk konfgurasi CDC. Profil ini menambahkan beberapa kelas dari J2SE ke dalam konfigurasi CDC, dan

(36)

- Personal Profile, yaitu profil yang mendefinisikan ulang personal Java sebagai profil yang dapat digunakan sebagai profil dalam J2ME. Profil ini

merupakan hasil perluasan dari Foundation profile.

- Remote Method Invocation (RMI), yaitu profil yang menambakan dukungan RMI ke dalam konfigurasi CDC.

2.5.5 Linked List

Linked list lebih tepat disebut sebagai sebuah STRUKTUR DATA, daripada

sebagai sebuah tipe data karena linked list berhubungan dengan alokasi penyimpanan

data di memori, bukan melakukan operasi terhadap isi datanya. Secara struktur,

linked list hampir sama dengan array/ larik  tersusun dari elemen/ data yang banyak

dan bersambung. Namun linked list bersifat DINAMIS, sedangkan array bersifat

statis. Dikatakan dinamis karena alokasi memori yang dipakai bisa bertambah dan

berkurang sesuai dengan kebutuhan program.

Gambar 2.12 Linked List

2.5.5.1 MANFAAT/ PENGGUNAAN

Struktur data linked list sering dipakai dalam konsep ADT. Misalkan untuk

mendefinisikan/ merepresentasikan Stack, Queue, Tree, Graph dsb - tentu saja yang

(37)

2.5.5.2 BEBERAPA OPERASI DASAR

- Insert Node  memasukkan simpul baru ke dalam linked list

baru = (simpul) malloc(sizeof (struct node)) // siapkan lokasi memorinya baru->info = data // masukkan datanya

baru->next = NULL // set lokasi data selanjutnya adalah NULL if (head == NULL) // pengisian data yg pertama kali

head = baru // semua pointer menunjuk lokasi memori yg sama tail = baru

else // pengisian data berikutnya

tail->next = baru // sambungkan pointer baru ke pointer tail

tail = baru // pointer tail menunjuk alamat yg sama dgn baru

Gambar 2.13 Contoh Proses Insert Linked List

Pada gambar diatas telah dijelaskan setiap langkahnya, mulai dari proses

memasukkan data, pengisian data, serta proses yang menghubungkan pointer satu

dengan yang lainnya.

- View Node  menampilkan semua isi linked list

temp = head // pointer temp dan head menunjuk alamat data yg sama while(temp!=NULL) // selama pointer tidak bernilai NULL

output(temp->info) // tampilkan isi simpul

temp = temp->next // lompat baca simpul selanjutnya

Gambar 2.14 Contoh Proses View Linked List

Pada Gambar 2.14 menjelaskan selama pointer tidak bernilai null proses

tersebut akan menampilkan isi simpul serta simpul selanjutnya.

- Find Node  mencari simpul dengan informasi tertentu dalam linked list

pada gambar 2.15 menjelaskan cara mencari node, mula-mula masukkan data

yang akan dicari, arahkan pointer temp ke alamat yang sama dengan head lakukan

pencarian sampai data yang dicari ditemukan lalu ubah pointer temp dengan alamat

(38)

input(cari) // masukkan data yg akan dicari

temp = head // pointer temp diarahkan ke alamat yg sama dgn head

while((temp!=NULL)&&(temp->info!=cari)) // cari sampai habis

ketemu

temp = temp->next // ubah nilai pointer temp dgn alamat selanjutnya

if(temp->info == cari)

output("Data Ditemukan")

else

output("Data Tidak Ditemukan")

Gambar 2.15 Contoh Proses find Linked List

- Delete Node  menghapus simpul tertentu dari linked list

Pada Gambar 2.16 menjelaskan cara menghapus simpul dari linked list, mula-mula masukkan data yang akan dihapus arahkan pointer temp ke alamat yang

ditunjuk oleh head, proses selanjutnya menemukan data yang akan dihapus dan

apabila telah ditemukan proses tersebut akan menghapus alokasi memori yang sudah

tidak terpakai.

input(hapus) // masukkan data yg akan dihapus

temp = head // arahkan pointer temp ke alamat yg ditunjuk oleh head while((temp!=NULL)&&(temp->info!=hapus)) // temukan data yg akan dihapus prev = temp

temp = temp->next

if(temp->info == hapus) // data ada di dalam linked list

if(temp->next != NULL) // jika data berada pada posisi tengah prev->next = temp->next

(39)

2.5.6 Push Registry

Enrique (2003) mengemukakan bahwa Push Registry adalah suatu mekanisme dalam midlet untuk menghidupkan aplikasi midlet secara otomatis tanpa ada campur

tangan dari pengguna, dengan mengirimkan sinyal tertentu ke handphone sehingga aplikasi di handphone bisa hidup. Sinyal yang dikirimkan bisa berupa sms, socket atau datagram.

Push Registry terletak di dalam klas javax.microedition.io.PushRegistry

pada MIDP 2.0. gambar 2.3 menjelaskan elemen-elemen Push Registry:

Gambar 2.13 Elemen - elemen Push Registry

2.6 Teknologi Nirkabel atau Mobile

Mobile atau biasa disebut dengan telepon genggam adalah perangkat telekomunikasi elektronik yang mempunyai kemampuan dasar yang sama dengan

telepon fixed line konvensional, namun dapat dibawa ke mana-mana (portabel) dan tidak perlu disambungkan dengan jaringan telepon menggunakan kabel (nirkabel;

(40)

GSM (Global System For Mobile Telecommunications) dan sistem CDMA (Code Division Multiple Access).

Selain berfungsi untuk melakukan dan menerima panggilan telepon, handphone

umumnya juga mempunyai fungsi pengiriman dan penerimaan pesan singkat (short message service, SMS). Mengikuti perkembangan teknologi digital, kini ponsel juga dilengkapi dengan berbagai pilihan fitur, seperti bisa menangkap siaran radio dan

televisi, perangkat lunak pemutar audio (mp3) dan video, kamera digital, game, Java,

MIDP, dan layanan internet (WAP, GPRS, 3G). Ada pula penyedia jasa telepon

genggam di beberapa negara yang menyediakan layanan generasi ketiga (3G) dengan

menambahkan jasa videophone, sebagai alat pembayaran, maupun untuk televisi

online di telepon genggam mereka. Sekarang, telepon genggam menjadi gadget yang multifungsi. Selain fitur-fitur tersebut, ponsel sekarang sudah ditanamkan fitur

komputer. Jadi di ponsel tersebut, orang bisa mengubah fungsi ponsel tersebut

menjadi mini komputer.

2.7 Unified Modelling Language (UML)

Dalam suatu proses pengembangan software, analisa dan rancangan telah merupakan terminologi yang sangat tua. Pada saat masalah ditelusuri dan spesifikasi

dinegosiasikan, dapat dikatakan bahwa kita berada pada tahap rancangan. merancang

adalah menemukan suatu cara untuk menyelesaikan masalah, salah satu tool/model

untuk merancang pengembangan software yang berbasis object-oriented adalah UML. Alasan mengapa UML digunakan adalah, pertama, scalability dimana objek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua,

(41)

Sebagaimana dalam tulisan pertama, penulis menjelaskan konsep mengenai obyek,

OOA&D (Obyek Oriented Analyst/ Design) dan pengenalan UML, maka dalam tulisan kedua ini lebih ditekankan pada cara bagaimana UML digunakan dalam

merancang sebuah pengembangan software yang disertai gambar atau contoh dari sebuah aplikasi. (http:www.staffsite.gunadarma.ac.id/wsilfi/index.php)

2.7.1 Use Case

Sebuah use case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan sistem. Dalam fase requirements, model use case mengambarkan sistem sebagai sebuah kotak hitam dan interaksi antara aktor dan sistem dalam suatu bentuk

naratif, yang terdiri dari input user dan respon-respon sistem. Setiap use case

menggambarkan perilaku sejumlah aspek sistem, tanpa mengurangi struktur

internalnya. Selama pembuatan model use case secara pararel juga harus ditetapkan obyek-obyek yang terlibat dalam setiap use case.

Perhatikan satu contoh sederhana dari proses perbankan, yaitu mesin teller

otomatis (Automated Teller Machine-ATM) yang memberikan kemudahan pada

customer - nya untuk mengambil uang dari rekening bank secara langsung. Pada proses ini terdapat satu aktor, yaitu ATM Customer dan satu use case, yaitu Penarikan Dana. Proses ini dapat dilihat pada Gambar 2.6. Use case Penarikan Dana menggambarkan urutan interaksi antara customer dengan sistem, diawali ketika

customer memasukan kartu ATM ke dalam mesin pembaca kartu dan akhirnya

(42)

Gambar 2.6 Contoh Aktifitas Aktor dan Use Case

2.7.2 Aktor

Sebuah aktor mencirikan suatu bagian outside user atau susunan yang berkaitan dengan user yang berinteraksi dengan sistem [Rumbaugh, Booch, dan

Jacobson 1999]. Dalam model use case, aktor merupakan satu-satunya kesatuan

eksternal yang berinteraksi dengan sistem.

Terdapat beberapa variasi bagaimana aktor dibentuk [Fowler dan Scott 1999].

Sebuah aktor sering kali merupakan manusia (human user). Pada sejumlah sistem informasi, manusia adalah satu-satunya aktor. Dan mungkin saja dalam sistem

informasi, seorang aktor bisa saja menjadi suatu sistem eksternal. Pada aplikasi

real-time dan distribusi, sebuah aktor bisa saja menjadi satu perangkat eksternal I/O atau

sebuah alat pengatur waktu. Perangkat eksternal I/O dan pengatur waktu aktor secara

khusus lazimnya berada dalam real-time yang tersimpan dalam sistem (real-time embedded systems), sistem berinteraksi dengan lingkungan eksternal melalui sensor dan aktuator.

Primary actor (aktor utama) memprakarsai sebuah use case. Jadi, suatu primary aktor memegang peran sebagai proaktif dan yang memulai aksi dalam sistem.

(43)

sebagai perangkat eksternal I/O atau pengatur waktu, penerima utama dari use case

bisa menjadi secondary human aktor yang menerima sejumlah informasi dari sistem. Aktor manusia bisa saja menggunakan berbagai perangkat I/O untuk berinteraksi fisik

dengan sistem. Aktor manusia dapat berinteraksi dengan sistem melalui perangkat

standar I/O, seperti keyboard, display, atau mouse. Aktor manusia bisa juga

berinteraksi dengan sistem melalui perangkat non-standar I/O seperti

bermacam-macam sensor. Dalam keseluruhan hal tersebut, manusia merupakan aktor dan

perangkat I/O adalah bukan aktor.

Perhatikan beberapa contoh human aktor (aktor manusia). Pada sistem

perbankan, satu contoh aktor adalah manusia yang berperan sebagai teller yang

berinteraksi dengan sistem melalui perangkat standar I/O, seperti keyboard, display,

atau mouse. Contoh lainnya adalah manusia yang berperan sebagai customer yang berinteraksi dengan sistem melalui mesin teller otomatis (ATM). Dalam hal ini,

customer berinteraksi dengan sistem dengan menggunakan beberapa perangkat I/O,

termasuk perangkat pembaca kartu (card reader), pengeluar uang (cash dispenser), dan pencetak tanda terima (receipt printer), ditambah lagi keyboard dan display.

Pada beberapa kasus, bagaimana pun juga sebuah aktor bisa saja berupa

perangkat I/O. Hal ini bisa terjadi ketika sebuah use case tidak melibatkan manusia,

seperti yang sering terjadi pada aplikasi-aplikasi real-time. Dalam hal ini, I/O aktor berinteraksi dengan sistem melalui sebuah sensor. Contoh aktor yang merupakan

perangkat input adalah Arrival Sensor pada Sistem Kontrol Elevator. Sensor ini mengidentifikasi elevator tersebut pada saat hendak mencapai lantai dan perlu

(44)

elevator (human passenger) yang berinteraksi dengan sistem melalui tombol-tombol nomor pada tingkat lantai dan tombol-tombol elevator. Input dari aktor secara aktual

dideteksi melalui sensor-sensor tombol lantai dan sensor-sensor tombol elevator

berturut-turut.

Aktor dapat pula menjadi sebuah alat pengukur waktu yang secara periodik

mengirimkan pengukuran waktu kejadian (timer events) pada sistem. Use caseuse case secara periodik diperlukan ketika beberapa informasi perlu di-output oleh sistem pada suatu basis reguler. Hal ini sangat penting dalam sistem-sistem real-time, dan

juga sangat berguna dalam sistem informasi. Walaupun sejumlah metodologi

menganggap pengukur waktu merupakan hal internal bagi sistem, dan akan lebih

berguna dalam desain aplikasi real-time untuk memperhatikan pengukur-pengukur

waktu sebagai eksternal logis bagi sistem dan menganggapnya sebagai primary aktor

yang memulai aksi dalam sistem. Contohnya, pada sistem monitoring mobil,

beberapa use case di-inisialisasi dengan suatu aktor pengukur waktu. Sebagai contoh dapat dilihat pada Gambar 2.7 Timer aktor mengawali Calculate Trip Speeduse case, yang secara periodik menghitung rata-rata kecepatan melalui suatu jalan/ jejak dan

menampilkan nilai ini ke driver. Dalam hal ini, pengukur waktu merupakan primary

aktor (aktor utama) dan driver merupakan secondary aktor (aktor kedua).

Gambar 2.7 Contoh Aktor Pengukur Waktu

Suatu aktor bisa juga menjadi sistem eksternal yang melakukan inisiatif

(45)

Satu contoh aktor sistem eksternal adalah pabrik robot dalam Automation System. Robot mengawali proses dengan use case Generate Alarm dan Notify, robot menggerakkan alarm conditions yang dikirim ke operator pabrik yang berkepentingan, yang telah terdaftar untuk menerima alarms. Dalam use case ini,

robot merupakan primary aktor yang mengawali inisiatif use case, dan operator

merupakan secondary aktor yang menerima alarms.

2.7.3 Identifikasi Use Case

Sebuah use case dimulai dengan masukan/input dari seorang aktor. Use case

merupakan suatu urutan lengkap kejadian-kejadian yang diajukan oleh seorang aktor,

dan spesifikasi interaksi antara aktor dengan sistem. Use case yang sederhana hanya

melibatkan satu interaksi/hubungan dengan sebuah aktor, dan use case yang lebih

kompleks melibatkan beberapa interaksi dengan aktor. Use cases yang lebih

kompleks juga melibatkan lebih dari satu aktor.

Untuk menjabarkan use case dalam sistem, sangat baik bila dimulai dengan

memperhatikan aktor dan actions/aksi yang mereka lakukan dalam sistem. Setiap use

case menggambarkan suatu urutan interaksi antara aktor dengan sistem. Sebuah use

case harus memberikan sejumlah nilai pada satu aktor.

Kemudian, kebutuhan fungsional sistem dijelaskan dalam use case yang

merupakan suatu spesifikasi eksternal dari sebuah sistem. Bagaimanapun juga, ketika

membuat use case, sangatlah penting menghindari suatu dekomposisi fungsional yang

dalam beberapa use case kecil lebih menjelaskan fungsi-fungsi individual sistem

daripada menjelaskan urutan kejadian yang memberikan hasil yang berguna bagi

(46)

Perhatikan lagi contoh pada perbankan. Disamping penarikan melalui ATM,

ATM Customer, aktor juga bisa menanyakan jumlah rekening atau mentransfer dana antar dua rekening. Karena terdapat fungsi-fungsi yang berbeda yang diajukan oleh

customer dengan hasil-hasil guna yang berbeda, fungsi-fungsi pertanyaan dan

pentransferan harus dibuat sebagai use case yang terpisah, daripada menjadi bagian

dari original use case. Oleh karena itu, customer dapat mengajukan tiga use case seperti yang dapat dilihat di Gambar 2.8 Withdraw Funds (Penarikan dana), Query Account, dan Transfer Funds (Pentransferan Dana).

Gambar 2.8 Aktor dan Use Case Dalam Sistem Bank

Urutan utama use case menjelaskan urutan interaksi yang paling umum antara

aktor dan sistem. Dan mungkin saja terdapat cabang-cabang urutan use case utama,

yang mengarah pada berkurangnya frekuensi interaksi antara aktor dengan sistem.

Deviasi-deviasi dari urutan utama hanya dilaksanakan pada beberapa situasi,

contohnya jika aktor melakukan kesalahan input pada sistem. Ketergantungan pada

aplikasi kebutuhan, alternatif ini memecahkan use case dan kadang-kadang bersatu

kembali dengan urutan utama. Cabang-cabang alternatif digambarkan juga dalam use

(47)

Dalam use case Withdraw Funds, urutan utama adalah urutan tahap-tahap dalam keberhasilan pelaksanaan penarikan (withdrawal). Cabang-cabang alternatif digunakan untuk mengarahkan berbagai error cases, seperti ketika kartu ATM tidak dikenali atau dilaporkan telah hilang dan lain sebagainya.

2.7.4 Dokumentasi Model Use Case

Use case didokumentasi dalam use case model sebagai berikut: 1. Use Case Name. Setiap use case diberi nama.

2. Summary. Deskripsi singkat use case, biasanya satu atau dua kalimat

3. Dependency. Bagian ini menggambarkan apakah use case yang satu

tergantung pada use case yang lain, dalam arti apakah use case tersebut

termasuk pada use case yang lain atau malah memperluas use case lain.

4. Actors. Bagian ini memberikan nama pada actor dalam use case. Selalu

terdapat use case utama (primary use case) yang memulai use case. Disamping

itu terdapat juga secondary use case yang terlibat dalam use case. Contohnya,

dalam use case Withdraw Funds, ATM Customer adalah actor-nya.

5. Preconditions. Satu atau lebih kondisi harus berjalan dengan baik pada

permulaan use case; contohnya mesin ATM yang tidak jalan, menampilkan

pesan Selamat Datang.

6. Deskripsi. Bagian terbesar dari use case merupakan deskripsi naratif dari

urutan utama use case yang merupakan urutan yang paling umum dari

interaksi antara aktor dan sistem. Deskripsi tersebut dalam bentuk input dari

(48)

BAB III

ANALISA DAN PERANCANGAN SISTEM

3.1 Analisa sistem

Aplikasi penentuan rute jalur terpendek di kota Surabaya menggunakan

perangkat mobile seperti handphone di kembangkan dengan cara membaca graf kota Surabaya yang kemudian dapat di teruskan dengan pencarian jalur terpendek yang

akan dilalui oleh pengguna. Graf kota Surabaya tersebut diperoleh dengan cara melihat peta kota Surabaya yang berskala 1:20.000, sedangkan untuk jarak dari

masing-masing jalan protokol yang ada di kota Surabaya di peroleh dengan

pengukuran secara manual peta kota Surabaya yang memiliki skala yang sama.

Untuk pembacaan graf dan penentuan jalur terpendek kota Surabaya menggunakan algoritma dijkstra, yaitu apabila suatu jalur terpadat beberapa lintasan yang dapat ditempuh maka algoritma dijkstra akan memilih jalur terpendek disetiap lintasan dan jika terdapat beberapa lintasan lagi di langkah selanjutnya maka

algoritma dijkstra akan memilih jalur terpendek yang harus dilalui dilangkah tersebut, cara tersebut dilakukan sampai diperoleh lokasi yang diinginkan. Setalah Jalur

terpendek diperoleh, aplikasi akan mengeluarkan output berupa teks yang menunjukkan jalur-jalur yang harus ditempuh untuk sampai pada tempat yang dituju

oleh pengguna.

3.2 Perancangan sistem

Perancangan sistem berisikan penjelasan mengenai cara kerja sistem secara

umum, yang meliputi use case diagram, class diagram, activity diagram, sequence

(49)

diagram serta dibuat perancangan antar muka aplikasi. Diharapkan dapat memperjelas dan memberi petunjuk pada aplikasi yang dikembangkan.

3.2.1 Deskripsi Umum Sistem

a. Pengguna terlebih dahulu menginstall aplikasi pada Handphone yang mendukung Java MIDP 2.0

b. Setelah aplikasi dijalankan pengguna dapat menginputkan posisi mula-mula dan

posisi yang akan dituju pada form yang telah disediakan.

c. Pada tahap ini setelah posisi awal dan tujuan diketahui maka aplikasi akan

membaca graph kota Surabaya, kemudian aplikasi akan memulai mencari jalur terpendek dari tempat awal ke tempat tujuan menggunakan algoritma dijkstra.

d. Jika jalur terpendek telah diperoleh, aplikasi akan menampilkan output berupa text yang menjelaskan jalan-jalan yang harus ditempuh untuk sampai ketempat

tujuan.

3.2.2 Kebutuhan Sistem

Dari deskripsi umum sistem diatas dapat diketahui fokus utama dari sistem

berada pada aplikasi J2ME/MIDlet yang dibuat , sedangkan graph kota surabaya hanya digunakan untuk menentukan jalur/panjang lintasan yang di implementasikan

dalam suatu tabel database. Dengan demikian kebutuhan sistem dapat dikategorikan menjadi 2 bagian yaitu kebutuhan pengguna dan kebutuhan database. Dalam hal ini

(50)

3.2.2.1 Kebutuhan Pengguna

Dalam memenuhi kebutuhan pengguna mengenai interaksi dengan sistem dan

untuk mengetahui kebutuhan-kebutuhan apa saja yang sangat berpengaruh, maka

perlu dijabarkan kebutuhan apa saja yang akan dibutuhkan oleh pengguna, antara

lain:

a. Handphone atau perangkat mobile yang berbasis java MIDP 2.0. b. Menu untuk inputan posisi mula-mula dan posisi tujuan

c. Menu untuk output berupa teks yang menjelaskan jalur yang harus

ditempat agar sampai ketempat yang dituju.

3.2.2.2 Kebutuhan Database

Ada beberapa algoritma untuk menentukan jalur terpendek antara lain

algoritma Dijkstra, algoritma Floyd Warshall, algoritma Bellman ford. Dari beberapa algoritma tersebut yang cocok diterapkan pada aplikasi ini adalah algoritma Dijkstra

karena algoritma menghitung jarak yang tidak bernilai negatif sedangkan algoritma

jalur terpendek lainnya juga menghitung jarak yang bernilai negatif.

Untuk memaksimalkan kinerja aplikasi ini maka dibuat tabel untuk

menyimpan panjang masing-masing jalan protokol yang ada di kota Surabaya. Jarak

masing-masing jalan protokol yang ada di Surabaya diperoleh dengan cara

pengukuran secara manual menggunakan peta Surabaya yang berskala 1:20.000. Dari

analisa keterangan diatas aplikasi ini nantinya akan hanya membutuhkan 1 tabel saja

(51)

Gambar 3.1 Model Data Fisik Aplikasi

Setalah dilakukan pengukuran panjang jalan secara manual pada peta yang

berskala 1:20.000, didapatkan ada 128 jalan protokol yang ada dikota Surabaya

beserta panajang masing-masing jalan.

Tabel 3.1 Contoh Nama-Nama Jalan Protokol Dikota Surabaya

(52)

Berikut adalah tabel yang dibuat dari graf jalan protokol peta kota Surabaya

yang berskala 1:20.000. tabel ini akan digunakan selama proses pencarian jalur

terpendek dilakukan.

Tabel 3.2 Contoh Graf Jalan Protokol Kota Surabaya

Id Asal Tujuan Dam Nama Id Asal Tujuan Dam Nama

1 a b 96 Kutisari 11 f g 103 Sulawesi 2 b a 96 Kutisari 12 g f 103 Sulawesi 3 b c 56 Jemursari 13 f h 101 Raya nginden 4 c b 56 Jemursari 14 h f 101 Raya nginden 5 c d 62 Raya rungkut 15 h i 102 Raya ngagel 6 d c 62 Raya rungkut 16 i h 102 Raya ngagel 7 a e 97 Wadung asri 17 g j 125 Ngagel 8 e a 97 Wadung asri 18 j g 125 Ngagel 9 e f 98 Sumatra 19 j k 53 Manyar 10 f e 98 Sumatra 20 k J 53 Manyar

3.2.3 Use Case Diagram

Diagram berikut menjelaskan tentang aktivitas yang bisa dilakukan oleh

pengguna aplikasi jalur terpendek.

Input asal-tujuan

<<include>>

Pilih jalan User

output jalur terpendek

(53)

Input asal-tujuan merupakan aktivitas yang dilakukan oleh pengguna dalam penentuan jarak terpendek. Untuk menentukan jarak terpendek antara jalan raya di

kota Surabaya, ketikkan nama jalan tempat asal kita, kemudian dilanjutkan dengan

mengetikkan tempat jalan raya yang menjadi tempat tujuan kita. Pilih jalan

merupakan aktivitas dimana user dapat memilih tempat asal dan tempat tujuan tanpa harus mengetikkan nama jalan terlebih dahulu. Output jalur terpendek merupakan hasil yang diperoleh setelah proses penentuan jalur terpendek dijalankan. Dalam hal

ini hasil yang diperoleh berupa teks yang menunjukkan jalan-jalan yang harus

ditempuh untuk sampai ke tempat tujuan.

3.2.4 Activity Diagram

Diagram berikut menjelaskan tentang activity diagram yang ada pada aplikasi

penentuan jalur terpendek.

(54)

Untuk memulai aplikasi ini dimulai dengan membuka pilihan menu dan pilih

menu utama kemudian pilih menu jalur terpendek, lalu tulis tempat asal dengan cara

mengetik langsung atau membaca dari memori telpon, setelah pengguna mengetikkan

tempat asal pengguna harus mengisi tempat tujuan dengan cara yang sama. Pada

proses ini aplikasi akan mulai menentukan jalur terpendek pada proses background

yang hasilnya dapat langsung dilihat pada menu utama serta disimpan pada memori

telepon.

3.2.5 Sequence Diagram

: User menu utama background penentuan jalur terpendek

pilih menu utama

input data

algoritma dijkstra

info jalur terpendek

Gambar 3.4 Sequence Diagram

Diagram diatas menunjukkan urutan proses yang dikerjakan oleh aplikasi

(55)

oleh aplikasi dan hasil yang diperoleh berupa info jalur terpendek dilakukan dalam

beberapa tahap.

3.2.6 Proses Perancangan Latar

Perancangan antarmuka merupakan perancangan halaman aplikasi yang

nantinya akan berinteraksi secara langsung dengan pengguna. Berikut perancangan

yang akan dibuat:

1. Antarmuka menu utama merupakan tampilan awal ketika memasuki

aplikasi, pada form ini terdapat dua tombol, yaitu tombol select dan tombol close. pengguna dapat memilih aktifitas apa yang akan dilakukan. Jika user ingin menjalankan aplikasi maka pilih tombol select, untuk mengakhiri penggunaan aplikasi pilih tombol close.

Gambar 3.5 Antarmuka Menu Utama

Terdapat beberapa button yang dapat dimanfaatkan oleh pengguna untuk menjalankan aplikasi yaitu:

(56)

b. Nama jalan, digunakan untuk melihat jalan-jalan protokol yang ada di kota Surabaya.

c. Select, untuk memilih button yang ada d. Exit, command untuk keluar dari aplikasi

2. Antarmuka penentuan jalur terpendek, form yang digunakan untuk

menentukan asal dan tujuan dua tempat yang akan dicari jalur tercepat

untuk melewatinya. Untuk kenyamanan pengguna form dibuat

sesederhana mungkin.

Gambar 3.6 Antarmuka Penentuan Jalur Terpendek

Pada form ini terdapat 2 field. Field tersebut antara lain: a. Field asal, untuk menginputkan posisi mula-mula

b. Field tujuan, untuk menginputkan posisi yang dituju oleh pengguna

Serta terdapat beberapa button yang digunakan untuk proses atau tindakan selanjutnya, menu dan back:

a. Menu, untuk memproses fields yang berada pada form tersebut, memasukkan data yang akan di proses, serta menghapus secara langsung

(57)

b. Back, tombil ini dapat digunakan untuk kembali pada form utama atau keluar dari aplikasi.

3. Antarmuka hasil dari penentuan jalur terpendek, form yang digunakan

untuk menampilkan hasil yang diperoleh, setelah aplikasi memproses data

yang telah di input.

Gambar 3.7 Antarmuka Hasil Penentuan Jalur Terpendek

Pada form ini terdapat beberapa field yang berada sebelah atas form, field

tersebut berfungsi untuk menerangkan proses sebelumnya yaitu, jalan asal dan

jalan tujuan. Misalnya, field pertama berisi jalan Kertajaya dan field kedua berisi jalan Pahlawan, hal ini berarti jarak terpendek dari jalan kertajaya ke

jalan pahlawan. Dan diberikan penjelasan secara detail pada field penjelasan tentang jalan-jalan yang harus dilalui

Form ini juga memiliki beberapa button yaitu: a. Menu, didalamnya terdapat perintah exit b. Back, untuk kembali ke form sebelumnya

(58)

Gambar 3.8 Antarmuka Contoh Output Aplikasi

Pada gambar diatas dapat dilihat output aplikasi yang menjelaskan tentang jalan terpendek antara Jalan Raya Nginden dan Jalan Raya Rungkut. Dan

dibawah nya terdapat sebuah field yang menjelaskan jalan-jalan mana saja yang harus dilalui untuk sampai ke tempat yang dituju dengan jarak yang

terpendek.

4. Antarmuka nama jalan, form ini berisi tentang nama-nama jalan protokol

yang ada di kota Surabaya, form ini dibuat untuk memudahkan

penginputan data yang ada pada form penentuan jalur terpendek.

(59)

Pada form ini hanya terdapat beberapa button, yang didalamnya berisi:

a. Menu, pada button ini ada beberapa action diantaranya memasukkan nama jalan yang akan diproses pada form jalur terpendek.

(60)

BAB IV

HASIL DAN PEMBAHASAN

4.1. Lingkungan Implementasi

Pada bagian ini akan dijelaskan mengenai spesifikasi handphone pada gambar 4.1yang akan digunakan dalam implementasi sistem kali ini.

Gambar 4.1. Spesifikasi Handphone Nokia 6600

Selain handphone, perangkat lain yang digunakan untuk implementasi sistem yaitu laptop dengan spesifikasi berikut:

Perangkat Keras:

- Intel Celeron 2.66 GHZ RAM 512 MB

Perangkat Lunak:

- Microsoft Windows XP SP2

- Java Development Kit 6 Update 2

- NetBeans IDE 6.0

Figur

Gambar 2.10 Pseudocode Algoritma Bellman-ford

Gambar 2.10

Pseudocode Algoritma Bellman-ford p.30
Gambar 2.15 Contoh Proses find Linked List

Gambar 2.15

Contoh Proses find Linked List p.38
Gambar 2.13 Elemen - elemen Push Registry

Gambar 2.13

Elemen - elemen Push Registry p.39
Tabel 3.1 Contoh Nama-Nama Jalan Protokol Dikota Surabaya

Tabel 3.1

Contoh Nama-Nama Jalan Protokol Dikota Surabaya p.51
Tabel 3.2 Contoh Graf Jalan Protokol Kota Surabaya

Tabel 3.2

Contoh Graf Jalan Protokol Kota Surabaya p.52
Gambar 3.3 Activity Diagram

Gambar 3.3

Activity Diagram p.53
Gambar 3.4 Sequence Diagram

Gambar 3.4

Sequence Diagram p.54
Gambar 3.5 Antarmuka Menu Utama

Gambar 3.5

Antarmuka Menu Utama p.55
Gambar 3.7 Antarmuka Hasil  Penentuan Jalur Terpendek

Gambar 3.7

Antarmuka Hasil Penentuan Jalur Terpendek p.57
Gambar 3.8 Antarmuka Contoh Output Aplikasi

Gambar 3.8

Antarmuka Contoh Output Aplikasi p.58
Gambar 3.9 Antarmuka Nama Jalan

Gambar 3.9

Antarmuka Nama Jalan p.58
Gambar 4.1. Spesifikasi Handphone Nokia 6600

Gambar 4.1.

Spesifikasi Handphone Nokia 6600 p.60
Gambar 4.2 Script Data Tabel Graf

Gambar 4.2

Script Data Tabel Graf p.62
Gambar 4.4 Form Daftar Menu Utama

Gambar 4.4

Form Daftar Menu Utama p.64
Gambar 4.5 Form Jalur Terpendek

Gambar 4.5

Form Jalur Terpendek p.64
Gambar 4.6 Contoh Proses Pengisian Data Pada Form Jalur Terpendek.

Gambar 4.6

Contoh Proses Pengisian Data Pada Form Jalur Terpendek. p.65
Gambar 4.9 Form Peringatan

Gambar 4.9

Form Peringatan p.67
Gambar 5.3 Spesifikasi Nokia K530i

Gambar 5.3

Spesifikasi Nokia K530i p.68
Gambar 5.9 Uninstall bagian 2

Gambar 5.9

Uninstall bagian 2 p.72
Gambar 5.15 Teks Field Belum Diisi

Gambar 5.15

Teks Field Belum Diisi p.75
Gambar 5.14 Teks Field Diketikkan Secara Manual

Gambar 5.14

Teks Field Diketikkan Secara Manual p.75
Gambar 5.16 dibawah ini.

Gambar 5.16

dibawah ini. p.76
Gambar 5.16 Proses Mencari Jarak Terpendek kutisari – letjen suprapto

Gambar 5.16

Proses Mencari Jarak Terpendek kutisari – letjen suprapto p.77
Gambar 5.17 Proses Mencari Jarak Terpendek Jagir Wonokromo – Raya Jend.

Gambar 5.17

Proses Mencari Jarak Terpendek Jagir Wonokromo – Raya Jend. p.77
Gambar 5.18 Proses Mencari Jarak Terpendek Raya Panjang Jiwo – Rungkut Tengah

Gambar 5.18

Proses Mencari Jarak Terpendek Raya Panjang Jiwo – Rungkut Tengah p.78
Gambar 5.19 Proses Mencari Jarak Terpendek Jemur Sari – Rungkut Tengah

Gambar 5.19

Proses Mencari Jarak Terpendek Jemur Sari – Rungkut Tengah p.79
Gambar 5.19 adalah proses uji coba pencarian jarak terpendek dari jalan

Gambar 5.19

adalah proses uji coba pencarian jarak terpendek dari jalan p.79
Gambar 5.21 Proses Mencari Jarak Terpendek Letjen Suprapto – Kutisari

Gambar 5.21

Proses Mencari Jarak Terpendek Letjen Suprapto – Kutisari p.80
Gambar 5.22 Proses Mencari Jarak Terpendek Raya Panjang Jiwo – Letjen Suprapto

Gambar 5.22

Proses Mencari Jarak Terpendek Raya Panjang Jiwo – Letjen Suprapto p.81
Gambar 5.23 adalah proses uji coba pencarian jarak terpendek dari jalan jemur

Gambar 5.23

adalah proses uji coba pencarian jarak terpendek dari jalan jemur p.82

Referensi

Memperbarui...