Monday, 16 July 2012

MEMBUAT WEBSERVICE SERVER

Standard
Layanan web merupakan fenomena yang sangat panas saat ini karena, banyak kelebihan yang ditawarkan oleh Web Service terutama interoperabilitas tinggi dan penggunaannya yang dapat diakses kapanpun dan dimanapun selama mesin kita terhubung oleh jaringan internet salah satunya.
Layanan web Sepenuhnya berdasarkan standard web dan xml. Web Service dapat membantu: 
1. Perantara pada integrasi platform sepanjang eksekusi mesin virtual. 
2. Integrasi antara Web dan OO middleware. 
3. Integrasi dari aliran kerja terisolasi dan sevice-service (Web Services Flow Language - WSFL). 
4. Pertukaran data pada aplikasi yang berbeda-beda (X-Schema, XSLT ++) 
5. (Masa depan: standardisasi dari info konteks antara web servis dan klien – integrasi servis horizontal). 
6. Pemain utama dan standard-standard 
Keuntungan penggunaan Web Service: 1) Format penggunaan terbuka untuk semua platform. 2) Mudah di mengerti dan mudah men-debug. 3) Dukungan interface yang stabil. 4) Menggunakan standard-standard “membuka service sekali” dan mempunyai pemakai banyak. 5) Mudah untuk menengahi pesan-pesan proses dan menambahkan nilai. 6) Routing and pengiriman. 7) Security. 8) management and monitoring. 9) schema and service design. 10) Akselerasi. 11) mudah untuk mengembangkan dengan semantic transport tambahan. 12) Terbuka, standard-standard berbasis teks. 13) Pencapaian modular. 14) Tidak mahal untuk diimplementasikan (relatif). 15) Mengurangi biaya integrasi aplikasi enterprise. 16) Implementasi yang incremental. 
Mekanisme Kerja: Sebelum memasuki mekanisme kerja yang terjadi pada Web Service, akan dibahas terlebih dahulu komponen-kompenen yang mempunyai peranan penting pada Web Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service itu sendiri, dimana standard-standard web service adalah sebagai berikut: WSDL Web Services Description Language http://www.w3.org/TR/wsdl Deskripsi-deskripsi dari web service UDDI Universal Discovery, Description & Integration http://www.uddi.org/specification.html Registry mengenai deskripsi servis SOAP Simple Object Access Protocol http://www.w3.org/TR/SOAP/ Protokol transport untuk berkomunikasi antar web service Standard-standard lain: WSRP, WSIA, WSXL. Selain standard-standard Web Service, juga ada Bagian-bagian Web Service (Web Service Dumpstack) yang mendeskripsikan task-task yang akan terjadi pada proses berjalannya web service, dimana task-task tersebut antara lain: Wire Protocols, Description, Discovery. Untuk lebih lanjut mengenai bagian-bagian Web Service maka dapat dilihat ilustrasinya pada gambar 5: Bagian-bagian Web Service. 

Desain Database
Struktur Tabel
Berikut ini struktur tabel dari rancangan sistem webservice pada database nilai mahasiswa: 


Dalam tutorial ini kami hanya membuat satu buah tabel saja yaitu tabel mahasiswa yang terdiri dari tujuh buah field.


Script (Source Code)
Berikut adalah kode program untuk sistem webservice pada database nilai mahasiswa:
1. Kode Program Database webservice data nilai mahasiswa

CREATE TABLE IF NOT EXISTS `mahasiswa` ( 
`NIM` varchar(8) NOT NULL, 
`Nama` varchar(25) NOT NULL, 
`Kelas` varchar(3) NOT NULL, 
`Kelompok` varchar(3) NOT NULL, 
`Tugas` int(11) NOT NULL, 
`UTS` int(11) NOT NULL, 
`UAS` int(11) NOT NULL, 
PRIMARY KEY (`NIM`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

INSERT INTO `mahasiswa` (`NIM`, `Nama`, `Kelas`, `Kelompok`, `Tugas`, `UTS`, `UAS`) VALUES 
('M3110111', 'Nur Rochim', 'TIB', '1', 85, 90, 92), 
('M3110112', 'Nurgust Fikrin', 'TIB', '2', 80, 92, 75), 
('M3110110', 'Nugroho Dwi H', 'TIB', '1', 79, 87, 85), 
('M3110089', 'Linda Anugrah', 'TIB', '2', 70, 90, 85), 
('M3110086', 'Laras Seytowati', 'TIB', '3', 71, 92, 80), 
('M3110155', 'Trisnayanti', 'TIC', '4', 69, 90, 90), 
('M3110156', 'Vena', 'TIC', '4', 89, 80, 80), 
('M3110056', 'Fajar Faruq', 'TIA', '5', 89, 82, 85), 
('M3110021', 'Asih Putri', 'TIA', '5', 89, 72, 85);

2. Kode Program Webservice Php
configureWSDL("mahasiswaWSDL", "urn:mahasiswaWSDL"); 
$server->wsdl->addComplexType( 
'mahasiswa', 
'complexType', 
'struct', 
'all', 
'', 
array( 
'nim'=>array('name'=>'nim', 'type'=>'xsd:string'), 
'nama'=>array('name'=>'nama', 'type'=>'xsd:string'), 
'kelas'=>array('name'=>'kelas', 'type'=>'xsd:string'), 
'kelompok'=>array('name'=>'kelompok', 'type'=>'xsd:string'), 
'tugas'=>array('name'=>'tugas', 'type'=>'xsd:string'), 
'uts'=>array('name'=>'uts', 'type'=>'xsd:string'), 
'uas'=>array('name'=>'uas', 'type'=>'xsd:string') 
) 
); 

$server->wsdl->addComplexType( 
'arrayOfmahasiswa', 
'complexType', 
'array', 
'', 
'SOAP-ENC:Array', 
array(), 
array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType'=>'mahasiswa[]')), 
'mahasiswa' 
); 

$server->wsdl->addComplexType( 
'retVal', 
'complexType', 
'struct', 
'all', 
'', 
array( 
'retNum'=>array('name'=>'retNum', 'type'=>'xsd:integer'), 
'retStr'=>array('name'=>'retStr', 'type'=>'xsd:string') 
) 
); 

//membuat register(simpan) methods 
$server->register( 
'simpan', 
array('datamahasiswa'=>'tns:mahasiswa'), 
array('return'=>'tns:retVal'), 
'urn:mahasiswaWSDL', 
'urn:mahasiswaWSDL#simpan', 
'rpc', 
'encoded', 
'metode simpan() digunakan untuk proses simpan data kelompok mahasiswa' 
); 

//membuat register(tampil) methods 
$server->register( 
'tampil', 
array('prodi'=>'xsd:string'), 
//array('return'=>'tns:mahasiswa[]'),// 
array('return'=>'tns:arrayOfmahasiswa'), 
'urn:mahasiswaWSDL', 
'urn:mahasiswaWSDL#tampil', 
'rpc', 
'encoded', 
'metode tampil() digunakan untuk menampilkan seluruh data nilai mahasiswa berdasarkan nomor induk mahasiswa'
); 

//membuat register(cari) methods 
$server->register( 
'cari', 
array('nim'=>'xsd:string'), 
array('return'=>'tns:mahasiswa'), 
'urn:mahasiswaWSDL', 
'urn:mahasiswaWSDL#cari', 
'rpc', 
'encoded', 
'metode cari() digunakan untuk melakukan pencarian mahasiswa berdasarkan kata kunci nim ' 
); 

//membuat function simpan 
function simpan($datamahasiswa){ 
$cn = mysql_connect('localhost', 'root', ''); 
mysql_select_db('mahasiswa_ocim', $cn); 
if (!empty($datamahasiswa['nim'])){ 
$nim = $datamahasiswa['nim']; 
$nama = $datamahasiswa['nama']; 
$kelas = $datamahasiswa['kelas']; 
$kelompok = $datamahasiswa['kelompok']; 
$tugas = $datamahasiswa['tugas']; 
$uts = $datamahasiswa['uts']; 
$uas = $datamahasiswa['uas']; 
$sql="UPDATE mahasiswa SET Kelompok='$kelompok' WHERE NIM='$nim' "; 
mysql_query($sql, $cn); 
$affected = mysql_affected_rows($cn); 
$msg = ($affected > 0)?"berhasil":"gagal"; 
return array('retNum'=>$affected, 'retStr'=>'Proses simpan data kelompok mahasiswa ' . $msg . '!'); 
}else{ 
return array('retNum'=>0, 'retStr'=>'Data mahasiswa yang dimasukkan tidak valid!'); } }
//membuat function tampil 
function tampil($kelompok){ 
$cn = mysql_connect('localhost', 'root', ''); 
mysql_select_db('mahasiswa_ocim', $cn); 
if ($kelompok=="SEMUA"){ 
$sql = "SELECT p.nim, w.nama, w.kelas, p.kelompok, w.tugas, w.uts, w.uas FROM mahasiswa w, posisi p WHERE p.nim=w.nim "; } else { 
$sql = "SELECT p.nim, w.nama, w.kelas, p.kelompok, w.tugas, w.uts, w.uas FROM mahasiswa w, posisi p WHERE p.nim=w.nim AND w.kelompok='$kelompok' ";} 
$hasil=mysql_query($sql, $cn); 
if (mysql_num_rows($hasil)){ 
while ($baris=mysql_fetch_row($hasil)){ 
$items[]=array('nim'=>$baris[0], 
'nama'=>$baris[1], 
'kelas'=>$baris[2], 
'kelompok'=>$baris[3], 
'tugas'=>$baris[4], 
'uts'=>$baris[5], 
'uas'=>$baris[6] ); 
} 

} else { 

$items[]=array('nim'=>'n/a', 'nama'=>'n/a', 'kelas'=>'n/a', 'kelompok'=>'n/a', 'tugas'=>'n/a', 'uts'=>'n/a', 'uas'=>'n/a' ); 
} 
return $items; 
} 

//membuat function cari 
function cari($nim){ 
$cn = mysql_connect('localhost', 'root', ''); 
mysql_select_db('mahasiswa_ocim', $cn); 
$sql = "SELECT SELECT p.nim, w.nama, w.kelas, p.kelompok, w.tugas, w.uts, w.uas FROM mahasiswa w, posisi p WHERE p.nim=w.nim AND p.nim='$nim' "; 
$hasil=mysql_query($sql, $cn); 
if (mysql_num_rows($hasil)){ 
$baris=mysql_fetch_row($hasil); 
$items=array('nim'=>$baris[0], 
'nama'=>$baris[1], 

'kelas'=>$baris[2], 

'kelompok'=>$baris[3], 
'tugas'=>$baris[4], 
'uts'=>$baris[5], 
'uas'=>$baris[6] ); 
} else { 
$items=array('nim'=>'n/a', 'nama'=>'n/a', 'kelas'=>'n/a', 'kelompok'=>'n/a', 'tugas'=>'n/a', 'uts'=>'n/a', 'uas'=>'n/a'); 
} 
return $items; 
} 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:''; 
$server->service($HTTP_RAW_POST_DATA); 
?>

3. File Php Lampiran
Untuk membuat webservice server, kita harus melampirkan file-file librarynya, diantaranya yaitu
File-file diatas dapat di unduh melalui link DOWNLOAD. Lampirkan satu folder dengan file php webservice server.

D. Hasil Program Webservice Server
Berikut adalah tampilan hasil cetakan (generate) dari program yang telah dibuat:
Terdapat tiga buah menu yaitu simpan, tampil dan cari. Apabila kita klik link-link tersebut maka akan tampil informasi mengenai file program yang telah kita buat diatas.
Pada link Simpan  (terlampir dalam file, bisa didownload dibawah)
 
Pada link tampil  (terlampir dalam file, bisa didownload dibawah)
 
Pada Link Cari  (terlampir dalam file, bisa didownload dibawah)
 
Pada Link WSDL (terlampir dalam file, bisa didownload dibawah) 

Kesimpulan 
Dari tutorial ini dapat diambil kesimpulan diantaranya:
  1. Web service adalah teknologi dengan risiko rendah (relatif) yang dapat digunakan untuk mengimplementasikan strategi bisnis berisiko tinggi. 
  2. Web service berdasarkan middleware OO, XML dan konsep Internet Protokol, dan membantu pergerakkan dari sistem-sistem heterogen menuju sistem yang lebih homogen 
  3. Banyak-vendor turut membuat standard 
  4. Membuka semua jenis kesempatan untuk semua orang 
  5. Incremental, non-intimidating, minimal technology play 
  6. Kostumer memulai tanpa menunggu vendor-vendor 
  7. Web service mentransformasikan web browser centris menjadi servis centris 
  8. Tool-tool yang lebih baik bersifat open source

12 comments:

  1. Blog super cepat tanpa loding ! Mantap

    ReplyDelete
  2. link downloadnya dimana gan? ^_^

    ReplyDelete
    Replies
    1. https://github.com/Kunstmaan/ca-sdk/tree/master/src/lib/nusoap

      Delete
  3. gan bisa bantu untuk bimbingan pembuatan web service ga ?

    ReplyDelete
  4. jika fungsi2 dari web service ditaruh android bisa gk ya?
    jadi webservice(server) dan android(client tmpat memanggil fungsi lewat aplikasi , bukan browsernya)

    ReplyDelete
    Replies

    1. boleh minta link tutornya (atau mau membuatnya :D) ?

      oh ya.. kang rochim
      register java web service online gimana ya?
      jadi ntar web service server, bisa kita akses online

      Delete
  5. mau tanya, itu databasenya dibuat dimana yaa?

    ReplyDelete
    Replies
    1. Bisa menggunakan mysql dalam product xampp atau yang lain.

      Delete
  6. file-file library phpnya dowloadnya dimana ? masih bingung

    ReplyDelete
    Replies
    1. https://github.com/Kunstmaan/ca-sdk/tree/master/src/lib/nusoap

      Delete

Loading...

Copyright © AIMAGU | Belajar Pemrograman Komputer Mudah dan Menyenangkan
Design by Automattic | Blogger Theme by NewBloggerThemes | Official: www.aimagu.com