Kali ini humayraa.com akan berbagi bagaimana caranya Membuat script cek ongkir tiki sederhana dengan menggunakan curl. Data Ongkir langsung diambil dari web sumber kemudian dilakukan parsing untuk mengambil bagian tertentu yang kita inginkan.
Ada 3 tahapan utama dalam script ini yaitu:
1. Script pengambilan data kota
2. Script pengambilan web hasil perhitungan tarif
3. Parsing halaman web
Script pengambilan Data Kota kurir TIKI
Pengambilan database yang berisi nama-nama kota yang terdaftar dalam jaringan tiki tidaklah sulit. Andapun bisa melakukannya tanpa script yaitu langsung mengetikkan alamat http://www.tiki-online.com/lib/cariori.php di browser Anda dan data nama KOTA Kecamatan yang masuk kedalam jaringan TIKI akan muncul di halaman browser anda.
function getKOTA(){
$hasil = file_get_contents("http://www.tiki-online.com/lib/cariori.php");
$hasil = explode("\n", $hasil);
return $hasil;
}
Kemudian Data Kota tersebut kita jadikan bahan input di form. HUMAYRAA menggunakan metode dengan tag <datalist> agar mudah difahami. Namun karena datanya yang sangat banyak, maka akan terjadi loading time beberapa detik. Script untuk membuat datalist di input form adalah sebagai berikut:
<form action="tiki.php" method="post">
Dari: <input list="asalkota" name="asal">
<datalist id="asalkota">
<?php
foreach ($listKota as $kota) {
# code...
echo '<option value="'.$kota.'">';
echo "\n";
}
?>
</datalist>
Ke: <input list="tujuankota" name="tujuan">
<datalist id="tujuankota">
<?php
foreach ($listKota as $kota) {
# code...
echo '<option value="'.$kota.'">';
echo "\n";
}
?>
</datalist>
Berat:<input type="number" name="berat">
<input type="submit" value="Cek Tarif">
</form>
sehingga menghasilkan tampilan yang sangat simple namun bisa autocomplete karena menggunakan tag datalist:

sampai di tahapan ini kita sudah menyelesaikan script pengambilan data kota dan mengimplementasikannya di form. Jika Anda sudah faham AJAX, penggunaan AJAX bisa lebih menghemat waktu loading / menambah kecepatan. Silahkan improvisasi sendiri
2. Script mengambil Halaman info tarif di TIKI
Setelah form dibuat, kemudian di klik submit, langkah selanjutnya adalah mengirimkan informasi tersebut ke tiki dan kemudian merecord hasilnya dengan cURL. scripnya sebagai berikut:
function grabTIKI($dari,$ke,$berat){
$ch = curl_init();
$url="http://www.tiki-online.com/?cat=KgfdshfF7788KHfskF";
$params = "&get_ori=".$dari."&get_des=".$ke."&get_wg=".$berat."&submit=Check";
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $params );
$hasil = curl_exec( $ch );
return $hasil;
}
3. Parsing Halaman Web
Script parsing yang saya buat disini adalah hasil trial error. Bisa saja hasil script yang Anda buat jauh lebih bagus dari yang HUMAYRAA hasilkan:
function parseTIKI($html){
//$htmltiki = file_get_contents($tiki);
$htmltiki = str_replace(" _\n\t\t"," ", $html);
$hasil = explode("</table>
", $htmltiki);
$hasil = $hasil[2];
$hasil = explode("</font></td>
</tr>
",$hasil);
$hasil = $hasil[1];
$hasil = explode("align='left'>- ",$hasil);
//$htmltarrif = str_get_html($hasil);
$hasilnya ="";
foreach ($hasil as $key ) {
# code...
$hasiltmp = pangkas($key);
$hasilnya .= $hasiltmp."
\n";
}
return $hasilnya;
}
Script lengkapnya adalah sebagai berikut:
<?php
/***************************************
Script untuk mengambil ongkir Tiki
langsung melalui web tiki-online.com
dengan menggunakan cURL dan html parsing
Copyright (c)2015 by Tanto Prihartanto
Published by Humayraa.com via GitHub
****************************************/
function pangkas($html){
$hasilnya = $html;
$hasilnya = str_replace("</td>
<td width='80%'>", ":", $hasilnya);
$hasilnya = str_replace("
<tr bgcolor=#fedfd1>
<td width='30%'", "", $hasilnya);
$hasilnya = str_replace("
<tr bgcolor=#fcc2a8>
<td width='30%'", "", $hasilnya);
$hasilnya = str_replace("</td>
</tr>
", "", $hasilnya);
$hasilnya = str_replace(",", "", $hasilnya);
$hasilnya = str_replace("</td>
<td _", "", $hasilnya); $hasilnya = str_replace("width='80%'>", " Rp ", $hasilnya);
return $hasilnya;
}
/* CARA GRAB TIKI */
function getKOTA(){
$hasil = file_get_contents("http://www.tiki-online.com/lib/cariori.php");
$hasil = explode("\n", $hasil);
return $hasil;
}
function grabTIKI($dari,$ke,$berat){
$ch = curl_init();
$url="http://www.tiki-online.com/?cat=KgfdshfF7788KHfskF";
$params = "&get_ori=".$dari."&get_des=".$ke."&get_wg=".$berat."&submit=Check";
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $params );
$hasil = curl_exec( $ch );
return $hasil;
}
function parseTIKI($html){
//$htmltiki = file_get_contents($tiki);
$htmltiki = str_replace(" _\n\t\t"," ", $html);
$hasil = explode("</table>
", $htmltiki);
$hasil = $hasil[2];
$hasil = explode("</font></td>
</tr>
",$hasil);
$hasil = $hasil[1];
$hasil = explode("align='left'>- ",$hasil);
//$htmltarrif = str_get_html($hasil);
$hasilnya ="";
foreach ($hasil as $key ) {
# code...
$hasiltmp = pangkas($key);
$hasilnya .= $hasiltmp."
\n";
}
return $hasilnya;
}
$asalkota = $_POST['asal'];
$tujuankota = $_POST['tujuan'];
$berat = $_POST['berat'];
if ($asalkota == ""){
$listKota = getKOTA();
?>
<form action="tiki.php" method="post">
Dari: <input list="asalkota" name="asal">
<datalist id="asalkota">
<?php
foreach ($listKota as $kota) {
# code...
echo '
<option value="'.$kota.'">';
echo "\n";
}
?>
</datalist>
Ke: <input list="tujuankota" name="tujuan">
<datalist id="tujuankota">
<?php
foreach ($listKota as $kota) {
# code...
echo '
<option value="'.$kota.'">';
echo "\n";
}
?>
</datalist>
Berat:<input type="number" name="berat">
<input type="submit" value="Cek Tarif">
</form>
<?php }
if ($asalkota !=""){
echo "Asal : ".$asalkota."
\n";
echo "Tujuan : ".$tujuankota."
\n";
echo "Berat : ".$berat."
\n";
$hasil = grabTIKI($asalkota,$tujuankota,$berat);
// print_r($hasil);
$hasil = parseTIKI($hasil);
echo "
<h2>TARIF</h2>
";
echo $hasil;
}
?>
DEMO DOWNLOAD
Incoming search terms:
Tags: cek ongkir, olshop, tiki
Keren scriptnya. Bila dikembangkan lagi bisa sangat membantu para Olshop..
Makasih gan. Kapan kapan sy maen ke http://www.seogereggi.com/ hehe
Mantap gan! lanjutkan tutorial2nya
makasih gan. tar ane juga maen ke http://www.yarif.com/
wah keren dah lama aq ngk main koding php
mantap scriptnya
lumayan nih,. mksih scriptnya gan 😉
Scriptnya perlu dikembangkan lagi dengan Ajax agar loadingnya bisa lebih cepat dengan jumlah kota yang banyak
kalau saya bikin sendiri tinggal convert data base excel ke mysql jne
contohnya di qgrosir.com