[PHP] Membuat Kurs Online

Pernah lihat tabel kurs mata uang di BCA ? Kalau belum pernah, silakan dilihat dulu bagaimana kurs mata uang tersebut bekerja :) Nah, kurs itu setiap harinya akan selalu memberikan informasi yang selalu diperbaharui (update). Dan kebanyakan digunakan oleh pedagang di Indonesia, khusus-nya para pedagang komputer yang selalu menjual dengan kurs US Dollar.

Nah, kali ini saya akan memberikan tips dan source code dari hasil tersebut. Terima kasih buat beberapa rekan-rekan WWW Kaskus yang sudah pernah sharing sourcenya dan saya publish lagi di sini :D Ada tiga file di dalamnya yaitu : index.php; bca-fetch.php.

Menurut fungsi :

index.php berfungsi untuk menampilkan hasil kurs terbaru kepada public / Anda yang membuka halaman tersebut. Berikut contoh index.php yang digunakan (silakan dirubah sesuai kebutuhan) :

<table width="156" border="1" align="center" cellpadding="0" cellspacing="1" id="valas">
   <!--DWLayoutTable-->
    <tr>
            <th><div align='center'>Kurs</div>
            <th><div align='center'>Jual</div>
            <th><div align='center'>Beli</div>
    </tr>
<?php
include ("bca-fetch.php");
$er_array = grab_kurs();
$er_class = 'row2';
foreach ($er_array as $kurs)
{
   if ($er_class == 'row2'){ $er_class = 'row1'; }else{ $er_class = 'row2'; }
?>
   <tr>
      <td class="<?php echo $er_class; ?>"><div align='left'><?php echo $kurs['mata_uang']; ?></div></td>
      <td class="<?php echo $er_class; ?>"><div align='right'><?php echo $kurs['jual']; ?></div></td>
      <td class="<?php echo $er_class; ?>"><div align='right'><?php echo $kurs['beli']; ?></div></td>
   </tr>
<?php
}
?>
   <tr>
      <td height="18" colspan="5" align="center" valign="top" class="footer"><strong>BCA Last Update<br /><?php echo $er_last_update; ?></strong><br /><div align='center'>Nilai tukar <strong>1 satuan</strong> mata uang asing terhadap <strong>rupiah</div></td>
   </tr>
</table>

bca-fetch.php berfungsi untuk mengambil $result dari KlikBCA yang akan diperbaharui setiap hari. :)

<?php
function grab_kurs(){
    $url = 'http://www.klikbca.com/sme/Ind/rates.html';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    set_time_limit(0);
    $handle = curl_exec($ch);

    $handle = explode ('<table border="0" cellspacing="0" cellpadding="0" class="testL">', $handle);
    $handle = explode ('</table>', $handle[1]);
    $handle = explode ('<TR', $handle[0]);
    $er = array ();
    $out = array ('&nbsp;&nbsp;&nbsp;&nbsp;', '</center>', '</td>', '<td valign="top" align="right">');
    foreach ($handle as $rows)
    {
        if (!isset ($er_last_update))
        {
            $n = 0;
            $last_update = explode ('<font color="black" size="1" face="Arial">', $rows);
            $last_update = explode ('</font></div></td>', $last_update[1]);
            $last_update = explode ("\n", $last_update[0]);
            $er_last_update = trim ($last_update[0]) . ' ' . trim ($last_update[1]) . '</span>';
        }
        else
        {
            $line = explode ("\n", $rows);
            $er[$n] = array (
            'mata_uang' => trim (str_replace ($out, "", $line[2])),
            'jual' => trim (str_replace ($out, "", $line[3])),
            'beli' => trim (str_replace ($out, "", $line[4]))
            );
            $n = $n + 1;
        }
    }
    $line = array ();
    foreach ($er as $lines)
    {
        $line[] = implode ("|", $lines);
    }
    $line[] = $er_last_update;
    $handle = implode ("\n", $line);

    return $er;
}
?>

Berikut adalah contoh script Fetch Kurs yang sudah jadi
** Script ini dapat berjalan dengan baik apabila cURL pada WebHosting / Server yang Anda gunakan aktif, jika tidak maka script ini tidak akan bisa berjalan dengan sempurna :)
*** Thanks to IWW-ers, dan founder :)

Update1:

Terima kasih om sJ yang kapan hari mengingatkan kalau fetching BCA tidak bisa lagi digunakan, ada pemindahan lokasi ternyata :D Untunglah om DraCoola sudah membuat backupnya ^:)^ Berikut updatenya :

File bca-fetch.php :

<?php
function grab_kurs(){
    $url = 'http://www.klikbca.com/individual/silver/ind/rates.html';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    set_time_limit(0);
    $handle = curl_exec($ch);

    $handle = explode ('<table border="0" cellspacing="0" cellpadding="0" class="testL">', $handle);
    $handle = explode ('</table>', $handle[1]);
    $handle = explode ('<TR', $handle[0]);
    $er = array ();
    $out = array ('&nbsp;&nbsp;&nbsp;&nbsp;', '</center>', '</td>', '<td valign="top" align="right">');
    foreach ($handle as $rows)
    {
        if (!isset ($er_last_update))
        {
            $n = 0;
            $last_update = explode ('<font color="black" size="1" face="Arial">', $rows);
            $last_update = explode ('</font></div></td>', $last_update[1]);
            $last_update = explode ("\n", $last_update[0]);
            $er_last_update = trim ($last_update[0]) . ' ' . trim ($last_update[1]) . '</span>';
        }
        else
        {
            $line = explode ("\n", $rows);
            $er[$n] = array (
            'mata_uang' => trim (str_replace ($out, "", $line[2])),
            'jual' => trim (str_replace ($out, "", $line[3])),
            'beli' => trim (str_replace ($out, "", $line[4]))
            );
            $n = $n + 1;
        }
    }
    $line = array ();
    foreach ($er as $lines)
    {
        $line[] = implode ("|", $lines);
    }
    $line[] = $er_last_update;
    $handle = implode ("\n", $line);

    return $er;
}
?>

Untuk demo tetap pada URL di atas :) Trims

, , , , ,

29 Responses to [PHP] Membuat Kurs Online

  1. Quin May 12, 2009 at 12:43 #

    mas sy dah coba script yg diatas kok ngga kluar kurs dollar malahan yg kluar error smua,,,tolong bantuin sy gmn caranya!!!!please kirim ke mail sy jwbannya

  2. watcher May 29, 2009 at 11:51 #

    apa ini?? anjrit.

  3. redy erianto July 6, 2009 at 10:54 #

    ada tidak script menentukan nilai atau memberi nilai pada pembuatan soal pilihan ganda

  4. LucuBRB July 27, 2009 at 7:57 #

    Mas kok gak jalan sekripnya? :malu:

    wah ternyata saya lupa nyalain komputer… :ngacir:

  5. dodik August 19, 2009 at 20:40 #

    kalau saya coba tampilin US, SGD, dan HKD saja gemana ya ?

  6. iwan January 2, 2010 at 1:57 #

    mas kok ga muncul tanggal updatenya.???bingun nih, kasih solusinya donk!!

  7. Robert January 5, 2010 at 17:01 #

    Makasih info Scriptsnya. Sudah coba install dan berhasil. Cuma Kok Tanggal sama waktu LAST UPDATENYA ngga keluar yah ?

  8. Robert January 6, 2010 at 15:03 #

    Iya Mas Nitro, Tanggal update ngga nongol

  9. anto June 9, 2010 at 9:26 #

    iya ga bisa di hitung nie gagal kayak nya perlu modivikasi lagi

    saya punya skrip tapi tolong di benahin ya ini skrip nya

    FORM PERHITUNGAN KURS DAN FOREX

    function formCheck(){var passed=false;passed=false;with (document.kurs){
    if (nilai.value==”"){alert(“Silahkan Masukkan Nilai Mata Uang.”);nilai.focus()}
    else{passed=true}}
    return passed}

    HITUNG nilai mata uang senilai :  

    DARI mata uang ini

    KE mata uang ini

    Indonesia Rupiahs IDR
    Euro EUR
    United States Dollars USD
    United Kingdom Pounds GBP
    Canada Dollars CAD
    Australia Dollars AUD
    Japan Yen JPY
    India Rupees INR
    New Zealand Dollars NZD
    Switzerland Francs CHF
    South Africa Rand ZAR
    — Mata Uang 85 Negara Lainnya : –
    Afghanistan Afghanis AFA
    Albania Leke ALL
    Algeria Dinars DZD
    America (United States) Dollars USD
    Argentina Pesos ARS
    Australia Dollars AUD
    Austria Schillings ATS*
    Bahamas Dollars BSD
    Bahrain Dinars BHD
    Bangladesh Taka BDT
    Barbados Dollars BBD
    Belgium Francs BEF*
    Bermuda Dollars BMD
    Brazil Reais BRL
    Bulgaria Leva BGN
    Canada Dollars CAD
    CFA BCEAO Francs XOF
    CFA BEAC Francs XAF
    Chile Pesos CLP
    China Yuan Renminbi CNY
    Colombia Pesos COP
    Comptoirs Français du Pacifique Francs
    Costa Rica Colones CRC
    Croatia Kuna HRK
    Cyprus Pounds CYP
    Czech Republic Koruny CZK
    Denmark Kroner DKK
    Deutsche (Germany) Marks DEM*
    Dominican Republic Pesos DOP
    Dutch (Netherlands) Guilders NLG*
    Eastern Caribbean Dollars XCD
    Egypt Pounds EGP
    Estonia Krooni EEK
    Euro EUR
    Fiji Dollars FJD
    Finland Markkaa FIM*
    France Francs FRF*
    Germany Deutsche Marks DEM*
    Gold Ounces XAU
    Greece Drachmae GRD*
    Holland (Netherlands) Guilders NLG*
    Hong Kong Dollars HKD
    Hungary Forint HUF
    Iceland Kronur ISK
    IMF Special Drawing Right XDR
    India Rupees INR
    Indonesia Rupiahs IDR
    Iran Rials IRR
    Iraq Dinars IQD
    Ireland Pounds IEP*
    Israel New Shekels ILS
    Italy Lire ITL*
    Jamaica Dollars JMD
    Japan Yen JPY
    Jordan Dinars JOD
    Kenya Shillings KES
    Korea (South) Won KRW
    Kuwait Dinars KWD
    Lebanon Pounds LBP
    Luxembourg Francs LUF*
    Malaysia Ringgits MYR
    Malta Liri MTL
    Mauritius Rupees MUR
    Mexico Pesos MXN
    Morocco Dirhams MAD
    Netherlands Guilders NLG*
    New Zealand Dollars NZD
    Norway Kroner NOK
    Oman Rials OMR
    Pakistan Rupees PKR
    Palladium Ounces XPD
    Peru Nuevos Soles PEN
    Philippines Pesos PHP
    Platinum Ounces XPT
    Poland Zlotych PLN
    Portugal Escudos PTE*
    Qatar Riyals QAR
    Romania Lei ROL
    Russia Rubles RUB
    Saudi Arabia Riyals SAR
    Silver Ounces XAG
    Singapore Dollars SGD
    Slovakia Koruny SKK
    Slovenia Tolars SIT
    South Africa Rand ZAR
    South Korea Won KRW
    Spain Pesetas ESP*
    Special Drawing Rights (IMF) XDR
    Sri Lanka Rupees LKR
    Sudan Dinars SDD
    Sweden Kronor SEK
    Switzerland Francs CHF
    Taiwan New Dollars TWD
    Thailand Baht THB
    Trinidad and Tobago Dollars TTD
    Tunisia Dinars TND
    Turkey New Lira TRY
    Turkey Lira TRL*
    United Arab Emirates Dirhams AED
    United Kingdom Pounds GBP
    United States Dollars USD
    Venezuela Bolivares VEB
    Vietnam Dong VND
    Zambia Kwacha ZMK
    — Mata Uang Khusus : –
    CFA BEAC Francs XAF
    CFA BCEAO Francs XOF
    Comptoirs Français du Pacifique Francs
    Eastern Caribbean Dollars XCD
    Euro EUR
    IMF Special Drawing Rights XDR
    — Logam Mulia : –
    Silver Ounces XDR
    Gold Ounces XAU
    Platinum Ounces XPT
    Palladium Ounces XPD

    Indonesia Rupiahs IDR
    United States Dollars USD
    Euro EUR
    United Kingdom Pounds GBP
    Canada Dollars CAD
    Australia Dollars AUD
    Japan Yen JPY
    India Rupees INR
    New Zealand Dollars NZD
    Switzerland Francs CHF
    South Africa Rand ZAR
    — Mata Uang 85 Negara Lainnya : –
    Afghanistan Afghanis AFA
    Albania Leke ALL
    Algeria Dinars DZD
    America (United States) Dollars USD
    Argentina Pesos ARS
    Australia Dollars AUD
    Austria Schillings ATS*
    Bahamas Dollars BSD
    Bahrain Dinars BHD
    Bangladesh Taka BDT
    Barbados Dollars BBD
    Belgium Francs BEF*
    Bermuda Dollars BMD
    Brazil Reais BRL
    Bulgaria Leva BGN
    Canada Dollars CAD
    CFA BCEAO Francs XOF
    CFA BEAC Francs XAF
    Chile Pesos CLP
    China Yuan Renminbi CNY
    Colombia Pesos COP
    Comptoirs Français du Pacifique Francs
    Costa Rica Colones CRC
    Croatia Kuna HRK
    Cyprus Pounds CYP
    Czech Republic Koruny CZK
    Denmark Kroner DKK
    Deutsche (Germany) Marks DEM*
    Dominican Republic Pesos DOP
    Dutch (Netherlands) Guilders NLG*
    Eastern Caribbean Dollars XCD
    Egypt Pounds EGP
    Estonia Krooni EEK
    Euro EUR
    Fiji Dollars FJD
    Finland Markkaa FIM*
    France Francs FRF*
    Germany Deutsche Marks DEM*
    Gold Ounces XAU
    Greece Drachmae GRD*
    Holland (Netherlands) Guilders NLG*
    Hong Kong Dollars HKD
    Hungary Forint HUF
    Iceland Kronur ISK
    IMF Special Drawing Right XDR
    India Rupees INR
    Indonesia Rupiahs IDR
    Iran Rials IRR
    Iraq Dinars IQD
    Ireland Pounds IEP*
    Israel New Shekels ILS
    Italy Lire ITL*
    Jamaica Dollars JMD
    Japan Yen JPY
    Jordan Dinars JOD
    Kenya Shillings KES
    Korea (South) Won KRW
    Kuwait Dinars KWD
    Lebanon Pounds LBP
    Luxembourg Francs LUF*
    Malaysia Ringgits MYR
    Malta Liri MTL
    Mauritius Rupees MUR
    Mexico Pesos MXN
    Morocco Dirhams MAD
    Netherlands Guilders NLG*
    New Zealand Dollars NZD
    Norway Kroner NOK
    Oman Rials OMR
    Pakistan Rupees PKR
    Palladium Ounces XPD
    Peru Nuevos Soles PEN
    Philippines Pesos PHP
    Platinum Ounces XPT
    Poland Zlotych PLN
    Portugal Escudos PTE*
    Qatar Riyals QAR
    Romania Lei ROL
    Russia Rubles RUB
    Saudi Arabia Riyals SAR
    Silver Ounces XAG
    Singapore Dollars SGD
    Slovakia Koruny SKK
    Slovenia Tolars SIT
    South Africa Rand ZAR
    South Korea Won KRW
    Spain Pesetas ESP*
    Special Drawing Rights (IMF) XDR
    Sri Lanka Rupees LKR
    Sudan Dinars SDD
    Sweden Kronor SEK
    Switzerland Francs CHF
    Taiwan New Dollars TWD
    Thailand Baht THB
    Trinidad and Tobago Dollars TTD
    Tunisia Dinars TND
    Turkey New Lira TRY
    Turkey Lira TRL*
    United Arab Emirates Dirhams AED
    United Kingdom Pounds GBP
    United States Dollars USD
    Venezuela Bolivares VEB
    Vietnam Dong VND
    Zambia Kwacha ZMK
    — Mata Uang Khusus : –
    CFA BEAC Francs XAF
    CFA BCEAO Francs XOF
    Comptoirs Français du Pacifique Francs
    Eastern Caribbean Dollars XCD
    Euro EUR
    IMF Special Drawing Rights XDR
    — Logam Mulia : –
    Silver Ounces XDR
    Gold Ounces XAU
    Platinum Ounces XPT
    Palladium Ounces XPD

Leave a Reply