Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu Telah dibuat sebuah sistem infomasi kepariwisataan terpadu yang dikembangkan dengan menggunakan teknologi web service. Keperluan tersebut diuraikan contoh dua buah web service yaitu web service WisataBudayaJawa yang berfungsi untuk memberikan rekomendasi obyekobyek wisata di propinsi Jawa Tengah dan Daerah Istimewa Yogyakarta, dan web service kurs yang berfungsi untuk memberikan informasi harian mengenai nilai tukar sejumlah mata uang asing terhadap mata uang rupiah. Kedua web service tersebut saling diintegrasikan untuk memberikan gambaran mengenai sistem multi-tier serta dimanfaatkan untuk membangun sebuah program aplikasi web. Dari pengembangan sistem, diperoleh hasil yang menunjukkan bahwa web service sangat efektif untuk digunakan dalam pengembangan aplikasi karena programmer hanya memberikan input ke webservice dan mengambil hasil pengolahan data atau output dari web service. Sedangkan dari percobaan penggunaan web service pada komputer dengan sistem operasi Linux menunjukkan bahwa web service dapat digunakan pada komputer dengan sistem operasi yang berbeda dengan sistem operasi dimana web service tersebut dikembangkan. 2.2 Internet Internet berasal dari kata interconection networking yang mempunyai hubungan berbagai komputer dan berbagai tipe komputer yang membentuk sistem jaringan yang mencakup seluruh dunia (jaringan global) dengan melalui jalur telekomunikasi seperti telepon, 6 wireless dan lainnya. Internet juga dapat digambarkan sebagai kota elektronik berukuran raksasa, dimana setiap penduduk memiliki alamat masing-masing (internet address) yang dapat digunakan untuk berkirim surat. Pengguna internet dapat menjangkau semua orang dari berbagai usia dan melalui internet pula orang dapat berkomunikasi serta mendapatkan informasi secara on-line dan realtime. Internet menggunakan hitungan client/server untuk mengontrol pengiriman dan penerimaan informasi melalui internet. Hitungan client/server itu sangat sederhana, satu komputer (yang disebut server) menyediakan informasi. Komputer lainnya (client) akan menggunakan informasi itu, yang umumnya karena seseorang telah meminta komputer tersebut untuk menggunakannya. Kedua komputer tersebut dihubungkan dalam hal ini melalui jaringan kerja internet dan client tersebut dapat meminta sesuatu dari server dan server tersebut dapat mengirimkan jawaban. Proses komunikasi internet adalah sebagai berikut : transport layer mengambil aliran data dan memecah-mecahnya menjadi datagram. Datagram ditransmisikan melalui internet. Ketika aliran data tersebut mencapai mesin tujuan, potongan-potongan dihubungkan kembali oleh network layer menjadi datagram orisil. Kemudian datagram diserahkan ke transport layer, yang disisipkan kedalam aliran input proses penerima. 2.2.1 Internet Protocol (IP) Internet Protocol adalah perekat yang menyatukan internet bersama-sama. Sejak awal IP dirancang untuk tujuan internetworking. Tugasnya adalah menyediakan cara terbaik untuk membawa datagram dari sumber ke tujuan, tanpa 7 memperdulikan apakah mesin yang bersangkutan berada pada jaringan yang sama atau tidak, serta terdapat jaringan-jaringan lainnya antara sumber dan tujuan atau tidak. Sebuah diagram IP terdiri dari bagian header dan bagian teks. Header mempunyai bagian tetap sebesar 20 byte dan bagian optimal yang panjangnya dapat berubah-ubah. 2.2.2 Internet Protocol Address (IP Address) Setiap host dan router di internet memiliki alamat IP, yang meng-encode nomor jaringan dan nama host. Kombinasinya bersifat unik : tidak ada dua mesin yang memiliki alamat IP yang sama. Semua alamat IP mempunyai panjang 32 bit dan digunakan dalam field-field source address paket IP. Mesin-mesin yang terhubung ke jaringan yang banyak mempunyai alamat-alamat yang berbeda pada masingmasing jaringan. Format-format A, B, C dan D mengizinkan sehingga 126 jaringan dengan masing-masing 16 juta host, 16382 jaringan dengan 64 K host, 2 juta jaringan masing-masing 254 host dan multicast, dimana datagram ditujukan ke sejumlah host. Alamat jaringan yang berupa nomor dengan panjang 32 bit, biasanya ditulis dalam bentuk notasi desimal bertitik. Untuk setiap 4 byte ditulis dengan bilangan desimal mulai 0 sampai 255. Alamat IP terendah adalah 0.0.0.0 dan data yang tertinggi adalah 255.255.255.255. 8 2.2.3 World Wide Web (WWW) World Wide Web adalah koleksi informasi yang sangat luas yang tersebar ratusan ribu komputer. World Wide Web merupakan jaringan beribu komputer yang semuanya dibagi menjadi dua kategori yaitu client dan server. Melalui penggunaan software khusus dibentuk sebuah jaringan yang disebut jaringan client-server. World Wide Web adalah sebuah jaringan terdistribusi dimana tidak terdapat komputer pusat. Sebuah server di web tidak berfungsi, tidak akan mempengaruhi server lain. Server menyimpan informasi dan memproses permintaan client. Kemudian mengirimkan informasi yang diminta kepada client. Informasi mengandung semua jenis data termasuk gambar, suara dan teks. Server juga mengirimkan perintah-perintah kepada client tentang bagaimana menampilkan semua informasi. Instruksi tersebut dikirim dalam bentuk HTML. Kehebatan World Wide Web adalah tidak pernah tahu ke mana Anda pergi dan siapa yang perlu Anda hubungi. Hypertext mengaitkan lompatan otomatis dan memanggil informasi dari komputer mana saja yang diperlukan tanpa interaksi khusus dari pemakai. World Wide Web adalah yang paling berguna dari semua layanan internet. 2.2.4 Arsitektur Aplikasi Web Pada tingkat yang paling rendah, web bekerja pada arsitektur client server yang berarti antara keduanya baik sentral server dan aplikasi client bertanggungjawab pada 9 sejumlah proses, secara detail arsitektur aplikasi web digambarkan pada gambar 2.1. Berbeda dengan program lain yang dapat berjalan tanpa bantuan server. Relational Database (My SQL, Oracle, MSQL) Web Server Middleware (Apache, IIS,...dsb) (PHP, Coldfusion, ASP, ISP) Web Browser Internet (Internet Explorer, Netscape) Gambar 2.1 Arsitektur Aplikasi Web Berikut ini beberapa penjelasan dari gambar 2.1 arsitektur aplikasi web diatas : a. Client Aplikasi client tunggal yang dapat dikembangkan melalui My SQL dan PHP adalah web browser dan bahasa utama dari web browser adalah HTML yang menyedi akan sekumpulan teks yang ditampilkan. 10 menjelaskan bagaimana teks b. Server Kebanyakan dari seluruh pekerjaan aplikasi web terletak di server, aplikasi tersebut disebut sebagai web server yang akan bertanggung jawab untuk berkomunikasi dengan browser yang ada pada client. c. Sistem Operasi Web server, bahasa pemograman, database server harus bekerja dengan sistem operasi. Data base server adalah server yang menangani database. Banyak sekali sistem operasi yang populer saat ini, seperti Windows 98, Windows NT/2000, Macintosh, Unix, Linux dan masih banyak lagi lainnya. d. Web Server Web server merupakan penyimpan data web. Misalnya komputer A menyimpan data web miliknya sendiri. Ia memberikan service kepada komputer lain yang ingin mengakses data web tersebut (tentunya bila sudah ada koneksi antara komputer A dengan komputer lainnya tersebut). Hampir semua pekerjaan dari aplikasi web berada di server. Aplikasi web server tersebut bisa berupa Apache (web server yang bekerja pada Windows OS dan merupakan komponen kunci dari Microsoft ASP) dan sebagainya. e. Middleware PHP termasuk dalam class bahasa middleware. Bahasa ini bekerja pada web server sebagai interpreter permintaan dari client, memproses permintaan, menghubungkan dengan program-program lain diserver untuk memenuhi permintaan dan kemudian dikirimkan kembali ke browser client. 11 f. Relational Database Relational Database Management System (RDBMS) menyediakan cara yang terbaik untuk menyimpan dan mengakses suatu informasi yang komplek. Beberapa RDBM komersial yang populer antara lain : Oracle, MSSQL Server, IBM db2 sebagai tambahan untuk My SQL pada saat ini terdapat dua open source RDBMS yang besar yaitu : PostgressQL dan My SQL. 2.3 Web Service Web service adalah sebuah software aplikasi yang tidak terpengaruh oleh platform yang menyediakan method-method yang dapat diakses oleh network. Web service juga akan menggunakan XML untuk pertukaran data, khususnya pada dua entities bisnis yang berbeda. Discover (UDDI,ebXML registries) XML Describe (WSDL) Communication Layer (HTTP, SMTP, other protocol) Gambar 2.2 Arsitektur Web Service 12 Gambar 2.2 memberikan gambaran tentang susunan layer yang terdapat dalam sebuah web service. Pada tingkat tinggi adalah Discover yang berupa UDDI, kemudian di bawahnya terdapat Describe yang berupa WSDL. Pada tingkat di bawahnya terdapat Access yang berupa SOAP, kemudian di bawahnya merupakan XML, barulah pada tingkat dasar terdapat Communication Layer seperti HTTP. 1. Discover Web Service Client Application 2. See how to call web service 3. Access web service with SOAP 4. Receive SOAP message response UDDI registry WSDL for Web service A Web Service A Gambar. 2.3 Skenario umum penggunaan web service. Skenario penggunaan web service dapat dilihat pada gambar 2.2. Pada gambar tersebut client application meminta layanan kepada UDDI registry, kemudian melihat bagaimana pemanggilan web service setelah diperoleh WSDL dari layanan yang diinginkan. Tahap selanjutnya adalah mengakses web service dengan menggunakan SOAP untuk pertukaran data dan diperoleh layanan yang diinginkan. Pertukaran data dalam web service menggunakan Extensible Markup Language (XML), sehingga apabila terjadi perubahan pada aplikasi yang mengakses web service yang sama, aplikasi lain tidak perlu melakukan perubahan. 13 2.3.1 Extensible Markup Language XML merupakan sebuah meta-language untuk mendeskripsikan data, dan digunakan untuk merepresentasikan data tanpa tergantung kepada sistem yang digunakan. Selain itu, XML juga dapat digunakan sebagai extention markup languages atau digunakan sebagai ekstensi untuk file XML. XML merepresentasikan data ke dalam sebuah dokumen yang terstruktur, karena dituliskan dengan menggunakan tag seperti halnya file HTML. Tag XML bersifat extensible yang memungkinkan seorang desainer sistem untuk menuliskan sendiri tag XML-nya. Tag didefinisikan menggunakan XML schema language, yang mendefinisikan struktur dari file XML tersebut. Sebuah Document Type Definition schema adalah bagian dari spesifikasi XML. Pemanggilan schema yang ditulis dalam bahasa ini disebut sebagai DTD. DTD ini juga mendefinisikan tag atau atribut mana yang sangat diperlukan dan mana yang bersifat optimal. 2.3.2 Simple Object Access Protocol (SOAP) SOAP merupakan sebuah XML-based markup language yang digunakan untuk pergantian pesan antar aplikasi. Oleh karena itu, SOAP berfungsi sebagai amplop yang digunakan untuk pertukaran data di dalam jaringan. SOAP dapat dikatakan sebagai gabungan antara HTTP dan XML, karena pada umumnya SOAP menggunakan protocol HTTP sebagai sarana komunikasi dan data yang dipertukarkan ditulis dalam format XML. Oleh karena itu SOAP memungkinkan pihak-pihak yang mempunyai perbedaan platform, sistem operasi, dan software dapat melakukan pertukaran data. 14 2.3.3 NuSOAP NuSOAP adalah sebuah kumpulan class-class PHP yang memungkinkan user untuk mengirim dan menerima pesan SOAP melalui protokol HTTP. NuSOAP didistribusikan oleh NuSphere Corporation sebagai open source toolkit di bawah lisensi GNU LGPL. Salah satu keuntungan dari NuSOAP adalah bahwa NuSOAP bukan merupakan PHP extension, sehingga penggunaannya tidak membutuhkan registrasi khusus ke Sistem Operasi maupun web server. NuSOAP ditulis dalam kode PHP murni sehingga semua developer web dapat mengunakan tool ini tanpa tergantung pada jenis web server yang digunakan. NuSOAP merupakan toolkit web service berbasis komponen. NuSOAP memiliki sebuah class dasar yang menyediakan method seperti serialisasi variabel dan pemaketan SOAP-Envelope. Interaksi web service dilakukan dengan class client yang disebut dengan class “soapclient” dan class server yang disebut dengan class “soap_server”. Class-class ini mengizinkan user untuk melakukan proses pengiriman dan penerimaan pesan-pesan SOAP dengan bantuan beberapa class-class pendukung lainnya untuk melengkapi proses tersebut. Operasi-operasi pengiriman pesan SOAP dijalankan dengan melibatkan paramater nama operasi yang diinginkan melalui method call(). Jika web service yang dituju menyediakan sebuah file WSDL, maka class “soapclient” akan mengacu langsung pada URL file WSDL tersebut dan menggunakan class “wsdl” untuk mem-parsing file WSDL dan mengekstrak seluruh datanya. Class “wsdl” 15 menyediakan method-method untuk mengekstrak data per-operasi dan per-binding. Class “soapclient” menggunakan data dari file WSDL untuk menerjemahkan parameter-parameternya sekaligus menyusun SOAP envelope ketika user mengeksekusi suatu pemanggilan service. Ketika pemanggilan ini dieksekusi, class “soapclient” menggunakan “soap_transport_http” untuk mengirim pesan SOAP request dan menerima pesan SOAP response. Selanjutnya pesan SOAP response yang diterima di-parsing dengan menggunakan class “soap_parser” . Berikut ini adalah diagram proses web service dengan menggunakan NuSOAP: Gambar 2.4 Diagram proses web service dengan NuSOAP 2.3.4 Web Service Description Language (WSDL) WSDL merupakan sebuah XML-based markup language untuk mendeskripsikan XML, yang menyediakan service request dengan menggunakan protocol yang berbeda. WSDL akan menjembatani komunikasi antar aplikasi. Terdapat 7 elemen utama dlam sebuah dokumen WSDL (JENI, 2008) : a. Types (elemen <type>) – berfungsi untuk mendefinisikan tipe data yang akan digunakan dalam pertukaran data. 16 b. Message (elemen <message>) – berfungsi untuk mendefinisikan format pesan. Pesan ini digunakan sebagai struktu input atau output untuk setiap layanan yang disediakan. c. Operation (elemen <operation>) – berfungsi untuk mendefinisikan sebuah operasi dan input atau output yang berkaitan dengan operasi tersebut. d. Port type (elemen <port type>) – berfungsi untuk mendefinisikan sekumpulan operasi yang terdapat dalam layanan. e. Binding (elemen <binding>) – berfungsi untuk memetakan operasi-operasi dan pesan yang telah didefinisikan pada port type ke protocol tertentu. f. Port (elemen <port>) – berfungsi untuk memetakan binding ke lokasi dari sebuah web service. g. Service (elemen <service>) – berfungsi untuk mendefinisikan sekumpulan port-port yang saling berhubungan. 2.3.5 Universal Description, Discovery, and Integration (UDDI) UDDI merupakan sebuah service registry bagi pengalokasian web service, yang mengkombinasikan SOAP dan WSDL untuk pembentukan registry API bagi pendaftaran dan pengenalan web servive. Dalam pencarian sebuah web service, consumer service konsumen terlebih dahulu mengirimkan permintaan kepada UDDI registry untuk mencari service yang diinginkan. Selanjutnya consumer service akan mendapatkan deskripsi WSDL. Deskripsi 17 yang diperoleh ini kemudian digunakan oleh consumer service untuk membuat pesan SOAP untuk berkomunikasi dengan web service yang diinginkan. Oleh karena itu UDDI dapat diartikan sebagai sebuah framework yang mendefinisikan XML-based registry dimana suatu organisasi dapat meng-upload service yang mereka berikan. 2.4 Entity Object Entitas bertugas merepresentasikan tabel dalam basis data relasional. Sebuah entitas tidak terbatas hanya dalam entity class saja, karena sebuah entitas dapat menggunakan bantuan dari kelas lainnya. Kelas entitas dapat memiliki relasi dengan beberapa kelas entitas lainnya, dan setiap relasinya diekspresikan dengan relational metadata, sedangkan persistence properties akan menggunakan anotasi relational mapping dalam memetakan entitas beserta hubungannya dengan entitas lain ke dalam basis data relasional yang digunakan. Dalam sebuah entitas, terdapat beberapa hal yang harus diperhatikan, antara lain (Jendrock, dkk, 2008) : a. Sebuah class harus dilengkapi dengan anotasi javax.pesistence.Entity. b. Sebuah class dapat menggunakan access modifier public ataupun protected, tanpa argument-constructor, tetapi sebuah entitas dimungkinkan memiliki sebuah constructor. c. Sebuah class entitas tidak dapat dideklarasikan final, hal ini berlaku juga pada method dan variabel persistence instance yang berkaitan. 18 d. Sebuah entitas dapat melakukan extend baik dengan entitas maupun kelas non-entitas, dan kelas non-entitas juga dapat melakukan extend terhadap beberapa kelas entitas. e. Apabila sebuah entitas memiliki primary key yang nantinya akan menjadi primary key pada tebel basis data, maka kelas entitas yang berkaitan harus bersifat serializable dan memiliki hak akses public, baik access control modifier, property dari primary key class, serta class constructor. Selain kelas entitas diharuskan untuk melakukan implement terhadap method hashCode() serta equals (Object object). 19