Script PHP Mengambil Nilai Tukar Valuta Asing dari BI Bank Indonesia
Dapet riquest dari temen lg nih.. hehe 😉
Mirip seperti sebelumnya yg mengambil lewat BCA dan Beacukai, akan tetapi skrg mengambil dari sumber BI (Bank Indonesia).
Berikut adalah script php untuk menampilkan kondisi mata uang valuta asing mengambil data yang bersumber dari http://www.bi.go.id
Dengan menggunakan dua metode, menggunakan curl atau juga bisa menggunakan file_get_content().
Fungsi script PHP nya adalah sbb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
<?php /* Ambil Nilai Valuta Kurs Dari BI Versi 1.0 Tanggal: 2008-12-31 16:31 oleh: jinbatsu (http://www.nusansifor.com) */ error_reporting (E_ALL); // // Ubah menjadi 3600 untuk cache 1 jam, ketika semuanya sudah berjalan normal. // Menggunakan cache berarti tidak perlu membuka koneksi ke klikbca // setiap kali halaman dibuka << ini PENTING! menghemat waktu, dan mengurangi proses server. // $nkurs['cachetime'] = 3600; /* ubah jadi 3600 atau lebih */ // // menggunakan CURL, jika file_get_contents tidak bisa dihostingan Anda, baca manual PHP untuk selengkapnya // Untuk Cara penggunaan file get content: // file_get_contents($url, "r") // Untuk Cara penggunaan CURL: // curl_get_file_contents($url) $url = "http://www.bi.go.id/web/id/Moneter/Kurs+Bank+Indonesia/Kurs+Transaksi"; $handle_url_metod = file_get_contents($url, "r"); //$handle_url_metod = curl_get_file_contents($url); $header = ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Nilai Valuta Kurs Dari BI Versi 1.0</title> <script type="text/javascript"> function win2() { window.open("http://www.bi.go.id/biweb/Templates/Moneter/kode2.aspx","Window1","menubar=no,scrollbars=no,status=no,width=200,height=325,toolbar=no"); } </script> <style type="text/css"> #kurs_bi { width: 350px; background: #FFFFFF; padding: 0; border: 0; font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; } #kurs_bi table { border: 0 solid #ccc; padding: 2px 2px; } #kurs_bi table tr td table { border: 1px solid #ccc; padding: 0; } #kurs_bi .style6 { font-size: 13px; } </style> </head> <body> <div id="kurs_bi"> '; $footer = ' <br /> Sumber: <a href="http://www.bi.go.id">Bank Indonesia (BI)</a> </div> </body> </html> '; // Dari sini kebawah, ubah kalau mengerti aja. function curl_get_file_contents($URL) { $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_URL, $URL); $contents = curl_exec($c); curl_close($c); if ($contents) return $contents; else return FALSE; } $nkurs['scriptpath'] = dirname (__FILE__); $nkurs['cachefile'] = $nkurs['scriptpath'] . '/cache.txt'; $output = ""; if (!file_exists ($nkurs['cachefile']) || !is_writable ($nkurs['cachefile'])){ die ('File cache.txt belum ada atau belum writable.<br />Buat file: ' . $nkurs['cachefile'] . '<br />Lalu CHMOD ke 666'); } if (filemtime ($nkurs['cachefile']) <= ( time () - $nkurs['cachetime'] ) && $handle = $handle_url_metod) { $output .= '<table cellspacing="1" cellpadding="0" border="0" bgcolor="#cccccc" align="center" width="100%">'; function extract_unit($string, $start, $end) { $pos = stripos($string, $start); $str = substr($string, $pos); $str_two = substr($str, strlen($start)); $second_pos = stripos($str_two, $end); $str_three = substr($str_two, 0, $second_pos); $unit = trim($str_three); // remove whitespaces return $unit; } $unit = extract_unit($handle, '<!---------------------- Kurs Transaksi Bank Indonesia ---------------------->', '<!----------------------End Kurs Transaksi Bank Indonesia ---------------------->'); $hasil = explode("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\">", $unit); $hasil = $hasil[0]; $hasil = str_replace('/Biweb/', 'http://www.bi.go.id/Biweb/', $hasil); $hasil = str_replace('/biweb/', 'http://www.bi.go.id/biweb/', $hasil); $output .= $hasil; $i = 0; $output .= '</table>'; $tocache = $output; $handle = fopen ($nkurs['cachefile'], 'w'); fwrite ($handle, $tocache); fclose ($handle); //$output .= $hasil2; } else { $handle = file ($nkurs['cachefile']); foreach($handle as $out) { $output .= $out; } } echo $header; echo $output; echo $footer; ?> |
Demo: klik disini
Download file contoh script komplit nya:
kurs_BI_v1.rar (3.3 KiB, 5,149 hits, Updated: 14 April 2011)
semoga bermanfaat
wow… semaken mantap aja 😀 Thanks atas informasi …. Berikan penghargaan. Hehe
Teruskan karya kam punya.
Trims
iya sama2 Andre 🙂
tetap semangat…
Selamat Pagi. Script ini kenapa tidak berjalan ya pas saya running? apa ada yang harus diganti dari scriptnya? terimakasih sebelumnya
Thank ya… infonya.
dengan adanya postingan ini menambah wawasan gw akan pemograman php, terimakasih atas infonya n mohon oprek source code nya.
aku dah buat tp kok muncul pesen “file cache tidak ada….dst” aku dah ikuti petunjukknya dah aku buat file cache nya + aku ubah 666 tp kok tetep muncul pesen itu ya..mohon pencerahan ke alamat email saya…
@ANDIKA,
silahkan Anda coba dengan merubah ini.
setelah OK, ubah kembali menjadi:
Selamat mencoba.
mas, kalo ngambil nilai / harga dari maskapai penerbangan gimana?
Karena untuk tiap rute, harga nya selalu berbeda.
Mohon bantuannya.
Makasih sebelumnya.
@Edwin, sama saja prinsipnya, tinggal gimana kita mau ambil datanya aja. Yg nilai Kurs juga beda tiap “mata uang” nya kan.
mas udah aq coba tapi kenapa muncul eror kayak gini ya :
Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: No such host is known. in D:\Program Files\xampp\htdocs\kurs_bi.php on line 21
Warning: file_get_contents(http://www.bi.go.id/web/id/Moneter/Kurs+Bank+Indonesia/Kurs+Transaksi) [function.file-get-contents]: failed to open stream: No error in D:\Program Files\xampp\htdocs\kurs_bi.php on line 21
mohon bantuannya
@poe, itu berarti kemungkinan internet Anda sedang Offline atau tidak dapat akses ke halaman http://www.bi.go.id/web/id/Moneter/Kurs+Bank+Indonesia/Kurs+Transaksi
Atau fungsi file_get_contents di disable pada settingan php.ini nya, silahkan dienable kan terlebih dahulu, atau bisa juga menggunakan curl, untuk curl juga silahkan diaktifkan pd settingan php.ini Anda.
saya juga mengalami error yang sama tetapi ketika saya coba menampilkan kurs BCA berhasil, mohon penjelasannya mas
saya mau ambil data dari saham bareksa.com,yg akan saya tampilkan di web saya
caranya sama atau beda ya…
Selamat Pagi. Script ini kenapa tidak berjalan ya pas saya running? apa ada yang harus diganti dari scriptnya? terimakasih sebelumnya