Rumusan Permasalahan PENDAHULUAN 1.1 Latar Belakang

2.2 Representational State Transfer REST

Menurut Higashino et al. 2009 web service yang berbasis teknologi SOAP telah menghasilkan aplikasi pada banyak bidang. SOAP didesain untuk transparansi komunikasi dan keterikatan yang rendah antar aplikasi. SOAP tidak lepas dari kelemahan karena dikritik karena kompleksitas dan spesifikasi yang harus dipenuhi terlalu banyak. Selain itu permasalahan teknis yang terlalu terikat pada satu vendor tertentu menjadikan keterikatan rendah yang tidak dapat terwujud Pautaso, Zimmermann, Leymann 2008. Representational State Transfer REST adalah suatu gaya arsitektur yang bertujuan untuk meminimalkan latensi dan komunikasi jaringan, sementara pada saat yang bersamaan berusaha untuk memaksimalkan independensi dan skalabilitas dari implementasi komponen Fielding 2000. REST berkembang bersamaan dengan berkembangnya teknologi web, sehingga sering digunakan bersamaan dengan teknologi Hypertext Transfer Protocol HTTP, oleh alasan inilah implementasi REST menggunakan teknologi HTTP disebut Restfull HTTP. Sebagai sebuah gaya arsitektur pengembangan sistem, REST memiliki aturan yang menjadi ciri dasarnya Fielding 2000: 1. Client-server Terdapat interface seragam antara client dan server. Hal ini berarti client tidak berurusan dengan hal teknis yang menjadi tanggung jawab server, misalnya database, bahasa pemrograman, dll. Hal ini bertujuan untuk portability atau kemudahan migrasi pada client. Pada sisi lain, server tidak berurusan dengan hal teknis pada client, misalnya tampilan sistem atau state dari aplikasi client sehingga pengembangan sistem pada server menjadi lebih sederhana dan lebih mudah dikembangkan scalable. Server dan client dapat diganti dan dikembangkan secara terpisah selama interface yang digunakan diantara keduanya tidak diubah. 2. Stateless Komunikasi client-server selanjutnya dibatasi dengan aturan tidak diperbolehkannya state dari suatu client disimpan pada server. Setiap request dari client harus disertai dengan seluruh informasi yang dibutuhkan oleh server untuk memproses request tersebut. Hal ini bertujuan supaya server menjadi lebih tidak tergantung pada client sehingga mudah diganti terutama saat terjadi kegagalan jaringan reliability. 3. Cacheable Respon yang diberikan kepada client dapat disimpan sementara dalam cache client. Hal ini berakibat bahwa respon yang diberikan oleh server harus menyertakan informasimetadata tentang kemampuan resource tersebut untuk disimpan sementara atau tidak. Hal ini bertujuan untuk mengurangi jumlah komunikasi yang ada sehingga meningkatkan performa server. 4. Layered System Client tidak perlu tahu apakah server yang melayani request-nya merupakan server utama ataukah bukan. Hal ini bertujuan untuk meningkatkan skalabilitas server misalnya menambahkan server untuk melakukan load balancing dan cache yang dapat diakses siapapun. 5. Code on Demand Client server dapat mengkustomisasi fungsionalitas dari client dengan mengirimkan kode yang dapat dieksekusi di client, misalkan javascript. 6. Uniform Interface Simplifikasi arsitektur sistem yang dikembangkan berdasarkan REST dilakukan salah satunya dengan menggunakan Uniform Resource Interface seperti pada Tabel 1. Interface ini terdiri atas sekumpulan operasi yang telah terdefinisi untuk mengakses dan memanipulasi resource. Interface yang sama dapat digunakan pada resource yang berbeda, dan tidak tergantung pada resource yang digunakan. Tabel 1 Uniform Resource Interface yang digunakan pada RESTful HTTP Roth 2012 Nama Pemanfaatan Sifat GET Menerima representasi retrieve Safe, idempotent DELETE Menghapus resource Idempotent PUT Memperbarui resource dengan mengganti yang lama Idempotent POST Membuat resource baru atau sub-resource baru dengan id dikelola oleh server