Anda di halaman 1dari 37

BAB I PENDAHULUAN

1.1 Latar Belakang Masalah Pada mulanya, sebuah komputer hanya dapat dipergunakan secara individual (stand alone) Namun perkembangan teknologi digital telah memungkinkan sebuah komputer untuk dapat berkomunikasi dengan komputer lain. Secara sederhana, dengan menggunakan sebuah kabel dan port komunikasi, dua buah komputer atau lebih dapat dihubungkan dan saling bekerjasama. Jika dua buah komputer (A dan B) saling dihubungkan, maka hal-hal yang dapat dilakukan antara lain: Komputer A dapat mengakses file-file yang ada di Komputer B, Komputer A dapat mengakses disk drive dari Komputer B, Komputer A dapat mengirimkan data ke Komputer B, dan lain sebagainya. Dengan prinsip di atas, maka dapat dikembangkan suatu jaringan komputer dimana di dalamnya terhubung lebih dari satu buah komputer sehingga antar komputer tersebut dapat saling tukar menukar fasilitas data dan informasi akan tetapi hal ini juga memicu lahirnya system operasi baru yang berbeda-beda hal ini dimaksudkan untuk memberikan pilihan lebih kepada pengguna untuk bebas mennggunakan system operasi dikomputernya. Beradasarkan kesenjangan diatas maka munculah metode RPC (Remote Procedure Call) yang berguna untuk menjebatani prosedur komunikasi data secara kode dengan computer lainya, RPC memiliki beberapa metode / standar dalam komunikasi data salah satunya SOAP (Simple Object Acces Protocol) dengan metode ini pengiriman data (Request) jauh lebih mudah, dengan metode ini pengiriman data dilakakan dalam bentuk format data XML yang dikenal lebih ringan dan mudah untuk diimplementasikan. Atas dasar teknologi tersebut yang telah dijelaskan diatas implementasi yang akan dibangun berupa prototype aplikasi FoodMart , aplikasi ini mencoba menjadi system yang saling terintegrasi di restoran restoran, apllikasi nantinya memiliki tiga bagian utama yakni aplikasi untuk waiters sebagai media modern pengganti

menu kertas , kedua sebagai media informasi bagi koki masakan-masakan yang dipesan penggunjuang dan media pembantu bagi kasir untuk mengidetifikasi pengguna yang ingin melunasi tagihan restoran. Aplikasi ini bertujuan untuk merubah kebiasaan tradisional yang telah ada direstauran dengan media yang lebi modern untuk lebih mengefektifkan pelayanan dari segi waktu dan sumber daya manusia melalui teknologi yang sudah dipaparkan diatas 1.2 Rumsan Masalah
Dengan analisis seperti yang sudah dijelaskan pada latar belakang kami merumuskan permasalahan yang ada yaitu: Perbedaan system operasi yang sangat banyak karena factor meningkatnya pengguna computer Perlunyapemanfaatan teknologi RPC untuk membantu prosedur tradisional yang masih digunakan di restoran-restoran Perlunya pengefektifan pelayanan dari segi waktu dan sumber daya manusia

1.3 Maksud Dan Tujuan


Adapun maksud dari penelitian ini adalah sebagai tugas besar mata kuliah Sistem Terdistribusi. Sedangkan tujuan penelitian ini yaitu untuk membuat inovasi baru dalam mempermudah kehiduapan manusia dengan menggunakan teknologi yang sudah dijelaskan diatas.

1.4 Batasan Masalah


Pembatasan masalah pada pelaksanaan tugas besar ini dimaksudkan untuk membatasi lingkup pembahasan yang akan dilaksanakan, agar sistem yang akan dirancang lebih terarah dan waktu perancangan relatif singkat, maka pembatasan masalah yang akan dibahas dan diaplikasikan dalam tugas besar ini yaitu 1. Aplikasi waiters diimplementasikan menggunakan bahasa pemograman java berbasis mobile. 2. Aplikasi koki dan kasir dibangun dengan menggunakan bahasa pemrograman php berbasis web 3. Teknologi yang digunakan adalah RPC (Remote Procedure Call ) dengan metode SOAP (Simple Object Acces Protocol).

BAB 2
2

LANDASA TEORI
2.1 Komunikasi Data 2.1.1. Pengertian Komunikasi Data Pengertian Komunikasi data adalah transmisi atau proses pengiriman dan penerimaan data dari dua atau lebih device (sumber), melalui beberapa media. Media tersebut dapat berupa kabel koaksial, fiber optic (serat optic) , microware dan sebagainya. Komunikasi data merupakan gabungan dari beberapa teknik pengolahan data. Dimana telekomunikasi yang dapat diartikan segala kegiatan yang berhubungan dengan penyaluran informasi dari titik ke titik lain. Sedangkan pengolahan data adalah segala kegiatan yag berhubungan dengan pengolahan.

2.1.2. Jenis-Jenis Komunikasi Data Secara umum jenis-jenis komunikasi data dibagi atau digolongkan menjadi dua macam yaitu : a. Infrakstruktur terrestrial Aksesnya dengan menggunakan media kabel dan nirkabel. Untuk membangun infrakstuktur terrestrial ini membutuhkan biaya yang tinggi, kapasitas bandwitch yang terbatas, biaya yang tinggi dikarenakan dengan menggunakan kabel tidak diprngaruhi oleh factor cuaca jadi sinyal yang diguakan cukup kuat. b. Melalui satelit Aksesnya menggunakan satelit. Wilayah yang dicakup akses sateli lebih luas sehingga mampu menjangkau sebuah lokasi yang tidak bisa dijangkau. Oleh infrastruktur terrestrial namun untuk membuthkan waktu yang lama untuk berlangsung prosesnya komunikasi. Karena adanya gangguan karena radiasi gelombang matahari (sun outage) yang terjadi paling parahnya setiap 11 tahun sekali. Dari kedua jenis tersebut dapat dibagi menjadi dua bentuk komunikasi data.

2.1.3. Komponen Komunikasi Data Komunikasi data terdiri dari beberapa komponen utama, yaitu source, transmitter, transmission system, receiver, dan media destination (Stallings, 2007). Source, adalah sumber dari data yang akan dikirimkan. Transmitter, untuk encode data agar menjadi form yang dapat dikirim. Transmission System, adalah media atau saluran yang digunakan untuk mengirimkan data. Receiver, menerima sinyal dari transmission system dan merubahnya dalam format yang dapat dimengerti oleh destination. Destination, menerima data dari receiver.

Gambar 2.1 Blok Diagram Komunikasi Data

2.2 Remote Procedure Call (RPC) 2.2.1 Pengertian Remote Procedure Call (RPC) Remote Procedure Call adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system). (Newmarch, 1995). RPC mengasumsikan keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari

representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.

2.2.2 Simple Object Access Protocol (SOAP) SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data. SOAP menspesifikan secara jelas bagaimana cara untuk meng-encode header HHTP 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. SOAP adalah protokol ringan yang ditujukan untuk pertukaran informasi struktur pada lingkup desentralisasi, dan terdistribusi. SOAP

menggunakan teknologi XML utuk mendefinisikan rangka kerja pemesanan terekstrensi di mana menyediakan konstruksi pesan yang dapat dipertukarkan pada protokol berbeda. Rangka kerja dirancang bebas dari model pemrograman dan spesifikasi implementasi semantik.

2.2.3 Aturan Dalam Simple Object Access Protocol (SOAP) Ada beberapa aturan yang ada pada SOAP adalah : 1. SOAP Envelope menggunakan namespace 2. Default namespace untuk SOAP encoding dan data types 3. SOAPs Syntax Rules: SOAP harus dibuat dengan menggunakan sintaks XML SOAP harus menggunakan SOAP Envelope namespace SOAP harus menggunakan SOAP Encoding namespace

SOAP tidak boleh mengandung DTD 4. SOAP tidak boleh mengadung XML Processing Instruction

2.2.4 Kelebihan & Kekurangan Simple Object Access Protocol (SOAP) Kelebihan SOAP dapat sebagai berikut : 1. 2. Menggunakan HTTP yang telah digunakan secara luas Bersifat fleksible, mudah dikembangkan, karena berbasis XML 3. Data in string message

Kekurangan SOAP dapat sebagai berikut : 1. Parsing paket SOAP dan pemetaannya ke obyek mengurangi kinerja 2. Tidak menerapkan keamanan khusus, karena merupakan "wire protocol" yang bergantung pada HTTP

2.2.5 Sejarah Simple Object Access Protocol (SOAP) SOAP pernah berdiri Simple Object Access Protocol tapi singkatan ini
dijatuhkan dengan Versi 1.2 dari standar. Versi 1.2 menjadi rekomendasi W3C pada tanggal 24 Juni 2003 singkatan tersebut kadang bingung SOA, yang merupakan singkatan untuk arsitektur berorientasi layanan, tetapi dua tidak berhubungan

SOAP awalnya dirancang oleh Dave Winer, Don Box, Bob atkinson, dan Mohsen Al-Ghosein pada tahun 1998 di sebuah proyek untuk Microsoft (di mana Atkinson dan Al-Ghosein sudah bekerja pada saat itu), sebagai protokol objek-akses. Spesifikasi SOAP saat ini dikelola oleh kelompok kerja protokol XML dari World Wide Web Consortium Setelah SOAP pertama kali diperkenalkan, itu menjadi lapisan yang mendasari satu set yang lebih kompleks Layanan Web, berdasarkan Deskripsi Web Services Language (WSDL) dan Universal Description Discovery dan Integrasi (UDDI). Layanan ini, terutama UDDI, telah terbukti kepentingan jauh lebih sedikit, namun apresiasi dari mereka
6

memberikan pemahaman yang lebih lengkap tentang peran yang diharapkan dari SOAP dibandingkan dengan bagaimana layanan web benar-benar berevolusi.

2.2.6 Arsitektur Simple Object Access Protocol (SOAP)

Gambar 2.2 Arsitektur SOAP Pesan SOAP berbentuk seperti sebuah envelope yang berisi header (optional) dan body (required). Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut diproses. Hal ini meliputi pe-routingan dan delivery setting, authentication atau authorization assertions, and transaction contexts. Body berisi pesan sebenarnya yang dikirim dan diproses. Semua yang dapat ditampilkan dengan sintaks XML dapat dimasukkan dalam pesan body. Setiap elemen Envelope harus berisi tepat satu elemen Body. Elemen Body dapat berisi sebanyak mungkin child nodes yang diperlukan. Isi dari elemen Body adalah pesan. Elemen Body ditentukan dalam suatu cara dimana dapat berisi valid dan wellformed XML yang telah dibatasi oleh suatu namespace (qualified).

2.2.7

Implementasi Simple Object Access Protocol (SOAP)

Dalam implementasi studi kasus ini, pertama kita siapkan data mahasiswa terlebih dahulu di server A, misalkan dibuat tabel database sbb:

Tabel 2.1 Mahasiswa


CREATE TABLE `mhs` ( `nim` varchar(5), `nama` varchar(50), `alamat` varchar(100), PRIMARY KEY (`nim`) )

dan berikut ini adalah sampel recordnya

Gambar 2.3 Record MHS Selanjutnya, kita siapkan script NuSOAP yang nantinya diletakkan di server A. Script ini nanti diperlukan untuk melayani request yang dilakukan oleh server B pada Tabel Server Tabel 2.2 Server
<?php

require_once('lib/nusoap.php'); $server = new soap_server;

// registrasi method 'search' $server->register('search');

// detail method 'search' dengan parameter $key function search($key) { // koneksi ke database mysql_connect('dbhost', 'dbuser', 'dbpass'); mysql_select_db('dbname');

// query pencarian data mahasiswa $query = "SELECT * FROM mhs WHERE nim = '$key' OR nama LIKE '%$key%' OR alamat LIKE '%$key%'"; $hasil = mysql_query($query); while ($data = mysql_fetch_array($hasil)) { // menyimpan data hasil pencarian dalam array $result[] = array('nim' => $data['nim'], 'nama' => $data['nama'], 'alamat' => $data['alamat']); } // mereturn array hasil pencarian return $result; }

$HTTP_RAW_POST_DATA $HTTP_RAW_POST_DATA : '';

isset($HTTP_RAW_POST_DATA)

$server->service($HTTP_RAW_POST_DATA); ?>

Perhatikan pada script server.php di atas, bahwa di situ terdapat method dengan nama search. Method dengan parameter key yang merupakan keyword pencarian ini nanti yang akan dipanggil oleh oleh server B ketika pencarian data. Jangan lupa pastikan method search harus diregistrasikan dengan perintah pada tabel search

Tabel 2.3 Search


9

$server->register('search');

Jika tidak, maka method tersebut tidak bisa dipanggil. Perhatikan juga bahwa apabila diinginkan data return suatu webservice berupa multiple data, maka data yang direturn harus tersaji dalam bentuk array. Berikutnya, kita buat script interface untuk pencarian data mahasiswa di server B. Tabel 2.4 Client
<html> <head> <title>Contoh NuSOAP Web Service </title> </head> <body> <!-- form pencarian data --> <form method="post" action="client.php?op=search"> Keyword Pencarian <input type="text" name="key"> <input type="submit" name="submit" value="Search"> </form>

<?php // proses pencarian data if (isset($_GET['op'])) { if ($_GET['op'] == 'search') { require_once('lib/nusoap.php'); // baca keyword pencarian dari form $key = $_POST['key'];

// instansiasi obyek untuk class nusoap client, arahkan URL ke script server.php di server A $client = new nusoap_client('http://serverA/.../server.php');

10

// proses call method 'search' dengan parameter key di script server.php yang ada di server A $result = $client->call('search', array('key' => $key));

// jika data hasil pencarian ($result) ada, maka tampilkan if (is_array($result)) { echo "<table border='1'>"; echo "<tr><th>NIM</th><th>NAMA</th><th>ALAMAT</th></tr>"; foreach($result as $data) { echo "<tr><td>".$data['nim']."</td><td>".$data['nama']."</td><td>".$data['alamat']."</t d></tr>"; } echo "</table>"; // menampilkan jumlah data hasil pencarian echo '".$key."'</p>"; } else echo "<p>Data tidak ditemukan</p>"; } } ?> "<p>Ditemukan ".count($result)." data terkait kata kunci

</body> </html>

Keterangan: Untuk mengetahui ada tidaknya hasil pencarian data yang merupakan response dari server A adalah cukup mudah, yaitu menggunakan function is_array(). Jika data hasil pencarian tidak ditemukan, maka data response bukan merupakan array sehingga nilai is_array() ini adalah FALSE. Sedangkan jika data hasil pencarian ditemukan, maka nilai is_array() adalah TRUE. Bagaimana untuk mengetahui jumlah data hasil pencarian, cukup mudah yaitu gunakan
11

function count() yang akan menghitung jumlah elemen dari data array hasil response. Berikut ini contoh tampilan dari interface pencarian data mahasiswa hasil implementasi dari NuSOAP webservice.

Gambar 2.4 Pencarian data Mahasiswa

2.3 JavaScript Object Notation (JSON) JSON (JavaScript Object Notation) adalah standar terbuka berbasis text yang ringan dan dirancang untuk pertukaran data yang bersifat human-readable. JSON berasal dari bahasa pemrograman javascript untuk mempresentasikan struktur data sederhana dan array asosiatif yang disebut dengan object. Walaupun hubungannya dengan javascript nyatanya JSON adalah independen dengan parser yang tersedia untuk hampir semua bahasa pemrograman. Pada kesempatan ini akan dibahas JSON dengan bahasa pemrograman PHP. Untuk melihat contoh sederhana bentuk sintak JSON adalah seperti berikut ini :

12

"namaDepan":"Edy", "namaBelakang":"Vanhoten", "umur":95, "alamat": { "jalan":"Jalan Canjadi No 23", "kota":"Bandung", "propinsi":"Jawa Barat", "kodePos":"45363" }, "telepon": [ { "jenis":"rumah", "nomor":"022-7123456" }, { "jenis":"mobile", "nomor":"081234567" } ], "hobi":"tidur" }

Bahasa pemrograman PHP sudah menyediakan perintah untuk melakukan encode kedalam bentuk JSON ataupun sebaliknya untuk melakukan decode dari bentuk JSON kedalam array. Untuk menghasilkan object JSON seperti diatas menggunakan scriptnya seperti berikut : $val = array( "namaDepan"=>"Edy",

13

"namaBelakang"=>"Vanhoten", "umur"=>95, "alamat"=>array("jalan"=>"Jalan 23","kota"=>"Bandung","propinsi"=>"Jawa Barat","kodePos"=>"45363"), "telepon"=>array(array("jenis"=>"rumah","nomor"=>"0227123456"),array("jenis"=>"mobile","nomor"=>"081234567")), "hobi"=>"tidur" ); $output = json_encode($val); echo $output; Canjadi No

Untuk menghasilkan object JSON menggunakan PHP perintahnya adalah json_encode sedangkan untuk melakukan decode (dari object JSON kedalam bentuk array) perintahnya adalah json_decode. Contoh penggunaanya adalah sebagai berikut : $input '{"namaDepan":"Edy","namaBelakang":"Vanhoten","umur":95,"alamat":{"jala n":"Jalan Canjadi No 23","kota":"Bandung","propinsi":"Jawa =

Barat","kodePos":"45363"},"telepon":[{"jenis":"rumah","nomor":"0227123456"},{"jenis":"mobile","nomor":"081234567"}],"hobi":"tidur"}'; $val = json_decode($input); print_r($val);

hasilnya pada layar seperti berikut : stdClass Object ( [namaDepan] => Edy

14

[namaBelakang] => Vanhoten [umur] => 95 [alamat] => stdClass Object ( [jalan] => Jalan Canjadi No 23 [kota] => Bandung [propinsi] => Jawa Barat [kodePos] => 45363 )

[telepon] => Array ( [0] => stdClass Object ( [jenis] => rumah [nomor] => 022-7123456 )

[1] => stdClass Object ( [jenis] => mobile [nomor] => 081234567 )

[hobi] => tidur )

15

2.4 Java Java adalah bahasa pemrograman berorientasi objek murni yang dibuat berdasarkan kemampuan-kemampuan terbaik bahasa pemrograman objek sebelumnya (C++, Ada,Simula). Java diciptakan oleh James Gosling, developer dari Sun Microsystems pada tahun 1991. Karakteristik Java antara lain : Sederhana (Simple) Berorientasi Objek (Object Oriented) Terdistribusi (Distributed) Interpreted Robust Aman (Secure) Architecture Neutral Portable Performance Multithreaded Dinamis

Macam-macam Java 2 Software Developer Kit (J2SDK) antara lain : - J2SE (Java 2 Standard Edition) - J2EE (Java 2 Enterprise Edition) - J2ME (Java 2 Micro Edition) Cara kerja Java dapat digambarkan sebagai berikut:

16

Gambar 2.5 Cara Kerja Java

Java mempunyai platform yaitu : - Java Virtual Machine (Java VM) - Java Application Programming Interface (Java API)

Gambar 2.6 Java Platform 2.5 Android (OS) Android adalah sistem operasi berbasis Linux yang dirancang untuk perangkat seluler layar sentuh seperti telepon pintar dan komputer tablet. Android awalnya dikembangkan oleh Android, Inc., dengan dukungan finansial dari Google, yang kemudian membelinya pada tahun 2005. Sistem operasi ini dirilis secara resmi pada tahun 2007, bersamaan dengan didirikannya Open Handset Alliance, konsorsium dari perusahaan-perusahaan perangkat keras, perangkat lunak, dan telekomunikasi yang bertujuan untuk memajukan standar terbuka perangkat seluler. Ponsel Android pertama mulai dijual pada bulan Oktober 2008.

2.6 KSOAP
17

kSOAP adalah library web service dari klien yang terbatas untuk programprogram Java seperti Applets atau aplikasi J2ME (CLDC/CDC/MIDP). kSOAP yang digunakan pada aplikasi ini adalah kSOAP 2 yang merupakan rancangan ulang yang lengkap dengan mengambil catatan dari kinerja kSOAP 1.x. Beberapa perbedaan antara kSOAP 1.x dengan kSOAP 2 adalah : Struktur kSOAP 2 lebih bebas daripada kSOAP 1. kSOAP 2 telah mendukung literal coding. Support SOAP Serialization tidak lagi menjadi kebutuhan penting dan terpisah pada package yang lain. Beberapa class-class yang berbeda telah diintegrasikan ke class SoapSerializationEnvelope, menyediakan dukungan SOAP

Serialization SoapSerializationEnvelope memperluas class dasar SoapEnvelope. Flag dotNet dapat digunakan untuk mengganti

SoapSerializationEnvelope dari penggunaan standar menjadi namespace handling yang menjadi default di .NET.

2.7 Pengertian NuSOAP NuSOAP merupakan kumpulan class-class PHP yang mengijinkan pengembang untuk membuat dan menggunakan SOAP web services. Ia tidak membutuhkan ekstensi PHP khusus. Salah satu keuntungan NuSOAP adalah bahwa NuSOAP bukan merupakan ekstensi PHP sehingga penggunaannya tidak membutuhkan registrasi khusus ke sistem operasi maupun web server. NuSOAP ditulis dalam kode PHP murni sehingga semua pengembang web dapat menggunakan tool ini tanpa tergantung pada jenis web server yang digunakan. NuSOAP memiliki sebuah class dasar yang menyediakan metode seperti serialisasi variabel dan pemaketan SOAP envelope. Interaksi web service dilakukan dengan class client yang disebut class soapclient dan class server yang disebut dengan class soapserver. Class-class ini mengizinkan penggunanya untuk melakukan proses pengiriman dan

18

penerimaan pesan-pesan SOAP dengan bantuan beberapa class-class pendukung lainnya untuk melengkapi proses tersebut.

BAB III

19

Perancangan Perangkat Lunak


3.1 Skema Relasi
Adapun diagram relasi dari aplikasi foodmart terlihat pada gambar berikut

gambar 3.1 diagram relasi

3.2

Struktur Tabel
Struktur table adalah table-table yang akan digunakan di database. Table-table

yang akan digunakan dalam aplikasi ini adalah: 1. Tabel Jenis

gambar 3.2 tabel jenis

2. Tabel Makanan

20

gambar 3.3 tabel makanan 3. Tabel Meja

gambar 3.4 tabel meja

4. Tabel Pesan

gambar 3.5 tabel pesan 5. Tabel User

gambar 3.6 tabel user

21

3.3

Gambaran Sistem
Berikut adalah gambaran system dari aplikasi foodmart
SOAP

Waiters 1

SOAP

Kasir

Waiters 2

SOAP
Juru Masak Waiters 3

gambar 3.7 gambaran sistem

22

BAB IV IMPLEMENTASI
4.1 Implementasi aplikasi Android
a. Implementasi halaman pilih table Berikut adalah screenshoot dari activity pilih table

gambar 4.1 halaman pilih tabel

23

b. Implementasi list makanan Berikut adalah screenshoot dari activity list makanan

gambar 4.2 list makanan

c. Implementasi timeline minuman Berikut adalah screenshoot dari activity list minuman

gambar 4.3 list minuman

24

d. Implementasi Dialog makanan Berikut adalah screenshoot dari activity list minuman

gambar 4.4 activity list minuman

25

4.2 Impelementasi aplikasi Web 4.2.1 Koki


a. Implementasi halaman Login Berikut screenshoot dari halaman login

gambar 4.5 halaman login b. Implementasi daftar makan yang dipesan Berikut screenshoot dari halaman daftar makanan yang dipesan

gambar 4.6 halaman daftar makanan yang dipesan

26

4.2.2 Kasir
a. Implementasi daftar meja

gambar 4.7 daftar meja b. Implementasi halaman tagihan

gambar 4.8 halaman tagihan

27

BAB V PENUTUP
5.1 Kesimpulan Hasil akhir dari seluruh proses analisis dan proses implementasi telah menghasilkan aplikasi yang cukup untuk memenuhi penerapan SOAP (Simple Abject Acces Protokol) pada aplikasi web dan android. Pembuatan aplikasi ini sudah mencapai tujuan utama dari aplikasi, yaitu menyediakan media baru bagi restoran-restoran dalam prosedur pemesanan makanan tradisional mereka. Kesimpulan mengenai teknologi yang digunakan , yaitu: 1. Soap menggunakan XML untuk format data penerimaan & permintaan request data. 2. Ksoap adalah library khusus android. 3. Nusoap adalah library khusus yang menangani proses SOAP di server. 5.2 Saran Aplikasi ini memeiliki beberapa bagian yang mungkin dapat dikembangkan ataupun dioptimalisasikan seperti misalnya di bagian aplikasi android (Waiters) dapat ditambahkan push notifikasi ketika pesanan dari pengunjung sudah siap untuk dihadangkan , kemudian diaplikasi juga akan lebih bagus jika ditambahkan fitur laporan kunjungan per bulan dari pengunjung. yang menangani proses SOAP di

28

DAFTAR PUSTAKA
[1] Anonym. (2013, 12 14). Retrieved from

http://batikpress.com/2011/01/pengenalan-json-menggunakan-php.html [2] Anonym. (2013, 12 17). Arsitektur Soap. Retrieved from

http://www.scribd.com/doc/49374115/SOAP [3] Driati, M. (n.d.). gunadarma Staf. Retrieved from

http://merlindriati.staff.gunadarma.ac.id/Downloads/files/34028/1_Pengenalan _Java.pdf [4] pangestuyudha. (2013, 12 17). Retrieved from

http://www.slideshare.net/pangestuyudha/makalah-komunikasi-data [5] Rilo, A. (n.d.). Binus Library. Retrieved from

http://library.binus.ac.id/eColls/eThesisdoc/Bab2/2012-2-00295SK%20Bab2001.pdf [6] rosihanari. (2013, 12 12). Rosihanari Blog. Retrieved from

http://blog.rosihanari.net/implementasi-web-service-dengan-soapmenggunakan-nusoap-bag-2/

29

LAMPIRAN
DISKUSI NIM 10110249 NAMA Nazar Abdullah PERTANYAAN Dari efisien dengan JSON segi Jawaban JSON SOAP setting untuk

coding Efisien mana karena harus WSDL

mengirimkan data tipe tertentu 10110239 Rizky Nugraha kalo tidak pakai Bisa, KSOAP & dengan data

library nuSOAP dan NUSOAP hanya kSOAP bisa ngga? sebagai bantu mempermudah menggunakn konsep soap 10110237 Agung Aulia Guntari Kenapa lambat ? SOAP Karena memiliki Bagian SOAP 3 dalam alat

satu envelope ketika pengriman data seperti tidak yang

lain hanya satu

30

Agung Aulia Guntari

Data yang didukung Tipe Soap apa saja ?

data

bentukan dan tipe data dasar

10110269

Rizki Adam Kurniawan

Adakan pengaturan Ada sebetulnya socket di SOAP ? tetapi untuk di aplikasi sudah dibuatkan oleh KSOAP NUSOAP & ini

LAMPIRAN SOURCE CODE Implementasi Soap Di Android public static String postData(String[] pesan, String[] qty, String nomeja) {

String respon = ""; String tempPesan = Arrays.toString(pesan); String tempQty = Arrays.toString(qty);

SoapObject UtilStaticLocal.POST_PESANAN);

request

new

SoapObject("",

request.addProperty("pesan", tempPesan); request.addProperty("qty", tempQty); request.addProperty("nomeja", nomeja);

SoapSerializationEnvelope SoapSerializationEnvelope(

envelope

new

SoapEnvelope.VER11);

31

envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE( UtilStaticLocal.SERVER_URL); System.out.println("Hungkul"); try { httpTransport.call("postPesanan", envelope);

Object response = envelope.getResponse(); respon = response.toString();

catch (Exception exception) { System.out.println("Response exception.toString()); respon = exception.toString(); } Error " +

return respon; }

public static String getMakanan() {

String respon = "";

SoapObject UtilStaticLocal.GET_MAKANAN);

request

new

SoapObject("",

32

SoapSerializationEnvelope SoapSerializationEnvelope(

envelope

new

SoapEnvelope.VER11); envelope.setAddAdornments(false); envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE( UtilStaticLocal.SERVER_URL); System.out.println("Hungkul"); try { httpTransport.call(UtilStaticLocal.GET_MAKANAN, envelope);

Object response = envelope.getResponse(); respon = response.toString(); System.out.println("Response response.toString()); } Finish " +

catch (Exception exception) { System.out.println("Response exception.toString()); respon = exception.toString(); } Error " +

return respon; }

public static String getMinuman() {

33

String respon = "";

SoapObject UtilStaticLocal.GET_MINUMAN);

request

new

SoapObject("",

SoapSerializationEnvelope SoapSerializationEnvelope(

envelope

new

SoapEnvelope.VER11); envelope.setAddAdornments(false); envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE( UtilStaticLocal.SERVER_URL); System.out.println("Hungkul"); try { httpTransport.call(UtilStaticLocal.GET_MINUMAN, envelope);

Object response = envelope.getResponse(); respon = response.toString(); System.out.println("Response response.toString()); } Finish " +

catch (Exception exception) { System.out.println("Response exception.toString()); respon = exception.toString(); } Error " +

34

return respon; }

Implementasi Soap Di Web <?php

// mengincludekan file berisi class nusoap require_once('lib/nusoap.php'); include 'soap/fungsi.php'; // instansiasi class soap untuk server $server = new soap_server; // meregistrasi 'method' untuk proses penjumlahan dengan nama 'jumlahkan' dan 'kurangi' $server->register('postPesanan'); $server->register('getMakanan');

// detil isi method 'jumlahkan' function postPesanan($pesan,$qty,$nomeja) { konekDB(); $step1 = str_replace(' ','',str_replace(']','',str_replace('[','',$pesan))); $step2 = explode(',',$step1);

$qty1 = str_replace(' ','',str_replace(']','',str_replace('[','',$qty))); $qty2 = explode(',',$qty1);

$size = count($step2);

35

for($i=0;$i < $size; $i++){ $sq = mysql_query("INSERT INTO pesan (id_meja,id_resto,qty) VALUES ($nomeja,".$step2[$i].",".$qty2[$i].")"); }

if($sq){

$json = array('result' => 'Sukses','message' => 'Pesanan Sent'); }else{ $json = array('result' => 'Sukses','message' => 'Pesanan Failed'); }

return json_encode($json); }

function getMakanan(){ konekDB(); $push = array(); $query = mysql_query("SELECT * FROM makanan WHERE id_jenis = 1 "); $i = 0; while($data=mysql_fetch_array($query)){ $push[$i] = array('id_resto' => $data['id_resto'],'nama' =>

$data['nama'], 'harga' => $data['harga'], 'url_image' => $data['url_img_resto']); $i++; } $json = array('result' => 'sukses','data'=> $push);

return json_encode($json);

36

// memberikan response service $HTTP_RAW_POST_DATA $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?> = isset($HTTP_RAW_POST_DATA) ?

37