Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

21
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.

Transcript of Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

Page 1: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 2: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 3: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 4: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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 API Level Kode Versi

Android 5.1 22 LOLLIPOP

Android 5.0 21 LOLLIPOP_MR1

Android 4.4W 20 KITKAT_WATCH

Android 4.4 19 KITKAT

Android 4.3 18 JELLY_BEAN_MR2

Android 4.2 17 JELLY_BEAN_MR1

Android 4.1 16 JELLY_BEAN

Android 4.0.4 15 ICE_CREAM_SANDWICH_MR1

Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH

Android 3.2 13 HONEYCOMB_MR2

Android 3.1.x 12 HONEYCOMB_MR1

Android 3.0.x 11 HONEYCOMB

Android 2.3.3, 2.3.4 10 GINGERBREAD_MR1

Android 2.3, 2.3.1, 2.3.2 9 GINGERBREAD

Android 2.2.x 8 FROYO

Android 2.1.x 7 ECLAIR_MR1

Android 2.0.1 6 ECLAIR_0_1

Android 2.0 5 ECLAIR

Android 1.6 4 DONUT

Android 1.5 3 CUPCAKE

Page 5: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

Android 1.1 2 BASE_1_1

Android 1.0 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 lain-

lain. 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

Page 6: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 7: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

Daur hidup activity Android bisa dilihat pada Gambar 2.2.

Gambar 2.2 Daur Hidup Activity

Page 8: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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 Deskripsi Killable Next

onCreate() Dipanggil ketika activity pertama kali

diciptakan. Pada method ini juga

diinisialisasikan set up static seperti

view, list data, dll.

Selalu diikuti dengan onStart()

Tidak onStart()

onRestart() Dipanggil setelah activity berhenti/

onStop() dan melakukan proses start

lagi.

Selalu diikuti dengan onStart()

Tidak onStart()

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.

Tidak onResume() onStop()

onResume() Dipanggil sebelum activity akan

berinteraksi dengan user. Pada bagian

ini activity berada pada stack paling

atas.

Selalu diikuti dengan onPause()

Tidak onPause()

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

Ya onResume()

onStop()

Page 9: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

akan digunakan kembali oleh user atau

diikuti dengan onStop jika activity tidak

akan digunakan lagi oleh user.

onStop() Dipanggil ketika activity tidak

digunakan atau terlihat oleh user.

Diikuti dengan onRestart() jika activity

akan digunakan kembali oleh user atau

onDestroy() jika activity tidak lagi

dibutuhkan

Ya onRestart()

onDestroy()

onDestroy() Dipanggil ketika activity tidak lagi

dibutuhkan.

Ya -

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.

Page 10: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 11: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

Framework secara sederhana dapat diartikan sebagai kumpulan fungsi-fungsi/ prosedur-

prosedur 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.

Page 12: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 13: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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

Page 14: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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

Page 15: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 16: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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

Page 17: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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 .

Page 18: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 19: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Page 20: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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]

Page 21: Aplikasi Mobile Learning Berbasis Web Services Menggunakan ...

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.

Kode 2.1 Contoh 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"

}

}