Web Service Sebagai Metode Penghubung Antaraplikasi Komputer Dengan Bahasa Pemrograman Yang Berbeda

(1)

PEMROGRAMAN YANG BERBEDA

SKRIPSI

LITA ELISABETH 031401054

PROGRAM STUDI S-1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

LITA ELISABETH 031401054

PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2010


(3)

Judul : WEB SERVICE SEBAGAI METODE PENGHUBUNG

ANTARAPLIKASI KOMPUTER DENGAN

BAHASA PEMROGRAMAN YANG BERBEDA

Kategori : SKRIPSI

Nama : LITA ELISABETH

Nomor Induk Mahasiswa : 031401054

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Maret 2010

Komisi Pembimbing :

Pembimbing 2, Pembimbing 1,

Drs. M. Syafi’i Siregar, MA Drs. James Piter Marbun, M.Kom NIP. 195611131986011001 NIP. 195806111986031002

Diketahui/Disetujui oleh

Departemen S1 Ilmu Komputer FMIPA USU Ketua,

Prof. Dr. Muhammad Zarlis NIP. 195707011986011003


(4)

PERNYATAAN

WEB SERVICE SEBAGAI METODE PENGHUBUNG ANTARAPLIKASI KOMPUTER DENGAN BAHASA PEMROGRAMAN YANG BERBEDA

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Maret 2010

LITA ELISABETH 031401054


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus Yang Maha Pemurah dan Maha Penyayang, dengan limpah karunia-Nya tugas akhir ini berhasil diselesaikan dalam waktu yang ditetapkan.

Ucapan terima kasih penulis sampaikan kepada Bapak Drs. James Piter Marbun, M.Kom dan Drs.Syafi’i selaku pembimbing pada penyelesaian tugas akhir ini yang telah memberikan panduan dan kepercayaan penuh kepada penulis untuk menyempurnakan kajian ini. Serta kepada Bapak Prof. Dr. Muhammad Zarlis dan Bapak M. Andrri B, ST, MCompSc, MEM selaku pembanding. Bimbingan ringkas, padat, dan profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua Departemen Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis, dan Sekretaris Departemen Ilmu Komputer, Bapak Syahriol Sitorus, S.Si, M.I.T, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen di Departemen Ilmu Komputer FMIPA USU, pegawai di Ilmu Komputer FMIPA USU. Ungkapan terima kasih yang tak terkira kepada Ayahanda B. Rajagukguk, Ibunda K. Br Sinaga, abangku, Jan Peter Alexander, dan adikku, Tessa Saskia yang selama ini memberikan bantuan, doa, dan dorongan semangat yang diperlukan, serta rekan-rekan kuliah angkatan 2003, khususnya Ita, Siska, Adi, Syafi’i, dan Dicky yang selalu memberikan semangat dan dukungan. Semoga Tuhan Yesus Kristus memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian, dan kerja samanya kepada penulis dalam menyelesaikan tugas akhir ini.

Akhirnya penulis berharap bahwa tugas akhir ini bermanfaat terutama kepada penulis maupun para pembaca serta semua pihak yang berhubungan dengannya. Penulis menyadari sepenuhnya bahwa kajian ini sangat jauh dari sempurna. Oleh karena itu kritik dan saran yang membangun sangat diharapkan demi perbaikan tugas akhir ini.


(6)

ABSTRAK

Seiring dengan berkembangnya teknologi komputer dan internet, berbagai aplikasi komputer diciptakan untuk memudahkan pengguna komputer dalam berinteraksi. Masalah timbul ketika aplikasi yang saling berhubungan memiliki perbedaan bahasa pemrograman. Untuk mengatasi hal ini, diciptakanlah Web Service. Penggunaan Web Service memungkinkan perangkat-perangkat yang menggunakan sistem operasi dan aplikasi yang berbeda satu sama lain dapat bertukar data dan informasi dengan mudah. Hal ini dikarenakan Web Service menggunakan standar data XML dan protokol transpor HTTP yang telah digunakan secara luas dalam dunia internet. Penelitian ini diharapkan dapat memberi manfaat untuk penggunaan dan pengembangan Web Service sehingga masalah perbedaan bahasa pemrograman dalam sistem jaringan komputer dapat teratasi.


(7)

WEB SERVICE AS A METHOD FOR CONNECTING COMPUTER APPLICATIONS WITH DIFFERENT PROGRAMMING LANGUAGES

ABSTRACT

As the increasing development of internet and computer technology, many computer applications have been created to help user to interact with each other. Problem rise when the connecting applications have different programming languages. Web service is created to solve this problem. The use of web service enables devices which uses different operation systems and applications to switch data and information easily. This is possible because web service is using data standard XML and transport protocol HTML which is used widely on the internet. The research is expected to give advantage on the use and development of web service so the problem of the programming language difference in computer network system can be solved.


(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Gambar ix

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 1

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

BAB 2 TINJAUAN PUSTAKA 5

2.1 Sejarah Perkembangan Web Service 5

2.1.1 Sejarah Web 5

2.1.2 Web Service 7

2.2 Definisi Web Service 9

2.3 Komponen Web Service 11

2.3.1 HTTP 11

2.3.2 XML 13

2.3.3 WSDL 19

2.3.4 SOAP 20

2.3.4.1.Manfaat SOAP 21

2.3.4.2.Kelemahan SOAP 22

2.3.5 UDDI (Universal Description, Discovery,

Integration) 22

2.4 Cara Kerja Web Service 23

2.5 Software Yang Dibutuhkan 28

2.5.1 XAMPP 28

2.5.2 Sun Java SDK 28

3.1 Sejarah perkembangan java 29

3.2 Kelebihan java 30


(9)

2.5.3 Netbeans IDE 32

BAB 3 ANALISIS PERANCANGAN WEB SERVICE 34

3.1 Analisis Masalah 34

3.2 Penyelesaian Masalah 34

3.3 Perancangan Web Service 35

3.4 Perancangan Antarmuka 38

BAB 4 IMPLEMENTASI PERANGKAT LUNAK 40

4.1 Implementasi Web Service 40

4.2 Implementasi Web Service pada server 40 4.3 Implementasi Web Service pada sisi klien 43

BAB 5 PENUTUP 55

5.1 Kesimpulan 55

5.2 Saran 55

DAFTAR PUSTAKA 57


(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Web Browser pertama, Mosaic 7

Gambar 2.2 Tampilan dokumen XML pada browser 15 Gambar 2.3 Contoh diagram hirarki pohon pada dokumen XML 16 Gambar 2.4 Dokumen XML yang digabung dalam HTML 18 Gambar 2.5 Proses perpesanan menggunakan SOAP 21

Gambar 2.6 Contoh transaksi Web Service 23

Gambar 2.7 Perusahaan mengambil data WSDL dari UDDI untuk dapat

mengakses Web Service perusahaan B 24

Gambar 2.8 Perusahaan A mengirim pesan SOAP kepada perusahaan B 27 Gambar 3.1a Flowchart tahap pembuatan Web Service pada sisi server 36 Gambar 3.1b Flowchart tahap pembuatan Web Service (lamjutan) 37 Gambar 3.2 Tahap pembuatan Web Service pada sisi klien 37 Gambar 3.3 Perancangan antarmuka aplikasi Web Service 38

Gambar 4.1 Database student di phpMy Admin 41

Gambar 4.2 Web Service yang sudah aktif 42

Gambar 4.3 XAMPP Control Panel 42

Gambar 4.4 Task Manager 43

Gambar 4.5 Tampilan awal program perekaman data pada klien 44 Gambar 4.6 Mengambil data murid yang sudah ada di server 44 Gambar 4.7 Data pertama yang ada pada server 45

Gambar 4.8 Data kedua dari server 45

Gambar 4.9 Data yang akan disunting 46

Gambar 4.10 Penyuntingan data klien 46

Gambar 4.11 Penyuntingan data pada server berhasil dilakukan 47 Gambar 4.12 Tampilan setelah tombol ”tambah siswa” 47

Gambar 4.13 Data yang akan ditambahkan 48

Gambar 4.14 Tampilan awal setelah penambahan data murid 48

Gambar 4.15 Data yang ditambahkan 49

Gambar 4.16 Tampilan setelah tombol ”sunting” diaktifkan kembali 49 Gambar 4.17 Penambahan data pada server berhasil dilakukan 50

Gambar 4.18 Data yang akan dihapus 50

Gambar 4.19 Tampilan setelah tombol ”hapus ” ditekan 51 Gambar 4.20 Data terakhir setelah data kedua dihapus 51 Gambar 4.21 Penghapusan data pada server berhasil dilakukan 52 Gambar 4.22 Ketiadaan server dilihat dari Task Manager 52

Gambar 4.23 Tampilan awal aplikasi klien 53

Gambar 4.24 Tampilan aplikasi klien saat server tidak dapat diakses 53 Gambar 4.25 Aplikasi klien tidak berfungsi dengan benar karena tidak adanya


(11)

ABSTRAK

Seiring dengan berkembangnya teknologi komputer dan internet, berbagai aplikasi komputer diciptakan untuk memudahkan pengguna komputer dalam berinteraksi. Masalah timbul ketika aplikasi yang saling berhubungan memiliki perbedaan bahasa pemrograman. Untuk mengatasi hal ini, diciptakanlah Web Service. Penggunaan Web Service memungkinkan perangkat-perangkat yang menggunakan sistem operasi dan aplikasi yang berbeda satu sama lain dapat bertukar data dan informasi dengan mudah. Hal ini dikarenakan Web Service menggunakan standar data XML dan protokol transpor HTTP yang telah digunakan secara luas dalam dunia internet. Penelitian ini diharapkan dapat memberi manfaat untuk penggunaan dan pengembangan Web Service sehingga masalah perbedaan bahasa pemrograman dalam sistem jaringan komputer dapat teratasi.


(12)

WEB SERVICE AS A METHOD FOR CONNECTING COMPUTER APPLICATIONS WITH DIFFERENT PROGRAMMING LANGUAGES

ABSTRACT

As the increasing development of internet and computer technology, many computer applications have been created to help user to interact with each other. Problem rise when the connecting applications have different programming languages. Web service is created to solve this problem. The use of web service enables devices which uses different operation systems and applications to switch data and information easily. This is possible because web service is using data standard XML and transport protocol HTML which is used widely on the internet. The research is expected to give advantage on the use and development of web service so the problem of the programming language difference in computer network system can be solved.


(13)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Seiring dengan perkembangan internet, teknologi komputer juga terus berkembang. Banyak program dan sistem komputer dikembangkan untuk semakin memutakhirkan aplikasi agar dapat digunakan di internet. Sebuah organisasi dapat memiliki banyak aplikasi komputer yang dibuat dengan bahasa pemrograman dan platform yang berbeda-beda. Masalah timbul ketika aplikasi-aplikasi tersebut perlu beroperasi bersama untuk melakukan suatu fungsi layanan tertentu.

Agar masalah perbedaan bahasa pemrograman ini tidak menjadi penghambat bagi aplikasi dalam berkomunikasi dan bertukar data, maka dirancanglah suatu metode bernama Web Service. Pada dasarnya, Web Service memandang aplikasi sebagai sebuah service dalam web. Penggunaan protokol transport HTTP dan format data XML dalam Web Service sebagai standar web yang sudah umum dipakai, memungkinkan untuk menghubungkan berbagai service dalam web tanpa menyinggung masalah perbedaan bahasa pemrograman yang ada.

1.2 Perumusan Masalah

Adapun permasalahan dalam penggunaan Web Service yang akan dibahas pada tugas akhir ini adalah sebagai berikut

a Mengapa Web Service dapat mengatasi masalah penggunaan bahasa pemrograman dan aplikasi yang beraneka ragam dalam pertukaran data.

b Teknik yang dipergunakan Web Service untuk mengatasi perbedaan bahasa pemrograman yang digunakan dalam berbagai aplikasi.


(14)

c Standar protokol dan format data yang dibutuhkan dalam pengunaan Web Service untuk mengakses aplikasi.

1.3 Batasan Masalah

Adapun batasan dalam penelitian masalah yang terdapat dalam penggunaan Web Service sebagai berikut ini

a Format data yang digunakan dalam Web Service adalah XML (Extensible Markup Language)

b Standar Web Service yang dibahas meliputi: 1. WSDL ( Web Service Description Language) 2. UUDI (Universal Description and Integration) 3. SOAP (Simple Object Acsess Protocol)

1.4 Tujuan Penelitian

Tujuan yang ingin dicapai penulis dalam penulisan tugas akhir “Web Service Sebagai Metode Penghubung Antaraplikasi Komputer dengan Bahasa Pemrograman yang Berbeda ” ini adalah:

a Mampu memahami bagaimana Web Service dapat menjadi solusi persoalan perbedaan bahasa pemrograman antaraplikasi komputer.

b Mengetahui dan memahami baik materi dan pengaplikasian Web Service dalam suatu jaringan.

c Mampu menjelaskan kelebihan dan kekurangan penggunaan Web Service dengan XML.


(15)

1.5 Manfaat Penelitian

Penelitian ini diharapkan dapat memberi manfaat untuk penggunaan Web Service dan pengembangan Web Service sehingga masalah perbedaan bahasa pemrograman dalam sistem jaringan komputer dapat teratasi.

1.6 Metode Penelitian

Penelitian dilakukan dalam beberapa tahap yang sistematis. Berikut adalah susunan tahap yang dilakukan dalam penelitian.

a Penelitian kepustakaan

Metode ini dilakukan dengan membaca berbagai sumber penelitian berupa buku-buku dan artikel-artikel di intenet.

b Diskusi

Pada tahap ini diskusi dilakukan dengan dosen pembimbing dan orang yang mahir dalam pembelajaran ini sehingga dapat memperoleh data yang lebih akurat.

c Analisis

Data yang diolah untuk kemudian dianalisis sehingga menjadi suatu informasi yang berguna.

d Perancangan

Sebuah sistem dirancang untuk mendukung dan mempertegas analisis yang telah dilakukan.

e Pengujian

Pada tahap ini dilakukan pengujian terhadap sistem yang telah dibuat. f Penyusunan tugas akhir

Penyusunan tugas akhir dilakukan dengan menuliskan hasil penelitian dan sistem yang telah dibuat.


(16)

1.7 Sistematika Penulisan

Sistematika penulisan tugas akhir “Web Service Sebagai Metode Antaraplikasi Komputer dengan Bahasa Pemrograman yang Berbeda” ini dibagi atas lima bab, yaitu :

Bab 1 Pendahuluan

Bab 1 berisi masalah yang melatarbelakangi penyusunan tugas akhir, yaitu perbedaan bahasa pemrograman yang menghambat komunikasi antaraplikasi komputer dan metode yang digunakan untuk menyelesaikan masalah tersebut, yaitu dengan membangun Web Service.

Bab 2 Tinjauan Pustaka

Bab 2 mengandung penjelasan mengenai sejarah perkembangan web dan Web Service. Bab ini juga membahas mengenai definisi dan teori yang mendukung pembangunan Web Service, komponen-komponen Web Service berupa format data XML dan protokol transport HTTP, serta protokol standar Web Service, yaitu WSDL, UUDI, dan SOAP. Bab ini juga membahas software yang digunakan untuk membangun Web Service.

Bab 3 Analisis dan Perancangan Sistem Web Service

Bab ini berisikan analisis masalah dan perancangan Web Service secara fungsional dan struktural dengan contoh sistem perekaman data murid.

Bab 4 Implementasi dan Sistem Keamanan

Pada bab ini dijabarkan rangkuman implementasi dan pengujian Web Service sistem perekaman data murid untuk menemukan kelebihannya dalam mempermudah pertukaran data dan informasi.

Bab 5 Penutup

Bab ini membahas kesimpulan dan saran yang diperoleh dari laporan tugas akhir.


(17)

BAB II

TINJAUAN PUSTAKA

2.1 Sejarah Perkembangan Web

2.1.1 Sejarah Web

Sejarah Web bermula di European Laboratory for Particle Physics (yang lebih dikenal dengan nama CERN), di kota Geneva dekat perbatasan Perancis dan Swiss. CERN merupakan suatu organisasi yang didirikan oleh 18 negara di Eropa. Di tahun 1980, seorang Inggris Tim Berners-Lee, kontraktor independen di ENQUIRE, sebuah basis data personal dan model software, juga berkesempatan untuk bermain dengan konsep hypertext; dimana setiap halaman informasi baru di ENQUIRE tersambung secara langsung ke halaman yang ada.

Tahun 1984, Tim Berners-Lee kembali ke CERN dan memperesentasikan masalah bahwa semua fisikawan di dunia butuh untuk melakukan berbagi data, sayangnya tidak ada perangkat keras dan perangkat lunak yang memungkinkan hal itu terjadi. Atasan Tim, Mike Sendall, meminta Tim untuk mengimplementasikan idenya di mesin workstation NeXT yang baru saja diterima oleh beberapa nama yang dipikirkan untuk itu, mulai dari Information Mesh, The Information Mine atau Mine of Information, akhirnya dipilihkan World Wide Web.

Bulan Desember 1990, Tim Berners-Lee berhasil membuat semua perangkat yang dibutuhkan agar Web (yang juga merupakan Web editor), halaman Web yang pertama yang menjelaskan tentang proyek tersebut. Browser yang dikembangkan dapat mengakses kelompok diskusi Usenet dan juga akses file


(18)

Sayangnya hanya dapat dijalankan di NeXT. Nicola Pellow kemudian membuat browser text sederhana yang dapat dioperasikan di hampir semua komputer.

Mei 1991, Paul Kunz dari Stanford Linear Accelerator Center (SLAC) mengunjungi perangkat lunak NeXT ke SLAC, dimana pustakawan Louise Addis mengadaptasikannya untuk sistem operasi VM/CMS di IBM mainframe untuk memperlihatkan katalog dari dokumen online di SLAC; Web ini merupakan Web Server pertama di luar Eropa dan pertama di Amerika Utara.

Pada tanggal 6 Agustus 1991, Tim Berners-Lee mem-posting resume singkat dari proyek World Wide Web di kelompok diskusi alt.hypertext. Tanggal ini ditandai sebagai pertama kali Web muncul secara publik di Internet.

“The WorldWideWeb (WWW) project aims to allow links to be made to any information anywhere. [...] The WWW project was started to allow high energy physicists to share data, news, and documentation. We are very interested in spreading the web to other areas, and having gateway servers for other data. Collaborators welcome!" — dari posting pertama Tim Berners-Lee.

Web browser pertama dibuat dengan berbasiskan pada teks. Untuk menyatakan suatu link, dibuat sebarisan nomor yang mirip dengan suatu menu. Pemakai mengetikkan suatu nomor untuk melakukan navigasi di dalam Web. Kebanyakan software tersebut dibuat untuk komputer-komputer yang menggunakan Sistem Operasi UNIX, dan belum banyak yang bisa dilakukan oleh pemakai komputer saat itu yang telah menggunakan Windows. Tetapi semua ini berubah setelah munculnya browser Mosaic dari NCSA (National Center for Supercomputing Applications).

Di bulan Mei 1993, Marc Andreesen dan beberapa murid dari NCSA membuat Web browser untuk sistem X-Windows yang berbasiskan grafik dan yang mudah untuk digunakan. Dalam beberapa bulan saja, Mosaic telah menarik perhatian baik dari pemakai lama maupun pemakai baru di Internet. Kemudian NCSA


(19)

mengembangkan versi-versi Mosaic lainnya untuk komputer berbasis UNIX, NeXT, Windows, dan Macintosh.

Gambar 2.1 Web browser pertama, Mosaic

Pada tahun 1994, Marc Andreesen meninggalkan NCSA, dan kemudian bersama Jim Clark, salah satu pendiri dari Silicon Graphics, membuat Netscape versi pertama. Kehadiran Netscape ini menggantikan kepopuleran Mosaic sebagai Web browser dan bahkan sampai saat ini Netscape merupakan browser yang banyak digunakan setelah Internet Explorer dari Microsoft. Pada tahun yang sama CERN dan MIT mendirikan suatu konsorsium yang dinamakan World Wide Web Consortium (W3C) yang bertugas untuk membangun standar bagi teknologi Web.

Pada awal perkembangannya, sewaktu browser masih berbasiskan teks hanya terdapat sekitar 50 website. Di akhir tahun 1995, jumlah ini telah berkembang mencapai sekitar 300.000 website. Dan diperkirakan sekarang ini jumlah pemakai web telah mencapai sekitar 30-an juta pemakai di seluruh dunia.


(20)

2.1.2 Web Service

Perkembangan Web Service terutama dipengaruhi oleh keinginan untuk menciptakan sebuah standar umum agar kerja sama bisnis dapat dilakukan dalam suatu jaringan komputer secara luas. Electronic Data Interchange (EDI) diperkenalkan pada tahun 1975 untuk menjawab kebutuhan ini. Sejak saat itu, selama 25 tahun telah muncul berbagai usaha dalam menghubungkan logika bisnis dalam sebuah jaringan: Common Object Request Broker Architecture, Distributed Component Object Model, Unix Remote Procedure Call, and Java Remote Method Invocation. Setiap teknologi ini gagal memperoleh simpati dari dunia bisnis. Semuanya masih digunakan sampai sekarang ini, tapi tidak secara luas.

EDI sulit diimplementasikan karena kompleksitasnya dan biaya yang tinggi. CORBA, yang banyak digunakan oleh para vendor sistem UNIX, dan DCOM, yang merupakan teknologi Microsoft, telah bersaing selama bertahun-tahun. Keduanya sulit bagi para pemrogram dan tidak pernah memperoleh dukungan dari kalangan industri. Unix RPC, tidak pernah dikembangkan di luar sistem UNIX. Demikian juga dengan teknologi Java RMI milik Sun.

Sebelum adanya Web, adalah mustahil mendapatkan dukungan seluruh vendor perangkat lunak besar untuk menyetujui sebuah standar protokol komunikasi bagi aplikasi web. Dan Web menjawab kebutuhan ini dengan membuat spesifikasi protokol transpor level bawah untuk standar komunikasi, dengan menggunakan HTTP yang berjalan pada TCP/IP. Dengan demikian, yang diperlukan selanjutnya adalah standar perpesanan dan enkapsulapsi data.

XML kemudian membuka jalan bagi Web Service. Sebagai standar deskripsi data yang digunakan secara luas dan bebas platform serta dapat digunakan untuk menggambarkan protokol penyampaian pesan, XML merupakan pilihan yang logis untuk standar komunikasi aplikasi ke aplikasi. Web Service menyimpan data informasi dalam format XML, sehingga data ini dapat diakses oleh sistem lain walaupun berbeda platform, sistem operasi, maupun bahasa kompiler.


(21)

Pada bulan Desember tahun 1999, Microsoft mengadakan pertemuan dengan IBM dan perusahan-perusahaan lain untuk mempromosikan SOAP 1.0, yaitu spesifikasi bagi standarisasi protokol penyampaian pesan berbasis XML. SOAP memiliki banyak keunggulan, tetapi karena Microsoft yang menawarkannya, banyak perusahaan yang skeptis terhadapnya. IBM yang menyetujui pemikiran ini kemudian bekerja sama dengan Microsoft untuk mengembangkan SOAP 1.1.

Pada tahun 2000, SOAP memperoleh lebih banyak dukungan. IBM dan Microsoft masing-masing mengerjakan program untuk mendeskripsikan bagaimana untuk berhubungan dengan Web Service. Sehingga kemudian, di musim dingin tahun 2000, dengan adanya penggabungan spesifikasi dari IBM dan Microsoft, terciptalah Web Services Description Language.

Dengan SOAP dan WSDL, perusahaan dapat menciptakan dan mendeskripsikan Web Service miliknya. Tetapi tetap diperlukan cara untuk mempromosikan dan mengalokasikan Web Service. Maka pada Maret 2000, IBM, Microsoft, and Ariba mulai mengerjakan solusinya yang berupa Universal Description, Discovery, and Integration. Di bulan September tahun 2000, spesifikasi UDDI 1.0 diumumkan

SOAP, WSDL, and UDDI sebagai standar untuk menciptakan Web Services telah dibuat. Tetapi baru pada akhir tahun 2000, kelima vendor infrastruktur perangkat lunak besar mengumumkan komitmennya terhadap Web Service. Oracle, HP, Sun, IBM, and Microsoft menyatakan keinginannya untuk mendukung dan menggunakan standar Web Service dalam produk mereka.

2.2 Definisi Web Service

Kata ”Web Service” secara harfiah berarti layanan web. Ini benar namun belum sepenuhnya mencakup pengertian Web Service yang sebenarnya. Kata ”Web” pada Web Service mengarah pada penggunaan aplikasi Web Service pada suatu jaringan, terutama World Wide Web (WWW) yang menggunakan protokol transport HTTP.


(22)

Web Service juga bisa dipakai dengan protokol lain seperti SMTP (Simple Mail Transfer Protocol), tetapi sangat jarang dilakukan.

Sedangkan kata ”Service” pada Web Service mengacu pada aplikasi komputer yang digunakan untuk mendukung suatu layanan (service) tertentu. Berbagai jenis service ini melakukan komunikasi satu sama lain, baik itu berupa pengiriman data koordinasi untuk melakukan suatu kegiatan maupun informasi yang akan diperoleh . Untuk dapat menghubungkan berbagai service tersebut tanpa memperhatikan perbedaan bahasa pemrograman, maka dirancanglah Web Service.

Definisi dari W3C (World Wide Web Consortium) menyatakan Web Service sebagai suatu sistem perangkat lunak yang didesain untuk mendukung interaksi mesin ke mesin pada suatu jaringan. Sedangkan menurut Michael C. Daconta, Web Service adalah aplikasi perangkat lunak yang dapat ditemukan, diuraikan, dan diakses berdasarkan pada XML dan protokol standar Web pada intranet, extranet, dan internet.

Web Service bertujuan untuk meningkatkan kolaborasi antar pemrogram dan perusahaan, yang memungkinkan sebuah fungsi di dalam Web Service dapat dipinjam oleh aplikasi lain tanpa perlu mengetahui detil pemrograman yang terdapat di dalamnya.

Beberapa alasan digunakannya Web Service adalah sebagai berikut:

1. Web Service dapat digunakan untuk mentransformasikan satu atau beberapa class dan objek yang terpisah dalam satu ruang lingkup yang menjadi satu, sehingga tingkat keamanan dapat ditangani dengan baik.

2. Web Service memiliki kemudahan dalam proses deployment-nya, karena tidak memerlukan registrasi khusus ke dalam suatu sistem operasi. Web Service cukup di-upload ke web server dan siap diakses oleh pihak-pihak yang telah diberikan otorisasi.

3. Web Service berjalan di port 80 yang merupakan protokol standar HTTP, dengan demikian Web Service tidak memerlukan konfigurasi khusus di sisi firewall.


(23)

Web Service dapat diimplementasikan baik untuk lingkungan internal (intranet) maupun untuk lingkungan publik (internet). Dalam lingkungan internal, Web Service memberikan kemudahan dan solusi baru untuk mengintegrasikan berbagai platform aplikasi yang ada dalam organisasi atau perusahaan. Pada lingkungan publik, Web Service akan memperbaharui konsep transaksi data berbasis internet, dan menawarkan teknologi yang mampu mengintegrasikan data dari berbagai sumber data dalam organisasi atau perusahaan terkait maupun dengan rekan bisnis secara lebih mudah, sederhana, dan murah. Dan secara umum, Web Service akan mengubah paradigma para pengguna maupun pengembang perangkat lunak, dari berbasis API (application program interface) menjadi berbasis pesan (message-based).

2.3 Komponen Web Service

2.3.1 HTTP

Hypertext Transfer Protocol (HTTP) adalah sebua

yang digunakan unt

menggunakan

meminta/menjawab antar

tidak berstatus, dan generik yang dapat dipergunakan berbagai macam tipe dokumen.

Penggunaan HTTP pada umumnya berupa pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dengan dokume

menggunakan dokumen hypertext inilah,

kemudian membent

diakses dengan menggunakan HTTP diidentifikasi dengan menggunakan

(URL), menggunakan

Sebuah klien HTTP (misal, web browser atau robot, dan sebagainya) biasanya memulai permintaan dengan membuat hubungan ke port tertentu di sebuah server Web hosting tertentu (biasanya port 80). Klien yang mengirimkan permintaan HTTP


(24)

dikenal sebagai user agent. Server yang meresponnya, yang juga menyimpan sumber daya seperti berkas HTML dan gambar, dikenal sebagai origin server. Di antara user agent dan origin server bisa terdapat penghubung, seperti tunnel, proxy, dan gateway.

Hingga kini, ada dua versi mayor dari protokol HTTP, yakni HTTP/1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang dapat menggunakan koneksi yang sama untuk melakukan transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat karena tidak membuang waktu untuk pembuatan koneksi berulang-ulang.

Pengembangan HTTP dikoordinasi oleh Konsorsium World Wide Web (W3C) dan Internet Engineering Task Force (IETF). Kedua grup ini bekerja dalam pengembangan standar HTTP yang menghasilkan beberapa dokumen

Dukungan untuk HTTP/1.1 yang belum disahkan (pada waktu itu dikenal

sebagai

pada tahun

oleh

da

bahwa hingga

mereka merupakan

HTTP/1.1 yang didefinisikan dalam

1997. Peningkatan dan pembaruan terhadap standar HTTP/1.1 dirilis dengan

dokumen

digunakan sekarang ini.

HTTP tidaklah terbatas untuk penggunaan dengan TCP/IP, meskipun HTTP merupakan salah satu protokol aplikasi TCP/IP paling populer melalui Internet. Memang HTTP dapat diimplementasikan di atas protokol yang lain di atas Internet atau di atas jaringan lainnya, tapi HTTP membutuhkan sebuah protokol lapisan transport yang dapat diandalkan.


(25)

XML terletak pada inti Web Service, yang digunakan untuk mendeskripsikan data. Fungsi utama dari XML adalah komunikasi antar aplikasi, integrasi data, dan komunikasi aplikasi eksternal dengan partner luaran. Dengan standarisasi XML, aplikasi-aplikasi yang berbeda dapat dengan mudah berkomunikasi antara satu dengan yang lain.

XML dikembangkan mulai tahun 1996 dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML.

XML adalah singkatan dari eXtensible Markup Language. Bahasa markup adalah sekumpulan aturan-aturan yang mendefinisikan suatu sintaks yang digunakan untuk menjelaskan, dan mendeskripsikan teks atau data dalam sebuah dokumen melalui penggunaan tag. Bahasa markup lain yang populer seperti HTML, menggambarkan kepada web browser tentang bagaimana menampilkan format teks, data, dan grafik ke layar komputer ketika sedang mengunjungi sebuah situs web.

XML adalah sebuah bahasa markup yang digunakan untuk mengolah meta- data (informasi tentang data) yang menggambarkan struktur dan maksud/tujuan data yang terdapat dalam dokumen XML, namun bukan menggambarkan format tampilan data tersebut. XML adalah sebuah standar sederhana yang digunakan untuk mendeskripsikan data teks dengan cara self-describing (deskripsi diri). XML juga dapat digunakan untuk mendefinisikan domain tertentu lainnya, seperti musik, matematika, keuangan dan lain-lain yang menggunakan bahasa markup terstruktur.

Berikut ini adalah contoh sebuah dokumen XML untuk informasi contact person.


(26)

<?xml version="1.0" encoding="ISO-8859-1"?><contact> <contact>

<name>Yadi Utama</name>

<company>PT. Gamatechno Indonesia</company> <address>Jl. Cik Di Tiro No.34</address> <city>Yogyakarta</city>

<state>Indonesia</state> <zip>55284</zip>

<phone>081328462499</phone>

<email>[email protected]</email> </contact>

Seperti HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup (diawali dengan ‘</ ‘diakhiri ‘>’) dan atribut elemen (parameter yang dinyatakan dalam tag pembuka, misalnya: <form name=”isidata”>). Tag pada dokumen XML bersifat case sensitif di mana tag pembuka dan tag penutup harus ekivalen. Seperti pada contoh, tag pembuka “<Buku>” harus ditutup dengan tag “</Buku>”.

Pada HTML tag dan atribut yang dipakai didefinisikan dari awal, sedangkan pada XML, tag dan atribut bisa digunakan sesuai dengan kehendak pemrogram. Berikut ini adalah tampilan dokumen XML dari program di atas apabila dijalankan pada sebuah browser.


(27)

Dokumen XML memiliki sintaks yang sederhana. Perhatikan kembali contoh dokumen XML contact person di atas. Baris pertama pada dokumen XML di atas adalah deklarasi header standar yang mendefinisikan versi XML dan karakter encoding yang digunakan dalam dokumen XML. Dalam dokumen ini, XML mengacu pada versi 1.0 dan menggunakan standar encoding karakter set ISO-8859-1 (Latin-1/West European). Perlu diingat bahwa header standar XML <?xml version=”1.0” encoding=”iso-8859-1”?> bukanlah node instruksi. Header standar bukanlah

bagian dari hirarki pohon dokumen XML dan tidak turut dikompilasi.

Baris selanjutnya menggambarkan elemen induk (root) dokumen “<contact>..</contact>”. Kemudian baris ke 3-10 menggambarkan elemen anak (child) dari elemen induk dokumen (name, company, address, city, state, zip, phone, dan email). Dengan demikian, dapat diasumsikan bahwa dokumen XML ini mengandung data contact person milik orang yang bernama Yadi Utama.

Pada dasarnya, dokumen XML harus mempunyai elemen root, yang merupakan induk dari semua elemn lainnya. Elemen-elemen dalam dokumen XML membentuk struktur pohon. Struktur ini bermula dari root hingga ke bagian terbawah pohon. Semua elemen bisa memiliki subelemen (elemen child), teks, dan atribut (sama seperti HTML).

<root> <child>

<subchild>…..</subchild> </child>

</root>

Misalkan ada sebuah dokumen XML dengan sebuah elemen root

<bookstore>. Semua elemen <book> terkandung dalam <bookstore>. Dengan demikian, elemen <book> merupakan elemen child dari elemen <bookstore>.


(28)

Gambar 2.3. Contoh diagram hirarki pohon pada dokumen XML

Struktur penulisan dokumen XML dari diagram di atas dapat ditulis sebagai berikut.

<bookstore>

<book category="COOKING">

<title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year>

<price>30.00</price> </book>

<book category="CHILDREN">

<title lang="en">Harry Potter</title> <author>J K. Rowling</author>

<year>2005</year> <price>29.99</price> </book>

<book category="WEB">

<title lang="en">Learning XML</title> <author>Erik T. Ray</author>

<year>2003</year> <price>39.95</price> </book>

</bookstore>

Pada penjelasan sebelumnya, diberikan contoh sebuah dokumen XML yang berisi data contact person yang terdiri dari elemen “name”, “company”, “address”, “city”, “state”, “zip”, “phone”, dan “email”. Tidak seperti HTML, data-data dalam dokumen XML tidak dapat ditampilkan dalam format tampilan tertentu dalam web browser. Namun XML dapat dimanipulasi sebagai “pulau data” untuk ditampilkan pada web browser melalui HTML sesuai dengan format tampilan yang diinginkan.


(29)

Dokumen XML tersebut dapat digabungkan dengan HTML untuk ditampilkan dalam sebuah web browser dengan membangun sebuah tabel dalam kode HTML dan mengasosiasikan nilai pada kolom-kolomnya dengan data dari elemen-elemen XML tersebut.

<html> <body>

<xml id="contact-person"> <contact>

<name>Yadi Utama</name>

<company>PT. Gamatechno Indonesia</company> <address>Jl. Cik Di Tiro No.34</address> <city>Yogyakarta</city>

<state>Indonesia</state> <zip>55284</zip>

<phone>081328462499</phone>

<email>[email protected]</email> </contact>

</xml>

<table border="1" datasrc="#contact-person">

<tr><th>Name</th> <td><span datafld="name"></span></td></tr>

<tr><th>Company</th> <td><span datafld="company"></span></td></tr> <tr><th>Address</th> <td><span datafld="address"></span></td></tr> <tr><th>City</th> <td><span datafld="city"></span></td></tr>

<tr><th>State</th> <td><span datafld="state"></span></td></tr> <tr><th>ZIP</th> <td><span datafld="zip"></span></td></tr> <tr><th>Phone</th> <td><span datafld="phone"></span></td></tr> <tr><th>Email</th> <td><span datafld="email"></span></td></tr> </table>

</body> </html>

Ketika ditampilkan melalui web browser, tampilannya akan terlihat seperti gambar di bawah ini.


(30)

Gambar 2.4 Dokumen XML yang digabung dalam HTML

XML untuk saat ini bukan merupakan pengganti HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Jika HTML digunakan untuk menampilkan informasi dan berfokus pada bagaimana informasi terlihat, maka XML mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri. XML terutama dibutuhkan untuk menyusun dan menyajikan informasi dengan format yang tidak mengandung format standar layaknya heading, paragraph, table dan lain sebagainya.

Sama dengan HTML, file XML berbentuk teks sehingga bila diperlukan dapat dibaca tanpa memerlukan bantuan software khusus. Hal ini memudahkan pengembang aplikasi yang menggunakan XML untuk men-debug programnya. XML lebih fleksibel dibanding HTML dalam hal kemampuannya menyimpan informasi dan data. Pada XML, data bisa disimpan, baik dalam atribut maupun sebagai isi elemen yang diletakkan di antara tag pembuka dan tag penutup.

Kelebihan lain yang dimiliki XML adalah bahwa informasi bisa dipertukarkan dari satu sistem ke sistem lain yang berbeda platform. Misalnya dari Windows ke Unix, atau dari PC ke Macintosh, bahkan dari internet ke handphone dengan teknologi WAP.

2.3.3 WSDL (Web Service Description Language)

WSDL adalah sebuah dokumen yang diajukan oleh World Wide Consortium (W3C) untuk mendeskripsikan service. Dokumen WSDL dibentuk dengan format XML yang isinya menjelaskan spesifikasi operasi yang dapat dilakukan oleh sebuah service. WSDL dapat dikatakan sebagai “kontrak” yang menjamin service yang tersedia. WSDL menyediakan deskripsi lengkap Web Service berupa:

a. Nama Web Service dan informasi pengalamatan

b. Protokol dan gaya encoding yang digunakan saat mengakses operasi publik Web Service


(31)

c. Tipe informasi seperti operasi, parameter, dan tipe data yang membentuk antarmuka Web Service.

Dalam dokumen WSDL terdapat pernyataan versi XML yang dipakai. Kemudian sebuah komponen root Definition yang merupakan tag tertinggi dalam dokumen WSDL. Tag-tag lainnya harus berada di dalam tag ini. Di dalamnya terdapat berbagai atribut berupa sebuah Name (nama service) dan sebuah TargetNameSpace dan nol atau lebih namespaces. Namespaces digunakan untuk menghindari konflik penamaan ketika beberapa service atau aplikasi diintegrasikan.

Sebuah komponen Definition mengandung komponen-komponen berikut:

a. Types, mendefinisikan tipe data yang digunakan dalam pesan, misal XSD. Di dalam bagian ini didefinisikan tipe-tipe data kompleks yang digunakan oleh Web Service. Tipe data sederhana seperti integer, double, dan string tidak didefinisikan lagi.

b. Message merupakan bagian yang mengandung informasi yang dibutuhkan untuk melakukan operasi, serta parameter input dan output apa saja yang akan digunakan.

c. Operation adalah sebuah deskripsi abstrak dari aksi yang dilakukan oleh service. Setiap operation dapat disamakan dengan method atau function call dalam sebuah bahasa pemrograman tradisional. Di sini aksi SOAP didefinisikan dan pesan di-encode.

d. Port Type, mendefinisikan operasi yang tersedia dalam Web Service dan pesan yang digunakan untuk melakukan operasi.

e. Binding, menspesifikasikan Port Type, mendefinisikan operasi, protokol yang digunakan untuk memanggil operasi tersebut (HTTP atau SMTP), bagaimana operasi tersebut dilakukan, dan gaya binding yang diterapkan (document atau RPC).

f. Port, mendefinisikan alamat jaringan Web Service. Bagian ini biasanya direperesentasikan dengan sebuah string url http sederhana.

g. Service, dapat dianggap sebagai kontainer untuk sekumpulan fungsi sistem yang telah diekspos ke protokol-protokol berbasis web.


(32)

2.3.4 SOAP

SOAP mulanya merupakan kepanjangan dari Simple Object Access Protocol. Namun seiring dengan perkembangan Web Service, kepanjangan tersebut tidak lagi dipakai. Dalam Web Service, SOAP merupakan format standar dokumen berbentuk XML yang digunakan untuk melakukan proses request dan response antara Web Service dengan aplikasi yang memanggilnya. Peran SOAP di dalam teknologi Web Service adalah sebagai protokol pemaketan untuk pesan-pesan yang digunakan secara bersama.

SOAP menjadi sangat mudah diterima oleh berbagai pihak, terutama oleh kalangan TI karena protokol ini memanfaatkan berbagai teknologi yang sudah ada dan telah banyak digunakan. Misalnya untuk protokol transport, yang paling sering digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protokol transport lainnya. Sedangkan untuk format data, digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data.

SOAP menspesifikasikan secara jelas bagaimana cara untuk meng-encode header HTTP dan file XML sehingga program pada suatu komputer dapat memanggil program pada pada komputer lain dan mengirimkan informasi, dan bagaimana program yang dipanggil memberikan tanggapan.

Sebuah pesan SOAP terdiri dari SOAP Envelop dan bisa terdiri dari Attachments atau tidak memiliki attachment. SOAP Envelop tersusun dari SOAP Header dan SOAP Body. SOAP Attachment membolehkan data non-XML untuk dimasukkan ke dalam pesan SOAP.

Method-1 Method-2 … Method-n

APLIKASI SOAP Response (XML)


(33)

Gambar 2.5 Proses Perpesanan menggunakan SOAP

Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut.

a. Elemen envelope mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.

b. Elemen header berisi informasi yang sifatnya tambahan dan opsional.

c. Elemen body berisi panggilan dan respon terhadap informasi yang dipertukarkan antara Web Service dan aplikasi.

d. Elemen fault berisi pesan kesalahan yang terjadi pada waktu proses. Elemen ini bersifat opsional.

2.3.4.1Manfaat SOAP

Adapun manfaat penggunaan SOAP dalam Web Service adalah sebagai berikut.

1. Menggunakan SOAP melalui HTTP memberikan kemudahan komunikasi melewati proxy dan firewall.

2. SOAP memungkinkan penggunaan protokol transpor yang berbeda. 3. SOAP adalah protokol independen.

4. SOAP adalah bahasa yang independen.

2.3.4.2Kelemahan SOAP

SOAP memiliki beberapa kelemahan seperti berikut ini.

1. SOAP lambat jika dibandingkan dengan teknologi middleware seperti CORBA. 2. Kebanyakan penggunaan HTTP sebagai protokol transport digunakan dengan

ketidaktahuan bagaimana operasi dapat dimodelkan dalam HTTP.

3. Walaupun SOAP merupakan standar terbuka, tidak semua bahasa menyediakan layanan ini. JAVA, Delphi, .Net dan Flex menawarkan integrasi SOAP dengan layanan IDE dengan sangat baik. Sedangkan Python dan PHP memiliki layanan yang lebih lemah.


(34)

2.3.5 UDDI (Universal Description, Discovery, and Integration)

UDDI (Universal Description, Discovery, and Integration) adalah spesifikasi yang diakui secara luas untuk mendaftarkan suatu Web Service. UDDI mendefinisikan metadata dan protokol yang digunakan untuk mengetahui dan mengubah informasi dari Web Service. Registri ini dapat digunakan untuk jaringan publik maupun dalam sebuah infrastruktur internal organisasi.

UDDI menawarkan sebuah mekanisme berstandar untuk mengklasifikasi, mengkatalog, dan mengatur Web Services sehingga dapat ditemukan dan digunakan oleh aplikasi lain. Dengan demikian, UDDI menawarkan beberapa manfaat penting bagi sebuah organisasi, yakni:

1. Mempublikasikan informasi tentang Web Service dan mengkategorisasikan aturan-aturan yang spesifik pada sebuah perusahaan.

2. Menemukan Web Service (dalam sebuah organisasi atau dalam organisasi lain) yang memenuhi kriteria yang diperlukan.

3. Menentukan protokol transport dan keamanan yang didukung oleh Web Service dan parameter yang dibutuhkan untuk memanggil service.

4. Menyediakan cara untuk melindungi aplikasi (dan menyediakan routing intelijen) dari kegagalan atau perubahan dalam service.

Dalam UDDI, penyimpanan dilakukan dalam tiga cara yaitu:

1. Public UDDI, dianggap sebagai sumber (resource) bagi Web Service berbasis internet. Salah satu contohnya adalah UDDI Businnes Registry (UBR) yang terdiri dari IBM, Micosoft, SAP.

2. Intra Enterprise UDDI, merupakan tempat penyimpanan pribadi yang menyediakan service bagi kalangan internal suatu perusahaan.

3. Inter Enterprise UDDI, merupakan repository yang dapat diakses oleh perusahaan-perusahaan yang merupakan rekanan bisnis.


(35)

2.4 Cara Kerja Web Service

Berikut contoh skenario cara kerja Web Service. Kasusnya berupa pengaksesan sistem permintaan stok perusahaan B oleh perusahaan A. Skenario awal diperlihatkan pada Gambar 2.6.

Gambar 2.6 Contoh transaksi Web Service

Pada gambar di atas, perusahaan A ingin menggunakan sistem permintaan stok yang disediakan oleh perusahaan B. Langkah pertama, perusahaan A harus mencari tahu tentang Web Service perusahaan B. Hal ini dilakukan dengan menggunakan regisri UDDI.

Dalam penggunaannya, ada kekuatiran yang muncul bahwa UDDI dapat digunakan oleh sembarang pihak. Hal ini tidak benar. Seperti transaksi bisnis pada umumnya, UDDI hanya dapat diakses oleh pihak-pihak yang telah saling mengenal dan bekerja sama.

Pada dasarnya, UDDI menyediakan cara untuk mempublikasikan informasi tentang Web Service terbaru yg tersedia. Atau untuk menyediakan informasi tentang antarmuka Web Service yang telah diubah. Sebuah contoh UDDI ditunjukkan pada program di bawah.

<find_business generic='1.0' xmlns='urn:uddi-org:api'> <name>Company B</name>

</find_business>

Selanjutnya, Gambar 2.7. menggambarkan perusahaan A menerima sebuah dokumen berisikan daftar Web Service yang dimilki oleh perusahaan B.


(36)

Gambar 2.7 Perusahaan A mengambil data WSDL dari UDDI untuk dapat mengakses web service perusahaan B

Untuk menyederhanakan contoh, diasumsikan perusahaan B hanya mempunyai satu buah Web Service. Maka respon dari UDDI berupa program di bawah ini.

<businessList generic="1.0" operator="Company B" truncated="false" xmlns="urn:uddi-org:api">

<businessInfos>

<businessInfo businessKey="cbfa05fb-277d-4b7e-a101-e6925b376c18">

<name>Company B</name>

<description xml:lang="en"> A leading provider of financial services

</description> <serviceInfos>

<serviceInfo serviceKey="5f73eff6-7a85-41cf-99d9-66cda3a82e63"

businessKey="cbca05fb-277d-4b7e-a101-e6925b376c18"> <name>Stock Ordering Service</name>

</serviceInfo> </serviceInfos> </businessInfo> </businessInfos> </businessList>

Pada program di atas, terlihat nilai serviceKey untuk service permintaan stok. Perusahaan A dapat menggunakan nilai serviceKey untuk menghasilkan query untuk mendapatkan informasi binding mengenai service permintaan stok dengan menggunakan XML di program berikut ini.

<get_serviceDetail generic='1.0' xmlns='urn:uddi-org:api'>

<serviceKey>5f73eff6-7a85-41cf-99d9-66cda3a82e63</serviceKey> </get_serviceDetail>

Informasi binding yang telah diterima dari pesan get_serviceDetail seperti terlihat pada penggalan program berikut.


(37)

<serviceDetail generic="1.0" operator="Company B" truncated="false" xmlns="urn:uddi-org:api">

<businessService serviceKey="be1a0b34-e2f1-4f4b-dae6-258c338ae358"

businessKey="cbea05fb-277d-4b7e-a101-e6925b376c18"> <name>Stock Ordering Service</name>

<description xml:lang="en">NYSE and Nasdaq Stock Ordering Service.</ description> <bindingTemplates> <bindingTemplate serviceKey="be1a0b34-e2f1-4f4b-aae6-258c338ae358" bindingKey="00cbd2b2-2333-4f85-b144-369be3d95f7c">

<description xml:lang="en">NASDAQ and NYSE Stock Ordering Service with real-time trades.</description> <accessPoint URLType="https">https://www.stockorder.com/Stock</ accessPoint> <tModelInstanceDetails> <tModelInstanceInfo tModelKey="uuid:64c756d1-3374-4e00-ae83-ee12e38fae63">

<description xml:lang="en">Stock Ordering Service.</description> </tModelInstanceInfo> </tModelInstanceDetails> </bindingTemplate> <categoryBag> <keyedReference tModelKey="uuid:a035a07c-f362-44dd-8f95-e2b134bf43b4" keyName="KEYWORD" keyValue="STOCK"></keyedReference> </categoryBag> </businessService> </serviceDetail>

Sekarang perusahaan A telah memiliki informasi yang cukup untuk mendapatkan dokumen WSDL dari perusahaan B. WSDL diperlukan perusahaan A untuk membangun pesan SOAP yang akan dikirimkan kepada service permintaan stok dari perusahaan B. Pesan WSDL ditunjukkan pada program berikut ini.

<?xml version="1.0"?> <definitions name="StockQuote" targetNamespace="http://stockorder.com/stockorder.wsdl" xmlns:tns="http://stockorder.com/stockquote.wsdl" xmlns:xsd1="http://stockorder.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <xsd:schema targetNamespace="https://www.stockorder.com/Stock" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"> <xsd:element name="StockOrderRequest"> <xsd:complexType> <xsd:all> <xsd:element name="tickerSymbol"


(38)

type="string"/>

<xsd:element name="quantity" type="string"/> <xsd:element name="market" type="string"/> </xsd:all>

</xsd:complexType> </xsd:element>

</xsd:schema> </wsdl:types>

<!-- request StockOrder is of type StockOrderRequest --> <wsdl:message name="GetLastTradePriceInput">

<wsdl:part name="body" element="xsd1:TradePriceRequest"/> </wsdl:message>

<wsdl:portType name="StockOrderPortType"> <wsdl:operation name="StockOrder">

<wsdl:input message="tns:StockOrderRequest"/> <wsdl:output message="tns:StockOrderRequest"/> </wsdl:operation>

</wsdl:portType>

<wsdl:binding name="StockOrderSoapBinding" type="tns:StockOrderPortType">

<soap:binding style="document" transport="http:// schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="GetLastTradePrice">

<soap:operation soapAction="http://www.stockquote.com/ StockOrder"/>

<wsdl:input>

<soap:body use="literal"/> </wsdl:input>

<wsdl:output>

<soap:body use="literal"/> </wsdl:output>

</wsdl:operation> </wsdl:binding>

</wsdl:definitions>

Seperti terlihat pada program di atas, dokumen WSDL dapat memberikan pengakses Web Service semua informasi yang diperlukan untuk merancang pesan SOAP. Pada tahap ini, sebuah pesan SOAP dapat dikirim dari perusahaan A kepada perusahaan B. Tindakan ini diilustrasikan dalam Gambar 2.8.


(39)

.

Gambar 2.8 Perusahaan A mengirim pesan SOAP kepada perusahaan B

Program di bawah ini menampilkan pesan SOAP yang dikirimkan perusahaan A kepada perusahaan B.

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header>

</SOAP-ENV:Header> <SOAP-ENV:Body

<StockOrder:StockOrder

xmlns:StockOrder="https://www.stockorder.com/Stock"> <StockOrder:symbol>SGP</StockOrder:symbol>

<StockOrder:quantity>2000</StockOrder:quantity> <StockOrder:market>New York</StockOrder:market> </order:buy>

</SOAP-ENV:Body> </SOAP-ENV:Envelope>

Setelah ini, perusahaan B dapat memberikan pesan SOAP yang berisikan data permintaan stok yang diminta oleh perusahaan A. Dengan demikian kedua perusahaan tersebut bertukar data dengan menggunakan pesan SOAP.

2.5 Software yang Dibutuhkan

2.5.1 XAMPP

Software XAMPP adalah freeware yang dapat di-download melalui situs SourceForge. XAMPP adalah software instalasi lengkap yang berisi Apache, PHP dan MySQL.


(40)

XAMPP juga memiliki phpMyAdmin, yaitu sebuah program untuk mengatur database MySQL.

Instalasi XAMPP dapat dilakukan dengan mudah, hanya dengan men-download programnya di www.sourceforge.net. Kemudian instal program tersebut di direktori yang diinginkan. Tidak perlu ada perubahan di Windows registri dan tidak perlu untuk mengedit file konfigurasi. XAMPP mempunyai versi stabil yang tersedia untuk Windows, termasuk Vista dan untuk beberapa versi Linux. Sebagai tambahan, versi XAMPP juga tersedia untuk MAC dan Solaris, tetapi versi-versi ini masih baru dan belum teruji dan dikembangkan secara baik.

Sotware yang digunakan dalam tugas akhir ini adalah XAMPP 1.7.1, yang terdiri dari software-software pendukung sebagai berikut:

a. Apache HTTPD 2.2.11 + Openssl 0.9.8i b. MySQL 5.1.33

c. PHP 5.2.9

d. phpMyAdmin 3.1.3.1 e. XAMPP CLI Bundle 1.3 f. FileZilla FTP Server 0.9.31

g. Mercury Mail Transport System 4.62

2.5.2 Sun Java SDK

Sun Java SDK adalah Java SDK yang diproduksi oleh Sun Microsystems, dimana Sun adalah pencipta Java itu sendiri. Sun Java SDK adalah sebuah produk open source dengan lisensi GPL. Source codenya dapat di-download di websitenya. Selain GPL, source code Sun Java SDK juga memiliki lisensi lain, yaitu SCSL dan JRL.


(41)

18 bulan, dari awal tahu Patrick Naughton, Mike Sheridan, pemrogram lainnya dari Duke yang dibuat ole

Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road d sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan orang dari proyek The Green Project tertarik untuk mengembangkannya. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan

Perambah (browser perambah Java pertama yang dinamai Web Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java. Mulanya, nama Oak akan dipakai sebagai nama program ini Nama ini diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak Java", karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.

Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan program ini diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal


(42)

kemudian terjadi perpecahan di antara para pemimpin proyek pengembangan Java ini. Tiga dari pimpinan utama proyek,

2.5.2.2 Kelebihan Java

Java memiliki beberapa kelebihan, antara lain:

a. Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform menulis sebuah program Java dan dikompilasi (diubah dari bahasa yang dimengerti manusia menjadi bahasa mesin/bytecode) sekali, lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis Java dikerjakan di sistem operasi Linux dan tetap dapat dijalankan dengan baik di sistem operasi Microsoft Windows. Platform yang didukung sampai saat ini adalah

b.

artinya semua aspek yang terdapat di Java adalah satu bahasa pemrograman berbasis objek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk me kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi yang advance seperti antara komputer sekalipun.

c. Perpustakaan kelas yang lengkap. Java terkenal dengan kelengkapan library pemrograman Java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini


(43)

didukung oleh keberadaan komunitas Java yang terus menerus membuat beragam perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi. d. Bergaya C++. Java memiliki sintaks seperti bahasa pemrograman

menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.

e. Java memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

2.5.2.3. Kekurangan Java

Selain berbagai kelebihan tersebut, Java juga memiliki beberapa kekurangan berupa:

a. Kompatibilitas. Masih ada beberapa hal dalam Java yang tidak kompatibel antara bridge sampai sekarang tidak berfungsi pad

b. Mudah dibajak. Program pada Java mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.

c. Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru


(44)

(karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang memiliki komputer dengan spesifikasi terdahulu.

2.5.3 NetBeans IDE

Banyak pihak telah membuat Pengembangan Terintegrasi) untuk Java. Beberapa di antaranya adalah:

a.

b.

c.

pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain. Netbeans adalah salah satu IDE Java yang sangat komplit karena mendukung pengembangan semua tipe aplikasi Jav aplikasi

NetBeans dibentuk oleh Sun Microsystems pada bulan Juni 2000 sebagai proyek open source. Versi terkininya memiliki Matisse, sebuah GUI Editor yang menurut pendapat umum merupakan yang terbaik. NetBeans merupakan sebuah proyek open source yang sukses dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra.

Semua fungsi pada IDE disediakan oleh berbagai modul. Setiap modul menyediakan sebuah fungsi yang terdefinisikan dengan baik (well defined function). Misalnya seperti dukungan dan penyuntingan untuk bahasa


(45)

pengembangan Java dalam satu download, memungkinkan pengguna untuk segera bekerja. Pemrograman modular juga memungkinkan NetBeans untuk diperluas.

Fitur-fitur baru seperti dukungan untuk bahasa pemrograman lain, dapat ditambah dengan meng-instal modul tambahan. Sebagai contoh, Studio Enterprise, dan dibentuk berdasarkan NetBeans IDE.

Dari Juli 2006 hingga 2007, NetBeans IDE berada di bawah lisensi pada NetBeans akan kemudian ditawarkan dengan dua lisensi, CDDL da


(46)

BAB III

ANALISIS DAN PERANCANGAN WEB SERVICE

3.1 Latar Belakang Masalah

Seiring dengan perkembangan internet, teknologi komputer juga terus berkembang. Banyak program dan sistem komputer dikembangkan untuk semakin memutakhirkan aplikasi agar dapat digunakan di internet. Sebuah organisasi dapat memiliki banyak aplikasi komputer yang dibuat dengan bahasa pemrograman dan platform yang berbeda-beda. Masalah timbul ketika aplikasi-aplikasi tersebut perlu beroperasi bersama untuk melakukan suatu fungsi layanan tertentu.

3.2 Penyelesaian Masalah

Agar masalah perbedaan bahasa pemrograman tidak menjadi penghambat bagi aplikasi dalam berkomunikasi dan bertukar data maka dirancanglah suatu metode bernama Web Service. Pada dasarnya, Web Service memandang aplikasi sebagai sebuah service dalam web. Penggunaan protokol transport HTTP dan format data XML dalam Web Service sebagai standar web yang sudah umum dipakai, memungkinkan untuk menghubungkan berbagai service dalam web tanpa menyinggung masalah perbedaan bahasa pemrograman yang ada.

Guna menunjukkan fungsi dan cara kerja Web Service dalam tugas akhir ini, maka dirancanglah sebuah sistem Web Service berupa aplikasi perekaman data murid. Dalam kasus ini, server sebagai penyedia service mempunyai sebuah database yang berisikan data murid. Database dibuat dengan MySQL dan dapat diakses dengan bahasa pemrograman PHP.


(47)

Program aplikasi yang dimiliki oleh server ini mempunyai beberapa fungsi, yaitu:

1. Membuat data murid baru

2. Memodifikasi data murid yang sudah ada 3. Menghapus data murid

4. Mendapatkan data seluruh murid, dan 5. Menampilkan data seorang murid

Program aplikasi server ini nantinya diubah menjadi Web Service agar dapat diakses oleh klien.

Sedangkan pengguna service atau klien hendak membangun aplikasi perekaman data murid dengan menggunakan bahasa pemrograman Java. Agar aplikasi klien dapat mengakses database server dan menggunakannya, maka dibangunlah Web Service.

3.3 Perancangan Web Service

Tahap pertama, database dirancang sedemikian rupa sehingga dapat menyimpan data murid berupa No. Induk, Nama, Kelas, dan Alamat. Database yang digunakan adalah MySQL. Database tersebut diakses dengan menggunakan bahasa pemrograman PHP. Agar dapat diakses oleh aplikasi/service lain, maka aplikasi diubah menjadi Web Service dengan menggunakan Web Service Helper. Program ini dengan otomatis akan membangkitkan WSDL bagi service perekaman data murid.

Di sisi klien, sebuah aplikasi berupa antarmuka untuk mempermudah perekaman data murid dibuat dengan menggunakan bahasa pemrograman Java. Selanjutnya, aplikasi tersebut diubah menjadi Web Service secara otomatis oleh Apache Axis.

Pada hakikatnya, service yang dimiliki oleh server dan klien memiliki fungsi yang sama, yaitu merekam data murid. Tetapi keduanya dibangun dengan bahasa pemrograman yang berbeda, yaitu PHP dan Java. Pada kasus ini, server dan klien


(48)

diasumsikan memiliki komputer yang berbeda sehingga keduanya memerlukan Web Service untuk dapat saling berhubungan.

Tahapan pembuatan Web Service dari sisi server adalah sebagai berikut

Gambar 3.1.a Flowchart tahap pembuatan Web Service pada sisi server MULAI

Buat database menggunakan MySQL

• Nomor Induk

• Nama

• Kelas

• Alamat

Buat program pengakses database dengan PHP

index,php

Buat class untuk menyimpan data murid

Student.class.php

A Buat class untuk memodifikasi data

murid


(49)

Gambar 3.1.b Flowchart tahapan pembuatan Web Service (lanjutan)

Selanjutnya, tahapan pembuatan Web Service dari sisi klien adalah:

Gambar 3.2 Tahap pembuatan web service pada sisi klien

A

config.php Menjadikan class sebagai Web Service

Membangkitkan dokumen WSDL

StudentManager.wsdl

SELESAI

MULAI

Buat aplikasi Java untuk mengakses database

StudentFrame.java dan

Main.java

Buat Web Service secara otomatis dengan Axis


(50)

3.4 Perancangan Antarmuka

Gambar 3.3 Perancangan antarmuka aplikasi Web Service

Keterangan: 1. Menu “File”

Jika dipilih, maka akan keluar 2 submenu, yaitu:

a. Ambil Data, yaitu pilihan untuk mengambil data tersedia di server. b. Keluar, yaitu pilihan untuk keluar dari aplikasi.

2. Tombol “<<”

Merupakan tombol yang berfungsi untuk menampilkan satu data sebelum data yang tampil.

3. Tombol “>>”.

Merupakan tombol yang berfungsi untuk menampilkan satu data setelah data yang tampil. Textbox yang berada di antara tombol “<<” dan “>>” menunjukkan urutan data yang sedang ditampilkan oleh aplikasi. Pada gambar di atas, data yang ditampilkan merupakan data pertama.

<< 1 >> Sunting Hapus Simpan Tambah Siawa File

Nomor Induk Nama Kelas Alamat

1203948912

John Doe

9

Jl. Sei Belutu No. 17A Medan Ambil Data


(51)

4. Tombol “Sunting”

Merupakan tombol yang berfungsi untuk membuat agar data yang ditampilkan dapat disunting atau diedit. Jika tombol ini ditekan, data yang tadinya hanya ditampilkan, akan dapat disunting.

5. Tombol “Hapus”

Adalah tombol untuk menghapus data siswa.

6. Tombol “Simpan”

Yaitu tombol yang berfungsi untuk menyimpan data dari aplikasi ke komputer server.

7. Tombol “Tambah Siswa”

Yaitu tombol yang berfungsi untuk menambahkan data siswa dari aplikasi ke database yang berada di komputer server.


(52)

BAB IV

IMPLEMENTASI PERANGKAT LUNAK

4.1 Implementasi

Dari hasil perancangan sistem yang dilakukan, maka proses selanjutnya adalah tahap implementasi ke dalam bentuk program komputer. Input yang dibutuhkan berupa data murid yang disimpan dalam database milik server. Oleh karena itu, pembangunan sistem Web Service dimulai dari sisi server.

4.2. Implementasi Web Service pada Server

Rancangan Web Service pertama dimulai dari sisi server. Untuk membuat Web Service, mula-mula dirancang database yang dibangun dengan data seperti berikut:

1. Nomor Induk dengan tipe data Char(10). 2. Nama dengan tipe data Varchar(50). 3. Kelas dengan tipe data Integer(11). 4. Alamat dengan tipe data Varchar(100).

Database tersebut dibangun menggunakan file student.sql. Untuk menjalankannya digunakan program phpMyAdmin yang terdapat dalam bundle program XAMPP. Berikut adalah hasil pembentukan database di phpMyAdmin :


(53)

Gambar 4.1 Database Student di phpMyAdmin

File pengakses database berbasis PHP dibuat dan diberi nama index.php. File ini diletakkan dalam folder Student di folder htdocs milik XAMPP (C:\Program Files\xampp\htdocs\student).

Dalam folder student tersebut, diletakkan folder WSH yang nantinya akan men-generate file PHP menjadi Web Service. Setelah itu, file yang akan dijadikan Web Service dibuat. File pertama adalah Student.class.php. File ini berfungsi untuk mengenkapsulasi data murid. File kedua yaitu StudentManager.class.php. File ini akan dijadikan sebagai web service yang berfungsi untuk:

a. Membuat data murid baru b. Memodifikasi data murid c. Menghapus data murid

d. Mendapatkan data seluruh murid, dan e. Menampilkan data seorang murid

Kedua file tersebut diletakkan di dalam folder ws\lib\data objects. File config.php yang ada dalam folder ws harus dimodifikasi sedemikian rupa, agar kedua file tersebut dapat diaktifkan sebagai Web Service.


(54)

Untuk mengetahui apakah Web Service tersebut telah aktif atau tidak, buka browser. Jika Web Service sudah aktif, maka akan tampil seperti ini:

Gambar 4.2 Web Service yang sudah aktif

Saat alamat tersebut diakses, WSH akan men-generate file StudentManager.wsdl pada folder wsdl yang ada di dalam folder ws (C:\Program Files\xampp\htdocs\student\ws\wsdl\StudentManager.wsdl). File WSDL diperlukan agar Web Service dapat diakses oleh aplikasi lain. Dengan demikian, pembuatan Web Service pada sisi server dengan menggunakan PHP telah selesai.


(55)

Agar Web Service tersebut dapat diakses oleh klien, harus dipastikan bahwa server berfungsi dengan baik. Pengendalian server (Apache) dalam XAMPP dapat dilakukan dengan menggunakan XAMPP Control Panel. Aktif tidaknya server dapat juga dilihat melalui Task Manager.

Gambar 4.4 Task Manager

4.3. Implementasi Web Service pada Sisi Klien

Data pada server telah selesai dibangun, maka selanjutnya pada sisi klien akan dibuat program aplikasi pengakses database berbasis Java. Program yang akan dibangun memiliki fungsi yang sama dengan yang ada pada server, yaitu:

a. Membuat data murid baru b. Memodifikasi data murid c. Menghapus data murid

d. Mendapatkan data seluruh murid, dan e. Menampilkan data seorang murid


(56)

Gambar 4.5 Tampilan awal program perekaman data pada klien

Pada tampilan awal aplikasi, tidak ada data yang ditampilkan dan tombol-tombol dinonaktifkan. Hal ini dikarenakan data yang ada pada server belum diambil oleh aplikasi. Untuk mengambil data dari sever, pengguna dapat memilih menu submenu “Ambil Data” dari menu “File”.

Gambar 4.6 Mengambil data murid yang sudah ada dari Server

Data yang diambil dari server ditampilkan satu per satu dalam aplikasi dan tombol-tombol untuk memodifikasi data diaktifkan.


(57)

Gambar 4.7 Data pertama yang ada pada server

Untuk melihat data selanjutnya, pengguna dapat menekan tombol “>>”.

Gambar 4.8 Data kedua dari Server

Pada gambar terlihat bahwa hanya terdapat tiga tombol yang aktif, yaitu “Sunting”, “Hapus”, dan “Tambah Siswa”. Tombol “Simpan” tidak diaktifkan karena saat ini program hanya berfungsi untuk menampilkan data saja. Tombol “Simpan” hanya akan diaktifkan jika data mengalami perubahan seperti modifikasi data atau penghapusan data, atau penambahan data.


(58)

Tombol “Sunting” dapat digunakan bila pengguna/klien ingin mengubah salah satu data, tekan. Misalkan data yang ingin diubah adalah data kedua. Pada data ini, nama murid yang bernama Jane Doe akan diganti menjadi Jan Peter.

Gambar 4.9 Data yang akan disunting

Tekan tombol “Sunting”, maka baris-baris yang menampilkan data berubah menjadi aktif dan dapat disunting. Selain itu, tombol “Simpan” juga diaktifkan. Hal ini dimaksudkan agar setelah data diubah, maka data dapat disimpan kembali ke server. Dengan demikian, setiap perubahan yang dilakukan oleh klien akan berlaku terhadap data yang ada di server.


(59)

Untuk memastikan bahwa perubahan data terjadi pada server, maka buka phpMyAdmin. Seperti terlihat pada gambar di bawah, data pada server telah berubah.

Gambar 4.11 Penyuntingan data pada server berhasil dilakukan

Tombol “Tambah Siswa” memungkinkan klien menambah data siswa yang ada pada server. Jika tombol ini ditekan, otomatis semua baris data akan menjadi kosong. Dengan demikian, klien dapat menuliskan data murid yang akan ditambah. Perhatikan bahwa no rekam data secara otomatis bertambah satu. Hal ini berarti bahwa data murid yang baru akan dimasukkan sebagai data tambahan setelah data terakhir.

Gambar 4.12 Tampilan setelah tombol “Tambah Siswa” ditekan

Setelah selesai menuliskan data tambahan, klien dapat menekan tombol “Simpan” untuk meyimpan data tersebut.


(60)

Gambar 4.13 Data yang akan ditambahkan oleh Klien

Setelah tombol “Simpan” ditekan, maka secara otomatis aplikasi akan menampilkan data dari urutan pertama (lihat Gambar 4.9). Untuk melihat apakah data baru tersebut telah masuk, tekan tombol “>>” hingga sampai kepada urutan data yang baru.

Gambar 4.14 Tampilan awal setelah penambahan data murid


(61)

Gambar 4.15 Data yang telah ditambahkan

Untuk memastikan agar data tidak dapat diubah lagi, maka tekan kembali tombol “Sunting”. Maka baris-baris yang menampilkan data akan kembali nonaktif.

Gambar 4.16 Tampilan setelah tombol “Sunting” diaktifkan kembali

Untuk memastikan apakah perubahan benar-benar terjadi pada server, buka kembali phpMyAdmin. Seperti yang terlihat pada gambar di bawah, data baru telah ditambahkan pada database Student.


(62)

Gambar 4.17 Penambahan data pada server berhasil dilakukan

Selanjutnya, untuk menghapus data salah satu murid dapat digunakan tombol “Hapus”. Misalkan yang akan dihapus adalah data murid no.2, yaitu Jan Peter.

Gambar 4.18 Data yang akan dihapus

Setelah tombol “Hapus” ditekan, maka aplikasi secara otomatis menampilkan kembali data dari urutan pertama (Gambar 4.13).


(63)

Gambar 4.19 Tampilan setelah tombol “Hapus” ditekan

Untuk memastikan bahwa data tersebut memang telah dihapus, maka dapat ditelusuri kembali data yang ada dengan menekan tombol “>>”. Tombol “>>” yang nonaktif menunjukkan bahwa data yang ditampilkan adalah data terakhir. Dengan demikian, maka benar bahwa data tersebut telah dihapus.

Gambar 4.20 Data terakhir setelah data kedua dihapus

Untuk memastikan perubahan telah terjadi di server, bukalah kembali phpMyAdmin. Maka terlihat pada gambar bahwa data Jan Peter pada database server telah terhapus.


(64)

Gambar 4.21 Penghapusan data pada server berhasil dilakukan

Pada dasarnya, Web Service adalah komponen dari aplikasi yang dibuat sedemikian rupa agar dapat diakses oleh aplikasi lain melalui jaringan web. Jadi, perubahan apapun yang hendak dilakukan oleh Web Service klien tidak akan dapat terjadi bila keduanya tidak terhubung.

Misalkan sistem server mengalami kerusakan sehingga tidak dapat diakses oleh klien, maka Web Service pada klien dapat tetap berjalan, tetapi tidak dapat mengakses database yang ada pada server.


(65)

Gambar 4.23 Tampilan awal aplikasi klien

Perhatikanlah gambar di atas. Pada saat dijalankan, Web Service klien dapat berjalan dengan baik. Tetapi, pada saat aplikasi mengambil data yang ada pada server, tidak ada data yang ditampilkan. Dan hanya tombol ”Tambah siswa” yang aktif.

Gambar 4.24 Tampilan aplikasi klien saat server tidak dapat diakses

Jika tombol ”Tambah siswa” ditekan, maka semua baris data akan aktif, demikian juga tombol ”Sunting”, ”Hapus”, dan ”Simpan”. Dengan demikian, data dapat diisi seperti biasa. Tetapi, saat tombol ”Simpan” dihapus, tidak terjadi perubahan apa-apa. Hal ini dikarenakan aplikasi klien tidak dapat mengakses aplikasi server sehingga perubahan data yang terjadi tidak dapat diaplikasikan pada server.


(66)

Gambar 4.25 Aplikasi klien tidak berfungsi dengan benar karena tidak adanya hubungan dengan server

Listing program selengkapnya dapat dilihat pada CD yang disertakan dalam laporan tugas akhir ini.


(1)

private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JMenu jMenu1;

private javax.swing.JMenuBar jMenuBar1; private javax.swing.JPanel jPanel1;

private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1;

private javax.swing.JPopupMenu.Separator jSeparator2; private javax.swing.JTextField kelas;

private javax.swing.JMenuItem keluar; private javax.swing.JTextField nama; private javax.swing.JTextField no_induk; private javax.swing.JTextField no_rekam; private javax.swing.JMenuItem sambungkan; private javax.swing.JButton sebelumnya; private javax.swing.JButton selanjutnya; private javax.swing.JButton simpan;

private javax.swing.JToggleButton sunting; private javax.swing.JButton tambah;

// End of variables declaration /**

* Inisialisasi saat obyek kelas ini dibuat. */

private void initYangLain() {

students = new ArrayList<Student>(); // Daftar siswa-siswa. rekamBaru = false; // Flag untuk modus penambahan data baru. }

/**

* Method ini untuk pindah ke rekam yang disediakan. Method ini mengaktifkan

* juga tombol-tombol yang perlu, dan sebaliknya.

* @param nomorRekam Indeks dari rekam siswa yang hendak ditampilkan.

*/

private void setPage(int nomorRekam) {

// Kalau memang tidak ada data, tidak usah menampilkan apa-apa.

if (students.isEmpty()) { no_rekam.setText("0"); no_rekam.setEnabled(false); sunting.setEnabled(false); hapus.setEnabled(false); simpan.setEnabled(false); sebelumnya.setEnabled(false); selanjutnya.setEnabled(false); no_induk.setText("");

no_induk.setEditable(false); nama.setText("");

nama.setEditable(false); kelas.setText("");

kelas.setEditable(false); alamat.setText("");

alamat.setEditable(false); return;


(2)

// Kalau ada orang yang salah memasukkan data, balikkan ke nomor yang

// valid.

if (nomorRekam <= 0 && nomorRekam > students.size()) { no_rekam.setText(this.nomorRekam + "");

return;

} else { // Kalau benar.

this.nomorRekam = nomorRekam;

no_rekam.setText(this.nomorRekam + ""); }

// SET FIELD-FIELD YANG DIBUTUHKAN

Student student = students.get(nomorRekam - 1); no_induk.setText(student.getNomor_induk()); nama.setText(student.getNama());

kelas.setText(student.getKelas()); alamat.setText(student.getAlamat()); // SET NOMOR REKAM YANG AKTIF

this.nomorRekam = nomorRekam; // SET TOMBOL-TOMBOL KONTROL sunting.setEnabled(true); no_rekam.setEnabled(true);

if (nomorRekam == 1 || students.size() == 1) { sebelumnya.setEnabled(false);

} else {

sebelumnya.setEnabled(true); }

if (nomorRekam == students.size()) { selanjutnya.setEnabled(false); } else {

selanjutnya.setEnabled(true); }

} /**

* Method ini membaca isi dari field no_rekam (nomor rekam) dan dikonversikan

* ke dalam bilangan integer untuk diproses lebih lanjut. Data itu akan

* dipakai untuk berpindah ke indeks rekam. */

private void lakukan() { try {

int noRek = Integer.parseInt(no_rekam.getText()); if (noRek > 0 && noRek <= students.size()) { setPage(noRek);

return; }

} catch (Exception e) { e.printStackTrace(); }

no_rekam.setText(this.nomorRekam + ""); }


(3)

/**

* Method ini mengaktifkan dan menonaktifkan setiap field rekam siswa

* berdasarkan kondisi tombol Sunting. Ia mengatur modus sunting. */

private void toggleSuntingData() {

no_induk.setEditable(sunting.isSelected()); nama.setEditable(sunting.isSelected()); kelas.setEditable(sunting.isSelected()); alamat.setEditable(sunting.isSelected()); simpan.setEnabled(sunting.isSelected()); }

////////////////////////////////// //

// BAGIAN YANG MEMANGGIL WEB SERVICE //

////////////////////////////////////////////////

/**

* Update Siswa digunakan untuk mengupdate data siswa. */

private void updateDataSiswa() { try {

// Webservice yang dipanggil... StudentManagerPortType service = new StudentManagerLocator().getStudentManagerPort();

Student[] studentList = service.getAllStudents(); // Semua data yang lama dihapus.

students.clear();

// Jika data yang didapatkan tidak kosong, maka masukkan data-data

// tersebut ke dalam data. if (studentList != null) {

for (Student student : studentList) { students.add(student);

} }

} catch (RemoteException ex) { //

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Server tidak dapat dihubungi."); } catch (ServiceException ex) {

//

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Gagal saat menjalankan web service getAllStudents().");

} } /**

* Method ini menghapus data berdasarkan nomor induk. * @param nomorInduk Nomor induk siswa.


(4)

* @return true -> berhasil, false -> gagal */

private boolean hapusData(String nomorInduk) { try {

StudentManagerPortType service = new StudentManagerLocator().getStudentManagerPort();

String result = service.deleteStudent(nomorInduk); if (!result.isEmpty()) {

return true; }

} catch (RemoteException ex) { //

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Server tidak dapat dihubungi."); } catch (ServiceException ex) {

//

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Gagal saat menjalankan web service deleteStudent();");

}

return false; }

/**

* Method ini menambah data siswa baru.

* @param studentBaru Data siswa baru yang hendak ditambahkan. * @return true -> berhasil, false -> gagal

*/

private boolean tambahSiswa(Student studentBaru) { try {

StudentManagerPortType service = new StudentManagerLocator().getStudentManagerPort();

String result = service.addStudent(studentBaru); if (!result.isEmpty()) {

return true; // BERHASIL }

} catch (RemoteException ex) { //

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Server tidak dapat dihubungi."); } catch (ServiceException ex) {

//

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Gagal saat menjalankan web service addStudent().");

}

return false; }

/**

* Method ini mengubah data siswa yang sudah ada.

* @param studentBaru Data siswa baru yang hendak ditambahkan. * @return true -> berhasil, false -> gagal


(5)

private boolean ubahSiswa(Student studentBaru) { try {

StudentManagerPortType service = new StudentManagerLocator().getStudentManagerPort();

String result = service.updateStudent(studentBaru); if (!result.isEmpty()) {

return true; // BERHASIL }

} catch (RemoteException ex) { //

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Server tidak dapat dihubungi."); } catch (ServiceException ex) {

//

Logger.getLogger(StudentFrame.class.getName()).log(Level.SEVERE, null, ex);

System.err.println("Gagal saat menjalankan web service updateStudent().");

}

return false; }


(6)

File: main.java

/**

* Aplikasi utama untuk menjalankan StudentFrame. */

package main.lita; /**

*

* @author Lita Elisabeth */

public class Main { /**

* @param args the command line arguments */

public static void main(String[] args) {

java.awt.EventQueue.invokeLater(new Runnable() { public void run() {

new StudentFrame().setVisible(true); }

}); }