XML secara garis besar adalah format standar untuk pertukaran informasi berbasis teks yang independen. Dulu, saya berpikir bahwa XML “hanya begitu-begitu saja”, sebuah teks yang diformat sedemikian rupa agar terstruktur. Dulu untuk mengirimkan suatu data yang berbentuk teks atau menyimpan konfigurasi suatu aplikasi, saya masih menggunakan teks biasa yang saya format manual dengan menggunakan karakter spesial seperti “#” atau “@” sebagai pembatas antar data. Lalu ketika data tersebut dibaca, teks tersebut diproses terlebih dahulu dengan menggunakan fungsi “split” yang tersedia di banyak bahasa pemprograman, lalu saya proses sedemikian rupa untuk kemudia data tersebut baru dapat saya gunakan.
Berikut akan saya perlihatkan simulasi pengiriman data berupa teks yang terstruktur dengan menggunakan metode splitting yang sudah ketinggalan zaman:
Data di database
ID | Nama | Umur | Jenis Kelamin |
1 | Budi | 13 | Laki-Laki |
2 | Ani | 12 | Perempuan |
3 | Jajang | 12 | Laki-Laki |
Data ketika dikirimkan
1#Budi#13#Laki-Laki@2#Ani#12#Perempuan@3#Jajang#12#Laki-Laki
Dari simulasi data diatas, dapat dilihat bahwa teks tersebut mempunyai struktur agar format data yang dikirimkan dapat dibaca pada tujuan sesuai dengan format data aslinya ketika di database. Untuk informasi sebelum melanjutkan membaca, seterusnya akan digunakan istilah record untuk menggambarkan suatu kumpulan data-data berkaitan yang mendiskripsikan suatu objek. Setiap record dipisah dengan menggunakan karakter “@” dan setiap data di dalam record dipisah dengan menggunakan karakter “#”. Teks pertama kali displit berdasarkan karakter “@” lalu disimpan dalam array, lalu kemudia setiap data pada array tersebut displit kembali dengan menggunakan karakter “#”. Setelah proses selesai maka akan didapat data berbentuk array 2 dimensi yang berformat sama ketika data tersebut masih di dalam database, hasil dari proses ini baru dapat kemudia digunakan.
Sekilas metode ini terlihat efektif untuk mengirimkan suatu teks yang mempunyai format terstruktur, namun apabila di dalam database terdapat karakter “#” atau “@”, maka struktur data akan menjadi kacau ketika diproses. Hal ini mungkin dapat ditanggulangi dengan misalnya mengganti setiap karakter di database yang sama dengan “#” atau “@” dengan karakter lain. Hal tersebut dapat dicapai, namun semakin kompleks data yang akan dikirim, semakin kompleks juga pemprosesan yang akan dilakukan, bahkan mungkin harus menggunakan bertingkat-tingkat loop hanya untuk mendapatkan suatu data.
Sekarang kita bandingkan jika data dikirim dengan format XML:
<data ID=”1″>
<nama>Budi</nama>
<umur>13</umur>
<gender>Laki-Laki</gender>
</data>
<data ID=”2″>
<nama>Ani</nama>
<umur>12</umur>
<gender>Perempuan</gender>
</data>
<data ID=”3″>
<nama>Jajang</nama>
<umur>12</umur>
<gender>Perempuan</gender>
</data>
Secara sepintas, jika data dikirimkan dalam bentuk ini, tanpa petunjuk dan analisa mendalam saja kita sudah dapat melihat bahwa teks tersebut merupakan teks terstruktur yang mempunyai banyak data di dalamnya. Juga dapat dilihat dengan jelas setiap struktur data yang sedang dikirimkan. Hal ini mempermudah kita jika ingin membaca data on-the-fly seperti ketika debugging. Untuk memproses teks tersebut, tidaklah sulit, sudah ada banyak fungsi built-in di hampir setiap bahasa pemprograman untuk memproses teks berbasis XML. Hanya tinggal menulis beberapa baris kodingan pemprograman, kita sudah dapat membaca data yang dikirimkan.
Jika ditilik lebih jauh, kita dapat melihat kelemahan yang sama dengan metode sebelumnya, yaitu apabila jika terdapat karakter spesial di dalam teks tersebut pada datanya, seperti “<” atau “>”. Dalam banyak bahasa pemprograman, sudah tersedia fungsi untuk mencegah terjadinya hal ini sehingga kita tidak perlu repot-repot untuk mengkonversikannya secara manual.
Baik mengirim data dalam bentuk XML atau dalam bentuk custom, tidak ada yang dapat menjadi solusi absolut dalam mengirimkan data. Mungkin XML memang sudah menjadi standar internasional dalam mengirimkan data, namun tetap saja ada kalanya dimana kita tidak dapat menggunakan XML dan lebih bagus membuat struktur data sendiri dengan menggunakan karakter-karakter spesial sebagai pembatasnya. Namun, untuk data yang bersifat umum, format XML sangat saya anjurkan, karena programmer tidak akan dipersulit dengan struktur data yang mengerikan.