Perencanaan Perjalanan Wisata dengan Metode Greedy

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 terusmenerus 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
langkah 2.

Universitas Sumatera Utara

9

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
{SOLUSI(S) sudah diperoleh or C = {} }

Universitas Sumatera Utara

10

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
juga merupakaan sebuah platform untuk mencari refrensi dari sebuah
perjalanan, layaknya situs tripadvisor .

Universitas Sumatera Utara

11

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
framework telah berisi sekumpulan arsitektur atau konsep-konsep yang dapat

mempermudah dalam pemecahan sebuah permasalahan. Framework bukanlah
peralatan atau tools untuk memecahkan sebuah masalah, tetapi sebagai alat bantu.

Universitas Sumatera Utara


12

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 mengextend class Model. Kelas model di-extend ketika hendak menggunakan fitur
database pada CodeIgniter saja. 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 meload sebuah model adalah :

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


Universitas Sumatera Utara

13

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/controller dan 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
controller bernama blog pada file blog.php, kemudian menampilkannya

Universitas Sumatera Utara

14

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.