54
ANALISIS DAN PERANCANGAN SISTEM
3.1 Gambaran Umum BLU TransJakarta – Busway 3.1.1 Sejarah Perusahaan
Badan Layanan Umum TransJakarta – Busway merupakan perusahaan transportasi dengan bus sebagai kendaraan operasionalnya. Perusahaan transportasi ini mempunyai jalur bus tersendiri yang daerah cakupannya meliputi seluruh Jakarta dengan halte – halte yang tersebar di sepanjang jalur bus tersebut. Perusahaan transportasi ini memiliki kantor pusat yang berlokasi di Jalan Trunojoyo 1 Gedung Walikota Lama Blok V Lantai 3 – Jakarta Selatan.
Badan Layanan Umum TransJakarta mengelola Busway dengan kewenangan yang diberikan oleh Gubernur DKI Jakarta melalui Surat Keputusan (SK) Nomor 110 Tahun 2003. Surat ini berisi tentang Pembentukan Perusahaan dan Tata Kerja Badan Pengelola TransJakarta – Busway dengan Pemprov DKI Jakarta. Bus ini bertujuan memberikan jasa angkutan yang cepat, nyaman, namun terjangkau oleh masyarakat.
Bus TransJakarta – Busway ini pertama kali beroperasi pada tanggal 15 Januari 2004. Badan Layanan Umum TransJakarta – Busway pertama kali beroperasi hanya di Koridor 1 (Blok M – Kota), kemudian menambahkan Koridor 2 (Pulo Gadung – Harmoni), dan Koridor 3 (Kalideres – Harmoni). Pada tahun 2005 jumlah koridornya bertambah menjadi total tujuh koridor,
yaitu Koridor 4 (Pulo Gadung – Dukuh Atas), Koridor 5 (Kampung Melayu – Ancol), Koridor 6 (Ragunan – Kuningan), dan Koridor 7 (Kampung Rambutan – Kampung Melayu). Dan pada tahun 2009 ditambahkan tiga koridor lagi sehingga totalnya menjadi sepuluh koridor yaitu Koridor 8 (Lebak Bulus – Harmoni), Koridor 9 (Pinang Ranti – Pluit), dan Koridor 10 (Cililitan – Tanjung Priok). Namun sampai saat ini koridor yang aktif adalah koridor 1 sampai koridor 8.
3.1.2 Visi dan Misi Perusahaan
Badan Layanan Umum TransJakarta – Busway sebagai suatu perusahaan juga memiliki suatu visi dan misi perusahaan, dimana visi dan misi tersebut akan menopang seluruh kegiatan dan kinerja perusahaan, sehingga mampu mencapai suatu target di masa depan. Visi dan misi tersebut adalah sebagai berikut:
1. Visi
Busway sebagai angkutan umum yang mampu memberikan pelayanan publik yang cepat, aman, nyaman, manusiawi, efisien, berbudaya dan bertaraf internasional.
2. Misi
a. Melaksanakan reformasi sistem angkutan umum – busway dan budaya penggunaan angkutan umum.
b. Menyediakan pelayanan yang lebih dapat diandalkan, berkualitas tinggi, berkeadilan dan berkesinambungan di DKI Jakarta.
c. Memberikan solusi jangka menengah dan jangka panjang terhadap permasalahan di sektor angkutan umum.
d. Menerapkan mekanisme pendekatan dan sosialisasi terhadap stakeholder, dan sistem transportasi terintegrasi.
e. Mempercepat implementasi sistem jaringan busway di Jakarta sesuai aspek kepraktisan, kemampuan masyarakat untuk menerima sistem tersebut, dan kemudahan pelaksanaan.
f. Mengembangkan struktur institusi yang berkesinambungan.
g. Mengembangkan lembaga pelayanan masyarakat dengan pengelolaan keuangan yang berlandaskan good corporate governance, akuntabilitas dan transparansi.
3.1.3 Struktur Perusahaan
Dalam sebuah perusahaan atau perusahaan selalu memiliki struktur penjelasan posisi dan pengaturan yang biasa disebut dengan struktur perusahaan. Struktur perusahaan memiliki penjelasan tentang pengaturan tugas, wewenang, dan tanggung jawab agar perusahaan dapat berjalan dengan teratur. Adapun struktur perusahaan dari Badan Layanan Umum TransJakarta – Busway adalah sebagai berikut :
Gambar 3.1 Struktur Perusahaan BLU TransJakarta – Busway
3.2 Analisis Permasalahan dan Solusi 3.2.1 Analisa Sistem yang Berjalan
Sekarang ini transportasi TransJakarta – Busway semakin diminati oleh masyarakat. Hal ini disebabkan karena TransJakarta – Busway yang menjanjikan kecepatan, kenyamanan serta biaya yang terjangkau dalam hal bertransportasi yang dirasa lebih efisien dan efektif dibandingkan bila harus
Asisten Manajer Oprasional Bus
Kepala
Badan Layanan Umum TransJakarta - Busway
Ka. Sub. Bag. Tata Usaha dan Keuangan
Perlengkapan dan Urusan RumahTangga Keuangan Kepegawaian Umum Humas Manajer Sarana Prasarana Manajer Pengendalian Manajer Operasional Asisten Manajer Perencanaan Operasional Asisten Manajer Pusat Kendali Asisten Manajer Pengendalian dan Pengawasan Asisten Manajer Perencanaan Sarana Prasarana Asisten Manajer Evaluasi Sarana Prasarana Asisten Manajer Pemeliharaan Sarana Prasarana Asisten Manajer Evaluasi Kinerja Operator Asisten Manajer Operasional Tiket Asisten Manajer Verifikasi Data Asisten Manajer Pengamanan
Operasional Asisten Manajer Teknologi Informasi
menggunakan kendaraan bermotor pribadi. Seperti yang dapat kita lihat, penumpang TransJakarta – Busway selalu nampak memadati halte terutama pada jam sibuk, yaitu pada saat jam pergi dan pulang kantor.
Berhubungan dengan hal di atas, penumpang memerlukan suatu sarana informasi yang berhubungan dengan sistem yang sedang berjalan. Sarana informasi yang dapat diperoleh penumpang dalam hal rute, jalur, titik transit maupun hal lainnya dapat dilihat pada papan petunjuk yang dipajang di dalam halte yang juga terdapat dalam setiap bus TransJakarta.
Selain itu penumpang juga dapat bertanya pada karyawan TransJakarta yang sedang bertugas di lapangan mengenai rute perjalanan yang ingin dilalui dan dituju termasuk halte – halte yang terdekat dengan gedung / tempat umum yang penting yang ingin dituju oleh penumpang. Semua sarana informasi tersebut terdapat dalam masing – masing halte Busway dan di dalam semua bus di setiap koridornya.
3.2.2 Analisa Hasil Pre – Kuesioner
Penulis membagikan pre – kuesioner ini kepada 80 orang yang pernah menggunakan transportasi TransJakarta – Busway. Adapun analisa dari pre – kuesioner yang dihasilkan adalah sebagai berikut :
Tabel 3.1 Pre – Kuesioner No. 1
Pertanyaan Tujuan
1. Berapa kali Anda menggunakan tranportasi TransJakarta Busway dalam seminggu?
Untuk mengetahui seberapa sering pengguna menggunakan tranportasi TransJakarta Busway.
Pilihan Jawaban Koresponden Presentase
a. Setiap hari 13 orang 16 %
b. Seminggu < 3 kali 19 orang 24 %
c. Jarang 42 orang 52 %
d. Tidak tahu 6 orang 8 %
Total 80 orang 100 %
16%
24% 52%
8%
1. Berapa kali Anda menggunakan tranportasi TransJakarta Busway dalam seminggu?
Setiap hari
Seminggu < 3 kali Jarang
Tidak tahu
Tabel 3.2 Pre – Kuesioner No. 2
Pertanyaan Tujuan
2. Pada hari apa Anda biasanya menggunakan transportasi TransJakarta Busway?
Untuk mengetahui pada hari apa pengguna lebih banyak menggunakan transportasi TransJakarta Busway.
Pilihan Jawaban Koresponden Presentase
a. Setiap hari 12 orang 15 %
b. Di antara hari kerja (Senin sampai dengan Sabtu)
38 orang 48 %
c. Minggu atau hari libur 21 orang 26 %
d. Tidak tahu 9 orang 11 %
Total 80 orang 100 %
15%
48% 26%
11%
2. Pada hari apa Anda biasanya menggunakan transportasi TransJakarta Busway?
Setiap hari
Di antara hari kerja Minggu atau hari libur Tidak tahu
Tabel 3.3 Pre – Kuesioner No. 3
Pertanyaan Tujuan
3. Informasi apakah yang Anda butuhkan ketika berada di halte Busway? (Jawaban boleh lebih dari satu)
Untuk mengetahui informasi apa saja yang seharusnya ada di dalam halte.
Pilihan Jawaban Koresponden Presentase
a. Nama halte yang dituju 58 37 %
b. Jalur yang akan dilalui 56 36 %
c. Informasi lain, seperti … 33 21 %
d. Tidak ada 10 6 %
Total 80 orang 100 %
Tabel 3.4 Pre – Kuesioner No. 4
Pertanyaan Tujuan
4. Apakah media informasi yang ada di halte sudah memenuhi kebutuhan informasi Anda?
Untuk mengetahui media informasi yang sudah ada di dalam halte sudah memenuhi kebutuhan informasi pengguna atau belum.
Pilihan Jawaban Koresponden Presentase
a. Sangat memenuhi 7 orang 9 %
b. Memenuhi 28 orang 35 %
c. Kurang memenuhi 33 orang 41 %
d. Tidak tahu 12 orang 15 %
Total 80 orang 100 %
9%
35% 41%
15%
4. Apakah media informasi yang ada di halte sudah memenuhi kebutuhan informasi Anda?
Sangat memenuhi Memenuhi Kurang memenuhi Tidak tahu
Tabel 3.5 Pre – Kuesioner No. 5
Pertanyaan Tujuan
5. Apakah Anda kesulitan memilih jalur yang hendak dilalui?
Untuk mengetahui berapa banyak pengguna yang kesulitan dalam memilih jalur yang akan dilalui.
Pilihan Jawaban Koresponden Presentase
a. Sangat mudah 11 orang 14 %
b. Cukup mudah 23 orang 29 %
c. Cukup kesulitan 36 orang 45 %
d. Sangat kesulitan 10 orang 12 %
Total 80 orang 100 %
14%
29% 45%
12%
5. Apakah Anda kesulitan memilih jalur yang hendak dilalui?
Sangat mudah Cukup mudah Cukup kesulitan Sangat kesulitan
Tabel 3.6 Pre – Kuesioner No. 6
Pertanyaan Tujuan
6. Apakah Anda merasa perlu untuk mencari jalur tercepat untuk mencapai tempat tujuan Anda?
Untuk mengetahui kebutuhan pengguna mencari jalur tercepat dalam mencapai tempat tujuannya.
Pilihan Jawaban Koresponden Presentase
a. Sangat perlu 46 orang 57 %
b. Cukup perlu 26 orang 32 %
c. Tidak perlu 6 orang 8 %
d. Sangat tidak perlu 2 orang 3 %
Total 80 orang 100 %
57% 32%
8% 3%
6. Apakah Anda merasa perlu untuk mencari jalur tercepat untuk mencapai tempat tujuan Anda?
Sangat perlu Cukup perlu Tidak perlu Sangat tidak perlu
Tabel 3.7 Pre – Kuesioner No. 7
Pertanyaan Tujuan
7. Apakah Anda kesulitan dalam mencari jalur tercepat untuk mencapai tempat tujuan Anda?
Untuk mengetahui berapa banyak pengguna yang kesulitan dalam mencari jalur tercepat.
Pilihan Jawaban Koresponden Presentase
a. Sangat mudah 6 orang 7 %
b. Cukup mudah 13 orang 16 %
c. Cukup kesulitan 31 orang 39 %
d. Sangat kesulitan 30 orang 38 %
Total 80 orang 100 %
7%
16%
39% 38%
7. Apakah Anda kesulitan dalam mencari jalur tercepat untuk mencapai tempat tujuan Anda?
Sangat mudah Cukup mudah Cukup kesulitan Sangat kesulitan
Tabel 3.8 Pre – Kuesioner No. 8
Pertanyaan Tujuan
8. Apakah Anda membutuhkan suatu aplikasi di halte untuk mencari jalur tercepat?
Untuk mengetahui tingkat kebutuhan pengguna pada aplikasi pencarian jalur tercepat.
Pilihan Jawaban Koresponden Presentase
a. Perlu 56 orang 70 %
b. Tidak perlu 13 orang 16 %
c. Tidak tahu 11 orang 14 %
Total 80 orang 100 %
70% 16%
14%
9. Apakah Anda membutuhkan suatu aplikasi di halte untuk mencari jalur tercepat?
Perlu Tidak Perlu Tidak tahu
3.2.3 Kesimpulan Hasil Pre – Kuesioner
Sesuai pertanyaan pre – kuesioner dengan koresponden sebanyak 80 orang, maka penulis menyimpulkan bahwa :
1. Penumpang transportasi TransJakarta – Busway sebanyak 42 orang (52%) mengaku jarang menggunakan transportasi tersebut. Para penumpang ini mengatakan bahwa mereka hanya satu kali saja naik Busway atau tidak rutin menggunakan transportasi ini setiap minggunya.
2. Sebanyak 38 orang (48%) menggunakan transportasi ini pada hari Senin sampai dengan Sabtu dan 12 orang (15%) menggunakan transportasi ini setiap hari, sehingga jumlah orang yang menggunakan transportasi pada hari Senin sampai Sabtu totalnya 50 orang (63%). Hal ini menyatakan bahwa transportasi TransJakarta – Busway lebih ramai penumpang pada hari tersebut dibanding dengan hari libur.
3. Sebanyak 58 orang (37%) yang memilih nama halte yang dituju sebagai informasi yang dibutuhkan ketika berada di halte Busway.
4. Sebanyak 33 orang (41%) menyatakan bahwa media informasi yang ada di halte Busway masih kurang memenuhi informasi yang dibutuhkan oleh penumpang dan sebanyak 12 orang (15%) menyatakan tidak mengetahui adanya media informasi dalam halte. Hal ini membuktikan bahwa media informasi yang tersedia masih belum mencukupi kebutuhan informasi yang diperlukan penumpang.
5. Sebanyak 36 orang (45%) mengatakan bahwa mereka cukup kesulitan dalam memilih jalur yang akan dilalui dan 10 orang (12%) menyatakan mereka sangat kesulitan. Hal ini membuktikan bahwa penumpang masih kurang informasi mengenai jalur – jalur yang dilewati oleh Busway. 6. Sebanyak 46 orang (57%) menyatakan bahwa mereka sangat memerlukan
jalur tercepat untuk mencapai tujuannya dan 26 orang (32%) menyatakan mereka cukup memerlukan jalur tercepat. Hal ini membuktikan bahwa jalur Busway yang mereka lalui masih belum optimal untuk mencapai tempat tujuan mereka dalam waktu singkat.
7. Sebanyak 31 orang (39%) menyatakan bahwa mereka cukup kesulitan dalam mencari jalur tercepat untuk mencapai tempat tujuan mereka dan 30 orang (38%) menyatakan mereka sangat kesulitan dalam mencari jalur tercepat. Hal ini membuktikan bahwa pencarian jalur tercepat yang dilakukan oleh penumpang masih belum akurat atau penumpang tidak dapat mencari jalur tercepat tersebut.
8. Sebanyak 56 orang (70%) menyatakan bahwa mereka memerlukan suatu aplikasi untuk mencari jalur tercepat. Hal ini membuktikan bahwa aplikasi untuk mencari jalur tercepat memang dibutuhkan oleh penumpang.
3.2.4 Identifikasi Masalah yang Dihadapi
Berdasarkan hasil pre – kuesioner di atas, maka terdapat beberapa permasalahan yaitu :
• Media informasi yang tersedia dalam halte Busway masih belum mencukupi kebutuhan informasi yang diperlukan oleh penumpang (pre – kuesioner nomor 4).
• Penumpang masih kurang informasi mengenai halte mana yang akan menjadi halte tujuannya. Hal ini terjadi karena penumpang kadangkala hanya mengetahui nama tempat umum yang akan ditujunya saja, namun tidak mengetahui halte dimana ia harus turun (pre – kuesioner nomor 5). • Penumpang masih kurang informasi mengenai jalur – jalur yang dilewati
oleh Busway (pre – kuesioner nomor 6).
• Penumpang membutuhkan informasi jalur Busway yang optimal untuk mencapai tempat tujuan mereka dalam waktu singkat (pre – kuesioner nomor 7).
• Jika ingin mencari jalur tercepat, penumpang hanya dapat memperkirakan sendiri sehingga hasilnya masih belum akurat. Bahkan kebanyakan penumpang tidak dapat mencari jalur tercepat tersebut secara manual (pre – kuesioner nomor 8).
3.2.5 Analisis Pemecahan Masalah
Melihat permasalahan yang timbul, maka penulis mempunyai usulan yang diharapkan mampu memecahkan permasalahan tersebut. Usulan penulis
yaitu penulis ingin membuat suatu aplikasi berupa kios informasi yang diharapkan dapat membantu penumpang dalam memberikan informasi yang dibutuhkan, terutama dalam hal pencarian jalur tercepat.
Aplikasi tersebut berupa program yang memiliki kemampuan sebagai berikut :
1. Pada saat aplikasi pertama kali dinyalakan, maka aplikasi akan meminta petugas halte untuk memasukkan nama halte asal. Nama halte asal disesuaikan dengan nama halte transit dimana aplikasi ini akan ditaruh. Aplikasi ini sebaiknya ditaruh hanya pada halte – halte transit, sebab di halte – halte transit biasanya penumpang mengalami kebingungan dalam menentukan halte atau jalur yang akan dilaluinya.
2. Penumpang dapat mencari jalur tercepat yang dapat ditempuhnya untuk mencapai tempat tujuan, dengan cara menentukan halte tujuannya saja. 3. Penumpang dapat melihat hasil pencarian dalam bentuk animasi bus dalam
peta.
3.3 Perancangan Algoritma Dijkstra Pencarian Jalur Tercepat
Penulis menggunakan algoritma Dijkstra untuk membuat kios informasi pencarian jalur tercepat ini karena penulis menganggap bahwa algoritma Dijkstra efektif untuk kasus pencarian jalur, dalam hal ini pencarian jalur tercepat. Hal ini disebabkan oleh teknik dari algoritma Dijkstra yang memeriksa seluruh node yang ada saat pencarian dilakukan pertama kali.
Walaupun waktu eksekusi yang dibutuhkan agak lama saat pertama kali dijalankan, namun karena teknik dari Dijkstra yang memungkinkan nilai dari masing – masing node yang ada disimpan ke dalam suatu variabel, sehingga untuk selanjutnya waktu eksekusi cukup singkat.
3.3.1 Variabel – Variabel dalam Pencarian Jalur Tercepat
Variabel – variabel yang digunakan dalam aplikasi ini yaitu : 1. Lampu lalu lintas.
Adanya lampu lalu lintas yang berada pada lintasan Busway tentu ikut mempengaruhi waktu tempuh penumpang.
2. Jarak antar halte.
Jarak antar halte pada masing – masing koridor menjadi salah satu faktor penentu waktu tempuh.
3. Kecepatan bus.
Kecepatan bus yang dikendarai rata – rata 40 km/jam. 4. Jumlah pengunjung.
Banyaknya jumlah pengunjung menentukan lamanya mereka harus menunggu bus.
5. Jam.
Berdasarkan keramaiannya, maka jam yang digunakan dalam aplikasi ini terbagi menjadi 2 bagian, yaitu jam sibuk (jam 07.00 – 09.59 dan jam 15.00 – 18.59) dan jam tidak sibuk (jam 10.00 – 14.59 dan jam 19.00 – 06.59).
3.3.2 Pengolahan Data
Untuk mendapatkan waktu yang dibutuhkan oleh penumpang untuk mencapai tempat tujuannya, maka penulis melakukan perhitungan – perhitungan seperti di bawah ini, dimana hasil akhir dari perhitungan tersebut akan dimasukkan ke dalam matriks waktu tempuh. Perhitungan – perhitungan tersebut adalah sebagai berikut :
a. Rata – rata lama kedatangan bus.
Untuk mencari rata – rata lamanya kedatangan bus didapat dari rumus sebagai berikut :
Rata – rata lama kedatangan bus
= ½ * ( )
b. Jarak antar bus.
Jarak antar bus didapat dari rumus berikut ini :
Jarak antar bus = .
c. Banyak pengunjung yang diperbolehkan menaiki sebuah bus.
Perkiraan rata – rata penumpang yang diperbolehkan naik ke dalam bus di halte – halte awal seperti Harmoni, Dukuh Atas 2, dan Kampung Melayu sebanyak 40 orang.
Sedangkan perkiraan rata – rata penumpang yang naik di halte – halte persimpangan seperti Indosiar, Senen, Senen Sentral, Dukuh Atas 1, Matraman 1, Matraman 2, dan Halimun sebanyak 15 orang.
d. Lamanya penumpang mengantri.
Rata – rata jumlah penumpang yang mengantri pada jam sibuk adalah 100 orang, sedangkan rata – rata jumlah rata – rata penumpang yang mengantri pada jam tidak sibuk adalah 50 orang.
Perkiraan urutan bus yang akan dinaiki penumpang
= pembulatan ke atas ( ).
Berarti lamanya penumpang mengantri didapat dari rumus sebagai berikut: Lamanya penumpang mengantri = bus yg dinaiki * jarak antar bus.
e. Lamanya perjalanan.
Lamanya waktu yang dibutuhkan oleh bus untuk berjalan dari halte asal ke halte tujuan didapat dari rumus sebagai berikut :
Lamanya perjalanan = .
f. Lamanya bus berhenti di setiap halte lain yang dilalui
Lamanya berhenti di 1 halte adalah 10 detik. Berarti lamanya berhenti di setiap halte yang dilalui didapat dari rumus sebagai berikut :
Lamanya bus berhenti di setiap halte = 10 detik * banyaknya halte. g. Lamanya lampu lalu lintas
Lampu lalu lintas yang penulis gunakan dalam aplikasi ini dibedakan menjadi dua yaitu jam sibuk dan jam tidak sibuk. Untuk jam sibuk, lampu hijau selama 45 detik dan lampu merah selama 135 detik. Sedangkan untuk jam tidak sibuk, lampu hijau selama 30 detik dan lampu merah selama 90 detik.
Berarti untuk mendapatkan rata – rata lamanya lampu lalu lintas, maka didapat dari rumus sebagai berikut :
Rata – rata lama lampu lalu lintas jam sibuk = ½ * (0 + 135) = 67.5 detik. Jadi, rata – rata lamanya lampu lalu lintas jam sibuk (dibulatkan ke atas) adalah 68 detik.
Rata – rata lama lampu lalu lintas jam tak sibuk = ½ * (0 + 90) = 45 detik. h. Waktu yang diperlukan untuk mencapai tujuan.
Untuk mendapatkan hasil akhir berupa waktu yang diperlukan untuk mencapai tujuan didapat dari rumus sebagai berikut :
Waktu yang diperlukan = rata – rata lamanya kedatangan bus + lamanya mengantri +lamanya perjalanan + lamanya bus berhenti di setiap halte + (rata – rata lampu lalu lintas * banyaknya lampu lalu lintas).
Berikut ini adalah contoh penerapan dari rumus – rumus di atas, yaitu : Jika seseorang dari Halte Harmoni hendak menuju ke Halte Kota pada jam 18.00, maka waktu yang ia perlukan yaitu
= {½ * ( ) * 3600 detik } + { * (( ) *
3600 detik)} + { } + {10 detik * 4} + {68 detik * 2}
= 29 detik + 116 detik + 275 detik + 40 detik + 136 detik = 596 detik
Keterangan :
• Dari halte Harmoni sampai ke halte Kota berada di koridor 1 dengan panjang koridor 12.9 km * 2 (pulang – pergi), sementara panjang perjalanan dari Harmoni – Kota sejauh 3.05 km. Koridor 1 ini memiliki jumlah bus yang beroperasi sebanyak 40 buah dengan kecepatan 40 km/jam.
• Jam 18.00 termasuk jam sibuk, sehingga diperkirakan jumlah orang yang mengantri pada jam itu sebanyak 100 orang dan perkiraan jumlah orang yang naik ke dalam bus sebanyak 40 orang.
• Jumlah halte yang dilewati sepanjang Harmoni – Kota sebanyak 4 halte. • Jumlah lampu lalu lintas yang dilewati sepanjang Harmoni – Kota
sebanyak 2 buah.
3.3.3 Algoritma
Algoritma Dijkstra yang digunakan untuk mencari jalur tercepat adalah sebagai berikut :
BEGIN
Inisialisasi variabel – variabel Dijkstra(startnode);
Calculate(matriks, path, distance) nextfound(distance, found); getpath(destnode, status);
gettransit(destnode, status, listtransit); getdistance(destnode, status);
3.3.4 Urutan Proses Pencarian Jalur Tercepat
Sebuah jalur tercepat dapat dihasilkan setelah melakukan tahapan proses berikut ini (untuk lebih jelasnya dapat dilihat pada Lampiran) :
1. Inisialisasi variabel – variabel
Pada tahapan ini, dilakukan inisialisasi variabel – variabel yang dibutuhkan dalam selama proses pencarian jalur tercepat berlangsung. Berikut ini adalah variabel – variabel yang digunakan :
Matriks_sibuk = array{}; Matriks_netral = array{}; Loader_netral; Loader_sibuk; Startnode = number; Path_sibuk = array{}; Path_netral = array{}; Distance_sibuk = array {}; Distance_netral = array{}; Koridor = array{}; 2. Dijkstra(startnode) Dijkstra(startnode) MODULE BEGIN This.startnode = startnode;
Loader_netral = LOAD (”matriks netral.txt”); Matriks_netral = array{”matriks netral.txt”}; Path_netral = array{matriks_netral.length}; Distance_netral = array{matriks_netral.length};
Loader_sibuk = LOAD (”matriks sibuk.txt”); Matriks_ sibuk = array{”matriks sibuk.txt”}; Path_ sibuk = array{matriks_ sibuk.length}; Distance_ sibuk = array{matriks_ sibuk.length};
Calculate(matriks_ sibuk, path_ sibuk, distance_ sibuk); END
3. Calculate(matriks, path, distance)
Calculate(matriks, path, distance) MODULE BEGIN
Found = new array(matriks.length);
Batas bawah = indeks awal untuk pengecekan; Batas atas = panjang matriks;
i = Batas bawah; WHILE i < batas atas
Found[i] = false; Distance = matriks[startnode][i]; Path[i] = startnode; i++; END WHILE Found[startnode] = true; Distance[startnode] = 0; i = batas bawah;
WHILE i < batas atas - 2
Next = nextfound(distance, found); Found[next] = true;
j = batas bawah; WHILE j < batas atas
IF j belum dikunjungi dan distance[next] + matriks[next][j] + 10 < distance[j] THEN
Distance[j]=distance[next]+matriks[next][j]+10; Path[j] = next; END IF j++; END WHILE i++; END WHILE END 4. Nextfound(distance, found)
Nextfound(distance, found) MODULE BEGIN
Min = 1000000; Pos = -1;
Batas bawah = indeks awal untuk pengecekan; batas atas = panjang distance;
i = batas bawah; WHILE i < batas atas
IF distance[i] < min && i belum dikunjungi THEN Min = distance[i]; Pos = i; END IF i++; END WHILE Return pos; END
5. Getpath(destnode, status)
Getpath(destnode, status) MODULE BEGIN
Path = new array{}; listPath = array{}; listDistance = array{};
Batas bawah = indeks awal untuk pengecekan; batas atas = panjang path;
IF state = ”netral” THEN listPath = path_netral; listDistance = distance_netral; ELSE listPath = path_sibuk; listDistance = distance_sibuk; END IF
WHILE destnode tidak sama dengan startnode
Masukkan [listPath[destnode], destnode]ke dalam array Path
Update Destnode END WHILE
Balik hasil array Path Return path;
END
6. Gettransit(destnode, status, listtransit)
Gettransit(destnode, status, listtransit[]) MODULE BEGIN
listPath = array{}; listDistance = array{}; path = new array{};
Batas bawah = indeks awal untuk pengecekan; batas atas = panjang listTransit;
IF state = ”netral” THEN listPath = path_netral; listDistance = distance_netral; ELSE listPath = path_sibuk; listDistance = distance_sibuk; END IF i = batas bawah; WHILE i < batas atas
IF destnode ada dalam array listTransit ke i THEN
Update destnode
Break;
END IF
Masukkan destnode ke dalam array Path; WHILE destnode tidak sama dengan startnode
Masukkan listpath[destnode] ke dalam array Path; Update destnode
END WHILE
Balik hasil array Path(); numTransit = 0;
currKoridor = -1;
Batas bawah = indeks awal untuk pengecekan; batas atas = panjang koridor;
i = batas bawah; WHILE i < batas atas
j = 0;
WHILE j < panjang koridor ke i
IF koridor[i][j] = path[0] THEN
currKoridor = i; break; END IF j++; END WHILE i++; IF currKoridor = -1 THEN Break; END IF END WHILE O = 0;
WHILE o < panjang listTransit
IF path[0] = listTransit[o].data THEN Jumlah transit bertambah
break; END IF O++; END WHILE Var flag; i = 0;
WHILE i < panjang path nextKoridor = -1; flag = false;
n = 0;
WHILE n < panjang koridor dari currKoridor IF path[i] = koridor[currKoridor][n] THEN
Tidak pindah koridor
break; END IF n++; END WHILE IF n = koridor[currKoridor].length THEN n = 0; WHILE n < koridor.length m = 0; WHILE m < koridor[n].length
IF koridor[n][m] = path[i] THEN
nextKoridor = n; break; END IF m++; END WHILE; n++; END WHILE
IF nextkoridor sudah dapat THEN break; END IF
i++; END WHILE
IF tidak pindah koridor THEN O = 0;
IF path[i] = listTransit[o].data THEN
IF jumlah numTransit tidak sama dengan panjang array transit THEN
Hapus array Transit terakhir
END IF
Masukkan label listTransit ke o ke dalam array Transit Break; END IF O++; END WHILE ELSE O = 0;
WHILE o < panjang listTransit
IF path[i] = listTransit[o].data THEN
Masukkan label listTransit ke o ke dalam array Transit END IF END WHILE END IF Update currKoridor Return transit; END 7. Getdistance(destnode, status)
Getdistance(destnode, status) MODULE BEGIN
IF status = ”netral” THEN listDistance = distance_netral; ELSE listDistance = distance_sibuk; END IF Return listDistance[destnode]; END 3.4 Perancangan Sistem
3.4.1 Perancangan Struktur Menu
Struktur menu pada Kios Informasi Pencarian Jalur Tercepat pada TransJakarta – Busway dapat dilihat pada gambar berikut ini :
Gambar 3.10 Perancangan Struktur Menu Kios Informasi
3.4.2 Perancangan State Transition Diagram (STD)
Berikut ini adalah State Transition Diagram (STD) dari Kios Informasi Pencarian Jalur Tercepat pada TransJakarta – Busway.
Map
Menu Utama
Hasil Pencarian Halte Asal
Gambar 3.11 Perancangan STD Halte Asal
Gambar 3.12 Perancangan STD Menu Utama Tekan OK
Munculkan Menu Utama Halte Asal
Menu Utama
Tekan OK
Munculkan Menu Utama
Tekan Map Tekan Cari
Munculkan Map Munculkan Hasil Pencarian
Tekan Map Tekan Kembali
Kembali ke Menu Utama Kembali ke Menu Utama Map Menu Utama Hasil Pencarian Halte Asal
Gambar 3.13 Perancangan STD Map
Gambar 3.14 Perancangan STD Hasil Pencarian
Tekan Ulang
Ulangi Animasi Hasil Pencarian
Tekan Kembali
Kembali ke Menu Utama
Hasil Pencarian Menu Utama Tekan Map Munculkan Map Tekan Map
Kembali ke Menu Utama
Map Menu
3.4.3 Perancangan Use Case
Use case ini mempunyai 3 aktor yaitu pengguna dan sistem, dimana pengguna terdiri dari penumpang dan petugas halte. Pada saat sistem dinyalakan, maka sistem akan meminta input berupa nama halte asal. Nama halte asal ini dimasukkan oleh petugas halte dan disesuaikan dengan nama halte transit dimana kios informasi ini diletakkan.
Sedangkan penumpang melakukan input pada Menu Utama, kemudian sistem akan menghasilkan output pada Hasil Pencarian dan penumpang dapat melihat hasilnya. Untuk lebih jelasnya dapat dilihat pada Gambar 3.15.
Gambar 3.15 Perancangan Use Case
Penumpang
Petugas halte
Kios Informasi Pencarian Jalur Tercepat dalam TransJakarta – Busway Input nama halte asal Input Menu Utama Output Hasil Pencarian
3.4.4 Perancangan Layar
3.4.4.1 Perancangan Layar Petugas Halte
Gambar 3.16 Halaman Halte Asal
Ukuran layar : 1024 x 768 piksel ID layar : Halaman Halte Asal
Deskripsi layar : Dari Halaman Halte Asal ini, petugas halte memilih nama halte asal sesuai dengan nama halte transit dimana aplikasi ini diletakkan. Layar ini hanya muncul pada saat aplikasi dinyalakan. Jika sudah dimasukkan nama halte asal dan menekan OK, maka Halaman Menu Utama akan muncul. Text Attribute : Maiandra GD
Warna : Kuning, oranye. Image : JPEG
Animasi : Motion Tween Link : Halaman Menu Utama
3.4.4.2 Perancangan Layar Penumpang
Gambar 3.17 Halaman Menu Utama
Ukuran layar : 1024 x 768 piksel ID layar : Halaman Menu Utama
Deskripsi layar : Dari layar Halaman Menu Utama ini, penumpang dapat memilih nama halte tujuan. Jika penumpang menekan tombol “Cari”, maka akan menampilkan layar Hasil Pencarian. Penumpang dapat melihat peta jalur Busway dengan cara menekan tombol “Map”.
Text Attribute : Maiandra GD Warna : Kuning, oranye. Animasi : Motion Tween Video : Animasi
Gambar 3.18 Halaman Map
Ukuran layar : 1024 x 768 piksel ID layar : Halaman Map
Deskripsi layar : Dari layar Halaman Map ini, penumpang dapat melihat peta jalur Busway. Untuk kembali ke Halaman Menu Utama, penumpang dapat menekan tombol “Map”.
Text Attribute : Maiandra GD Warna : Kuning, oranye. Animasi : Motion Tween Link : Halaman Menu Utama
Gambar 3.19 Halaman Hasil Pencarian
Ukuran layar : 1024 x 768 piksel ID layar : Halaman Hasil Pencarian
Deskripsi layar : Halaman ini akan menunjukkan hasil pencarian berupa animasi pergerakan bus pada peta. Penumpang dapat mengulangi animasi dan kembali ke Menu Utama.
Text Attribute : Maiandra GD
Warna : Kuning, oranye, putih, hitam. Image : JPEG.
Animasi : Motion Tween Link : Halaman Menu Utama
3.4.5 Perancangan Modul
Untuk merancang layar seperti yang telah digambarkan di atas, maka diperlukan modul – modul agar dapat mengeksekusi input – input yang dimasukkan oleh pengguna sistem. Berikut ini adalah modul – modul dari perancangan layar secara garis besar, untuk modul – modul yang lebih terperinci dapat dilihat pada Lampiran. Modul – modul tersebut yaitu :
a. Modul layar Halte Asal Halte_Asal MODULE
IF nama_halte_asal = “” THEN
Alert(“Silakan masukkan halte asal!”);
ELSE
CALL Menu_Utama();
END IF
END
b. Modul layar Menu Utama Menu_Utama() MODULE
BEGIN
Nama_halte_asal.text == nama_halte_asal
IF nama_halte_tujuan = “” THEN
Alert(“Silakan masukkan halte tujuan Anda!”);
END IF
IF cari_button = clicked && nama_halte_tujuan != “” THEN CALL Hasil_Pencarian();
IF map_button = true THEN
ELSE
CALL Menu_Utama();
END IF
END
c. Modul layar Hasil Pencarian Hasil_Pencarian() MODULE
BEGIN
LOAD peta_animasi from “peta_animasi.fla”
SHOW peta_animasi
Nama_halte_asal == halte_asal
Nama_halte_transit == halte_transit
Nama_halte_tujuan == halte_tujuan
IF Ulang_button == clicked THEN
SHOW peta_animasi
END IF
IF Kembali_button == clicked THEN CALL Menu_Utama()