web service

Upload: jakaria

Post on 19-Oct-2015

292 views

Category:

Documents


0 download

DESCRIPTION

jaki

TRANSCRIPT

  • 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

    &copyright;

  • 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