LAMPIRAN A : LISTING PROGRAM 1. Listing Program Eclipse (Java dan XML) • MainActivity.java package com.mobilegisdijkstra; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button btnMenu; private Button btnCaraPenggunaan; private Button btnTentangAplikasi; public void onCreate(Bundle savedInstanceState) { final Context context = this; super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnMenu = (Button) findViewById(R.id.button1); btnCaraPenggunaan = (Button) findViewById(R.id.button2); btnTentangAplikasi = (Button) findViewById(R.id.button3); btnMenu.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(context, MenuPilihan.class); startActivity(intent); } }); btnCaraPenggunaan.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(context, CaraPenggunaan.class); startActivity(intent); } }); btnTentangAplikasi.setOnClickListener(new OnClickListener()) { @Override public void onClick(View arg0) { Intent intent = new Intent(context, TentangAplikasi.class); startActivity(intent); } }); } } • Activity_main.xml • CaraPenggunaan.java package com.mobilegisdijkstra; import android.os.Bundle; import android.app.Activity; public class CaraPenggunaan extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_howtouse); } } • layout_howtouse.xml • TentangAplikasi.java package com.mobilegisdijkstra; import android.os.Bundle; import android.app.Activity; public class TentangAplikasi extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_about); } } • layout_about.xml • MenuPilihan.java package com.mobilegisdijkstra; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MenuPilihan extends MainActivity { private Button btnTampilPeta; private Button btnCariRuteTerpendek; private Button btnCaraPenggunaan; public void onCreate(Bundle savedInstanceState) { final Context context = this; super.onCreate(savedInstanceState); setContentView(R.layout.layout_enterapp); btnTampilPeta = (Button) findViewById(R.id.button1); btnCariRuteTerpendek = (Button) findViewById(R.id.button2); btnCaraPenggunaan = (Button) findViewById(R.id.button3); btnTampilPeta.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(context, TampilPeta.class); startActivity(intent); } }); btnCariRuteTerpendek.setOnClickListener(new OnClickListener()) { @Override public void onClick(View arg0) { Intent intent = new Intent(context, PilihVerteks.class); startActivity(intent); } }); btnCaraPenggunaan.setOnClickListener(new OnClickListener()) { @Override

Universitas Sumatera Utara

public void onClick(View arg0) { Intent intent = new Intent(context, CaraPenggunaan.class); startActivity(intent); } }); } } • layout_enterapp.xml • TampilPeta.java package com.mobilegisdijkstra; import com.mobilegisdijkstra.R; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity;

Universitas Sumatera Utara

import android.view.MotionEvent; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.webkit.WebView; import android.widget.ViewFlipper; public class TampilPeta extends Activity { private ViewFlipper vf; private WebView webView; private float oldTouchValue; @SuppressLint("SetJavaScriptEnabled") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_vf_showmap); vf=(ViewFlipper)findViewById(R.id.ViewFlipper01); webView = (WebView) findViewById(R.id.webView2); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("http://10.0.2.2:8081/geoserver/workspaceUSU/wms?servic e=WMS&version=1.1.0&request=GetMap&layers=grupUSU&styles=&bbox= 6.222626893282417,4.485378590078277,426.6114958610236,566.11317665 02311&width=1212&height=572&srs=EPSG:23845&format=application/ope nlayers"); } @Override public boolean onTouchEvent(MotionEvent touchevent) { switch (touchevent.getAction()) { case MotionEvent.ACTION_DOWN: { oldTouchValue = touchevent.getX(); break; } case MotionEvent.ACTION_UP: { float currentX = touchevent.getX(); if (oldTouchValue < currentX) { vf.setInAnimation(inFromLeftAnimation()); vf.setOutAnimation(outToRightAnimation()); vf.showNext(); } if (oldTouchValue > currentX) { vf.setInAnimation(inFromRightAnimation()); vf.setOutAnimation(outToLeftAnimation()); vf.showPrevious(); } break; } } return false; } public static Animation inFromRightAnimation() {

Universitas Sumatera Utara

Animation inFromRight = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); inFromRight.setDuration(350); inFromRight.setInterpolator(new AccelerateInterpolator()); return inFromRight; } public static Animation outToLeftAnimation() { Animation outtoLeft = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); outtoLeft.setDuration(350); outtoLeft.setInterpolator(new AccelerateInterpolator()); return outtoLeft; } public static Animation inFromLeftAnimation() { Animation inFromLeft = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); inFromLeft.setDuration(350); inFromLeft.setInterpolator(new AccelerateInterpolator()); return inFromLeft; } public static Animation outToRightAnimation() { Animation outtoRight = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); outtoRight.setDuration(350); outtoRight.setInterpolator(new AccelerateInterpolator()); return outtoRight; } } • layout_vf_showmap.xml • layout_vf_showmap_legend.xml

Universitas Sumatera Utara



Universitas Sumatera Utara



Universitas Sumatera Utara

• layout_vf_showmap_map.xml • PilihVerteks.java package com.mobilegisdijkstra; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.Button; import android.widget.Spinner; import android.widget.TextView; import android.widget.ArrayAdapter; public class PilihVerteks extends Activity { TextView tvIDTitikAwal; TextView tvIDTitikAkhir; Spinner spinTitikAwal; Spinner spinTitikAkhir; Button btndijkstra; public Context context = this; public String nilai_id1, nilai_id2;

Universitas Sumatera Utara

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_chooseverteks); tvIDTitikAwal = (TextView) findViewById(R.id.textView12); tvIDTitikAkhir = (TextView) findViewById(R.id.textView13); spinTitikAwal = (Spinner) findViewById(R.id.spinner1); spinTitikAkhir = (Spinner) findViewById(R.id.spinner2); btndijkstra = (Button) findViewById(R.id.button1); btndijkstra.setOnClickListener(listenerdijkstra); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.fakultas_array,android.R.layout.simple_spinner_dropdown_item); spinTitikAwal.setAdapter(adapter); spinTitikAkhir.setAdapter(adapter); spinTitikAwal.setOnItemSelectedListener(listener1); spinTitikAkhir.setOnItemSelectedListener(listener2); } public OnItemSelectedListener listener1 = new OnItemSelectedListener() { @Override public void onItemSelected (AdapterView parent, View view, int pos, long id) { String ids [] = getResources().getStringArray(R.array.id_array); nilai_id1 = ids [pos]; tvIDTitikAwal.setText(nilai_id1); } @Override public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }; public OnItemSelectedListener listener2 = new OnItemSelectedListener() { @Override public void onItemSelected (AdapterView parent, View view, int pos, long id) { String ids [] = getResources().getStringArray(R.array.id_array); nilai_id2 = ids [pos]; tvIDTitikAkhir.setText(nilai_id2); } @Override public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }; public OnClickListener listenerdijkstra = new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(context, HasilProsesDijkstra.class); intent.putExtra("titikAwal", tvIDTitikAwal.getText().toString()); intent.putExtra("titikAkhir", tvIDTitikAkhir.getText().toString());

Universitas Sumatera Utara

intent.putExtra("ttkawl", tvIDTitikAwal.getText().toString()); intent.putExtra("ttkakr", tvIDTitikAkhir.getText().toString()); startActivity(intent); } }; } • layout_chooseverteks.xml

Universitas Sumatera Utara

• HasilProsesDijkstra.java package com.mobilegisdijkstra; import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.PriorityQueue; import javax.xml.parsers.DocumentBuilder;

Universitas Sumatera Utara

import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import com.mobilegisdijkstra.model.Edge; import com.mobilegisdijkstra.model.Verteks; import com.mobilegisdijkstra.PilihVerteks; import android.content.res.AssetManager; import android.os.Bundle; import android.view.MotionEvent; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.webkit.WebView; import android.widget.TextView; import android.annotation.SuppressLint; import android.widget.ViewFlipper; public class HasilProsesDijkstra extends PilihVerteks { TextView hasil, jarak; private WebView wvPeta; private ViewFlipper vf; private float oldTouchValue; public void cariJalurDijkstra(Verteks asal) { asal.jarakTerpendek = 0.; PriorityQueue antrianVerteks = new PriorityQueue(); antrianVerteks.add(asal); while (!antrianVerteks.isEmpty()) { Verteks u = antrianVerteks.poll(); for (Edge e : u.tetangga) { Verteks v = e.tujuan; double bobot = e.bobot; double jarakMelewatiU = u.jarakTerpendek + bobot; if (jarakMelewatiU < v.jarakTerpendek) { antrianVerteks.remove(v); v.jarakTerpendek = jarakMelewatiU ; v.previous = u; antrianVerteks.add(v); } } } } public List cariJalurTerpendekKe(Verteks tujuan) { List jalur = new ArrayList(); for (Verteks verteks = tujuan; verteks != null; verteks = verteks.previous) jalur.add(verteks); Collections.reverse(jalur);

Universitas Sumatera Utara

return jalur; } public int parseString(String s) { return Integer.parseInt(s); } public Verteks[] parsingVerteks(String XMLName) { try { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); AssetManager assetManager = getAssets(); InputStream fileInputStream = assetManager.open(XMLName); Document doc = dBuilder.parse(fileInputStream); doc.getDocumentElement().normalize(); NodeList nlVerteks = doc.getElementsByTagName("Vertex"); NodeList nlChildVerteks; Verteks[] nVertices = new Verteks[nlVerteks.getLength()]; NodeList nListEdge; NodeList nListChildEdge; String idVerteks; String namaVerteks; String idEdge; String namaEdge; String jarak; for (int indeksVerteks = 0 ; indeksVerteks < nlVerteks.getLength(); indeksVerteks++) { Element eVertex = (Element) nlVerteks.item(indeksVerteks); nlChildVerteks = eVertex.getChildNodes(); idVerteks = nlChildVerteks.item(1).getTextContent(); namaVerteks = nlChildVerteks.item(3).getTextContent(); nVertices[indeksVerteks] = new Verteks(idVerteks, namaVerteks); } for (int indeksVerteks = 0 ; indeksVerteks < nlVerteks.getLength(); indeksVerteks++) { Element eVertex = (Element) nlVerteks.item(indeksVerteks); nListEdge = eVertex.getElementsByTagName("Edge"); Edge[] arrayEdge = new Edge[nListEdge.getLength()]; for (int indexEdge = 0 ; indexEdge < nListEdge.getLength() ; indexEdge++) { Element eEdge = (Element) nListEdge.item(indexEdge); nListChildEdge = eEdge.getChildNodes(); idEdge = nListChildEdge.item(1).getTextContent(); namaEdge = nListChildEdge.item(3).getTextContent(); jarak = nListChildEdge.item(5).getTextContent(); arrayEdge[indexEdge] = new Edge(nVertices[parseString(idEdge)], parseString(jarak), namaEdge); } nVertices[indeksVerteks].tetangga = new Edge[arrayEdge.length];

Universitas Sumatera Utara

System.arraycopy(arrayEdge, 0, nVertices[indeksVerteks].tetangga, 0, arrayEdge.length); } return nVertices; } catch(Exception e) { e.printStackTrace(); } return null; } @SuppressLint("SetJavaScriptEnabled") public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_vf_result); vf=(ViewFlipper)findViewById(R.id.ViewFlipper02); hasil = (TextView) findViewById(R.id.textView12); jarak = (TextView) findViewById(R.id.textView30); wvPeta = (WebView) findViewById(R.id.webView2); wvPeta.getSettings().setJavaScriptEnabled(true); Bundle extras = getIntent().getExtras(); int titikAwal = parseString(extras.getString("titikAwal")); int titikAkhir = parseString(extras.getString("titikAkhir")); String grafisVerteksAwal = extras.getString("ttkawl"); String grafisVerteksAkhir = extras.getString("ttkakr"); String urlVerteks = "nodeawal:"+grafisVerteksAwal+";nodeakhir:"+grafisVerteksAkhir+";"; Verteks[] verteksGraf = parsingVerteks("Graph.xml"); cariJalurDijkstra(verteksGraf[titikAwal]); List jalur = cariJalurTerpendekKe(verteksGraf[titikAkhir]); hasil.setText(jalur.toString()); jarak.setText("" + verteksGraf[titikAkhir].jarakTerpendek); String vSekarang; String vSelanjutnya; Verteks V; Edge [] kumpulanEdge; String[] jalurEdge = new String[jalur.size()-1]; int indeksJalur = 0; for (int i=0 ; i< jalur.size()-1; i++) { vSekarang = jalur.get(i).getId(); vSelanjutnya = jalur.get(i+1).getId(); V = verteksGraf[parseString(vSekarang)]; kumpulanEdge = V.tetangga; for (int j = 0 ; j currentX) { vf.setInAnimation(inFromRightAnimation()); vf.setOutAnimation(outToLeftAnimation()); vf.showPrevious(); } break; } } return false; } public static Animation inFromRightAnimation() { Animation inFromRight = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); inFromRight.setDuration(350); inFromRight.setInterpolator(new AccelerateInterpolator()); return inFromRight; } public static Animation outToLeftAnimation() { Animation outtoLeft = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); outtoLeft.setDuration(350);

Universitas Sumatera Utara

outtoLeft.setInterpolator(new AccelerateInterpolator()); return outtoLeft; } public static Animation inFromLeftAnimation() { Animation inFromLeft = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); inFromLeft.setDuration(350); inFromLeft.setInterpolator(new AccelerateInterpolator()); return inFromLeft; } public static Animation outToRightAnimation() { Animation outtoRight = new TranslateAnimation ( Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f ); outtoRight.setDuration(350); outtoRight.setInterpolator(new AccelerateInterpolator()); return outtoRight; } } • layout_vf_result.xml • layout_vf_result_distance.xml

Universitas Sumatera Utara

• layout_vf_result_map.xml

Universitas Sumatera Utara

• layout_vf_result_string.xml • Edge.java package com.mobilegisdijkstra.model; import com.mobilegisdijkstra.model.Verteks; public class Edge { public final Verteks tujuan; public final int bobot; public final String name; public Edge(Verteks argTujuan, int argBobot, String argName) { tujuan = argTujuan; bobot = argBobot; name = argName; } } • Verteks.java package com.mobilegisdijkstra.model; import com.mobilegisdijkstra.model.Edge; import com.mobilegisdijkstra.model.Verteks; public class Verteks implements Comparable { public final String name; public final String id; public Edge[] tetangga; public double jarakTerpendek = Double.POSITIVE_INFINITY; public Verteks previous; public Verteks(String argId, String argName) { name = argName; id = argId; } public String toString() { return name; } public String getId() { return id; } public int compareTo(Verteks other) { return Double.compare(jarakTerpendek, other.jarakTerpendek); } } • listview.xml

Universitas Sumatera Utara

Gerbang I Persimpangan Jl. Universitas - Jl. Alumni Persimpangan Jalan Alternatif 1 - Jl. Universitas Fakultas Hukum Persimpangan Jl. Universitas - Jl. Prof Dr Sofian Persimpangan Jl. Prof. Dr. Sofian - Jl. TM Hanafiah Persimpangan Jl. Tridarma - Jl. Prof. Dr. Sofian Persimpangan Jl. Tridarma - Jl. Bioteknologi Persimpangan Jl. Tridarma - Jl. Politeknik Gerbang IV Gerbang III Gerbang II Fakultas Kedokteran Gigi Persimpangan Jl. Alumni - Jl. Sivitas Academica Persimpangan Jl. Alumni - Jl. Almamater Persimpangan Jl. Politeknik - Jl. Almamater Persimpangan Jalan Alternatif 1 - Jl. Perpustakaan Persimpangan Jl. Perpustakaan - Jl. Abdul Hakim / Perpustakaan Persimpangan Jl. Almamater - Jl. Bioteknologi Fakultas Kedokteran Fakultas Psikologi Persimpangan Jl. Universitas - Jl. Alternatif 2 Fakultas Keperawatan Fakultas Kesehatan Masyarakat Gelanggang Mahasiswa Fakultas Ilmu Komputer dan Teknologi Informasi Persimpangan Jl. Almamater - Jalan Alternatif Biro Rektor Biro Rektor Persimpangan Jl. Sivitas Academica - Jalan Alternatif Biro Rektor Auditorium Fakultas Teknik Fakultas Matematika dan Ilmu Pengetahuan Alam Fakultas Farmasi Politeknik Negeri Medan Stadion Mini Pendopo Fakultas Ilmu Budaya Fakultas Ekonomi Fakultas Ilmu Sosial dan Politik

Universitas Sumatera Utara

Fakultas Pertanian Poliklinik 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Universitas Sumatera Utara

38 39 40 • strings.xml MobileGISDijkstra Settings Hello world! Geographic Information System Mobile - dijkstra implementation - ENTER HOW TO USE ABOUT University of Sumatera Utara Implementasi Algoritma Dijkstra Untuk Menentukan Rute Terpendek Berbasis Mobile GIS Studi Kasus : Universitas Sumatera Utara Contents (isi) ( Tentang Program / Aplikasi ) ( Cara Penggunaan ) Option ( Tentukan Pilihan ) Show Map (Tampilkan Peta) Find Shortest Path (Temukan Rute Terpendek) How To Use (Cara Penggunaan) Legend (Petunjuk Peta) USU Map (Peta Universitas Sumatera Utara) [+] F. Kedokteran F. Ilkom TI F. Budaya F. Hukum

Universitas Sumatera Utara

F. MIPA F. Psikologi F. Keperawatan F. Kes. Masyarakat F. Teknik F. Pertanian F. Ekonomi F. Sosial Politik F. Ked. Gigi Biro Rektor Auditorium Stadion Mini Poliklinik Politeknik Medan Perpustakaan Pendopo G. Mahasiswa Choose Vertexes (Pilih Node) Start Vertex (Node Awal) : End Vertex (Node Akhir) : Find Shortest Path Vertex ID : Dijkstra Shortest Path Result (Hasil Perhitungan Rute Terpendek Dijkstra) String Path : o Aplikasi ini adalah program MobileGIS perangkat Android \n yang mengimplementasikan Algoritma Dijkstra \n sehingga dapat digunakan untuk mencari rute terpendek pada lingkungan \n Universitas Sumatera Utara. Panduan Khusus Mencari Rute Terpendek \n \n1. Pilih ENTER pada halaman utama. \n \n2. Terdapat 3 Pilihan, yaitu :

Universitas Sumatera Utara

\n 2.1. Show Map, untuk menampilkan peta. Gunakan pilihan ini untuk referensi Node. \n 2.2. Find Shortest Path, untuk masuk ke proses pemilihan titik awal dan titik tujuan. \n 2.3. How To Use, untuk kembali ke halaman ini. \n Pilih "Find Shortest Path". \n \n3. Pilih "Node Awal" dan "Node Akhir". Kemudian tekan tombol "Find Shortest Path". \n \n4. Akan ditampilkan peta hasil perhitungan Dijkstra dengan tambahan sebagai berikut : \n 4.1. Titik / Node (berwarna) hijau, sebagai Node Awal. \n 4.2. Garis - garis / Edge (berwarna) kuning, sebagai jalan yang harus dilalui. \n 4.3. Titik / Node (berwarna) merah, sebagai Node Akhir atau Node Tujuan. \n 4.4. String Path, sebagai informasi rute terpendek berbentuk Teks dengan \n Total Jarak yang harus ditempuh (dalam satuan meter). Drag LEFT or RIGHT To Show Legend Drag LEFT or RIGHT To Show Map [ -+- ] Drag LEFT to Show String Result Drag RIGHT to Show Max Distance Drag LEFT to Show Max Distance Drag RIGHT to Show Map Result Drag LEFT to Show Map Result Drag RIGHT to Show String Result

Universitas Sumatera Utara

Map Result String Result Maximum Distance METERS • Graph.xml 0 Gerbang I 19Jln2550 21Jln3250 1 Persimpangan Jl. Universitas - Jl. Alumni 24Jln3050 25Jln1250 12Jln01200 2 Persimpangan Jalan Alternatif 1 - Jl. Universitas 25Jln3350 35Jln17100 16Jln13200 3 Fakultas Hukum 36Jln45100 4Jln22300

Universitas Sumatera Utara

17Jln19200 4 Persimpangan Jl. Universitas - Jl. Prof. Dr. Sofian 38Jln24500 3Jln22300 5 Persimpangan Jl. Prof. Dr. Sofian - Jl. TM Hanafiah 38Jln47100 37Jln23100 6Jln21300 6 Persimpangan Jl. Tridarma - Jl. Prof. Dr. Sofian 39Jln20100 5Jln21300 7 Persimpangan Jl. Tridarma - Jl. Bioteknologi 32Jln41100 39Jln48200 31Jln18200 8 Persimpangan Jl. Tridarma - Jl. Politeknik 32Jln14350 33Jln07100

Universitas Sumatera Utara

15Jln10300 9 Gerbang IV 34Jln42100 10Jln09300 10 Gerbang III 9Jln09300 11Jln06300 26Jln36200 11 Gerbang II 20Jln2750 10Jln06300 12 Fakultas Kedokteran Gigi 1Jln01200 16Jln11100 13Jln05100 13 Persimpangan Jl. Alumni - Jl. Sivitas Academica 12Jln05100 28Jln03200

Universitas Sumatera Utara

29Jln38150 14 Persimpangan Jl. Alumni - Jl. Almamater 15Jln0450 29Jln08150 15 Persimpangan Jl. Politeknik - Jl. Almamater 14Jln0450 8Jln10300 30Jln39100 16 Persimpangan Jalan Alternatif 1 - Jl. Perpustakaan 2Jln13200 12Jln11100 17Jln16400 17 Persimpangan Jl. Perpustakaan - Jl. Abdul Hakim / Perpustakaan 3Jln19200 16Jln16400 18 Persimpangan Jl. Almamater - Jl. Bioteknologi 30Jln15350 31Jln40100

Universitas Sumatera Utara

37Jln46200 19 Fakultas Kedokteran 0Jln2550 20Jln26200 20 Fakultas Psikologi 11Jln2750 19Jln26200 21 Persimpangan Jl. Universitas - Jl. Prof. MMAI 0Jln3250 23Jln28100 40Jln31150 22 Fakultas Keperawatan 23Jln2950 23 Fakultas Kesehatan Masyarakat 21Jln28100 22Jln2950

Universitas Sumatera Utara

24 Gelanggang Mahasiswa 1Jln3050 40Jln49150 25 Fakultas Ilmu Komputer dan Teknologi Informasi 1Jln1250 2Jln3350 26 Persimpangan Jl. Almamater - Jalan Alternatif Biro Rektor 14Jln02200 27Jln34150 27 Biro Rektor 26Jln34150 28Jln35150 28 Persimpangan Jl. Sivitas Academica - Jalan Alternatif Biro Rektor 11Jln37200 27Jln35150 29 Auditorium

Universitas Sumatera Utara

13Jln38150 14Jln08150 30 Fakultas Teknik 15Jln39100 18Jln15350 31 Fakultas Matematika dan Ilmu Pengetahuan Alam 7Jln18200 18Jln40100 32 Fakultas Farmasi 7Jln41100 8Jln14350 33 Politeknik Negeri Medan 8Jln07100 34Jln43250 34 Stadion Mini 9Jln42100 33Jln43250

Universitas Sumatera Utara

35 Pendopo 2Jln17100 36Jln44200 36 Fakultas Ilmu Budaya 3Jln45100 35Jln44200 37 Fakultas Ekonomi 5Jln23100 18Jln46200 38 Fakultas Ilmu Sosial dan Politik 4Jln24500 5Jln47100 39 Fakultas Pertanian 6Jln20100 7Jln48200 40

Universitas Sumatera Utara

Poliklinik 21Jln31150 24Jln49150 2. Listing Program Geoserver (Styled Layer Descriptor) • polygon_gdng.sld default_polygon Default Polygon A sample style that draws a polygon rule1Gray Polygon with Black Outline A polygon with a gray fill and a 1 pixel black outline #AAAAAA #000000 1 • node_jln.sld node_jln Node JLN A sample style that draws a node Original circle #CCFFFF 6 Node Awal IDNODE nodeawal 90 circle #66FF00 #000000 1 8 Node Awal 0.5 0.0 0 5 3 #FFFFFF Node Akhir

Universitas Sumatera Utara

IDNODE nodeakhir 90 circle #FF0000 #000000 1 8 Node Akhir 0.5 0.0 0 5 3 #FFFFFF • gedung_polygon.sld Gedung Polygon SLD: Gedung Polygon fk

Universitas Sumatera Utara

KELOMPOK fk #FF0000 #000000 fkm KELOMPOK fkm #FF00FF #000000 fkeperawatan KELOMPOK fkeperawatan #FFCC00 #000000 fasilkomti KELOMPOK fasilkomti #CCCCCC #000000 fbudaya

Universitas Sumatera Utara

KELOMPOK fbudaya #CCFFFF #000000 fhukum KELOMPOK fhukum #666666 #000000 fsospol KELOMPOK fsospol #CC0099 #000000 fpertanian KELOMPOK fpertanian #9933FF #000000

Universitas Sumatera Utara

fteknik KELOMPOK fteknik #993300 #000000 fkg KELOMPOK fkg #996699 #000000 fpsikologi KELOMPOK fpsikologi #6600CC #000000 fekonomi KELOMPOK fekonomi #660000

Universitas Sumatera Utara

#000000 fmipa KELOMPOK fmipa #000033 #000000 birek KELOMPOK birek #000066 #000000 audit KELOMPOK audit #009900 #000000 stadion KELOMPOK stadion

Universitas Sumatera Utara

#0066CC #000000 poliklinik KELOMPOK poliklinik #66FF99 #000000 polmed KELOMPOK polmed #990066 #000000 perpus KELOMPOK perpus #999933 #000000 pendopo KELOMPOK pendopo

Universitas Sumatera Utara

#CC9900 #000000 gema KELOMPOK gema #CCCC00 #000000 • line_jln.sld line_jln Line JLN Original #CCFFFF 1 Line 1

Universitas Sumatera Utara

EDGE edge1 0 #FFFF00 2 Line 2 EDGE edge2 0 #FFFF00 2 Line 3 EDGE edge3 0 #FFFF00 2 Line 4

Universitas Sumatera Utara

EDGE edge4 0 #FFFF00 2 Line 5 EDGE edge5 0 #FFFF00 2 Line 6 EDGE edge6 0 #FFFF00 2 Line 7 EDGE

Universitas Sumatera Utara

edge7 0 #FFFF00 2 Line 8 EDGE edge8 0 #FFFF00 2 Line 9 EDGE edge9 0 #FFFF00 2 Line 10 EDGE

Universitas Sumatera Utara

edge10 0 #FFFF00 2 Line 11 EDGE edge11 0 #FFFF00 2 Line 12 EDGE edge12 0 #FFFF00 2 Line 13 EDGE edge13

Universitas Sumatera Utara

0 #FFFF00 2 Line 14 EDGE edge14 0 #FFFF00 2 Line 15 EDGE edge15 0 #FFFF00 2 Line 16 EDGE edge16 0

Universitas Sumatera Utara

#FFFF00 2 Line 17 EDGE edge17 0 #FFFF00 2 Line 18 EDGE edge18 0 #FFFF00 2 Line 19 EDGE edge19 0

Universitas Sumatera Utara

#FFFF00 2 Line 20 EDGE edge20 0 #FFFF00 2 Line 21 EDGE edge21 0 #FFFF00 2 Line 22 EDGE edge22 0

Universitas Sumatera Utara

#FFFF00 2 Line 23 EDGE edge23 0 #FFFF00 2 Line 24 EDGE edge24 0 #FFFF00 2 Line 25 EDGE edge25 0

Universitas Sumatera Utara

#FFFF00 2 Line 26 EDGE edge26 0 #FFFF00 2 Line 27 EDGE edge27 0 #FFFF00 2 Line 28 EDGE edge28 0 #FFFF00

Universitas Sumatera Utara

2 Line 29 EDGE edge29 0 #FFFF00 2 Line 30 EDGE edge30 0 #FFFF00 2 Line 31 EDGE edge31 0 #FFFF00 2

Universitas Sumatera Utara

Line 32 EDGE edge32 0 #FFFF00 2 Line 33 EDGE edge33 0 #FFFF00 2 Line 34 EDGE edge34 0 #FFFF00 2

Universitas Sumatera Utara

Line 35 EDGE edge35 0 #FFFF00 2 Line 36 EDGE edge36 0 #FFFF00 2 Line 36 EDGE edge36 0 #FFFF00 2

Universitas Sumatera Utara

Name>Line 37 EDGE edge37 0 #FFFF00 2 Line 38 EDGE edge38 0 #FFFF00 2 Line 39 EDGE edge39 0 #FFFF00 2 Line 40

Universitas Sumatera Utara

EDGE edge40 0 #FFFF00 2 Line 41 EDGE edge41 0 #FFFF00 2 Line 42 EDGE edge42 0 #FFFF00 2 Line 43

Universitas Sumatera Utara

EDGE edge43 0 #FFFF00 2 Line 44 EDGE edge44 0 #FFFF00 2 Line 45 EDGE edge45 0 #FFFF00 2 Line 46

Universitas Sumatera Utara

EDGE edge46 0 #FFFF00 2 Line 47 EDGE edge47 0 #FFFF00 2 Line 48 EDGE edge48 0 #FFFF00 2 Line 49 EDGE

Universitas Sumatera Utara

edge49 0 #FFFF00 2 • polygon_bggdng.sld polygon_bggdng Polygon BGGDNG A sample style that draws a polygon rule1 White Polygon with Black Outline A polygon with a gray fill and a 1 pixel black outline #FFFFFF #000000 1

Universitas Sumatera Utara

• polygon_bg.sld default_polygon Default Polygon A sample style that draws a polygon rule1 Gray Polygon with Black Outline A polygon with a gray fill and a 1 pixel black outline #AAAAAA #000000 1

Universitas Sumatera Utara