Home > MySQL, Pemrograman Web, PHP, Serba-serbi, Web Engineering > Cara Ambil Harga Pengiriman (Ongkos Kirim) JNE dengan PHP

Cara Ambil Harga Pengiriman (Ongkos Kirim) JNE dengan PHP

Setelah melakukan pencarian panjang akhirnya saya menemukan apa yang saya cari , yaitu : cara menghitung biaya pengiriman JNE.

Awalnya saya search di google dengan keyword “JNE API”. Mengejutkan hasilnya, ternyata JNE tidak mengeluarkan atau membuat API. Entah dengan alasan apa perusahaan pengiriman itu memproteksi diri untuk tidak membuat API. Bahkan sekarang teknik-teknik lama sudah tidak bisa digunakan karena adanya captcha di web nya JNE(padahal dulu gak ada). Semakin jelas kan klo JNE memang memproteksi diri.

Stop. dari beberapa hasil pencarian google dengan keyword di atas akhirnya saya “nyasar” di http://api.ongkir.info/docs/index.html. dan inilah yang saya cari-cari selama ini.

Di bagian paling bawah web ongkir.info ada tulisan “Ongkir.Info tidak berafiliasi dengan perusahaan yang disebutkan.” WTF?? Saya heran  justru web/orang lain malah yang membuat API JNE.

Ok, cukup sampai sini kejengkelan saya terhadap JNE. Kita lanjut bagaimana cara memanfaatkan API yang diberikan oleh ongkir.info ini ?

pertama silahkan baca disini http://api.ongkir.info/docs/starting.html

Selanjutnya, lakukan registrasi di http://api.ongkir.info//akun/registrasi

Setalah mendapakan email verifikasi dari ongkir.info maka login ke http://api.ongkir.info/akun/login. Jika login sukses maka anda akan mendapatkan API-Key berupa deretan karakter sepanjang 32, digunakan untuk validasi pemanggilan API.

selanjutnya untuk memudahkan penggunaan API Ongkir.Info, telah disediakan pustaka (library) Anda dapat mendownload di http://api.ongkir.info/docs/example/php_sample.html.  buat file baru dengan nama class.php, copy paste script php di bagian Wrapper untuk API City dan Wrapper untuk API Cost.

berikut ini file class.php yang sudah saya modifikasi sedikit.


<?php
function get_city($query,$type)
{
//library yang harus anda download
require_once 'REST_Ongkir.php';

 $rest = new REST_Ongkir(array(
 'server' => 'http://api.ongkir.info/'
 ));

//ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info
 $result = $rest->post('city/list', array(
 'query' => $query,
 'type' => $type,
 'courier' => 'jne',
 'API-Key' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456' ), 'JSON');

 try
 {
 $status = $result['status'];

 // Handling the data
 if ($status->code == 0)
 {
 return $cities = $result['cities'];
 //print_r($cities);
 //foreach ($cities->item as $item)
 //{
 //echo 'Kota: ' . $item . '<br />';
 // }
 }
 else
 {
 echo 'Tidak ditemukan kota yang diawali "band"';
 }

 }
 catch (Exception $e)
 {
 echo 'Processing error.';
 }
}

function get_cost($from, $to,$weight)
{
//library yang harus anda download
 require_once 'REST_Ongkir.php';

 $rest = new REST_Ongkir(array(
 'server' => 'http://api.ongkir.info/'
 ));

//ganti API-Key dibawah ini sesuai dengan API Key yang anda peroleh setalah mendaftar di ongkir.info
 $result = $rest->post('cost/find', array(
 'from' => $from,
 'to' => $to,
 'weight' => $weight.'000',
 'courier' => 'jne',
'API-Key' =>'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456'
 ));

 try
 {
 $status = $result['status'];

 // Handling the data
 if ($status->code == 0)
 {
 $prices = $result['price'];
 $city = $result['city'];

 echo 'Ongkos kirim dari ' . $city->origin . ' ke ' . $city->destination . '<br /><br />';

 foreach ($prices->item as $item)
 {
 echo 'Layanan: ' . $item->service . ', dengan harga : Rp. ' . $item->value . ',- <br />';
 }
 }
 else
 {
 echo 'Tidak ditemukan jalur pengiriman dari surabaya ke jakarta';
 }

 }
 catch (Exception $e)
 {
 echo 'Processing error.';
 }
}

//$kota = get_city('ban','origin');
//echo json_encode($kota);

?>

Setelah itu buat lah form kira-kira tamplannya seperti ini:

Form Menghitung Ogkos Kirim JNE

Form Menghitung Ogkos Kirim JNE

Form di atas akan saya padukan dengan JQuery Autocomplete agar memudahkan kita mengetikkan nama-nama kota.

Buatlah file baru beri nama index.php :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>jQuery UI Autocomplete - Default functionality</title>
 <link rel="stylesheet" media="screen" href="js/jqueryui/css/ui-lightness/jquery-ui-1.8.13.custom.css"></script>
 <script type="text/javascript" src="js/jquery.js"></script>
 <SCRIPT language="javascript" src="js/jquery-ui.min.js"></SCRIPT>

 <script>
 $(function() {
//autocomplete untuk mencari kota asal
 $("#from").autocomplete({
 minLength: 3,
 delay: 3,
 source: function(request, response) {
 $.ajax({
 url: "data.php?type=origin",
 dataType: "json",
 data: {
 term : request.term,
 from: $('#from').val(),
 },
 success: function(data) {
 response( $.map( data, function( item )
 {
 return{
 label: item.nama_kota,
 value: item.nama_kota,
 }
 }));

 }
 });
 },
 });

//autocomplete untuk mencari kota tujuan
$("#to").autocomplete({
 minLength: 3,
 delay: 3,
 source: function(request, response) {
 $.ajax({
 url: "data.php?type=destination",
 dataType: "json",
 data: {
 term : request.term,
 to: $('#to').val(),
 },
 success: function(data) {
 response( $.map( data, function( item )
 {
 return{
 label: item.nama_kota,
 value: item.nama_kota,
 }
 }));

 }
 });
 },
 })
 });
 </script>
</head>
<body>
<h2>Menghitung Onkos Kirim JNE</h2>
<form action="" method="post">
<table width="20%" border="1" cellspacing="0" cellpadding="0">
 <tr>
 <td width="19%">From</td>
 <td width="81%"><input type="text" name="from" id="from" /></td>
 </tr>
 <tr>
 <td>to</td>
 <td> <input type="text" name="to" id="to" /></td>
 </tr>
 <tr>
 <td>Weight</td>
 <td> <input type="text" name="weight" id="weight" />Kg</td>
 </tr>
 <tr>
 <td>Couriers</td>
 <td> <select name="couriers"><option value="jne">JNE</option></select></td>
 </tr>
 <tr>
 <td> </td>
 <td align="right"> <input type="submit" name="go" value="Go" /></td>
 </tr>
</table>

</form>

<?php
if(isset($_POST['go'])){
//include file class.php untuk memanaggil fungsi get_cost(); yang berfungsi untuk menghitung ongkos kirim.
 include('class.php');
 $from = $_POST['from'];
 $to = $_POST['to'];
 $weight = $_POST['weight'];
//pemanggilan fungsi get_cost();
get_cost($from, $to,$weight);

}
?>
</body>
</html>
<pre>

terakhir buat file data.php untuk lookup data kota asal dan kota tujuan


<?php

//includekan file class.php
include('class.php');
$return_arr = array();

//tangkap variable type untuk mengetahui apakan kota asal (origin) atau kota tujuan (destination)

$type = $_GET['type'];

//panggil fungsi get_city() untuk mendapatkankan nama-nama kota.
 $cities = get_city(trim($_GET['term']),$type) ;

 $i=0;
 foreach ($cities->item as $value) {
 $row_array['id_kota'] = $i;
 $row_array['nama_kota'] = strval($value);

 array_push($return_arr,$row_array);
 $i++;
 }

/*convert ke dalam bentuk JSON. kira2 formatnya seperti ini
[{"id_kota":0,"nama_kota":"BANDAACEH"},{"id_kota":1,"nama_kota":"BANDARLAMPUNG"},{"id_kota":2,"nama_kota"</code><code>:"BANDUNG"},{"id_kota":3,"nama_kota":"BANGUI, CENTRAL AFRICAN REP."},{"id_kota":4,"nama_kota":"BANJARMASIN"</code><code>},{"id_kota":5,"nama_kota":"BANJUL, GAMBIA"}]
*/
echo json_encode($return_arr);
?>

Berikut SS dari script di atas:

Autocomplete nama-nama kota

Autocomplete nama-nama kota

Cek DEMO nya disini

Sekian sedikit sharing dari saya tentang cara menghitung Ongkos Kirim via JNE.

Jika ada pertanyaan atau ada yang mau menambahkan silahkan komen di bawah ini

THANKS ONGKIR.INFO

UPDATE : Cara mengecek ongkos kirim dari Raja Ongkir

  1. moriyanto
    4 August 2012 at 16:31

    siiippp, infonya gan

  2. 5 August 2012 at 04:06

    Kalo mau di pasang di blogger gimana caranya ya gan.
    Makasih sebelumnya.

    • 6 August 2012 at 03:20

      wah ane belum pernah nyoba gan
      tapi kekny udah ada widget JNE buat blog

  3. komputer
    21 August 2012 at 18:55

    cara membuat lookup yang benar gimana ya? soalnya copas yang itu aja ga berfungsi. mohon bantuannya. thks

  4. 22 August 2012 at 17:18

    Pastikan semua file2 di bawah ini diload dengan benar dulu

  5. 24 August 2012 at 23:53
  6. manchester
    27 August 2012 at 02:22

    ini online tw ofline gan jadinya

  7. 27 August 2012 at 05:18

    online gan..

  8. 11 October 2012 at 12:55

    udah ada api nya kirain cuma cek doank.
    thanks ya referensinya.
    tapi kl pake api ini, gak kefilter tarif indo sama lnternasional.
    jadi gabung 😀
    ketik aja ban, autocomplete nya ada BANGUI, CENTRAL AFRICAN REP.
    hehehe. kl bisa difilter untuk indo aja.
    thanks ya

    • 11 October 2012 at 13:47

      sama2 gan
      Iya gan gak bisa filter tarif indo aja

  9. 13 October 2012 at 12:40

    ane coba aahh..buat plugin toko online ane 😀 tq banget gan

  10. Kuncoro
    24 October 2012 at 03:19

    ini buat jne aja ya gan,..
    ko buat tiki,..ada yg tau ga script coding php ny,..

    • 24 October 2012 at 10:37

      iya gan
      klo untuk tiki mungkin bisa request ke ongkir.info gan

      regards

  11. hertono
    29 October 2012 at 05:47

    007

    008

    file jquery.js, jquery-ui.min.js , jquery-ui-1.8.13.custom.css , bs download dari mana??? 🙂

  12. 18 November 2012 at 02:54

    Bagaimana cara di upload ke wp? bisa dipostingkan tutorial. Thanks, sori maklum nubie

    • 19 November 2012 at 01:16

      maksudnya dijadikan widget?

      • 19 November 2012 at 05:00

        Iya, dijadikan widget caranya gimana? Karena ada file index kalo diupload ke root hosting kan sdh ada file index website. Kalo bs dipostingkan tutorialnya untuk dijadikan widget di wordpress. Thanks

  13. 19 November 2012 at 09:02

    Benar Bang Ramoreez, tolong di beri tutorial untuk menjadikan widget pada website dengan mesin wordpress.

    • 26 November 2012 at 06:36

      Masih menjadi PR buat saya..:D

  14. 10 December 2012 at 15:11

    Lagi cari cara biar bisa dipasang di blogger

  15. 15 January 2013 at 23:51

    Mantaaap gaaaan… ini yang gue cari2…

  16. 17 January 2013 at 10:58

    hallo gan kok saya coba file REST_Ongkir.php kaga ditemukan yah? tolong sorce scriptnya di masukin semua doang biar saya bisa download.

  17. richi ragil
    16 February 2013 at 10:40

    cURL not enabled.
    Fatal error: Call to undefined function curl_init() in C:\xampp\htdocs\tutorial\get_price_jne\REST_Ongkir.php on line 255

    ada error nya disitu gan .. kira2 kenapa itu gan ? makasih gan

    • 17 February 2013 at 02:06

      ane nyoba baru aja gan gak apa2 tuh gan
      http://ptpandulima.com/ongkir/

    • 25 August 2013 at 15:46

      gan fatal error Fatal error: Call to undefined function curl_init() in C:\xampp\htdocs\tutorial\get_price_jne\REST_Ongkir.php on line 255 itu ternyata file index.php,data.php ,class.php dan REST_Ongkir.php harus online coba aja di upload file tadi di 000webhost.com pasti bisa karena file tadi tidak bisa bekerja di file localhost ini contohnya yang udah tak coba di hosting http://coba.tokotaslocal.site90.net/

  18. 8 March 2013 at 04:22

    cakep nih

  19. 28 March 2013 at 07:33

    mantap! tapi aotocomplitnya ga berjalan ni gan d ane

    • 28 March 2013 at 09:07

      Misal, saya cuman pengen dapat data yang tarif regularnya aja gimana manggilnya gan? soalnya pake foreach n variablenya juga ga tau 🙂

    • 28 March 2013 at 12:46

      Bisa kok gan autocomplete nya

      ini variable nya gan
      if($item->service==’Reguler(REG)’)
      echo ‘Layanan: ‘ . $item->service . ‘, dengan harga : Rp. ‘ . $item->value . ‘,-
      ‘;

      • 29 March 2013 at 02:08

        Klo buat autocomplite js ini perlu ga gan
        jquery-ui-1.8.13.custom.css
        js/jquery.js”
        jquery-ui.min.js

  20. 29 March 2013 at 02:03

    cakep, berhasil gan cuman nampilin tarif reguler.

    kalo yg autocomplete itu js ini perlu ga gan

  21. 15 April 2013 at 08:13

    REST_Ongkir.php nya g bisa gan pass by pass urlnya mungkin karena itu url buat CI gan. error : cURL not enabled;
    Bisa shared REST_Ongkir.php agan??
    thx

  22. 15 April 2013 at 09:19

    sory baru engeh ternyata urlnya itu harus ridirect online, thank’s yah setelah baca scriptnya baru tau ane..

  23. 22 April 2013 at 07:14

    Sekarang bermasalah gan, data ga mau nampil. Punya situ dicoba deh bisa ga?

    • 23 April 2013 at 02:29

      Bisa kok om barusan ane cek

  24. 5 May 2013 at 17:43

    Wah gile keren abis.. dah cek coba demo mantab gan…

    siipp… salut buat agan ramoreez

    salam

  25. iam
    29 May 2013 at 03:44

    gan, misal utk tarif reguler ke daerah purbalingga/purwokerto sekarang kenapa ga muncul ya tarifnya berapa? utk daerah jkt muncul

  26. 15 June 2013 at 05:04

    gan auto completenya perlu database nggak ya?? kog punyaku nggak bisa2…

  27. 17 June 2013 at 06:43

    Yuli :

    gan auto completenya perlu database nggak ya?? kog punyaku nggak bisa2…

    Gak perlu gan
    nama2 kota langsung ambil dr JNE
    coba deh cek respon nya di firebug

  28. 5 July 2013 at 10:27

    muantap iki

  29. fra5ier
    17 July 2013 at 15:28

    gan, kq ak punya autocomplete nya gk jalan ya??
    boleh pencerahannya?

  30. 20 August 2013 at 14:30

    Gan,kalo yg lain ada gak?karena ongkir.info gak bisa ngembaliin value jika kota asal semisal medan dan tujuan adalah jakarta,cuma kebalikannya aja yg ada diberikan ongkir,karena saya test di jne ada data dari medan ke jakarta,tp ongkir.info gak ada nilainya tuh.kira2 gmana yah,hehehe soalnya newbie pada e-commerce

  31. 20 August 2013 at 16:16

    http://ptpandulima.com/ongkir/
    kok gak bisa di akses lagi.

  32. Rifantoro
    10 October 2013 at 10:58

    Auto compkete nya gak bisa gan kenapa ya ?? padahal dah sama persis coding nya cuman beda API key doang

    • 11 October 2013 at 02:39

      coba cek pake firebug gan
      Nanti ketahuan error nya kenapa

  33. rifantoro
    11 October 2013 at 03:23

    mohon bantuan nya mas, saya butuh banget soalnya .
    saya sudah coba tapi masih belom bisa ini web nya sudah saya publish.
    http://bibibakery.w.pw/

    Terimakasih

    • 11 October 2013 at 04:03

      Respon dari punya agan seperti ini
      http://prntscr.com/1wkgqd , makanya gak muncul

      Bandingkan sama demo di atas, respon nya seprti ini

      http://prntscr.com/1wkh14

      coba install firebug for mozilla buat mengetesnya

      Thanks

      • rifantoro
        11 October 2013 at 04:13

        kalo itu saya bikin sendiri mas buat tau, kepangil tidaknya file php lainya . format data json nya memang kepanggil tetapi tidak mucul autocomplete nya

        mas kalo boleh saya minta source code http://ptpandulima.com/ongkir/ lengkap. saya udah coba dari kemarin masih belom bisa. mohon bantuan nya mas. Terima Kasih

        • 11 October 2013 at 05:31

          Loh iya kalo mau muncul auto complete nya harus sesuai format json nya:
          [{“id_kota”:0,”nama_kota”:”SURABAYA”}]

          tidak boleh ada text lain selain json
          di gambar tadi ada :

          console.log(“MASUK DATA.PHP”);

          console.log(“MASUK CLASS.PHP”);

          console.log(“MASUK REST_ONGKIR.PHP”);

          seharusnya itu gak ada biar muncul

          • rifantoro
            11 October 2013 at 06:34

            mas saya ilangin console.log nya juga masih lom bisa. maaf nih kalo ngeropotin.

  34. ajakanku
    18 October 2013 at 08:51

    JQuery Autocomplete saya ga bisa dipakai bisa tlg didetailkan lagi …. hasil download dr link harus diapakan TQ

  35. 16 December 2013 at 09:10

    bro, ini kok aku ga bisa ya.. keluarnya “Tidak ditemukan jalur pengiriman dari surabaya ke jakarta” trus ane coba punya agan kok tulisanya sama aja ya

    • 16 December 2013 at 09:17

      ralat udah bisa gan ternyata cuma masalah di API keynya, untuk JSON-nya masukinya gimana ya gan..

  36. 31 December 2013 at 04:31

    Mantab banget, tp Gan ini tracking taun brp? ko ngaco ya harganya? Info ya 🙂

  37. derut
    11 January 2014 at 09:17

    ane coba dari/ke jakarta kok keluar error ya gan?

  38. 27 January 2014 at 22:13

    gan bikim tutorial buat mengintegrasikan api ini ke plugin wordpress woo-commerce donk

  39. 4 February 2014 at 01:39

    bisa upload file nya komplit gan? saya coba soalnya gak bisa

  40. lita
    5 March 2014 at 16:24

    kalau offline gbisa ya??

  41. 1 April 2014 at 17:37

    Sangat membantu, terimakasih tutorial dan share code

  42. 8 May 2014 at 03:05

    sudah daftar
    tapi ga dapat email gan..?
    help me

  43. 28 November 2014 at 12:12

    Kalo masih offline gak bisa ya gan?

  44. 6 January 2015 at 21:11

    Fyi,

    Kini ada API ongkir terbaru yang mendukung TIKI, JNE, POS Indonesia, dan lain-lain. Cek ke TKP:

    http://rajaongkir.com/dokumentasi

    • 9 January 2015 at 11:26

      Thanks gan infonya,
      Lengkap banget

  45. 17 January 2015 at 05:40

    Hello admin do you need unlimited content for your
    site ? What if you could copy post from other websites,
    make it unique and publish on your website – i know the right tool for you, just search in google:

    kisamtai’s article tool

  46. 10 February 2015 at 15:57

    nice gan tutorialnya (y)
    anw, untuk file js dan css nya boleh minta link untuk downloadnya gak ya? hehe. soalnya ane pake js dan css dari website resminya, fungsi nampilin nama kotanya engga berjalan. makasih gan 😀

  47. ariawan
    4 March 2015 at 14:41

    mana nih demonya kok sekarang dah 404

  48. 10 March 2015 at 13:08

    kasih tutorial rajaongkir.com juga dunk gan. raja ongkir lebih lengkap loh. thx

  49. 12 April 2015 at 10:55

    mau tanya, saya sudah masuk api zone. trus setelahnya bingung gan harus gimana lagi. mau masukin ke teks wordpress gimana? buat file baru maksudnya dimana gan? maklum newbie jd bingung bin pusing

  50. 6 November 2015 at 21:51

    harganya gak sama dengan webnya JNE

  51. 13 September 2016 at 12:07

    If you are interested in topic: earn online philippines girls friendship – you
    should read about Bucksflooder first

  52. 17 November 2017 at 15:33

    terimakasih mas brow

  1. No trackbacks yet.

Leave a comment