LAMPIRAN 1 PRE – KUES IONER
1. Berapa kali Anda menggunakan tranportasi TransJakarta Busway dalam seminggu? a. Setiap hari b. Seminggu < 3 kali c. Jarang d. Tidak tahu 2. Pada hari apa Anda biasanya menggunakan transportasi TransJakarta Busway? a. Setiap hari b. Di antara hari kerja (Senin sampai dengan Sabtu) c. M inggu atau hari libur d. Tidak tahu 3. Informasi apakah yang Anda butuhkan ketika berada di halte Busway? Nama halte yang dituju Jalur yang akan dilalui Informasi lain seperti …. Tidak ada
L1
L2 4. Apakah media informasi yang ada di halte sudah memenuhi kebutuhan informasi Anda? a. Sangat memenuhi b. M emenuhi c. Kurang memenuhi d. Tidak tahu 5. Apakah Anda kesulitan memilih jalur yang hendak dilalui? a. Sangat kesulitan b. Cukup kesulitan c. Cukup mudah d. Sangat mudah 6. Apakah Anda merasa perlu untuk mencari jalur tercepat untuk mencapai tempat tujuan Anda? a. Sangat perlu b. Cukup perlu c. Tidak perlu d. Sangat tidak perlu
L3 7. Apakah Anda kesulitan dalam mencari jalur tercepat untuk mencapai tempat tujuan Anda? a. Sangat kesulitan b. Cukup kesulitan c. Cukup mudah d. Sangat mudah 8. Apakah Anda membutuhkan suatu aplikasi di halte untuk mencari jalur tercepat? a. Perlu b. Tidak perlu c. Tidak tahu
LAMPIRAN 2 POST – KUES IONER
1. Apakah aplikasi Kios Informasi Pencarian Jalur Tercepat pada TransJakarta – Busway ini menarik bagi Anda? a. Sangat menarik b. Cukup menarik c. Kurang menarik d. Tidak menarik 2. Kesulitan apakah yang Anda temui dalam menjalankan aplikasi ini? (Jawaban boleh lebih dari satu) Cara pengoperasian Navigasi menu tidak jelas Animasi hasil pencarian kurang terlihat Lain – lain, yaitu ….. Tidak ada 3. Apakah aplikasi ini membantu dalam mencari informasi yang Anda inginkan? a. Sangat membantu b. Cukup membantu c. Kurang membantu d. Tidak membantu
L4
L5
4. M enurut Anda, apakah yang menjadi kelebihan dari aplikasi ini? (Jawaban boleh lebih dari satu) Tampilan yang menarik Informasi yang lengkap Kemudahan penggunaan Lain – lain, yaitu ……. 5. M enurut Anda, apakah yang menjadi kekurangan dari aplikasi ini? (Jawaban boleh lebih dari satu) Cara pengoperasian yang membingungkan Tampilan kurang menarik Warna / tulisan tidak serasi Tidak konsisten Lain – lain, yaitu ……….. 6. Bagaimana penilaian Anda terhadap aplikasi ini secara keseluruhan? a. Sangat baik b. Baik c. Cukup d. Tidak baik
LAMPIRAN 3 LISTING PROGRAM
class Dijkstra{ var cost_matrix_1:Array; var cost_matrix_2:Array; var loader_1:LoadVars; var loader_2:LoadVars; var startNode:Number; var path_1:Array; var path_2:Array; var distance_1:Array; var distance_2:Array; var koridor:Array;
function Dijkstra(startNode:Number){ var thiz = this; this.startNode = startNode; loader_1 = new LoadVars(); loader_1.load("matrix netral.txt"); loader_1.onData = function(raw){ thiz.cost_matrix_1 = raw.split("\r\n"); for(var i:Number=0;i
L6
L7 thiz.calc(thiz.cost_matrix_1, thiz.path_1, thiz.distance_1); } loader_2 = new LoadVars(); loader_2.load("matrix sibuk.txt"); loader_2.onData = function(raw){ thiz.cost_matrix_2 = raw.split("\r\n"); for(var i:Number=0;i
function calc(matrix, path, distance){ var found:Array = new Array(matrix.length); for(var i:Number=0;i<matrix.length;i++){ found[i] = false;
L8 distance[i] = parseInt(matrix[startNode][i]); path[i]= startNode; } found[startNode] = true; distance[startNode] = 0; for(i=0;i<matrix.length-2;i++){ var next:Number = nextFound(distance, found); found[next] = true; for(var j:Number=0;j<matrix.length;j++){ if(!found[j]
&&
distance[next]+parseInt(matrix[next][j])+10
distance[j]){ distance[j] = distance[next]+parseInt(matrix[next][j])+10; path[j] = next; } } }
function nextFound(distance, found):Number{ var min:Number = 1000000; var pos:Number = -1; for(var i:Number=0;i
<
L9
function getPath(destNode:Number, state:String):Array{ var path:Array = new Array(); var listPath:Array; var listDistance:Array; if(state=="netral"){ listPath = path_1; listDistance = distance_1; } else{ listPath = path_2; listDistance = distance_2; } if(listDistance[destNode]>=1000000) return null; while(destNode!=startNode){ path.push([listPath[destNode],destNode]); destNode = listPath[destNode]; } path.reverse(); for(var i:Number=0;i<path.length;i++){ path[i] = path[i][0]+"-"+path[i][1]; } return path; }
function
getTransit(destNode:Number,
:Array):Array{
state:String,
listTransit
L10 var transit:Array = new Array(); var listPath:Array; var listDistance:Array; var path:Array = new Array(); if(state=="netral"){ listPath = path_1; listDistance = distance_1; } else{ listPath = path_2; listDistance = distance_2; } if(listDistance[destNode]>=1000000) return null; path.push(destNode); while(destNode!=startNode){ path.push(listPath[destNode]); destNode = listPath[destNode]; } path.reverse(); path.shift(); var numTransit:Number = 0; var currKoridor:Number = -1; for(var i:Number=0;i
L11 } } if(currKoridor!=-1)break; } var normal:Boolean=true; var count:Number=0; for(var i:Number=0;i<path.length;i++){ var nextKoridor:Number; do{ var o:Number; for(o=0;o<listTransit.length;o++){ if(path[i]==listTransit[o].data){ if(count!=0){numTransit++;count=0;} if(numTransit!=transit.length){ transit.pop(); } transit.push(listTransit[o].label); count++; break; } } if(o!=listTransit.length) break; count=0; nextKoridor = -1; for(var n:Number=0;n
L12 break; } } if(nextKoridor!=-1)break; } if(currKoridor==nextKoridor)i++; else numTransit++; } while(currKoridor==nextKoridor && i<path.length){ if(i==path.length-1 numTransit!=transit.length){transit.pop();normal=false;} currKoridor = nextKoridor; } if(normal && numTransit!=transit.length){transit.pop();} return transit; }
function getDistance(destNode:Number, state:String):Number{ var listDistance:Array; if(state=="netral"){ listDistance = distance_1; } else{ listDistance = distance_2; } return listDistance[destNode]; } }
&&