• Tidak ada hasil yang ditemukan

Lampiran Kode Program

N/A
N/A
Protected

Academic year: 2021

Membagikan "Lampiran Kode Program"

Copied!
16
0
0

Teks penuh

(1)

Lampiran Kode Program 1. Fw_jemput_penumpang.php <?php include 'fw.php'; $nama_titik_yang_diklik = "titik_klik"; @$nilai_koordinat_semua_titik = $_POST['nilai_koordinat_semua_titik'];

$nilai_koordinat_semua_titik = json_decode("$nilai_koordinat_semua_titik", true);

@$nilai_koordinat_mobil_sekarang = $_POST['nilai_koordinat_mobil_sekarang']; $nilai_koordinat_mobil_sekarang = json_decode("$nilai_koordinat_mobil_sekarang", true);

//tambahkan kedalam nilai koordinat semua titik //buat id mobil

for ($i = 0; $i < count($nilai_koordinat_mobil_sekarang); $i++) {

$nilai_koordinat_semua_titik["M$i"] = $nilai_koordinat_mobil_sekarang[$i]; $id_mobil[$i] = "M$i"; } @$nilai_koordinat_path_yang_di_klik = $_POST['nilai_koordinat_path_yang_di_klik']; $nilai_koordinat_path_yang_di_klik = json_decode("$nilai_koordinat_path_yang_di_klik", true);

//masukkan koordinat yang di klik ke dalam semua koordinat agar dikenali $nilai_koordinat_semua_titik[$nama_titik_yang_diklik] = $nilai_koordinat_path_yang_di_klik; @$nama_koordinat_samping_yang_diklik = $_POST['nama_koordinat_samping_yang_diklik']; $nama_koordinat_samping_yang_diklik = json_decode("$nama_koordinat_samping_yang_diklik", true); @$koordinat_semua_path = $_POST['koordinat_semua_path'];

$koordinat_semua_path = json_decode("$koordinat_semua_path", true);

@$nama_koordinat_samping_mobil = $_POST['nama_koordinat_samping_mobil']; $nama_koordinat_samping_mobil =

(2)

for ($i = 0; $i < count($nilai_koordinat_mobil_sekarang); $i++) { $koordinat_semua_path[] = Array($nama_koordinat_samping_mobil[$i][0], $id_mobil[$i]); $koordinat_semua_path[] = Array($id_mobil[$i], $nama_koordinat_samping_mobil[$i][0]); $koordinat_semua_path[] = Array($nama_koordinat_samping_mobil[$i][1], $id_mobil[$i]); $koordinat_semua_path[] = Array($id_mobil[$i], $nama_koordinat_samping_mobil[$i][1]); } $koordinat_semua_path[] = Array($nama_koordinat_samping_yang_diklik[0], $nama_titik_yang_diklik); $koordinat_semua_path[] = Array($nama_titik_yang_diklik, $nama_koordinat_samping_yang_diklik[0]); $koordinat_semua_path[] = Array($nama_koordinat_samping_yang_diklik[1], $nama_titik_yang_diklik); $koordinat_semua_path[] = Array($nama_titik_yang_diklik, $nama_koordinat_samping_yang_diklik[1]);

foreach ($koordinat_semua_path as $path => $titik_path) {

$x_asal = $nilai_koordinat_semua_titik[$titik_path[0]][0]; $y_asal = $nilai_koordinat_semua_titik[$titik_path[0]][1]; $x_tujuan = $nilai_koordinat_semua_titik[$titik_path[1]][0]; $y_tujuan = $nilai_koordinat_semua_titik[$titik_path[1]][1];

$jarak_path[] = round(sqrt(pow(($x_asal - $x_tujuan), 2) + pow(($y_asal - $y_tujuan), 2)));

}

foreach ($nilai_koordinat_semua_titik as $key => $value) { $key_nilai_koordinat_semua_titik [] = $key;

}

//bentuk matrix

for ($i = 0; $i < count($nilai_koordinat_semua_titik); $i++) { for ($j = 0; $j < count($nilai_koordinat_semua_titik); $j++) { for ($k = 0; $k < count($koordinat_semua_path); $k++) {

if ($key_nilai_koordinat_semua_titik[$i] == $koordinat_semua_path[$k][0] && $key_nilai_koordinat_semua_titik[$j] == $koordinat_semua_path[$k][1]) { $matrix_path[$i][$j] = $jarak_path[$k]; break; } else { $matrix_path[$i][$j] = 0; } } }

(3)

}

//$hasil[] = $matrix_path;

$path_terpendek = Array();

$fw = new Floyd($matrix_path, $key_nilai_koordinat_semua_titik);

//mendapatkan posisi path mobil; $counter = 0;

foreach ($nilai_koordinat_semua_titik as $key => $value) {

for ($i = 0; $i < count($nilai_koordinat_mobil_sekarang); $i++) { if ($id_mobil[$i] == $key) { $index_mobil[] = $counter; } } $counter++; }

//cari path tedekat dengan membandingkan semua mobil for ($i = 0; $i < count($index_mobil); $i++) {

// @$path_terpendek[] = $fw->get_path($index_mobil[$i], count($key_nilai_koordinat_semua_titik) - 1);

@$jarak[$i] = $fw->jarak_terpendek($index_mobil[$i], count($key_nilai_koordinat_semua_titik) - 1);

}

//ambil mobil yang memiliki jarak paling dekat dengan penumpang $id_mobil_terdekat = array_search(min($jarak), $jarak);

//ambil nama mobil, kemudian bandingkan di semua path agar mobil yang terdekat diketahui titiknya

$nama_mobil = $id_mobil[$id_mobil_terdekat];

$i = 0;

foreach ($nilai_koordinat_semua_titik as $key => $value) { if ($key == $nama_mobil) { $id_lokasi_mobil_terdekat = $i; break; } $i++; }

//setelah mobil yang terdekat diperoleh, temukan ambil path yang dilalui oleh mobil paling dekat

@$path_terpendek = $fw->get_path($id_lokasi_mobil_terdekat, count($key_nilai_koordinat_semua_titik) - 1);

//untuk cek apakah looping pertama atau tidak untuk membuat M atau L $status_posisi = 0;

(4)

// buat path dengan ketentuan jalur terpendek foreach ($path_terpendek as $i) {

if ($status_posisi == 0) { $ambil_koordinat = "M" . $nilai_koordinat_semua_titik[$key_nilai_koordinat_semua_titik[$i]][0] . " " . $nilai_koordinat_semua_titik[$key_nilai_koordinat_semua_titik[$i]][1]; $status_posisi++; } else { $ambil_koordinat = "L" . $nilai_koordinat_semua_titik[$key_nilai_koordinat_semua_titik[$i]][0] . " " . $nilai_koordinat_semua_titik[$key_nilai_koordinat_semua_titik[$i]][1]; }

@$path_akhir = $path_akhir . $ambil_koordinat;

$nama_titik_yang_dilalui_terpendek[] = $key_nilai_koordinat_semua_titik[$i]; } $hasil[] = $id_mobil_terdekat; $hasil[] = $jarak[$id_mobil_terdekat]; $hasil[] = $path_akhir; $hasil[] = $nama_titik_yang_dilalui_terpendek; $hasil[] = $jarak[$id_mobil_terdekat]; $hasil[] = $matrix_path; echo json_encode(@$hasil); ?> 2. Fw.php <?php define('INFINITE', pow(2, (20 * 8 - 2) - 1)); class Floyd {

var $panjang_path = array(array()); var $inisialisasi_path = array(array()); var $path;

var $jumlah_path; var $nama_titik; var $temp = array();

function Floyd($matrix_path, $nama_titik='') { $this->path = $matrix_path;

$this->jumlah_path = count($this->path);

if (!empty($nama_titik) && $this->jumlah_path == count($nama_titik)) { $this->nama_titik = $nama_titik;

(5)

$this->__floydwarshall();

// echo $this->jumlah_path . "sss"; }

function __floydwarshall() {

// Initialization

for ($i = 0; $i < $this->jumlah_path; $i++) { for ($j = 0; $j < $this->jumlah_path; $j++) { if ($i == $j) { $this->panjang_path[$i][$j] = 0; } else if ($this->path[$i][$j] > 0) { $this->panjang_path[$i][$j] = $this->path[$i][$j]; } else { $this->panjang_path[$i][$j] = INFINITE; } $this->inisialisasi_path[$i][$j] = $i; } } // Algorithm for ($k = 0; $k < $this->jumlah_path; $k++) { for ($i = 0; $i < $this->jumlah_path; $i++) { for ($j = 0; $j < $this->jumlah_path; $j++) {

if (>panjang_path[$i][$j] > (>panjang_path[$i][$k] + $this->panjang_path[$k][$j])) {

>panjang_path[$i][$j] = >panjang_path[$i][$k] + $this->panjang_path[$k][$j]; $this->inisialisasi_path[$i][$j] = $this->inisialisasi_path[$k][$j]; } } } } } function __get_path($i, $j) { $this->temp = Array(); if ($i != $j) { $this->__get_path($i, $this->inisialisasi_path[$i][$j]); } array_push($this->temp, $j); } function get_path($i, $j) { $this->__get_path($i, $j); return $this->temp;

(6)

} function ambil_path($i, $j) { if ($i != $j) { $this->ambil_path($i, $this->inisialisasi_path[$i][$j]); } if (!empty($this->nama_titik)) { print($this->nama_titik[$j]) . ' '; // $path[] = $this->nama_titik[$j]; } else { print($j) . ' '; } // return $path; } function jarak_terpendek($i, $j) { return $this->panjang_path[$i][$j]; } } ?> 3. Admin.php <?php include 'koneksi.php';

mysql_query("TRUNCATE TABLE lokasi_penumpang"); ?>

<!doctype html> <html>

<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>PTH</title>

<script type="text/javascript" src="js/raphael-min.js"></script> <script type="text/javascript" src="js/jquery.js"></script> <link href="css.css" rel="stylesheet" type="text/css" /> </head>

<body>

<header id="header">

JALUR TERPENDEK DENGAN ALGORITMA FLOYD </header>

<?php include 'include/nav.php'; ?>

(7)

<div id="canvas" style="float: left; background-image:url(img/peta.jpg); background-repeat:no-repeat;"></div>

<div id="canvas" style="float: right; width:19%;height:500px; border:1px solid black; overflow: scroll">

<label style="text-align: center; color: blue;"><h3>Keterangan</h3></label>

<label id="keterangan"></label> </div>

<?php

/* untuk mengambil semua data yang ada pada database yang akan diparsing ke javascript */

$q_titik = mysql_query("SELECT

(SELECT x FROM titik WHERE nama_titik=path.asal)as nilai_asal_x, (SELECT y FROM titik WHERE nama_titik=path.asal)as nilai_asal_y, (SELECT x FROM titik WHERE nama_titik=path.tujuan)as nilai_tujuan_x, (SELECT y FROM titik WHERE nama_titik=path.tujuan)as nilai_tujuan_y, id,

asal, tujuan

FROM path ORDER BY id ASC") or die(mysql_error());

while ($row = mysql_fetch_array($q_titik)) {

@$path[] = "M" . $row['nilai_asal_x'] . " " . $row['nilai_asal_y'] . "L" . $row['nilai_tujuan_x'] . " " . $row['nilai_tujuan_y'];

// @$path[] = "M" . $row['nilai_tujuan_x'] . " " . $row['nilai_tujuan_y'] . "L" . $row['nilai_asal_x'] . " " . $row['nilai_asal_y'];

//untuk mengetahui path yang @$id_path[] = $row['id']; @$nama_path_asal[] = $row['asal']; @$nama_path_tujuan[] = $row['tujuan']; @$nilai_asal_x[] = $row['nilai_asal_x']; @$nilai_asal_y[] = $row['nilai_asal_y']; @$nilai_tujuan_x[] = $row['nilai_tujuan_x']; @$nilai_tujuan_y[] = $row['nilai_tujuan_y'];

@$koordinat_semua_path[] = Array($row['asal'], $row['tujuan']); }

$q_titik_macet = mysql_query("SELECT

(SELECT x FROM titik WHERE nama_titik=path_macet.asal)as nilai_asal_x_macet,

(SELECT y FROM titik WHERE nama_titik=path_macet.asal)as nilai_asal_y_macet,

(SELECT x FROM titik WHERE nama_titik=path_macet.tujuan)as nilai_tujuan_x_macet,

(8)

(SELECT y FROM titik WHERE nama_titik=path_macet.tujuan)as nilai_tujuan_y_macet,

id, asal, tujuan

FROM path_macet ORDER BY id ASC") or die(mysql_error());

while ($row_macet = mysql_fetch_array($q_titik_macet)) {

@$path_macet[] = "M" . $row_macet['nilai_asal_x_macet'] . " " .

$row_macet['nilai_asal_y_macet'] . "L" . $row_macet['nilai_tujuan_x_macet'] . " " . $row_macet['nilai_tujuan_y_macet'];

// @$path[] = "M" . $row['nilai_tujuan_x'] . " " . $row['nilai_tujuan_y'] . "L" . $row['nilai_asal_x'] . " " . $row['nilai_asal_y'];

//untuk mengetahui path yang

@$id_path_macet[] = $row_macet['id']; @$nama_path_asal_macet[] = $row_macet['asal']; @$nama_path_tujuan_macet[] = $row_macet['tujuan']; @$nilai_asal_x_macet[] = $row_macet['nilai_asal_x_macet']; @$nilai_asal_y_macet[] = $row_macet['nilai_asal_y_macet']; @$nilai_tujuan_x_macet[] = $row_macet['nilai_tujuan_x_macet']; @$nilai_tujuan_y_macet[] = $row_macet['nilai_tujuan_y_macet']; @$koordinat_semua_path_macet[] = Array($row_macet['asal'], $row_macet['tujuan']); } // print_r($koordinat_semua_path); // print_r($nama_path_asal); //print_r($nama_path_asal);

//untuk mengambil titik aja agar bisa diambil group berdasarkan nama titik $q_nama_path_asal = mysql_query("SELECT * FROM titik ORDER BY id ASC") or die(mysql_error());

while ($row = mysql_fetch_array($q_nama_path_asal)) { $nama_titik_asal[] = $row['nama_titik']; $nilai_koordinat_semua_titik[$row['nama_titik']] = Array($row['x'], $row['y']); } // print_r($koordinat_xy); // print_r($nama_titik_asal);

//group dari masing-masing titik, pada posisi ini semua simpang diambil nilainya pada masing-masing titik

for ($i = 0; $i <= count($nilai_koordinat_semua_titik); $i++) {

@$q_cabang_titik = mysql_query("SELECT * FROM path WHERE asal='$nama_titik_asal[$i]' ORDER BY id ASC") or die(mysql_error()); while ($row = mysql_fetch_array($q_cabang_titik)) {

(9)

// @${"cabang_titik_$nama_titik_asal[$i]"}[] = $row['id']; //membuat variable dinamis, agar bisa diparsing ke javascript @$cabang_titik[$nama_titik_asal[$i]][] = $row['id'];

} } ?>

<script type="text/javascript"> var mobil = new Array();

var teks_no_mobil =new Array(); var path_mobil= new Array();

//parsing semua nilai yang sudah dimasukkan ke array di php var path_semua = <?php echo json_encode($path); ?>;

var nilai_asal_x= <?php echo json_encode($nilai_asal_x); ?>; var nilai_asal_y= <?php echo json_encode($nilai_asal_y); ?>; var nilai_tujuan_x= <?php echo json_encode($nilai_tujuan_x); ?>; var nilai_tujuan_y= <?php echo json_encode($nilai_tujuan_y); ?>; var nilai_koordinat_semua_titik= <?php echo

json_encode($nilai_koordinat_semua_titik); ?>; var koordinat_semua_path= <?php echo json_encode($koordinat_semua_path); ?>;

var path_semua_macet = <?php echo json_encode($path_macet); ?>;

var nilai_asal_x_macet= <?php echo json_encode($nilai_asal_x_macet); ?>; var nilai_asal_y_macet= <?php echo json_encode($nilai_asal_y_macet); ?>; var nilai_tujuan_x_macet= <?php echo

json_encode($nilai_tujuan_x_macet); ?>;

var nilai_tujuan_y_macet= <?php echo json_encode($nilai_tujuan_y_macet); ?>;

var nilai_koordinat_semua_titik_macet= nilai_koordinat_semua_titik; var koordinat_semua_path_macet= <?php echo

json_encode($koordinat_semua_path_macet); ?>;

var id_path_semua = <?php echo json_encode($id_path); ?>;

var nama_path_asal_semua = <?php echo json_encode($nama_path_asal); ?>;

var nama_path_tujuan_semua = <?php echo json_encode($nama_path_tujuan); ?>;

// var nama_titik_asal_semua = <?php echo json_encode($nama_titik_asal); ?>;

var cabang_titik_semua=<?php echo json_encode($cabang_titik) ?>; // console.log(cabang_titik_semua);

var canvas = Raphael("canvas", 1200, 600);

// canvas.canvas.style.backgroundColor = 'LIGHTBLUE'; var jumlah_taksi = 3;

var path_penumpang = new Array();

(10)

var counter_penumpang = 0; var panjang_path = new Array();

var attr_path_mobil={"stroke": "#000", "stroke-width": "10", opacity:.1}; var attr_path_mobil_macet={"stroke": "RED", "stroke-width":

"10",opacity:.2};

var attr_path_mobil_transparan={"stroke-width": "0", opacity:.1}; var attr_path_mobil_terpendek={"stroke": "RED", "stroke-width": "4"}; var attr_teks_no_mobil = {fill: '#ff0000',"font-size": 16};

var attr_warna_mobil = {fill: 'YELLOW'};

var attr_circle_penumpang = {fill: 'GREEN',opacity:.5};

var attr_teks_panjang_path ={"stroke": "BLUE","font-size": 12}; var attr_teks_penumpang ={"stroke": "BLUE","font-size": 12}; var attr_titik={"stroke": "RED","font-size": 14};

var nilai_koordinat_mobil_sekarang = new Array(); var asal_mobil_sekarang_kirim_php = new Array(); var tujuan_mobil_sekarang_kirim_php = new Array(); var nama_koordinat_samping_mobil = new Array(); var circle_penumpang = new Array();

var status_jemput_penumpang = new Array(); var path_jemput_penumpang = new Array(); var mobil_jemput_penumpang= new Array(); var random_index_asal;

var mobil_yang_sedang_menjemput_penumpang = new Array(); var counter_penumpang = 0;

var keterangan="";

var path_circle_penumpang = new Array();

var jarak_header = 80;

window.onload = function() { //jumlah mobil

for(var i=0; i<jumlah_taksi; i++){

mobil_jemput_penumpang[i] = -1;

mobil_yang_sedang_menjemput_penumpang[i] = -1; //random index path

random_index_asal= Math.floor(Math.random()*path_semua.length);

console.log(random_index_asal);

mobil[i] = canvas.circle(100, 200, 15).attr(attr_warna_mobil); teks_no_mobil[i] = canvas.text(100, 200,"M"+i).attr(attr_teks_no_mobil); path_mobil[i] = canvas.path(path_semua[random_index_asal]).attr(attr_path_mobil_transparan); id_path_yang_sedang_digunakan[i] = id_path_semua[random_index_asal]; asal_sekarang[i] = nama_path_tujuan_semua[random_index_asal];

(11)

counter[i] = 0; }

//

//path sebagain inisialisasi asal, karena variable path yang digunakan untuk animasi

//setelah masuk method animasi maka isi path akan berubah2 // for(var i=0; i<jumlah_taksi; i++){

// }

//hanya menampilkan garis saja agar tidak kelihatan kosong saat mobil berjalan

//garis yang ditampilkan dijadikan path penumpang for(var i=0; i<path_semua.length;i++){

path_penumpang[i] =

canvas.path(path_semua[i]).attr(attr_path_mobil); //buat id masing-masing path

path_penumpang[i].data("id",id_path_semua[i]); // hitung_panjang_path();

var x_tengah = (eval(nilai_asal_x[i]) + eval(nilai_tujuan_x[i]))/eval(2); var y_tengah = (eval(nilai_asal_y[i]) + eval(nilai_tujuan_y[i]))/eval(2); panjang_path[i] = Math.sqrt(Math.pow((nilai_asal_x[i] -

nilai_tujuan_x[i]), 2) + Math.pow((nilai_asal_y[i]- nilai_tujuan_y[i]), 2)); canvas.text(x_tengah, y_tengah,

panjang_path[i].toFixed(0)).attr(attr_teks_panjang_path);

//tampilkan text pada masing-masing titik canvas.text(nilai_asal_x[i],

nilai_asal_y[i],nama_path_asal_semua[i]).attr(attr_titik);

}

for(var i=0; i<path_semua_macet.length;i++){ console.log("macet : " +path_semua_macet[i]); path_penumpang_macet[i] =

canvas.path(path_semua_macet[i]).attr(attr_path_mobil_macet); }

for(var i=0;i<path_penumpang.length; i++){ path_penumpang[i].click(function(event) {

//untuk mendapatkan id path yang diklik, kemudian ambil ujung dari path yang diklik,

//ini berfungsi untuk menambah titik yang diklik pada floyd var id_path_yang_diklik = this.data("id");

var index_yang_diklik;

for(var j=0; j<id_path_semua.length; j++){ if(id_path_semua[j] == id_path_yang_diklik){

(12)

index_yang_diklik = j; break; } } var nama_koordinat_samping_yang_diklik = [nama_path_asal_semua[index_yang_diklik],nama_path_tujuan_semua[index_yang_d iklik]]; //alert(titik_samping_yang_diklik);

var nilai_koordinat_path_yang_di_klik = [event.x, event.y-jarak_header];

// console.log("Tujuan mobil sekarang: "+ koordinat_path_yang_di_klik);

// console.log("koordinat semua titik: "+ koordinat_semua_titik);

//mendapatkan tujuan semua mobil agar bisa dikirim ke floyd var daftar_tujuan_mobil = tujuan_mobil_sekarang();

var nilai_koordinat_mobil_sekarang_yang_tidak_menjemput = new Array();; var counter_mobil_yang_menjemput =0; for(var j=0;j<nilai_koordinat_mobil_sekarang.length; j++){ if(mobil_yang_sedang_menjemput_penumpang[j] == -1){ nilai_koordinat_mobil_sekarang_yang_tidak_menjemput[j] = nilai_koordinat_mobil_sekarang[j]; }else{ } } $.ajax({ type: 'POST', cache: false , url: 'floyd/fw_jemput_penumpang.php', data: { nilai_koordinat_semua_titik:JSON.stringify(nilai_koordinat_semua_titik), koordinat_semua_path:JSON.stringify(koordinat_semua_path), nilai_koordinat_path_yang_di_klik:JSON.stringify(nilai_koordinat_path_yang_di_kli k), nama_koordinat_samping_yang_diklik:JSON.stringify(nama_koordinat_samping_yan g_diklik), nilai_koordinat_mobil_sekarang:JSON.stringify(nilai_koordinat_mobil_sekarang_yan g_tidak_menjemput),

(13)

nama_koordinat_samping_mobil:JSON.stringify(nama_koordinat_samping_mobil) }, success: function(hasil) { console.log(hasil);

var nilai_balik = jQuery.parseJSON(hasil); // path_menjemput_penumpang = canvas.path(nilai_balik[2]).attr(attr_path_mobil_terpendek); // path_mobil[nilai_balik[0]] = canvas.path(path_menjemput_penumpang); status_jemput_penumpang[nilai_balik[0]] = 0; mobil_jemput_penumpang[nilai_balik[0]] = nilai_balik[0]; var random_warna=((1<<24)*Math.random()|0).toString(16); attr_path_mobil_terpendek ={"stroke": "#"+random_warna,"stroke-width": "4"};

var attr_random_warna_penumpang ={"stroke":

"#"+random_warna,"stroke-width": "4", fill:"'#"+random_warna+"'", opacity:0.4};

path_jemput_penumpang[nilai_balik[0]] = canvas.path(nilai_balik[2]).attr(attr_path_mobil_terpendek); //lingkaran penumpang

circle_penumpang[nilai_balik[0]]=canvas.circle(event.x, event.y-jarak_header, 50).attr(attr_random_warna_penumpang);

//tampilkan nama penumpang counter_penumpang++; path_circle_penumpang[nilai_balik[0]] = canvas.text(event.x, event.y-jarak_header,"Penumpang "+counter_penumpang).attr(attr_teks_penumpang); mobil_yang_sedang_menjemput_penumpang[nilai_balik[0]] = 1;

keterangan = "<br/>Mobil : M"+nilai_balik[0] + "<br/> Jarak :" +nilai_balik[4]

+ "<br/>Penumpang :" +"Penumpang "+counter_penumpang + "<br/><br/>"+keterangan; document.getElementById("keterangan").innerHTML = keterangan; var nilai_koordinat_asal_untuk_mengantar = nilai_koordinat_path_yang_di_klik; console.log("Koordinat Penumpang : " + nilai_koordinat_asal_untuk_mengantar); $.ajax({ type: 'POST', cache: false , url: 'floyd/data_penumpang.php', data: {

(14)

operasi:JSON.stringify("insert"), nama_mobil:JSON.stringify("M "+nilai_balik[0]), nama_penumpang:JSON.stringify("Penumpang " + counter_penumpang), koordinat:JSON.stringify(nilai_koordinat_path_yang_di_klik), nama_titik_samping_koordinat:JSON.stringify(nama_koordinat_samping_yang_dikli k) }, success: function(hasil) { //alert(hasil); } }); } }); }); } window.setInterval("method_mobil()", 30); //method_animasi(); }; function hitung_panjang_path(){

for(var i=0; i<path_semua.length;i++){

var x_tengah = (eval(nilai_asal_x[i]) + eval(nilai_tujuan_x[i]))/eval(2); var y_tengah = (eval(nilai_asal_y[i]) + eval(nilai_tujuan_y[i]))/eval(2);

panjang_path[i] = Math.sqrt(Math.pow((nilai_asal_x[i] -

nilai_tujuan_x[i]), 2) + Math.pow((nilai_asal_y[i]- nilai_tujuan_y[i]), 2)); canvas.text(x_tengah, y_tengah,

panjang_path[i].toFixed(0)).attr(attr_teks_panjang_path); }

}

var nilai = new Array();

function tujuan_mobil_sekarang(){ return asal_sekarang;

}

var posisi = new Array();

function method_mobil(){

for(var i = 0; i<mobil.length; i++){ posisi[i] = method_animasi(i);

mobil[i].attr({cx: posisi[i].x, cy: posisi[i].y});

//agar teks ikut bergerak

(15)

nilai_koordinat_mobil_sekarang[i] = [Math.round(posisi[i].x),Math.round(posisi[i].y)] // nilai_koordinat_mobil_sekarang_x[i] = Math.round(posisi[i].x); // nilai_koordinat_mobil_sekarang_y[i] = Math.round(posisi[i].y); } }

var counter = new Array();

var id_path_yang_sedang_digunakan = new Array(); var asal_sekarang = new Array();

var kategori_titik = new Array(); var pos = new Array();

var hasil_random = new Array(); var id = new Array();

function method_animasi(index_mobil){

for(var i=0;i<status_jemput_penumpang.length;i++){ if(status_jemput_penumpang[i] == 0 && index_mobil == mobil_jemput_penumpang[i]){ path_mobil[index_mobil] = path_jemput_penumpang[i]; counter[index_mobil] =0; status_jemput_penumpang[i]++; } } for(var i=0;i<mobil_jemput_penumpang.length;i++){ //jika sudah sampai pada penumpang

if(counter[index_mobil] >= path_mobil[index_mobil].getTotalLength() && index_mobil == mobil_jemput_penumpang[i]){

counter[index_mobil] = 0; mobil_jemput_penumpang[i] = -1; mobil_yang_sedang_menjemput_penumpang[i] = -1; path_mobil[index_mobil] = canvas.path(path_semua[0]); id_path_yang_sedang_digunakan[index_mobil] = id_path_semua[0]; asal_sekarang[index_mobil] = nama_path_tujuan_semua[0]; path_jemput_penumpang[i].remove(); circle_penumpang[i].remove(); path_circle_penumpang[i].remove(); // alert("sampai"); } } if(counter[index_mobil] >= path_mobil[index_mobil].getTotalLength() && index_mobil != mobil_jemput_penumpang){

for(var asal in cabang_titik_semua){ if(asal == asal_sekarang[index_mobil]){

(16)

} }

//console.log("Hasil asal:"+kategori_titik);

for(var i=0; i<=path_semua.length;i++){

if(id_path_yang_sedang_digunakan[index_mobil] ==id_path_semua[i]){ hasil_random[index_mobil] = kategori_titik[index_mobil][Math.floor(Math.random()*kategori_titik[index_mobil].l ength)]; id[index_mobil]=0;

//dapatkan nilai dan ambil indeksnya di array for(var i=0;i<id_path_semua.length;i++){ if(id_path_semua[i] == hasil_random[index_mobil]){ id[index_mobil]=i; break; } } asal_mobil_sekarang_kirim_php[index_mobil] = asal_sekarang[index_mobil]; path_mobil[index_mobil] = canvas.path(path_semua[id[index_mobil]]).attr(attr_path_mobil_transparan); id_path_yang_sedang_digunakan[index_mobil] = id_path_semua[id[index_mobil]]; asal_sekarang[index_mobil] = nama_path_tujuan_semua[id[index_mobil]]; tujuan_mobil_sekarang_kirim_php[index_mobil] = asal_sekarang[index_mobil]; nama_koordinat_samping_mobil[index_mobil] = [asal_mobil_sekarang_kirim_php[index_mobil], tujuan_mobil_sekarang_kirim_php[index_mobil]]; counter[index_mobil]=0; } } }

//ambil x dan y pada posisi counter counter[index_mobil]++; pos[index_mobil] = path_mobil[index_mobil].getPointAtLength(counter[index_mobil]); return pos[index_mobil]; }; </script> </div> </body> </html> <?php include 'include/footer.php'; ?>

Referensi

Dokumen terkait

% eventdata reserved - to be defined in a future version of MATLAB. % handles empty - handles not created until after all

Private Declare Function SetWindowLong Lib &#34;user32&#34; Alias &#34;SetWindowLongA&#34; (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As

[r]

//kosongkan tabel_temp_barang, karena isinya harus dinamis mysql_query(&#34;DELETE FROM tabel_temp_barang WHERE. id_user=$id_user&#34;) or die(&#34;Kosongkan tabel_temp_barang

LAMPIRAN A: Kode

FormMain_menu.Enabled = False formAbout.Show.

Pendidikan Strata 1 (S1) penulis ditempuh di Jurusan Teknik Elektro Fakultas Teknik Universitas Bangka Belitung dengan mengambil konsentrasi Elektronika dan judul

Museum-museum yang berada di bawah pengawasan DMP adalah Museum Sejarah Jakarta, Museum Wayang, Museum Seni Rupa, Museum Keramik, Museum Bahari, Museum