Pengenalan XQuery

Hufft.. bosannya satu harian ga ada kerjaan, pak boss pun blom kembali dari cuti. Daripada ngantuk mending baca-baca something useful :). Setelah berputar-putar di dunia nya si maya, aku penasaran tentang XQuery yang sering dibicarakan orang-orang disni. Kemudian dengan inisiatif sendiri, aku menanyakannya kepada mbah Google (*jangan lupa bawa sesajen ya? :D). Ternyata XQuery adalah functional programming yang memungkinkan kita dalam meng-query data-data XML seperti syntax query pada RDBMS . Selain untuk meng-query data-data XML, XQuery juga bisa dipakai dalam hal mengekstrak informasi yang ada pada WebService, generate dokumen laporan, transformasi XML ke XHTML, dll. Untuk lebih jelasnya mari kita liat contoh-contoh penggunaan XQuery.

Misalkan kita menggunakan data-data film di bioskop (movie.xml) sebagai file XML yang akan kita query.

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<theater>
 <movie category="ADVENTURE">
 <title>Harry Potter</title>
 <actor>Daniel Radcliffe</actor>
 <year>2005</year>
 <price>35000</price>
 </movie>

 <movie category="ACTION">
 <title>On Upon A Time In China</title>
 <actor>Jet Li</actor>
 <year>1992</year>
 <price>20000</price>
 </movie>

 <movie category="ROMANTIC">
 <title>August Rush</title>
 <actor>Freddie Highmore</actor>
 <actor>Robin William</actor>
 <actor>Jonathan Rhys Meyers</actor>
 <year>2007</year>
 <price>50000</price>
 </movie>

 <movie category="ROMANTIC">
 <title>Eat Pray Love</title>
 <actor>Julia Roberts</actor>
 <year>2010</year>
 <price>70000</price>
 </movie>
</theater>
<code>

 

Lalu bagaimana cara kita jika mau melihat semua record ?

doc("movie.xml")

Kalau hanya ingin menampilkan judul movie, maka kita cukup membuat seperti berikut :


doc("movie.xml") theater/movie/title

output :


<title>Harry Potter</title>
<title>On Upon A Time In China</title>
<title>August Rush</title>
<title>Eat Pray Love</title>

Pada XQuery kita bisa membuat kondisi atau kriteria data-data yang akan ditampilkan. Misalnya pada contoh movie.xml diatas, kita akan menampilkan film yang harganya dibawah 30000. Code yang akan kita gunakan adalah sebagai berikut :


doc("movie.xml") theater/movice[price<30000]

output :


<movie category="ACTION">
 <title>On Upon A Time In China</title>
 <actor>Jet Li</actor>
 <year>1992</year>
 <price>20000</price>
 </movie>

Jika pada database-database secara umumnya kita mengetahui istilah CRUD (create, retrieve, update, delete), maka pada XQuery kita mengenal istilah FOWR (for, order by, where, return). Berikut kita lihat contoh penggunaannya.


for $x in doc("moive.xml")/theater/movie
where $x/year>=2000
order by $x/title
return $x/title

output :


<title>August Rush</title>
<title>Eat Pray Love</title>
<title>Harry Potter</title>

Hasilnya pun bisa kita tampilkan dalam bentuk HTML


<ul> {
for $x in doc("moive.xml")/theater/movie
where $x/year>=2000
order by $x/title
return <li>{ $x/title }</li>
}
</ul>

output :

<ul>
<li><title>August Rush</title></li>
<li><title>Eat Pray Love</title></li>
<li><title>Harry Potter</title></li>
</ul>

Demikianlah dasar-dasar pemograman dengan XQuery, selain hal-hal diatas, masih banyak fungsi-fungsi XQuery yang tidak disebutkan.. Silahkan di explore sendiri 😀

Having fun with XQuery 😀

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: