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:

autocomplete membuat script cek ongkir
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:

(Visited 640 times, 1 visits today)