MIDLET
SKRIPSI
Disusun Oleh :
SAEFUDDIN ESA
NPM. 0434010193
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN“JAWA TIMUR
SURABAYA
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
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
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
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
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.
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)
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).
DAFTAR ISI
ABSTRAK... I
KATA PENGANTAR... ii
UCAPAN TERIMA KASIH... iii
DAFTAR ISI... iv
DAFTAR GAMBAR... vii
DAFTAR TABEL... ix
BAB I PENDAHULUAN... 1
1.1. Latar Belakang... 1
1.2. Perumusan Masalah... 2
1.3. Batasan Masalah... 3
1.4. Tujuan... 3
1.5. Manfaat... 3
1.6. Metodologi pembuatan skripsi... 1.7. Sistematika Penulisan... 4 5 BAB II TINJAUAN PUSTAKA ... 7
2.1. Surabaya... ... 7
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
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
3.2. Perancangan Sistem... 34
3.2.1. Deskripsi Umum Sistem... 35
3.2.2. Kebutuhan Sistem... 35
3.2.2.1. Kebutuhan Pengguna... 36
3.2.2.2. Kebutuhan Database... 36
3.2.3. Use Case Diagram... 38
3.2.4. Activity Diagram... 39
3.2.5. Sequence Diagram... 40
3.2.6. Proses Perancangan Latar... 41
BAB IV HASIL DAN PEMBAHASAN... 46
4.1. Lingkungan Implementasi... 46
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
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
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
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
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
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.
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.
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
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
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
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
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.
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
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.
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
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
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
Sebagai contoh, carilah lintasan terpendek dari vertex a ke z dalam graf
berbobot tersambung dan tidak berarah berikut berikut:
a
b c
d e
f g
z 2
1
2
3 4 2
4
5 3
7 1
6
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.
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:
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
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.
[image:30.595.130.484.174.511.2]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
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
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
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
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
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
- 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
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
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
[image:38.595.105.527.503.727.2]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
else if (head==temp) // jika data berada pada posisi head head = NULL
else // jika data berada pada posisi tail prev->next = NULL
free(temp) // hapus alokasi memori yang sudah tak terpakai }
else
output("Data Tidak Ditemukan");
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
[image:39.595.121.510.295.496.2]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;
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,
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
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.
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
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
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
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
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
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
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
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
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
[image:51.595.243.422.83.214.2]beserta panajang masing-masing jalan.
Tabel 3.1 Contoh Nama-Nama Jalan Protokol Dikota Surabaya
ID Asal Tujuan Penamaan
Panjang Jalan
1 cc cb Bungtomo 0.4
2 cb cc Bungtomo 0.4
3 ae ac gubeng pojok 0.52
4 ae dq gubeng pojok jembatan 0.46
5 ca bn jagir wonokromo 2.4
6 bn ca jagir wonokromo 2.4
7 bw bx jemur andayani 0.6
8 bx bw jemur andayani 0.6
9 bw dz jemur andayani tengah 0.58
10 dz bw jemur andayani tengah 0.58
11 bx by jemursari 0.3
12 by bx jemursari 0.3
13 bj y kertajaya gramedia 0.64
14 y bj kertajaya gramedia 0.64
15 z bj kertajaya pombensin 0.58
16 bj z kertajaya pombensin 0.58
17 bv bw kutisari 0.4
18 bw bv kutisari 0.4
19 br bs letjen suprapto 1.4
20 bs br letjen suprapto 1.4
21 bm bl manyar 0.7
22 bl bm manyar 0.7
23 y dt manyar kertoarjo 1.9
24 dt y manyar kertoarjo 1.9
25 cb aa ngagel 2.8
26 aa cb ngagel 2.8
27 bk da ngagel jaya 0.7
28 da bk ngagel jaya 0.7
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
[image:52.595.171.460.466.692.2]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
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
[image:53.595.168.465.441.728.2]penentuan jalur terpendek.
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
[image:54.595.109.508.321.666.2]info jalur terpendek
Gambar 3.4 Sequence Diagram
Diagram diatas menunjukkan urutan proses yang dikerjakan oleh aplikasi
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
[image:55.595.266.403.416.587.2]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:
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
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
[image:57.595.263.395.243.425.2]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