Engine guest online dengan PHP tanpa menggunakan database.

Di dalam website ber-tipe komersil, biasanya sering dicantumkan informasi tentang member online ataupun guest online. Mungkin terlihat sepele, tapi ternyata hal kecil seperti itu dapat mendongkrak popularitas website tersebut. Semakin banyak jumlah member / guest yg online, maka akan semakin bagus.

Banyak cara yg dapat digunakan untuk membuat engine ini, umumnya selalu menggunakan database sehingga lebih mudah untuk mengontrolnya. Cara lain dapat menggunakan suatu text file, berupa .txt, .xml atau yg lainnya. Nah disini, ane akan membahas bagaimana membuat engine tersebut menggunakan text file .txt, berikut contoh scriptnya.........

//Definisi variabel
$visitor = $_SERVER['REMOTE_ADDR'];
$time = time();
$flag = $jmlguest = 0;

//Script ini untuk mengecek, apakah ID guest sudah ada apa belum
$fp=fopen("guest_online.txt","a+");
$baca = explode("\n",fread($fp,filesize('guest_online.txt')+1));
foreach($baca as $list_guest)
{
    $guest = explode(",",$list_guest);
    if(eregi($visitor,$guest[0])) $flag=1;
}

//Jika ID guest belum ada, maka ID guest tersebut akan di catat.
if($flag==0) fwrite($fp,$visitor.",".$time."\n");
fclose($fp);


//Script ini untuk menghapus ID guest yg sudah tidak online lagi.
$filearray = file ('guest_online.txt');
$newarray = array();
foreach ($filearray as $list_guest )
{
    $guest = explode(",",$list_guest);
    //$time-300, maksudnya waktu sekarang dikurang 300 detik sebelumnya, ini bisa disesuaikan kebutuhan.
    if(!eregi($visitor,$guest[0]) && ($guest[1] > ($time-300)))
    {
        $jmlguest++;
        array_push($newarray,$guest[0].",".$guest[1]);
    }
}


//ini untuk memperbaharui timestamp dari ID guest yg bersangkutan
$jmlguest++;
array_push($newarray,$visitor.",".$time."\n");


$string = implode ("",$newarray);
$fp = fopen ( 'guest_online.txt', 'w' );
fwrite ( $fp , $string );
fclose ( $fp );

//disini tinggal anda cetak jumlahnya.
echo $jmlguest." guest online";

Setelah script itu dijalankan dengan benar, maka berapa jumlah guest yg online dapat langsung diketahui, mudah bukan ?? jadi kita tidak perlu membebani database untuk hal2 sederhana semacam ini, untuk contohnya bisa buka www.propertiproperti.com dan klo ada masukkan, ane selalu open.............

OLTP vs OLAP

Seperti yang sudah ane jelaskan sebelumnya, Online Transaction Processing Systems atau OLTP merupakan Sistem yang memproses suatu transaksi secara langsung (insert,update,delete) melalui komputer yang terhubung dalam jaringan. Sedangkan OLAP (Online Analytical Processing Systems) adalah Sistem yang dibuat untuk membantu dalam perencanaan, memecahkan masalah dan mendukung keputusan.

Dari definisinya jelas, bahwa keduanya merupakan sistem yang menggunakan suatu basis data. Lantas apa perbedaan antara keduanya ?? simak uraian berikut............

1. Berdasarkan sumber data
    OLTP : Data Operasional, data OLTP adalah data asli.
    OLAP : Data konsolidasi, data OLAP di peroleh dari beberapa OLTP.

2. Berdasarkan Tujuan datanya
    OLTP : Untuk mengendalikan dan menjalankan tugas2 utama.
    OLAP : Untuk membantu dalam perencanaan, memecahkan masalah dan mendukung keputusan.

3. Berdasarkan Data apa yg di tampilkan
    OLTP : Bisnis proses yg berkelajutan.
    OLAP : Menampilkan data dari berbagai macam aktivitas bisnis.

4. Query yg digunakan
    OLTP : Simple Query.
    OLAP : Complex Queries.

5. Kecepatan proses
    OLTP : Pada dasarnya sangat cepat.
    OLAP : Tergantung dari data yg dilibatkan, proses akan lebih cepat dengan menggunakan fungsi indexing.

6. Space yg dibutuhkan
    OLTP : Relativ kecil.
    OLAP : Lebih besar, karena membutuhkan lebih banyak indexing dibandingkan OLTP.

7. Database Design
    OLTP : Normalized dengan banyak table.
    OLAP : De-normalized dengan sedikit table dan menggunakan star / showflake schemas.

Kurang lebih itulah perbedaan antara OLTP dan OLAP, jika diantara ente2 ada yg ingin menambahkan atau mengkoreksi, ane selalu open........