Simple Sample: XML Web Service & PHP


PHP & XML

Kali ini kita akan coba utak-atik cara lama penggunaan web service dengan XML. Contoh sederhana kita akan gunakan web service yang dimiliki BMKG, dengan data berbentuk XML. Anda bisa langsung akses ke http://data.bmkg.go.id/, tanpa key token atau register user. Salah satu data yang akan kita gunakan adalah Data Cuaca Indonesia, http://data.bmkg.go.id/cuaca_indo_1.xml. Silahkan Anda cekidot dan pandang-pandangin dulu bentuk XML nya, mudah kan melihat pola tag XML nya.

Tugas kita selanjutnya adalah hanya sekedar membuat parsing XML dengan PHP, agar memudahkan pembacaan data dari web service BMKG tersebut.

Mari kita coba lihat datanya, http://data.bmkg.go.id/cuaca_indo_1.xml

<Cuaca>
 <Tanggal>
  <Mulai>04 November 2013</Mulai>
  <Sampai>05 November 2013</Sampai>
 </Tanggal>
 <Isi>
  <Row>
   <Kota>Banda Aceh</Kota>
   <Cuaca>Hujan Ringan</Cuaca>
   <SuhuMin>22</SuhuMin>
   <SuhuMax>32</SuhuMax>
   <KelembapanMin>65</KelembapanMin>
   <KelembapanMax>96</KelembapanMax>
  </Row>
...

Kita dapat langsung melihat hirarki dari dokumen XML diatas berdasarkan bentuk Tag-tag XML-nya. Dari contoh data diatas kita bisa mengetahui, diawal dokumen akan diberikan informasi tanggal dari cuaca yang ditampilkan saat ini. kemudian pada bagian isi, akan ada data cuaca yang disajikan secara iterasi berdasarkan nama kota. Masing-masing data cuaca setiap kota tersebut, mengandung informasi nama kota (tag Kota), prakiraan cuaca (tag Cuaca), info suhu (SuhuMin & SuhuMax), dan info kelembapan kota tersebut. Silahkan Anda lihat lebih lanjut data kota lainnya, sampai menemukan tag penutup Isi dan Cuaca.

Gampang kan melihat pola datanya? pastinya dong, karena ini cara XML seperti ini adalah cara termudah!! (Anda harus meyakini ini) 😛

Parsing PHP

Pada bagian selanjutnya, kita akan mulai mencoba menggunakan parsing XML dengan PHP. Pada penggunaan PHP dikenal library untuk parsing XML, menggunakan simpleXML, cekidot info lebih lanjut tentang simpleXML. Lakukan akses terhadap URL BMKG diatas, kemudian hasilnya ditangkap untuk dimasukkan kedalam simpleXML.

<?php
  $url = "http://data.bmkg.go.id/cuaca_indo_1.xml";
  $sUrl = file_get_contents($url, False);
  $xml = simplexml_load_string($sUrl);

  echo "<p>Data Cuaca : ".$xml->Tanggal->Mulai." </p>";

?>

Pada contoh diatas kita coba mengambil data hasil parsing XML kedalam bentuk string, yaitu data tanggal mulai, perhatikan cara penulisannya diatas. Mudah kah? 😛

Selanjutnya kita akan mencoba menampilkan Data Cuaca untuk tag Isi, yang merupakan informasi detil cuaca per-kota. Kita harus menggunakan Looping untuk menampilkan iterasi data. Namun pada contoh berikut, data yang ditampilkan kita batasi hanya untuk Cuaca kota Bandung. Caranya masih sama dengan contoh diatas, kita akan ambil data dari variable hasil parsing XML, dengan memperhatikan pola hirarkinya.

<?php
for ($i=0; $i<sizeof($xml->Isi->Row); $i++) {
 $row = $xml->Isi->Row[$i];
 if(strtolower($row->Kota) == "bandung") {
 echo "<b>" . strtoupper($row->Kota) . "</b><br/>";
 echo "Cuaca :" . $row->Cuaca . "<br/>";
 echo "<img src='http://www.bmkg.go.id/ImagesStatus/" . $row->Cuaca . ".png' alt='" . $row->Cuaca . "'><br/>";
 echo "Suhu : " . $row->SuhuMin . " - ".$row->SuhuMax . " &deg;C<br/>";
 echo "Kelembapan : " . $row->KelembapanMin . " - " . $row->KelembapanMax . " %<br/>";
 break;
 }}
?>

Dari contoh diatas kita mengetahui, bahwa penggunaan simpleXML dapat berupa string atau iterasi integer, pada contoh diatas kita gunakan array  dari tag Row dengan index sesuai itarasi loop for. Dari hasil iterasi Row tersebut, didapatkan detil info cuaca, seperti yang telah dijelaskan diatas.

Bagaimana hasil tampilannya, pasti mudah kan? jika masih belum paham, silahkan dipandangi lagi lebih lanjut code nya, atau diskusikan masalah Anda di bagian comment.

Diskusi?

untuk pengembangan lebih lanjut dari contoh sederhana ini, Anda bisa memodifikasi untuk menampilkan Cuaca semua Kota. Cara dengan memberikan pilihan berupa Select-Option Tag HTML, yang berisi nama-nama kota pada data cuaca BMKG tersebut. Kemudian jika user memilih nama kota, maka dibagian bawahnya akan muncul data Cuaca nya.

Selamat Mencoba!!


One response to “Simple Sample: XML Web Service & PHP”

  1. ambil data rss bmkg khusus tanggal lalu secara otomatis menyimpan k database baru d tampilkan data yg tersimpan td
    kalau yg seperti itu gmn gan cara nya?

Leave a Reply

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