Digunakan untuk Matakuliah Web Service di kampus STMIK El Rahma. Matakuliah ini membahas tentang pengenalan membuat API dari dasar. Syarat mempelajari matakuliah ini, sudah pernah mengambil pemrograman web.
1. Wahyu Widodo, S.Kom.,M.Kom - Web Service 1
Web Service
Disusun Oleh :
Wahyu Widodo,S.Kom.,M.Kom
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
EL RAHMA
YOGYAKARTA
2. Wahyu Widodo, S.Kom.,M.Kom - Web Service 2
Kontrak Kuliah
1. Deskripsi Mata Kuliah
Mata kuliah Web Service membahas tentang teknologi untuk solusi intregrasi proses
dan data. Mahasiswa diajarkan teknik pertukaran data menggunakan beberapa teknik
berikut ini : Simple Object Acces Protocol (SOAP), RestFull, Web Service Definition
Language (WSDL), dan Universal Description, Discover, and Integration (UDDI).
Tujuan akhir yang diharapkan mahasiswa menerapkan teori web service dan
mengimplementasikan untuk mentransformasi sebuah bisnis logic dalam ruang lingkup
yang terpisah dengan tingkat keamanan data yang dapat ditangani dengan baik.
2. Manfaat Mata Kuliah
Mahasiswa mampu :
1. Menjelaskan alur kerja web service.
2. Memahami alur proses bisnis pertukaran data
3. Mampu menggunakan SOAP dan atau RestFull untuk membuat aplikasi web
service.
4. Mampu membuat dokumentasi API .
3. Kompetensi Dasar
1. Memahami cara kerja dan kegunaan web service
2. Memahami arsitektural web wervice
3. Memahami teknologi yang terkait dengan web service seperti SOAP, RestFull,
WSDL, dan UDDI
4. Mampu membuat web service sederhana
5. Mampu membuat dokumentasi API
3. Wahyu Widodo, S.Kom.,M.Kom - Web Service 3
4. Materi / Bacaan Perkuliahan / Referensi
a. James Snell,2001. Programming Web Service with SOAP: O'Reilly.
b. Erik T Ray,2001.Learning XML:Oreilly Publisher.
c. Ben Smith,2015. Beginning JSON: Apress.
d. Leonard R, Sam Ruby,2007. RESTful Web Services:O'Reilly
e. Samisa Abey,2008. RESTful PHP Web Service : Packt Publishing
f. Lorna Jane Mitchell,2013. PHP Web Services : O'Reilly
5. Komponen Penilaian
Evaluasi Pertemuan Pelaksanaan Nilai
1 Akhir pertemuan 3 Online 20
2 / UTS Pertemuan 8 Ruang Lab 20
3 Akhir Pertemuan 11 Online 30
4 / UAS Akhir Pertemuan 14 Ruang Lab 30
Total Nilai 100
6. Kriteria Penilaian
Rentang nilai sebagai berikut :
TINGKAT PENGUASAAN NILAI Predikat
80-100 A Istimewa
71-79 B Baik
55-70 C Cukup
54-40 D Kurang
0-39 E Sangat Kurang
4. Wahyu Widodo, S.Kom.,M.Kom - Web Service 4
7. Komposisi Materi
PERTEMUAN TOPIK MEMBAHAS KOMPETENSI
1 Pengantar Pemrograman Web Service a. Pengenalan Web Service
b. Perbedaan Web Service dengan Web
Aplikasi
c. Teknologi pada Web Service
d. Arsitektural Web Service
Mahasiswa :
a. Mampu menjelaskan perbedaan antara web
service dengan web aplikasi
b. Memahami arsitektural web service dan cara
kerjanya
c. Memahami teknologi yang digunakan pada web
service.
d. Mampu menjelaskan kegunaan web service.
2 Protokol Pertukaran Data a. Alur pertukaran data client server
b. Teknik request data dengan CURL
c. Teknik Monitoring Request Data
Mahasiswa :
a. Mampu mengerti arsitektural dan alur
pertukaran data.
b. Dapat mempraktikkan teknik request data
dengan CURL.
c. Dapat menggunakan teknik inspect element
untuk monitoring pertukaran data.3 Variabel HTTP a. Membuat request data
menggunakan GET
b. Membuat request data
menggunakan POST
c. Teknik kostum request
Mahasiswa :
a.Mampu menerapkan request data menggunakan
GET.
b. Mampu menerapkan request data
menggunakan POST.
c.Mampu mempraktikkan teknik kostum request.
5. Wahyu Widodo, S.Kom.,M.Kom - Web Service 5
4 Headers a. Teknik request dan respon headers
b. Perintah pada HTTP Headers
c. Kostum informasi data pada headers
Mahasiswa :
a.Mampu memahami konsep request dan respon
data pada headers.
b. Mampu mengimplementasikan perintah-
perintah pada HTTP Headers.
c.Mampu mempraktikkan kostum informasi pada
headers5 Cookies a. Pengenalan Cookies
b. Cara kerja cookies
c. Penggunaan cookies saat request
data
Mahasiswa :
a.Memahami kegunaan cookies
b. Mampu menjelaskan mekanisme kerja xcookies
c. Mampu mempraktikan cookies saat request
xdata
6 JSON a. Pengenalan JSON
b. Penanganan data JSON dengan PHP
c. Implementasi JSON pada APIs
Mahasiswa :
a.Memahami konsep JSON dan kegunaannya
b. Mampu membuat pengolahan data
menggunakan JSON
c.Mampu mengimplementasikan JSON pada APIs
7 Pengenalan XML a. Pengenalan XML
b. Memahami struktur bahasa XML
c. Penerapan XML pada APIs
Mahasiswa :
a. Mampu menjelaskan tentang XML.
b. Mengetahui bagaimana XML bekerja
c. Mengerti bagaimana cara menggunakan XML
d. Mengerti kegunaan XML
Ujian Tengah Semester
6. Wahyu Widodo, S.Kom.,M.Kom - Web Service 6
8 RPC dan SOAP Service a. Mengenal Remote Procedure Call
(RPC) service
b. Mengenal SOAP service
Mahasiswa :
a. Mampu memahami perbedaan RPC dan SOAP
Service
b.Mampu membuat fungsional RPC
c.Mampu membuat generate WSDL file
9 Pengenalan REST a. Definisi RESTful dan kegunaannya.
b. Data dan Tipe Media
c. Fitur HTTP pada REST
d. Software pendukung dan Framework
REST
Mahasiswa :
a. Memahami kegunaan RESTful
b.Memahami jenis data dan tipe media
c.Mampu membuat script sederhana RESTful
10 Desain REST berorientasi Service a. Pengenalan arsitektural desain
berorientasi service
b. Membuat pustaka sistem API
c. Membuat implementasi sistem
Mahasiswa :
a. Memahami desain REST berorientasi service.
b. Bisa membuat pustaka sistem
c. Bisa membuat arsitektural API berorientasi
service
11 Desain REST berorientasi Client a. Pengenalan arsitektural desain
berorientasi client
b. Membuat desain resource API
c. Membuat implemetasi sistem
Mahasiswa :
a.Memahami desain REST berorientasi client.
b. Bisa membuat pustaka sistem
c. Bisa membuat arsitektural API berorientasi client
12 Teknik debugging pada web service a. Melacak pesan kesalaahan
b. Kesalahan pada XML
c. Kesalahan saat parsing XML
Mahasiswa :
a. Mampu melacak membuat log messaging untuk
menampung log data error
b. Dapat melacak kesalahan yang terjadi berdasarkan
keterangan pada log error
7. Wahyu Widodo, S.Kom.,M.Kom - Web Service 7
13 Dokumentasi API a. Pengenalan dokumentasi
b. Kegunaan dokumentasi API
c. Membuat dokumentasi API
Mahasiswa :
a. Memahami kegunaan dokumentasi API
b. Dapat membuat dokumentasi API.
14 Studi kasus membuat web service
sederhana
Praktik membuat web service Mahasiswa :
Dapat mengembangkan aplikasi web service dari soal
studi kasus
16 Ujian Akhir Semester
8. Wahyu Widodo, S.Kom.,M.Kom - Web Service 8
8. Software - software
Software : Wamp (Apache), XAMPP, SOAP UI
Data Storage : MySql, XML, JSON
Editor : Notepad ++ atau yang lainnya (sesuai selera)
9. Wahyu Widodo, S.Kom.,M.Kom - Web Service 9
Bab 1
Pengantar Web Service
Membahas :
Pengenalan Web Service
Perbedaan Web Service dengan Web Aplikasi
Teknologi pada Web Service
Arsitektural Web Service
Kompetensi Mahasiswa:
Mampu menjelaskan perbedaan antara web service dengan web
aplikasi
Memahami arsitektural web service dan cara kerjanya
Memahami teknologi yang digunakan pada web service.
Mampu menjelaskan kegunaan web service.
10. Wahyu Widodo, S.Kom.,M.Kom - Web Service 10
1. Definisi Web Service
Web Service adalah Sebuah aplikasi lintas platform yang dapat diakses melalui
jaringan (intranet dan internet ) dimana dalam aplikasi tersebut menyediakan
berbagai fungsi dengan tujuan digunakan untuk interaksi aplikasi satu dengan
aplikasi yang lain.
Web service dapat diartikan juga sebuah metode pertukaran data, tanpa
memperhatikan dimana sebuah database ditanamkan, dibuat dalam bahasa apa,
sebuah aplikasi yang mengkonsumsi data, dan di platform apa sebuah data itu
dikonsumsi. Web service mampu menunjang interoperabilitas. Sehingga web
service mampu menjadi sebuah jembatan penghubung antara berbagai sistem
yang ada.
Menurut W3C Web services Architecture Working Group pengertian Web service
adalah sebuah sistem software yang di desain untuk mendukung interoperabilitas
interaksi mesin ke mesin melalui sebuah jaringan. Interfaceweb service
dideskripsikan dengan menggunakan format yang mampu diproses oleh mesin
(khususnya WSDL). Sistem lain yang akan berinteraksi dengan web service
hanya memerlukan SOAP, yang biasanya disampaikan dengan HTTP dan XML
sehingga mempunyai korelasi dengan standar Web (Web Services Architecture
Working Group, 2004).
Web pada umumnya digunakan untuk melakukan respon dan request yang
dilakukan antara client dan server. Sebagai contoh, seorang pengguna layanan
web tertentu mengetikan alamat url web untuk membentuk sebuah request.
Request akan sampai pada server, diolah dan kemudian disajikan dalam bentuk
sebuah respon. Dengan singkat kata terjadilah hubungan client-server secara
sederhana. Sedangkan pada web service hubungan antara client dan server
tidak terjadi secara langsung. Hubungan antara client dan server dijembatani
oleh file web service dalam format tertentu. Sehingga akses terhadap database
akan ditanggani tidak secara langsung oleh server, melainkan melalui perantara
yang disebut sebagai web service. Peran dari web service ini akan
11. Wahyu Widodo, S.Kom.,M.Kom - Web Service 11
mempermudah distribusi sekaligus integrasi database yang tersebar di beberapa
server sekaligus.
2. Perbedaan Web Service dengan Web Aplikasi
Sekilas bagi beberapa orang pertanyaan tersebut akan dimunculkan ketika
pertama kali kita mendengar istilah web service. Dari pertanyaan ini jawabannya
adalah dua hal tersebut memang berbeda adanya. Jika dilihat dari segi tampilan,
website berisi desain dan tampilan yang menarik, sedang web service tidak
memiliki tampilan yang bagus. Gambar, video, suara, animasi dapat dilihat
tampilannya dalam sebuah website, sedangkan di dalam web service hal-hal
tersebut tidak akan dijumpai.
Penerapan Web service memungkinkan terjadinya interoperabilitas dimana
beberapa aplikasi yang berbeda bahasa pemrograman dan platform sistem
operasi saling berkomunikasi dan bertukar informasi. Web service dapat
digunakan untuk beragam aplikasi dan keperluan.
Jika diartikan sepintas lalu web service berarti layanan web. Apa layanan yang
diberikan oleh web tersebut? Di dalam sebuah web service terdapat sekumpulan
fungsi atau prosedur (dalam paradigma pemrograman prosedural), atau
sekumpulan method (dalam paradigma pemrograman berorientasi objek).
Fungsi/method tersebut dapat anda panggil melalui apalikasi apapun yang anda
kembangkan. Lihat table berikut ini :
12. Wahyu Widodo, S.Kom.,M.Kom - Web Service 12
Table 1 Perbedaan Web Service dengan Web Aplikasi
Aspek Web Service Web Aplikasi
Tampilan (interface) Ga ada Ada
Interaksi Aplikasi dengan aplikasi Aplikasi dengan user
Visualisasi Berjalan discript aplikasi Ditampilkan dibrowser
3. Teknologi Pendukung Web Service
Dalam pengoperasiannya, Web Service menerapkan empat komponen/teknologi
yang mendukung kinerjanya. Empat komponen tersebut adalah
a. Service Publication and Discovery (UDDI),
Universal Description, Discovery and Integration (UDDI) adalah suatu
directory service yang digunakan untuk meregistrasikan dan mencari Web
Service.
b. Service Description (WSDL),
Web Service Description Language (WSDL) adalah sebuah dokumen
dalam format XML yang isinya menjelaskan informasi detail sebuah Web
Service. Di dalam WSDL dijelaskan method-method yang tersedia dalam
web service, parameter apa saja yang diperlukan untuk memanggil sebuah
method, dan hasil atau tipe data yang dikembalikan oleh method yang
dipanggil.
c. Simple Object Access Protocol (SOAP),
Protokol ini mendukung proses pengkodean data (biasanya XML) dan
transfernya melalui HTTP (Hyper Text Transfer Protocol). Dalam konteks
Web Service, SOAP adalah suatu bahasa versi bebas dari protocol RPC
(Remote Procedure Call) yang berguna untuk proses transaksi melalui
HTTP standar. SOAP membuat klien Web Service dapat memilih beberapa
parameter mengenai permintaannya dan memberikannya kepada
penyedia. Ketika penyedia menanggapi permintaan tersebut, maka
terjadilah Web Service.
13. Wahyu Widodo, S.Kom.,M.Kom - Web Service 13
d. Common Internet Protocols (HTTP, TCP/IP).
Dalam hal ini, HTTP maupun TCP/IP berperan sebagai common internet
protocol yang berfungsi sebagai transport layer.
4. Arsitektur Web Service
Gambar 1 Arsitektur Web Service
Pada gambar 1, Web service sendiri dibentuk dari :
a. Service provider/broker, merupakan pemilik Web Service yang berfungsi
menyediakan kumpulan operasi dari Web Service.
b. Service requestor, merupakan aplikasi yang bertindak sebagai klien dari Web
Service yang mencari dan memulai interaksi terhadap layanan yang
disediakan.
c. Service registry, merupakan tempat dimana Service provider
mempublikasikan layanannya. Pada arsitektur Web Service, Service registry
bersifat optional. Teknologi web service memungkinkan kita dapat
menghubungkan berbagai jenis software yang memiliki platform dan sistem
operasi yang berbeda.
5. Keuntungan Menggunakan Web Service
a. Web Service menyediakan interoperabilitas antar berbagai aplikasi perangkat
lunak yang berjalan pada platform yang berbeda.
b. Web Service menggunakan standard dan protocol yang bersifat terbuka.
14. Wahyu Widodo, S.Kom.,M.Kom - Web Service 14
c. Web service mengijinkan penggunaan kembali service dan komponen
didalam suatu infrastruktur.
d. Web service dapat secara bebas digunakan (loosely coupled) dengan
demikian memudahkan suatu pendekatan terdistribusi ke peintegrasian
aplikasi.
6. Contoh Penggunaan Web Service
a. Konversi mata uang
Contoh link urlnya :
http://www.webservicex.com/CurrencyConvertor.asmx?wsdl
b. Integrasi bank virtual (paypal, stripe, ipaymu).
c. Aplikasi booking hotel, aplikasi booking pesawat
15. Wahyu Widodo, S.Kom.,M.Kom - Web Service 15
Bab 2
Protokol Pertukaran Data
Membahas:
Alur pertukaran data client server
Teknik request data dengan CURL
Teknik Monitoring Request Data
Kompetensi Mahasiswa :
Mampu mengerti arsitektural dan alur pertukaran data.
Dapat mempraktikkan teknik request data dengan CURL.
Dapat menggunakan teknik inspect element untuk monitoring
pertukaran data.
16. Wahyu Widodo, S.Kom.,M.Kom - Web Service 16
Mengenal Identitas HTTP
Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan
terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik
komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau
kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan
koneksi perangkat keras.
HTTP (Hypertext Transfer Protocol) suatu protokol yang digunakan oleh WWW
(World Wide Web). HTTP mendefinisikan bagaimana suatu pesan bisa diformat dan
dikirimkan dari server ke client. HTTP juga mengatur aksi-aksi apa saja yang harus
dilakukan oleh web server dan juga web browser sebagai respon atas perintah-
perintah yang ada pada protokol HTTP ini.
Contohnya bila kita mengetikkan suatu alamat atau URL pada internet browser
maka web browser akan mengirimkan perintah HTTP ke web server. Web server
kemudian akan menerima perintah ini dan melakukan aktivitas sesuai dengan
perintah yang diminta oleh web browser. Hasil aktivitas tadi akan dikirimkan kembali
ke web browser untuk ditampilkan kepada kita.
Gambar 2 Cara Kerja HTTP Request dan HTTP Response
Yang dapat kita tarik dari gambar di atas:
1. Web Server yang berhadapan langsung dengan pengguna, menerima HTTP
Request dan mengembalikan HTTP Response.
17. Wahyu Widodo, S.Kom.,M.Kom - Web Service 17
2. Untuk konten statis seperti CSS, Javascript, gambar, maupun HTML web
server dapat langsung menyajikannya sebagai HTTP Response kepada
pengguna.
3. Konten dinamis seperti program PHP maupun Perl disajikan melalui CGI.
4. CGI Script kemudian menghasilkan HTML atau konten statis lainnya yang
akan disajikan sebagai HTTP Response kepada pengguna.
Meskipun terdapat banyak pengembangan selanjutnya dari CGI, ilustrasi
sederhana di atas merupakan konsep inti ketika awal pengembangan CGI.
Umumnya aplikasi web dengan CGI memiliki kelemahan di mana
menjalankan script CGI mengharuskan web server untuk membuat sebuah
proses baru. Pembuatan proses baru biasanya akan menggunakan banyak
waktu dan memori dibandingkan dengan eksekusi script, dan karena setiap
pengguna yang terkoneksi akan mengakibatkan hal ini terhadap serverperforma
aplikasi akan menjadi kurang baik.
CGI sendiri menyediakan solusi untuk hal tersebut, misalnya FastCGI yang
menjalankan aplikasi sebagai bagian dari web server. Bahasa lain juga
menyediakan alternatif dari CGI, misalnya Java yang memiliki Servlet. Servlet
pada Java merupakan sebuah program yang menambahkan fitur
dari server secara langsung. Jadi pada pemrograman dengan Servlet, kita akan
memiliki satu web server di dalam program kita, dan pada web server tersebut
akan ditambahkan fitur-fitur spesifik aplikasi web kita.
(https://bertzzie.com/knowledge/serverside-nodejs/RequestDanResponse.html).
Bagian-Bagian HTTP Request
Request adalah permintaan dari client yaitu web browser seperti Firefox, Chrome dll
ke server seperti web server. Jika Anda menggunakan Alat Pengembang Chrome,
atau Firefox dengan ekstensi terinstal Firebug, klik pada panel Net, dan atur ke
enabled. Anda kemudian akan memiliki kemampuan untuk melihat rincian
permintaan HTTP saat Anda menjelajah. Contoh :
18. Wahyu Widodo, S.Kom.,M.Kom - Web Service 18
Gambar 3 Contoh Request Header dilihat dari Firebug
Stuktur dan method request
Get : Bagian method untuk menandakan jenis request yang digunakan..
Path : merupakan bagian dari URL yang diambil setelah nama domain
Host : berisi host dan port yang digunakan pada original URL
Accept : berisi informasi MIME atau tipe yang akan dikenali oleh browser
Accept-Encoding : berisi informasi encoding yang dikenali oleh browser
Connection : memberitahu ke server apakah client dapat menghandle HTTP
connections
Cookie : mengirimkan kembali cookie ke server
HTTP Response
Setelah browser mengirimkan request, server kemudian akan membalasnya dengan
sebuah HTTP respons. Bagian pertama dari response adalah versi protokol. Format
dan arti versi protokol sama dengan yang ditemukan pada pesan request.
Bagian berikutnya dari response, yaitu 200 OK berisi kode status dari informasi
yang diminta oleh pesan request. Jika method memberikan informasi apa yang
19. Wahyu Widodo, S.Kom.,M.Kom - Web Service 19
harus dilakukan, maka bagian ini memberikan informasi apa yang terjadi setelah
operasi dilakukan. Kode status terdiri dari dua bagian:
Bagian pertama berupa kode angka (status-code; 200 pada contoh). Dibuat agar
kode status mudah diproses oleh komputer.
Bagian kedua berupa teks penjelasan (reason-phrase; OK pada contoh gambar 4).
Dibuat agar mudah dimengerti oleh manusia (pengguna sistem).
Gambar 4 Contoh HTTP Response
Kode status dibagi ke dalam beberapa kateogri, yang dapat dilihat pada tabel
berikut:
Keseluruhan Kode Kode yang Terdefinisi Kategori
100 - 199 100 - 101 Informasional
200 - 299 200 - 206 Sukses
300 - 399 300 - 305 Redirection
400 - 499 400 - 415 Kesalahan Client
500 - 599 500 - 505 Kesalahan Server
Pengenalan CURL
Curl merupakan sebuah library yang di gunakan untuk berkomunikasi dan
melakukan HTTP request tanpa campur tangan dari sisi user atau sisi client.
20. Wahyu Widodo, S.Kom.,M.Kom - Web Service 20
Langkah-langkah Penggunaan CURL :
Inisialisasi Curl
Tentukan halaman web yang akan diload
Pindai dan cetak kembali dokumen
Tutup Curl
Fungsi Curl yang secara umum digunakan dalam bahasa pemrograman php :
Kegunaan fungsi tersebut adalah :
curl_init : digunakan untuk menginisialisasi curl
curl_setopt : digunakan untuk memberi opsi yang akan digunakan untuk
mengeksekusi sebuah curl
curl_exec : digunakan untuk mengeksekusi curl
curl_close : digunakan untuk menutup curl
Buat file dengan nama test_curl.php simpan pada local server anda, kemudian ketik
kode berikut ini :
Buka browser Anda, ketik http://localhost/test_curl.php
Dari hasil di atas, file test.php tersebut akan menangkap seluruh konten yang
terdapat pada halaman http://www.php.net, ibaratnya kita mengakses sebuah
halaman pada website tanpa membuka halaman tersebut, semua di lakukan dari sisi
server .
21. Wahyu Widodo, S.Kom.,M.Kom - Web Service 21
Bab 3
Headers
Membahas:
Teknik request dan respon headers
Perintah pada HTTP Headers
Kostum informasi data pada headers
Teknik kostum request
Kompetensi Mahasiswa :
Mampu memahami konsep request dan respon data pada
headers.
Mampu mengimplementasikan perintah-perintah pada HTTP
Headers.
Mampu mempraktikkan kostum informasi pada headers.
22. Wahyu Widodo, S.Kom.,M.Kom - Web Service 22
Contoh Request Header
Method request yang digunakan (misal : GET)
Accept : merupakan jenis batasan data yang boleh dikirim melakukan
request.
User-Agent : browser yang anda gunakan.
Contoh Response Header
Status Response : Nasib berhasil tidaknya permintaan. 200 OK (berhasil)
Accept-Type : batasan data yang diterima Anda setelah berhasil request.
Cookies : jika dibutuhkan untuk create cookies (opsional)
Authorization : jika dibutuhkan otoritas untuk mengakses (opsional).
23. Wahyu Widodo, S.Kom.,M.Kom - Web Service 23
Mengenal User Agent
User Agent adalah script yang dikirimkan oleh web browser ke web server yang kita
tuju, atau ke setiap situs yang kita kunjungi, jadi setiap situs yang kita kunjungi dapat
mengetahui browser dan sistem operasi yang kita gunakan sehingga konten dapat
disesuaikan dengan jenis sistem operasi kita.
Gambar 5 Ilustrasi User Agent
User Agent tidak mengirimkan seluruh informasi yang kita punya, user agent hanya
mengirimkan beberapa informasi seperti arsitektur prosesor komputer kita, sistem
operasi yang kita gunakan, dan beberapa informasi tentang browser yang kita
gunakan seperti engine browser, engine browser version dan nama browser (lihat
gambar 6).
24. Wahyu Widodo, S.Kom.,M.Kom - Web Service 24
Gambar 6 Melihat User Agent Dengan Browser Chroome
User Agent bersifat one way information jadi jangan takut dengan adanya user agent
sistem kita dapat di akses orang lain tanpa izin, jadi user agent aman digunakan
bahkan sangat penting adanya. user agent pun dapat dirubah sesuai dengan
kebutuhan kita sendiri dengan maksud untuk mendapat konten yang berjalan baik
dari sebuah web server. untuk blogger mengganti user agent biasa digunakan untuk
melihat tampilan blognya di beberapa sistem operasi dan browser.
Buat script berikut untuk menampilkan user agent dengan php :
Jalankan melalui browser :
25. Wahyu Widodo, S.Kom.,M.Kom - Web Service 25
Membuat Batasan Data Request yang dikirim ke Server
Secara default, jika data yang bisa dikirim :
This request made by:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8.
dihasilkan dari perintah :
Tapi kita juga bisa menentukan sendiri, misalnya boleh mengirim ke server hanya
dengan format json. Memodifikasi bagian header dengan menggunakan
CURLOPT_HTTPHEADER, dapat memodifikasi Accept dan Accept-Type.
Contoh :
Pada contoh diatas, format yang akan dikirim hanya bertipe JSON.
HTTP Basic Authentication
Headers menyediakan informasi untuk mengijinkan aplikasi mengidentifikasi si
pengguna yang melakukan request. Caranya dengan mengirimkan teks Base64
26. Wahyu Widodo, S.Kom.,M.Kom - Web Service 26
encoded username dan password pada HTTP header Authorization. Username dan
password tersebut selalu dikirimkan untuk setiap HTTP request untuk proses
authorization. Contoh :
Studi Kasus Akses API Midtrans
Belum punya akun? Silahkan registrasi dulu https://www.midtrans.com/
Jika sudah, silahkan login. Anda akan mendapat tampilan dashboard.
https://dashboard.midtrans.com/
Silahkan switch Environment dari production ke sanbox . (sanbox= simulasi,
production = beneran) Lihat Gambar 7
Gambar 7 Dashboard Akun Midtrans
Buka dokumentasinya :
- versi online : http://api-docs.midtrans.com
- versi pdf dapat diunduh di : https://snap-docs.midtrans.com/docs-en.pdf
27. Wahyu Widodo, S.Kom.,M.Kom - Web Service 27
Lihat pada bagian Register Card Status Method
Gunakan data parameter yang akan dikirim berikut ini :
- card_number : 4111111111111111
- card_exp_month : 09
- card_exp_year : 2019
- client_key : lihat punyamu (buka dashboard, klik setting, klik access key)
lihat Gambar 8
Gambar 8 Cara Melihat Client Key
Buka SOAP UI, Klik create new Rest, Masukkan URI (Lihat gambar 9)
https://api.sandbox.midtrans.com/v2/card/register
Pastikan request methodnya GET, masukkan 4 parameter name dan
valuenya, dengan menekan simbol + warna hijau
Gambar 9 Icon Untuk Memasukkan URL Api
Jika ke 4 parameter udah dimasukkan semua, klik tombol segitiga hijau untuk
menjalankannya (lihat Gambar 10).
28. Wahyu Widodo, S.Kom.,M.Kom - Web Service 28
Gambar 10 Kilk Tombol Hijau
Cocokkan dengan Register Card Response di dokumentasi. Sudah sesuai
harapan apa belum?
http://api-docs.midtrans.com/#register-card
Setelah sukses ditest dengan SOAP UI, saatnya pakephp script, tulis function
dibawah ini :
Parameter server_key dan client_key sesuaikan dengan punya Anda.
29. Wahyu Widodo, S.Kom.,M.Kom - Web Service 29
Bila sukses maka akan tampil berikut ini :
Tugas 1
Buat script untuk input data transaction dengan menggunakan method POST
dengan model pembayaran credit card.
Urutan yang diinputkan adalah
- data transaction detail
- data credit card
- data item details
- data customer detail
Lihat parameter yang dikirim disini :
http://api-docs.midtrans.com/#credit-card
30. Wahyu Widodo, S.Kom.,M.Kom - Web Service 30
Bab 5
Cookies
Membahas:
Pengenalan Cookies
Cara kerja cookies
Penggunaan cookies saat request data
Kompetensi Mahasiswa :
Memahami kegunaan cookies.
Mampu menjelaskan mekanisme kerja cookies.
Mampu mempraktikan cookies saat request data.
31. Wahyu Widodo, S.Kom.,M.Kom - Web Service 31
Definisi Cookie
Cookies adalah sebuah file teks yang berisi data tertentu yang disimpan
oleh browser.Data pada cookie ini dikelompokkan berdasarkan domain,
sehingga ketika browser mengakses domain tertentu (misal: www.example.com),
maka hanya data cookie yang terkait domain tersebut yang dikirim.
Cara kerja cookie
Cara kerja cookie dapat dimisalkan sebagai berikut:
Pertama-tama, browser meminta webserver (misal pada www.example.com) untuk
memberikan data halaman tertentu, ketika mengirim data, webserver
memerintahkan browser untuk menyimpan data ke file cookie.
Selanjutnya, ketika browser kembali mengakses website tersebut, browser akan
sekaligus mengirim data cookie yang disimpan tadi.
Data cookie tersebut digunakan oleh webserver untuk berbagai keperluan, termasuk
menerapkan setting tertentu pada data yang akan dikirim kembali ke browser.
Misal:
User A dengan browser Firefox mengunjungi website www.example.com
kemudian mengakses menu setting dan menerapkan tema biru dan
bahasa antar muka Bahasa Inggris.
Di belahan negara lain, user B dengan browser Firefox menerapkan tema
hijau dengan bahasa antar muka Bahasa Indonesia.
Nah agar server www.example.com mengetahui tema dan bahasa yang telah
diterapkan oleh masing-masing user pada masing masing browser,
maka www.example.com memerintahkan browser untuk menyimpan data setting
tersebut.
32. Wahyu Widodo, S.Kom.,M.Kom - Web Service 32
Selanjutnya ketika browser tersebut kembali mengunjungi www.example.com, data
cookie tersebut ikut dikirim sehingga server tahu tema dan bahasa apa yang akan
diterapkan kepada browser tersebut.
Untuk lebih jelasnya, perhatikan ilustrasi berikut:
Gambar 11 Ilustrasi Cookies
Pada contoh diatas terlihat bahwa server (dalam hal ini www.example.com) dapat
memanfaatkan data cookie hanya pada request ke dua (step ke 3) dan
seterusnya, tidak bisa pada request pertama, karena pada request pertama tersebut,
data cookie sedang dibuat.
Cookie Pada PHP
Nah, setelah kita paham tentang cookie, selanjutnya kita bahas penerapan cookie
pada PHP. Setidaknya ada tiga hal yang akan kita bahas yaitu: membuat, membaca,
dan menghapus data Cookie.
Membuat Cookies Pada PHP
Untuk membuat cookies pada PHP, kita gunakan fungsi setcookie(). Fungsi ini
memiliki enam argumen, yaitu:
1. Nama cookie, yang berisi nama cookie.
33. Wahyu Widodo, S.Kom.,M.Kom - Web Service 33
2. Nilai cookie, data yang akan disimpan yang merujuk pada nama cookie
(nomor 1)
3. Expire. Kapan cookie akan berakhir. Format waktu berupa Unix timestamp,
yang pada PHP kita buat dengan menggunakan fungsi time().
Jika nilai expire dikosongkan atau bernilai 0, maka data cookie akan
expire/dihapus ketika browser ditutup (ketika session berakhir)
4. Path. Path/Lokasi pada server di mana cookie dapat digunakan. Jika diisi
tanda slash ‘/’, maka cookie dapat digunakan diseluruh bagian website.
Jika diisi nilai tertentu, misal ‘/blog/’, maka cookie hanya dapat digunakan
pada direktori blog dan subdirektorinya, misal: ‘/blog/archive/’ .
Jika nilai dikosongkan, maka lokasi akan merujuk ke direktori dimana cookie di
buat.
5. Domain. subdomain dimana cookie dapat digunakan.
Misal: jika kita isi (jagowebdev.com), maka cookie akan dapat digunakan pada
semua subdomain seperti: blog.jagowebdev.com, themes.jagowebdev.com
w2.www.jagowebdev.com, dll.
Namun, jika kita isi (www.jagowebdev.com) maka subdomain yang tersedia
hanya sebelum www misal: w2.www.jagowebdev.com.
Jika nilainya kosong, maka cookie akan berlaku pada seluruh bagian domain
namun tidak pada subdomainnya.
6. Secure. Default false. Jika true, browser akan mengirim cookie ke
websever hanya jika koneksi berbentuk HTTPS.
7. Httponly. Default false. Cookie hanya dapat diakses hanya melalui protokol
http.
34. Wahyu Widodo, S.Kom.,M.Kom - Web Service 34
Kita tidak bisa mengosongkan waktu expire, dengan demikian, kita tidak bisa
membuat cookie dengan umur yang tidak terbatas, solusinya, kita buat waktu
expired cookie sangat lama, misal 5 tahun kedepan. Dari ketujuh argumen tersebut,
yang paling sering digunakan adalah empat pertama. Khusus untuk argumen
domain, isinya (jika ada) harus menggunakan dot (.) sehingga jika kita
menuliskan localhost maka akan gagal.
Contoh: kita set cookie dengan nama background-color dengan nilai #4e79a0 dan
cookie dengan nama font-size dengan nilai 15px
Selanjutnya cek apakah cookie ini berhasil disimpan di browser. Caranya, buka
developer tools (tekan F12 – Google Chrome)
Menghitung Waktu Expired
Pada argumen ke tiga, kita menentukan kapan cookie akan berakhir (expired),
karena nilai yang diisikan berupa timestamp, maka cara yang paling mudah untuk
menentukan waktu expire adalah menggunakan hitungan mundur dari detik, menit,
jam, hari, dst…
35. Wahyu Widodo, S.Kom.,M.Kom - Web Service 35
Contoh kita ingin membuat waktu expire cookie 30 hari kedepan, maka kita
isikan time() + (60 * 60 * 24 * 30) yang artinya:
time() yang berarti waktu ketika script dieksekusi (dalam unix timestamp).
60 pertama yang berarti 60 detik (1 menit = 60 detik);
60 kedua yang berarti 60 menit (1 jam = 60 detik)
24 yang berarti 24 jam (1 hari = 24 jam)
30 yang berarti 30 hari
Cara ini jauh lebih mudah dibaca dan di-maintenance daripada kita
menggunakan time() + 2595000
Cara lain yang lebih mudah adalah dengan menggunakan format tanggal relatif
(Relative Date Format) yaitu dengan menggunakan kata-kata day, month, weeks,
year, dsb.
Contoh penggunaan relative date format pada cookie:
Membaca Data Cookie Pada PHP
Untuk membaca data cookie, kita gunakan variabel bawaan PHP $_COOKIE, jika
tidak ada cookie sama sekali maka variabel ini tetap ada namun bernilai kosong.
Untuk mengambil data cookie tertentu, gunakan variabel $_COOKIE dengan index
nama cookie tersebut, misal: untuk nama cookie theme, kita
panggil menggunakan $_COOKIE['theme']
36. Wahyu Widodo, S.Kom.,M.Kom - Web Service 36
Untuk menampilkan semua data cookie, kita gunakan fungsi print_r(), contoh: echo
'<pre>'; print_r($_COOKIE)
Pada PHP, cookie yang dikirim oleh browser disimpan dalam variabel
global $_COOKIE. Hal ini berarti bahwa kita tidak dapat langsung mengambil nilai
cookie ketika baru saja membuatnya, karena, data tersebut belum dikirim kembali ke
server.
Menghapus Cookie Pada PHP
Untuk menghapus cookie pada PHP, kita cukup memberi nilai kosong pada nama
cookie yang ingin kita hapus datanya. Misal kita ingin hapus data cookie font-size:
setcookie('font-size', '');
Jika pada waktu membuat cookie kita memberikan argumen lain selain nama cookie,
nilai, dan expire, misal path atau domain, maka untuk menghapus data cookie
tersebut, kita juga harus menyertakan argumen tersebut. Misal pada contoh
sebelumnya kita membuat cookie dengan memberikan argumen path '/'.
setcookie('font-size', '14px', time + (60 * 60), '/');
maka untuk menghapusnya, kita juga harus menuliskan argumen tersebut
setcookie('font-size', '', 0, '/');
Sumber : http://jagowebdev.com/cookie-pada-php/
37. Wahyu Widodo, S.Kom.,M.Kom - Web Service 37
Bab 6
JSON
Membahas:
Pengenalan JSON
Penanganan data JSON dengan PHP
Implementasi JSON pada APIs
Kompetensi Mahasiswa :
Memahami konsep JSON dan kegunaannya.
Mampu membuat pengolahan data menggunakan JSON.
Mampu mengimplementasikan JSON pada APIs.
38. Wahyu Widodo, S.Kom.,M.Kom - Web Service 38
Berkenalan dengan 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. Format ini dibuat berdasarkan bagian dari Bahasa
Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON
merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun
karena menggunakan gaya bahasa yang umum digunakan oleh programmer
keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena
sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.
Keterangan Lebih lanjut bias di baca di : http://www.json.org/json-id.html.
Keunggulan JSON :
Ukuran lebih kecil dibanding XML, efeknya transfer data lebih cepat dan lebih
hemat resource, terutama bandwidth.
Format JSON lebih sederhana dibanding XML.
Library JSON ada disetiap bahasa pemrograman.
Struktur JSON
Kumpulan pasangan nama dan nilai (sering disebut objek) yang dimulai dengan {
dan diakhiri dengan }
Daftar nilai terurutkan (larik/array) yang dimulai dengan [ dan diakhiri dengan ]
39. Wahyu Widodo, S.Kom.,M.Kom - Web Service 39
Contoh JSON :
Penanganan JSON dalam PHP
Terdapat 2 fungsi JSON :
json_encode : merubah array ke dalam format json
json_decode : merubah json ke dalam format array
Buat file latihanjson1.php simpan pada local server Anda, ketik kode dibawah ini :
Jalankan via browser http://localhost/latihanjson1.php
40. Wahyu Widodo, S.Kom.,M.Kom - Web Service 40
Buat file latihanjson2.php simpan pada local server Anda, ketik kode dibawah ini :
Jalankan via browser http://localhost/latihanjson2.php
Membuat File JSON
Buat file createjson.php simpan pada folder local server Anda, ketik kode dibawah ini
Test script anda dengan menggunakan browser :
http://localhost/webservice/createjson.php
41. Wahyu Widodo, S.Kom.,M.Kom - Web Service 41
Bab 7
XML
Membahas:
Pengenalan XML
Memahami struktur bahasa XML
Penerapan XML pada APIs
Kompetensi Mahasiswa :
Mampu menjelaskan tentang XML.
Mengetahui bagaimana XML bekerja.
Mengerti bagaimana cara menggunakan XML
42. Wahyu Widodo, S.Kom.,M.Kom - Web Service 42
Pengenalan XML
XML (eXtensible Markup Language) adalah format umum yang digunakan untuk
membuat bahasa markup baru. XML mendefinisikan seperangkat aturan untuk
dokumen yang dikodekan secara elektronik. Bahasa markup digunakan untuk
memisahkan konten dari struktur dokumen elektronik dengan jelas.
Keuntungan XML :
Tag tidak terbatas dan memungkinkan banyak fleksibilitas.
Dengan XML Anda pada dasarnya menulis bahasa markup Anda sendiri yang
memungkinkan Anda membuat bahasa sesuai dengan tugas tertentu.
Sehubungan dengan HTML, XML mendukung pemisahan GUI dari data /
konten dengan menggunakan style sheet khusus.
Kekurangan XML :
XML tidak memiliki sistem untuk pemrosesan aplikasi sehingga dokumen
XML harus dikonversi, ke HTML misalnya.
Fleksibilitas yang diberikannya juga bisa menjadi kerugian karena ada
ketidaksepakatan di antara tag atau objek dan ini bisa menambahkan kendala
yang menyulitkan pembuatan file.
Isu terkait bisa muncul jika sebuah organziasi memiliki ratusan fungsi untuk
satu set dokumen yang perlu dijelaskan dengan tag.
Terlalu banyak tag untuk struktur dokumen tunggal dapat mengganggu
kemampuan XML untuk memproses informasi.
43. Wahyu Widodo, S.Kom.,M.Kom - Web Service 43
Membuat Dokumen XML dengan PHP dan MySQL
Buat table anggota dengan script berikut :
Masukkan data berikut ini :
Buat file create_xml.php untuk, men-generate dokumen xml dari record yang
ada di table tb_anggota.
Melalui browser, ketik : http://localhost/create_xml.php
CREATE TABLE IF NOT EXISTS `tb_anggota` (
`anggota_id` int(5) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`alamat` varchar(50) NOT NULL,
`umur` int(2) NOT NULL,
PRIMARY KEY (`anggota_id`)
) ENGINE=INNODB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
INSERT INTO `tb_anggota` (`nama`, `email`, `alamat`, `umur`) VALUES
('Wayan', 'wayan@email.com', 'Badung', 21),
('Made', 'made@email.com', 'Gianyar', 19),
('Nyoman', 'nyoman@email.com', 'Klungkung', 30),
('Ketut', 'ketut@email.com', 'Tabanan', 23),
('Gede', 'gede@email.com', 'Karangasem', 27);