BAB II TINJAUAN PUSTAKA Bab ini membahas teori-teori yang dijadikan acuan tugas akhir ini. 2.1 Web Service Web Service adalah sekumpulan application logic beserta objek-objek dan method-method yang dimilikinya yang terletak di suatu server yang terhubung ke internet sehingga dapat diakses menggunakan protokol HTTP [1]. Web Service merupakan suatu komponen software yang merupakan self-containing, aplikasi modular self-describing yang dapat dipublikasikan, dialokasikan dan dilaksanakan pada web [2]. Gambar 1 merupakan blok bangunan web service yang mana menyediakan komunikasi jarak jauh antara dua aplikasi yang merupakan layer arsitektur web service [3]. Layer 1: protokol internet standar digunakan sebagai sarana transportasi adalah HTTP dan TCP/IP Layer 2: Simple Object Acces Protocol (SOAP ) berbasiskan XML dan digunakan untuk pertukaran informasi antar sekelompok layanan. Layer 3: Web Service Definition Language (WSDL) digunakan untuk mendeskripsikan attribute layanan. Layer 4: Universal Description, Dicovery and Integration, yang mana merupakan direktori pusat untuk deskripsi layanan. Gambar 2.1 Blok Bangunan Web Service 5 6 Sarana komunikasi web service yang menggunakan protokol TCP/IP dan HTTP menjadikan kelebihan tersendiri yaitu kemudahan dalam pengiriman data, karena protokol HTTP merupakan protokol yang umum digunakan di internet. Berikut ini adalah gambaran konsep web service yang bisa diterapkan untuk pengintegrasian berbagai sistem dengan perbedaan hardware ataupun platform : Gambar 2.2 XML Web Service [15] 2.1.1 Rest Web Service Istilah REST (Representational State Transfer) pertama kali digunakan oleh Roy Thomas Fielding, seorang pelopor proyek web server Apache, pada disertasi doktornya yang berjudul Architectural Styles and the Design of Networkbased Software Architectures di University of California pada tahun 2000. Dalam disertasinya, Fielding mengidentifikasi empat prinsip (constraints) dalam REST, yaitu [4]: 1.Resource Identification Semua resource (serta statenya) yang berhubungan dengan aplikasi diberikan identifier yang unik dan identifier tersebut harus bersifat global. Konsep resource disini bukan hanya hal statis yang langsung berhubungan dengan aplikasi namun juga termasuk informasi yang dibutuhkan seperti dokumen 7 transaksi. REST resource adalah semua hal yang bisa diakses dan ditransfer melalui web antara client dan server. Dan karena protokol yang digunakan untuk berkomunikasi adalah HTTP, berbagai macam tipe file bisa ditransfer, teks file, flash movie ataupun gambar. Sehingga dalam REST sistem representasi dari resource tergantung dari tipe yang diminta client (MIME type) yang didefinisikan didalam protokol request. 2.Uniform Interface Semua interaksi dibangun dengan antarmuka yang seragam. REST web service menampilkan semua resource dan interaksinya dengan interface yang seragam, tidak seperti RPC yang menampilkan fungsi yang ada melalui method yang bisa dipanggil secara remote. Dalam REST web service untuk uniform interface ini menggunakan Uniform Resource Identifier (URI). URI pada REST web service berupa hyperlink terhadap resource meskipun REST constraint tidak menyatakan URI harus berupa hyperlink, namun karena teknologi yang digunakan pada web service adalah web sehingga URI berupa hyperlink. Jika menggunakan teknologi lain, REST URI tentu akan berupa hal yang berbeda, namun tetap berupa address terhadap sebuah resource. 3. Self-Describing Message Untuk setiap interaksi dengan resource melalui antarmuka yang seragam, REST membutuhkan representasi dari resource yang menggambarkan semua aspek penting yang dimiliki oleh resource tersebut. Representasi dari resource sendiri adalah semua hal yang dikirim antara cilent dan server. Representasi merupakan state sementara dari data sebenarnya yang terletak di suatu tempat penyimpanan. Dengan kata lain representasi merupakan stream biner bresama metadata yang menjelaskan bagaimana stream tersebut digunakan baik untuk client maupun untuk server. Bisa terdapat banyak jenis client yang melakukan request resource yang ada, oleh karena itu representasi setiap client pun dapat berbeda. Representasinya dapat berupa gambar, text file, stream XML atau stream JSON, tapi kesemua representasi tersebut harus tersedia melalui URI yang sama. Untuk kasus request yang dilakukan oleh manusia (human user) biasanya representasi berupa laman web sehingga menjadi bentuk representasi yang dapat dibaca. 8 4.Stateless Interaction Setiap interaksi antara client dan server harus memiliki state sendiri (atau dengan kata lain tidak dipengaruhi session client). Jadi server hanya akan memantau resource state bukan client session. 2.2 JSON JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer [5]. Gambar 2.3 Contoh Data Dalam Format JSON Ada 2 macam struktur pada JSON, yaitu: Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup). Setiap nama diikuti dengan : (titik dua) dan setiap pasangan nama/nilai dipisahkan oleh , (koma) [5]. 9 Gambar 2.4 Objek Dalam JSON [5] Array adalah kumpulan nilai yang terurutkan. Array dimulai dengan [ (kurung kotak buka) dan diakhiri dengan ] (kurung kotak tutup). Setiap nilai dipisahkan oleh , (koma) [5]. Gambar 2.5 Array Dalam JSON [5] Value (nilai) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau false atau null, atau sebuah objek atau sebuah array. Struktur-struktur tersebut dapat disusun bertingkat [5]. Gambar 2.6 Value Pada JSON [5] JSON banyak digunakan sebagai pertukaran data antar suatu sistem, tetapi dalam pemakaiannya JSON pun bisa digunakan tanpa web service, yaitu dengan menjadikan JSON sebagai sebuah variabel untuk menyimpan suatu data, karena 10 pada dasarnya JSON sendiri adalah data berbentuk String untuk parsing-parsing data. Penggunaan JSON tanpa web service ditunjukkan melalui gambar dan deskripsi dibawah ini. Gambar 2.7 JSON Sebagai Variabel [13] Gambar 2.7 menunjukkan bagaimana mendefinisikan JSON sebagai variabel, yang selanjutnya variabel tersebut dapat diakses melalui pemanggilan variabel disertai dengan key dari data yang ingin diakses, dengan contoh seperti gambar 2.8. Gambar 2.8 Contoh Mengakses JSON Sebagai Variabel [14] Gambar diatas menunjukkan bagaimana cara mengakses sebuah JSON tanpa melalui web service, yaitu dengan cara memanggil variabel yang telah didefinisikan sebagai JSON dengan nama variabel jason dengan key yang ingin ditampilkan nilainya yaitu age dan gender. JSON memiliki beberapa kelebihan dibandingkan dengan XML, diantaranya 1. Ukuran lebih kecil, membuat transfer data lebih cepat dan lebih hemat resource, terutama bandwidth. 2. JSON merupakan format data bawaan di Javascript, artinya jika data dari server di kirim ke client, dan client menggunakan Javascript, maka tidak perlu library tambahan untuk memprosesnya. 3. Dibanding XML, format JSON lebih sederhana. 4. Library JSON ada di setiap bahasa pemrograman sehingga memudahkan programer yang berbeda bahasa pemrograman. 11 2.3 API Parameter Request API (Application Programming Interface) adalah seperangkat rutinitas, protokol, dan alat-alat untuk membangun aplikasi software [9]. API menentukan bagaimana komponen perangkat lunak harus berinteraksi dan API yang digunakan ketika pemrograman antarmuka pengguna grafis (GUI) komponen. Berikut ini contoh pemanggilan API berupa JSON dengan parameternya. Gambar 2.9 Parameter Request API Berupa JSON [12] 2.4 Jsend Parameter Respon JSend adalah spesifikasi yang menetapkan beberapa aturan untuk bagaimana respon JSON dari server web harus diformat [8]. JSend berfokus pada aplication-level pesan yang membuatnya ideal untuk digunakan dalam aplikasi Rest web service [8]. Berikut ini contoh respon JSON dengan menggunakan standar JSend: 12 Gambar 2.10 Respon JSON Dengan Standar JSend 2.5 Pulsa Pulsa adalah media penghubung untuk komunikasi, baik komunikasi jarak dekat maupun jarak jauh. Berdasarkan KBBI (Kamus Besar Bahasa Indonesia) pulsa memiliki 4 makna yang berbeda, yang pertama adalah denyut jantung, yang kedua adalah tegangan atau arus, yang ketiga adalah satuan perhitungan biaya telepon, dan yang keempat adalah rangkaian denyutan berulang secara teratur yang terasa dalam musik, jika pulsa itu terdengaran disebut ketukan [11]. Berdasarkan ke empat makna tersebut, makna ke tiga lah yang paling mendekati, sehingga dapat disimpulkan bahwa pulsa adalah satuan perhitungan biaya telepon [11]. Fungsi pulsa sendiri adalah untuk memastikan jasa itu berjalan,seperti komunikasi telepon berlaku bila ada pulsa,begitu juga listrik dan lain lain. Sebelum kemunculan kata pulsa para provider di indonesia lebih memilih kata voucher daripada kata pulsa, yang tujuannya mengisi kembali kredit pada akun nomor telepon agar bisa digunakan berkomunikasi dan mengirim layanan SMS.