Penyelesaian Travelling Salesman Problem Dengan Algoritma Simulated Annealing Studi Kasus: Technical Support BTSSoft

CURRICULUM VITAE

Nama

: Leonardo Davinsi Nainggolan

Tempat/ Tanggal Lahir : Tarutung, 11 Mei 1992
Alamat

: Jl. Harmonika Gg.Flamboyan No.35 A Tanjung Sari

Jenis Kelamin

: Laki-laki

Agama

: Kristen Protestan

Tinggi


: 170 cm

No. Telp/Hp

: 081377224211

Status

: Belum kawin

Email

: [email protected]

PENDIDIKAN FORMAL
 Universitas Sumatera Utara D3 Teknik Informatika Fakultas MIPA Medan. (Tahun
Ajaran 2010 s/d 2013. Berijazah).

 Sekolah Menengah Atas Negeri 2 Tarutung. ( Tahun Ajaran 2007 s/d 2010.
Berijazah).


 Sekolah Menengah Pertama Negeri 2 Tarutung. (Tahun Ajaran 2004 s/d 2007.
Berijazah).

 Sekolah Dasar Negeri 5 Tautung. (Tahun Ajaran 1998 s/d 2004. Berijazah).
SEMINAR
 Peserta Seminar Nasional Literasi Informasi 2014 Universitas Sumatera Utara.
PENGALAMAN KERJA
 Magang di Biro Pembangunan PLN Medan Tahun 2012.
 Technical Support, Programmer di BTSSoft Medan Sejak Tahun 2013
DATA KEMAMPUAN
Database : SQL server, Mysql, Firebase, MongoDB dan Microsoft Access.
Desain

: Adobe Photoshop, CorelDraw, Adobe Flash, Pinnacle.

Program : PHP, CSS, HTML, Javascript, Java , C/C++, VB dan C#.

Universitas Sumatera Utara


A-1

LISTING PROGRAM

1. Sisi Klien (mobile android)
1.1 js/app.js
1.
2. angular.module('starter', ['ionic', 'ngCordova', 'angularMoment',
'firebase', 'starter.controllers', 'starter.directives'])
3.
4. .run(function($window, $document, $ionicLoading, $state, $ionicPlatform,
$log, $rootScope, $cordovaClipboard, GoogleMaps) {
5.
$ionicPlatform.ready(function() {
6.
$log.log("Ionic ready");
7.
8.
if (window.cordova && window.cordova.plugins.Keyboard) {
9.

cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
10.
cordova.plugins.Keyboard.disableScroll(true);
11.
12.
}
13.
if (window.StatusBar) {
14.
StatusBar.styleDefault();
15.
}
16.
17.
GoogleMaps.cekTanggal();
18.
if($rootScope.kunjungan=='undefined')
19.
$rootScope.kunjungan = [];
20.

21.
$rootScope.markersKunjungan = [];
22.
23. });
24.
25.
26. })
27.
28. .config(function($stateProvider, $urlRouterProvider) {
29. $stateProvider
30.
31. .state('app', {
32.
url: '/app',
33.
abstract: true,
34.
templateUrl: 'templates/menu.html',
35.
controller: 'AppCtrl'

36. })
37.
38. .state('app.maps', {
39.
url: '/maps',
40.
views: {
41.
'menuContent': {
42.
templateUrl: 'templates/maps.html',
43.
controller: 'MapCtrl'
44.
}
45.
}
46.
})
47.

48. .state('app.pelanggan', {
49.
url: '/pelanggan',
50.
views: {
51.
'menuContent': {
52.
templateUrl: 'templates/pelanggan.html',
53.
controller: 'PelangganCtrl'
54.
}
55.
}
56. })
57.

Universitas Sumatera Utara


A-2

58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.

76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.

96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.

116.
117.
118.
119.
120.
121.
122.
123.
124.

.state('app.kunjungan', {
url: '/kunjungan',
views: {
'menuContent': {
templateUrl: 'templates/kunjungan.html',
controller: 'KunjunganCtrl'
}
}
})
.state('app.result', {
url: '/result',
views: {
'menuContent': {
templateUrl: 'templates/result.html',
controller: 'ResultCtrl'
}
}
})
.state('app.matrix_data', {
url: '/matrix_data',
views: {
'menuContent': {
templateUrl: 'templates/matrix_data.html',
controller: 'matrix_dataCtrl'
}
}
})
.state('app.editKoordinat', {
url: '/editKoordinat/:aId',
views: {
'menuContent': {
templateUrl: 'templates/editKoordinat.html',
controller: 'editKoordinatCtrl'
}
}
})
.state('app.editKunjungan', {
url: '/edit_kunjungan',
views: {
'menuContent': {
templateUrl: 'templates/editKunjungan.html',
controller: 'editKunjunganCtrl'
}
}
})
.state('login', {
url: '/login',
templateUrl: 'templates/login.html',
controller: 'loginCtrl'
})
.state('app.pengaturan', {
url: '/pengaturan',
views: {
'menuContent': {
templateUrl: 'templates/pengaturan.html',
controller: 'PengaturanCtrl'
}

Universitas Sumatera Utara

A-3

125.
}
126.
})
127.
128.
.state('app.tentang', {
129.
url: '/tentang',
130.
views: {
131.
'menuContent': {
132.
templateUrl: 'templates/tentang.html'
133.
}
134.
}
135.
});
136.
137.
138.
$urlRouterProvider.otherwise('/app/maps');
139. })
140.
141. .factory('ModifyRootScopeService', function($rootScope){
142.
143.
return {
144.
setRootScopeValue: function(value){
145.
$rootScope.map = value;
146.
}
147.
}
148. })
149.
150. .factory('ConnectivityMonitor', function($rootScope, $cordovaNetwork){
151.
152.
return {
153.
isOnline: function(){
154.
155.
if(ionic.Platform.isWebView()){
156.
return $cordovaNetwork.isOnline();
157.
} else {
158.
return navigator.onLine;
159.
}
160.
161.
},
162.
ifOffline: function(){
163.
164.
if(ionic.Platform.isWebView()){
165.
return !$cordovaNetwork.isOnline();
166.
} else {
167.
return !navigator.onLine;
168.
}
169.
170.
}
171.
}
172. });
173.
174.
175.
176.
177.

178.