• Tidak ada hasil yang ditemukan

Perencanaan Perjalanan Wisata dengan Metode Greedy

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perencanaan Perjalanan Wisata dengan Metode Greedy"

Copied!
12
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1. Itenerary Planing Service

Automatic Itenerary Planning merupakan sebuah proses perancangan perjalanan yang mengubah proses pengumpulan informasi perjalanan yang dilakukan secara manual menjadi secara otomatis dengan memanfaatkan perkembangan jumlah website yang menyediakan tarif penerbangan maupun penginapan (Jakkilinki. et al. 2007). Hal ini dilakukan dengan menghapuskan proses dimana pengguna harus mengakses beberapa website, dan menggantikannya dengan melakukannya secara otomatis. Sehingga pengguna tidak perlu direpotkan dengan mengakses banyak website. Selain itu,

Automatic Itenerary Planning merupakan sebuah NP-Complete Problem yang terkenal, dimana tidak terdapat waktu polynomial yang tepat (Chen, 2006).

2.2. Algoritma Greedy

Algoritma Greedy merupakan sebuah algoritma yang dapat menentukan sebuah jalur terpendek antara node-node yang akan digunakan dengan mengambil secara terus-menerus dan menambahkan jalur yang akan dilewati. Berikut ini adalah tahapan yang akan dilakukan dalam algoritma greedy (Robin,1991) :

1. Kelompokkan semua jalur.

2. Pilih jalur yang terpendek kemudian masukkan kedalam himpunan solusi. 3. Tentukan apakah sudah ada N jalur pada solusi, Jika tidak, ulangi kembali

(2)

Dalam membentuk solusi, algoritma greedy pada setiap langkahnya akan mengambil pilihan yang merupakan optimum local atau pilihan yang sesuai dengan spesifikasi pembuat algoritma. Dengan pengambilan pilihan yang sesuai yang didapat optimum global atau sesuai dengan keinginan pembuat algoritma. Pada setiap langkah algoritma greedy, kita akan mendapatkan optimum local. Bila algoritma berakhir maka diharapkan optimum local akan menjadi optimum global. Sehingga sebenarnya algoritma greedy mengasumsikan bahwa optimum local ini merupakan bagian dari

optimum global. Berikut adalah pseudo-code algoritma greedy:

proceduregreedy(input C: himpunan_kandidat;

output S : himpunan_solusi)

{ menentukan solusi optimum dari persoalan optimasi dengan algoritma

greedy

Masukan: himpunan kandidat C

Keluaran: himpunan solusi S

}

Deklarasi

x : kandidat;

Algoritma:

S{} { inisialisasi S dengan kosong }

while (belum SOLUSI(S)) and (C  {} ) do

xSELEKSI(C); { pilih sebuah kandidat dari C}

C C - {x} { elemen himpunan kandidat berkurang satu }

if LAYAK(S  {x}) then

SS  {x}

endif

endwhile

(3)

2.3. Application Programming Interface (API)

Application Programming Interface (API) merupakan sekumpulan fungsi, perintah dan protokol yang dapat digunakan dalam pengembangan perangkat lunak. Seiring dengan berkembangnya teknologi, API tidak saja digunakan untuk sebuah perangkat lunak, tetapi dapat digunakan antar perangkat lunak, hal ini biasa disebut dengan

public API. Public API sendiri memungkinkan pengembang perangkat lunak menggunakan fungsi ataupun perintah yang terdapat pada sebuah perangkat lunak sehingga terjadi hubungan antar aplikasi. Dewasa ini, banyak website yang menyediakan Public API, salah satunya adalah Google. Google sendiri menyedikan beberapa Public API. Salah satunya adalah Costum Search API. Costum Search API menggunakan notasi JSON dalam menerima query dari sebuah aplikasi dan mengirimkan hasil pencaharian. Sehingga pengguna dapat menampilkan dan melakukan pencaharian melalui proses pemograman (Mueller, 2004). Hal ini mengakibatkan pencaharian tidak memerlukan interaksi langsung antara pengguna perangkat lunak dengan mesin pencaharian.

1. Tourism Public API

Seperti telah dijelaskan bahwa API dapat digunakan oleh banyak pengembang dalam menggunakan secara bersama-sama beberapa fungsi ataupun informasi tersimpan yang dimiliki, beberapa kelompok usaha juga memberikan bantuan mengenai informasi perjalanan. Dalam beberapa penelitian terdahulu (Chen et. al, 2015), menggunakan layanan Yahoo Travel dan Google Flight Search& Maps dalam membentuk grap dari Point of Interest (POI) tempat wisata. Beberapa API yang dapat digunakan dalam katagori tourism adalah sebagai berikut :

a. Yahoo Travel

Yahoo Travel menyediakan berbagai macam informasi, mulai dari jadwal penerbangan, jadwal bus (US/EU), pelayaran, restauran, dan juga hotel. Akan tetapi mereka hanya menyediakan sarana informasi saja, seperti informasi hotel dan informasi penerbangan, Yahoo Travel menggunakan bantuan dari situs hipmunk.com. Terlepas dari hal tersebut, Yahoo Travel

(4)

b. Google Flight Search

Google Flight Search merupakan sebuah platform yang disediakan oleh Google untuk membantu pengguna google dalam mencari informasi mengenai hotel dan penerbangan. Untuk pencaharian penerbangan Google Flight Search akan menampilkan penerbangan yang tersedia sesuai dengan tanggal yang telah ditentukan oleh pengguna. Akan tetapi Google Flight Search bukanlah sebuah platform untuk melakukan pemesanan tiket secara online, hal ini dapat dilihat apabila pengguna memilih penerbangan yang ada, maka pengguna akan diarahkan ke situs maskapai penerbangan yang bersangkutan.

c. Expedia Affiliate Network (EAN)

Kelompok EAN merupakan sebuah jaringan yang membantu para pengembang untuk mendapatkan informasi mengenai penerbangan, hotel. Sistem EAN bekerja melalui sistem afiliasi dimana pengguna API akan memperoleh komisi dari setiap pemesanan tiket yang telah terjadi. (Chavanne, 2015)

d. Tiket.com

Tiket.com merupakan sebuah perusahaan yang berasal dari Indonesia yang bergerak pada bidang penjualan tiket, tidak hanya tiket penerbangan ataupun hotel, tiket.com juga menyediakan penjualan terhadap tiket konser. Sama seperti EAN tiket.com juga menerapkan sistem afikliasi dalam penggunaan API mereka. Tiket.com menyediakan format keluaran API dalam bentuk XML, JSON dan serialized PHP. Tiket.com juga menyediakan sarana pembayaran tanpa pengembang harus melakukan deposit.

2.4. Framework

Framework adalah sebuah struktur konseptual dasar yang digunakan untuk memecahkan sebuah permasalahan, bahkan isu-isu kompleks yang ada. Sebuah

(5)

Framework hanya menjadi sebuah konstruksi dasar yang menopang sebuah konsep

atau sistem yang bersifat “essential support” (penting tapi bukan komponen utama). Salah satu alasan mengapa orang menggunakan framework terutama dalam membangun sebuah aplikasi adalah kemudahan yang ditawarkan. Dengan menggunakan framework kita dapat langsung fokus kepada business process yang dihadapi tanpa harus berfikir banyak masalah struktur aplikasi, standar coding dan lain-lain. Dalam hal ini adalah framework PHP yang memiliki daftar perintah / fungsi dasar PHP, hal-hal sebagai penunjang lainnya seperti koneksi database, validasi form, GUI, dan keamanan, yang telah disediakan oleh framework PHP. Salah satu framework PHP adalah codeigniter.

Framework CodeIgniter adalah sebuah framework aplikasi web yang bersifat

open source digunakan untuk membangun aplikasi php dinamis. Tujuan utama pengembangan CodeIgniter adalah untuk membantu developer untuk mengerjakan aplikasi lebih cepat daripada menulis semua code dari awal. CodeIgniter menyediakan berbagai library yang dapat mempermudah dalam pengembangan (Wardana, 2010).

CodeIgniter merupakan sebuah framework berbasis MVC yang dimana terdapat 3 komponen yaitu model, view dan controller. Berikut ini adalah penjelasan komponen tersebut.

1. Model

Objek model adalah bagian dari aplikasi yang mengimplementasi logika untuk domain data aplikasi. Umumnya, objek model digunakan untuk mengambil data dari database atau menyimpan data ke database. Model pada CodeIgniter

adalah sebuah kelas php yang berfungsi untuk menangani data. Data tersebut bukan hanya dari database tetapi juga bisa dari File Text, Web Service atau layanan-layanan data lainnya. Sebuah model sebenarnya tidak harus

meng-extend class Model. Kelas model di-extend ketika hendak menggunakan fitur

database pada CodeIgnitersaja. Semua Model harus diletakkan di dalam

folderapplication/models.Agar dapat menggunakan model maka kita harus me-load model tersebut. Adapun perintah yang dapat digunakan untuk

me-load sebuah model adalah :

$this->load->model('Model_name');

(6)

Ketika sudah berhasil me-load sebuah model maka model tersebut akan menjadi sebuah property. Melalui property itulah Anda akan menggunakan semua fungsi yang ada di dalam model (perhatikan baris ke 2 pada contoh diatas get_data adalah fungsi didalam kelas Model_name).

2. View

View adalah komponen yang menampilkan antarmuka untuk pengguna

(user interface, UI) aplikasi. Antarmuka ini dibuat berdasarkan data dari

model. View hanyalah sebuah halaman webatau bagian dari halaman web, seperti sebuah header, footer, sidebar, dan lain-lain. Bahkan, View bisa menjadi fleksibel karena view dapat dimasukkan ke dalam view yang lain jika dibutuhkan. Untuk memanggil file view dapat digunakan fungsi seperti berikut ini (perhatikan baris 12):

$this->load->view('nama_view');

Nama_view adalah nama file view Anda. Dan file tersebut harusdiletakkan di dalam folder application/view.

3. Controller

Controller merupakan komponen yang digunakan untuk menangani interaksi pengguna, bekerja dengan model, dan memilih view mana yang digunakan untuk merender data. Controller dapat dikatakan sebagaijantung dari suatu aplikasi, karena controller menentukan bagaimana permintaan HTTP yang harus ditangani. Sebuah kelas Controller adalah sebuah file yang terletak di dalam folder application/controllerdan memiliki nama file yang sama dengan nama kelasnya dan dikaitkan dengan URL.

Segmen-segmen pada URL pada codeigniter mencerminkan Controller

yang dipanggil. Contohnya, kita akan membuat sebuah aplikasi hello codeigniter yang sederhana. Aplikasi tersebut akan diletakkan di folder hello dari htdoc anda, sehingga anda dapat mengaksesnya dengan membuka url http://localhost/hello. Perhatikan URL berikut ini:

http://localhost/hello/index.php/blog/

Pada contoh di atas, CodeIgniter akan berusaha untuk menemukan sebuah

(7)

kebrowser. Contohnya membuat sebuah controller sederhana sehingga dapat melihat apa yang terjadi. Dengan menggunakan teks editor, buatlah file

bernama blog.phpdi dalam folder application/controller. Setelah itu buatlah sebuah kelas Blog yang merupakan turunan dari kelas CI_Controller.

1. <?php if ( ! defined('BASEPATH'))

2. exit('No direct script access allowed');

3.

4. class Blog extends CI_Controller {

5.

6. function __construct()

7. {

8. parent::__construct();

9. }

10.

11. function index()

12. {

13. echo "Haloo.. saya adalah contoh codeigniter

pertama";

14. }

15.

16. }

17. /* End of file Blog.php */

18. /* Location:

./application/controllers/blog.php */

Jika kita melakukannya dengan benar, maka akan tampak tulisan “Hello.. sayaadalah contoh CodeIgniter pertama”. Ketentuan penamaan class (baik

(8)

Gambar 2.1 Struktur Framework Codeigniter (Wardana, 2010)

2.5. Unifield Modelling Language (UML)

UML adalah keluarga notasi grafis didukung oleh model-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek (Insap, 1996) Definisi ini merupakan definisi sederhana. Pada kenyataannya, pendapat orang tentang UML berbeda satu sama lain. Hal ini dikarenakan oleh sejarahnya sendiri dan perbedaan persepsi tentang apa yang membuat sebuah proses rancangan bangun perangkat lunak menjadi efektif.

UML lahir dari penggabungan banyak bahasa pemrograman grafis berorientasi objek yang berkembang pesat pada akhir 1980-an dan awal 1990-an UML merupakan standar yang relatif terbuka yang dikontrol oleh Object Management Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak perusahaan. OMG dibentuk untuk membuat standar-standar yang mendukung interoperabilitas, khususnya interoperabilitas sistem berorientasi objek. OMG mungkin lebih dikenal dengan standar-standar CORBA (Common Object Request Broker Architecture).

UML sebagai blueprint menyampaikan suatu keutuhan. Blueprint dibuat oleh seorang desainer yang pekerjaannya membuat desain yang detail untuk dikodekan oleh seorang programmer. Desain tersebut harus cukup lengkap, dalam artian seluruh

CONTROLLER

MODEL

VIEW

Web request

Get data Update

Data

(9)

keputusan desain telah dijabarkan dan programmer harus dapat mengikutinya secara langsung tanpad perlu berpikir keras. Desainer bisa jadi orang yang sama dengan

programmer, tetapi biasanya desainer adalah developer yang senior.

UML menyediakan 13 diagram untuk memodelkan aplikasi berorientasi objek, yaitu Use Case Diagram, Activity Diagram, Class Diagram, Object Diagram, Statechart Diagram, Composite Structure Diagram, Sequence Diagram, Communication Diagram, Interview Overview, Component Diagram, Timming Diagram, Deployment Diagram. Untuk memodelkan sistem ini penulis menggunakan 2 diagram, yaitu Use Case Diagram yang digunakan untuk menggambarkan fungsional sistem dan Activity Diagram digunakan untuk menggambarkan proses sistem.

2.5.1. Activity Diagram

Activity diagram adalah teknik untuk menggambarkan logika prosedural, proses bisnis dan jalur kerja. Dalam beberapa hal, diagram ini memainkan peran mirip sebuah diagram alir, tetapi perbedaan prinsip antara diagram ini dan notasi diagram alir adalah diagram ini mendukung behavior paralel. Activity diagram telah mengalami beberapa perubahan paling besar selama telah dikembangkan versi-versi UML, jadi tidaklah mengejutkan jika activity diagram telah dikembangkan secara signifikan dan diubah lagi dalam UML 2. Dalam UML 1, activity diagram dianggap sebagai kasus khusus state diagram. Hal ini menyebabkan banyak masalah bagi pengguna yang memodelkan jalur kerja, yang mana cocok dikerjakan oleh activity diagram. Dalam UML 2, ikatan tersebut dihilangkan.

(10)

dan dibayar. Anda dapat menampilkannya dengan join sebelum action menutup pesanan. Dengan sebuah join, aliran keluar dilakukan hanya jika seluruh aliran masuk telah mencapai join, Anda dapat menutup pesanan tersebut hanya jika Anda telah menerima pembayaran dan mengantarkan barang. Berikut sebuah contoh yang sederhana pada activity diagram :

Gambar 2.2 Contoh Activity Diagram

2.6. Penelitian Terdahulu

Beberapa penelitian terdahulu yang berkaitan dengan Itinerary Planning Service

adalah Gang Chen (2014), Automatic Itinerary Planning For Traveling Services. yang membangun aplikasi Itenerary Planning Service dengan menggunakan metode

Greedy, Chen (2014) telah melakukan penelitian dengan berbagai pendekatan untuk dapat membuat sebuah automatic itinenary plannig.Pendekatan yang dilakukan dalam penelitian tersebut, dengan membagi proses-proses dalam dua tahap. Tahap Pertama merupakan tahapan membuatan rencana perjalanan untuk satu hari, dan pada tahap kedua melakukan perkira-kiraan (Approximation). Untuk tahap pertama, dilakukan penerapan Paralel Proccessing dengan memanfaatkan Map Reduced Framework

(Hadoop) untuk menciptakan berbagai macam pilihan rencana perjalanan untuk satu hari. Sedangkan pada tahap kedua dilakukan pengubahan dari Team Oriented Problem

Mengisi Username

(11)

menjadi set-packing problem, sehingga Chen, et al. dapat menyelesaikan rencana perjalanan untuk N-hari dengan pendekatan perkira-kiraandalam melakukan pencarian rute tujuan wisata, penelitian lain yang berkaitan dengan Itenerary planning service

adalah Konstantinos G (2008), Algorithms For Itinerary Planning In Multimodal Transportation Networks, yang membangun aplikasi Itenerary Planning Service

dalam melakukan pencarian rute transportasi, Jakkilinki, et al. (2007) merupakan salah satu penelitian terdahulu dalam topik pembuatan rencana perjalanan secara otomatis, mereka memanfaatkan teknologi XML, dan semantic web, untuk menciptakan sebuah graph point-of-interests dari sebuah tempat wisata di Australia. Niemann, et al. (2008) melakukan penelitian mengenai pencarian hotel dengan menggunakan teknologi web semantik. Dalam penelitian yang dilakukan Niemann dkk menggunakan beberapa skenario, dimana skenario tersebut diantaranya sebagai

Tourist (perjalanan sendiri), Family (tiga malam di london, dengan perjalanan dengan menggunakan mobil), Bussiness Trip (pebisnis lakik-laki), Bussiness Trip (pebisnis wanita). Niemann, et al. menggunakan profil dari pelaku perjalanan untuk mendapatkan hotel yang tepat.

Untuk keterangan lain mengenai penelitian terdahulu yang berkaitan dengan

itenerary planning services pada Tabel 2.1 berikut.

Tabel 2.1 Penelitian terdahulu penawaran perjalanan untuk rentang waktu tertentu berdasarkan kriteria pengguna.

(12)

profilling terhadap pengguna. Dengan memanfaatkan semantic web, dilakukan pencaharian hotel berdasarkan lokasi dan POI.

3. Connecting Destinations with Ontology- Based e-Tourism Planner

Jakkilinki (2007)

Gambar

Gambar 2.1 Struktur Framework Codeigniter (Wardana, 2010)
Gambar 2.2 Contoh Activity Diagram
Tabel 2.1 Penelitian terdahulu

Referensi

Dokumen terkait

“Adalah sangat penting bagi PSI untuk memastikan kualitas APBD Kota Tangsel, di mana setiap rupiah uang rakyat harus diperuntukkan sebesar-besarnya bagi kesejahteraan dan

Pada tahun 2005 pemerintah mengeluarkan kebijakan Alokasi Dana Desa (ADD), yang ditandai dengan terbitnya Peraturan Pemerintah Nomor 72 Tahun 2005, yang tujuannya

Bidang Sumber Daya

Survey traffic counting volume lalu lintas kendaraan dilakukan selama 12 Jam di hari senin (hari sibuk) pada pukul 06.00 WIB sampai dengan selesai pada pukul 18.00 WIB. Data

Puskesmas Antang Kota Makassar Dari hasil penelitian yang didapat pada keseluruhan responden berjumlah 41 orang, diperoleh 35 orang yang tidak berpengaruh pada

Sinarmas Multifinance cabang Pangkalpinang diharapkan dapat meningkatkan kualitas dari sistem informasinya, untuk meningkatkan hal tersebut perlu dilakukan evaluasi

(ii) Pendaftar Pusat Operasi e-Lelong hendaklah dalam tempoh empat belas (14) hari daripada tarikh penerimaan perakuan bertulis penerimaan baki harga belian

Hasil penelitian didapatkan Ekonomi keluarga responden sebagian termasuk kategori kurang berjumlah 57 orang (55,9%) dan ada hubungan yang bermakna antara