LAMPIRAN Kode Program Algoritma Brute-Force: LISTING PROGRAM public class Bruteforce { List<Node> semuanode; Node nodetujuan, nodeasal; public float jarakminimum; public List<Node> hasil; public TimeSpan runningtime; public Bruteforce(List<Node> semuanode) { this.semuanode = semuanode; this.jarakminimum = float.positiveinfinity; this.hasil = new List<Node>(); private void rekursif_bruteforce(list<node> sampel, List<Node> populasi){ if(sampel.count > 0){ float jaraktemp = nodeasal.carijarakke(sampel[0].getid()); for(int i = 0; i < sampel.count - 1; i++){ jaraktemp += sampel[i].carijarakke(sampel[i+1].getid()); if(jaraktemp == float.positiveinfinity){ return;
if(sampel[sampel.count-1].getid() == nodetujuan.getid() && jaraktemp < jarakminimum){ jarakminimum = jaraktemp; hasil = new List<Node>(sampel); hasil.insert(0, nodeasal); List<Node> temp = new List<Node>(sampel); foreach(node node in populasi){ if(sampel.indexof(node) == -1){ sampel = new List<Node>(temp); sampel.add(node); rekursif_bruteforce(sampel, populasi); public bool cariruteterpendek(node asal, Node tujuan){ var stopwatch = System.Diagnostics.Stopwatch.StartNew(); this.nodetujuan = tujuan; this.nodeasal = asal; List<Node> populasi = new List<Node>(semuaNode); populasi.remove(asal); rekursif_bruteforce(new List<Node>(), populasi); stopwatch.stop(); runningtime = stopwatch.elapsed;
if(jarakminimum == float.positiveinfinity) return false; return true; Kode Program Algoritma A*: public class AStar { class Elemen { public Node node; public Elemen dari; public float g, h; public Elemen(Node node, Node nodetujuan){ this.node = node; this.g = 0; this.h = hitungjarakheuristik(node, nodetujuan); this.dari = null; public float getf(){ return g + h; float deg2rad(float deg){ return (float) (deg * (Math.PI / 180)); float hitungjarakheuristik(node node_a, Node node_b){ var R = 6371; var dlat = deg2rad(node_b.getlat()-node_a.getlat()); var dlon = deg2rad(node_b.getlng()-node_a.getlng()); var a = Math.Sin(dLat/2) * Math.Sin(dLat/2) + Math.Cos(deg2rad(node_a.getLat())) * Math.Cos(deg2rad(node_b.getLat
())) * Math.Sin(dLon/2) * Math.Sin(dLon/2) ; var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1-a)); var d = R * c; return (float) d; public List<Node> hasil; public TimeSpan runningtime; public float totaljarak; public AStar() { hasil = new List<Node>(); runningtime = new TimeSpan(); totaljarak = float.positiveinfinity; private Elemen carielemendengannilaiterkecil(list<elemen> open){ float nilaifterkecil = float.positiveinfinity; Elemen result = null; foreach(elemen elemen in open){ if(elemen.getf() < nilaifterkecil){ nilaifterkecil = elemen.getf(); result = elemen; return result; public bool cariruteterpendek(node asal, Node tujuan){ var stopwatch = System.Diagnostics.Stopwatch.StartNew(); List<Elemen> open = new List<Elemen>(); List<Elemen> closed = new List<Elemen>(); Elemen elemen_mulai = new Elemen(asal, tujuan); open.add(elemen_mulai);
while(open.count > 0){ Elemen curr = carielemendengannilaiterkecil(open); if(curr.node.getid() == tujuan.getid()){ totaljarak = curr.g; while(curr!= null){ hasil.add(curr.node); curr = curr.dari; stopwatch.stop(); runningtime = stopwatch.elapsed; return true; open.remove(curr); closed.add(curr); foreach(hubungan hub in curr.node.gethubungan()){ Elemen tetangga = new Elemen(hub.getNode(), tujuan); tetangga.g = curr.g + hub.getjarak(); tetangga.dari = curr; bool adadalamopen = false, adadalamclosed = false; foreach(elemen elemen in closed){ if(elemen.node.getid() == tetangga.node.getid()){ adadalamclosed = true; break; if(adadalamclosed) continue; int posisidiopen = 0; foreach(elemen elemen in open){ if(elemen.node.getid() == tetangga.node.getid()){ adadalamopen = true; break;
posisidiopen++; if(adadalamopen){ if(open[posisidiopen].g > tetangga.g){ Elemen update = open[posisidiopen]; update.g = tetangga.g; update.h = tetangga.h; update.dari = curr; else { open.add(tetangga); return false;
CURRICULUM VITAE Data Diri Nama : Syindy Wulandari Tempat/Tanggal Lahir : Medan/ 24 Maret 1994 Alamat Sekarang : Jl.Polonia Gg.Mushollah Medan Alamat Orang Tua Agama Jenis Kelamin : Jl. Polonia Gg.Mushollah Medan Polonia : Islam : Perempuan Nomor Hp : 082299982962 Email : wulandari.syindy@yahoo.com Riwayat Pendidikan 2000 2006 : SD Angkasa Lanud Medan 2006 2009 : SMP Angkasa Lanud Medan 2009 2012 : SMA Negeri 2 Medan 2012 Sekarang : S1 Ilmu Komputer, Medan Keahlian Bahasa : Indonesia, Inggris
Bahasa Pemrograman : C#, DBMS Multimedia Design Perkantoran : MySQL : Adobe Flash : Photoshop : Microsoft Office, Microsoft Excel Pengalaman Bekerja 2015 : Praktik Kerja Lapangan di PTPN III (Persero) Seminar 2016 : Seminar Nasional OPEN SOURCE BASE TRANSCEIVER STATION 2014 : Seminar Open BTS ICONS