Ruang Lingkup Penelitian PENDAHULUAN 1.1 Latar Belakang

Fielding 2000 membagi sifat operasi tersebut menjadi safe dan idempotent. Operasi bersifat safe berarti saat suatu request dilakukan terhadap server, maka state dari resource yang diminta tidak berubah. Operasi GET termasuk safe karena saat suatu request dilakukan terhadap suatu resource, resource tersebut akan tetap sama. Di sisi lain operasi PUT termasuk tidak safe karena saat request dilakukan menggunakan operasi tersebut maka resource tersebut menjadi berubah. Operasi bersifat idempotent berarti hasil dari operasi yang sukses tidak tergantung dari jumlah operasi tersebut dieksekusi, misalkan operasi PUT untuk memperbarui suatu resource dapat dilakukan berulang kali dengan hasil akhir yang sama. Berbeda dengan PUT, operasi POST tidak bersifat idempotent yang berarti jika suatu operasi POST dikirimkan lebih dari sekali, hasil akhirnya bisa saja terdapat duplikasi resource pada server. Hal tersebut disebabkan karena operasi POST digunakan untuk menciptakan resource baru tanpa melihat id spesifik pada client. Fielding 2000 menjelaskan beberapa batasan yang menjadi ciri khas dari arsitektur REST: 1. Identifikasi dari resource, yang berarti setiap resource yang ada harus memiliki identitas yang standar, misalnya menggunakan URI. 2. Manipulasi resource dilakukan melalui representasi. Resource asli tidak diberikan kepada client melainkan representasinya dalam bentuk XML, JSON, ataupun HTML. Representasi tersebut terdiri atas data dan metadata yang menjelaskan data, misalnya sebuah instansi content-type pada header HTTP merupakan atribut dari metadata. 3. Pesan yang mendefinisikan dirinya sendiri, server akan mengolah request yang dikirim kepadanya melalui metadata yang ada pada request tersebut, misalnya melalui header dari request tersebut. 4. Hypermedia sebagai pengatur transisi dari state. Transisi dari suatu state dilakukan menggunakan hypermedia. Implementasi REST RESTful menjadikan beberapa aplikasi dapat berkomunikasi dan bekerja sama. Melalui web service tersebut, setiap aplikasi pada web memiliki potensi untuk mencapai aplikasi lainnya. Saat aplikasi bertukar informasi melalui standard web service, mereka dapat berkomunikasi secara terpisah dan lepas dari sistem informasi, pemograman, processor, dan protokol internal Breitman et al. 2007. Menurut Filho Ferreira 2009, pendekatan REST pada dasarnya terdiri dari lima konsep resource, representasi, uniform identifier, unified interface, dan lingkup eksekusi, dan tiga prinsip adressability, statelessness, dan keterhubungan. Hal yang membedakan RESTful dengan web service lainnya adalah linkup dari request dan response harus didefinisikan saat operasi berlangsung.

2.3 Application state dan Resource State

Richardson Ruby 2007 menjelaskan state berarti suatu keadaan dari suatu informasi yang tersimpan pada suatu sistem di waktu tertentu. Sebagai contoh, jika terdapat suatu resource bernama order, akan terdapat dua keadaanstate dari resource tersebut: order telah terkirim atau order belum terkirim. Suatu resource jarang sekali hanya memiliki satu state dari waktu ke waktu. Perubahan suatu state tersebut disebut state transition dan bagian dari sistem yang mengatur transisi state tersebut disebut sebagai state engine. State pada REST terdiri atas dua tipe: application state dan resource state. Application state berada pada mesin client, sedangkan resource state berada pada mesin server. Application state dapat digambarkan sebagai suatu kondisi dari aplikasi yang dijalankan di client, pada kasus pencarian menggunakan mesin pencari search engine, halaman hasil pencarian yang sedang dibuka oleh client dapat dikatakan sebagai application state. Resource state dapat dikatakan sebagai persistence dari resource yang ada dan terletak di server. Application state dari client yang satu dengan yang lain bisa berbeda, sebaliknya resource state dari seluruh client adalah sama.

2.4 Hypermedia As The Engine Of Application State HATEOAS

W3C Glosary Dictionary 2003 mendefinisikan hypertext sebagai teks yang mengandung tautan ke teks lainnya. Hypermedia adalah istilah yang digunakan untuk hypertext yang mengacu tidak hanya kepada teks, tapi suara, video, grafik, dan lain-lain. HATEOAS Hypermedia As The Engine Of Application State adalah aturan yang membedakan arsitektur aplikasi berbasis REST dengan aplikasi lain yang