{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Library" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "# import sys\n", "# reload(sys)\n", "# sys.setdefaultencoding('utf-8')\n", "import re\n", "import csv\n", "import nltk\n", "import math\n", "import string\n", "import random\n", "import haversine\n", "import pandas as pd\n", "import numpy as np\n", "from random import *\n", "from math import *\n", "from string import digits\n", "from collections import Counter\n", "import matplotlib as mpl\n", "from haversine import haversine, Unit\n", "import matplotlib.pyplot as plt\n", "from subprocess import check_output\n", "from sklearn import metrics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loading the Data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Banyak data = 606\n" ] }, { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>Tempat Wisata</th>\n", " <th>Rating</th>\n", " <th>Latitude</th>\n", " <th>Longitude</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Ksu Antara Travel</td>\n", " <td>4.6</td>\n", " <td>2.9860</td>\n", " <td>99.6204</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>A8 Village</td>\n", " <td>4.0</td>\n", " <td>2.0137</td>\n", " <td>99.0037</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Air Terjun Sigarattung ( Sampuran Na Pitu)</td>\n", " <td>4.5</td>\n", " <td>2.4042</td>\n", " <td>99.0474</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Air Terjun Taman Eden 100, Tobasa</td>\n", " <td>4.4</td>\n", " <td>2.6951</td>\n", " <td>98.6897</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Abadas Jaya</td>\n", " <td>4.3</td>\n", " <td>3.7704</td>\n", " <td>98.6321</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>Aek Kanopan</td>\n", " <td>4.8</td>\n", " <td>2.5633</td>\n", " <td>99.5229</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>Aek Malapari</td>\n", " <td>5.0</td>\n", " <td>2.2680</td>\n", " <td>99.7627</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", " <td>Aek Milas</td>\n", " <td>3.9</td>\n", " <td>1.5227</td>\n", " <td>99.2204</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>Aek Milas Paringgonan Sibuhuan</td>\n", " <td>4.0</td>\n", " <td>2.0399</td>\n", " <td>99.8223</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>Aek Sipaulak Hosa Loja</td>\n", " <td>4.5</td>\n", " <td>2.8446</td>\n", " <td>98.5291</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Tempat Wisata Rating Latitude Longitude\n", "0 Ksu Antara Travel 4.6 2.9860 99.6204\n", "1 A8 Village 4.0 2.0137 99.0037\n", "2 Air Terjun Sigarattung ( Sampuran Na Pitu) 4.5 2.4042 99.0474\n", "3 Air Terjun Taman Eden 100, Tobasa 4.4 2.6951 98.6897\n", "4 Abadas Jaya 4.3 3.7704 98.6321\n", "5 Aek Kanopan 4.8 2.5633 99.5229\n", "6 Aek Malapari 5.0 2.2680 99.7627\n", "7 Aek Milas 3.9 1.5227 99.2204\n", "8 Aek Milas Paringgonan Sibuhuan 4.0 2.0399 99.8223\n", "9 Aek Sipaulak Hosa Loja 4.5 2.8446 98.5291" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('Pre_TA_13.csv', engine='python')\n", "print ('Banyak data =', len(df))\n", "df.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generate Tempat Wisata" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [], "source": [ "temp = []\n", "tempat = []\n", "inputan = []\n", "TempatWisata_1 = []\n", "rate = []\n", "\n", "# function generateTempatWisata to get \"Tempat Wisata\" from Data set\n", "def generateTempatWisata(tempdata):\n", " TempatWisata = []\n", " TempatWisata.clear()\n", " for i in range(randrange(2, 10)):\n", " x = choice(tempdata)\n", " if x not in TempatWisata:\n", " TempatWisata.append(x)\n", " return TempatWisata\n", "\n", "#Using Set DataFrame\n", "#def generateTempatWisataSetJumlah(N):\n", " #arr = df[\"Tempat Wisata\"].sample(N, replace = True)\n", " #TempatWisata_1.append(arr)\n", " #return TempatWisata_1\n", "\n", "# def generate(datatempat):\n", " # tempatwisata = generateTempatWisataDataFrame(datatempat)\n", " # return tempatwisata" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Encoding" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# function Encoding Itinerary to make value itinerary 0 or 1\n", "def encodingItinerary(Itinerary, tempatwisata): \n", " arr2 = []\n", " arr2.clear()\n", " for x in range(len(tempatwisata)):\n", " cek = False\n", " for i in range(len(Itinerary)):\n", " if tempatwisata[x] is Itinerary[i]:\n", " arr2.append(1)\n", " cek = True\n", " break\n", " if(cek == False):\n", " arr2.append(0)\n", " return arr2\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fitness Function" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Class Prepare Itinerary\n", "class preItinerary:\n", " \n", " # function get Longitude and Latitude from Data\n", " def getLongLat(param):\n", " test = []\n", " test.clear()\n", " for i in range(len(param)):\n", " if param[i] == 1:\n", " test.append((df.iloc[i][2], df.iloc[i][3]))\n", " return test \n", " \n", " # function get Rating from Data\n", " def getRating(param):\n", " rate = []\n", " rate.clear()\n", " for i in range(len(param)):\n", " if param[i] == 1:\n", " rate.append((df.iloc[i][1]))\n", " return rate\n", "\n", "# Class Fitness Function\n", "class fitnessFunction:\n", " \n", " # 1. function Estimasi Jarak using Haversine Formula to calculating distance\n", " def haversineFormula(param):\n", " r = 6373.0 # default \n", " sum_ = 0\n", " for x in range(len(param) - 1):\n", " dlat = abs(float(param[x+1][0]) - float(param[x][0]))\n", " dlon = abs(float(param[x+1][1]) - float(param[x][1]))\n", " a = math.sin(dlat / 2)**2 + math.cos(param[x+1][0]) * math.cos(param[x][0]) * math.sin(dlon / 2)**2\n", " c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))\n", " dis = r * c\n", " sum_ += dis\n", "\n", " dist = round(sum_)\n", " return dist\n", " \n", " # 2. function Estimasi Waktu to calculating total time of each itinerary\n", " def estimasiWaktu(jarak):\n", " v = 60 # default average velocity\n", " waktu = jarak / v\n", " time_hours = round(waktu)\n", " time_days = round(time_hours/12)\n", " return time_hours\n", " \n", " # 3. function Estimasi Biaya to calculating total cost of each itinerary\n", " def estimasiBiaya(jarak):\n", " BBM = 7650 # Biaya BBM 1 Liter = Rp.7650\n", " S_BBM =3.45 # Jarak tempuh untuk 1 Liter BBM = 3.45 KM\n", " Biaya_R = 950000 # Biaya sewa/rental bus = Rp.950000\n", " Biaya_BBM = round((jarak / S_BBM) * BBM) \n", " Total_Cost = Biaya_BBM + Biaya_R\n", " return Total_Cost\n", " \n", " # 4. function Average Rating to calculating average rating of each itinerary\n", " def averageRating(preproses_Rating):\n", " av = 0\n", " average = 0\n", " for i in range(len(preproses_Rating)):\n", " av += float(int(preproses_Rating[i]))\n", " average = round(float(av)/(len(preproses_Rating)), 1)\n", " return average" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# function Inputan \n", "tempdata = df[\"Tempat Wisata\"]\n", "itinerary = generateTempatWisata(tempdata)\n", "def inputan(param):\n", " inputt = []\n", " inputt.clear()\n", " p = preItinerary\n", " encode = encodingItinerary(param, tempdata)\n", " preproses_Itinerary = p.getLongLat(encode)\n", " preproses_Rating = p.getRating(encode)\n", " f = fitnessFunction\n", " jarak = f.haversineFormula(preproses_Itinerary)\n", " waktu = f.estimasiWaktu(jarak)\n", " biaya = f.estimasiBiaya(jarak)\n", " rate = f.averageRating(preproses_Rating)\n", " inputt.append((jarak, waktu, biaya, rate))\n", " return inputt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Implementasi Algoritma" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Simulated Annealing" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Class Simulated Annealing\n", "class simeal:\n", " \n", " # function test to get parameter \n", " def test (data):\n", " tempatbaru = []\n", " da = generateTempatWisata(data)\n", " inn = inputan(da)\n", " tempatbaru.append((inn, da))\n", " return tempatbaru\n", " \n", " # function calculate to chose best solution from 2 parameter (x1) and (x2)\n", " def calculate(x1, x2):\n", " if (x1[0][0] < x2[0][0] and x1[0][3] < x2[0][3]) or (x1[0][0] < x2[0][0] and x1[0][3] == x2[0][3]):\n", " return x1\n", " else:\n", " return x2\n", " \n", " # function solution to save all solution \n", " def solution():\n", " temp_Case = []\n", " data = df[\"Tempat Wisata\"]\n", " T_akhir = 500 # default\n", " T_awal = 0.0001 # default\n", " CoolingRate = 0.9 # default\n", " while T_awal < T_akhir: # condition statement\n", " x1 = simeal.test(data)\n", " x2 = simeal.test(data)\n", " x11 = x1[0][0]\n", " x22 = x2[0][0]\n", " Newstate = simeal.calculate(x11, x22)\n", " if Newstate is x11:\n", " temp_Case.append(x1)\n", " else:\n", " temp_Case.append(x2)\n", " \n", " T_akhir = T_akhir * CoolingRate\n", " \n", " return temp_Case\n", " \n", "# Class printt \n", "class printt:\n", " \n", " # function result to print all solution\n", " def result():\n", " result_ = simeal.solution()\n", " print(len(result_), \"\\n\")\n", " for i in range(len(result_)):\n", " print(i+1, \" = \",result_[i], \"\\n\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "147 \n", "\n", "1 = [([(40281, 671, 2437870, 3.7)], ['Zam Zam Prima Persada. Pt', 'Danau Laut Tinggal', 'Bekas Istana Kesultanan Asahan', 'Wisata Pancing Sungai Bedera', 'Air Terjun Pongkar', 'Pemandian Alam Bendungan Ginbers'])] \n", "\n", "2 = [([(4209, 70, 1105217, 4.0)], ['Loket Bus Bintang Utara', 'Perkebunan Londut'])] \n", "\n", "3 = [([(24983, 416, 1872435, 3.9)], ['Viewpoint Of Tuktuk Peninsula', 'Toddler Garden Binjai', 'Zam Zam Prima Persada. Pt', 'Pantai Bul Bul', 'Pantai La Terzhia Zhimehuli', 'The Le Hu Garden', 'Gang Bengkok Old Mosque'])] \n", "\n", "4 = [([(7626, 127, 1231609, 4.0)], ['Pantai Pasir Putih', 'Pisang Pelangi', 'Konservasi Sungai Kukam'])] \n", "\n", "5 = [([(32917, 549, 2167348, 4.0)], ['Tao Lake Rod Onang', 'Tanah Lapang Merdeka Binjai', 'Ambar Onan Runggu', 'Bukit Senyum', 'Pantai Ketam'])] \n", "\n", "6 = [([(16159, 269, 1546478, 3.5)], ['Air Terjun Pelangi Indah', 'Romance Padi Perbaungan', 'Kebun Binatang Simalingkar Medan', 'Pantai Teluk Kerang', 'Magic Eye 3d Art Museum', 'Bukit Burung'])] \n", "\n", "7 = [([(14054, 234, 1468870, 4.0)], ['Air Terjun Efrata', 'Batang Gadis National Park', 'Air Terjun Lumban Rang'])] \n", "\n", "8 = [([(517, 9, 969957, 3.5)], ['Pemandian Air Panas Sibayak Mardinding Julu', 'Tugu Pramuka'])] \n", "\n", "9 = [([(3840, 64, 1091913, 4.0)], ['Kisaran Kota', 'Pusat Informasi Geopark Kaldera Toba Sigulatti'])] \n", "\n", "10 = [([(4330, 72, 1109652, 3.5)], ['Kampung Kuliner', 'Alam Wisata Danau Laut Tador'])] \n", "\n", "11 = [([(3210, 54, 1069739, 4.0)], ['Air Travel Parsariran', 'Halo Angso Duo Pratama Bro. Pt'])] \n", "\n", "12 = [([(28226, 470, 1992174, 4.0)], ['Pulau Malau', 'Revolution Heroes Monument', 'Tor Simago-Mago', 'Tobasa', 'Taman Gajah Mada'])] \n", "\n", "13 = [([(4503, 75, 1116304, 4.3)], ['Ikan Larangan Lubuak Landua', 'Perkebunan Londut', 'Plta Sipansihaporas'])] \n", "\n", "14 = [([(42692, 712, 2528783, 3.6)], ['Frog Rock Tour', 'Berastagi', 'Wisata Makam Papan Tinggi Barus', 'Wisata Pemandian Water Hill', 'Air Terjun Lumban Rang', 'Air Terjun Sibabo', 'Stabat', 'Cis Tour & Travel', 'Dairi Regency'])] \n", "\n", "15 = [([(28076, 468, 1987739, 4.2)], ['Lau Bingai', 'Air Terjun Baburai', 'Kolam Renang Air Panas Mardinding Tiga Rasa', 'Merci Waterboom', 'Binjai', 'Pasar Tomok', 'Taman Cadika Pramuka', 'Dairi Regency'])] \n", "\n", "16 = [([(8593, 143, 1267087, 4.0)], ['Museum Deli Serdang', 'De Hole Laguna'])] \n", "\n", "17 = [([(30353, 506, 2072000, 3.3)], ['Pemandian Air Panas Huta Raja', 'Pantai Pasir Putih Parbaba', 'Tapian Siri-Siri Syariah', 'Permata Asri Stabat', 'Air Terjun Linggahara-Rantau Prapat', 'Kebun Binatang Simalingkar Medan'])] \n", "\n", "18 = [([(32085, 535, 2136304, 4.2)], ['Wisata Alam Pondok Biru', 'Bukitlawang Trek', 'Wisata Taman Merci', 'Istana Kerajaan Rokan', 'North Namu Ukur'])] \n", "\n", "19 = [([(26287, 438, 1921217, 3.6)], ['Air Terjun Tarunggang', 'Air Terjun Sigura-Gura', 'Vihara Gunung Timur', 'Tugu Becak Bsa Siantar', 'Sampuren Tutuen Sige', 'Grand Darussalam. Ud', 'Wisata Pemandian Water Hill', 'Alam Wisata Danau Laut Tador'])] \n", "\n", "20 = [([(49938, 832, 2794870, 4.1)], ['Asahan Regency', 'Vihara Gunung Timur', 'Gedung Mabmi', 'Connectingjungle', 'Taman Kota Tanjungbalai', 'Magic Eye 3d Art Museum', 'Pantai Sikabau', 'Letter Z'])] \n", "\n", "21 = [([(43274, 721, 2548739, 3.7)], ['Elsasya Utama', 'Lokasi Wisata Pemandian Air Panas Sipoholon', 'Objek Wisata Pantai Ujung Sibolga', 'Taman Edukasi Binjai', 'Pemandian Air Panas - Batu Bara ( 50 )', 'Anugerah Soambaton Beach', 'Batu Gantung', 'Aek Sipaulak Hosa Loja', 'Sitinjo'])] \n", "\n", "22 = [([(33880, 565, 2202826, 4.0)], ['Pantai Pasir Putih Parbaba', 'Welterbeminimini', 'North Namu Ukur', 'Bakarang Simalem', 'Bukit Senyum', 'Laterzhya Zimhuli', 'Tirtanadi Tower', 'Monumen Halilintar'])] \n", "\n", "23 = [([(14854, 248, 1499913, 4.0)], ['Taman Sri Deli', 'Tourism Kuala Paret', 'Istana Kerajaan Rokan'])] \n", "\n", "24 = [([(12653, 211, 1417870, 4.0)], ['Lapangan Tengku Amir Hamzah Stabat', 'Mmtc Walking Street', 'Karo Regency'])] \n", "\n", "25 = [([(18937, 316, 1650696, 3.3)], ['Mja Travel', 'Pemandian Air Panas Goa Ergendang', 'Mangrove Tour Lubuk Kertang'])] \n", "\n", "26 = [([(1591, 27, 1009870, 3.5)], ['Simpang Bantoon', 'Tapian Siri-Siri Syariah'])] \n", "\n", "27 = [([(7930, 132, 1242696, 4.2)], ['Medan City Tour', 'Bukit Tara Bunga', 'Masjid Agung Sumatera Utara', 'Museum Lubuk Pakam'])] \n", "\n", "28 = [([(22648, 377, 1785957, 4.0)], ['Monumen Halilintar', 'Air Terjun Kemuning'])] \n", "\n", "29 = [([(16601, 277, 1564217, 4.0)], ['Alaman Bolak Padang Nadimpu', 'Setia Wisata', 'Lau Perkoh'])] \n", "\n", "30 = [([(35673, 595, 2269348, 3.9)], ['Air Terjun Aek Godang', 'Pantai Pongkar', 'Aek Sipaulak Hosa Loja', 'Terminal Berastagi', 'Jembatan Sidikalang Wisata', 'Pt. Hikmah', 'Pasir Putih Janggawari'])] \n", "\n", "31 = [([(48126, 802, 2728348, 3.8)], ['Balai Datuk Setia Maharaja Negeri Serdang', 'Pantai Pasir Putih', 'Samto Aek Rangat', 'Perumahaan Azalea Asri', 'Wisata Bendunga Sei Palis', 'Rm Batunadua Indah', 'Taman Pesona Asri', 'Pt. Npm Perwakilan On Bus'])] \n", "\n", "32 = [([(34328, 572, 2218348, 4.2)], ['Beach Island Karang', 'Puncak Pelangkah Gading, Kutambaru, Munte, Kab. Karo, Sumut', 'Taman Bukit Gelanggang', 'Puncak Anai', 'Pantai Pasir Putih Parbaba', 'Sumur Tua'])] \n", "\n", "33 = [([(23595, 393, 1821435, 4.2)], ['Laterzhya Zimhuli', 'Puncak Gundaling Brastagi', 'Bersama Travel', 'Simpang Bantoon', 'Efrata Waterfall', 'Istana Kerajaan Rokan'])] \n", "\n", "34 = [([(5436, 91, 1151783, 3.0)], ['Hotel Pesona Wisata', 'Air Panas Simolap'])] \n", "\n", "35 = [([(19283, 321, 1661783, 3.2)], ['Bagan Percut', 'Aek Saroha', 'Travel Panyabungan Padang', 'Alam Wisata Danau Laut Tador'])] \n", "\n", "36 = [([(9790, 163, 1311435, 4.0)], ['Bakarang Simalem', 'Halo Angso Duo Pratama Bro. Pt'])] \n", "\n", "37 = [([(12580, 210, 1415652, 4.0)], ['Mangrove Tour Lubuk Kertang', 'Pulau Malau', 'Stabat', 'Salib Kasih Tarutung'])] \n", "\n", "38 = [([(36759, 613, 2309261, 3.8)], ['Mesjid Raya Al-Abror', 'Taman Kota Salak (Tugu Salak)', 'West Kisaran', 'Bendungan Lau Si Meimei', 'Jembatan Tano Ponggol', 'Langkat Regency'])] \n", "\n", "39 = [([(24837, 414, 1868000, 4.2)], ['Sopo Tinjak', 'Sansan Travel', 'Pasir Putih Janggawari', 'Fortress Seven Layer', 'Panatapan Sileme-Leme'])] \n", "\n", "40 = [([(25220, 420, 1881304, 3.0)], ['Parhonasan (Kebun Nenas) Sidumpe Anturi', 'Air Terjun Sarasah Kajai', 'Berastagi', 'Mora Indah', 'Rosyid Orangutan Tours'])] \n", "\n", "41 = [([(10569, 176, 1340261, 4.7)], ['Aek Malapari', 'Taman Mutiara Selat Malaka', 'Winter Holidays'])] \n", "\n", "42 = [([(18461, 308, 1632957, 4.0)], ['Air Travel Parsariran', 'Objek Wisata Luak Gadang, Guguak Rang Pisang', 'Monkey Forest Umar Manik Sibaganding', 'Bekancan River'])] \n", "\n", "43 = [([(26084, 435, 1914565, 4.0)], ['Masjid Agung Islamic Centre Pasir Pengaraian Rohul', 'Peceren Karo Village', 'Bukit Suligi', 'Namu Sira-Sira'])] \n", "\n", "44 = [([(23771, 396, 1828087, 4.0)], ['Museum Pusaka Karo - Berastagi', 'Musala Waterfall', 'Gedung Bks Pps'])] \n", "\n", "45 = [([(59149, 986, 3136348, 3.9)], ['Amarjun Wisata', 'Dokter Travel', 'Mobil Wisata Medan', 'Kantor Dinas Pariwisata Kabupaten Humbang Hasundutan', 'Sibolga Dutch Tunnel', 'Taman Balita Kota Binjai', 'Mja Travel', 'Wisata Pancing Sungai Bedera'])] \n", "\n", "46 = [([(17568, 293, 1599696, 3.8)], ['Taman Bunga', 'Air Terjun Lenggo Geni', 'Stabat', 'Taman Air Percut'])] \n", "\n", "47 = [([(9060, 151, 1284826, 4.0)], ['Air Terjun Lenggo Geni', 'Aek Milas'])] \n", "\n", "48 = [([(28268, 471, 1994391, 3.6)], ['Tanah Lapang Merdeka Binjai', 'Makam Ompung Parmata Sapihak', 'Air Terjun Lembah Sipogas', 'Penangkaran Buaya Asam Kumbang', 'Pt Pelangi Wisata', 'Bukik Posuak Maek', 'Tangkahan', 'Museum Simalungun'])] \n", "\n", "49 = [([(30957, 516, 2094174, 3.8)], ['Taman Edukasi Binjai', 'Tugu Pramuka', 'Taman Kebun Bunga èŒ ã¦Â¦Â€¢Ã¥Å“€™', 'Tirtanadi Tower', 'Pesanggrahan Bung Karno', 'Cafe Goa Kaca', 'Musala Waterfall', 'Air Terjun Bah Salak'])] \n", "\n", "50 = [([(36220, 604, 2289304, 4.0)], ['Tahura (Taman Hutan Raya)', 'Air Terjun Betala', 'Ambar Onan Runggu', 'Biro Jasa', 'Pantai Cermin Theme Park & Resort Hotel', 'Pusat Informasi Geopark Kaldera Toba Sigulatti', 'Gedung Nasional Djauli Manik', 'Penatapan Pamah Simelir'])] \n", "\n", "51 = [([(54615, 910, 2967826, 4.0)], ['Uruk Ndaholi', 'Sialang Batu', 'Air Terjun Betala', 'Pertunjukan Tari Sigale Gale', 'Efrata Waterfall', 'Air Terjun Gorbus', 'Bekas Istana Kesultanan Asahan', 'Binjai', 'Hotel Wisata Indah'])] \n", "\n", "52 = [([(44950, 749, 2610826, 4.3)], ['Baneara, Partungko Naginjang', 'Bagan Percut', 'Sembilantujuh Tour&Travel', 'Tapian Puti', 'Tour Accomodation', 'Monkey Forest Umar Manik Sibaganding', 'Bukit Tara Bunga'])] \n", "\n", "53 = [([(9691, 162, 1309217, 3.7)], ['Bekancan River', 'Kantor Dinas Pariwisata Kabupaten Humbang Hasundutan', 'Parhallow Viewpoint And Coffee Shop'])] \n", "\n", "54 = [([(22902, 382, 1797043, 3.8)], ['Saf Travel Indo', 'Alam Wisata Danau Laut Tador', 'Pemandian Alam Bendungan Ginbers', 'North Labuhanbatu Regency', 'Pt. Hikmah', 'Tobasa'])] \n", "\n", "55 = [([(71926, 1199, 3608652, 3.8)], ['Air Terjun Efrata', 'Patung Dewi Kwan Im', 'Danau Sipogas', 'Pantai Malaya', 'Pool Bus Intra', 'Air Terjun Sampuran Widuri', 'Merci Waterboom', 'Pemandian Sidamanik', 'Sini Suka Natural Bath Sibiru-Biru'])] \n", "\n", "56 = [([(44313, 739, 2588652, 4.3)], ['Bendungan Batang Tongar', 'Gang Bengkok Old Mosque', 'Mester Bukit Lawang (Tour Guide)', 'Bukit Lawang Day Trek', 'Air Terjun Lenggo Geni', 'Pemandian Alam Loknya', 'Bukit Suligi'])] \n", "\n", "57 = [([(33758, 563, 2198391, 3.9)], ['Sumatra Jungle Trek', 'Kolam Renang Pesona Wisata', 'Taman Selfie', 'Amarjun Wisata', 'Sansan Travel', 'Delta', 'Taman Alamta Jaya'])] \n", "\n", "58 = [([(44743, 746, 2604174, 3.6)], ['Wisata Alam Aek Sordang', 'Abadas Jaya', 'Objek Wisata Maggrove Sisarahili Ts', 'Simanimbo Waterfall', 'Bukit Kubu', 'Pusat Kuliner Kota Sibolga', 'Tapian Siri-Siri Syariah', 'Landak River'])] \n", "\n", "59 = [([(26637, 444, 1934522, 4.0)], ['Viewpoint Of Tuktuk Peninsula', 'Taman Remaja Binjai', 'Tugu Jeruk Berastagi'])] \n", "\n", "60 = [([(762, 13, 978826, 3.5)], ['Pemandian Alam Bendungan Ginbers', 'Pemandian Alam Tirta Sayum Sabah'])] \n", "\n", "61 = [([(25351, 423, 1887957, 3.6)], ['Taman Air Percut', 'Delta', 'Bukik Posuak Maek', 'Pantai Pulau Putri', 'A8 Village'])] \n", "\n", "62 = [([(31559, 526, 2116348, 3.8)], ['Taman Edukasi Binjai', 'Taman Rekreasi Kong Mah', 'Alaman Bolak Padang Nadimpu', 'Aek Sipaulak Hosa Loja', 'Welterbeminimini', 'Bukik Posuak Maek'])] \n", "\n", "63 = [([(19209, 320, 1659565, 3.8)], ['Masjid Raya', 'Wisata Agro Kopi Karo', 'Oyo 1752 Hotel Wisata', 'Wisata Alam Siringo', 'Jln Dusun Lauseridi', 'Bukit Lawang Guide'])] \n", "\n", "64 = [([(26554, 443, 1932304, 4.7)], ['Wisata Air Parsariran', 'Awaliyah Tour And Travel', 'Bukit Lawang Explore'])] \n", "\n", "65 = [([(17354, 289, 1590826, 3.9)], ['Wisata Bah Kulistik', 'A8 Village', 'Bandar Pulau', 'Museum Negeri Sumatera Utara', 'Nature Baths Gantang Rani', 'Bukit Kubu', 'Pemandian Pulau Batu (Pulbat)'])] \n", "\n", "66 = [([(36919, 615, 2313696, 4.0)], ['Parks West Coast', 'Taman Remaja Binjai', 'Pesanggrahan Bung Karno', 'Pantai Bul Bul', 'Pantai Maligi', 'Air Terjun Sigarattung ( Sampuran Na Pitu)'])] \n", "\n", "67 = [([(5247, 87, 1142913, 3.5)], ['Panatapan Sileme-Leme', 'Hendreva Tour'])] \n", "\n", "68 = [([(15141, 252, 1508783, 3.8)], ['Biro Jasa', 'Air Terjun Tarunggang', 'Bukit Travel Gibeon', 'Bukit Kininduma Simantas'])] \n", "\n", "69 = [([(52947, 882, 2905739, 4.0)], ['Bahal Temple I', 'Lapangan Pasir Tanjung Balai', 'Mora Indah', 'Pantai Kenangan', 'Air Terjun Sempugen', 'Putri Cahaya Travel', 'Umbul Ejuk', 'Air Soda Kabupaten Karo'])] \n", "\n", "70 = [([(18780, 313, 1644043, 4.3)], ['Old City Hall', 'Air Terjun Kemuning'])] \n", "\n", "71 = [([(15290, 255, 1515435, 3.3)], ['Air Terjun Linggahara-Rantau Prapat', 'Taman Remaja Binjai', 'Pantai Teluk Kerang'])] \n", "\n", "72 = [([(26508, 442, 1930087, 3.3)], ['Taman Wisata Alam, Pusat Latihan Gajah', 'Waterpark Ria', 'Museum Lubuk Pakam'])] \n", "\n", "73 = [([(29673, 495, 2047609, 3.7)], ['Taman Balita Kota Binjai', 'Mja Travel', 'Air Terjun Sigura Gura', 'Pemandian Air Panas Tirto Kencono', 'Jembatan Poriaha', 'Taman Rekreasi Kong Mah'])] \n", "\n", "74 = [([(41638, 694, 2488870, 3.2)], ['Kuta Sukareme', 'Danau Tao Batang Onang', 'Pinang City', 'Mandailing Natal Regency', 'Siregar Aek Nalas'])] \n", "\n", "75 = [([(20471, 341, 1706130, 4.1)], ['Masjid Raya', 'Berastagi Local Guide', 'Nature Baths Gantang Rani', 'Bukit Lawang Guide', 'Pulau Samosir', 'Aek Milas Paringgonan Sibuhuan', 'Wisata Alam Pohon Damai Simempar'])] \n", "\n", "76 = [([(23699, 395, 1825870, 3.6)], ['Bagan Percut', 'Gundaling', 'Air Terjun Betala', 'Binjai', 'Sitinjo', 'Air Terjun Simonang Monang', 'Dunia Outbound Camp', 'Tapian Puti'])] \n", "\n", "77 = [([(71360, 1189, 3586478, 3.7)], ['Pantai Malaya', 'Bukit Burung', 'Wisata Pulau Spantiang', 'Pantai Ketam', 'Sibio-Bio Advanture Park', 'Tugu Air Bangis', 'Jembatan Tano Ponggol', 'Jembatan Poriaha', 'Sumatra Orangutan Tours & Holidays'])] \n", "\n", "78 = [([(56354, 939, 3032130, 3.6)], ['Tour Accomodation', 'Perhadtian Air Panas Taman Wisata Sibayak', 'Pt. Jsa Tour & Travel', 'Pantai Tiram Tapakis', 'Kuta Sukareme', 'Garunggang', 'Vihara Avalokitesvara', 'Jembatan Dalik Lubuk Sikaping'])] \n", "\n", "79 = [([(16527, 275, 1559783, 4.0)], ['Sidebuk Debuk Thermal Baths Berastagi', 'Saf Travel Indo', 'Tugu Kol', 'Wisata Alam Pondok Biru', 'Air Terjun Sampuran Widuri', 'Wisata Hutan Mangrove Perpat', 'Air Terjun Sigura-Gura'])] \n", "\n", "80 = [([(4481, 75, 1116304, 3.5)], ['Pt. Raya Utama Travel', 'Pemandian Alam Bendungan Ginbers'])] \n", "\n", "81 = [([(24733, 412, 1863565, 4.0)], ['Matondang Travel Agent | Korwil Fastpay Kab. Humbang Hasundutan', 'Air Terjun Lumban Rang', 'Biro Jasa', 'Objek Wisata Patamuan', 'Wisata Alam Siringo'])] \n", "\n", "82 = [([(50718, 845, 2823696, 4.0)], ['Pemandian Air Panas - Batu Bara ( 50 )', 'Batu Gantung', 'Tanjung Pura', 'Pantai Teluk Kerang', 'Gedung Nasional Djauli Manik', 'North Labuhanbatu Regency', 'Desa S.Kalangan Ii', 'Little India Medan'])] \n", "\n", "83 = [([(58765, 979, 3120826, 3.3)], ['Lubuk Larangan Desa Padang Bulan', 'Muaraopu', 'Elsasya Utama', 'Waterfall Pelangi Indah', 'Sumatra Orangutan Tours & Holidays', 'Wisata Bendunga Sei Palis', 'Air Terjun Simpang Kanan'])] \n", "\n", "84 = [([(16862, 281, 1573087, 3.0)], ['Wisata Alam Aek Sordang', 'Bekancan River', 'Puncak Jb'])] \n", "\n", "85 = [([(20967, 349, 1723870, 4.3)], ['Air Terjun Lumban Rang', 'Batu Kursi Raja Siallagan ( Stone Chair Of King Siallagan )', 'Pantai Katung Binasi', 'Efrata Waterfall', 'Go Adventure Tour & Travel Indonesia', 'Warung Info Wisata'])] \n", "\n", "86 = [([(38746, 646, 2382435, 3.7)], ['Kuamang Ujung Gading', 'Taman Danau Wisata Bunga Tujuh', 'Silalahi I', 'Pulau Malau', 'Dinas Kebudayaan & Pariwisata', 'Pemandian Air Panas Rianiate', 'Aek Sipaulak Hosa Loja', 'Welterbeminimini', 'Bakarang Simalem'])] \n", "\n", "87 = [([(7542, 126, 1229391, 2.7)], ['Panatapan Sileme-Leme', 'Parhonasan (Kebun Nenas) Sidumpe Anturi', 'Kualuh Hulu'])] \n", "\n", "88 = [([(9374, 156, 1295913, 3.5)], ['Tumori Traditional Village', 'Zam Zam Prima Persada. Pt'])] \n", "\n", "89 = [([(20438, 341, 1706130, 2.7)], ['Silalahi I', 'Cis Tour & Travel', 'Air Terjun Simpang Kanan'])] \n", "\n", "90 = [([(21405, 357, 1741609, 4.2)], ['Hotel Wisata Indah', 'Wisata Merci', 'Air Terjun Malakkut', 'Puncak Bukit Galau'])] \n", "\n", "91 = [([(23831, 397, 1830304, 3.0)], ['Cis Tour & Travel', 'Wisata Alam', 'Kuta Sukareme', 'Puncak Kabur Bukit Villa'])] \n", "\n", "92 = [([(7522, 125, 1227174, 4.0)], ['Biro Jasa', 'Vania Travel'])] \n", "\n", "93 = [([(14074, 235, 1471087, 3.6)], ['Wisata Alam Pondok Biru', 'Grand Darussalam. Ud', 'Air Terjun Sampuran Widuri', 'Pt. Hikmah', 'Danau Teratai'])] \n", "\n", "94 = [([(14306, 238, 1477739, 3.3)], ['Balai Datuk Setia Maharaja Negeri Serdang', 'Taman Edukasi Binjai', 'Bukit Kininduma Simantas'])] \n", "\n", "95 = [([(8995, 150, 1282609, 3.7)], ['Bukit Lawang Planet Hijau', 'Pulau Malau', 'Elsasya Utama'])] \n", "\n", "96 = [([(12797, 213, 1422304, 3.5)], ['Wisata Rekreasi Danau Buatan', 'Objek Wisata Patamuan'])] \n", "\n", "97 = [([(31130, 519, 2100826, 4.2)], ['Simpang Bantoon', 'Pantai Pulau Karang', 'Pasir Putih Porsea', 'Mester Bukit Lawang (Tour Guide)', 'Toba Lake Sibolahotang Beautiful Beach', 'Taman Sri Deli', 'Museum Karo Lingga', 'Panatapan Parhalow', 'Air Terjun Tarunggang'])] \n", "\n", "98 = [([(34123, 569, 2211696, 3.5)], ['Taman Lope Lope Bulu Cina', 'Tanah Lapang Merdeka Binjai', 'Puncak Hoza', 'Aek Malapari'])] \n", "\n", "99 = [([(52788, 880, 2901304, 3.8)], ['Air Terjun Malakkut', 'Wisata Sawah Koto', 'Rudang Mayang', 'Parhallow Viewpoint And Coffee Shop', 'Pt. Jsa Tour & Travel', 'Welterbeminimini'])] \n", "\n", "100 = [([(46010, 767, 2650739, 3.7)], ['The Attraction Of Ikan Gadang', 'Sialang Batu', 'Beach Island Karang', 'Kuta Sukareme', \"Penginapan King's Ambarita\", 'Wisata Merci'])] \n", "\n", "101 = [([(16542, 276, 1562000, 4.0)], ['Tumori Traditional Village', 'Masjid Agung Kota Binjai', 'Rosyid Orangutan Tours'])] \n", "\n", "102 = [([(81994, 1367, 3981174, 3.6)], ['Perwakilan Mandiri', 'Pantai Pasir Putih', 'Danau Pagaran Padang', 'Air Terjun Kemuning', 'Bukit Lawang Planet Hijau', 'Dokter Travel', 'Wisata Rekreasi Danau Buatan'])] \n", "\n", "103 = [([(17659, 294, 1601913, 3.8)], ['Tor Simago-Mago', 'Masjid Raya', 'Pawan Hot Water', 'Wisata Pulau Spantiang', 'Alun Alun Kota Kisaran'])] \n", "\n", "104 = [([(57703, 962, 3083130, 3.6)], ['Rudang Mayang', 'Bagan Percut', 'Bahal Temple I', 'Fortress Seven Layer', 'Taman Kota Salak (Tugu Salak)', 'Malay Street Medan', 'Pantai Cermin Theme Park & Resort Hotel', 'Perwakilan Mandiri'])] \n", "\n", "105 = [([(45939, 766, 2648522, 4.2)], ['Air Terjun Aek Matua', 'Lau Bingai', 'Sopo Tinjak', 'Puncak Anai', 'Wisata Alam'])] \n", "\n", "106 = [([(13892, 232, 1464435, 4.0)], ['Agrowisata Hidro Aa', 'Masjid Agung Ahmad Bakrie Kisaran', 'Danau Pagaran Padang'])] \n", "\n", "107 = [([(46193, 770, 2657391, 3.9)], ['Gundaling', 'Amarjun Wisata', 'Botanical Samosir', 'Cafe Goa Kaca', 'Pantai Sorake Nias Selatan', 'Titi Gantung Bridge', 'Pasar Kaget Kota Binjai', 'Pt. Jsa Tour & Travel'])] \n", "\n", "108 = [([(21992, 367, 1763783, 4.0)], ['Simpang Bantoon', 'Sibolga Dutch Tunnel', 'Pt. Hikmah', 'Bukit Lawang Guide'])] \n", "\n", "109 = [([(19844, 331, 1683957, 4.0)], ['Pulau Poncan', 'North Namu Ukur', 'Museum Karo Lingga', 'Lau Gendang,Wisata Gua'])] \n", "\n", "110 = [([(2981, 50, 1060870, 4.5)], ['Pusat Kuliner Kota Sibolga', 'Masjid Al Istiqomah'])] \n", "\n", "111 = [([(28921, 482, 2018783, 3.8)], ['Panatapan Parhalow', 'Romance Padi Perbaungan', 'Museum Lubuk Pakam', 'Pulau Samosir', 'Kolam Renang Pesona Wisata', 'Plta Sipansihaporas'])] \n", "\n", "112 = [([(12286, 205, 1404565, 3.8)], ['Batu Kursi Raja Siallagan ( Stone Chair Of King Siallagan )', 'A8 Village', 'Dinas Kebudayaan & Pariwisata', 'Bukit Lawang Travel'])] \n", "\n", "113 = [([(23822, 397, 1830304, 4.3)], ['Batu Lobang Sibaganding', 'Objek Wisata Togindrawa Gua', 'Kota Padang Sidempuan'])] \n", "\n", "114 = [([(4826, 80, 1127391, 4.0)], ['Paranggiran Raja Silahisabungan', 'Huta Bolon'])] \n", "\n", "115 = [([(6195, 103, 1178391, 3.3)], ['Cafe Goa Kaca', 'Huta Bolon', 'Alam Wisata Danau Laut Tador'])] \n", "\n", "116 = [([(34745, 579, 2233870, 4.0)], ['Monumen Equator', 'Poldung', 'Leo Tour & Travel (Leo Wisata Medan)', 'Masjid Lama Kabanjahe', 'Tanah Lapang Merdeka Binjai', 'Abadas Jaya'])] \n", "\n", "117 = [([(45262, 754, 2621913, 3.7)], ['Puncak Tonang', 'Simpang Pantai Monyet', 'Salib Kasih Tarutung', 'Zam Zam Prima Persada. Pt', 'Danau Sipogas', 'Peceren Karo Village', 'Nature Baths Gantang Rani'])] \n", "\n", "118 = [([(13968, 233, 1466652, 4.0)], ['Winter Holidays', 'Musala Waterfall'])] \n", "\n", "119 = [([(19377, 323, 1666217, 4.2)], ['Waterfall Pelangi Indah', 'Lau Bengkelade Kuta', 'Tugu Pramuka', 'Asahan Regency', 'Bekas Istana Kesultanan Asahan'])] \n", "\n", "120 = [([(20003, 333, 1688391, 3.7)], ['Loket Satu Nusa', 'Bair Falls', 'The Heritage'])] \n", "\n", "121 = [([(29823, 497, 2052043, 4.2)], ['Batang Bahal', 'Barusjahe', 'Salak Monument Pakkat', 'Pt. Sky Ocean Travel'])] \n", "\n", "122 = [([(22310, 372, 1774870, 4.0)], ['Stasiun Binjai', 'Bukit Senyum', 'Aek Milas Paringgonan Sibuhuan', 'Vania Travel'])] \n", "\n", "123 = [([(15625, 260, 1526522, 3.2)], ['Tanjung Unta', 'Sitinjo', 'Taman Gajah Mada', 'Paranggiran Raja Silahisabungan'])] \n", "\n", "124 = [([(32074, 535, 2136304, 3.5)], ['Pinang City', 'Pemandian Air Panas Goa Ergendang', 'Danau Pagaran Padang', 'Bukit Kubu', 'Taman Mini Travel Langkat', 'Bukit Senyum'])] \n", "\n", "125 = [([(20621, 344, 1712783, 3.7)], ['Bukik Posuak Maek', 'The Le Hu Garden', 'Air Panas Simolap'])] \n", "\n", "126 = [([(30765, 513, 2087522, 4.2)], ['Rumah Makan Irian', 'Pasar Tomok', 'Bat Cave, Bukit Lawang', 'Air Terjun Aek Matua', 'Pasar Kaget Kota Binjai', 'Sumatra Jungle Trek'])] \n", "\n", "127 = [([(4909, 82, 1131826, 3.2)], ['Objek Wisata Maggrove Sisarahili Ts', 'Mesjid Raya Al-Abror', 'Pantai Sorake Nias Selatan', 'Pondok Pisang'])] \n", "\n", "128 = [([(18080, 301, 1617435, 3.8)], ['Alun Alun Kota Kisaran', 'Titi Gantung Bridge', 'Wisata Alam', 'Pemandian Alam Loknya'])] \n", "\n", "129 = [([(4351, 73, 1111870, 3.5)], ['Pantai Bul Bul', 'Pondok Wisata Lagundi Samosir'])] \n", "\n", "130 = [([(44253, 738, 2586435, 4.1)], ['Bersama Travel', 'Wisata Merci', 'Taman Kota Salak (Tugu Salak)', 'Dairi Regency', 'Jembatan Lae Pandaroh', 'Pt Wisata Habibah Berkah', 'Alaman Bolak Padang Nadimpu'])] \n", "\n", "131 = [([(6237, 104, 1180609, 4.0)], ['Air Terjun Binanga Bolon', 'Kantor Po Pinem Bus'])] \n", "\n", "132 = [([(31349, 522, 2107478, 4.2)], ['Objek Wisata Luak Gadang, Guguak Rang Pisang', 'Masjid Raya Al Osmani', 'Masjid Raya Nur Addin', 'Istana Kerajaan Rokan', 'Sbv', 'Pemandian Air Panas Tirto Kencono'])] \n", "\n", "133 = [([(48240, 804, 2732783, 4.1)], ['Handreva Tour', 'Cross Of Love', 'Bahal Temple I', 'Wisata Dakwah Okura', 'Loket Bus Bintang Utara', 'Taman Pesona Asri', 'Pantai Katung Binasi', 'Panatapan Sileme-Leme', 'Taman Mejuah-Juah'])] \n", "\n", "134 = [([(56086, 935, 3023261, 3.6)], ['Wisata Agro Kopi Karo', 'Tapian Puti', 'Bukit Senyum', 'Permata Asri Stabat', 'Sabah Simelir', 'Pemandian Air Panas Sibayak Mardinding Julu', 'Museum Zoologi', 'Muaraopu'])] \n", "\n", "135 = [([(28970, 483, 2021000, 3.8)], ['Taman Wisata Simatahari Indah', 'Monumen Halilintar', 'Loket Bus Bintang Utara', 'Monkey Forest Umar Manik Sibaganding', 'Kembar Agro', 'Sampuren Tutuen Sige'])] \n", "\n", "136 = [([(48920, 815, 2757174, 4.0)], ['Pemandian Air Panas Tirto Kencono', 'Rumah Irmayanti Lubis', 'Pusat Posko \"Teroh-Teroh.', 'Air Terjun Situak Lotik Iii', 'Pulau Malau', 'Bukit Suligi', 'Bair Falls'])] \n", "\n", "137 = [([(5664, 94, 1158435, 4.0)], ['Karo Regency', 'Bukit Kininduma Simantas'])] \n", "\n", "138 = [([(8396, 140, 1260435, 4.5)], ['Muaraopu', 'Wisata Madu Aek Nauli'])] \n", "\n", "139 = [([(7444, 124, 1224957, 4.0)], ['Tugu Marga Silalahi', 'Pantai Maligi', 'Makam Ompung Parmata Sapihak'])] \n", "\n", "140 = [([(45671, 761, 2637435, 3.8)], ['Air Terjun Saringgana', 'Frog Rock Tour', 'Musala Waterfall', 'Puncak Pelangkah Gading, Kutambaru, Munte, Kab. Karo, Sumut', 'Parhonasan (Kebun Nenas) Sidumpe Anturi', 'Sumatra Jungle Trek', 'Taman Selfie', 'Wisata Merci'])] \n", "\n", "141 = [([(31878, 531, 2127435, 3.8)], ['Tirtanadi Tower', 'Taman Wisata Simatahari Indah', \"Penginapan King's Ambarita\", 'Alun Alun Lubuk Sikpaing'])] \n", "\n", "142 = [([(15741, 262, 1530957, 3.8)], ['Jembatan Lau Luhung, Gunung Meriah.', 'Museum Perkebunan Indonesia', 'Air Terjun Bah Salak', 'Simanimbo Waterfall', 'Bukit Tara Bunga', 'Biro Jasa'])] \n", "\n", "143 = [([(8316, 139, 1258217, 3.7)], [\"Five Star Int'l Travel\", 'Desa Adat Ragi Hotang Meat', 'Klenteng Gunung Timur'])] \n", "\n", "144 = [([(16948, 282, 1575304, 3.0)], ['Taman Wisata Simatahari Indah', 'Waterpark Ria'])] \n", "\n", "145 = [([(1481, 25, 1005435, 3.5)], ['Danau Pagaran Padang', 'Plta Sipansihaporas'])] \n", "\n", "146 = [([(16051, 268, 1544261, 4.0)], ['Parks West Coast', 'Taman Megawati', 'Air Terjun Efrata', 'Objek Wisata Luak Gadang, Guguak Rang Pisang', 'Pantai Paris'])] \n", "\n", "147 = [([(16370, 273, 1555348, 3.7)], ['Wisata Pancing Sungai Bedera', 'Masjid Agung Ahmad Bakrie Kisaran', 'Aek Milas Paringgonan Sibuhuan'])] \n", "\n" ] } ], "source": [ "printt.result()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Iterated Local Search" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "#Initial Solution\n", "data = df[\"Tempat Wisata\"]\n", "class initial:\n", " def solution (data):\n", " tempatbaru = []\n", " tempatbaru *= 0\n", " da = generateTempatWisata(data)\n", " inn = inputan(da)\n", " tempatbaru.append((inn, da))\n", " return tempatbaru\n", " \n", " def listsolution():\n", " list_ = []\n", " for i in range(150):\n", " c = initial.solution(data)\n", " list_.append(c)\n", " return list_\n", "\n", "class iteratedlocalsearch:\n", " x1 = initial.solution(data)\n", " x2 = initial.listsolution()\n", " x2.sort(reverse = False)\n", "\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3.Evalutionary Algorithm" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }