Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
TERJAWAB Ambil kurs jual USD BCA
#1
Ini pak mau tanya kelanjutan kemarin yang ngambil nilai usd jualnya saja gimana yah pak ? rencana mau dibuat seperti kalkulator gitu..nilai kursnya langsung otomatis masuk dari bca…

mohon pencerahannya lagi pak
Reply
#2
OK, saya coba ya..

KODE ASLI file fungsi_kurs_bca.php:
PHP Code:
<?php
    
/*
    Ambil Nilai Valuta Kurs Dari BCA Versi 1.0
    Tanggal: 2008-11-19 22:17
    Original dari azza (broadband.or.id/forum/)
    dimodif oleh: jinbatsu (http://www.nusansifor.com) 
    yg dimodif:
        - menggunakan CURL sebagai alternatif dari file_get_contents (hususnya buat yg gak bisa di hostingan2 tertentu)
        - penempatan output  titik koma dan tanda petik yg mengakibatkan fatal error dibeberapa hostingan
        - menambah number format, supaya terlihat ada titik pada ribuan nya
    */
    
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 */
    //
    // Hilangkan mata uang yang tidak mau ditampilkan.
    //
    
$nkurs['curr'] = array ('USD''SGD''HKD''CHF''GBP''AUD''JPY''SEK''DKK''CAD''EUR''SAR');
    
//
    // Dari sini kebawah, ubah kalau mengerti aja.
    // Atau tanya dulu di: broadband.or.id/forum/viewforum.php?f=7 (database forumnya sekarang udah gak ada, silahkan dicek  lagi)
    //
    // menggunakan CURL, jika file_get_contents tidak bisa dihostingan Anda, baca manual PHP untuk selengkapnya
    
function curl_get_file_contents($URL) {
        
$c curl_init();
        
curl_setopt($cCURLOPT_RETURNTRANSFER1);
        
curl_setopt($cCURLOPT_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';
    if (!
file_exists ($nkurs['cachefile']) || !is_writable ($nkurs['cachefile'])){ die ('File cache.txt belum ada atau belum writable.<br />Buat file: <code>' $nkurs['cachefile'] . '</code><br />Lalu CHMOD ke 666'); }
    if (
filemtime ($nkurs['cachefile']) <= ( time () - $nkurs['cachetime'] ) && $handle curl_get_file_contents("http://www.klikbca.com/individual/silver/ind/rates.html"))  {
        
$handle explode ('<table border="0" cellspacing="0" cellpadding="0" class="testL">'$handle);
        
$handle explode ('</table>'$handle[1]);
        
$handle explode ('<TR'$handle[0]);
        
$nkurs['data'] = array ();
        foreach (
$handle as $val) {
            if (!isset (
$nkurs['remotelastupdate'])) {
                
$nkurs['remotelastupdate'] = explode ('<font color="black" size="1" face="Arial">'$val);
                
$nkurs['remotelastupdate'] = explode ('</font>'$nkurs['remotelastupdate'][1]);
                
$nkurs['remotelastupdate'] = explode ('/'$nkurs['remotelastupdate'][0]);
                
$nkurs['remotelastupdate'] = trim ($nkurs['remotelastupdate'][0]) . ' / ' trim ($nkurs['remotelastupdate'][1]);
            } else {
                
$val explode ('<center>'$val);
                
$val explode ('</center>'$val[1]);
                
$curr trim (str_replace ('&nbsp;'''$val[0]));
                
$val explode ('&nbsp;'$val[1]);
                
$sell explode ('align="right">'$val[0]);
                
$sell trim ($sell[1]);
                
$buy explode ('align="right">'$val[1]);
                
$buy trim ($buy[1]);
                
$nkurs['data'][$curr] = array ($sell$buy);
            }
        }
        
$tocache = array ();
        foreach (
$nkurs['data'] as $key => $val) {
            
$tocache[] = $key '|' $val[0] . '|' $val[1];
        }
        
$tocache[] = 'remotelastupdate|' $nkurs['remotelastupdate'];
        
$tocache implode ("\n"$tocache);
        
$handle fopen ($nkurs['cachefile'], 'w');
        
fwrite ($handle$tocache);
        
fclose ($handle);
    } else {
        
$handle file ($nkurs['cachefile']);
        
$nkurs['data'] = array ();
        foreach (
$handle as $val) {
            
$val explode ('|'$val);
            if (
$val[0] != 'remotelastupdate') {
                
$nkurs['data'][$val[0]] = array ($val[1], trim ($val[2]));
            }
            else
            {
                
$nkurs['remotelastupdate'] = $val[1];
            }
        }
    }
    
//
    // Output
    //
    
$output "\n";
    
$margin '';
    
$output .= $margin '<div id="nKurs">' "\n";
    
$output .= $margin '    <table width="100%" border="0" cellspacing="1" cellpadding="0">' "\n";
    
$output .= $margin '        <tr><th>Mata Uang</th><th>Jual</th><th>Beli</th></tr>' "\n";
    
$rowclass 'row1';
    foreach (
$nkurs['data'] as $key => $val) {
        if (
in_array ($key$nkurs['curr'])) {
            if (
$rowclass == 'row1'){ $rowclass 'row2'; }else{ $rowclass 'row1'; }
            
$output .= $margin '        <tr><td align="center" class="curr ' .$rowclass '">' $key '</td><td align="right" class="' $rowclass '">' number_format($val[0], 2) . '</td><td align="right" class="' $rowclass '">' number_format($val[1], 2) . '</td></tr>' "\n";
        }
    }
    
$output .= $margin '    </table>' "\n";
    
$output .= $margin '    <cite><a href="http://www.klikbca.com/" rel="external" title="Source: KlikBCA">' $nkurs["remotelastupdate"] . '</a></cite>' "\n";
    
$output .= $margin '</div>' "\n";
    echo 
$output;
    
?>

Kode modifikasi, supaya hanya tampil nilai jual saja:
PHP Code:
<?php
    
/*
    Ambil Nilai Valuta Kurs Dari BCA Versi 1.0
    Tanggal: 2008-11-19 22:17
    Original dari azza (broadband.or.id/forum/)
    dimodif oleh: jinbatsu (http://www.nusansifor.com) 
    yg dimodif:
        - menggunakan CURL sebagai alternatif dari file_get_contents (hususnya buat yg gak bisa di hostingan2 tertentu)
        - penempatan output  titik koma dan tanda petik yg mengakibatkan fatal error dibeberapa hostingan
        - menambah number format, supaya terlihat ada titik pada ribuan nya
    */
    
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 */
    //
    // Hilangkan mata uang yang tidak mau ditampilkan.
    //
    
$nkurs['curr'] = array ('USD''SGD''HKD''CHF''GBP''AUD''JPY''SEK''DKK''CAD''EUR''SAR');
    
//
    // Dari sini kebawah, ubah kalau mengerti aja.
    // Atau tanya dulu di: broadband.or.id/forum/viewforum.php?f=7 (database forumnya sekarang udah gak ada, silahkan dicek  lagi)
    //
    // menggunakan CURL, jika file_get_contents tidak bisa dihostingan Anda, baca manual PHP untuk selengkapnya
    
function curl_get_file_contents($URL) {
        
$c curl_init();
        
curl_setopt($cCURLOPT_RETURNTRANSFER1);
        
curl_setopt($cCURLOPT_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';
    if (!
file_exists ($nkurs['cachefile']) || !is_writable ($nkurs['cachefile'])){ die ('File cache.txt belum ada atau belum writable.<br />Buat file: <code>' $nkurs['cachefile'] . '</code><br />Lalu CHMOD ke 666'); }
    if (
filemtime ($nkurs['cachefile']) <= ( time () - $nkurs['cachetime'] ) && $handle curl_get_file_contents("http://www.klikbca.com/individual/silver/ind/rates.html"))  {
        
$handle explode ('<table border="0" cellspacing="0" cellpadding="0" class="testL">'$handle);
        
$handle explode ('</table>'$handle[1]);
        
$handle explode ('<TR'$handle[0]);
        
$nkurs['data'] = array ();
        foreach (
$handle as $val) {
            if (!isset (
$nkurs['remotelastupdate'])) {
                
$nkurs['remotelastupdate'] = explode ('<font color="black" size="1" face="Arial">'$val);
                
$nkurs['remotelastupdate'] = explode ('</font>'$nkurs['remotelastupdate'][1]);
                
$nkurs['remotelastupdate'] = explode ('/'$nkurs['remotelastupdate'][0]);
                
$nkurs['remotelastupdate'] = trim ($nkurs['remotelastupdate'][0]) . ' / ' trim ($nkurs['remotelastupdate'][1]);
            } else {
                
$val explode ('<center>'$val);
                
$val explode ('</center>'$val[1]);
                
$curr trim (str_replace ('&nbsp;'''$val[0]));
                
$val explode ('&nbsp;'$val[1]);
                
$sell explode ('align="right">'$val[0]);
                
$sell trim ($sell[1]);
                
$buy explode ('align="right">'$val[1]);
                
$buy trim ($buy[1]);
                
$nkurs['data'][$curr] = array ($sell$buy);
            }
        }
        
$tocache = array ();
        foreach (
$nkurs['data'] as $key => $val) {
            
$tocache[] = $key '|' $val[0] . '|' $val[1];
        }
        
$tocache[] = 'remotelastupdate|' $nkurs['remotelastupdate'];
        
$tocache implode ("\n"$tocache);
        
$handle fopen ($nkurs['cachefile'], 'w');
        
fwrite ($handle$tocache);
        
fclose ($handle);
    } else {
        
$handle file ($nkurs['cachefile']);
        
$nkurs['data'] = array ();
        foreach (
$handle as $val) {
            
$val explode ('|'$val);
            if (
$val[0] != 'remotelastupdate') {
                
$nkurs['data'][$val[0]] = array ($val[1], trim ($val[2]));
            }
            else
            {
                
$nkurs['remotelastupdate'] = $val[1];
            }
        }
    }
    
//
    // Output
    //
    
foreach ($nkurs['data'] as $key => $val) {
        if (
in_array ($key, array('USD'))) { // hanya USA saja
            
$output $val[0]; // hanya ambil nilai jual
        
}
    }
    echo 
$output

Perhatikan, perubahan hanya pada variabel output saja.
Reply
#3
Sorry pak kelamaan jawabnya..saya coba dulu ya pak..makasih banyak...baru balik dari luar kota neh pak... Smile
Reply
#4
kk saya mw tanya..

scriptnya kan sudah saya coba en berhasil . tapi kok pas di selipin di codingan saya , Kursnya keluar en jalan . tetapi codingan saya jadi ada error gini.

Notice: Use of undefined constant module - assumed 'module' in C:\xampp\htdocs\momod\kiri.php on line 27
Notice: Use of undefined constant tanggal - assumed 'tanggal' in C:\xampp\htdocs\momod\kiri.php on line 38
Notice: Use of undefined constant gambar - assumed 'gambar' in C:\xampp\htdocs\momod\kiri.php on line 43

tapi qlo gak dimasukin yang kurs dolarnya gak ada error... tolong dunk bosss..T.T
Reply
#5
@reveenge, coba di cek kembali script php Anda. pada file kiri.php
coba diatas file nya diberi default variabel untuk
PHP Code:
$module '';
    
$tanggal '';
    
$gambar ''

dan ini tidak ada sangkut pautnya sama script php ambil kurs BCA.
Silahkan cek kembali script pada file momod/kiri.php Anda.
Reply
#6
mohon bantuannya saya coba copy script diatas yang khusus untuk usd saja
saya sudah buat chace.txt tapi yang muncul error berikut

Notice: Undefined offset: 1 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 2 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 1 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 2 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 1 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 2 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 1 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 2 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 1 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined offset: 2 in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 78

Notice: Undefined variable: output in /Applications/XAMPP/xamppfiles/htdocs/a/Untitled2.php on line 94

apakah ada yang salah
Reply
#7
@siraya, apakah sudah tampil harga jualnya?

silahkan ubah (pd baris 12) error_reporting nya yg tadinya begini:
PHP Code:
error_reporting(E_ALL); 

ubah menjadi:
PHP Code:
error_reporting(E_ALL E_NOTICE); 
Reply
#8
kalau untuk membagikan nilai di dalam kolom gimana yah pak
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)