Wednesday 10 April 2019

Membuat Webservice menggunakan PHP dengan database PostgreSQL

Membuat Webservice menggunakan PHP dengan database PostgreSQL


hayyy gaes gimana kabar kalian ?? maaf nih baru sempet update karena terkendala sama pekerjaan. kali ini saya mau sharing tentang webservice . kalian adakah yang tau mengenai tentang webservice. apakah itu sih tentang webservice ? nah langsung saja ikuti ulasan berikut ini.

Webservice adalah aplikasi sekumpulan data, software, atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai perangkat piranti dengan sebuah perantara tertentu. Secara umum webservice dapat diartikan yaitu dengan menggunakan URL seperti halnya web  pada umumnya, namun yang membedakan webservice dengan web pada umumnya adalah interaksi yang diberikan oleh webservice. Webservice dapat diilustrasikan sebagai berikut..

Pernah apa tidak terpikir kalian jika kalian semua membuat sebuah aplikasi berbasis website tapi database nya bisa diakses oleh perangkat lain seperti mobile, dekstop atau website lain ?? nah seperti itu lah ilustrasi dari webservice. 

untuk kali ini saya akan sharing mengenai pembuatan webservice SOAP dengan berbasis XML, oke langsung saja ke pembahasan . oh ya kali ini saya buat menggunakan databaase PostgreSQL..

1. Pertama pastikan kalian semua sudah instal database PostgreSQL tersebut dan saya asumsikan kalian sudah menginstal database nya tersebut.

2. Buat database seperti berikut , saya sudah punya database namanya posku dengan tabel customer seperti berikut struktur nya. Oh ya ini saya pakai PgAdminIII untuk GUI nya sebagai manajemen database, kalian bisa pakai yang lain seperti navicat ataupun yang lain sesuai selera kalian.


3. Setelah buat tabel nya , mari kita mulai ngoding ..
4. Buat folder project di dalam htdocs dengan nama terserah anda
5. setelah itu buat file php dengan nama ws_server_cust.php kira kira seperti ini kodenya . nama folder projectnya serverku_soap

<?php
    require_once ('lib/nusoap.php');
    $ns = "http://localhost/serverku_soap/ws_serv_cust.php"; // lokasi folder seusuaikan dengan kasus anda

    $server = new soap_server;
    $server->configureWSDL('Server latihan', $ns);
    $server->wsdl->schemaTargetNamespace = $ns;
   
    // array in array data
    $server->wsdl->addComplexType(
        'dtcust',
        'complexType',
        'struct',
        'all',
        '',
        array( //output parameter
          'nik_cust' => array('name' => 'nik_cust','type' => 'xsd:string'), 
          'nm_cust' => array('name' => 'nm_cust','type' => 'xsd:string'),
          'alm_cust' => array('name' => 'alm_cust','type' => 'xsd:string'),
          'em_cust' => array('name' => 'em_cust','type' => 'xsd:string'),
          'nohp_cust' => array('name' => 'nohp_cust','type' => 'xsd:string')       
        )
    );

    $server->wsdl->addComplexType(
        'sdtcust',
        'complexType',
        'array',
        '',
        'SOAP-ENC:Array',
        array(),
          array(
            array('ref' => 'SOAP-ENC:arrayType',
                'wsdl:arrayType' => 'tns:dtcust[]')
            ),
            'tns:dtcust'
    );
    // end array in array data 

    //start register insert customer
    $in_ins = array('nik_cust' => 'xsd:string', 'nm_cust' => 'xsd:string', 
                    'alm_cust' => 'xsd:string', 'em_cust' => 'xsd:string', 
                    'nohp_cust' => 'xsd:string') ;     //insert parameter
    $out_ins = array('return' => 'xsd:string');    //output paramtere
    $server->register('insert',                    // method name
                $in_ins,
                $out_ins,
                $ns,                    // namespace
                $ns . '#insert',
                "rpc",                              // style
                "encoded",                          // use
                "Simpan data customer"                // documentation
    );

    function insert($nik_cust,$nm_cust,$alm_cust,$em_cust,$nohp_cust)
    {
        require_once('class_serv/Classcust.php');
        $customer = new Classcust;
        $resp = $customer->insert($nik_cust,$nm_cust,$alm_cust,$em_cust,$nohp_cust);
        if($resp){
            return $resp;
        }else{
            return new soap_fault('Client', '', 'There was an error!', '');
        }
        
    }

    $server->service(file_get_contents("php://input"));

    exit();
?>



itu ada koding require_once('lib/nusoap.php'), itu merupakan library SOAP berbasis XML nya yang akan kita load
file library nya bisa di download di sini Silahkan di download
di situ juga terdapat function , itu merupakan function yang telah di register sebelumnya

di dalam function terdapat kode seperti ini require_once('class_serv/Classcust.php') , itu merupakan load file Classcust.php di dalam folder class_serv yang (sesuaikan kondisi masing - masing) 

buat koding file Classcust.php , seperti ini kodingnya 

<?php
    
    class Classcust
    {
        public function insert($nik_cust,$nm_cust,$alm_cust,$em_cust,$nohp_cust)
        {
            require_once('config.php');
            $sql = "INSERT INTO tb_customer VALUES (
                '".$nik_cust."','".$nm_cust."','".$alm_cust."','".$em_cust."',
                '".$nohp_cust."') ";
            $hasil = pg_query($koneksi,$sql);
            if($hasil){
                $respon = "Sukses simpan";
            }else{
                $respon = "Gagal simpan";
            }
            return $respon;
        }

    }


di situ terdapat kodingan seperti berikut require_once('config.php');  itu merupakan load file config.php , mari kita buat file config.php nya dan taruh di dalam project tersebut , jangan di masukkan di dalam folder class_serv . 
seperti ini kodingan file config,php 

<?php
    $koneksi = pg_connect("host=localhost port=5432 dbname=posku user=postgres password=admin@201353083")

?>



sesuaikan dengan kondisi masing masing anda untuk dbname dan password

6. Setelah itu coba buka URL nya , nanti tampilan nya seperti berikut

setelah itu klik WSDL nya nanti link URL dan XML nya nya akan seperti ini


sampai tahap ini sudah berhasil buat webservice untuk create data, mari kita tes menggunakan aplikasi SOAP UI, saya pakai versi 5.3
mari kita tes
1. Buka aplikasi SoapUI lalu file -> new soap project lalu klik OK , seperti di bawah ini


maka tampilan nya seperti di bawah ini


klik tombol request, lalu isi valuenya maka tampilan seperti di bawah ini


setelah di isi maka seperti pada di bawah ini


lalu klik tombol play di pojok kiri atas, maka akan di proses dan mengirimkan pesan return sukses disimpan
lalu coba lihat database nya, hasilnya akan masuk ke database seperti gambar di bawah ini



Sekian tutorial webservice PHP dengan database PostgreSQL , semoga bermanfaat
enjoy your coding :)

Share:

0 comments:

Post a Comment

Motivasi

Jalani hari-hari dengan bismillah dan ikhlas

Contact

WA : 085 727 109 286

Service

Menerima jasa pembuatan aplikasi