Simple Sample : JSON web service & PHP


JSON & PHP

Sebelumnya kita sudah membahas cara penggunaan web service xml dengan PHP, silahkan cekidot artikel sebelumnya. Nah, kali ini kita coba cara yang lebih mudah lagi, yaitu jika web service yang akan diakses dalam bentuk data JSON. Ini umum digunakan pada API yang ada saat ini, seperti Facebook, Twitter, Google dan banyak lagi. Format JSON ini disinyalir menjadikan data lebih mudah digunakan dan dikirimkan. Untuk lebih jelasnya tentang JSON, Anda perlu baca dulu salah satu referensi di wikipedia tentang JSON.

Pada contoh kali ini kita akan mencoba akses web service yang memiliki format JSON. Hasil datanya akan kita tampilkan menggunakan PHP. Web service yang digunakan adalah http://openweathermap.org/api, Anda bisa lihat dokumentasi lebih detil nya di http://bugs.openweathermap.org/projects/api/wiki.

 

Langkah awal, Anda harus mempelajari dulu bentuk data JSON yang disajikan. Contoh nya kita akan coba pada cuaca di Kota Bandung, pada link berikut http://api.openweathermap.org/data/2.5/weather?q=Bandung,id. Cara mengakses API pada situs tersebut adalah dengan menambahkan variable q, sesuai nama kota dan kode negara (Indonesia = id). Hasil nya bisa kita lihat seperti dibawah ini,

{"coord":{"lon":107.618607,"lat":-6.90389},"sys":{"country":"ID","sunrise":1383517308,"sunset":1383561864},"weather":[{"id":501,"main":"Rain","description":"moderate rain","icon":"10d"}],"base":"global stations","main":{"temp":299.548,"temp_min":299.548,"temp_max":299.548,"pressure":982.21,"sea_level":1022.65,"grnd_level":982.21,"humidity":100},"wind":{"speed":1.22,"deg":0.504272},"rain":{"3h":3.5},"clouds":{"all":12},"dt":1383542294,"id":1650357,"name":"Bandung","cod":200}

Jangan panik dan bingung melihat contoh JSON diatas. Coba dipandangi lebih seksama dan teliti, maka Anda akan menemukan pola penyajian data nya. Yups, data disajikan dalam bentuk Array String, kita bisa lihat ada kumpulan string didalam Array tertentu. Dan karena ini bentuk data yang sudah jadi, maka kita bisa tebak mana variable yang menunjukkan kondisi cuaca, yaitu variable main, dengan value nya Rain. Gampang kan?

Kalau Anda sudah bisa menebak dan memahami bentuk datanya, sekarang tinggal melakukan parsing format JSON ke dalam array atau data, menggunakan library PHP.

Parsing JSON

Untuk melakukan parsing JSON, kita gunakan function PHP json_decoder, silahkan cekidot di manual PHP. Silahkan pelajari cara penggunaannya, karena sangat mudah. Berikut ini contoh data yang kita ambil dari link API http://api.openweathermap.org/data/2.5/weather?q=Bandung,id

<?php
if(!isset($_REQUEST['kota'])){
 $kota = 'Bandung';
}else{
 $kota = $_REQUEST['kota'];
}
$url = "http://api.openweathermap.org/data/2.5/weather?q=".$kota.",id";
$jsonUrl = file_get_contents($url, False);
$json_idr = json_decode($jsonUrl, true);
print_r($json_idr);
?>

Pada Contoh diatas kita menambahkan input method untuk variable nama kota, karena kita akan menambahkan pilihan kota. Berikut detil tampilannya.

<form action="#">
 <select id="kota" name="kota">
 <option>Jakarta</option>
 <option>Bandung</option>
 <option>Jayapura</option>
 <option>Surabaya</option>
 </select>
 <input type="submit" value="Go" />
</form>
<h2>Cuaca <?php echo $kota?></h2>
<p>
<?php echo($json_idr['weather'][0]['main']); ?>
<img src="http://openweathermap.org/img/w/<?php echo $json_idr['weather'][0]['icon'] ?>.png" />
</p>

Kita bisa langsung menebak dari hasil penampakan konten JSON yang telah di parsing. Untuk mendapatkan cuaca per-kota bisa dilihat pada variable ‘main’.

Gimana Mudah kah? pasti dong mudah banget 😀

Untuk pengembangan selanjutnya, Anda bisa gunakan cara yang sama pada API Facebook, Twitter, Google, dan yang lainnya. Namun umum nya API tersebut membutuhkan key user atau registrasi terlebih dahulu sebelum Anda gunakan.

 


One response to “Simple Sample : JSON web service & PHP”

Leave a Reply to Mainan RIA 2016: Pra Assessment 2 – Magic Adakabrada! Cancel reply

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