Integrasi Google Maps Implementasi

oleh salesman, kemudian dilakukan perhitungan menggunakan algoritma genetika hibrida dengan skema pencarian lokal adaptif untuk pengoptimalan sebuah perjalanan. Setelah perhitungan selesai, ditampilkan pada Google Maps dengan nomor urutan Marker dengan garis merah sebagai penanda perjalanan. Baris kode berikut digunakan untuk menampilkan polyline. PolylineOptions rectOptions = new PolylineOptions .add new LatLng 37.35 , - 122.0 .add new LatLng 37.45 , - 122.0 .add new LatLng 37.45 , - 122.2 .add new LatLng 37.35 , - 122.0 ; Polyline polyline = myMap.addPolylinerectOptions;

3.5.2 Pengkodean

Sistem simulasi penyelesaian TSP menggunakan HGA dengan skema pencarian lokal adaptif diimplementasikan dalam bahasa pemrograman java. Berikut ini akan disajikan beberapa potongan source code yang berhubungan dalam proses HGA untuk menyelesaikan TSP. a. Fungsi Objektif TSP public double distanceToCity city{ int xDistance = Math.absgetX - city.getX; int yDistance = Math.absgetY - city.getY; double distance = Math.sqrtxDistancexDistance + yDistanceyDistance; return distance; } Gambar 3.8 Source code fungsi objektif b. Operator genetika Pada operator genetika terdapat tiga operator yang digunakan dalam penelitian yaitu seleksi, crossover dan mutasi. - Seleksi Turnamen - Order Crossover private static Tour tournamentSelectionPopulation pop { Population tournament = new Population tournamentSize , false ; for int i = 0; i tournamentSize ; i++ { int randomId = int Math.random pop.populationSize; tournament.saveTouri, pop.getTourrandomId; } Tour fittest = tournament.getFittest; return fittest; } public static Tour crossoverTour parent1, Tour parent2 { Tour child = new Tour; int startPos = int Math.randomparent1.tourSize; int endPos = int Math.random parent1.tourSize; for int i = 0; i child.tourSize; i++ { if startPos endPos i startPos i endPos { child.setCityi, parent1.getCityi; } else if startPos endPos { if i startPos i endPos { child.setCityi, parent1.getCityi; } } } for int i = 0; i parent2.tourSize; i++ { if child.containsCityparent2.getCityi { for int ii = 0; ii child.tourSize; ii++ { if child.getCityii == null { child.setCityii, parent2.getCityi; break ; } } } } return child; } Gambar 3.9 Source code seleksi turnamen