• Tidak ada hasil yang ditemukan

ANALISA DAN PERANCANGAN SISTEM

3.1. Deskripsi Kasus

Kasus penggunaan Bus Trans Jogja yang mungkin dihadapi oleh para

penumpangnya adalah ketidaktahuan untuk menentukan jalur Bus Trans Jogja

yang harus ditempuh guna mencapai tujuan yang dikehendaki. Selain hal itu,

penumpang bahkan juga mungkin tidak tahu trayek apa yang harus

ditumpangi dan perpindahan bus yang harus dilakukan guna mencapai titik

tujuannya dengan cepat. Berdasarkan hal tersebut salah satu solusi yang dapat

diberikan adalah membuat sebuah aplikasi untuk mencari jalur terpendek rute

Bus Trans Jogja dari satu titik awal ke satu titik tujuan. Selain kemampuan

mencari jalur terpendek, aplikasi yang dibuat juga harus mampu memberikan

saran berupa bus yang harus digunakan beserta perpindahan yang harus

dilakukan untuk menempuh jalur terpendek yang telah ditemukan.

Aplikasi akan dibuat untuk smartphone bersistem operasi Android.

Hal tersebut dilakukan agar aplikasi yang dibuat lebih optimal dalam

membantu penumpang karena mampu membantu penumpang pemilik

smartphone Android menentukan Bus Trans Jogja yang harus digunakan

secara mobile. Pertimbangan hal tersebut muncul karena dengan ukuran

34

gambar graph yang terbentuk berdasarkan posisi halte dan jarak antar halte

yang ada.

Gambar 3.1Graph Rute Bus Trans Jogja

Gambar 3.2Posisi Halte Bus Trans Jogja

12.Untuk int i = 1, selama i < jumlah vertex lakukan langkah dua

belas hingga langkah lima belas.

13.Jika vertex ke – i belum dikunjungi dan sPath ke – i <

jarakTerpendek maka lakukan langkah tiga belas dan empat

belas.

14.jarakTerpendek = sPath[i].getjarak().

15.minIndeks = i.

16.i++.

17.Buat dan inisialisasi variabel “min” = minIndeks.

18.Buat dan inisialisasi varaibel “minDist” =

sPath[min].getJarak().

19.Jika minDist = infinite, maka break. Jika tidak lakukan langkah

dua puluh dan 21.

20.vertSekarang = minIndeks.

21.jarakAwalKini = sPath[min].getJarak().

22.Tandai vertex sekarang bahwa dirinya sudah dikunjungi.

23.jumGraph++.

24.Buat dan inisialisasi variabel int “kolom” = 0.

25.Selama kolom < jumlah vertex, lakukan langkah 26 hingga 31.

26.Jika vertex dengan index kolom sudah dikunjungi, maka

kolom++ dan continue.

5. Untuk int i = 0, selama i < path.length lakukan langkah enam

hingga langkah sembilan.

6. Untuk int j = 0, selama j < path.length lakukan langkah tujuh

hingga langkah delapan.

7. Jika “jarak” sama dengan infinite, maka path[i][j] = -1, jika

tidak maka path[i][j] = i.

8. j++.

9. i++.

10.Untuk int i = 0, selama i < jumlah halte, lakukan langkah

sebelas hingga langkah dua belas.

11.path[i][i] = 1.

12.i++.

13.Untuk int i = 0, selama i < path.length lakukan langkah empat

belas hingga langkah 21.

14.Untuk int j = 0, selama j < path.length lakukan langkah lima

belas hingga langkah dua puluh.

15.Untuk int k = 0, selama k < path.length lakukan langkah enam

belas hingga langkah sembilan belas.

16.Jika jarak[j][i] + jarak[i][k] < jarak[j][k], lakukan langkah

tujuh belas dan delapan belas.

17.jarak[j][k] = jarak[j][i] + jarak[i][k].

18.path[j][k] = path[i][k].

9. Masukkan ke daftarTrayek edgeTrayek untuk nilai awal dan

tujuan yang telah ditentukan pada langkah tujuh dan delapan.

10.i++.

11.Inisialisasi bantu yang bertipe List<String> yang merupakan

nilai dari variabel daftarTrayek ke-0.

12.Inisialisasi variabel bertipe String baru dan perpindahanBus

bernilai empty string.

13.Untuk int i = 1, selama i kurang dari jalurPilihan.size maka

lakukan langkah empat belas hingga langkah 29.

14.Ubah nilai variabel baru menjadi empty string.

15.Untuk int j = 0, selama j kurang dari bantu.size, lakukan

langkah enam belas hingga sembilan belas.

16.Untuk int k = 0, selama k kurang dari daftarTrayek.get(i).size

lakukan langkah tujuh belas hingga delapan belas.

17.Jika nilai variabel bantu sama dengan daftarTrayek.get(i).get(k)

maka baru = baru + bantu.get(j).

18.j++.

19.j++.

20.Jika nilai variabel baru sama dengan empty String maka

lakukan langkah 21 hingga 25, jika tidak lakukan langkah 26.

21.Untuk j = 0, selama j kurang dari bantu.size lakukan langkah

22 hingga 24.

dengan solusi yang diperoleh melalui penghitungan manual. Kemiripan solusi

yang diberikan oleh sistem dengan solusi yang didapat secara manual akan

menjadi nilai ukur kebenaran dari solusi yang diberikan oleh sistem. Semakin

mirip solusi dari sistem dengan solusi yang didapat dari perhitungan manual,

maka semakin benar pula solusi yang diberikan oleh sistem. Penghitungan

manual akan dilakukan dengan cara:

1. Menentukan semua kemungkinan jalur yang mampu ditempuh dari

titik awal dan tujuan yang telah ditentukan, kemudian menghitung

jarak untuk setiap kemungkinan jalur yang didapat.

2. Membandingkan semua jarak untuk semua kemungkinan jalur yang

telah didapat.

3. Jalur dengan nilai jarak terkecillah yang kemudian dijadikan sebagai

solusi dalam penghitungan manual tersebut.

Hal terakhir yang kemudian dilakukan adalah membandingkan

kompleksitas waktu asimtotik dari masing-masing algoritma dan running

time-nya. Hal ini dilakukan untuk menentukan algoritma mana yang paling

optimal untuk digunakan dalam aplikasi yang dibuat. Algoritma yang palling

optimallah yang akan benar-benar digunakan dalam aplikasi yang akan dibuat

sehingga aplikasi benar-benar siap untuk dipublikasi dan digunakan oleh

masyarakat umum.

3. Aktor menyentuh kembali titik awal yang telah ditentukan sebelumnya.

2. Sistem telah menandai lokasi awal yang telah ditentukan oleh aktor.

4. Sistem memunculkan dialog apakah titik awal yang telah ditentukan sebelumnya oleh actor akan dibatalkan atau tidak.

Tabel 3.1Tabel Use Case Menentukan Titik Awal

b. Nama Use Case : Menentukan titik tujuan

Aktor : User (pengguna aplikasi)

Kondisi Awal : Titik awal telah ditentukan

Skenario :

Aksi Aktor Reaksi Sistem

1. Aktor touch titik tujuan yang berupa icon halte Bus Trans Jogja.

2. Sistem menandai lokasi yang telah ditentukan dan kemudian menampilkan jalur yang menghubungkan tiap halte.

Tabel 3.2Tabel Use Case Menentukan Titik Tujuan

c. Nama Use Case : Melihat jalur bus yang ditempuh

Aktor : User (pengguna aplikasi)

Kondisi Awal : Titik awal dan tujuan telah ditentukan

Skenario :

bus yang harus dipilih aktor berdasarkan jalur terpendek yang telah diperoleh sistem.

Tabel 3.5Tabel Use Case Melihat Saran Trayek Bus yang Harus Dipilih

f. Nama Use Case : Melihat running time algoritma

Aktor : User

Kondisi Awal : Titik awal dan tujuan telah ditentukan

Skenario :

Aksi Aktor Reaksi Sistem

1. Aktor touch tombol

“Details”. 2. Sistem menampilkan running time aloritma.

Tabel 3.6Tabel Use Case Melihat Running Time Algoritma

g. Nama Use Case : Mencari halte

Aktor : User

Kondisi Awal : -

Skenario :

Aksi Aktor Reaksi Sistem

1. Aktor mengisi textfield yang ada dengan nama halte yang ingin dicari. 2. Aktor touch tombol

“Cari”.

3. Sistem menunjukkan halte yang dicari jika ada.

3.4.1. Diagram Aktivitas Menentukan Titik Awal

Gambar 3.4Diagram Aktivitas Menentukan Titik Awal

3.4.2. Diagram AktivitasMenentukan Titik Tujuan

Gambar 3.5Diagram Aktivitas Menentukan Titik Tujuan

3.4.4. Diagram Aktivitas Melihat Jalur Bus yang Ditempuh, Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek Bus yang Harus Dipilih, dan Melihat Running Time Algoritma

Gambar 3.7Diagram Akivitas Melihat Jalur Bus yang Ditempuh, Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek

Bus yang Harus Dipilih, dan Melihat Running Time Algoritma

3.5.2. Diagram Sekuensial Menentukan Titik Tujuan

Gambar 3.10Diagram Sekuensial Menentukan Titik Tujuan

3.5.3. Diagram Sekuensial Mencari Halte

Gambar 3.11Diagram Sekuensial Mencari Halte

Gambar 3.13Diagram Sekuensial Melihat Jalur Bus yang Ditempuh, Melihat Nilai Jarak yang Ditempuh, Melihat Saran Trayek Bus yang Harus Dipilih, dan Melihat Running Time Algoritma

Floyd-Warshall

3.5.5. Diagram Sekuensial Melihat Help

Gambar 3.16Diagram Kelas Perancangan Keseluruhan

Dokumen terkait