Web Service – SOAP – Cara Insert Data (Create) – Membahas tentang aplikasi web tidak terlepas dengan yang namanya memasukkan atau insert data ke database. Untuk web service memasukkan data ke tabel database yang berada di server sedikit berbeda konsepnya dengan ketika kamu menginsert data ke aplikasi web biasanya. Letak perbedaannya adalah cara dan teknik yang digunakan berbeda.
Namun untuk insert query sqlnya tetap sama. Teknik insert data (create) kali ini dilakukan di client pada aplikasi web server untuk penjualan barang.
Untuk contoh ini, berikut spesifikasi database dan tabel yang digunakan:
- Nama Database: ukm
- nama Tabel: barang
Cara Insert Data
Berikut ini langkah-langkah membuat aplikasi insert data pada web service:
#SERVER
1. Buat folder dengan nama “WS” di server kamu, Kemudian buat folder lagi di dalamnya dengan nama “server” dan di folder server ini nantinya aplikasi server kamu, akan di letakkan.
Jadi ada 2 folder dengan struktur seperti ini:
- WS
- WS->SERVER
2. Buat database dengan nama “UKM” dan tabel dengan nama “barang”
Kemudian kamu masukkan query di bawah ini, agar tabel barang yang kamu buat langsung berisi data yang akan kita panggil sebagai contoh nanti.
-- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: May 10, 2017 at 12:41 AM -- Server version: 10.1.10-MariaDB -- PHP Version: 5.6.19 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `ukm` -- -- -------------------------------------------------------- -- -- Table structure for table `barang` -- CREATE TABLE `barang` ( `idBarang` int(11) NOT NULL, `kodeBarang` varchar(15) NOT NULL, `namaBarang` varchar(200) NOT NULL, `satuanBarang` varchar(15) NOT NULL, `stokBarang` int(11) NOT NULL, `hargaBarang` int(11) NOT NULL, `foto` varchar(250) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `barang` -- INSERT INTO `barang` (`idBarang`, `kodeBarang`, `namaBarang`, `satuanBarang`, `stokBarang`, `hargaBarang`, `foto`) VALUES (2, 'KB-MHJ', 'Jilbab Panjang', 'pcs', 100, 15000, 'Islamic_Wallpaper_Allah_014-1440x900.jpg'), (3, 'KP-WHDP', 'Dompet Wanita Dua Pari Hijau', 'pcs', 100, 10000, 'tulis.jpg'), (4, 'HK-B', 'Handuk Kecil Biru', 'pcs', 100, 23000, '1094969_hand_writing.jpg'), (19, 'Ax', 'Ax', 'pcs', 11, 17000, ''), (25, 'KP', 'Kopiah', 'pcs', 23, 12000, ''); -- -- Indexes for dumped tables -- -- -- Indexes for table `barang` -- ALTER TABLE `barang` ADD PRIMARY KEY (`idBarang`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `barang` -- ALTER TABLE `barang` MODIFY `idBarang` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
3. Buat file server.php di dalam folder server, dan isi scriptnya seperti ini:
<?php require_once('lib/nusoap.php'); $ns = "http://".$_SERVER['HTTP_HOST']."/ws/server/server.php";//setting namespace $server = new soap_server(); $server->configureWSDL('WEB SERVICE UKM', 'urn:barangServerWSDL'); // configure WSDL file $server->wsdl->schemaTargetNamespace = $ns; // server namespace ########################Data Barang############################################################## // Complex Array Keys and Types Data Barang++++++++++++++++++++++++++++++++++++++++++ $server->wsdl->addComplexType("barangData","complexType","struct","all","", array( "idBarang"=>array("name"=>"idBarang","type"=>"xsd:int"), "kodeBarang"=>array("name"=>"kodeBarang","type"=>"xsd:string"), "namaBarang"=>array("name"=>"namaBarang","type"=>"xsd:string"), "satuanBarang"=>array("name"=>"satuanBarang","type"=>"xsd:string"), "hargaBarang"=>array("name"=>"hargaBarang","type"=>"xsd:int"), "stokBarang"=>array("name"=>"stokBarang","type"=>"xsd:int") ) ); // Complex Array Data Barang++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $server->wsdl->addComplexType("barangArray","complexType","array","","SOAP-ENC:Array", array(), array( array( "ref"=>"SOAP-ENC:arrayType", "wsdl:arrayType"=>"tns:barangData[]" ) ), "barangData" ); // End Complex Type barang++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ########################/Data Barang############################################################## ########################/Register Data Barang###################################################### //Ambil Semua Data Barang $server->register('readall', // method name array('input' => 'xsd:String'), // input parameters array('output' => 'xsd:Array'), // output parameters $ns, // namespace "urn:".$ns."/readall", // soapaction "rpc", // style "encoded", // use "Mengambil Semua Data Barang"); // documentation //Ambil Semua Data kategori buku $server->register('create', array('input' => 'xsd:Array'), array('output' => 'xsd:Array'), $ns, "urn:".$ns."/create", "rpc", "encoded", "Insert Data Barang" ); function create($param) { $server = "localhost"; $username = "root" ; $password = "" ; $database = "ukm"; $con = new mysqli($server,$username,$password,$database); if($con->connect_error){ die("Koneksi gagal: ".$con->connect_error); } $r = $con->query("INSERT INTO barang (kodeBarang,namaBarang,satuanBarang,hargaBarang,stokBarang) VALUES('$param[kodeBarang]','$param[namaBarang]','$param[satuanBarang]','$param[hargaBarang]','$param[stokBarang]')"); if($r === true){ $s = 1; }else{ $s = 0; } $return_value = array('status'=>$s); return $return_value; } ///////////////////////// $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?>
#CLIENT
Pada aplikasi ini client kita letakkan di dalam folder “WS”
1. Buat file client.php (bisa bebas), client ini adalah halaman yang berisi form untuk memasukkan data ke server yang teleah kamu buat tadi, isi scriptnya dengan script di bawah ini:
<?php require_once('lib/nusoap.php'); $client = new nusoap_client('http://127.0.0.1/ws/server/server.php?wsdl', true); $err = $client->getError(); if ($err) { echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; } if (isset($_POST['simpan'])) { $param = array("kodeBarang" => $_POST['kode'],"namaBarang" => $_POST['nama'],"satuanBarang" => $_POST['satuan'],"hargaBarang" => $_POST['harga'],"stokBarang" => $_POST['stok']); $result = $client->call("create", array($param)); if ($result['status'] == 1) { echo 'Berhasil menyimpan data'; }else{ echo 'Gagal menyimpan data'; } } echo '<form action="" method="POST"> <h1>Create</h1> <table border=1> <tr><td>Kode Barang</td><td><input type="text" name="kode"></td></tr> <tr><td>Nama Barang</td><td><input type="text" name="nama"></td></tr> <tr><td>Satuan Barang</td><td><input type="text" name="satuan"></td></tr> <tr><td>Harga Barang</td><td><input type="text" name="harga"></td></tr> <tr><td>Stok Barang</td><td><input type="text" name="stok"></td></tr> <tr><td colspan="2" align="center"><input type="submit" name="simpan"></td></tr> </table></form>'; ?>
#SERVER & CLIENT
Karena kamu membuat web service dengan soap, maka jangan lupa untuk memasukkan library nusoap di dua folder yang telah kamu buat tadi, yaitu didalam folder:
- WS
- WS->SERVER
Untuk librarynya dapat didownload disini
Oke sampai disini tutorial memasukkan data ke server web service sudah selesai, untuk cara melihat data yang sudah masuk ke database kamu dapat mempelajarinya di tutorial cara menampilkan data dari web service. Jika masih ada yang perlu ditanyakan dan diskusikan silahkan beri komentar di bawah tutorial ini.
Pingback: Web Service – SOAP – Cara Update Data - Script Source Code – Contoh Program Aplikasi PHP