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........

Relasi OLTP, ETL, Business Intelligence, Data Warehouse dan OLAP

Apa itu OLTP ?? Kemudian apa yg dimaksud dengan ETL ?? Bagaimana Data Warehouse & Business Intelligence bekerja ?? dan apa perbedaan OLTP dengan OLAP ?? mari kita coba tarik benang merah di antara ke-5 unsur tersebut...., tapi sebelumnya kita cari tau dulu pengertian dari masing2 unsur.

Online Transaction Processing Systems (OLTP) adalah suatu sistem yang memproses suatu transaksi secara langsung(insert,update,delete) melalui komputer yang terhubung dalam jaringan. Sedangkan ETL sesuai dengan namanya (Extract, Transformation and Load), Extract berarti proses pengambilan data dari sumber data,proses pengambilan data ini tidak mengambil keseluruhan data yang ada di database operasional, melainkan hanya mengambil data-data matang saja.

Transform berarti mengubah struktur Database tersebut ke dalam bentuk standart, mengingat data-data yang diambil berasal dari sumber berbeda yang kemungkinan memiliki standarisasi yang berbeda pula. Standarisasi diperlukan untuk nantinya memudahkan pembuatan laporan. Load sendiri adalah proses mengirimkan data yang telah menjalani proses transformasi ke repository(gudang data) akhir.


Data Warehouse bicara mengenai bagaimana data-data yang besar dan beragam disimpan dalam satu repository(gudang data) dan disusun sedemikian sehingga memudahkan pencarian, sedangan Business Intelligence bisa dikatakan sebagai konsep database yang multidimensi sehingga memudahkan analisa dan pengambilan keputusan secara bijak berdasakan informasi yang akurat. Gabungan dari DW dan BI dinamakan Online Analytical Processing Systems (OLAP) yaitu sistem yang dibuat untuk membantu dalam perencanaan, memecahkan masalah dan mendukung keputusan.


Untuk mengetahui lebih jelas relasi antar unsur-unsur tersebut bisa lihat gambar dibawah ini :


Dari situ dapat disimpulkan, bahwa data2 awal yg ada didalam OLTP di olah sedemikian rupa melalui proses ETL, hasil dari pengolahan tersebut menghasilkan bentuk database baru yg dinamakan Data Warehouse, Data Warehouse tidak bisa dipisahkan dengan Business Intelligent, karena BI yg baik didapat dari DW yg baik juga. Hasil dari DW & BI itulah kita bisa menarik kesimpulan dan mengambil keputusan yang dinamakan sebagai OLAP.

Itulah gambaran singkat mengenai OLTP, ETL, DW, BI dan OLAP, Ane yakin anda sudah tau sekilas perbedaan antara OLTP dan OLAP. Ingin tau lebih detail lg perbedaan keduanya ?? ikuti posting selanjutnya ya.........

Membuat Aplikasi Desktop AIR dengan AJAX / XML / HTML

Aplikasi Desktop dengan Adobe Integrated Runtime (AIR) saat ini memang yang paling digemari. Disamping tools untuk ngebangunnya sangat familiar, juga proses packaging-nya yg sangat2 simple. Memang ada 2 cara untuk packaging AIR, yg pertama bisa menggunakan command promt dan satunya lagi menggunakan Macromedia.

Cara pertama cukup ribet, sebab anda harus mengetik perintah2 packaging di command promt satu persatu. Sedangkan cara yang kedua sangat2 simple, dan sekarang ini kita akan menggunakan cara yg simple tersebut dengan AJAX / XML / HTML.

Sebelum mulai, pastikan tools berikut sudah terinstall dengan baik :
  1. Adobe AIR Runtime Environment.
  2. Adobe Dreamweaver CS4/CS5 dengan tambahan Adobe AIR Extension for Dreamweaver atau khusus CS4 klik ini, untuk CS3 disini.
Setelah tools diatas terinstall dengan baik, buka Adobe Dreamweaver, anda buat project baru, masuk ke menu Site>>New Site, Ane beramsumsi bahwa anda sudah mahir menggunakan Dreamweaver, sehingga tidak sulit untuk mengisi field2 di menu New Site tersebut. Kemudian anda buat file dengan nama application.xml dan index.html didalam project anda.

application.xml
<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/1.5">
 <id>com.example.mazhters</id>
 <name>Mazhters Program</name>
 <version>1.0</version>
 <filename>Mazhters.com</filename>
 <description>Ini adalah contoh aplikasi pertama gw pake Adobe AIR.</description>
 <copyright>Copyright 2009-2010. Mazhters Coorporation. All rights reserved.</copyright>
 <initialWindow>
  <content>index.html</content>
  <title>Mazhter's Site</title>
  <systemChrome>standard</systemChrome>
  <transparent>false</transparent>
  <visible>true</visible>
  <resizable>false</resizable>
  <minimizable>true</minimizable>
  <maximizable>true</maximizable>
  <width>900</width>
  <height>800</height>
  <minSize>900 800</minSize>
 </initialWindow>
 <installFolder>Mazhters Programs</installFolder>
 <programMenuFolder>Mazhters Programs</programMenuFolder>
 <icon>
    <image16x16>icons/logo_mazhters16x16.png</image16x16>
    <image32x32>icons/logo_mazhters32x32.png</image32x32>
    <image48x48>icons/logo_mazhters48x48.png</image48x48>
    <image128x128>icons/logo_mazhters128x128.png</image128x128>
  </icon>
  <customUpdateUI>false</customUpdateUI>
  <allowBrowserInvocation>false</allowBrowserInvocation>
</application>

index.html
<html xmlns=" http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">
<head>
<title>Mazhter's Site</title>
</head>
<body>
<iframe frameborder="0" scrolling="0" width="880" height="770" src="http://www.mazhters.com/"></iframe>
</body>
</html>

Kemudian, anda buat folder icons, dan masukkan gambar logo aplikasi anda ke dalam folder tersebut dengan berbagai ukuran (16x16, 32x32, 48x48, 128x128). Pastikan ukuran logo2 tersebut persis seperti itu,jika tidak maka akan tampil error message saat packaging.
Lalu masuk ke menu Site>>AIR Aplication Settings, jika anda mengikuti prosedure diatas dengan benar, maka akan langsung muncul tampilan seperti ini

setelah itu klik tombol Set>>Create, itu karena kita harus membuat Certificate yang digunakan untuk validasi aplikasi. isi field2 yang dibutuhkan dan isikan saja password dan confirm passwordnya 12345, kemudian klik OK.
Masukkan kembali passwordnya 12345 kemudian klik OK, setelah itu klik tombol Creaate AIR File dan tadaaaaaaa Desktop Aplikasi anda telah terpackaging dan siap di install.

Hasilnya bisa didapat disini.


Langkah Mudah Membuat Aplikasi di Facebook

Anda ingin membuat aplikasi di facebook ?? entah itu games, situs pribadi atau yang lainnya ?? Anda bisa menggunakan bahasa pemrograman apa saja (PHP, Java, ASP, C++, Perl, Phyton, Ruby dsb), dalam kasus ini Ane menggunakan bahasa pemrograman PHP.

Berikut step-by-step nya :
1. Setelah anda login ke FB, klik link berikut FB Aplikasi. Kemudian pilih menu Set Up New Application. Isi nama aplikasi, check radio button Setuju kemudian klik Simpan Perubahan.










2. Isi data2 yg dibutuhkan, nggak perlu semua, isi yg anda bisa isi. Tapi minimal anda isi pada menu dasar dan kanvas.





















Pada menu kanvas, isikan pada Canvas Page URL alamat aplikasi FB anda nantinya, dan Canvas Callback URL dengan alamat anda menyimpan aplikasi sekarang + '/footprint/', nanti anda  akan tau sendiri maksud dari penambahan itu. Kemudian anda harus memilih Metode Render yg ingin anda gunakan (IFrame atau FBML).


IFrame
  • (+) Penggunaannya lebih mudah, anda cukup memanggil alamat aplikasi, maka aplikasi tersebut akan langsung muncul di FB.
  • (-) Tinggi layar IFrame default dari FB dan tidak bisa anda ubah2, akan menjadi masalah jika tinggi layar aplikasi anda melebihi tinggi layar IFrame.
   FBML
  • (+) Tinggi layar lebih fleksibel, mengikuti tinggi layar aplikasi anda.
  • (+) Anda dapat menambahkan fitur2 dari FB ke aplikasi anda, seperti Invite Friend, cantumkan kedalam profil, kirim ke status anda dsb.
  • (-) Anda harus meluangkan waktu untuk mempelajari FBML, (mungkin kepanjangan dari Facebook Markup Language, klo ga salah, hehehe...), tapi jangan kuatir, FB sudah menyediakan tutorialnya di sini tinggal di modif dikit sesuai kebutuhan.
   Dari point diatas, sangat disarankan agar anda menggunakan FBML.

3. Download file facebook-platform.tar.gz, kemudian extract sehingga menghasilkan 2 folder (footprint dan php), upload 2 folder tersebut ke dalam aplikasi anda.

4. Langkah terakhir, kembali ke halaman home aplikasi anda, kemudian lihat dibagian Sample Code dan klik Example Code, copy paste code ke dalam file index.php yang ada di folder footprint yang telah anda copy ke aplikasi anda, kemudian ubah script require_once 'facebook.php'; dalam kasus ini menjadi require_once '../php/facebook.php';

Congrats, aplikasi anda siap digunakan di Facebook.

Salah satu contohnya bisa liat di Propertiproperti.com di Facebook.


Plus Minus J2ME Polish

Setelah berhasil membuat mobile aplikasi dengan J2ME Polish, dari situ gw dapet mengambil kesimpulan tentang kelebihan dan kekurangan menggunakan J2ME Polish, berikut adalah ulasannya.........

PLUS (+)
  1. Karena menggunakan css, sudah pasti tampilan akan lebih menarik dan bisa kita modifikasi sesuai keinginan.
  2. Tampilannya bisa di set Full Screen, dalam arti, command buttonnya bukan bawaan dari command button HP, tetapi dari aplikasi yang kita buat.
  3. Tidak hanya type font (Arial / defatult) saja yang bisa kita gunakan, dengan polish kita bisa menggunakan type font apa saja sesuai kebutuhan (misalnya : Bradley, Comic Sans, dll).
MINUS (-)
  1. Satu aplikasi tidak bisa digunakan untuk semua jenis HP, walaupun dalam pembuatannya kita menggunakan device Generic/AnyPhone, tapi pada kenyataanya, ada beberapa fungsi yang tidak dapat berjalan dengan baik di jenis HP tertentu.
  2. Jika kita membuat aplikasi ini full screen, maka kita harus membuat beberapa aplikasi untuk setiap ukuran layar, misalnya kita membuat untuk ukuran (176x208), maka aplikasi tersebut jika digunakan untuk ukuran layar 128x128x, 240x320, dsb, maka tampilannya tidak akan sesuai.
  3. Dari point 1 dan 2, maka otomatis, kita harus membuat aplikasi ini berbeda untuk setiap ukuran layar dan jenis HP nya. misalnya untuk Nokia/N73 dengan ukuran layar 240x320, tidak akan berjalan dengan baik untuk misal Sony-Ericsson/W880, walaupun untuk itu kita hanya perlu mengganti nama device pada saat mengenerate.
  4. Semua perubahan pada settingan programnya hanya bisa dilakukan dengan meng-edit file build.xml, itu sangat tidak efektif, karena kita harus mengubahnya secara manual.
  5. Yang terakhir adalah, untuk polish versi 2.0.1 keatas, ukuran file JAR hasil generate aplikasi ini terbilang cukup besar, itu dikarenakan semua class yang disediakan polish, dibawa semuanya ke dalam file JAR kita, padalah banyak class2 yang sebenarnya tidak kita gunakan.
sampe saat ini, cuma segitu yang bisa gw simpulkan, mungkin klo rekan2 ada yang mau menambahkan atau mengkoreksi, silahkan...........

Contoh aplikasinya bisa didownload disini ,contoh ini hanya untuk ukuran layar 176x208.

Belajar J2ME dengan Polish

Berawal dari tuntutan pekerjaan, akhirnya nambah lagi satu Bahasa Pemrograman yang gw kuasai. Jadi ceritanya begini, kantor gw ada project bikin aplikasi mobile untuk film KCB (Ketika Cinta Bertasbih), sedangkan kantor gw basicnya web base, dan semua ga ada yg bisa JAVA, berhubung gw termasuk senior di sana, jadi gw yg disuruh garap, gw sendiri basicnya PHP dan blum pernah sama sekali megang java, parahnya lagi waktu deadline-nya yang cuma 2 minggu, edan gak tuh........ gw harus mulai dari 0 dan dalam waktu yg gw bilang sangat singkat, tapi akhirnya semua selesai sesuai target, y walaupun harus kerja 7x24 jam selama timeline itu, dari situ gw jadi semakin yakin, bahwa intinya cuma satu.............FOKUS.

Udah tau kan kenapa gw terjebak kedalam bahasa java, skrg kita mulai bagaimana bermain dengan J2ME Polish.

Pertama kita harus download dulu program2 pendukung J2ME Polish, diantaranya :
1. Netbeans IDE 6.5.1 bisa di download sini (gw lebih suka pake Netbeans di banding Eclipse, karena menurut gw lebih user friendly buat pemula, tapi kembali lagi ke masalah selera sih).
2.
Java SDK 6 ada di sini (gw make yg JDK 6 Update 13 with JavaFX SDK, klo mau make yg versi terbarunya jg boleh).
3. J2ME Polish 2.0.7 disini linknya, klo mau download yang lebih lengkap dari versi yang pertama, ada disini

Program utamanya cuma itu, untuk tambahan bisa menggunakan Emulator.
4. Emulator : Nokia, Sony-Ericsson dan Motorola.


Untuk menginstall Polishnya bisa mengikuti panduan berikut, disitu juga ada cara membuat file J2ME Polish Project, tinggal di ikutin aj. setelah selesai membuat J2ME Polish Project, misalkan nama projectnya J2Me-Polish-Project dan device yg kita pilih adalah Generic/AnyPhone, kita buka J2Me-Polish-Project dan ternyata project tidak bisa dibuka, ada pesan error "Error in project.xml: The value 'Generic/AnyPhone' of element 'configuration' is not valid". Untuk itu kita buka file J2ME-Polish-Project/nbproject/project.xml dan ubah pada bagian



menjadi



kemudian save dan skrg kita bisa buka J2ME-Polish-Project melalui Netbeans, setelah kita buka dan coba jalankan, kembali muncul pesan Error "build.xml:87: Your device-requirements are too strict - no device fulfills them. Check the section(s) in your build.xml script". skrg kita buka file J2ME-Polish-Project/build.xml dan pada bagian



ubah value="${config.active}" menjadi value="Generic/AnyPhone" (Generic/AnyPhone adalah device yang kita pilih ketika membuat project diawal) kemudian save dan coba jalankan kembali. Selamat anda telah berhasil membuat aplikasi dengan J2ME Polish.

Contoh aplikasinya bisa didownload disini
, contoh ini hanya untuk ukuran layar 176x208.