Web Service – SOAP – Cara Insert Data (Create)

By , May 10, 2017,
Web Service - SOAP - Cara Insert Data (Create)

Web Service – SOAP – Cara Insert Data (Create)

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:

  1. Nama Database: ukm
  2. 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:

  1. WS
  2. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *