TIKI / titipan kilat untuk saat ini memang belum mempunyai sebuah layanan web service untuk memudahkan para pemilik toko online dalam melakukan perhitungan tarif. Pada halaman web dari tiki online sendiri sebenarnya telah di sediakan sebuah tool untuk menghitung tarif yang dibebankan untuk sebuah pengiriman.
Pada bahasan kali ini akan coba di buat sebuah parser untuk halaman penghitungan tarif tersebut. Untuk ini kita membutuhkan sebuah library tambahan yaitu “PHP Simple HTML DOM Parser” . Library ini akan memudahkan script kita dalam memproses sebuah struktur HTML, sehingga bisa dilakukan pengambilan data-data yang di perlukan saja. Di butuhkan juga dukungan untuk cURL pada server yang kita gunakan.
Dari halaman perhitungan tarif Tiki Online kita akan dapati sebuah form yang terdiri dari 3 buah input teks, yaitu Origin, Destination dan Weight. Form tersebut di arahkan ke halaman yang sama, dalam hal melakukan proses perhitungannya.

Contoh penghitungan tarif
Berikut adalah contoh kode yang di gunakan untuk perhitungan :
/****************************************************************
Version: 0.01
Website: http://www.int2k.web.id/
Author: int2k
Licensed under The MIT License
Redistributions of files must retain the above copyright notice.
*****************************************************************/
include "simple_html_dom.php";
$url = "http://www.tiki-online.com/tardom.asp";
$ch = curl_init();//Initialise CURL
curl_setopt($ch, CURLOPT_URL, $url);//Set the url
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);//We want the data to return
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 10);//Of course, we don't want your script to run forever, so set a timeout
curl_setopt($ch, CURLOPT_POST, true);//We want to request the page by post
curl_setopt($ch, CURLOPT_POSTFIELDS, "TxtOrg=Jakarta&TxtDest=Bandung&TxtWg=1");//Post the fields
$text = curl_exec($ch);
curl_close($ch);
$html = str_get_html($text);
$dataall = array();
foreach( $html->find('tr[bgcolor!=#A6A5A5]') as $hasil)
{
$data['service'] =
preg_replace("(^\s|\s$)", "",
str_replace(" ", "",
str_replace("-", "",
str_replace("\r\n","",
$hasil->find("td[width='350']",0)->plaintext." "))));
preg_match("(\(.*\))",$data['service'],$kode);
$data['kode']=preg_replace("(\(|\))","",$kode[0]);
$data['biaya'] = (float) preg_replace("([\.,])","",
str_replace(" ","",
str_replace("-","",str_replace("\r\n","",
$hasil->find("td[width='250']",0)->plaintext))));
$dataall[]=$data;
}
var_dump($dataall);
$html->clear();
$hasil->clear();
unset($html);
unset($hasil);
Hasil dari kode di atas kira-kira adalah sebagai berikut :

Contoh hasil parsing tarif TIKI
Bagian utama dari parser ini berada pada bagian foreach yang akan mengambil hasil dari perintah $html->find(‘tr[bgcolor!=#A6A5A5]‘). Perintah ini maksud nya mencari element HTML TR yang memiliki elemen bgcolor tidak sama dengan #A6A5A5. Elemen ini di pilih setelah melihat kedalam source dari halaman perhitungan tarif setelah selesai memproses form, yaitu elemen yang menampung tabel hasil perhitungan.
Kode di atas hanya merupakan sebuah kode dasar, namun cukup lengkap untuk kemudian digunakan dalam membantu perhitungan sesungguhnya pada sebuah toko online. Silahkan jika ada yang ingin mengembangkan lebih lanjut sehingga bisa langsung di pakai sebagai modul pada script e-commerce.
* update 28 November 2010 : website tiki sekarang telah berubah struktur web nya, sehingga code di atas menjadi tidak valid

Mantep oM
wah… keren banget om….
ane coba ahh….
Beugh, bahasa dewa bener2 dah. Ane bantu sundul gan
:sup:
good post bro
semoga TIKI ngehire org spt ente
buat nyediain APInya dlm JSON atw XML
nice info om itik
numpang baca dulu gan …………….
ane bantu sundul
nice info..
aduh ane newbie… gmn nih ngeaplikasiin…
Bos kenapa nggak bikin yg JNE karena http://www.tiki-online.com sering out of service
kok saya jalankan contohnya g bs ya muncul pesan error :
array(0) { }
Fatal error: Call to a member function clear() on a non-object in D:\latihan\tes2.php on line 35
sayang nya baru2 ini tiki merubah struktur website nya
sehingga code yang terdapat dalam post menjadi obsolete
dengan perubahan struktur websitenya yang sekarang, parsingnya jadi lebih sederhana pak
maaf sblmnya klo ane lancang… heheehe, script di atas tidak bisa digunakan lg… krena skr website nya tiki sudah menggunaka script dgn metode MVC (Model View Controller) yg merunut pada model Objek oriented sehingga script nya lmyan secure, utk menggunakan teknik curl (grab script secara paksa) sudah tidak bisa lg… maaf lhooo itu cma mnurut ane aj… mngkin sedulur2 ad yg bsa lebih dalem lg analisa scripting nya.. mohon dibantu ya… trims….
he kan dan udah di kasih note update, kalo ada perubahan struktur website
di curl masih bisa koq, cuman musti agak muter2 dulu dikit untuk dapetin kode kota