bab ii kajian pustaka state of the art6 bab ii kajian pustaka bab ii menguraikan tentang definisi...
TRANSCRIPT
6
BAB II
KAJIAN PUSTAKA
Bab II menguraikan tentang definisi dan membahas beberapa hal yang
terkait dengan topik tugas akhir, yakni tentang State of the Art, Cloud Storage,
Google Drive, Application Programming Interface (API), Middleware, PHP,
Javascript, web service, XAMPP, MySQL, dan Task Scheduler.
2.1 State of the Art
Penelitian Layanan Pertukaran Data dengan menggunakan API Google
Drive ini dapat dikaitkan dengan tinjauan, referensi, atau sumber yang mendasari
dalam perancangan sistem. Pembahasan mengenai teori yang mendasari dalam
pembuatan sistem ini adalah dijelaskan sebagai berikut.
Penelitian yang mengimplementasikan pertukaran data atau sistem
berbasis web service dengan judul Pengembangan Sistem Terdistribusi untuk
Sistem Informasi Administrasi Kependudukan dengan Integrasi Teknologi
Remote Method Invocation dan Web Service (Dharmasurya, Adinandra 2013)
dijelaskan sebagai berikut. Penelitian tersebut memfasilitasi pelayanan di bidang
administrasi kependudukan sebuah kota atau bisa disebut Sistem Informasi
Administrasi Kependudukan (SIAK). Sistem ini menggunakan basis data
Oracle11G dan berjalan di Windows Server 2008. Bagi instansi yang terkait
dengan kependudukan di kota tersebut dapat mengakses web SIAK karena sistem
ini berbasis web service. Penelitian tersebut menerapkan pengembangan sistem
terdistribusi pada SIAK Offline dengan melakukan integrasi teknologi Remote
Method Invocation (RMI) dan web service untuk meningkatkan kerja SIAK.
Penelitian yang berjudul Design of Message-Oriented Middleware Based
on Social Messenger (Sukarsa, Made 2012). Penelitian ini menjelaskan tentang
desain MOM pada social messenger yaitu menggunakan Yahoo Messenger.
Dijelaskan gambaran umum MOM berbasis Social Messenger, format pesan,
arsitektur sistem dan fitur yang ada namun belum ditemukan antarmuka maupun
hasil jadi aplikasi karena memang dijelaskan hanya desain sistem. Dilanjutkan
dengan penelitian berikutnya yang lebih lengkap karena berisi gambaran aplikasi
7
yang berjudul Data Exchange Between Information System at Low Bandwidth
Quality Using Messaging (Sukarsa, Made 2014). Penelitian pada jurnal ini
menggunakan Yahoo Messenger untuk melakukan komunikasi dua arah antar
akun dimana konten yang ditukar seperti format data atau teks bisa lebih panjang
jika dibandingkan dengan Short Message Services (SMS) dan cara ini tidak
membutuhkan bandwidth yang besar. Arsitektur sistem yang dikembangkan pada
penelitian ini adalah membangun Messaging-Based Middleware (MOM) sebagai
interpreter atau penerjemah diantara sistem yang ada. MOM didesain untuk
dikoneksikan ke database MOM sendiri dan database eksternal (database
sistem). Database MOM memuat metadata untuk sebuah bisnis proses yang
digunakan dalam pertukaran data antar aplikasi. Database eksternal adalah sebuah
database yang sudah ada yang digunakan oleh sistem. Database eksternal adalah
sumber dari pertukaran data yang dilakukan oleh MOM. Pertukaran data
dilakukan ke aplikasi lainnya melalui MOM yang telah ada di sistem lainnya jadi,
setiap sistem memiliki MOM tersendiri karena setiap sistem memiliki database
yang berbeda sehingga membutuhkan interpreter yang berbeda pula.
Penelitian yang berjudul Arsitektur Pertukaran Data Berbasis Data Grid
dalam Membangun Gorontalo Library Network (Koniyo, Hidayat 2014).
Penelitian ini menjelaskan tentang sistem yang menghubungkan banyak
perpustakaan guna memudahkan masyarakat didaerah tersebut dalam mengakses
informasi disetiap perpustakaan yang terhubung melalui sistem ini. Gorontalo
Library Network (GLN) menghubungkan setiap perpustakaan daerah yang telah
berbentuk perpustakaan digital walaupun sistem perpustakaan digital tersebut
memiliki perbedaan dalam hal platform dengan bantuan teknologi grid.
Perpustakaan yang ada di GLN adalah satu perpustakaan daerah Provinsi dan
enam perpustakaan daerah Kabupaten atau Kota. GLN dapat diakses koleksinya
dari tujuh perpustakaan digital tersebut. Skenario pertukaran data antar
perpustakaan digital ini adalah pencarian buku pada perpustakaan A, koleksi buku
tidak terdapat pada database perpustakaan A, perpustakaan A mengirimkan
request ke server untuk mencari koleksi buku pada perpustakaan daerah yang lain,
perpustakaan daerah lain mengirimkan balasan ke server atas koleksi buku yang
8
dicari, dan server mengirimkan informasi hasil pencarian buku pada perpustakaan
A dengan menyertakan lokasi fisik buku yang diminta.
Penelitian berikutnya adalah Perancangan Cloud Storage dengan Konsep
Auto Syncing Menggunakan Aplikasi Owncloud dan Dropbox oleh Jamil Cahyadi
dkk. yang membahas tentang sinkronisasi cloud storage Dropbox melalui aplikasi
Owncloud. Fitur External Storage pada Owncloud dimanfaatkan dengan mengatur
API Dropbox ke dalamnya. API yang telah di set menghasilkan suatu folder yang
telah tersinkronisasi ke Dropbox dan Owncloud (lokal) jadi, file yang sudah
diunggah ke dalam Dropbox tersinkronisasi ke mesin lokal. Kelebihan dengan
menggunakan cara ini adalah suatu pihak dapat menekan penggunaan bandwith
karena sinkronisasi dapat dilakukan di satu mesin saja lalu mesin lain dapat
mengakses file tersebut melalui jaringan lokal tanpa perlu terkonesi ke Internet.
2.2 Pengertian Cloud Storage
Cloud Storage adalah sebuah layanan dimana data dipelihara, dikelola, dan
di backup. Layanan ini tersedia untuk suatu pihak yang biasanya menggunakan
Jaringan Internet. Hal ini memungkinkan pihak tersebut untuk menyimpan file
secara online sehingga dapat mengaksesnya dari lokasi manapun melalui Internet.
Perusahaan penyedia menjaga data pada server yang dimilikinya sehingga data
tersebut dapat diakses oleh pemilik secara online. Pemilik file juga harus
menyadari bahwa backup data dari file tersebut masih diperlukan apabila
menggunakan media penyimpanan cloud storage, karena memulihkan data dari
cloud storage jauh lebih lama jika dibandingkan dengan backup lokal
(Nonprofit Technology Collaboration, 2013).
2.2.1 Google Drive
Google Drive merupakan aplikasi cloud yang disediakan oleh Google
sebagai media penyimpanan yang dapat diintegrasikan ke berbagai aplikasi
Google lainnya. Google Drive rilis pada 24 April 2012 yang awalnya adalah
Google Docs. Google Docs yang pada awal ber url docs.google.com diganti
menjadi drive.google.com. Ukuran media penyimpanan yang disediakan oleh
Google Drive adalah 15Gb termasuk Gmail dan Google Photos. Penyimpanan
9
yang termasuk hitungan di Google Drive adalah seluruh pesan dan attachment
yang ada di folder spam dan folder sampah, PDF, gambar dan video. Seluruh
dokumen yang dibuat melalui Google Docs baik doc, sheet dan slide tidak
termasuk hitungan penyimpanan Google Drive. Google Photos termasuk hitungan
penyimpanan Google Drive jika pada saat mengunggah foto menggunakan opsi
“Original”. File yang dibagikan bersama orang lain dalam artian diunggah oleh
pihak lain tidak termasuk hitungan penyimpanan Google Drive (Drive Help
2016).
2.3 Application Programming Interface (API)
API merupakan aturan-aturan pada program perangkat lunak yang dapat
digunakan untuk mengakses, memanfaatkan layanan, dan sumber daya yang
disediakan oleh program lain yang telah diimplementasikan oleh API tersebut.
Fungsi API adalah sebagai interface antara program perangkat lunak yang
berbeda dan memfasilitasi interkasinya mirip seperti memafasilitasi interaksi
antara manusia dan komputer (3scale Network S.L., 2011).
Co
nsu
mer
Pro
gram
Pro
vid
er P
rogr
am
AP
I in
terf
ace
Gambar 2.1 Gambaran API.
Gambar 2.1 menjelaskan bahwa API menjadi jembatan antara cloud dan
provider program. Provider program menggunakan API yang diimplementasikan
pada cloud tersebut untuk mengakses, memanfaatkan layanan, sumber daya, dan
lain-lain sehingga fungsi-fungsinya dapat digunakan sesuai keinginan
pengembang.
10
2.3.1 Google Drive Application Programming Interface (API)
Representational State Transfer (REST) v3
Google Drive Application Programming Interface (API) Representational
State Transfer (REST) v3 adalah tata cara atau aturan-aturan yang disediakan oleh
Google untuk mengakses fitur-fitur yang ada di Google Drive secara web. API ini
memungkinkan pengembang untuk membuat sebuah aplikasi berbasis web dengan
memasukan client libraries yang telah disediakan Google. Terdapat banyak
bahasa pemrograman yang didukung oleh API ini yaitu .NET, Android, Go, iOS,
Java, Javascript, Node.js, PHP, Python, dan Ruby. Alamat email (akun Google)
digunakan sebagai identifier atau pengenal untuk mengenali setiap penggunaan
terhadap aplikasi yang memanfaatkan API ini. Identifier mewakili pihak yang
melakukan pengiriman pesan dan pihak yang menerima pesan. (Developers
Google PHP Quickstart 2016).
2.3.1.1 Kuota Request Queries pada Google Drive API
Google Drive API memiliki keterbatasan kuota dalam permintaan aplikasi
atau sistem untuk melakukan queries ke API. Berikut adalah Tabel 2.1 yang
menunjukan batas kuota permintaan queries pada Google Drive API.
Tabel 2.1 Kuota Request Queries
Request per day 1 – 1.000.000.000 (satu milyar)
Request per 100 seconds 1 – 10.000 (sepuluh ribu)
Request per 100 seconds per user 1 – 1000 (seribu)
Tabel 2.1 menunjukan kuota request queries yang dapat diatur pada
Project, Dashboard, pengaturan Google Drive API, Kuota di
console.developers.google.com. Peningkatan jumlah kuota dapat dilakukan
dengan mengisi formulir yang disediakan oleh Google namun karena kurangnya
beberapa data yang harus diisikan peningkatan jumlah kuota belum dapat
dilakukan.
11
2.3.1.2 Mengakses Google Drive REST API
Kriteria dan langkah-langkah untuk mengakses fitur-fitur yang ada di
Google Drive secara pemrograman akan dijelaskan seperti berikut.
1) Google APIs
API dapat dibuat pada console.developers.google.com dengan memiliki
sebuah akun Google terlebih dahulu.
2) Membuat Proyek
Membuat proyek di console.developers.google.com pada menu
pengelolaan API lalu pilih buat proyek. Berikut gambaran halaman pembuatan
proyek baru.
Gambar 2.2 Membuat Proyek Baru
Gambar 2.2 menampilkan Form Proyek Baru yang berisi nama proyek, id
proyek, dan lokasi app engine. Klik Tombol Buat untuk membuat proyek baru.
3) Aktifkan API
Mengaktifkan Cloud Storage Services di Google Cloud API dan Google+
API di Social API pada Pengelolaan API lalu Pustaka. Berikut gambaran halaman
daftar API yang dapat diaktifkan.
12
Gambar 2.3 Memilih API
Gambar 2.3 menampilkan daftar API yang dapat diaktifkan pada proyek
yang telah dipilih. Aktifkan Drive API pada kategori API Google Apps dan
aktifkan Google+ API pada kategori API Sosial.
4) Buat Kredensial ID Klien OAuth
Buat kredensial ID klien OAuth di menu Kredensial. Klik Buat Kredensial
lalu pilih ID klien OAuth. Berikut gambaran halaman pembuatan kredensial.
13
Gambar 2.4 Membuat Kredensial
Gambar 2.4 menampilkan halaman pembuatan kredensial yang digunakan
untuk autentikasi API yang telah dibuat.
5) Buat Kredensial ID Klien OAuth Lanjutan
Lanjutan dari langkah buat kredensial ID klien OAuth. Berikut adalah
gambaran halaman Buat ID Klien OAuth.
14
Gambar 2.5 Membuat Kredensial Lanjutan
Gambar 2.5 menampilkan halaman pembuatan kredensial. Pilih jenis
aplikasi web lalu isi form nama dan URI pengalihan yang sah dengan alamat
server web yang telah dimiliki (dapat menggunakan localhost). Alamat URI
pengalihan merujuk pada file oauth2callback.php yang didapat di
https://developers.google.com/api-client-library/php/auth/web-app.
6) Unduh JSON
Pengunduhan JSON dapat dilakukan pada halaman kredensial. Berikut
adalah gambaran halaman kredensial.
15
Gambar 2.6 Halaman Kredensial
Gambar 2.6 menampilkan halaman kredensial yang berisi Tombol Unduh
JSON. File JSON berisi client id, project id dan lain-lain yang dipasang bersama
dengan aplikasi.
7) Layar Persetujuan OAuth
Form pada halaman layar persetujuan OAuth terletak pada Sub menu layar
persetujuan OAuth pada menu Kredensial. Berikut adalah gambaran halaman
layar persetujuan OAuth.
16
Gambar 2.7 Layar Persetujaun OAuth
Gambar 2.7 menampilkan halaman layar persetujuan OAuth yang
mengatur data pengembang, nama produk yang ditampilkan, URL beranda, URL
logo produk, URL kebijakan privasi, dan URL persyaratan layanan.
8) Client Libraries Google Drive
Client Libraries Google Drive dipasang bersama dengan aplikasi yang
dikembangkan agar API dapat digunakan secara pemrograman. Berikut adalah
gambaran halaman unduh Client Libraries Google Drive.
17
Gambar 2.8 Halaman Unduh Client Libraries Google Drive
Gambar 2.8 menampilkan halaman unduh client libraries Google Drive.
Pilih Google API Client Library for PHP (beta). Pilih sub menu Install the Library
pada menu Guides. Ada dua cara memasang client libraries Google Drive.
Pertama menggunakan Composer dan kedua cloning from GitHub. Gunakan cara
kedua dengan mengunduh client libraries Google Drive di website
https://github.com/google/google-api-php-client.
9) Sertakan OAuth file, JSON file, dan Client Libraries Google Drive
Masukan oauth2callback.php, JSON file, dan client libraries yang telah
diunduh ke directory web.
18
Gambar 2.9 OAuth, JSON file, dan Client Libraries Google Drive
Gambar 2.9 menampilkan direktori aplikasi yang telah disertakan dengan
OAuth file, JSON file, dan Client Libraries Google Drive. OAuth file berisi
beberapa pengaturan API dan pengalihan untuk mendapatkan access token. JSON
file berisi data API yaitu client id, project id dan lain-lain. Client Libraries Google
Drive berisi class-class yang digunakan untuk mengakses API secara
pemrograman.
19
2.3.1.3 Menggunakan Google Drive REST API
Menggunakan Google Drive REST API dengan bahasa Pemrograman PHP
akan dijelaskan seperti pada langkah-langkah berikut.
1) Sertakan autoload.php yang ada di client libraries pada file php yang ingin
dieksekusi.
require_once 'D:/Program Files/xampp/htdocs/DEUGDA/google-api-php-
client-1-master/src/Google/autoload.php';
Kode Program 2.1 Menyertakan Client Libraries Google Drive REST API
Kode Program 2.1 merupakan contoh penggunaan fungsi require_once
pada bahasa Pemrograman PHP yang digunakan untuk menyertakan client
libraries agar pemrograman API dapat dieksekusi.
2) Sertakan PHPExcel.php yang ada di PHPExcel library yang dapat diunduh
di https://phpexcel.codeplex.com. PHPExcel digunakan untuk mendukung
fitur pertukaran data file berjenis xlsx.
require_once 'D:/Program
Files/xampp/htdocs/DEUGDA/phpexcel/PHPExcel.php';
Kode Program 2.2 Menyertakan Library PHPExcel
Kode Program 2.2 adalah contoh penggunaan fungsi require_once pada
bahasa Pemrograman PHP yang digunakan untuk menyertakan library PHPExcel.
3) Mengeksekusi file oauth2callback.php untuk mendapatkan token yang
digunakan untuk mengakses API.
require_once '../google-api-php-client-1-
master/src/Google/autoload.php';
session_start();
$client = new Google_Client();
$client->setAccessType('offline');
$client->setApprovalPrompt("force");
$client->setAuthConfigFile('client_secret.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] .
'/DEUGDA/admin/oauth2callback.php');
20
$client-
>addScope(array('https://www.googleapis.com/auth/userinfo.email','
https://www.googleapis.com/auth/userinfo.profile','https://www.goo
gleapis.com/auth/drive'));
if (! isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url,
FILTER_SANITIZE_URL));
} else {
$client->authenticate($_GET['code']);
$refreshToken = $client->getAccessToken()["refreshToken"];
$tokens = $client->getAccessToken();
$tokens["refreshToken"] = $refreshToken;
$client->setAccessToken($tokens);
$_SESSION['access_token'] = $client->getAccessToken();
$string_data = file_get_contents("../settings.txt");
$array = unserialize($string_data);
$array['database'] = $array['database'];
$array['token'] = $_SESSION['access_token'];
$string_data = serialize($array);
file_put_contents("../settings.txt", $string_data);
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] .
'/DEUGDA/redirect.php';
header('Location: ' . filter_var($redirect_uri,
FILTER_SANITIZE_URL));
}
Kode Program 2.3 Kode Program pada oauth2callback.php
Kode Program 2.3 merupakan isi dari oauth2callback.php. Token didapat
apabila pemilik akun telah melakukan login dengan akun Google yang
dimilikinya. API sudah dapat digunakan dan perlu diarahkan ke suatu URL yang
ada di variable $redirect_uri. Kunci dasar penggunan API ini adalah
menyertakan library, mendefinisikan suatu variable dengan class Google_Client,
lalu menjalankan fungsi setAuthConfigFile dengan parameter directory file JSON
yang telah diunduh dari Google Console.
21
2.3.2 Komparasi Teknologi Pertukaran Data
Terdapat berbagai macam teknologi yang dapat digunalan dalam
melakukan pertukaran data seperti web service, RMI, dan RPC. Berikut komparasi
yang setiap teknologi tersebut terhadap teknologi API.
2.3.2.1 Komparasi Web Service dengan API
Simple Object Access Protocol (SOAP) atau REpresentational State
Transfer (REST) dapat digunakan sebagai teknologi di dalam web service. SOAP
adalah sebuah spesifikasi protokol untuk pertukaran pesan atau informasi
terstruktur dalam implementasi web service di jaringan komputer. SOAP
menggunakan Extensible Markup Language (XML) sebagai format pesannya, dan
biasanya bergantung pada protokol layer aplikasi lainnya, terutama Hypertext
Transfer Protocol (HTTP) dan Simple Mail Transfer Protocol (SMTP), untuk
transmisi dan negosiasi pesan (Nurdiyanto, Wisnu 2012). SOAP hanya dapat
menggunakan method HTTP POST sedangkan REST dapat menggunakan method
HTTP POST, GET, PUT, dan DELETE (Pautasso, Cesare 2008). REST adalah
sebuah arsitektur software untuk sistem terdistribusi semisal web. REST telah
berkembang sebagai model desain web servis yang dominan saat ini. Istilah
representational state transfer dikenalkan dan didefinisikan pada tahun 2000 oleh
Roy Fielding dalam desertasi doktoralnya. Beliau merupakan salah satu penulis
utama spesifikasi HTTP versi 1.0 dan 1.1. Sesuai konstrainnya, REST biasa
disebut dengan RESTful (Nurdiyanto, Wisnu 2012).
Method HTTP yang dapat digunakan pada web service adalah POST,
GET, PUT, dan DELETE sedangkan dalam teknologi API method HTTP
disesuaikan dengan aturan yang ditentukan oleh penyedia. Contoh method GET
yang digunakan untuk mendapatkan informasi file pada API Google Drive.
Method GET diikuti oleh fungsi printFile yang digunakan untuk menampilkan
informasi file dan fungsi downloadFile yang digunakan untuk mendapatkan link
download dari file yang diinginkan. Contoh lain method yang digunakan dalam
API Google Drive untuk mengunggah file adalah POST dengan mengikuti aturan
API berupa fungsi insertFile yang berisi parameter informasi file yang ingin
diunggah.
22
Perbedaan yang signifikan dari teknologi web service dengan teknologi
API adalah teknologi API digunakan untuk memanfaatkan sumber daya dari suatu
aplikasi atau sistem maupun perangkat keras yang dimiliki oleh penyedia
sehingga dapat digunakan oleh pihak lain. Aturan yang dibuat oleh penyedia
adalah cara dalam pemanfaatan sumber daya tersebut. API dimiliki oleh suatu
pihak seperti API Google Drive, API Google+, dan lain-lain dimiliki oleh pihak
Google sedangkan web service hanya digunakan dalam konteks client dan server
tanpa adanya suatu pihak yang menyediakan aturan khusus untuk menggunakan
sumber daya yang dimilikinya.
Web service biasanya menggunakan Port 80 dalam mekanisme sesi
koneksi di jaringan. Port ini dapat diubah melalui control panel sehingga web
service tidak harus menggunakan Port 80. API Google Drive yang request
datanya melalui HTTPS menggunakan Port 443.
Tabel 2.2 Perbedaan Web Service dengan Web Service + API (Sumber. Andolasoft 2014)
Web Service Web API
Memungkinkan membangun layanan yang mendukung beberapa protokol transport seperti HTTP, TCP, UDP, dan transportasi custom.
Model pemrograman yang sangat baik untuk HTTP.
Memungkinkan beralih antara beberapa protokol transport.
Lebih cocok untuk browser, perangkat mobile dll memungkinkan jangkauan yang luas.
Memungkinkan membangun layanan yang mendukung beberapa pengkodean (text, MTOM, dan binary) dari jenis pesan yang sama dan memungkinkan beralih di antara mereka.
Memungkinkan membangun API yang mendukung berbagai jenis media termasuk XML, JSON, dan lain-lain.
Mendukung Request-Reply, One Way, dan pola pertukaran pesan Duplex.
Menggunakan protokol dasar dan format seperti HTTP, WebSockets, SSL, JQuery, JSON, dan XML.
Tabel 2.2 menunjukan perbedaan antara web service dengan web API dari
berbagai sisi. Web API adalah gabungan dari teknologi REST dan API. API
sangat didukung oleh teknologi REST karena teknologi REST mendukung
berbagai jenis media seperti XML, JSON, dan lain-lain.
23
Menurut World Wide Web Consortium model web service memiliki
banyak sekali manfaat penggunaanya (W3C, 2014) antara lain.
1. Web service sebagai standar yang berlaku untuk web service, sehingga
mempunyai dukungan yang lebih baik dari standar yang lain (WSDL, WS-
*) dan tools dari berbagai vendor.
2. Dirancang untuk menangani lingkungan komputasi terdistribusi.
3. Independence artinya dapat diprogram dalam berbagai bahasa
pemrograman.
4. Sifat fleksibel untuk memungkinkan penggunaan protokol transport yang
berbeda. Stack standar menggunakan HTTP sebagai protokol transport,
tetapi protokol lainnya seperti JMS dan SMTP juga bisa digunakan.
5. Penggunaan SOAP web service paling banyak digunakan dalam
lingkungan enterprise untuk mengintegrasikan penggunaan yang lebih luas
dan banyak aplikasi serta mengitegrasikan dengan legacy system (sistem
yang sudah ada sebelumnya).
Menurut World Wide Web Consortium (W3C, 2014) model web service
selain memiliki kelebihan tentunya memiliki kelemahan, antara lain:
1. Permasalahan yang berkaitan dengan interoperabilitas dapat terjadi dalam
kaitannya dengan adanya berbagai tipe data yang ada di sisi server layanan
dan penggunaannya di sisi klien.
2. Konversi atau transformasi antar berbagai bentuk berkas XML, jika
dilakukan dengan intensif, dapat menimbulkan permasalahan yang
berkaitan dengan kinerja sistem.
3. XML Schema adalah berkas yang sangat kompleks sehingga sukar untuk
mengidentifikasi konstruksi yang mendukung penuh implementasi SOAP
dan WSDL.
4. Pengembangan web service dengan gaya SOAP secara konseptual lebih
sulit.
5. Kurangnya efisiensi, karena membutuhkan keterlibatan tools sehingga
sulit untuk dikembangkan.
24
2.3.2.2 Komparasi Remote Procedure Calls (RPC)
RPC adalah suatu protokol yang menyediakan suatu mekanisme
komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada
suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote
system protokol SOAP). RPC mengasumsi keberadaan dari low-level protokol
transportasi seperti TCP atau UDP untuk membawa pesan data dalam
komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal
Data Representation (XDR), yang merupakan standar dari representasi data dalam
komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis
RPC yang disediakan.
Klien adalah komputer atau proses yang mengakses suatu servis/layanan
atau resources dari proses atau komputer pada suatu jaringan. Server adalah
komputer yang menyediakan servis/layanan dan resources, dan yang
mengimplementasikan servis jaringan. Tiap servis pada network adalah susunan
dari program remote, dan tiap program remote mengimplementasi prosedur
remote. Semua prosedur berikut parameternya dan hasilnya didokumentasi secara
spesifik pada protokol suatu program.
Program pada komputer klien harus mampu untuk mencari nomor port
untuk tiap program di server yang hendak digunakan karena tidak semua port
yang melayani RPC dapat digunakan sebagai jaringan transport untuk
pemrosesan message di dalam jaringan. Port Mapper adalah layanan pada jaringan
yang dapat mencari nomor port untuk semua program remote yang disediakan
oleh server.
Port Mapper terletak pada nomor Port 111 pada setiap mesin (client
maupun server) dan merupakan satu-satunya layanan jaringan yang mempunyai
port yang khusus dan tetap. Sedangkan untuk jenis layanan jaringan lainnya,
nomor port nya dapat statis atau berubahubah asalkan kesemuanya terdaftar pada
Port Mapper. Penempatan nomor port untuk tiap program remote ke dalam Port
Mapper mengotomatisasi administrasi nomor-nomor port. Hasilnya disimpan
dalam satu file dimana file ini diduplikat ke setiap klien. Sehingga terjadi proses
pembaruan data (update) setiap kali ada program remote baru yang disediakan
25
oleh jaringan. Salah satu cara alternatif agar sistem tidak harus selalu meng-
update file mapper nya adalah dengan menempatkan hasil pemetaan port program
remote pada suatu file Network File System (NFS) yang di-sharing. Namun hal ini
memba wa kendala apabila server tidak dapat berfungsi, maka seluruh jaringan
juga tidak dapat menggunakan fungsi ini.
Gambar 2.10 Remote Procedure Call Flow
(Sumber. Wahyu, Sattriedi 2009)
Gambar 2.10 diatas adalah RPC flow yang memberikan gambaran mengenai aliran
dari eksekusi dalam proses RPC. Klien memanggil prosedur stub lokal. Prosedur
Stub memberikan parameter dalam suatu paket yang dikirim ke jaringan. Proses
ini disebut sebagai marshalling. Fungsi Network pada sistem operasi dipanggil
oleh stub untuk mengirim suatu message. Kemudian Kernel ini mengirim message
ke sistem remote. Kondisi ini dapat berupa connectionless atau connection-
oriented. Stub pada sisi server melakukan proses unmarshals pada paket yang
dikirim pada network. Stub pada server kemudian mengeksekusi prosedur
panggilan lokal. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan
kembali ke stub pada server. Stub server melakukan proses marshals lagi dan
mengirimkan message nilai balikan kembali ke jaringan. Message ini dikirim
kembali ke klien. Stub klien membaca message ini dengan menggunakan fungsi
pada jaringan. Proses unmarshalled kemudian dilakukan pada message ini dan
26
nilai balikan diambil untuk kemudian diprosespada proses lokal. (Wahyu, Sattredi
2012).
2.3.2.3 Komparasi Remote Method Invocation (RMI)
RMI menyediakan sarana dimana client dan server dapat berkomunikasi
dan saling bertukar infomasi. RMI memungkinkan pengembang perangkat lunak
untuk merancang aplikasi terdistribusi dimana methods dari remote object dapat
dipanggil dari JVM (Java Virtual Machine) lain, yang mungkin berjalan pada host
yang berbeda. Remote object adalah obyek dalam Java yang dapat direferensikan
secara remote. Pemrogram seakan-akan memanggil methods lokal dari file kelas
lokal, sedang dalam kenyataannya semua argumen dikirimkan ke remote target
dan diinter-pretasikan, kemudian hasilnya dikirimkan kembali ke pemanggil.
Server dalam RMI membuat remote objects, membuat referensi, dan menunggu
client untuk memanggil methods dari remote object ini. Sedangkan client
mendapatkan remote reference dari satu atau lebih remote object dan memanggil
methods untuk remote object tersebut.
Gambar 2.11 Arsitektur Sistem RMI
(Sumber. Nur, Ratnasari 2003)
Gambar 2.11 menunjukan arsitektur dari sistem RMI yang menyerupai
bentuk dari teknologi RPC. Lapis stub/skeleton merupakan interface antara lapis
aplikasi dan JVM (Java Virtual Machine). Stub dan skeleton ini terbentuk secara
otomatis dengan menggunakan compiler yang ada di RMI yaitu rmic compiler
yang didefinisikan oleh user dalam remote interface. Client mereferensi satu
27
remote object melalui stub ini. Stub berlaku sebagai proxy yang berlaku sebagai
place holder bagi server. Client-side stub untuk suatu remote object bertanggung
jawab pada berbagai macam tugas meliputi, inisiasi suatu remote call,
marshalling (mengubah obyek menjadi bentuk yang portable bagi jaringan)
argumen untuk dikirimkan, memberitahukan lapis remote reference bahwa suatu
call harus dipanggil (invoked), unmarshalling return value (atau exception), dan
memberitahukan lapis remote reference bahwa suatu panggilan telah selesai.
Server-side skeleton, di lain pihak, bertanggung jawab dalam unmarshalling
argumen yang masuk dari client, memanggil implementasi remote object yang
sebenarnya, dan marshalling return value (atau exception) pada stream untuk
dikirim kembali ke client.
Lapis remote reference dan lapis transport merupakan lapis yang tidak
terlihat oleh user (invisible). Lapis reference bertanggung jawab dalam
melaksanakan satu protokol remote reference khusus. Lapis ini bertanggung-
jawab untuk mengatur “liveliness” dari remote object dan mengatur komunikasi
antara client/server dengan JVM. Sedangkan lapis transport adalah lapis TCP/IP-
based yang bertanggung jawab dalam mengadakan hubungan antara server dan
client.
RMI menyediakan konsep yang disebut dengan RMI registry, yang
berjalan pada port generik dan memberitahu client pada port mana server
menanggapi permintaan tertentu dari client. Registry menyediakan satu referensi
bagi client untuk melihat server. Kode client tidak perlu menyertakan port tempat
server berjalan jika dapat melihat port tersebut secara dinamis dari registry. Port
mana yang digunakan oleh registry bukan merupakan satu persoalan, Port 1099
dipandang sebagai default port bagi RMI registry (Nur, Ratnasari 2003).
2.3.2.4 Komparasi Google Drive APIs REST (HTTP) dengan Google Drive APIs
for Android
Google Drive APIs Representational State Transfer (HTTP) memberikan
akses secara pemrograman ke Google Drive. API ini berbasis web dengan method
HTTP untuk merequest data ke server Google. Sebelum melakukan proses
28
request data autentikasi harus dilakukan sehingga class pada client libraries bisa
melakukan request data berdasarkan fungsi dan parameter. Libraries melakukan
request berdasarkan fungsi dan parameter tadi misalkan melakukan request file
list maka method yang digunakan adalah GET. Data dikirim ke server Google
dengan balasan atau response berupa daftar file yang telah di request sebelumnya.
Gambar 2.12 Gambaran REST
(Sumber. Service Architecture 2016)
Gambar 2.12 menunjukan request dan response antara konsumen dan
penyedia. Request dilakukan melewati HTTP dengan method GET, POST, PUT,
atau DELETE. Response yang diterima konsumen bisa berupa XML, JSON, dan
lain-lain. Sedangkan Google Drive APIs for Android prosesnya berjalan dari
aplikasi ke Google Play service library.
29
Gambar 2.13 Gambaran Google Drive APIs for Android
(Sumber. Developers Google 2016)
Gambar 2.13 menunjukkan bagaimana Google API Client menyediakan
antarmuka untuk menghubungkan dan membuat panggilan ke salah satu layanan
Google Play yang tersedia seperti Google Play Game, Google Drive, dan lain-lain.
2.3.2.5 Arsitektur Backend Line Messenger
Line phone (iPhone, Android, WP, Blackberry, dan WAP) dan PC berjalan
seperti pada gambar 2.14. Arsitektur backend Line Messenger menggunakan
Apache Thrift sebagai layanan cross-language yaitu membangun layanan antar
bahasa pemrograman. Berikut adalah gambaran dari arsitektur tersebut.
30
Gambar 2.14 Arsitektur Backend Line Messenger
(Sumber. Quora 2014)
Arsitektur ini menggunakan server HTTP dan proxy Nginx. Database
yang digunakan adalah Redis. Arsitektur terdiri dari empat lapisan yang pertama
adalah lapisan aplikasi, kedua lapisan Thrift API, ketiga lapisan yang berisi HTTP
server dan Redis queue (antrian), dan keempat adalah lapisan yang berisi
message, contact, dan group pada sharded Redis cluster.
2.4 Middleware-Oriented Middleware (MOM)
Middleware dirancang untuk membantu mengelola kompleksitas dan
heterogenitas yang melekat dalam sistem terdistribusi (Bakken, David 2003).
Terdapat beberapa jenis middleware dan salah satunya adalah Message-Oriented
Middleware (MOM). Message-Oriented Middleware (MOM) adalah middleware
yang memungkinkan komunikasi melalui pesan. MOM menyediakan message
service layer antara transportasi dan application layer dari tumpukan protokol
jaringan (Sukarsa, Made 2012).
31
2.5 Electronic Data Interchange (EDI)
Electronic Data Interchange (EDI) adalah sebuah metode pertukaran
dokumen bisnis antar aplikasi komputer dalam perusahaan/instansi secara
elektronis dengan menggunakan format standar yang telah disepakati, dimana
antara dua pihak yang berhubungan yang memiliki sistem dan aplikasi yang
berbeda dihubungkan dengan teknologi EDI. EDI memiliki tiga komponen utama,
yaitu pesan standar, Perangkat Lunak EDI, dan komunikasi. Komponen pertama
pesan standar berisikan teks yang memuat informasi dan rule sebagai penerjemah
dari satu atau lebih dokumen bisnis. Komponen kedua Perangkat Lunak EDI
berfungsi sebagai sebagai penterjemah dari pesan standar EDI ke dalam internal
file format perusahaan penerima. Perangkat lunak EDI harus terintegrasi dengan
aplikasi bisnis yang dipakai. Komponen ketiga komunikasi di EDI dilakukan
melalui antar mesin (komputer), sehingga diperlukan infrastruktur komunikasi.
Bentuk komunikasi infrastruktur yang mula-mula berkembang adalah transaksi
berbentuk point-to-point, yakni hubungan langsung dari dua perusahaan yang
bertransaksi. Transaksi berbentuk point-to-point di suatu perusahaan memerlukan
penggunaan protokol komunikasi yang sama, mempunyai kecepatan transmisi
yang sama, menyediakan line telepon pada saat yang sama (Agung 2016).
2.6 Hypertext Mark Up Language (HTML)
Hypertext Mark Up Language (HTML) adalah bahasa markup yang
digunakan untuk membuat suatu halaman web. Halaman web menampilkan
berbagai macam informasi yang disusun berdasarkan instruksi yang ditandai
dengan kode atau lebih dikenal dengan sebutan tag.
2.7 Hypertext Preprocessor (PHP)
PHP atau Hypertext Processor merupakan salah satu bahasa pemrograman
disisi server dan digunakan untuk menampilkan data pada sisi client. Pada sisi
server data diolah sedemikian rupa, lalu ditampilkan pada sisi client yang
biasanya dilakukan bersamaan dengan bahasa pemrograman HTML maupun
Javascript. Bahasa Pemrograman PHP diciptakan oleh Rasmus Lerdorf, pada
32
tahun 1994 Lerdorf membuat sebuah alat untuk yang kemudian disebut “Personal
Home Page Tools” (http://php.net/manual/en/history.php.php).
PHP sendiri merupakan bahasa pemrograman yang bebas dipergunakan
atau open source dan sudah banyak digunakan oleh pengembang website. PHP
mampu dijalankan diberbagai sistem operasi, baik di Windows, UNIX, Linux
maupun Mac, dan juga mendukung penggunaan beberapa database salah satunya
adalah MySQL.
2.7.1 Kelebihan PHP
PHP mempunyai keunggulan jika dibandingkan dengan bahasa
pemrograman web lainnya yaitu.
1) Dapat digunakan di berbagai DBMS (Database Management System).
PHP mendukung penggunaan database sebagai pendukung aplikasi.
Berbagai DBMS yang bisa terintegrasi dengan PHP diantaranya MySQL,
PostgreSQL, mSQL, Oracle, dbm, filpro, Hyperware, Informix, Interbase
and Sybase databases dan lain-lain.
2) Dibangun dengan kepustakaan yang memadai untuk berbagai penggunaan
web. Banyaknya developer yang menggunakan PHP sebagai bahasa
pemrograman yang digunakan, maka PHP sendiri mendukung kepustakaan
yang lengkap misalnya pembuatan dokumen PDF, ekspor dan impor
dokument Excel dan lain-lain
3) PHP bersifat open source, maka dalam penggunaanya bebas memakai
maupun men-download pengembangan produk PHP berbagai versi,
misalnya di http://www.php.net.
4) Mudah dipelajari dan digunakan. Kode program dari PHP juga merupakan
atau didasarkan pada bahasa pemrograman yang lain misalnya bahasa
Pemrograman C sehingga dengan mengetahui bahasa pemrograman
tersebut secara otomatis memudahkan penggunaan bahasa Pemrograman
PHP.
5) Mudah diaplikasikan di beberapa sistem operasi. PHP merupakan bahasa
pemrograman yang dapat digunakan di berbagai sistem operasi, misalnya
33
Windows, Unix, Linux, FreeBSD. Sehingga tidak perlu merubah kode
program jika digunakan lintas sistem operasi.
6) Kebebasan pemakaian kode program. Pengembangan aplikasi dengan
menggunakan PHP bisa juga digunakan untuk hasil aplikasi yang gratis
maupun digunakan untuk hasil aplikasi yang berbayar atau diperjual
belikan.
2.8 Javascript
Javascript adalah bahasa pemrograman yang berbentuk kumpulan skrip
yang berjalan di dokumen HTML. Javascript berjalan pada sisi browser yang
sifatnya tidak terikat oleh sistem operasi, perangkat keras, atau program tertentu.
Bahasa Pemrograman Javascript dapat digunakan apabila disisipkan dalam
halaman web menggunakan tag <script>...</script>.
2.8.1 AJAX
Asynchronous JavaScript and XML (AJAX) merupakan bahasa
Pemrograman Javascript yang mendukung hubungan langsung dengan server
menggunakan objek XML HTTP request. Sebuah halaman web dapat membuat
suatu request dan menerima respond dari server web secara langsung tanpa perlu
melakukan load halaman tersebut. AJAX sangat membantu dalam proses client
side dan server side karena mempercepat proses perpindahan data antar sisi dan
menyederhanakan pemrograman web dalam hal merequest data.
2.9 Web Service
Web service adalah suatu sistem perangkat lunak yang dirancang untuk
mendukung interoperabilitas dan interaksi antar sistem pada suatu jaringan
(Barekat, Vahid 2013). Web service digunakan sebagai suatu fasilitas yang
disediakan oleh suatu website untuk menyediakan layanan dalam bentuk informasi
kepada sistem lain, sehingga sistem lain dapat berinteraksi dengan sistem tersebut
melalui layanan-layanan (service) yang disediakan oleh suatu sistem yang
menyediakan web service. Web service menyimpan data informasi dalam format
34
XML, sehingga data ini dapat diakses oleh sistem lain walaupun berbeda platform
maupun sistem operasi.
2.10 MySQL
MySQL merupakan sistem manajemen basis data yang menggunakan
bahasa Pemrograman Structure Query Language (SQL). MySQL ada yang
bersifat open source dan komersial. Sistem manajemen basis data ini sangat baik
digunakan bersamaan dengan bahasa Pemrograman PHP karena baik dari fungsi-
fungsi yang ada pada PHP sangat mendukung pengolahan data dari MySQL.
2.10.1 Elemen Dasar SQL pada Penelitian
Elemen dari SQL yang paling dasar antara lain pernyataan, nama, tipe
data, ekspresi, konstanta dan fungsi bawaan. Pernyataan Perintah dari SQL yang
digunakan untuk meminta sebuah tindakan kepada DBMS. Pernyataan dasar SQL
yang digunakan pada penelitian ini antara lain.
1) Alter adalah merubah struktur tabel.
2) Create adalah membuat tabel dan indeks.
3) Delete adalah menghapus baris pada sebuah tabel.
4) Drop adalah menghapus tabel atau database.
5) Truncate adalah menghapus dan mereset isi tabel.
6) Insert adalah menambah baris pada tabel.
7) Select adalah memilih baris dan kolom pada sebuah tabel.
8) Update adalah mengubah value pada baris sebuah tabel.
2.10.2 Tipe-tipe Data MySQL pada Penelitian
Terdapat berbagai macam tipe data di dalam MySQL. Tipe data ini
digunakan untuk mendeskripsikan data yang ditampung pada sebuah tabel. Tipe-
tipe data yang digunakan pada tabel-tabel di penelitian ini adalah sebagai berikut
(http://dev.mysql.com/doc/refman/5.7/en/data-types.html).
1) Int adalah tipe numerik yang menggunakan memori 4 bytes dengan jarak
nilai -2147483648 sampai 2147483647.
35
2) Varchar adalah tipe string yang memiliki panjang tidak tetap yaitu sesuai
dengan length.
3) Text adalah tipe string yang memiliki maksimal 65.535 karakter.
4) Datetime adalah tipe date and time yang memiliki range 1000-01-01
00:00:00 sampai 9999-12-31 23:59:59.
2.10.3 Kelompok Pernyataan SQL
Pernyataan SQL dapat dikelompokan menjadi tiga kelompok yaitu, DDL,
DML, dan DCL. Pernyataan DDL dan DML akan dijelaskan sebagai berikut.
2.10.3.1 Data Definition Language (DDL)
Data Defination Language berfungsi untuk mendefinisikan atribut basis
data, tabel, atribut (kolom), batasan-batasan terhadap suatu atribut, serta hubungan
antar tabel. Perintah yang digunakan pada penelitian ini adalah sebagai berikut.
1) Create database digunakan untuk membuat database.
CREATE DATABASE name;
Kode Program 2.4 Query Membuat Database
Kode Program 2.4 merupakan contoh penggunaan query yang digunakan
untuk membuat sebuah database.
2) Use database digunakan untuk menggunakan database yang telah dibuat
sebelumnya.
USE DATABASE name;
Kode Program 2.5 Query Menggunakan Database
Kode Program 2.5 adalah contoh penggunaan query yang berfungsi untuk
menggunakan sebuah database yang sebelumnya telah dibuat terlebih
dahulu.
3) Drop database digunakan untuk menghapus database.
DROP DATABASE name;
Kode Program 2.6 Query Menghapus Database
36
Kode Program 2.6 merupakan contoh penggunaan query yang digunakan
untuk menghapus sebuah database.
4) Create table digunakan untuk membuat tabel.
CREATE TABLE name (id int, name varchar(100), address
varchar(100));
Kode Program 2.7 Query Membuat Tabel
Kode Program 2.7 merupakan contoh penggunaan query yang digunakan
untuk membuat sebuah tabel beserta strukturnya.
5) Drop table digunakan untuk menghapus tabel.
DROP TABLE name;
Kode Program 2.8 Query Menghapus Tabel
Kode Program 2.8 adalah contoh penggunaan query yang digunakan untuk
menghapus sebuah tabel.
6) Alter table dapat digunakan untuk menghapus primary key atau
menambah field baru pada sebuah tabel. Contoh query untuk menghapus
primary key pada sebuah tabel adalah sebagai berikut.
ALTER TABLE name DROP PRIMARY KEY;
Kode Program 2.9 Query Menghapus Primary Key pada Sebuah Tabel
Kode Program 2.9 merupakan contoh penggunaan query untuk menghapus
primary key yang telah ditentukan sebelumnya. Contoh penggunaan query
untuk menambahkan sebuah field adalah sebagai berikut.
ALTER TABLE name ADD tgl_lahir DATE;
Kode Program 2.10 Query Menambahkan Kolom Baru pada Sebuah Tabel
Kode Program 2.10 adalah contoh penggunaan query untuk menambahkan
sebuah kolom baru pada sebuah tabel.
37
2.10.3.2 Data Manipulation Language (DML)
Data Manipulation Language berfungsi untuk memanipulasi data yang
ada di dalam basis data. Contohnya adalah untuk pengambilan data, penyisipan
data, pengubahan data, dan penghapusan data. Perintah tadi dijelaskan sebagai
berikut.
1) Insert Into digunakan untuk menambahkan baris data pada sebuah tabel.
INSERT INTO name (id, name, address) VALUES (1, risky, JL.
Kapten Sujana);
Kode Program 2.11 Query Menyisipkan Sebuah Baris Data Baru
Kode Program 2.11 merupakan contoh penggunaan query yang digunakan
untuk menyisipkan sebuah baris data baru ke dalam sebuah tabel.
2) Delete from digunakan untuk menghapus baris pada sebuah tabel.
DELETE FROM name WHERE id = ‘1’;
Kode Program 2.12 Query Menghapus Sebuah Baris Data pada Sebuah Tabel
Kode Program 2.12 adalah contoh penggunaan query yang digunakan
untuk menghapus sebuah baris data yang telah disisipkan sebelumnya pada
sebuah tabel.
3) Update digunakan untuk mengubah isi baris pada sebuah tabel.
UDPATE name SET id = ‘2’, name = ‘dekik’, address = ‘JL.
Jendral Sudirman’ WHERE id = ‘1’;
Kode Program 2.13 Query Mengubah Baris Data pada Sebuah Tabel
Kode Program 2.13 merupakan contoh penggunaan query yang digunakan
untuk mengubah sebuah baris data yang telah disisipkan sebelumnya pada
sebuah tabel.
4) Select digunakan untuk menampilkan isi dari suatu tabel yang bisa
dihubungkan dengan tabel yang lainnya.
SELECT * FROM name;
Kode Program 2.14 Query Melihat Isi Data pada Sebuah Tabel
38
Kode Program 2.14 adalah contoh penggunaan query yang digunakan
untuk melihat isi data pada sebuah tabel.
2.10.4 Keunggulan MySQL
MySQL memiliki keunggulan dibandingkan Database Management
System lainnya antara lain:
1) Program yang multi-threaded, sehingga dapat dipasang pada server yang
memiliki multi-CPU.
2) Didukung bahasa pemrograman umum seperti C, C++, Java, Perl, PHP,
Python, TCL, APls, dan lain-lain.
3) Bekerja pada berbagai platform.
4) Memiliki jenis kolom yang cukup banyak sehingga memudahkan
konfigurasi sistem database.
5) Memiliki sistem security yang cukup baik dengan verifikasi host.
6) Mendukung ODBC untuk OS Microsoft Windows.
7) Mendukung record yang memiliki kolom dengan panjang tetap.
8) MySQL bersifat open source.
2.11 Task Scheduler
Task Scheduler merupakan sebuah komponen dari sistem operasi
Microsoft Windows yang menyediakan kemampuan untuk melakukan tugas rutin
secara otomatis. Tugas yang ingin dijalankan harus diatur terlebih dahulu pada
waktu yang telah ditentukan atau setelah interval waktu tertentu. Task Scheduler
berperan penting dalam penelitian ini karena salah satu fitur dalam penelitian ini
memerlukan penjadwalan untuk menjalankan sebuah skrip mengirim dan
menerima data.