Tutorial simple PHP kali akan membahas membuat Web service data Mahasiswa simple dengan PDO ( PHP Data Object). Sedikit tambahan, bahwa Web service itu berguna untuk mengakses/mengambil data dari Aplikasi luar tentunya dengan permission atau hak akses. 

Ok langsung saja kita mulai . Pertama siapkan databse dan table nya (mySQL) 
DB Name : test , Table : mhs
kira begini penampakan table nya. ( buat sendiri jg gampang kn :D)

id nama alamat umur
1 Ganjar St. Paris 89, Jakarta
24
2 Mimin

Jl. Sudnari asri no 90,Bandung

22
Persiapan folder dan file-file di htdocs

  1. koneksi.php
  2. mhs.php
  3. web_service.php
  4. akses_web_service.php

taruh file-file diatas di 1 folder misalnya 'web-service' di htdocs.

Sekarang kita buat satu-satu kode nya.

koneksi.php

class Koneksi { //DB name : test
    protected $dns = "mysql:host=localhost;dbname=test"; protected $db_user = "root";
protected $db_pass = "";
protected $konek = "";

    public function getKon() {

try{

$db = new PDO($this->dns,$this->db_user,$this->db_pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if($db===FALSE){

throw new Exception("Koneksi Gagal");

}else{

$this->konek = $db;
}

}catch(Exception $e){

echo "Error : ".$e->getMessage();
}
return $this->konek;
}

public function closeKon(){

$this->konek = NULL; //diskonek Koneksi
}
} /* Kita sekalian buat Class active record simple untuk fetch data ke DB */
class ActiveRecord extends Koneksi{

public function fetchObject($sql){

$clone = array();

try{
$data =  $this->getKon()->prepare($sql);
$data->setFetchMode(PDO::FETCH_INTO,$this);
$data->execute();  /* krena fetch ingin sbg Object, maka kita hrus clone hasilnya */
while($result = $data->fetch()){

$clone[] = clone $result;
}
$this->closeKon();

}catch(PDOException $e){
   
echo $e->getMessage();
}
return $clone;
}
}

mhs.php
require_once "koneksi.php";

class MhsWebService{
    
    protected $name;
    protected $umur;
    
    //misal API yg dikasih utk client
    protected $API = 'khss8363621';
    
    public function setName($name){
        
        $this->name = $name;
    }
    public function getName(){
        
        return $this->name;
    }
    
    public function setUmur($umur){
        
        $this->umur = $umur;
    }
    public function getUmur(){
        
        return $this->umur;
    }
    
    public function validateAPI($api){
        
        if($this->API !== $api)
            return false;
            
        return true;
    }
    
    
    public function getMhs(){
                                        
       $objAr= new ActiveRecord();
       
       /*Query blm pake bind params, silahkan edit sendiri*/
       $sql = "SELECT * FROM mhs WHERE 1=1  ";
          if($this->getName()){
                    
              $sql .=" AND nama LIKE '%{$this->getName()}%' ";
          }
          if($this->getUmur()){

            $sql .=" AND umur LIKE '%{$this->getUmur()}%' ";
          }
                
      return $objAr->fetchObject($sql);
       
    }   
}
web_service.php
validateAPI($s_API)){
    
    //kirim params" nya
    $mhs->setName($s_name);
    $mhs->setUmur($s_umur);
    
    $data = $mhs->getMhs();
    //print_r($data);
    reset($data);
    $i=0;
    //saya pake while, klo mau foreach silahkan :D
    while(list(,$r) =  each($data)){
        
        $hasil[$i]['nama'] = $r->nama;
        $hasil[$i]['umur'] = $r->umur;
        $hasil[$i]['alamat'] = $r->alamat;
        
        ++$i;
    }
   
   //hanya utk flag saja
   $hasil['status'] = TRUE;
    
}else{
    
    $hasil['status'] = FALSE;
}

echo json_encode($hasil);

?>

akses_web_service.php

    
       
    
    
        
        

MHS Web Service


Name : Umur :
$s_name, 'umur' => $s_umur ); $data = http_build_query($fields); $context = stream_context_create(array( 'http' => array( 'method' => 'GET', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $data, ) )); $result = file_get_contents($url, false, $context); //decode json nya ke array $vr = json_decode($result,true); echo "
";
                    print_r($vr);
                echo "
"; } ?>

Di atas terlihat saya pakai file_get_contents   , silahkan gunakan method yg lain jika perlu. 

Output dari program diatas seperti ini




Masih dalam Array biasa, silahkan proses sendiri :D

Akses aplikasinya di browser
localhost/web-service/akses_web_service.php


Begitulah kira-kira :D

Happy Coding !!!!