• Tidak ada hasil yang ditemukan

Application Programming Interface (API)

LANDASAN TEORI

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.

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.

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-meng-extend ketika hendak menggunakan fitur database pada CodeIgnitersaja. Semua Model harus diletakkan di dalam folderapplication/models.Agar dapat menggunakan model maka kita harus

load model tersebut. Adapun perintah yang dapat digunakan untuk

me-load sebuah model adalah :

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

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

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

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 Update Presentation

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.

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 (Martin, 2005). Activity diagram memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain diagram hanya menyebutkan aturan-aturan rangkaian dasar yang harus Anda ikuti. Hal ini penting untuk pemodelan bisnis karena proses-proses sering muncul secara paralel. Ini juga berguna pada algoritma yang bersamaan, dimana urutan-urutan independen dapat melakukan hal-hal secara paralel. Jika Anda memiliki paralelisme, Anda perlu sinkronisasi. Anda tidak perlu menutup pesanan tersebut sebelum diantar

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

Dokumen terkait