Aplikasi Mobile Learning Berbasis Web Services Menggunakan

advertisement
BAB II
DASAR TEORI
Bab ini berisi dasar teori yang berhubungan dengan perancangan aplikasi antara lain
mengenai android, PHP, database, dan web services.
2.1. Android
Android adalah sekelompok perangkat lunak yang terdiri tidak hanya sistem operasi
saja tetapi juga middleware dan aplikasi kunci [5]. Android pada awalnya dikembangkan
oleh Android, Inc dan kemudian dibeli oleh Google, Inc pada tahun 2005. Sistem operasi
ini dirilis secara resmi pada tahun 2007, bersamaan dengan didirikannya Open Handset
Alliance, konsorsium dari berbagai perusahaan perangkat keras, perangkat lunak, dan
telekomunikasi yang bertujuan untuk memajukan standar terbuka perangkat seluler.
Platform Android disediakan melalui lisensi open source di bawah GNU, General Public
License Versi 2 (GPLv2).
2.1.1. Arsitektur Android
Secara garis besar arsitektur android dapat dijelaskan sebagai berikut:

Layer Applications dan Widgets
Layer ini berhubungan dengan aplikasi-aplikasi inti yang berjalan pada sistem
operasi Android. Aplikasi – aplikasi inti ini seperti email, program SMS, kontak,
kalender, browser, dan lain-lain. Semua aplikasi tersebut dibuat dengan
menggunakan bahasa Java.

Layer Applications Frameworks
Applications Framework merupakan layer dimana para pembuat aplikasi
menggunakan komponen-komponen yang ada di sini untuk membuat aplikasi
mereka. Beberapa contoh komponen yang termasuk di dalam Applications
Framework adalah Views, Content Provider, Resource Manager, Notification
Manager, Activity Manager.

Layer Libraries
Android dilengkapi dengan beberapa paket pustaka yang terdapat pada C/C++
dengan standar Barkeley Software Distribution hanya setengah dari aslinya untuk
tertanam pada Linux Kernel. Beberapa pustaka inti tersebut adalah sebagai berikut:
-
Media Libraries: Pustaka yang mendukung pemutaran dan perekaman berbagai
macam format audio dan video.
-
Surfaces Manager: Mengelola akses ke subsistem layar dan menggabungkan
secara halus lapisan grafis 2 dimensi dan 3 dimensi dari berbagai aplikasi.
-
Graphic Libraries: Pustaka untuk menjalankan tampilan. Di dalamnya terdapat
SGL dan OPENGL untuk tampilan 2D dan 3D.
-
System C library: Pustaka sistem library C (libc) yang disesuaikan untuk
perangkat embedded berbasis Linux.
-
SQLite: Mesin relational database yang ringan yang dapat digunakan oleh
berbagai aplikasi.

SSL dan Webkit: Pustaka untuk browser dan keamanan internet.
Android Run Time
Android Run Time merupakan layer yang membuat aplikasi android bisa
dijalankan. Pada layer ini dibagi menjadi dua bagian yaitu:
-
Dalvik Virtual Machine : Sebuah mesin virtual berbasis register yang
dioptimalkan untuk menjalankan fungsi-fungsi pada Android secara efisien.
Dalvik VM menjalankan file Dalvik dalam format (.dex) dimana dioptimasi
untuk penggunaan memori dengan minimal. Dalvik VM menjalankan class yang
telah dikompilasi oleh kompiler Java dimana telah ditransformasi menjadi
format (.dex). Dalvik VM ini bergantung pada kernel Linux untuk fungsi dasar
seperti threading dan manajemen memori tingkat rendah.
-
Core Libraries : Aplikasi Android dibangun dalam bahasa Java, sementara
Dalvik sebagai virtual mesinnya bukan Virtual Machine Java, sehingga
diperlukan sebuah libraries yang berfungsi untuk menerjemahkan bahasa java/c
dimana ditangani oleh Core Libraries.

Linux Kernel
Linux Kernel merupakan layer tempat keberadaan inti dari sistem operasi
android. Layer ini berisi file-file sistem yang mengatur system processing, memory,
resource, drivers, dan sistem android lainnya. Hal inilah yang membuat file sistem
pada Android mirip dengan file sistem pada sistem operasi berbasis Linux. Kernel
yang digunakan adalah kernel Linux versi 2.6, dan versi 3.x pada Android versi 4.0
ke atas.
Arsitektur Android dapat dilihat pada Gambar 2.1.
Gambar 2.1 Arsitektur Android [5]
2.1.2. Android SDK
Android Software Development Kit (SDK) adalah sepaket alat pengembang yang
digunakan untuk mengembangkan aplikasi pada platform Android dan menggunakan
bahasa pemrograman Java. Android SDK dapat diunduh secara gratis dari situs resmi di
http://www.developer.Android.com.
Untuk menggunakan Android SDK dibutuhkan sebuah Integrated Development
Environment (IDE) yaitu sebuah software pengembangan aplikasi dimana harus dilengkapi
dengan Java Development Kit (JDK5 atau JDK6). IDE yang populer digunakan untuk
mengembangkan aplikasi Android adalah Eclipse dan sudah mendapat dukungan langsung
dari Google. Khusus pada Eclipse disediakan plugin khusus yaitu Android Development
Tools (ADT) yang dirancang khusus untuk Eclipse. ADT mempermudah pengembang
dalam membuat project aplikasi Android, membuat user interface aplikasi, dan melakukan
debugging aplikasi. SDK Android dilengkapi juga dengan Android Virtual Device (AVD)
yaitu emulator untuk menjalankan aplikasi yang dikembangkan.
Android SDK juga mempunyai API level yang dapat dipilih sesuai dengan
kebutuhan pengembang. API level akan mempengaruhi fasilitas yang bisa digunakan oleh
android. Adapun versi-versi API level platform yang telah dirilis dapat dilihat pada tabel
2.1 [6].
Tabel 2.1. Versi Platform Android
Versi Platform
Android 5.1
Android 5.0
Android 4.4W
Android 4.4
Android 4.3
Android 4.2
Android 4.1
Android 4.0.4
Android 4.0, 4.0.1, 4.0.2
Android 3.2
Android 3.1.x
Android 3.0.x
Android 2.3.3, 2.3.4
Android 2.3, 2.3.1, 2.3.2
Android 2.2.x
Android 2.1.x
Android 2.0.1
Android 2.0
Android 1.6
Android 1.5
API Level
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
Kode Versi
LOLLIPOP
LOLLIPOP_MR1
KITKAT_WATCH
KITKAT
JELLY_BEAN_MR2
JELLY_BEAN_MR1
JELLY_BEAN
ICE_CREAM_SANDWICH_MR1
ICE_CREAM_SANDWICH
HONEYCOMB_MR2
HONEYCOMB_MR1
HONEYCOMB
GINGERBREAD_MR1
GINGERBREAD
FROYO
ECLAIR_MR1
ECLAIR_0_1
ECLAIR
DONUT
CUPCAKE
Android 1.1
Android 1.0
2
1
BASE_1_1
BASE
2.1.3. Komponen Dasar Android
Komponen aplikasi pada Android terdiri dari empat jenis komponen utama, yaitu :
 Activities
Activities merupakan potongan kode executable yang menyajikan User Interface
(UI) dimulai oleh pengguna maupun sistem operasi dan berjalan selama diperlukan.
Activity
biasanya
sesuai
dengan
tampilan layar,
masing-masing
activity
menunjukkan satu layar untuk pengguna. Activity yang tidak aktif dijalankan dapat
dimatikan oleh sistem operasi untuk menghemat memori.
 Services
Service tidak mempunyai GUI, melainkan dirancang untuk terus berjalan, jika
diperlukan, independen dari aktivitas apapun. Contoh dari service adalah MP3
player yang akan terus memainkan file MP3 sesuai urutan file, walaupun pengguna
menggunakan aplikasi lain.
 Content Providers
Content Provider diciptakan untuk berbagi data dengan activity lain atau service .
Sebuah Content Provider menggunakan antarmuka standar dalam bentuk URI untuk
memenuhi permintaan data dari aplikasi lain
 Broadcast Receivers
Broadcast Receiver merupakan komponen yang menerima dan bereaksi untuk
menyiarkan pengumuman. Banyak siaran berasal dalam kode sistem, misalnya kartu
SD sudah terpasang, sebuah pesan SMS datang, peringatan baterai lemah, dan lainlain. Aplikasi juga dapat melakukan siaran misalnya untuk membiarkan aplikasi lain
tahu bahwa beberapa data telah diunduh ke perangkat dan tersedia sehingga dapat
digunakan.
2.1.4. Daur Hidup Activity
Activity dalam sistem dikelola sebagai activity stack. Ketika suatu activity
dijalankan, activity tersebut diletakkan di stack paling atas dan menjadi activity yang
berjalan. Activity sebelumnya akan berada dibawahnya di stack tersebut, dan tidak akan
berpindah ke atas sampai keluar activity yang baru.
Activity mempunyai empat keadaan [7]:
 Active/running, jika activity berada pada posisi atas stack.
 Pause, jika sebuah activity tidak dipakai pada suatu saat tertentu, namun masih
terlihat. Ketika activity baru yang ditangani oleh sistem activity yang lama disebut
pause dan masih berada di memori, bisa jadi suatu activity yang sudah keadaan
pause tidak ada di memori karena keterbatasan memori
 Stopped, jika sebuah activity digantikan sepenuhnya oleh activity yang lain. Activity
yang mengalami keadaan ini masih mempertahankan semua informasinya akan
tetapi sudah tidak lagi dilihat oleh user maka jendela tersebut disembunyikan dan
dapat dihilangkan oleh sistem ketika memori diperlukan untuk activity lain.
 Restart, jika activity pause atau stopped, sistem dapat men-drop activity ini dari
sistem memori. Ketika user membutuhkan activity tersebut, activity akan kembali
pada keadaan awal, artinya activity tersebut mengalami proses restart.
Daur hidup activity Android bisa dilihat pada Gambar 2.2.
Gambar 2.2 Daur Hidup Activity
Secara umum dapat dijelaskan bahwa perulangan yang mungkin dialami oleh
activity ada tiga, yaitu:

entire lifetime yaitu activity yang terjadi mulai dari onCreate() sampai dengan
onDestroy().
Biasanya
activity
ini
akan
dibuat
setup
global
ketika
mendefinisikannya.

visible lifetime yaitu activity yang terjadi mulai dari onCreate() sampai dengan
onStop().

foreground lifetime yaitu activity yang terjadi di antara onResume() dan onPause().
Untuk penjelasan fungsi callback pada daur hidup activity dapat dilihat pada tabel
2.2.
Tabel 2.2. Method Callback Daur Hidup Activity[9]
Method
onCreate()
onRestart()
onStart()
onResume()
onPause()
Deskripsi
Dipanggil ketika activity pertama kali
diciptakan. Pada method ini juga
diinisialisasikan set up static seperti
view, list data, dll.
Selalu diikuti dengan onStart()
Dipanggil setelah activity berhenti/
onStop() dan melakukan proses start
lagi.
Selalu diikuti dengan onStart()
Dipanggil sebelum activity dapat dilihat
oleh
user.
Diikuti dengan onResume() jika activity
berjalan pada bagian depan (foreground)
atau diikuti dengan onStop jika activity
akan dihentikan.
Dipanggil sebelum activity akan
berinteraksi dengan user. Pada bagian
ini activity berada pada stack paling
atas.
Selalu diikuti dengan onPause()
Dipanggil
ketika
activity
akan
melanjutkan activity lain. Method ini
tidak akan menyimpan data pada sistem,
menghentikan
proses
yang
menggunakan CPU.
Diikuti dengan onResume() jika activity
Killable
Next
Tidak
onStart()
Tidak
onStart()
Tidak
onResume()
onStop()
Tidak
onPause()
Ya
onResume()
onStop()
onStop()
onDestroy()
akan digunakan kembali oleh user atau
diikuti dengan onStop jika activity tidak
akan digunakan lagi oleh user.
Dipanggil
ketika
activity
tidak Ya
digunakan atau terlihat oleh user.
Diikuti dengan onRestart() jika activity
akan digunakan kembali oleh user atau
onDestroy() jika activity tidak lagi
dibutuhkan
Dipanggil ketika activity tidak lagi Ya
dibutuhkan.
onRestart()
onDestroy()
-
2.2. PHP: Hypertext Preprocessor
PHP atau Hypertext Preprocessor adalah bahasa pemrograman sisi server yang
didesain untuk pengembangan web dan juga digunakan sebagai bahasa pemrograman untuk
tujuan umum. PHP dapat disisipkan ke dalam HTML. Sintaks PHP dikembangkan dengan
mengacu pada bahasa C, Java, dan Perl. PHP digunakan untuk membangun sebuah situs
web yang dinamis. PHP bersifat open source dan didistribusikan di bawah PHP License.
PHP dapat dijalankan di berbagai sistem operasi seperti Linux, varian dari Unix,
Windows, dan juga Mac OS. PHP juga dapat dijalankan pada berbagai web server seperti
Apache atau IIS. PHP mendukung penggunaan database baik itu dari ekstensi yang
disediakan oleh vendor database seperti MySQL, Microsoft SQL Server, PostgreSQL dan
SQLite, atau dapat juga menggunakan abstraction layer seperti PDO, ODBC, DBA dan
dbx.
PHP bersifat server-side scripting, maka PHP harus dijalankan pada sebuah web
server. Apache HTTP Server merupakan salah satu web server yang paling banyak
digunakan karena memiliki fitur-fitur yang canggih seperti pesan kesalahan yang dapat
dimodifikasi sendiri, autentikasi berbasis database, dan penggunaan GUI untuk
mempermudah penanganan server.
PHP dikembangkan menjadi lebih mudah digunakan dengan adanya framework.
Salah satu framework yang terkenal adalah framework Codeigniter. Codeigniter
menggunakan arsitektur Model-View-Controller.
2.2.1. Model-View-Controller (MVC)
MVC adalah sebuah arsitektur perangkat lunak yang terbagi menjadi tiga bagian
yang saling berhubungan yaitu manipulasi data (model), antarmuka pengguna (view), dan
bagian yang menjadi kontrol (controller) dalam aplikasi [9]. Struktur dari MVC dapat
dilihat pada Gambar 2.3.
Gambar 2.3 Struktur MVC
Penjelasan dari struktur MVC adalah sebagai berikut [10]

Model
Model adalah komponen pada MVC yang menampung data berdasarkan perintah dari
controller dan ditampilkan di view.

View
View adalah komponen pada MVC yang menghasilkan presentasi ke pengguna
berdasarkan perubahan dalam model.

Controller
Controller adalah komponen pada MVC yang dapat memberi perintah ke model
maupun view. Controller menerima permintaan dari user untuk menampilkan
halaman web tertentu melalui View, dan memproses inputan dari user dan
menyimpannya pada database melalui Model.
2.2.2. Codeigniter
Codeigniter adalah sebuah framework
yang dikembangkan oleh EllisLab, Inc.
dimana menyediakan toolkit untuk membangun website dengan menggunakan PHP.
Framework secara sederhana dapat diartikan sebagai kumpulan fungsi-fungsi/ prosedurprosedur dan class-class yang sudah siap digunakan sehingga lebih mempermudah dan
mempercepat dalam proses mengembangkan aplikasi. Codeigniter didistribusikan dengan
bebas dibawah lisensi open source dari Apache/BSD. Codeigniter menggunakan
pendekatan arsitektur Model-View-Controller.
Proses aliran kerja pada codeigniter dapat dilihat pada Gambar 2.4.
Gambar 2.4 Proses Kerja Codeigniter [11]
Penjelasan proses kerja Codeigniter sebagai berikut [11]:

Index.php berfungsi sebagai file pertama yang akan dibaca oleh program.

Router akan memeriksa HTTP request untuk menentukan hal apa yang harus
dilakukan oleh program.

Cache file akan membuat sebuah website dapat dibuka dengan lebih cepat. Apabila
dalam program sudah terdapat cache file maka file tersebut akan langsung dikirim
ke browser. Cache file dapat melewati proses yang sebenarnya harus dilakukan oleh
program Codeigniter.

Security akan menyaring HTTP request dan data yang di submit oleh user sebelum
file controller di load keseluruhan.

Controller akan membuka file model, core libraries, helper, dan semua resources
yang dibutuhkan dalam program tersebut.

Proses terakhir, membaca semua program yang ada di dalam view file dan
mengirimkannya ke browser supaya dapat dilihat oleh user. Apabila file view sudah
ada yang di-cache maka file view baru yang belum ter-cache akan mengupdate file
view yang sudah ada.
2.3. Database
Database atau basis data adalah kumpulan potongan informasi yang terorganisir dan
digunakan pada komputer [12]. Sebuah database memerlukan sistem untuk memasukkan,
mengubah, menghapus dan memperoleh data yang disebut dengan Database Management
System (DBMS). DBMS akan menentukan bagaimana data diatur, disimpan, diubah, dan
diambil kembali. DBMS juga menerapkan mekanisme pengamanan data, pemakaian data
secara bersama-sama oleh beberapa aplikasi, dan menjaga kehandalan data.
Saat ini database juga sudah menerapkan model relasional dimana menyajikan data
pada pengguna dalam bentuk relasional (ditampilkan dalam bentuk tabular, sebagai koleksi
dari tabel dimana setiap tabel berisi sekumpulan baris dan kolom), dan menyediakan
operator relasional untuk memanipulasi data dalam bentuk tabular. Sistem yang mengatur
database relasional disebut dengan Relational Database Management System (RDBMS).
RDBMS menggunakan bahasa khusus untuk mengakses atau melakukan manipulasi data
yang dikenal dengan nama Structured Query Language (SQL). Contoh RDBMS yang
digunakan pada skripsi ini adalah MySQL.
2.3.1. MySQL
MySQL adalah sebuah sistem manajemen database relasional yang dikembangkan,
didistribusikan, dan didukung oleh Oracle Corporation [13]. MySQL banyak digunakan
sebagai database untuk aplikasi web dan sudah menjadi satu pada saat menginstall AMP
paket. MySQL diciptakan dengan menggunakan bahasa C dan C++ dan mampu bekerja
pada berbagai macam sistem operasi baik itu Windows, Linux, maupun MacOS. Banyak
juga bahasa pemograman seperti Java, Perl, PHP, Python, ASP dan lain sebagainya yang
telah menyediakan API dan library untuk dapat mengakses MySQL.
Untuk melakukan administrasi data pada MySQL, dapat menggunakan modul dalam
bentuk console dengan menggunakan perintah mysql atau mysqladmin. Terdapat juga
terdapat perangkat lunak GUI seperti MySQL Workbench yang disediakan secara resmi
oleh MySQL, dan juga perangkat lunak GUI lain yang disediakan oleh pihak ketiga. Selain
itu juga terdapat perangkat lunak gratis berbasis web yang populer yaitu phpMyAdmin.
2.4. Web Service
Web service adalah sistem perangkat lunak yang dirancang untuk mendukung
interoperable interaksi mesin-ke-mesin melalui jaringan [14]. Web service menyediakan
fungsi pada alamat jaringan melalui web yang selalu ada seperti pada konsep dari utility
computing. Menurut W3C, web service didefinisikan sebagai suatu sistem perangkat lunak
yang bertujuan untuk mendukung interaksi dan interoperabilitas antar mesin dalam sebuah
jaringan.
Web service mempunyai sebuah interface yang didefinisikan dalam suatu format
machine-processible seperti schema ataupun Web service Description Language (WSDL).
Sistem lain berinteraksi dengan web service melalui sebuah interface menggunakan pesan
melalui HTTP dan format pertukaran data baik itu XML maupun JSON. Web service tidak
mengembalikan interface yang dapat langsung dikonsumsi oleh user atau dalam kata lain
tidak mengembalikan layanan dalam bentuk kode-kode HTML, tetapi web service
mengembalikan layanan berupa format XML ataupun JSON yang berorientasi pada data
dan tidak dapat dikonsumsi secara langsung oleh user.
Web service juga bertujuan untuk meningkatkan kolaborasi antara perusahaan dan
pemrogram yang memungkinkan sebuah fungsi dalam web service dapat digunakan di
aplikasi lain tanpa perlu mengetahui isi program di dalamnya. Web service berjalan di port
80 yang merupakan protokol HTTP sehingga web service tidak memerlukan konfigurasi
khusus pada sisi firewall. Arsitektur dari web service secara sederhana dapat dilihat pada
gambar 2.5.
Gambar 2.5 Web service Arsitektur
Web service mempunyai tiga komponen penting dalam arsitekturnya yaitu:

Service Requester
Service Requester atau peminta layanan adalah pihak yang mencari dan menemukan
layanan yang dibutuhkan serta menggunakan layanan tersebut. Dalam hal ini
peminta layanan disebut client.

Service Provider
Service provider atau penyedia layanan adalah pihak yang menyediakan layanan dan
mengolah sebuah registry agar layanan-layanan tersebut dapat tersedia. Dalam ini
penyedia layanan ada web service server.

Service Registry
Service Registry atau daftar layanan adalah lokasi pusat yang mendeskripsikan
semua layanan yang telah didaftarkan. Contoh service registry adalah Universal
Description, Discovery, and Integration (UDDI) yang merupakan penyedia daftar
layanan web service berbasis XML.
Operasi umum yang terdapat pada web service antara lain:

Publish/Unpublish
Menerbitkan atau menghapus layanan pada service registry.

Find
Service requester mencari layanan pada service registry.

Bind
Service requester menemukan layanan yang dicari kemudian melakukan binding ke
service provider untuk melakukan interaksi dan mengakses layanan/ service yang
disediakan oleh service provider.
Terdapat dua jenis protokol web service yang umumnya banyak digunakan yaitu:

Simple Object Access Protocol (SOAP)
SOAP adalah sebuah bahasa penanda berbasis XML untuk pertukaran pesan diantara
aplikasi-aplikasi. SOAP berguna seperti sebuah amplop yang digunakan untuk
pertukaran data objek di dalam jaringan. SOAP berisi element header yang
menampung informasi dari service, element body yang berisi informasi pemanggilan
service dan hasilnya, dan element fault yang berisi status kesalahan. SOAP hanya
akan menyediakan satu jalur untuk penggunaan semua layanan pada penyedia web
service . Contoh mekanisme web service dengan menggunakan SOAP dapat dilihat
pada Gambar 2.6.
Gambar 2.6 Mekanisme Web service dengan SOAP [15]

Representational State Transfer (REST)
REST adalah suatu gaya arsitektur perangkat lunak untuk pendistribusian sistem
hipermedia seperti World Wide Web (WWW). Istilah ini dikenalkan pertama kali oleh
Roy Fielding pada tahun 2000. REST merujuk pada pengalamatan sumber daya untuk
mendeskripsikan semua antarmuka yang menyampaikan data melalui HTTP tanpa
tambahan lapisan pesan seperti SOAP. REST menspesifikasikan masing-masing
layanan berdasarkan URI-nya. Contoh mekanisme web service dengan menggunakan
REST dapat dilihat pada Gambar 2.7.
Gambar 2.7 Mekanisme Web service dengan REST [15]
Pada skripsi ini menggunakan RESTful Web service sebagai protokol web service
dan JSON sebagai format pembawa pesan web service .
2.1.1. RESTful Web service
RESTful Web service adalah web service dengan menggunakan prinsip arsitektur
REST. Karakteristiknya adalah sebagai berikut:

Menggunakan HTTP method
HTTP method adalah metode yang digunakan untuk mendapatkan resources melalui
protokol HTTP. Beberapa contoh HTTP method antara lain:

-
GET, melakukan permintaan resource dimana hanya akan mengambil data.
-
POST, membuat dan mengirimkan sebuah resources.
-
PUT, melakukan perubahan state pada resources.
-
DELETE, melakukan penghapusan resources.
Stateless
Stateless web service membuat respon yang terhubung dengan halaman resource.
Hal ini berbeda dengan stateful web service yang mempunyai variabel dari request
sebelumnya dan menggunakannya kembali dengan tambahan variabel baru untuk
mengakses resource yang diminta oleh sebuah request baru. Ketika client membuat
sebuah HTTP request, semua informasi yang dibutuhkan server untuk memenuhi
request harus dikirim. Server tidak bergantung pada informasi yang dikirim dari
request sebelumnya.

Memiliki struktur direktori URI
Untuk mengakses RESTful Web service
digunakan sebuah Uniform Resources
Identifier (URI). URI adalah nama dan alamat dari sebuah resource.

Mempunyai pesan yang ditransfer melalui media pertukaran data
RESTful web service tidak menggunakan WSDL, pesan yang dikirim dikemas dalam
format XML atau JSON. Hal ini berbeda dengan SOAP yang menggunakan protokol
khusus untuk pengiriman pesan.
Arsitektur ini terdiri dari sebuah server dan client. Client mengirimkan permintaan ke
server, dan server akan mengolah permintaan dan mengirimkan hasilnya kembali ke client.
Pada REST terdapat empat hal penting antara lain:
-
Resources : data yang diinginkan client.
-
Representation : representasi atau wujud dari resource.
-
State : Posisi client pada representasi tertentu.
-
Transfer : Suatu kondisi dari satu state ke state yang lain.
Semisal client mengakses web online shoping dan ingin mendapatkan data (resource)
customer dengan nomor 5873 maka client harus mengakses dengan metode HTTP GET ke
URL /customer/5873. Server akan memberikan representation dari resource ke browser
client. Representasi tersebut menempatkan client dalam sebuah state yaitu berada pada
customer dengan nomor 5873. Kemudian client menemukan link /contract/v-2003 dan
menjelajahinya, maka server kembali mengirimkan representasi dari resource ke browser
client. Representasi tersebut menempatkan posisi state client ke state yang baru pada
contract dengan nomor v-2003. Proses perpindahan dari state yang satu ke state yang lain
disebut sebagai proses transfer. Gambar 2.8 menunjukkan proses transfer dari state satu ke
state yang lain pada mekanisme RESTful web service .
Gambar 2.8 REST State Transfer [15]
2.1.2. JSON
Java Script Object Notation (JSON) adalah suatu format ringkas pertukaran data
komputer. JSON mempunyai format berbasis teks dengan berdasarkan pada subset bahasa
pemograman Java Script. Walaupun begitu JSON bukan sebuah format data yang
tergantung pada bahasa pemograman tertentu. Penggunaan JSON sudah didukung oleh
banyak bahasa pemograman seperti C, C++, C#, Java , Java Script, PHP, dan Perl.
JSON diciptakan dan dipopulerkan oleh Douglas Crockford pada tahun 2001 dan
mulai digunakan untuk Web service oleh Yahoo pada Desember 2005 dan Google pada
Desember 2006. JSON merupakan alternatif pengganti XML sebagai format pertukaran
data komputer karena strukturnya yang lebih ringkas dan sederhana.
Tipe media internet resmi untuk JSON adalah application/json dan ekstensi
berkasnya adalah .json. Bentuk dan sintaks dari JSON adalah sebagai berikut:

Object
Sebuah object dimulai dengan kurung kurawal buka “{” dan diakhiri dengan kurung
kurawal tutup “}”. Setiap nama object diikuti dengan titik dua “:” dan nilainya
dipisahkan dengan tanda koma “,”. Strukturnya dapat dilihat pada Gambar 2.9.
Gambar 2.9 Struktur Penggunaan Object pada JSON[16]

Array
Sebuah array dimulai dengan kurung siku buka “[” dan diakhiri dengan kurung siku
tutup “]” dan nilainya dipisahkan dengan tandan koma “,”. Strukturnya dapat dilihat
pada Gambar 2.10.
Gambar 2.10 Struktur Penggunaan Array pada JSON[16]

Nilai
Nilai dapat berupa string dalam tanda petik dua, bilangan, nilai boolean, object, atau
array. Strukturnya dapat dilihat pada Gambar 2.11.
Gambar 2.11 Struktur Penggunaan Nilai pada JSON[16]

String
String terdiri atas urutan karakter unicode dimana dibungkus dengan tanda petik dua.
Penggunaan string pada JSON mirip dengan penggunaan string pada bahasa C atau
Java. Strukturnya dapat dilihat pada Gambar 2.12.
Gambar 2.12 Struktur Penggunaan String pada JSON[16]

Bilangan
Bilangan pada JSON mirip dengan bilangan pada bahasa C atau Java, hanya saja
JSON tidak mendukung penggunaan bilangan heksadesimal maupun octaldesimal.
Strukturnya dapat dilihat pada Gambar 2.13.
Gambar 2.13 Struktur Penggunaan Bilangan pada JSON[16]
Kode 2.1 menunjukkan contoh penggunaan JSON.
{
"identitas": {
"nama_depan": "Acip",
"nama_belakang": "Susman Alyahi",
"jenis_kelamin": "Laki-Laki",
"kelahiran": {
"tempat": "Tegal",
"tanggal_lahir": "21-Mei -1990"
}
},
"alamat": {
"nama_jalan": "Purbaya V/4",
"kota": "Salatiga",
"provinsi": "Jawa Tengah",
"kode_pos": "50722"
}
}
Kode 2.1 Contoh JSON
Download