web service
DESCRIPTION
jakiTRANSCRIPT
-
5/28/2018 Web Service
1/152
-
5/28/2018 Web Service
2/152
BAB I
TIK:
Mahasiswa dapat Memahami dasar-dasar layanan web (web service)
Pokok Bahasan:
Pendahuluan
Pengantar Web Service
Sub Pokok Bahasan:
Definisi
Arsitektur
WS-Inspection document format
Keuntungan Web service
-
5/28/2018 Web Service
3/152
Web service merupakan sistem software yang dirancang untuk mendukung
kerjasama antar mesin ke mesin melalui jaringan, interfacenya berupa format
yang dapat dikenali oleh mesin khususnya Web Service Definition Language
(WSDL). Sistem yang lain berinteraksi dengan web service menggunakan pesan
Simple Object Access Protocol (SOAP), biasanya disampaikan menggunakan
HTTP dengan serialisasi XML dalam hubungannya dengan standar Web-terkait
lainnya. Webservice adalah layanan yang akan menjalankan tugas/aksi tertentu
dapat diakses melalui web (HTTP).
Perlu dibahas mengenai Service Oriented Architecture (SOA). SOA merupakan
paradigma arsitektur yang berfokus pada pembangunan sistem melalui penggunaan
beragam web service ataupun arsitektur service lainnya dan menghubungkannya
sehingga menjadi sistem yang utuh.
SOA tidak perlu harus didasarkan pada web services. SOA adalah sebuah konsep
arsitektur. Web Services adalah realisasi SOA, yang memanfaatkan XML dan protokol
umum internet (seperti HTTP) untuk menyebarkan suatu layanan. Secara teori, Anda
bisa dengan mudah membangun sebuah SOA menggunakan sesuatu selain Web
Services.
Arsitektur web service didasarkan pada interaksi antara tiga peran utama:
penyedia service,
service yang terdaftar, dan
pemohon service
Peran-peran ini berinteraksi menggunakan pempublikasian, pencarian, dan
operasi binding (pengikatan). Penyedia service adalah bisnis yang menyediakan
akses ke Web service dan mempublish deskripsi service dalam daftar service.
Pemohon service menemukan deskripsi service dalam daftar service dan
-
5/28/2018 Web Service
4/152
menggunakan informasi dalam deskripsi untuk mengikat service tersebut.
Pandangan logis dari arsitektur layanan Web ditunjukkan pada Gambar 1. Dari
gambar arsitektur layanan Web, daftar service menyediakan lokasi terpusat
untuk menyimpan deskripsi service. Sebuah daftar Universal Description,
Discovery and Integration (UDDI) adalah contoh dari jenis service yang terdaftar.
Gambar 1
Terdapat kebutuhan akan metode pencarian service yang terdistribusi. Web Services
Inspection Language merupakan metode yang digunakan sebagai standar pencarian
tersebut, dengan cara memeriksa situs web akan ketersediaan web service. Spesifikasi
WS-Inspection menentukan lokasi situs web dimana kita dapat mencari service yang
diinginkan.
-
5/28/2018 Web Service
5/152
Sebuah inspeksi dokumen WS menyediakan referensi untuk deskripsi layanan.
Deskripsi layanan ini dapat didefinisikan dalam format seperti WSDL, UDDI, atau
HTML biasa.
Sebuah inspeksi dokumen WS dapat berisi daftar referensi untuk deskripsi
layanan, serta referensi untuk inspeksi dokumen WS lainnya. Sebuah dokumen
WS akan berisi satu atau lebih dan elemen .
akan berisi satu atau lebih referensi untuk berbagai jenis deskripsi
layanan pada web service yang sama.
mungkin berisi referensi ke hanya satu jenis deskripsi layanan, tapi
deskripsi layanan ini tidak memerlukan referensi web service yang sama.
Perlu diperhatikan perbedaan antara web (aplikasi web) dengan web service.
Aplikasi web adalah aplikasi yang berada pada server, tetapi ditujukan untuk digunakan
oleh manusia, yang menggunakan halaman web sebagai lapisan presentasi. Semua
interaktivitas pengguna (GUI) dilakukan melalui halaman web, tetapi semua data
disimpan dan (kebanyakan) dimanipulasi pada server.
Web service adalah aplikasi berbasis server (seperti di atas) yang dapat diakses
melalui web melalui protokol HTTP, tetapi ditujukan terutama untuk interaksi dengan
program lain. Dengan demikian, terdapat API yang memberikan tanggapan terhadap
HTTP GET dan POST yang dibuat oleh aplikasi remote. Tidak berarti Anda tidak dapat
mengakses layanan web dari browser Anda, tetapi aplikasi itu tidak akan selalu memiliki
user interface GUI. Biasanya Anda menerima semua hasil GET dan POST sebagai
string XML, yang membutuhkan parser di sisi klien.
Kapan Anda perlu menggunakan Web service?
-
5/28/2018 Web Service
6/152
Web Services itu digunakan saat diperlukan transformasi suatu bisnis logik yang
terpisah dalam 1 ruang lingkup yang menjadi satu. Web Service cukup diupload ke Web
Server dan siap diakses oleh pihak-pihak yang telah diberikan otorisasi.
Web service berjalan (live) di port 80 yang merupakan protokol standar HTTP, dengan
demikian mengurangi resiko terblokir oleh firewall. Kendala arsitektur COM/DCOM
adalah memerlukan konfigurasi khusus di sisi firewall, dan ini tidak perlu dilakukan
ketika mengakses Web Service.
Beberapa vendor luar negeri mulai berkolaborasi satu sama lain dengan konsep web
services, diantaranya : IBM , Microsoft , SUN , ORACLE.
Setiap service berdiri sendiri, independen terhadap service lain pada suatu
aplikasi. Bagian-bagian service dapat diubah tanpa mempengaruhi yang lain
Data dibungkus antar aplikasi dan WS berfungsi untuk manghubungkan aplikasi-
aplikasi tersebut dan memudahkan komunikasi
Kode dapat digunakan kembali dan dikembangkan lebih mudah baik di sisi klien
atau server.
Kaitan dengan logistik
Dengan pertumbuhan B2B yang semakin banyak dan cepat dibutuhkan komunikasi
dinamis diantaranya (dapat berupa lintas platform dlsb), web service adalah sarana
yang tepat untuk menjawabnya.
-
5/28/2018 Web Service
7/152
TUGAS:
Buat artikel kelompok: tentang sejarah web service dan penggunaanya, beri contoh real
perusahaan/instansi yang menggunakannya.
-
5/28/2018 Web Service
8/152
BAB II
TIK:
Mahasiswa dapat Memahami dasar-dasar XML
Pokok Bahasan:
Pendahuluan XML
Sub Pokok Bahasan:
Definisi
Blok-blok pembangun XML
XML Namespaces
XML Schema
-
5/28/2018 Web Service
9/152
Dalam web service biasanya paket data yang dikomunikasikan berupa format XML.
1 Definisi
Extensible Markup Language (XML) adalah rekomendasi W3C untuk membuat
markup languages yang memungkinkan strukturisasi, deskripsi dan pertukaran
data.
XML bagian dari Standard Generalized Markup Language (ISO 8879:1986
SGML) yang mampu menggambarkan beragam bentuk data. XML memfasilitasi
berbagi teks terstruktur dan informasi pada database dan internet.
Bahasa yang berbasiskan XML dijelaskan dalam bentuk yang formal dan
memungkinkan program untuk memodifikasi dan memvalidasi dokumen tanpa
perlu mengetahui bentuk awalnya dan bersifat independen platform.
2 Blok-blok pembangun XML
Elements
Pasangan dari tag awal dan tag akhir.
Attributes
Sepasang nama yang merupakan bagian dari tag awal sebuah Elemen.
Processing Instructions
Deskripsi arahan khusus kepada aplikasi yang akan memproses XML
dokumen.
Comments
Tag atau pesan yang membantu user memahami kode sumber.
Character Data
o Characters (encoding)o Entities
o Whitespace
-
5/28/2018 Web Service
10/152
2.1 Elemen-elemen XML
Elemen merupakan nama teknis untuk tag yang berpasangan dimulai dari tag
pembuka dan tag penutup pada dokumen XML.
Contoh:
Tag pembuka:
Tag penutup:
Catatan:
Elemen XML harus benar-benar bersarang
Nama elemen bisa berupa huruf, garis bawah, tanda hubung dan koma,
harus dimulai dengan huruf.
Nama elemen bersifat case sensitif
Contoh: yang benar
Contoh: yang salah
2.2 Atribut
Merupakan komponen yang berfungsi memberikan informasi tambahan terhadap
elemen.
-
5/28/2018 Web Service
11/152
Contoh:
budi
2.3 Processing Instructions
Sebuah direktif khusus untuk pengolahan dokumen XML.
Contoh:
2.4 Comments
Suatu teks yang membantu user dalam membaca maksud XML atau program dan
diabaikan dalam prosesnya.
Contoh:
2.5 Character Data
o Encoding
Semua karakter dalam dokumen XML harus mengikuti pengkodean dokumen
o Entities
Komponen yang berfungsi untuk menampilkan output lain pada browser
-
5/28/2018 Web Service
12/152
Contoh:
o Whitespace
Kebanyakan aplikasi
Contoh: XML (sumber: Introd
m Geneva
art ?>001001010010d ?>
an Uniform Resource Identifier untuk mem
to Web Services, Ioannis G. Baltopoulos)
los)
uat kelas-
-
5/28/2018 Web Service
13/152
A Purchase Order
Laptop Computer1300 GBP
Perhatikan contoh di atas, berikut pembangun kelas-kelas elemennya:
xmlns:msg
xmlns:po
Menambahkan prefiks ke setiap elemen dalam dokumen XML menyulitkan pembacaan
dan ukuran dokumen meningkat. Oleh karena itu, XML namespace memungkinkan kita
untuk menggunakan namespace default pada dokumen. Elemen default namespace
tidak memerlukan prefiks.
4 XML Schema
XML schema berfungsi untuk:
Identifikasi elemen-elemen yang ada pada dokumen
Identifikasi urutan dan hubungan antara elemen-elemen
Identifikasi atribut setiap elemen, dan apakah mereka opsional atau dibutuhkan
atau memiliki beberapa properti khusus lainnya Identifikasi datatype konten atribut
-
5/28/2018 Web Service
14/152
Kaitan dengan logistik
Pertukaran data/dokumen pada proses B2B secara umum menggunakan format XML
SGML dan mungkin masih akan digunakan jika faktor kecepatan masih dapat diterima.
-
5/28/2018 Web Service
15/152
TUGAS:
Buat dokumen XML berisi tentang proses bisnis suatu instansi, contoh: pendidikan,
industri, jasa, tracking dlsb.
Anda dapat menggunakan alat bantu editor seperti eclipse dlsb.
-
5/28/2018 Web Service
16/152
BAB III
TIK:
Mahasiswa dapat Memahami DTD pada XML
Pokok Bahasan:
DTD
Sub Pokok Bahasan:
Pendahuluan
Pendeklarasian DTD
Komposisi XML dilihat dari DTD
DTD XML
-
5/28/2018 Web Service
17/152
1 Pendahuluan
Pada materi sebelumnya Anda telah mengenal dan dapat membuat dokumen XML,
yang perlu diperhatikan adalah bagaimana struktur dari dokumen tersebut agar
konsisten, oleh karena itu diperlukan definisi terhadap dokumen XML tersebut. Pertama
akan dibahas mengenai Document Type Definitions (DTD).
DTD berfungsi untuk mendefinisikan tipe dokumen XML.
DTD ditulis untuk menjelaskan elemen dan entitas yang mungkin muncul di
dalam dokumen dan elemen isi serta atributnya.
Sehingga dokumen XML dapat divalidasi dan dicek mengenai kondisi well form nya
dengan membandingkannya dengan definisi pada DTD.
2 Pendeklarasian DTD
Dapat dideklarasikan di dalam file xml
Ataupun diluar file xml
3 Komposisi XML dilihat dari DTD
Dokumen XML memiliki:
Elements
Attributes
Entities
3.1 Elements
Elements merupakan komponen utama dari suatu dokumen xml.
Memiliki tag pembuka dan penutup
Contoh:
-
5/28/2018 Web Service
18/152
3.2 Attributes
Merupakan komponen yang
element
contoh:
Atau
erfungsi memberikan informasi tambahan t
>
tuk menampilkan output lain pada browser
ur xml di atas maka dapat dibentuk file DT
ategory>
lement-content)>
erhadap
dengan
-
5/28/2018 Web Service
19/152
Empty Elements
contoh:
XML:
Elements with any Contents
contoh:
Elements with Children (sequences)
atau
contoh:
Elements with Parsed Character Data (PCDATA)
contoh:
-
5/28/2018 Web Service
20/152
Untuk contoh elements yan
ditulis berurutan sesuai pad
harus dideklarasikan mendet
Contoh:
Penulisan jumlah anak dari
tanda pada akhir nama elem
Contoh:
bertingkat (mempunyai anak), pada penu
DTD. Dan pada format DTD, elemen-el
il.
l,jam,nama,tema)>
PCDATA) >
ATA) >
DATA) >
DATA) >
suatu elemen dapat ditulisakan dengan
n.
lisan xml harus
men anak tadi
menambahkan
-
5/28/2018 Web Service
21/152
4.2 DTD: ElementsSyntax:
contoh DTD:
XML:
4.3 DTD Entities
Entities adalah variabel digunakan untuk mendefinisikan shortcut untuk teks standar
atau karakter khusus.
Entitas dapat dideklarasikan secara internal maupun eksternal.
Contoh:
DTD :
-
5/28/2018 Web Service
22/152
©right;
-
5/28/2018 Web Service
23/152
PRAKTIK:
Untuk memudahkan praktikum, Anda dipersilahkan memakai tools untuk mempelajari
mata kuliah ini. Anda disarankan menggunakan:
Eclipse JEE IDE (termasuk wtp plugin)
Plugin Eclipse Rinzo xml editor
Studi kasus:
Anda memiliki perusahaan logistik jasa pengantar barang (PT X). Anda memiliki banyak
klien. Anda dan klien berkomunikasi melalui pertukaran dokumen xml.
Struktur dokumen sebagai berikut:
barang
o kode
o nama
o satuan
o harga
o asal
PT
kodeWIL
o tujuan
PT
kodeWIL
Buatlah contoh file xml nya dan DTD.
1. File xml dapat diintegrasikan dengan berbagai project, untuk keperluan
praktikum ini kita akan membuat project tidak utuh, hanya membuat file xml dan
DTD dengan tools dan plugin eclipse, kemudian memeriksa apakah dokumen
tersebut valid, well form.
2. Jalankan eclipse JEE IDE
-
5/28/2018 Web Service
24/152
3. Tentukan workspace,
menentukannya atau
4. Ingat, kita tidak mem
DTD dengan eclipse
development.
5. Klik file>new>project
tempat project Anda akan dikerjakan
egikuti default workspace
uat program atau aplikasi, hanya memb
. Dalam hal ini kita akan membuat
. Anda dapat
at file xml dan
project plug-in
-
5/28/2018 Web Service
25/152
6. Pilih plug-in project
7. Beri nama project: xml
8. Klik next>finish
9. Perhatikan pada proje
est
t explorer, struktur projectnya.
-
5/28/2018 Web Service
26/152
10. Perlu d iperhatikan b
database system sep
tadi disimpan dalam
Kemudian untuk mem
definisinya atau DTD.
bermula dari olahan d
11. Pada project explorer,
12. Pilih New>other...
13. XML file dan klik next
hwa suatu perusahaan mengolah data
rti (oracle, sql server, mysql dlsb) kemudi
bentuk xml yang akhirnya dipertukark
stikan bahwa data yang dikirim adalah be
Maka dalam praktikum ini diasumsikan
tabase adalah file xml.
fold: src/xmltest. Klik kanan
dalam bentuk
an hasil olahan
n antar B2B.
nar dilampirkan
bahwa output
-
5/28/2018 Web Service
27/152
14. Beri nama: barang.xml dan klik finish
15. Berdasarkan struktur dokumen di atas, kita asumsikan dokumen xml nya sebagai
berikut: (ingat aturan format xml, nested, casesensitif dll)
Isikan file barang.xml sebagai berikut:
16. Jika Anda menggunakan plugin Rinzo xml editor, pada project explorer, klikkanan file barang.xml dan pilih Create XML Definition
M1112
pc5000
ladyrock10
union1001
M1122pc
1000
pbm103
mitra kencana
300
-
5/28/2018 Web Service
28/152
17. Pilih format DTD, beri nama logbarang.dtd
-
5/28/2018 Web Service
29/152
18. Perhatikan struktur log
19. Untuk menghubungkaexplorer, pada file bar
Catatan: xml editor ak
20. Pada outline>klik kana
21. Isikan root element: lo
barang.dtd tersebut
n definisi (DTD) dengan xml. Anda bisang.xml, klik kanan>open with>pilih xml edit
n muncul jika Anda menginstal plugin wtp
n>add DTD information
barang dan System ID: logbarang.dtd
menuju projector.
ada eclipse
-
5/28/2018 Web Service
30/152
22. Perhatikan header file
23. Untuk memeriksa valid
24. Jika valid muncul
25. Untuk debug jika ter
Markers
26. Jika Anda mengguna
tampilannya kurang le
klik kanan>valid
apat kesalahan, Anda dapat melihatny
an plugin wtp dalam membangun xml
ih seperti berikut:
UTF-8"?>
-
5/28/2018 Web Service
31/152
-
5/28/2018 Web Service
32/152
TUGAS:
Buatlah file xml dan DTD berdasarkan kebutuhan perusahaan yang bergerak di bidang:
Industri manufakturing
Industri jasa
Industri perhotelan
Pendidikan
Isi data pada masing-masing file xml minimal 5, libatkan juga penggunaan atribut,
minimal elemen 10.
-
5/28/2018 Web Service
33/152
BAB IV
TIK:
Mahasiswa dapat Memahami dasar-dasar layanan Schema
Pokok Bahasan:
XSD schema
Sub Pokok Bahasan:
Definisi
Fungsi dan keunggulan
XSD tipe Elemen
o Elemen Kosong
o Tipe kompleks
o Mixed Content
o Controlling Type Derivation
-
5/28/2018 Web Service
34/152
XML schema menjelaskan / mendefinisikan struktur dari dokumen xml. Schema dapat
menjelaskan batasan-batasan yang lebih kompleks pada elemen dan atribut dan
struktur definisi mengarah pada pendekatan berbasis objek
Kegunaannya, mendefinisikan:
elemen dan atribut yang akan muncul pada dokumen xml
urutan dan banyaknya elemen child
apakah nilai dari suatu elemen, kosong atau berisi
Tipe data untuk elemen dan atribut
Nilai default dan nilai yang tetap pada elemen dan atrribut
Beberapa keunggulan schema dari DTD:
mendukung tipe data
menggunakan sintaks xml
Lebih aman dalam hal komunikasi data
Elemen kompleks memiliki elemen-elemen atau atribut-atribut lainnya. Jenis complex
elements:
Elemen kosong
Elemen yang hanya memiliki elemen anak
Elemen berisi nilai teks
Elemen yang memiliki elemen anak dan berisi nilai teks
File XML Schema biasanya disimpan dengan ektensi *.xsd.
Namespace
Untuk penulisan namespace pada schema kita dapat menuliskan langsung pada
elemen yang akan kita beri namespace. Misalnya kita ingin menamai sebuah
elemen, maka kita dapat menuliskannya dengan :
-
5/28/2018 Web Service
35/152
Prefiks di atas adalah: mhs
Namespace: mahasiswa politeknik pos informatika
Struktur xml menjadi salah
Perhatikan prefiks coba.
Penulisan elemen kosong adalah dengan cara tidak mengisikan elemen kedalam
deklarasi. Misalnya pada contoh berikut kita katakan bahwa elemen heading adalah
kosong, maka format penulisan untuk XML Schema adalah seperti berikut :Xml:
Maka schema yang didapatkan adalah:
11111Budi
11111
Budi
ddd
11111
-
5/28/2018 Web Service
36/152
Perhatikan pada name=nama tidak didapati type.
Pada tipe ini dapat terlihat pendekatan berbasiskan objek:
Xml:
Maka xsd nya:
11111
Budi
Iwan
Wati
-
5/28/2018 Web Service
37/152
Dapat terlihat penggabungan antara atribut dan elemen
xml:
Xsd:
11111
Budi
Iwan
Wati
11122
Rani
Iwan
Wati
-
5/28/2018 Web Service
38/152
Atribut final dapat ditambahkan pada sebuah definisi tipe kompleks untuk
mengatur #all, extension, atau restriction. Apabila suatu tipe berasal dari tipe
-
5/28/2018 Web Service
39/152
lain yang memiliki atribut final, schema processor memverifikasi. Contoh
penulisan :
perhatikan xsd di atas pada atribut:aktif terdapat restriction pengisian hanya boleh string
ya atau tidak.
-
5/28/2018 Web Service
40/152
PRAKTIK
Studi kasus:
Anda memiliki perusahaan logistik jasa pengantar barang (PT X). Anda memiliki banyak
klien. Anda dan klien berkomunikasi melalui pertukaran dokumen xml.
Struktur dokumen sebagai berikut:
barang
o kode
o nama
o satuan
o harga
o asal
PT
kodeWIL
o tujuan
PT
kodeWIL
Buatlah contoh file xml nya dan schema xsd.
1. File xml dapat diintegrasikan dengan berbagai project, untuk keperluan
praktikum ini kita akan membuat project tidak utuh, hanya membuat file xml dan
xsd dengan tools dan plugin eclipse, kemudian memeriksa apakah dokumen
tersebut valid, well form.
2. Buat baru
3. Klik file>new>project >plug-in project
4. Beri nama: xmltest_1
5. Klik next>finish
6. Perhatikan pada project explorer, struktur projectnya.
7. Perlu diperhatikan bahwa suatu perusahaan mengolah data dalam bentuk
database system seperti (oracle, sql server, mysql dlsb) kemudian hasil olahan
-
5/28/2018 Web Service
41/152
tadi disimpan dalam bentuk xml yang akhirnya dipertukarkan antar B2B.
Kemudian untuk memastikan bahwa data yang dikirim adalah benar dilampirkan
definisinya atau xsd. Maka dalam praktikum ini diasumsikan bahwa output
bermula dari olahan database adalah file xml.
8. Pada project explorer, fold: src/xmltest_1. Klik kanan
9. Pilih New>other...
10. XML file dan klik next
11. Beri nama: barang.xml dan klik finish
12. Berdasarkan struktur dokumen di atas, kita asumsikan dokumen xml nya sebagai
berikut: (ingat aturan format xml, nested, casesensitif dll)
13. Isikan file barang.xml sebagai berikut:
-
5/28/2018 Web Service
42/152
14. Jika Anda menggunakan plugin Rinzo xml editor, pada project explorer, klik
kanan file barang.xml dan pilih Create XML Definition
M1112
pc
5000
ladyrock
10
union
1001
M1122
pc
1000
pbm
103
mitra kencana300
-
5/28/2018 Web Service
43/152
15. Beri nama barang.xsd,
16. Dapat dilihat design sc
klik finish
hema
-
5/28/2018 Web Service
44/152
17. Anda dapat memeriks
18. Klik pada elemen logb
Perhatikan pada jende
selanjutnya Anda dapa
melalui jendela propert
19. Klik pada (logbarangT
sesuai struktur yang terlihat pada xml
rang
la properties, Maximum Occurence: unbou
t memodifikasi banyaknya elemen yang bo
ies ini.
pe)
ded. Untuk
leh muncul
-
5/28/2018 Web Service
45/152
Dapat terlihat elemen pembentuk barang, sesuai pada struktur xml
20. Klik pada (barangType)
21. Sampai disini dapat dilihat bahwa struktur schema mengikuti pendekatan
berbasis objek.
22. Buatlah pattern
a. untuk kode tidak boleh kosong
b. Harga harus diatas 1000
23. Anda dapat memeriksa valid/tidaknya dokumen xml dengan cara seperti pada
bab sebelumnya
-
5/28/2018 Web Service
46/152
TUGAS:
Buatlah file xml dan xsd berdasarkan kebutuhan perusahaan yang bergerak di bidang:
Industri manufacturing
Industri jasa
Industri perhotelan
Pendidikan
Isi data pada masing-masing file xml minimal 5, libatkan juga penggunaan atribut,
patern (contoh: pola untuk email [email protected]) minimal elemen 10.
-
5/28/2018 Web Service
47/152
BAB V
TIK:
Mahasiswa dapat Memahami dasar-dasar SAX dan DOM
Pokok Bahasan:
SAX, DOM
Sub Pokok Bahasan:
Pendahuluan
SAX
DOM
-
5/28/2018 Web Service
48/152
Terdapat beberapa cara untuk membaca dan memanipulasi dokumen XML. Cara
yang umum adalah dengan metode
Simple Api for XML (SAX) dan
Document Object Model (DOM)
Bahasa pemrograman telah menyediakan kemampuan untuk ini.
SAX dikembangkan oleh W3C dan dirilis pada tahun 1998. Parser berbasis SAX
memanggil metode ketika suatu markup (misalnya tag awal, tag akhir, dll)
ditemukan. Tidak ada struktur pohon yang diciptakan. Data diteruskan ke aplikasi
dari dokumen XML secara berurut. Parser SAX biasanya digunakan untuk
membaca dokumen XML yang tidak akan diubah.
Hasil parsing SAX tidak disimpan dalam memori sehingga lebih ringan ketika
digunakan untuk membaca dokumen XML yang besar. Karena tidak disimpan
dalam memori maka SAX tidak memiliki kemampuan untuk mengolah data XML.
Cara SAX bekerja dengan berjalan secara sequential dari awal hingga akhir dan
memanggil fungsi event handler untuk setiap jenis elemen yang ditemui dalam file
XML.
Parser berbasis SAX tersedia untuk berbagai bahasa pemrograman, C++, Java,
dan Perl yang paling popular. SAX didasarkan pada model event driven
menggunakan call backs untuk menangani pengolahan. Berikut hal yang dapat
dilakukan program dengan metode SAX:
Mencari pada dokumen suatu elemen yang mengandung kata kunci
Mencetak format konten
Memodifikasi dokumen XML dengan membuat perubahan kecil, seperti
memperbaiki ejaan dan elemen penggantian nama
Membaca data untuk membangun struktur data yang kompleks
Tetapi program tidak dapat:
-
5/28/2018 Web Service
49/152
Re-order elemen dalam dokumen
Menyelesaikan cross-references antar elemen
Verifikasi ID-IDREF Link
Validasi dokumen XML
Berbeda dengan SAX, DOM membaca seluruh dokumen XML ke dalam memori
dan mempresentasikannya sebagai tree of nodes, sehingga dapat dilakukan
manipulasi terhadap data memori, mengakses nilai node pada lokasi dimanapun.
DOM direkomendasikan oleh W3C.
Contoh XML:
M1112
pc
5000
ladyrock
10
union
1001
M1122
pc
1000
pbm
103
mitra kencana300
-
5/28/2018 Web Service
50/152
XML DOM tree nodes untuk
Selanjutnya kita akan meng
javascript). Untuk tools IDE
notepad).
ML di atas:
lah dokumen XML dengan beberapa baha
nda dapat menggunakan eclipse dlsb (ti
a (contoh php,
ak disarankan
-
5/28/2018 Web Service
51/152
PRAKTIK
(Metode SAX)
1. Diketahui Anda memiliki XML:
2. Untuk penggunaan php pastikan server apache berjalan.
3. Buat pada direktori htdocs: folder domsax
4. Anda berada pada workspace domsax folder.
5. Buat file XML beri nama barang.xml
6. Isikan barang.xml dengan data pada langkah no 1.
7. Buat file php, beri nama: sax_baca.php
8. Isikan
1.
M1112
pc
5000
ladyrock
10
union
1001
M1122
pc
1000
pbm
103
mitra kencana300
-
5/28/2018 Web Service
52/152
3. // AI ML (A) 4. $;5.6. $ = ;7. ($, $, $) 8. $;
9. $ = ;10.11. " E: $";12.13. ( $ $ => $ ) 14. ", : $ $ ";15. 16.17. ($, $) 18. $;19. $ = ;20.21. "E E: $";
22. '';23.24. ($, $) 25. $;26. ( ( $, " 00B" ) != '') 27.28. " $";29. ($)30. '';31.32.33.$ = ();34.
35. ( $, "", "" );36.37. ( $, "" );38.39.$ = ".";40. ($ = ( $, "" )) 41.42. ( $ = ( $, 4096 ) ) 43.44. $ = ( $, $, (
$ ) );45. (! $) 46. $ = ( $ );
47. $ = ( $ );48. $ = ( $);
49.50. $ = " $:
$";
51. ( $ );52. 53. 54.
-
5/28/2018 Web Service
53/152
55.56. ( "C' ML ." );57.58. ( $ );59.
60.?>
9. Catatan kedua file tersebut dalam 1 folder yang sama.
10. Anda dapat melihat hasilnya pada browser.
11. Dengan metode SAX, jika Anda memiliki 1000 record bagaimana Anda
mengakses record ke -15 kemudian record ke -900 kemudian kembali lagi ke
record ke -2?
-
5/28/2018 Web Service
54/152
PRAKTIK
(Metode DOM)
1. Diketahui Anda memiliki XML:
2. Untuk penggunaan php pastikan server apache berjalan.
3. Anda berada pada workspace domsax folder.
4. Buat file XML beri nama barang.xml
5. Isikan barang.xml dengan data pada langkah no 1.
6. Buat file php, beri nama: dom_baca.php
7. Isikan:
1.
M1112
pc
5000
ladyrock
10
union
1001
M1122
pc
1000
pbm
103
mitra kencana300
-
5/28/2018 Web Service
55/152
5. $ = DMD ();6. $> ( '.' );7.8. $ = $>EBN ( "" );9.10. ( $ $ )
11.12. $ = $>A ( '' );13.14. $ = $>EBN ( "" );15. $ = $> ( 0 )>;16.17. $ = $>EBN ( "" );18. $ = $> ( 0 )>;19.20. $ = $>EBN ( "" );21. $ = $> ( 0 )>;22.23. "$ $ $ $". "";
24.25.
26.?>
8. Jalankan script tersbut pada browser.
-
5/28/2018 Web Service
56/152
PRAKTIK
(Dengan javascript)
1. Diketahui Anda memiliki XML:
2. Ingat javascript adalah client side sehingga bisa saja tidak membutuhkan server
untuk dieksekusi. Dalam praktikum ini Anda akan menjalankan script javascript
pada localhost.
3. Anda berada pada workspace domsax folder.
4. Buat file XML beri nama barang.xml
5. Isikan barang.xml dengan data pada langkah no 1.
6. Buat file html, beri nama: javascript_baca1.html
7. Isikan:
M1112
pc
5000
ladyrock
10
union
1001
M1122
pc
1000
pbm
103
mitra kencana300
-
5/28/2018 Web Service
57/152
1. 2. 3.4.5. 6. (.MLH) // IE7+, F, C,
, 7. = MLH();8. // IE6, IE59. = A("M.MLH");10. 11.12. .("GE", ".", );13. .();14. D = .ML;15.16. = D.EBN("").;17.18. ( = 0;
-
5/28/2018 Web Service
58/152
PRAKTIK
(Dengan javascript, modifikasi program sebelumnya untuk navigasi)
1. Masih bekerja pada folder domsax dan dokumen barang.xml
2. Buat file html beri nama: javascript_baca2.html
3. Isikan:
1. 2. 3. N 4. 5. (.MLH) // IE7+, F, C, ,
6. = MLH();7. // IE6, IE58. = A("M.MLH");
9. 10.11. .("GE", ".", );12. .();13. D = .ML;14.15. = D.EBN("").;16.17. = 0;18.19. () 20. = 1;21. ( = ) 30. = 1;31. (" ");32. 33. ();34.
35.36. (1) 37. .EBI("").HML = D38.
.EBN("")1.N0.;
39. .EBI("").HML = D40.
.EBN("")1.N0.;
41. .EBI("").HML = D
-
5/28/2018 Web Service
59/152
42. .EBN("")143. .AN("").;44. 45.46.47.
48.49.50.51.52.53. 54. 55. 56. ...57. 58. 59. 60. ...
61. 62. 63. 64. ...65. 66. 67. 68. 69. 70. 72. 74. 75. 76. 77.
78.
4. Jalankan program di atas.
-
5/28/2018 Web Service
60/152
PRAKTIK
(menulis dengan metode DOM pada php)
1. Masih bekerja pada folder domsax dan dokumen barang.xml
2. Buat file php beri nama: dom_tulis.php
3. Isikan:
1.
-
5/28/2018 Web Service
61/152
45.46. $>ML ();
47.?>
4. Jalankan program di atas.
-
5/28/2018 Web Service
62/152
PRAKTIK
(menulis dokumen XML pada php)
1. Masih bekerja pada folder domsax dan dokumen barang.xml
2. Buat file php beri nama: php_tulis.php
3. Isikan:
1. 18.19.20. 24. 25.26.27. 28. 29.
32.
4. Jalankan program di atas.
-
5/28/2018 Web Service
63/152
TUGAS:
Dari dokumen XML yang pernah Anda buat di materi sebelumnya lakukan proses
pembacaan dengan teknik yang telah dijelaskan pada materi ini.
Buatlah file xml dan xsd berdasarkan kebutuhan perusahaan yang bergerak di bidang:Industri manufacturing
Industri jasa
Industri perhotelanPendidikanIsi data pada masing-masing file xml minimal 5, libatkan juga penggunaan atribut, patern
(contoh: pola untuk email [email protected]) minimal elemen 10.
-
5/28/2018 Web Service
64/152
BAB VI
TIK:
Mahasiswa dapat Memahami dasar-dasar SOAP dan REST
Pokok Bahasan:
SOAP, REST
Sub Pokok Bahasan:
Pendahuluan
SOAP, WSDL
REST
-
5/28/2018 Web Service
65/152
Seperti telah diketahui pertu
cara, pada awalnya RPC, R
dibahas mengenai SOAP dan
Simple Object Access Prot
pertukaran pesan berbasis
menggunakan pesan XML.
SOAP dirancang sebagai pro
rekomendasi W3C pada tahu
processing model, me
extensibility model, me
SOAP underlying prot
protokol pengikat dasa
antara node-node SO
SOAP message constr
SOAP berada pada lapisan tr
aran data antar mesin dapat dilakukan d
I kemudian SOAP dan RESTful. Pada ma
RESTful.
col (SOAP) adalah spesifikasi protokol
ML. Komunikasi antara layanan web d
okol objek-akses pada tahun 1998 dan me
2003.
definisikan tentang untuk memproses pes
ndefinisikan tentang konsep fitur SOAP da
col binding, menggambarkan aturan untuk
r yang dapat digunakan untuk bertukar pes
P
uct, mendefinisikan struktur pesan SOAP
ansport OSI layer
ngan berbagai
eri hanya akan
standar untuk
n klien terjadi
njadi
n
modul SOAP
mendefinisikan
an SOAP
-
5/28/2018 Web Service
66/152
Struktur pesan SOAP
Root elemen dari suat
Terdiri dari optional he
Elemen fault(bersifat
diluar kewajaran
Dapat dilampirkan Atta
Contoh pesan SOAP:
pesan SOAP adalah elemen: Envelope
der dan harus terdapat isi/body pesan
ptional) dapat digunakan untuk mengga
chment pada MIME encoding untuk pertuk
="UTF-8"?>
ap.org/soap/encoding/"/2001/XMLSchema"rg/soap/envelope/"2001/XMLSchema-inst">
c. -->
barkan kondisi
ran data biner
-
5/28/2018 Web Service
67/152
Transmisi pesan SOAP melib
SOAP Sender, membu
SOAP Intermediaries,
pesan antara pengirim
logging, catching dll
SOAP Receiver, tujua
Dari gambar di atas terlihat b
Sender atau Client
Receiver atau Service
untuk berkomunikasi klien ha
Lokasi webservices Se
Fungsi yang tersedia,
komunikasi protokol
Format input output
Service provider akan mem
Jika file ini diberikan pada kli
disebut Web Service Descript
Web Services Description L
semua informasi yang dibut
Service. Deskripsi service me
Functional Description
atkan:
at dan mengirimkan pesan kepada SOAP r
suatu perantara SOAP bersifat optional undan penerima. Pada bagian ini dapat dil
pesan dari pengirim.
hwa arsitektur umum dari web service me
provider
us mengetahui beberapa informasi seperti:
rver
ignature parameter dan tipe return nya.
uat file XML standar yang mengkover ke
n maka klien dapat mengakses web servic
ion Language (WSDL).
nguage (WSDL) adalah format XML unt
uhkan untuk permintaan dan komunikas
miliki dua komponen utama:
eceiver
tuk menangkapkukan filtering,
iliki:
utuhan di atas.
es. File XML ini
k menjelaskan
i dengan Web
-
5/28/2018 Web Service
68/152
Mendefinisikan rincian tentang bagaimana Web Service dipanggil, di mana
service dipanggil. Berfokus pada rincian sintaks pesan dan bagaimana
mengkonfigurasi protokol jaringan untuk memberikan pesan.
Nonfunctional Description
Memberikan rincian sekunder untuk pesan (seperti sebagai security policy),
diperlukan instruksi tambahan pada header SOAP.
Karena WSDL merupakan XML maka baik user (manusia) maupun mesin dapat
membacanya dengan mudah. Dengan menggunakan file WSDL maka Anda akan
memahami:
Port / Endpoint URL dari web service
Input message format
Output message format
Security protocol yang harus diikuti
Protocol yang web service gunakan
Struktur dokumen WSDL
Sebuah Dokumen WSDL adalah kumpulan definisi dengan root elemen tunggal.
Layanan dapat didefinisikan dengan menggunakan elemen XML berikut:
Types, seperti tipe data
Message, seperti methods
PortType, seperti Interfaces
Binding, seperti cara pengikatan Encoding Scheme
Port, seperti URL
Service, seperti banyak URLs
-
5/28/2018 Web Service
69/152
PortType Element
Definisi:
Elemen portType menggamb
Sebuah Dokumen WS
Elemen portType beris
Konvensi penamaan n
PortType berisi satu at
input, output dan fault
rkan interface pada webservice
L dapat berisi nol atau banyak portType
i satu nama atribut.
meOfWebService PortType
au lebih elemen operasi, dengan nama atri
lemen
but dapat berisi
-
5/28/2018 Web Service
70/152
Contoh:
Message Element
Definisi:
Message adalah kumpulan bagian argumen.
Sebuah dokumen WSDL dapat berisi nol atau banyak elemen pesan
Setiap elemen pesan dapat digunakan sebagai input, output atau fault message
dalam suatu operasi.
Jenis atribut bagian dapat berupa tipe data standar dari XSD Schema atauditetapkan oleh pengguna.
Contoh:
-
5/28/2018 Web Service
71/152
Types Element
Tipe custom user data dapat didefinisikan dengan cara yang abstrak.
Tipe default di WSDL adalah XML Schema (XSD)
Sebuah dokumen WSDL dapat memiliki paling banyak satu elemen jenis.
Unsur jenis dapat berisi simpleType atau complexType.
Pada elemen-elemen tingkat terendah, elemen didefinisikan dengan nama dan
jenis atribut.
Contoh:
Binding Element
Definisi:
Binding elemen menentukan pada service requester tentang bagaimana membuat
pesan untuk protokol tertentu.
Setiap portType dapat memiliki satu atau lebih elemen yang terkait.
Untuk portType yang telah ditentukan, elemen yang mengikat harus menentukan pesan
dan pasangan transportnya. (SOAP / HTTP, SOAP / SMTP, dll).
-
5/28/2018 Web Service
72/152
Contoh:
Port Element
Port element menentukan alamat network dari web service
Terdapat sebuah protokol, alamat khusus pada elemen terkait
Port harus bernama dan unik pada dokumen
Contoh:
Service Element
Elemen service adalah kumpulan port elemen diidentifikasikan dengan satu nama
service.
-
5/28/2018 Web Service
73/152
Sebuah Dokumen WSDL diperbolehkan mengandung beberapa elemen service,
tetapi secara biasanya terdapat satu.
Setiap service harus diberi nama yang unik.
Konvensi penamaan adalah GeneralInfoService
Contoh:
Demikian pembahasan mengenai SOAP WSDL, yang harus Anda perhatikan adalah
kesesuaian method yang dipanggil baik dari signature parameter, return type dan
portnya. Sebagai alternatif webservice, Anda diperkenalkan dengan Representational
State Transfer (REST).
Representational State Transfer (REST) adalah arsitektur yang mengambil abstrak
elemen arsitektur dalam sistem hypermedia terdistribusi. REST mengabaikan detail
pelaksanaan komponen dan sintaks protokol dan fokus pada peran komponen, interaksi
antar komponen dan interpretasi data. REST muncul sebagai model API web yang
dominan.
Istilah representational state transfer diperkenalkan dan didefinisikan pada tahun 2000
oleh Roy Fielding dalam disertasi doktoralnya di UC Irvine.
-
5/28/2018 Web Service
74/152
Dalam istilah web service,
sehingga web service dipan
Universal Resource Identifier
tersebut harus melalui me
bersangkutan.
REST terbagi menjaadi dua k
Pada arsitektur REST, klien
bukanlah protokol secara spe
HTTP methods :
REST web service menggun
lain:
GET, mendefinisikan a
PUT, menciptakan res
DELETE, menghapus
POST, mengupdate at
REST memungkinkan resou
JSON dll, dan komunikasi me
Fitur REST web service
Resource identification
Resouce diidentifikasi
mengaksesnya melaui
REST adalah suatu arsitektur stateles
dang sebagai resource dan dapat diide
(URI). Klien web service yang akan meng
ode remote yang telah ditentukan oleh
omponen yaitu server REST dan klien RES
an server berkomunikasi dengan interface
sifik tapi biasanya komunikasi REST melal
kan protokol HTTP dalam operasinya. Me
kses baca terhadapa source server
urce baru
esource
u menciptakan resource baru
ce memberikan representasi yang berbed
nggunakan HTTP.
through URI
an lewat URI (biasanya berupa link inter
address bar pada browser atau interface a
s client-server,
tifikasi melalui
unakan source
resource yang
T.
standar. REST
i HTTP.
thodnya antara
a seperti XML,
et, Anda dapat
likasi lainnya)
-
5/28/2018 Web Service
75/152
Uniform interface
Untuk mengakses resource, method standar dapat digunakan, antara lain: PUT,
GET, POST, dan DELETE.
Client-Server
Dapat membantu meningkatkan portabilitas pada klien dan skalabilitas pada
server
Stateless
Setiap permintaan dari klien ke server harus berisi tentang semua informasi yang
diperlukan sehingga tidak dapat mengambil konteks lain di server
Cache
untuk meningkatkan respon efisiensi jaringan dapat dibedakan untuk disimpan di
cache atau tidak disimpan di cache.
Named resources
Resource yang diakses melalui penamaan URL
Interconnected resource representations
Representasi dari resource terhubung menggunakan URL
Layered components
Perantara, seperti server proxy, cache server, gateway, dll, dapat disisipkan di
antara klien dan source untuk mendukung kinerja, keamanan, dll
Self-descriptive messages
Resource dipisahkan dari representasi sehingga isinya dapat diakses dalam
berbagai format, seperti HTML, XML, teks biasa, PDF, JPEG, JSON dll.
-
5/28/2018 Web Service
76/152
TUGAS:
Buat artikel kelompok mengenai SOAP WSDL dan REST RESTful meliputi:
sejarah
perbedaan
industri dan teknologi yang dipilih SOAP/REST
tren ke depan berkaitan dengan mobile dan security
-
5/28/2018 Web Service
77/152
BAB VII
TIK:
Mahasiswa dapat Memahami dasar-dasar keamanan pada web service
Pokok Bahasan:
Keamanan
Sub Pokok Bahasan:
Aspek keamanan dasar
Solusi
-
5/28/2018 Web Service
78/152
Kerahasiaan
Melindungi informasi dari pengungkapan yang tidak sah
Integritas
Pastikan informasi belum diubah oleh pihak yang tidak berwenang
Otentikasi
Pastikan bahwa identitas dipetakan dengan benar
Otorisasi
Mencegah penggunaan yang tidak sah pada resources
Non-repudiation
Pastikan bahwa pihak terkait tidak dapat menyangkal tindakan mereka
sebelumnya
Ketersediaan
Pastikan bahwa informasi / layanan yang tersedia bila diperlukan
Enkripsi
Dilakukan untuk menjamin kerahasaiaan informasi
Informasi ditransformasi sehingga pihak yang tidak berhak tidak memahaminya
Hal ini dapat dilakukan dengan beberapa algoritma enkripsi, misalnya:
AES (Advanced Encryption Standard),
DES (Data Encryption Standard)
Algoritma ini menggunakan parameter disebut key/kunci
Sering kali kunci yang sama digunakan untuk proses enkripsi dan dekripsi.
Public key cryptography dapat digunakan untuk membangun kunci rahasia
bersama antar pihak yang berkomunikasi. Kunci harus sulit untuk ditebak, oleh
karena itu kunci harus memiliki bits yang panjang
-
5/28/2018 Web Service
79/152
Digital Signature menjamin i
pula cara yang lebih ringan
misalnya dengan Message A
Hal ini dihasilkan mengguSignature Algorithm), RSA (R
Algoritma menggunakan sep
Kunci privat hanya dig
Kunci publik diketahui
signature
Terdapat hubungan m
tegritas, otentifikasi pengirim, non repudi
dan sederhana untuk menjamin integritas
thentication Codes.
akan algoritma digital signature sepert ivest - Shamir - Adleman).
sang kunci (kunci publik dan kunci privat)
nakan oleh pemilik dan digunakan untuk si
oleh semua orang dan digunakan untu
tematis antara kedua kunci
ation. Terdapat
dan otentikasi
i DSA (Digital
gn
memverifikasi
-
5/28/2018 Web Service
80/152
Untuk memverifikasi suatu
dan untuk memastikan bahw
Cara untuk mengamankan di
Suatu sertifikat menyatakan
kunci publik. Kunci dan identi
umum adalah X.509.
Suatu sertifikat dikeluarkan ol
Infrastruktur yang dibutuhkan
sertifikat disebut PKI (Public
Jika penerima mempercayai
tersebut adalah benar.
ignature, penerima membutuhkan kunci
kunci tersebut adalah milik pengirim.
tribusi kunci publik ini adalah dengan Digit
hubungan antara subjek (user/orang at
tas dari subjek dinyatakan dalam sertifikat.
eh suatu certificate authority (CA).
untuk membuat, mendistribusikan, mengel
ey Infrastructure).
CA sebagai penerbit sertifikat maka dapa
ublik pengirim
l certificates.
u entitas) dan
. Sertifikat yang
la, mencabut
t diyakini kunci
-
5/28/2018 Web Service
81/152
-
5/28/2018 Web Service
82/152
-
5/28/2018 Web Service
83/152
-
5/28/2018 Web Service
84/152
Kaitan dengan logistik
Dengan pertumbuhan B2B
dinamis diantaranya (dapat
yang tepat untuk menjaw
diperhatikan dan merupakan
ang semakin banyak dan cepat dibutuh
berupa lintas platform dlsb), web service
bnya. Keamanan dalam pertukaran i
aktor vital pada B2B.
an komunikasi
adalah sarana
formasi harus
-
5/28/2018 Web Service
85/152
TUGAS:
Kelompok: Dari bab sebelumnya cobalah Anda mengekripsi dan dekripsi file XML yang
menjadi pertukaran informasi, algoritma yang dipakai mengacu pada standar di atas.
-
5/28/2018 Web Service
86/152
BAB VIII
TIK:
Mahasiswa dapat Memahami pemrograman web service
Pokok Bahasan:
Web service pada asp.net dan server iis
Sub Pokok Bahasan:
IIS, Asp.NET, Web service
Akses oleh klien
-
5/28/2018 Web Service
87/152
Pada bab ini akan dibahas
Skenario yang digunakan ad
1. Anda memiliki aplikasi
server iis
2. Anda memiliki 2 klien y
3. Anda menyiapkan We
4. Klien Anda mengambil
asp.net
5. Pada contoh permint
bilangan. Perlu diingat
6. Ingat web service tida
Untuk menjawab kebutuhan
Penyedia layanan harus mem
.NET, Web service
IIS berjalan pada O.S window
Jika belum terinstall, silahkan
Control panel>Programs>Pr
Catatan: Pada bab ini port II
80 dipersiapkan untuk apach
Cara merubah port:
Pada IIS manager, stop terle
implementasi dari web service menggu
lah:
web yang dibangun dengan asp.net da
ang membutuhkan data tertentu.
Service Definition Language (WSDL) untu
data melalui aplikasi web php dan lainnya
an klien sederhana, meminta hasil perk
dalam keadaan nyata klien meminta data d
selalu perlu GUI (bahkan mungkin diabaik
i atas,
iliki webserver dalam contoh bab ini IIS.
s. Anda dapat mencoba pada komputer lo
install terlebih dahulu.
grams and Features. Pilih Internet Informa
akan diganti dari 80 menjadi 81 pada loc
(dengan php).
ih dahulu servicenya
nakan asp.net.
berjalan pada
k melayaninya.
melalui aplikasi
lian dua buah
ari database.
n).
al.
ion Services.
alhost dan port
-
5/28/2018 Web Service
88/152
Pada jendela Connections, si
Pada jendela Edit site>Bindin
es>Default Web Site
gs
-
5/28/2018 Web Service
89/152
Edit site Bindings, ganti port
Jalankan kembali (start) servi
Test konfigurasi tersebut pad
Server IIS telah siap, sekar
dengan asp.net menggunaka
1. File>New Project
0 menjadi 81 klik ok.
ce, Actions>Manage Server>Start
browser kesayangan Anda. Ketikan local
ang Anda akan membuat aplikasi web
tools IDE visual studio
ost:81
an webservice
-
5/28/2018 Web Service
90/152
2. Pada bab ini akan me
3. Installed templates>
framework 4
4. Beri nama: testws
5. Ketika Solution proje
halaman muka untuk
web service.
6. Pada jendela Solution
7. Pada installed templat
8. Beri nama: ws2hitung
9. Perhatikan secara defwebmethod Helloworld
10. Tambahkan method b
1. ..2. ..3. .C4.
ggunakan bahasa VB.net
isual Basic>ASP.NET Web Applicati
t dibangun, visual studio akan membu
nda, untuk sementara diabaikan, fokus p
Explorer, klik kanan, Add>New Item
s, visual basic>Web, pilih Web Service
ult (pada ws2hitung.asmx), Anda telah m
ru pada class ws2hitung sehingga:
.
n dan .NET
atkan template
da pembuatan
miliki template
-
5/28/2018 Web Service
91/152
5. '
6. '
) A
an fungsi kali.
l.
er (contoh hasil
espace harus
rm1 dan prm2
nt server
-
5/28/2018 Web Service
92/152
22. Setelah itu Anda akan
23. Pada jendela Solution
24. Pilih Publish method:
(contoh pada insta
C:\xampp\htdocs)
25. Pada jendela output:
========== B: 1 ========== : 1 ,
26. Catatan: problem yang
a. Instalasi Visual
mempublish aplikasi ini pada localhost port
Explorer, pada project Anda, klik kanan, Pu
ile System, Target Location: C:\inetpub\ww
lasi xampp apache, secara fisik t
, 0 , 0 ==========0 , 0 ==========
biasa terjadi:
tudio baru kemudian IIS akan timbul mas
81
blish
wroot\ws1
rdapat pada:
lah,
-
5/28/2018 Web Service
93/152
Solusi: Matikan dahulu service IIS. Anda harus menggunakan level
Administator:
Buka command prompt (cmd) akses sebagai administrator (UAC level:
Administrator)
Carilah folder framework .NET Anda
Contoh: C:\Windows\Microsoft.NET\Framework\v4.0.30319
Cmd
C:\>cd\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -i
b. Beri hak (permission) pada web.config.
Masih pada folder .NET framework, masuk folder Config
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
Bukalah file machine.config (dengan level UAC: Administrator)
Carilah elemen
Default:
Ubah menjadi
c. Beri hak akses pada folder:
C:\inetpub
C:\Windows\Temp
d. Restart IIS
27. Buka kembali IIS manager, pada jendela Connections, Sites>Default Web
Site>ws1. Klik kanan. Pilih Convert to Application, OK.
-
5/28/2018 Web Service
94/152
28. Save dan close project
29. Jalankan pada browse
30. Cek ketersediaan web
http://localhost:81/ws1
31. Klik Service Descriptio
32. Perhatikan url dan out
http://localhost:81/ws1
ap="http://schemas.xmlsoap.org/wsdl/so
.com/wsdl/mime/textMatching/"
as.xmlsoap.org/soap/encoding/"
.xmlsoap.org/wsdl/mime/"
org/" xmlns:s="http://www.w3.org/2001/
as.xmlsoap.org/wsdl/soap12/"
.xmlsoap.org/wsdl/http/"
puri.org/"
.xmlsoap.org/wsdl/">
efault="qualified"
puri.org/">
loWorld">
loWorldResponse">
Occurs="0" maxOccurs="1" name="HelloWo
i">
enjadi:
p/"
MLSchema"
ldResult"
-
5/28/2018 Web Service
95/152
-
5/28/2018 Web Service
96/152
33. Pekerjaan Anda membuat file wsdl telah dicover oleh .NET !
34. Pada file wsdl di atas perhatikan elemen-elemennya
soap: address location,
soapAction
Namespace
35. Untuk bab-bab selanjutnya file wsdl ini yang akan digunakan contoh
36. Server Anda telah siap melayani klien.
-
5/28/2018 Web Service
97/152
Skenario pada klien pertam
dengan asp.net (aplikasi seb
1. Buka IDE Visual Studi2. File>New Project
3. Framework: .NET fram
4. ASP. NET Web Applic
5. Beri nama: Klien1
6. Pada Solution Explore
7. Pada address, ketikan
Contoh: http://localhos
8. Klik Ok
a: komunikasi (service dari server: And
narnya bisa saja beragam, desktop, mobil
ework 4
tion
, Klien1 klik kanan >Add Service reference
alamat service server Anda:
:81/ws1/ws2hitung.asmx
) melalui web
dll).
-
5/28/2018 Web Service
98/152
9. Untuk keperluan test,
10. Pada jendela solution
11. Anda sekarang berada
12. Tambahkan button
13. Double klik button
14. Tambahkan kode pad1. D A2. B(.
15. Klik Start debugging (F
16. Perhatikan pada brow
lien hanya akan mencoba service kali
xplorer, pilih default.aspx
pada design UI.
sub Button1_Click1.2C
(2, 4).)
5)
er adress terutama port nya
-
5/28/2018 Web Service
99/152
17. Pada halaman default klik Button
18. Perhatikan popup yang muncul.
19. Catatan dalam kenyataan, service yang diminta klien bisa saja data dalam
jumlah besar. Perlu diingat, data yang dipertukarkan dalam bentul XML, namun
Anda tidak melihatnya, semua sudah dicover oleh .NET framework untuk
masalah parsing data dlsb.
-
5/28/2018 Web Service
100/152
Skenario pada klien ke dua:
php dan apache webserver
dll).
1. Jika Anda mengguna
apache untuk menjala
2. Dalam contoh ini per
dengan ip nama yang
berbeda.
3. Buatlah folder pada ht
Contoh:C:\xampp\htd
4. Buatlah file php beri n
5. Iskan testws1.php
1. : 2.
lui web dengan
esktop, mobile
lankan service
angkan IIS 81
sedangkan ip
-
5/28/2018 Web Service
101/152
14. 15. 16. 17. 18. 19.
20. 21. 22. 23.
24.
6. Jalankan pada browser: http://localhost/latihan/ws1/testws1.php
7. Output adalah file XML
8. Alternatif yang lain adalah dengan menggunakan library php untuk memparsing
nilai return (XML) dari server. Dalam hal ini class yang digunakan adalah
SoapClient9. Buat file php beri nama: testws2.php
10. Isikan
1.
11. Jalankan pada browser: http://localhost/latihan/ws1/testws2.php
12. Nilai input berupa array.
-
5/28/2018 Web Service
102/152
Kaitan dengan logistik
Dengan pertumbuhan B2B yang semakin banyak dan cepat dibutuhkan komunikasi
dinamis diantaranya (dapat berupa lintas platform dlsb), web service adalah sarana
yang tepat untuk menjawabnya.
Dapat Anda perhatikan bahwa sistem yang berbeda dapat dipertukarkan data, nilai
yang diterima bebentuk XML sudah cukup terbaca oleh manusia. Kemudian XML
tersebuat dapat Anda parsing sesuai kebutuhan bisnis Anda.
-
5/28/2018 Web Service
103/152
TUGAS:
Role play
Buat kelompok maks 4orang/kelompok, masing-masing kelompok membuat aplikasi
web server yang menyediakan layanan untuk klien.
Contoh: klien meminta list barang baru merek adidas. Klien tidak boleh memiliki akses
terhadap database server, hanya dengan web service.
Spesifikasi pada server: asp.net, iis, sqlserver
Spesifikasi pada klien:php, apache
Install IDE eclipse JEE untuk keperluan bab berikutnya.
-
5/28/2018 Web Service
104/152
BAB IX
TIK:
Mahasiswa dapat Memahami pemrograman web service
Pokok Bahasan:
Web service pada php dan server apache
Sub Pokok Bahasan:
Apache, php 5, Web service
Akses oleh klien
-
5/28/2018 Web Service
105/152
Pada bab ini akan dibahas implementasi dari web service menggunakan php. Skenario
yang digunakan adalah:
1. Anda memiliki aplikasi web yang dibangun dengan php dan berjalan pada server
apache
2. Anda memiliki klien yang membutuhkan data tertentu.
3. Anda menyiapkan Web Service Definition Language (WSDL) untuk melayaninya.
4. Klien Anda mengambil data melalui aplikasi web php
5. Pada contoh permintaan klien sederhana, meminta hasil perkalian dua buah
bilangan. Perlu diingat dalam keadaan nyata klien meminta data dari database.
6. Ingat web service tidak selalu perlu GUI (bahkan mungkin diabaikan).
Untuk menjawab kebutuhan di atas
1. Buatlah folder latihan\ws1 pada directori htdocs
2. Ingat pada bab-bab sebelumnya SOAP dilakukan dengan mengacu pada file
wsdl.
3. Anda perlu membuat file wsdl sebagai jembatan service ini
4. Sebagai contoh, dapat dipergunakan kembali file wsdl hasil generate .NET5. Buat file wsdl beri nama: hitung.wsdl (isinya mengkopi dari wsdl sebelumnya)
1. 2.
3. 4. 5. 6. 7. 8. 9. 10.
-
5/28/2018 Web Service
106/152
11.
12. 13. 14. 15.
16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
27.
28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
54. 55. 56. 57. 58. 59. 60. 61. 62.
-
5/28/2018 Web Service
107/152
63. 64. 65. 66. 67. 68.
69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.
81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92.
93. 94. 95. 96. 97. 98. 99. 100. 101.
102. 103.
104.
6. Perhatikan elemen soap:address location, berisi alamat service dapat
dipergunakan (http://localhost/latihan/ws1/server.php). Di sini script php yang
akan menangani kebutuhan tersebut adalah server.php
7. Ubah isi elemen tersebut, sesuaikan dengan alamat service Anda
8. Berdasarkan wsdl tersebut, method yang dimiliki adalah:
-
5/28/2018 Web Service
108/152
HelloWorld
kali
9. Buatlah file php beri nama: server.php
10. Isikan
1.
11. Dapat dilihat di atas, kelas yang digunakan adalah kelas SoapServer (terdapatpada php 5 dan ke atas)
12. Jalankan di browser: http://localhost/latihan/ws1/server.php
-
5/28/2018 Web Service
109/152
Sekarang klien akan menggunakan webservice Anda.
Catatan: ini hanya contoh. Pada kondisi nyata: ip dan setup klien-server berbeda.
Pada contoh ini
1. buat file php beri nama: client.php (masih pada directori latihan\ws1 (CONTOH))
2. pada client.php isikan
1.
3. Jalankan pada browser: http://localhost/latihan/ws1/client.php
4. Dapat diperhatikan klien menggunakan kelas SoapClient yang bermaksud untuk
menggunakan wsdl dan memparsing XML output menjadi string pada contoh di
atas.
-
5/28/2018 Web Service
110/152
TUGAS:
Role play:
Tugas kelompok: dari tugas sebelumnya lakukan pemanfaatan webservice ini
lintas kelompok. Setup tiap komputer untuk saling terhubung. Tentukan ip ip
terkait untuk presentasi.
Tugas perorangan: buat 1 file wsdl dengan eclipse dan wtp plugin (pada IDE eclipse
JEE)
-
5/28/2018 Web Service
111/152
BAB X
TIK:
Mahasiswa dapat Memahami pemrograman web service
Pokok Bahasan:
Web service pada Java dan server Apache Tomcat
Sub Pokok Bahasan:
Apache Tomcat, Java, Web service
Akses oleh klien
-
5/28/2018 Web Service
112/152
Pada bab ini akan dibahas implementasi dari web service menggunakan Java. Skenario
yang digunakan adalah:
1. Anda memiliki aplikasi web yang dibangun dengan Java dan berjalan pada
server Apache Tomcat
2. Anda memiliki klien yang membutuhkan data tertentu.
3. Anda menyiapkan Web Service Definition Language (WSDL) untuk melayaninya.
4. Klien Anda mengambil data melalui aplikasi web php
5. Pada contoh permintaan klien sederhana, meminta hasil perkalian dua buah
bilangan. Perlu diingat dalam keadaan nyata klien meminta data dari database.
6. Ingat web service tidak selalu perlu GUI (bahkan mungkin diabaikan).
7. Klien Anda mengunakan php dan Java
Untuk menjawab kebutuhan di atas
Untuk membangun aplikasi yang baik dan berskala dibutuhkan IDE yang mendukung.
Pada bab ini IDE yang digunakan adalah Eclipse Java EE. Seperti halnya Visual Studio,
Eclipse juga dipersenjatai dengan plugin-plugin. Hal tersebut dapat memangkas waktu
development project berskala.
Pada bab ini dengan menggunakan wizard pada Eclipse, akan dibangun server dan
klien untuk test webservice.
1. Jalankan IDE Eclipse JEE.
-
5/28/2018 Web Service
113/152
2. Tentukan directory tem
3. File>New>Dynamic W
pat project Anda, default adalah workspac
b Project
, OK
-
5/28/2018 Web Service
114/152
4. Project Name: JavaW
Target Runtime: Apac
Dynamic web module
Next>Next>Finish
e Tomcat v7.0
ersion: 2.5
-
5/28/2018 Web Service
115/152
5. Perhatikan jendela Pro
6. Pada Java Resources-
ject Explorer
>src tambahkan package
-
5/28/2018 Web Service
116/152
7. Beri nama package, al
Contoh:com.kxm.ws
Finish
8. Selanjutnya Anda me
yang nantinya dikonsu
9. Pada package tadi, kli
mat blog Anda
buat kelas untuk dihubungkan dengan f
si oleh klien.
kanan, New>class
ile XML WSDL
-
5/28/2018 Web Service
117/152
10. Beri nama class: Coba
11. Isikan
1. ..;2.3. C4. 5.6. "7. 8.9.10. 11. 12.
13.
12. Jika Anda perhatikan, l
ketika menggunakan V
13. Langkah selanjutnya
wizard)
14. Pada jendela Project
New>Other>Web Serv
Service, klik finish
()
OK";
1, 2)
1 * 2;
angkah yang dilalui hampir sama dengan b
isual Studio.
dalah mengenerate webservice, file wsdl
Explorer, Project Anda, Java Resourc
ices>Web service
ab sebelumnya
(masih melalui
es klik kanan.
-
5/28/2018 Web Service
118/152
15. Web service type: Bott
ada.
16. Pada service impleme
17. Configuration
Server runtime: Tomca
Web service runtime:
Service project: Java
18. Pada server, arahkan
19. Pada client, arahkan sl
20. Publish the web servic
om up, artinya Anda mengenerate file wsdl
tation: com.kxm.ws.CobaService (packag
t v7.0 server
pache Axis
S
lider sehingga Test service
ider sehingga Test client
dari class yang
.class)
-
5/28/2018 Web Service
119/152
-
5/28/2018 Web Service
120/152
21. Klik next
22. Pilih semua method: c
23. Next
24. Pada server startup, kl
25. Next
26. Test Web Service,
ba dan kali dan wsdl file: CobaService.ws
ik start server
l
-
5/28/2018 Web Service
121/152
27. Perhatikan browser de
url:
http://127.0.0.1:9704/w
=0
ault Anda
se/wsexplorer/wsexplorer.jsp?org.eclipse. st.ws.explorer
-
5/28/2018 Web Service
122/152
Selanjutnya pada IDE
project klien (secara
Anda).
Eclipse, dialog Web Service, klik Next unt
tomatis akan membuatkan project Java
k mengenerate
SClient untuk
-
5/28/2018 Web Service
123/152
-
5/28/2018 Web Service
124/152
Telah dijelaskan di atas, IDE
klien.
Berikut contoh kode hasil gen
TestClient.jsp
""MAGINIDH="1"MAGINHEIGH="11">
" MAGINIDH="1"MAGINHEIGH="1"1">
project untuk
"
-
5/28/2018 Web Service
125/152
B JP = JP.("?");
..E (E.ME(
O O = EJP.(O.
O.())).("&")%>
rang lebih klien
menggunakan
at wsdl?
t pada struktur
ervice.wsdl
-
5/28/2018 Web Service
126/152
Atau melihat Isi file CobaService.wsdl
-
5/28/2018 Web Service
127/152
-
5/28/2018 Web Service
128/152
Jadi wsdl dapat diakses pada:
http://localhost:8081/JavaWS/services/CobaService?wsdl
-
5/28/2018 Web Service
129/152
Sehingga kode untuk php kurang lebih:
1. Buat file php pada direktori latihan/ws1
2. Beri nama: javatestws.php
3. Isikan kode:1.
4. Jalankan pada browser: http://localhost/latihan/ws1/javatestws.php
5. Tariklah kesimpulan.
-
5/28/2018 Web Service
130/152
TUGAS:
Kelompok: Buat makalah mengenai web service pada Java, meliputi:
Sejarah
Arsitektur
Perkembangan, pengguna
Keamanan
(minimal 12 halaman)
-
5/28/2018 Web Service
131/152
BAB XI
TIK:
Mahasiswa dapat Memahami penggunaan REST, JSON sebagai web service
Pokok Bahasan:
REST, JSON
Sub Pokok Bahasan:
Sekilas REST
JSON
Implementasi (php-php)
-
5/28/2018 Web Service
132/152
REST merupakan style arsitektur perangkat lunak. Seperti dijelaskan dalam disertasi
oleh Roy Fielding, REST adalah "architectural style" yang pada dasarnya
memanfaatkan teknologi yang sudah ada dan protokol web.
Perlu Anda ingat web service merupakan SOA Middleware Interoperability Standards,
sedangkan REST merupakan Architectural style for the Web.
Representasi format yang umum dipakai REST adalah JavaScript Object Notation
(JSON) . Pada REST tidak ada WSDL.
Contoh:
JSON{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
XML:
JavaScript Object Notation (JSON) adalah format untuk pertukaran data yang ringan.
Mudah dimengerti oleh manusia dan ringan bagi mesin untuk proses parse dan
generate. Hal ini didasarkan pada subset dari JavaScript Programming Language,
Standar ECMA-262 Edisi 3 - Desember 1999. JSON adalah format teks yang
independen tetapi menggunakan konvensi yang akrab bagi programmer dari varian
-
5/28/2018 Web Service
133/152
bahasa C, termasuk C, C + +, C #, Java, JavaScript, Perl, Python,dll. Hal ini
mengakibatkan JSON sebagai bahasa data-interchange yang ideal.
JSON dibangun di atas dua struktur:
Sebuah koleksi pasangan nama / nilai. Dalam berbagai bahasa dikenal sebagai
suatu object, record, struct, dictionary, hash table, keyed list, atau associative
array.
Daftar ordered nilai, dalam banyak bahasa dikenal dengan istilah array, vector,
list, atau sequence.
Informasi terbaru dan lebih lengkap dapat Anda lihat pada http://www.json.org
Untuk memahami contoh penggunaan REST dan JSON diketahui:
Anda memiliki perusahaan manufaktur yang aktif berproduksi, rekanan Anda (klien)
ingin mengetahui jumlah barang berdasarkan list kode barang. Rancanglah web servicemenggunakan REST JSON.
Sebagai contoh, kedua pihak menggunakan teknologi yang sama (tapi berbeda
framework dan ISP), server side programming menggunakan php.
Hal pertama yang harus dilakukan adalah menyediakan pelayanan (server).
1. Hidupkan server apache
2. Masih seperti pada bab sebelumnya, workspace direktori adalah:C:\xampp\htdocs\latihan\ws1
3. Buat file php, beri nama: testjsonserver.php
4. Isikan
1.
-
5/28/2018 Web Service
134/152
3. $ = ( ( "://" ) );4.5. $B = $>>B;6. $ = $>>ID;7.8. // /
9. // 10.11. ($B) 12. 'G1111' :13. $ = 10;14. ;15. 'G1122' :16. $ = 2220;17. ;18. 'G007' :19. $ = 1;20. ;21. :
22. $ = 0;23. ;24.25.26. $;
27.?>
5. Terlihat dari contoh di atas kode barang beserta jumlahnya (hardcoded).
6. File testjsonserver.php inilah yang akan melayani klien, yang perlu dikirimkan
oleh klien adalah 2 parameter.
Berikutnya adalah membuat program disisi klien. Ingat klien tidak memiliki aksesterhadap database.
1. Untuk contoh, lokasi fisik klien dan server sama, C:\xampp\htdocs\latihan\ws1
2. Buat file php, beri nama: Lib_ws.php
3. Isikan:
1.
-
5/28/2018 Web Service
135/152
14. $ = (15. '' => $16. )17. ;18. $ = (19. 'C: /'
20. );21.22. // 23. $ = ();24.25. // , , 26. ( $, C, $ );27.28. ( $, C, );29. ( $, CHHEADE, $ );30. ( $, CEAFE, );31.32. // D C
33. ( $, CEIFEE, );34.35. ( $, CFIED, ( $ ) );36.37. // E 38. $ = ( $ );39. ($ === ) 40. ( 'C : ' . ( $ ) );41. 42.43. // C 44. ( $ );45.
46. $;47. 48.
49.?>
4. Pada contoh di atas, perhatikan penggunaan curl.
5. Kemudian buat file php, beri nama: testjsonklien.php
6. Isikan:
1.
7. Jalankan testjsonklien pada browser:
http://localhost/latihan/ws1/testjsonklien.php
-
5/28/2018 Web Service
136/152
8. Cobalah untuk mengubah kode barang pada testjsonklien, jalankan untuk
mengetahui respon server.
Kaitan dengan logistik
Dengan pertumbuhan B2B yang semakin banyak dan cepat dibutuhkan komunikasi
dinamis diantaranya (dapat berupa lintas platform dlsb), web service adalah sarana
yang tepat untuk menjawabnya. Informasi bisa saja diakses melalui mobile, yang perlu
diperhatikan adalah penggunaan sumber daya.
Ukuran file JSON dan gaya REST lebih ringan dibandingkan dengan XML dan SOAP,
hal ini berdampak pada kegiatan parse dan generate yang lebih ringan bagi mesin
sehingga output dapat dihadirkan dengan cepat dan konsumsi sumber daya lebih
sedikit.
-
5/28/2018 Web Service
137/152
TUGAS:
Kelompok.
Pada bab sebelumnya Anda berkomunikasi dengan wsdl, kembangkan kembali.
Sehingga data yang ditarik dari database berbentuk JSON.
-
5/28/2018 Web Service
138/152
BAB XII
TIK:
Mahasiswa dapat Memahami penggunaan REST, JSON sebagai web service
Pokok Bahasan:
REST, JSON
Sub Pokok Bahasan:
Implementasi REST,JSON (php-Android)
-
5/28/2018 Web Service
139/152
Pada bab sebelumnya telah dibahas web service dengan aplikasi server menggunakan
php. Dengan akses internet yang relatif mudah didapat dan teknologi mobile yang lekat
dengan kehidupan sehari-hari, konsumsi informasi dapat dipenuhi dengan cepat. Satu
hal penting bahwa mobile (smart phone) memiliki keterbatasan akan sumber daya.
Anda sudah dapat membedakan antara JSON dan XML(WSDL). Dari segi ukuran data
danstruktur, JSON lebih bersahabat terhadap masalah sumber daya.
Pada bab ini akan dibahas web service yang terjadi antara server (php, apache) dan
klien (Android).
Untuk memahami contoh penggunaan REST dan JSON diketahui:
Anda memiliki perusahaan manufaktur yang aktif berproduksi, rekanan Anda (klien)
ingin mengetahui jumlah barang berdasarkan list kode barang. Rancanglah web service
menggunakan REST JSON.
Server: php, apache
Klien: android
Hal pertama yang harus dilakukan adalah menyediakan pelayanan (server).
1. Hidupkan server apache
2. Masih seperti pada bab sebelumnya, workspace direktori adalah:
C:\xampp\htdocs\latihan\ws1
3. Buat file php, beri nama: testjsonserver.php
4. Isikan
1.
-
5/28/2018 Web Service
140/152
5. $B = $>>B;6. $ = $>>D;7.8. // /9. // 10.
11. ($B) 12. '1111' :13. $ = 10;14. ;15. '1122' :16. $ = 2220;17. ;18. '007' :19. $ = 1;20. ;21. :22. $ = 0;23. ;
24.25.26. $;
27.?>
Pada sisi klien, Anda dapat membuat project Android dengan beragam tools. Di sini
akan digunakan IDE Eclipse. Catatan: ADT diasumsikan sudah terinstall
1. Buka Eclipse2. File>new>Other>Android>Android Application Project
-
5/28/2018 Web Service
141/152
3. Beri nama aplikasi: Te
4. Beri nama package: c
5. Next, Next
6. Create Activity>Blank
7. Activity Name: MainAc
8. Finish
9. Perhatikan jendela Pa
tJsonKlien
m.polpos.testjsonklien
ctivity
ivity
kage Explorer
-
5/28/2018 Web Service
142/152
10. Pada res>layout>Activ
Ubahlah design sehing
Source:
ity_main.xml
ga menjadi:
-
5/28/2018 Web Service
143/152
11. Pada jendela Package Explorer
TestJsonKlien>src>com.polpos. testjsonklien>MainActivity.java
12. Isikan
1. package com.polpos.testjsonklien;
-
5/28/2018 Web Service
144/152
2.
3. import java.io.BufferedReader;
4. import java.io.IOException;
5. import java.io.InputStream;
6. import java.io.InputStreamReader;
7.
8. import org.apache.http.HttpResponse;
9. import org.apache.http.client.ClientProtocolException;
10. import org.apache.http.client.HttpClient;
11. import org.apache.http.client.methods.HttpPost;
12. import org.apache.http.entity.StringEntity;
13. import org.apache.http.impl.client.DefaultHttpClient;
14. import org.json.JSONObject;
15.
16. import android.os.AsyncTask;
17. import android.os.Bundle;
18. import android.app.Activity;
19. import android.util.Log;
20. import android.view.Menu;21. import android.view.View;
22. import android.widget.EditText;
23. import android.widget.TextView;
24. import android.widget.Toast;
25.
26. public class MainActivity extends Activity {
27.
28. //alamat local host "http://10.0.2.2/....";
29. private String url = "http://10.0.2.2/latihan/ws1/testjsonserver.php";
30. EditText kdbrgTxt;
31.
32. @Override
-
5/28/2018 Web Service
145/152
33. protected void onCreate(Bundle savedInstanceState) {
34. super.onCreate(savedInstanceState);
35. setContentView(R.layout.activity_main);
36. kdbrgTxt= (EditText)this.findViewById(R.id.kdbrgTxt);
37.
38. }
39.
40. @Override
41. public boolean onCreateOptionsMenu(Menu menu) {
42. // Inflate the menu; this adds items to the action bar if it is present.
43. getMenuInflater().inflate(R.menu.main, menu);
44. return true;
45. }
46.
47. // Async Task to access the web, proses terpisah dari thread UI
48. private class JsonReadTask extends AsyncTask {
49.
50. @Override
51. protected String doInBackground(String... params) {52. HttpClient httpclient = new DefaultHttpClient();
53. String message;
54. String jsonResult="";
55.
56. HttpPost httppost = new HttpPost(params[0]); //url
57. String kdbrg=params[1];//kode barang
58. String kdID=params[2];//ID pemohon
59.
60. JSONObject obj = new JSONObject();
61. try {
62.
63. JSONObject reqObj = new JSONObject();
-
5/28/2018 Web Service
146/152
64. reqObj.put( "kdBarang", kdbrg );
65. reqObj.put( "ID", kdID );
66. obj.put("data", reqObj);
67. //Log.d("ISIJSON", obj.toString(4));
68.
69. } catch (Exception ex) {
70.
71. }
72.
73.
74. try {
75. message=obj.toString();
76.
77. httppost.setEntity(new StringEntity(message,
"UTF8"));
78. httppost.setHeader("Content-type", "application/json");
79. HttpResponse resp = httpclient.execute(httppost);
80.
81. Log.d("Status line", "" +resp.getStatusLine().getStatusCode());
82. } catch (Exception e) {
83. e.printStackTrace();
84. }
85.
86.
87. try {
88. HttpResponse response =
httpclient.execute(httppost);
89. jsonResult = inputStreamToString(
90.
response.getEntity().getContent()).toString();
-
5/28/2018 Web Service
147/152
91. //Log.i("selese",jsonResult);
92. }
93.
94. catch (ClientProtocolException e) {
95. e.printStackTrace();
96. } catch (IOException e) {
97. e.printStackTrace();
98. }
99. return jsonResult;
100. }
101.
102. private StringBuilder inputStreamToString(InputStream is) {
103. String rLine = "";
104. StringBuilder answer = new StringBuilder();
105. BufferedReader rd = new BufferedReader(new
InputStreamReader(is));
106.
107. try {
108. while ((rLine = rd.readLine()) != null) {109. answer.append(rLine);
110. }
111. }
112.
113. catch (IOException e) {
114. // e.printStackTrace();
115. Toast.makeText(getApplicationContext(),
116. "Error..." + e.toString(),
Toast.LENGTH_LONG).show();
117. }
118. return answer;
119. }
-
5/28/2018 Web Service
148/152
120.
121. @Override
122. protected void onPostExecute(String result) {
123. TampilJmlBarang(result);
124. }
125. }// end async task
126.
127. public void accessWebService(String prm1) {
128. JsonReadTask task = new JsonReadTask();
129. // passes values for the urls string array
130. task.execute(new String[] { url,prm1,"IWAN" });
131. }
132.
133.
134. public void TampilJmlBarang(String prm1) {
135.
136. try {
137. //jsonResult
138. Toast.makeText(getApplicationContext(), "Jumlah=" +prm1,
139. Toast.LENGTH_SHORT).show();
140.
141. } catch (Exception e) {
142. Toast.makeText(getApplicationContext(), "Error" +
e.toString(),
143. Toast.LENGTH_SHORT).show();
144. Log.e("SALAH",""+e.getMessage());
145. }
146.
147. }
148.
-
5/28/2018 Web Service
149/152
149. public void CekJmlBrg(View view){
150. String prmInput;
151. prmInput=kdbrgTxt.getText().toString();
152.
153. //Log.i("dd",prmInput);
154. accessWebService(prmInput.toUpperCase());
155. }
156. }
13. Perhatikan URL:
http://10.0.2.2/latihan/ws1/testjsonserver.php
alamat ip tersebut mengakibatkan Android dapat mengakses localhost (php,
apache). Perlu diketahui untuk memisahkan urusan display (tampak oleh mata)
dan internet maka thread harus berbeda (contoh di atas: AsyncTask)
14. Tambahkan hak akses internet pada AndroidManifest.xml
Sehingga isi AndroidManifest.xml:
-
5/28/2018 Web Service
150/152
15. Jalankan emulator
16. Pada package explo
application
17. Cobalah isi kode bara
Kaitan dengan logistik
Dengan pertumbuhan B2B
dinamis diantaranya (dapat
yang tepat untuk menjawab
phone oleh karena itu perlu d
Dilihat dari segi ukuran, JSO
digunakan pada teknologi mo
rer, TestJsonKlien, klik kanan > Run
g dengan: MG1111, MG1122, MG007
ang semakin banyak dan cepat dibutuh
berupa lintas platform dlsb), web service
ya. Pelaku bisnis mungkin tidak dapat le
itentukan format data yang efisien untuk t
N relatif lebih kecil dibandingkan XML seh
bile.
AS > Android
an komunikasi
adalah sarana
as dari mobile
knologi mobile.
ingga tepat bila
-
5/28/2018 Web Service
151/152
TUGAS:
Buat aplikasi Android dengan menggunakan web service, data format JSON yang
diminta klien ditarik dari database server minimal 2 kolom, 5 baris data.
-
5/28/2018 Web Service
152/152
Pustaka
1. IBM, An overview of the Web Services Inspection Language
2. Introduction to Web Services, Ioannis G. Baltopoulos
3. http://www.ibm.com/developerworks/library/os-xmldomphp/
4. http://www.joemarini.com/tutorials/tutorialpages/listoflinks.php
5. Web Service Security 2010 Davide Cerri & Srdjan Komazec
6. json.org/example.html
7. http://developer.android.com/reference/org/json/JSONObject.html