Membuat Widget Harga Kebutuhan Bahan Pokok yang Realtime

Kategori: Belajar PHP
· 10 minutes
Membuat Widget Harga Kebutuhan Bahan Pokok yang Realtime

Harga kebutuhan pokok terus berfluktuasi. Apalagi di masa pandemi seperti ini trendnya malah cenderung naik. Menyikapi ini mari kita bereksperimen membuat sebuah widget monitoring harga kebutuhan bahan pokok dan kebutuhan penting lainnya dengan PHP.

Yang kita perlukan adalah:

  • koneksi internet
  • sebuah web yang rajin mengupdate harga
  • saya menggunakan siskaperbapo, sebuah SIM milik Disperindag Jatim
  • Selain itu kita memerlukan simple html dom untuk mempermudah aksi kita dalam grab sebuah web
  • Download di sini (http://simplehtmldom.sourceforge.net/) dan ambil 1 file saja yang simple_html_dom.php
  • Agar hemat resource, tidak terlalu membebani server kita juga perlu menambahkan cache
  • secangkir kopi (*optional: kalau lagi puasa tidak usah)

Skenarionya gini, kita akan grab harga dari siskaperbapo kemudian simpan sebagai cache.

Sebelumnya kita cek umur cache. Kalau kurang dari 2 jam kita tampilkan cache. Sedang jika lebih tua kita bikin cache baru.

Mungkin dengan scriptnya langsung bisa lebih enak memahaminya. Kalau ada yang perlu ditanyakan bisa japri saya langsung.

 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
<?php
# grab harga kebutuhan pokok Jawa Timur oleh Eko Priyanto Pakuningratan
# http://gecko.web.id                                                        
# cache menggunakan http://www.snipe.net/2009/03/quick-and-dirty-php-caching/
#====================================================================================#
?>
<!-- biar tampilan sedikit cantik kita pakai bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">

<?php

// TOP of your script
$cachefile = 'cache-kebutuhan-pokok-jatim.eko';    // nama file cache
$cachetime = (3600) * 2; // 2 jam

echo '<h1>Harga rata-rata Bahan Pokok dan Penting di Jawa Timur </h1>';
echo 'Keadaan '.date('d-m-Y H:i', filemtime($cachefile));

// Mengambil dari cache jika lebih baru dari waktu $cachetime
if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) {
    include($cachefile);
    echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->";
    exit;
} else {
    ob_start(); // start the output buffer
    include('simple_html_dom.php');
    // Create DOM from URL or file
    $html = file_get_html('http://siskaperbapo.com/home');
    $res = $html->find('div[id=harga]', 0)->innertext;
    echo $res;

    // BOTTOM of your script
    $fp = fopen($cachefile, 'w'); // open the cache file for writing
    fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
    fclose($fp); // close the file
    ob_end_flush(); // Send the output to the browser
}

Semoga bermanfaat.


DONASI DAN REQUEST ARTIKEL

Donasi atau beliin kopi silahkan melalui link di bawah ini.
Sambil request tutorial juga boleh kok

DONASI & BELIIN KOPI

Terima kasih banyak ...