LAMPIRAN A: Nama Jalan Tujuan dan Koordinat

  

LAMPIRAN A: Nama Jalan Tujuan dan Koordinat

No Nama simpan tujuan Koordinat Jl. Gatot Subroto/ Jl

  1 3.59294 , 98.667695

  Sekip

  2 Jl. Perintis Kemerdekaan/ 3.598582, 98.695278 Jl. Prof H. M. Yamin

  3 Jl. Jendral Sudirman/ Jl. 3.577241, 98.666694 Kapten Patimura

  4 Jl. Sriwijaya/ Jl. Abdullah 3.575946, 98.663601 Lubis

  5 Jl. Gaperta/ Jl. T. Amir 3.604484, 98.645497 Hamza

  6 Jl. Jamin Ginting 3.570989, 98.663292

  7 Jl. Setiabudi/ Jl. Dr. 3.56747684265253, 98.6422920227051 Mansyur Jl. Dr. Masnyur/ Jl.

  8 3.56696285630916, 98.6607456207275 Kapten Patimura

  9 Jl. Sunggal/ Jl. Kapten 3.59071300770461, 98.6439335346222 Muslim/ Jl. Gatot Subroto

  10 Jl. Iskandar Muda/ 3.57582908041361, 98.6609601974487 Petisah

  11 Jl. H. Adam Malik / Jl. 3.593414, 98.668915 Gatot Subroto/ Jl. Guru Patimpus

  12 Jl. Medan - Tebing 3.53877883297179, 98.7008285522461 Tinggi/ Jl.

  Sisingamangaraja Jl. Sisingamangaraja / Jl. 13 3.568656, 98.691095

  H. M. Joni

  14 Jl. Karya 3.62206483073233, 98.6651659011841

  15 Jl. Gaperta/ Jl. Melur 3.60495423618751, 98.6331295967102

  16 Jl. Kapten Sumarsono/ Jl. 3.61300632087448, 98.6452746391296 Kapten Muslim Gang Mortir

  17 Jl. Kapten Muslim/ Jl. 3.60469725358653, 98.6448669433594 Gaperta

  18 Jl. Ahmad Yani/ Jl. Balai 3.59004912546251, 98.677761554718 Kota

  19 Jl. Ahmad Yani/ Jl. Kom L 3.58758633228455, 98.6787915229797 Yos Sudarso

  20 Jl. Setiabudi/ Jl. Arteri 3.54619970978316, 98.6261773109436 ringroad

  21 Jl. Setiabudi/ Jl. Jamin 3.52016748390514, 98.6190533638 Ginting

  22 Jl. T. Amir Hamza/ Jl. 3.60675311236088, 98.6652946472168 Karya

  23 Jl. Darussalam/Jl. Gajah 3.5847380501588, 98.6531066894531 Mada

  24 Jl. Halat/ Jl. Arif Rahman 3.57218837073343, 98.7031674385071 Hakim

  25 Jl. Gatot Subroto/ Jl. K.H. 3.58989921650233, 98.6583209037781 Wahid Hasyim

  26 Jl. Gatot Subroto/ Jl. 3.59011337215219, 98.6532783508301 Abdul Hamid/ Jl.

  Darussalam

  27 Jl. Gajah Mada/ Jl. K.H. 3.58467380309123, 98.6572265625 Wahid Hasyim

  28 Jl. Iskandar Muda/ Jl. 3.57167438702665, 98.6609816551208 Jamin Ginting/ Jl. Kapten Patimura

  29 Jl. A.R.Hakim/ Jl. H.M. 3.56833348591936, 98.7030601501465 Joni/ Jl. Bahagia

  30 Jl. Asrama/ Jl. Budi Luhur 3.59634527955603, 98.6273789405823

  31 Jl. Sei Batang Hari/ Jl. 3.5851877795054, 98.6413478851318 Kutilang/ Jl. Setia Budi/ Jl.

  Sunggal

  32 Jl. Jamin Ginting/ Jl. 3.540438, 98.654117 Medan

  • – Tebing Tinggi

  33 Jl. Sisingamangaraja/ Jl. 3.57218837073343, 98.6894989013672 Polonia/ Jl. Halat/ Jl.

  Cirebon

  34 Jl. Kenanga Raya/ Jl. 3.56152314989888, 98.6376786231995 Setiabudi

  35 Jl. Sunggal/ Jl. Medan- 3.57818482603349, 98.626434803009 Tebing Tinggi

  36 Jl. Gaperta Ujung/ Jl. 3.60508272746079, 98.6280655860901 Gaperta/ Jl. Asrama

  37 Jl. Kapten Sumarsono/ Jl. 3.61519065068296, 98.6516904830933 Setia Budi/ Gang Mesjid

  38 Jl. Kapten Sumarsono/ Jl. 3.62472026325773, 98.663170337677 Karya

  39 Jl. Abdullah Lubis/ Jl. 3.57665359206928, 98.66370677948 Sriwijaya Jl. T. Amir Hamza/ Jl.

  40 3.60666745167143, 98.6691784858704 Bambu II/ Jl. H. Adam Malik

  41 Jl. Helvetia/ Jl. Kapten 3.61572602483334, 98.6328077316284 Sumarsono

  42 Gang Gayo/ Jl. Setiabudi 3.55861053797465, 98.6263275146484

  43 Jl. Kapten Patimura/ Jl. 3.57283084996211, 98.6619472503662 Cinge/ Jl. Jamin Ginting

  44 Jl. Kapten Patimura/ Jl. 3.57657863649487, 98.666421175003 Abdullah Lubis

  45 Jl. Budi Luhur/ Gang 3.59576706313517, 98.6337947845459 Banteng

  46 Jl. J. S. Parman/ Jl. 3.57912712258578, 98.6672902107239 Kapten Patimura / Jl.

  Dokter TD Pardede

  47 Jl. Dokter TD Pardede / Jl. 3.57919137004269, 98.6636745929718 Sriwijaya

  48 Jl. Iskandar Muda/ Jl. 3.57925561749509, 98.6610567569733 Dokter TD Pardede

  49 Jl. Iskandar Muda/ Jl. 3.58459884817336, 98.6612606048584 Gajah Mada

  50 Jl. Gajah Mada / Jl. J. S. 3.58415982638822, 98.6669039726257 Parman

  51 Jl. Glugur/ Jl. J. S. Parman 3.58986709315052, 98.6689531803131

  52 Jl. Kapten Maulana Lubis/ 3.59150538265199, 98.6712598800659 Jl. Gatot Subroto/ Jl. J. S.

  Parman

  53 Jl. Kapten Maulana Lubis/ 3.58947090505196, 98.6741995811462 Jl. Imam Bonjol

  54 Jl. Imam Bonjol / Jl. KH. 3.58365655725334, 98.6751544475555 Zainul Arifin/ Jl. Palang Merah

  55 Jl. Palang Merah/ Jl. 3.58463097171034, 98.6806046962738 Pemuda/ Jl. Kom L Yos Sudarso Jl. Palang Merah/ Jl.

  56 3.59562786283093, 98.6756265163422 Pemuda/ Jl. Kom L Yos Sudarso

  57 Jl. Darussalam/ (Grand 3.58731863697388, 98.6531925201416 Kanaya Hotel)

  58 Jl. Darusalam/ Grand 3.58732934478782, 98.6542439460754 Kanaya Hotel

  59 Jl. Setia Budi/ Gang Gayo 3.55880328463659, 98.63560795784

  60 Jl. Melati Raya/ Jl. 3.54092050626844, 98.6223793029785 Flamboyan Raya/ Jl.

  Setiabudi Jl. Matahari Raya/ Jl. 61 3.61037226911223, 98.6334407329559

  Melur (Helvetia)

  62 Jl. Melati Raya/ Jl. 3.61050075961939, 98.6276149749756 Asrama/ Jl. Helvetia

  63 Jl. Kapten Sumarsono/ Jl. 3.61877765145288, 98.6556172370911 Pringgan

  64 Jl. Pringgan / Jl. Karya II 3.619061398669, 98.6465030908585

  65 Jl. Karya II/ Jl. Kapten 3.61538873915544, 98.6457359790802 Sumarsono

  66 Jl. Rajawali/ Jl. Merak/ Jl. 3.58448106186143, 98.6332583427429 Kasuari

  67 Jl. Medan - Tebing 3.58479158937832, 98.6268961429596 Tinggi/ Jl. Merak/ Jl.

  Kasuari

  68 Jl. Rajawali / Jl. Sunggal 3.57966251792229, 98.6332368850708

  69 Jl. Kasuari persimpangan 3.58414911853716, 98.6411869525909 2/ Jl. Sunggal/ Jl.

  Setiabudi

  70 Jl. KH. Wahid Hasyim 3.58696527904377, 98.6572909355164

  71 Jl. Gatot Subroto/ Jl. 3.59075583880042, 98.6614966392517 Iskandar Muda (Medan Plaza ) Jl. Sei Serayu/ Jl.

  72 3.576971, 98.652795 Darusalam

  73 Jl. Budi Pembangunan/ Jl. 3.62232180841407, 98.6700582504272 Kom L Yos sudarso

  74 Jl. Pertempuran/ Jl. 3.62842500689912, 98.6693930625915 Cemara

  75 Jl. Pertempuran 3.6276326641598065, 98.66256952285767

  76 Jl. Prof. HM. Yamin/ Jl. A. 3.59771586516263, 98.7063217163086 R. Hakim

  77 Jl. Kom L Yos Sudarso/ Jl. 3.60680665028768, 98.6740064620972 T. Amir Hamza/ Jl.

  Bambu II

  78 Jl. Imam Bonjol/ RS 3.58615148450331, 98.67373824119568 Columbia Medan Jl. Iskandar Muda/ Jl.

  79 3.5767392555753794 98.66094946861267

  Abdullah Lubis

  80 Jl. Gatot Subroto/ RS 3.59029540441509, 98.6497700214386 Advent Medan

  81 Jl. IR. H. Juanda/ Jl. Cinge 3.572723770121901 , 98.67196798324585

  82 Jl. Sudirman/ Jl. IR. H. 3.57503669189, 98.6701226234436 Juanda

  83 Jl. Budi Luhur/ Jl. Kapten 3.59503893823173, 98.6445879936218 Muslim Jl. KH. Zainul Arifin/ Jl.

  84 3.583557, 98.672774 Pangeran Diponegoro

  85 Jl. Pangeran Diponegoro/ 3.586895, 98.672917 Jl. Perdana/ Jl. Kejaksaan

  86 Jl pintu 1/ Jl.DR mansyur 3.56736 , 98.660069

  87 Jl. Setia Budi/ Jl castus 3.563935 , 98.639305 raya

  88 Jl.Setia Budi/ Gang 3.556876 , 98.634055 Rambutan 1

  89 Jl.Setia Budi/ JL. Bunga 3.55141, 98.630122 Cempaka

  90 Jl. Setia Budi/ Jl.Bunga 3.549918 , 98.629031 Wijaya Kusuma

  91 JL.Setia Budi/ Pasar 1 3.558811 , 98.635494

  92 Jamin Ginting Carefour 3.549136 ,98.659674

  93 Jl.Jamin Ginting/ JL.Pintu 3.538154 , 98.652124 air IV

  94 Jl. Ngumbar Surbakti 3.540432 , 98.649541

  95 Setia Budi/Mie Aceh Titi 3.583788 , 98.642293 Bobrok

  96 Jl.Setia Budi/UMA 3.576234 98.642948

  

LAMPIRAN B: Nama Jalan SPBU dan Koordinat

NO No SPBU Alamat Koordinat

  1 14.20111.34 Jl. Setiabudi 3.577456 , 98.643149 2 14.201120 JL. KOM L Yos Sudarso

  3.5867725382974 ,98.6792421340942 3 24-201133 JL.by Pass / Kapt 3.61534055547693 ,98.645167350769

  Sumarsono 81, Medan Kota 4 11201104 Jl. Gatot Subroto,

  3.592576 , 98.669926 Medan Petisah km 12 5 14.201139 Jl. Asrama, Medan

  3.5930901304831, 98.6271750926971 Sunggal 6 14201123 3.59109848749464, 98.6410582065582

  Jl .Gatot Subroto KM, 5.2 7 14.2021.26 Jl. Gatot Subroto, 3.591163, 98.633444 samping Jl. Rajawali 8 14.202101 Jl. Sisingamaraja 3.540134, 98.700041

  9 11-201103 Jl. Sisingamangaraja 3.56859, 98.695278 No 45 10 14.20111.50 JL. Kasuari, No. 55, 3.58422407349188, 98.637056350708 Medan Sunggal 11 14.202102 JL. Sisingamangaraja, 3.54828782456003, 98.6990261077881 Km. 6, 5 No. 28 12 14.201.109 JL Jamin Ginting 3.54032083824458, 98.6541366577148

  13 11.201.102 JL. Ahmad 3.58799322900655, 98.6791616678238 Yani/Jl.Kumango 14 14.201.1148 Jl. Dr Mansyur No.10 3.56750896678945, 98.6517602205276

  15 14-291125 Jl. Jend. Gatot Subroto, 3.594289, 98.6269 Medan Sunggal, Medan

  16 14-201121 Jl.Ngumban Surbakti/Jl 3.540623, 98.636781 Medan Tebing 17 14.201103 Jl. Setia Budi 3.566002, 98.640933

  18 14-201145 Jl. Karya, Medan 3.613606, 98.665634 19 14.203.199 Jl. jamin Ginting 3.532578, 98.645529 20 14.201.1144 Jl. Setiabudi /Jl.Jamin 3.522116, 98.619411

  Ginting 21 14 201192 Jl. Gajah Mada 3.58482371290854, 98.6542654037476 22 14.201.128 Jl. Jamin Ginting 3.524123, 98.62821 23 14-202140 JL. Arif Rahman Hakim 3.576814, 98.703375

  , Tegal Sari III, Medan Kota, 24 14.201.1154 Jl. Ir. H. Juanda No 64 3.57193137891601, 98.6816883087158 Medan Maimun 25 14.20211155 Jl. Merbabu, Medan 3.589664, 98.649817 Kota 26 14-201111 Jl. Kapten Muslim, 3.605597, 98.64481 Medan JL.Melur , Helvetia, 27 14-201110 3.60741698243039, 98.6333227157593 Medan Kota 28 24-14201139 Jl. Bahagia By Pass, 3.568248, 98.702145 Medan Kota 29 14.201.1165 Jl. Jamin Ginting 3.56178442788753, 98.6625630856543

  30 142011147 Jl. Sunggal / Jl. Kapten 3.59048, 98.643855 Muslim

  

LAMPIRAN C: Kode Program

  spbu.medan;

  public

  class KoneksiMethod extends Koneksi { // String URL = "http://10.0.2.2/SPBU_kotamedan/android.php"; String URL = "http://192.168.97.1/SPBU_kotamedan/android.php"; String url = ""; String response = "";

  public

  String tampil_daftar_titik() {

  return koneksiManager("?operasi=tampil_daftar_titik",

  "tampil_daftar_titik"); }

  public String tampil_daftar_spbu() { return

  koneksiManager("?operasi=tampil_daftar_spbu", "tampil_daftar_spbu");

  }

  public

  String cari_titik_terdekat(String lang, String ltd, String id_titik_tujuan) {

  return

  koneksiManager("?operasi=cari_titik_terdekat&lang=" + lang

  • "&ltd=" + ltd + "&id_titik_tujuan=" + id_titik_tujuan,

  "cari_titik_terdekat"); }

  public String cari_titik_koordinat_terdekat(String lang, String

  ltd, String id_titik_tujuan) {

  return

  koneksiManager("?operasi=cari_titik_koordinat_terdekat&lang="

  • lang + "&ltd=" + ltd + "&id_titik_tujuan="
  • id_titik_tujuan,

  "cari_titik_koordinat_terdekat"); }

  public String tampil_titik_koordinat_terdekat() { return

  koneksiManager("?operasi=tampil_titik_koordinat_terdekat", "cari_titik_koordinat_terdekat");

  }

  public

  String koneksiManager(String url, String keterangan) {

  try

  {

  //call("http://192.168.97.1/SPBU_kotamedan/android.php?operasi= tampil_titik_koordinat_terdekat") response = call(URL + url); System.out.println("url : " + URL + url);

  } catch (Exception e) { System.out.println(e.toString());

  } System.out.println("Hasil " + keterangan + " : "

  • String.valueOf(response));

  return response;

  } }

  package spbu.medan; import android.app.AlertDialog; import android.app.Service; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.os.IBinder; import android.provider.Settings; public class GpsService extends Service implements LocationListener { private final Context _context;

  // cek apakah GPS aktif ? boolean isGPSEnable = false; // cek network aktif ? boolean isNetworkEnable = false; boolean canGetLocation = false; Location location; double latitude; double longitude; // GPS akan update ketika jarak sudah berubah lebih dari 10 meter private static final long MIN_JARAK_GPS_UPDATE = 10; // meter // GPS akan update pada waktu interval private static final long MIN_WAKTU_GPS_UPDATE = 1000 * 60 * 1; protected LocationManager locManager; public GpsService(Context context) { _context = context; getLocation();

  } private Location getLocation() { try { locManager = (LocationManager) _context

  .getSystemService(LOCATION_SERVICE); // cek GPS status isGPSEnable = locManager

  .isProviderEnabled(LocationManager.GPS_PROVIDER); // cek status koneksi isNetworkEnable = locManager

  .isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (!isGPSEnable && !isNetworkEnable) { // tidak ada koneksi ke GPS dan Jaringan

  } else { // bisa dapatkan lokasi canGetLocation = true; // cek apakah koneksi internet bisa ? if (isNetworkEnable) {

  // ambil posisi berdasarkan Network locManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER,

  MIN_WAKTU_GPS_UPDATE, MIN_JARAK_GPS_UPDATE, this); if (locManager != null) {

  // ambil posisi terakhir user menggunakan Network location = locManager

  .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); // jika lokasi berhasil didapat if (location != null) {

  // ambil latitude latitude = location.getLatitude();

  // ambil longitude longitude = location.getLongitude();

  } }

  } // jika gps bisa digunakan if (isGPSEnable) { if (location == null) {

  // ambil posisi berdasar GPS locManager.requestLocationUpdates( LocationManager.GPS_PROVIDER,

  MIN_WAKTU_GPS_UPDATE, MIN_JARAK_GPS_UPDATE, this); if (locManager != null) {

  // dapatkan posisi terakhir user menggunakan GPS location = locManager

  .getLastKnownLocation(LocationManager.GPS_PROVIDER); // jika lokasi berhasil didapat if (location != null) {

  // ambil latitude latitude = location.getLatitude();

  // ambil longitude longitude = location.getLongitude();

  } }

  } }

  } } catch (Exception e) { e.printStackTrace();

  } return location; } @Override public void onLocationChanged(Location location) {

  // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) {

  // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) {

  // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) {

  // TODO Auto-generated method stub

  } @Override public IBinder onBind(Intent intent) {

  // TODO Auto-generated method stub return null; } public double getLatitude() { if (location != null) latitude = location.getLatitude(); return latitude;

  } public void setLatitude(double latitude) { this.latitude = latitude;

  } public double getLongitude() { if (location != null) longitude = location.getLongitude(); return longitude;

  } public void setLongitude(double longitude) { this.longitude = longitude;

  } public boolean canGetLocation() { return this.canGetLocation;

  } public void showSettingAlert(final Context contextForDialog) { AlertDialog.Builder alertDialog = new

  AlertDialog.Builder( contextForDialog); // title Alertnya alertDialog.setTitle("Pengaturan GPS"); // pesan alert alertDialog.setMessage("GPS Tidak Aktif. Aktifkan GPS?"); alertDialog.setPositiveButton("Setting", new DialogInterface.OnClickListener() {

  @Override public void onClick(DialogInterface dialog, int which) {

  Intent intent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS); contextForDialog.startActivity(intent);

  } }); alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

  @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel();

  } }); alertDialog.show();

  } public void stopUsingGPS() { if (locManager != null) locManager.removeUpdates(GpsService.this);

  } }

  <?php set_time_limit(300); include 'koneksi.php'; include 'belman/bellman_ford.php'; @$operasi = strtolower($_GET['operasi']); if ($operasi == "cari_titik_koordinat_terdekat") { $lang = $_GET['lang']; $ltd = $_GET['ltd']; $id_titik_tujuan = $_GET['id_titik_tujuan']; $array_titik_terdekat = cari_titik_terdekat_menuju_tujuan($lang, $ltd, $id_titik_tujuan); $hasil [] = array('id' => 0, 'no_spbu' => '', 'nama_titik_lengkap' => 'Titik Asal', 'alamat' => '', 'lang' => $lang, 'lng' => $ltd); for ($i = 1; $i < count($array_titik_terdekat); $i++) { $q = mysql_query("SELECT * FROM titik WHERE id=$array_titik_terdekat[$i]") or die(mysql_error()); $hasil[] = mysql_fetch_assoc($q); } $q_temp_jarak_terdekat = mysql_query("SELECT * FROM `temp_jarak` ORDER BY `jarak_ke_spbu`+`jarak_spbu_ke_tujuan` ASC"); $q_temp = mysql_query("SELECT * FROM temp_jarak ORDER BY jarak_ke_spbu+jarak_spbu_ke_tujuan ASC LIMIT 3") or die(mysql_error()); while ($row_temp = mysql_fetch_array($q_temp)) { $jarak = $row_temp['jarak_ke_spbu'] + $row_temp['jarak_spbu_ke_tujuan']; $id = $row_temp['id']; $q_titik = mysql_query("SELECT * FROM titik WHERE id=$id") or die(mysql_error()); $r_titik = mysql_fetch_array($q_titik); $hasil[] = array('id' => $id, 'no_spbu' => $r_titik['no_spbu'], 'nama_titik_lengkap' => $r_titik['nama_titik_lengkap'], 'alamat' => $r_titik['alamat'], 'lang' => $r_titik['lang'], 'lng' => $r_titik['lng'], 'jarak_asal_ke_spbu' =>

  $row_temp['jarak_ke_spbu'],'jarak_spbu_ke_tujuan' => $row_temp['jarak_spbu_ke_tujuan']); } if(count($hasil) == 3){ echo json_encode($hasil);

  }else{ }

  } else if ($operasi == "tampil_daftar_spbu") { $q = mysql_query("SELECT * FROM titik WHERE no_spbu !=''"); while ($row = mysql_fetch_assoc($q)) { $array_spbu[] = $row; } echo json_encode($array_spbu); } else if ($operasi == "tampil_daftar_titik") { $q = mysql_query("SELECT * FROM titik WHERE no_spbu =''"); while ($row = mysql_fetch_assoc($q)) { $array_spbu[] = $row; } echo json_encode($array_spbu); } function Bellman_Ford($array_relasi_titik, $asal, $tujuan) { $path = array(); $samping = array(); //1. tentukan semua titik yang menjadi tujuan foreach ($array_relasi_titik as $relasi) { array_push($path, $relasi[0], $relasi[1]); $samping[$relasi[0]][] = array("tujuan" => $relasi[1], "jarak" => $relasi[2]); $samping[$relasi[1]][] = array("tujuan" => $relasi[0], "jarak" => $relasi[2]); } $path = array_unique($path); foreach ($path as $vertex) { $titik_sekarang[$vertex] = INF; $titik_sebelumnya[$vertex] = NULL; } $titik_sekarang[$asal] = 0; $path_temp = $path; while (count($path_temp) > 0) { //cari nilai yang paling kecil $min = INF; foreach ($path_temp as $vertex) { if ($titik_sekarang[$vertex] < $min) {

  $min = $titik_sekarang[$vertex]; $u = $vertex; } } $path_temp = array_diff($path_temp, array($u)); if ($titik_sekarang[$u] == INF or $u == $tujuan) { break; } if (isset($samping[$u])) { foreach ($samping[$u] as $arr) { $alt = $titik_sekarang[$u] + $arr["jarak"]; if ($alt < $titik_sekarang[$arr["tujuan"]]) { $titik_sekarang[$arr["tujuan"]] = $alt; $titik_sebelumnya[$arr["tujuan"]] = $u; } } } } $path = array(); $u = $tujuan; while (isset($titik_sebelumnya[$u])) { array_unshift($path, $u); $u = $titik_sebelumnya[$u]; } array_unshift($path, $u); return $path; } ?>