Showing posts with label Programming::PHP. Show all posts
Showing posts with label Programming::PHP. Show all posts

Tuesday, August 11, 2009

Pustaka AJAX : PHPLiveX




Jadul deh artikel ini. "AJAX dah lama banget mas!" Hehe, maaf2, saya kan seringnya belajar per request aja. Jadi, baru kali ini ada request yg pas kalao pakai AJAX. ^_^

Awalnya mau start dari scratch aja, namun pada akhirnya revert ke pustaka aja : PHPLiveX.
Sepertinya sederhana, coba saya pastekan satu kode saja. Ini :


<?
header("Content-Type: text/html; charset=UTF-8");
require_once("PHPLivex.php");

function pingDomain($domain){
$starttime = microtime(true);
$file      = fsockopen ($domain, 80, $errno, $errstr, 10);
$stoptime = microtime(true);
$status    = 0;

if (!$file) $status = -1;  // Site is down
else {
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
return $status;
}

function pingX($ip){
$status = pingDomain($ip);
if($status != -1) return "Domain alive";
return "Domain is down";
}


$pingAjax= new PHPLiveX(array("pingX"));
?>

<html>
<head>
<? $pingAjax->Run(); ?>
<script type="text/javascript">
function ping(){
val = document.getElementById("ip").value;
pingX(val, {'target':'msg','preloader':'pr'});
}
</script>
</head>
<body>
<input type="button" value="Ping" onclick="ping();">
<input type="text" id="ip" size="15" maxlength="15">
<span id="pr" style="visibility:hidden;"><i>Validating...</i></span>
<span id="msg"></span>
</body>
</html>


Fungsi aplikasi itu untuk melakukan proses Ping, pengecekan apakah suatu domain hidup/mati. Gunanya? bisa untuk monitoring layanan di jaringan via web.

Konsep utama AJAX, adalah, Anda bisa melakukan permintaan ke server, tanpa user perlu merefresh halaman browser. Facebook-an? Ya itu lah. Ga pindah2 halaman, eeeh, ada temen yg ketahuan lagi narsist2an dengan statusnya :p Seperti itulah...

Di PHPLiveX ini, konsep utamanya disini :
$pingAjax= new PHPLiveX(array("pingX"));


itulah kode yang akan membuat suatu fungsi PHP, yaitu disini pingX bisa dipanggil via javascript, artinya bisa dipanggil tanpa perlu merefresh halaman. Pada contoh ini, perhatikan kode input dan submit : tidak ada form action kan? artinya, dia hanya akan mengeksekusi fungsi javascript ping() saja, yaitu ini :
function ping(){
val = document.getElementById("ip").value;
pingX(val, {'target':'msg','preloader':'pr'});
}


Perhatikan bahwa, kode ini meski satu file saja, (saya sertakan nanti), namun sesungguhnya porsi kode di bagi kedua sisi : klien dan server. Yang disisi klien adalah fungsi javascript ping(), sedang yang di server, adalah fungsi php pingX(). (Saya pakai nama pingX, karena sptnya di php sudah ada fungsi ping(), spy ga bentrok gitu).

Semoga bermanfaat!
NB:
  • Masih banyak AJAX Framework yang lain. Silahkan browsing aja dengan keyword PHP AJAX FRAMEWORK.
  • Menarik AJAX ini.... Benernya saya ga terlalu antusias dengan aplikasi WEB, apalagi PHP, tapi penambahan AJAX ini, .. ya, lumayan. Pribadi lho ini. Mungkin aja ada temen2 yg guetoool bgt dengan PHP :)

Wednesday, January 14, 2009

Perbaikan Untuk Server NuSOAP 0.7.3

Oke, intinya adalah, NuSOAP ini salah satu teknologi PHP untuk WebService. Mudah banget sebenarnya masalah WS ini, cuman untuk NuSOAP ini, ternyata kode2nya kudu diubah2 jika menggunakan versi2 yg berbeda (istilahnya versinya broken).

So, gini intinya. Kadang ada error seperti ini :

Re: "Response not of type text/xml"

Solusinya ini :

if (!isset($HTTP_RAW_POST_DATA)){
    $HTTP_RAW_POST_DATA = file_get_contents('php://input');
}    
$server->service($HTTP_RAW_POST_DATA);       

Letakkan di bagian akhir dari Server Web Service yang dibangun.
Kode tersebut dari sini : http://www.sugarcrm.com/forums/showthread.php?t=23040 berasal dari bug ini : http://bugs.php.net/bug.php?id=41293

Nah, silahkan mencoba NuSOAP 0.7.3!!!

Semoga bermanfaat!

NB :

  • Solusi ini kurang cepat dari yang diharapkan, tapi semoga tetap bisa memenuhi permintaan
  • Awalnya mau install Linux, namun ternyata itu tidak dibutuhkan, dan ternyata masalah pada kode akhir tersebut
  • Ini benar-benar menghabiskan waktu, dibandingkan dengan menggunakan Java Web Service :D

Thursday, January 08, 2009

Web Services Dengan PHP (Sedikit Komparasi Dengan Java)

Gara2 ini saya sadar, kalau programmer Java, khususnya pengguna Netbeans IDE, benar-benar harus bersyukur : semua tool otomatis milik Netbeans adalah time-saver yang nilai produktivitasnya sangat luar biasa.

Ada yang pernah tanya, "Mas, gimana buat Web Service pakai Java?". Kalau endak salah saya jawab gini, "Bisa pakai Mouse, click-and-drag? Kalau gitu udah bisa. hehehe". Karena memang seperti itu. Buat saja proyek Web Java di Netbeans 6.x terus tambahkan Web Services, dan tambahkanlah webmethod2 di dalam Web Service itu. Sudah jadi deh.

Untuk mempergunakannya? Klik kanan di Project View, Web Service yang sudah dibuat tadi, pilih Test Web Services. Nah, kopi alamat WSDL-nya pada Halaman Web Services Tester yang muncul di Browser Anda. Jika Anda juga mempergunakan aplikasi Java untuk mengkonsumsi Web Services ini, maka klik kanan project Anda (baik desktop/web), pilih New Web Services klien. Pastekan alamat WSDL web service yang tadi di kopi ke field alamat WSDL. Ya sudah, class proxynya udah jadi. Nah, jika WS ini akan dipergunakan di saat tombol ditekan misalnya, maka Anda hanya tinggal melakukan drag-and-drop nama method web services client (dari tampilan project view) ke method yang akan memanggil web services ini. Mudah sekali kan?

Kalau di PHP? Ga tahu (belum). Saya lagi ada trouble pakai NuSOAP. Namun karena saya pakai XAMPP, dan paket PEAR sudah terinstall, maka sebaiknya saya pergunakan PEAR u/ solusi Web Services. Sepertinya lebih otomatis ketimbang NuSOAP.

Tapi jangan dibandingin sama solusi Netbeans 6.x tadi ya. Jauh deh.

Semoga ada manfaatnya!

NB :

Sunday, September 28, 2008

Membuat Grafik di PHP dengan JPGRAPH

Pertama-tama, download jpgraph disini.
Kemudian extract satu folder tersebut ke folder www/htdocs Apache server Anda, dan langsung buka seperti misalnya dengan alamat ini :




Navigasi terus sampai ke folder Examples, dan buka file testsuit.php
Nah, dari semua examples yang ditampilkan, perhatikan nama filenya, dan buka untuk melihat kodenya. Misalnya ini, 



Yaitu grafik yang merupakan kombinasi antar grafik Bar dan Line. Nah, itu berarti saya tinggal membuka file example16.3.php, berikut ini :

include ("../jpgraph.php");
include ("../jpgraph_line.php");
include ("../jpgraph_bar.php");

$l1datay = array(11,9,2,4,3,13,17);
$l2datay = array(23,12,5,19,17,10,15);
$datax=array("Jan","Feb","Mar","Apr","May");

// Create the graph. 
$graph = new Graph(400,200,"auto");
$graph->SetScale("textlin");

$graph->img->SetMargin(40,130,20,40);
$graph->SetShadow();

// Create the linear error plot
$l1plot=new LinePlot($l1datay);
$l1plot->SetColor("red");
$l1plot->SetWeight(2);
$l1plot->SetLegend("Prediction");


// Create the bar plot
$bplot = new BarPlot($l2datay);
$bplot->SetFillColor("orange");
$bplot->SetLegend("Result");

// Add the plots to t'he graph
$graph->Add($bplot);
$graph->Add($l1plot);


$graph->title->Set("Adding a line plot to a bar graph v1");
$graph->xaxis->title->Set("X-title");
$graph->yaxis->title->Set("Y-title");

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

//$graph->xaxis->SetTickLabels($datax);
//$graph->xaxis->SetTextTickInterval(2);

// Display the graph
$graph->Stroke();
?>

Dan, berdasarkan kode di atas, berarti saya hanya harus memodifikasi pada baris kode berikut :

$l1datay = array(11,9,2,4,3,13,17);
$l2datay = array(23,12,5,19,17,10,15);
$datax=array("Jan","Feb","Mar","Apr","May");

Dan itu pasti memudahkan pekerjaan saya... ^_^

Semoga bermanfaat!!!
NB :
  • Kalau di Java, solusi serupa diberikan oleh JFreeChart. Hanya saja, dalam paket downloadnya, Anda tidak mendapatkan kode sumber dari Examplesnya. Untuk mendapatkan examples, Anda dapat membeli tutorialnya. Namun, syukurnya, Anda bisa mendapatkan banyak contoh yang sama dengan melakukan googling : jfreechart examples.
  • Produk charting termasuk salah satu produk komersial yang cukup mahal, termasuk juga produk pemetaan. Contoh dapat dilihat di Dundas Software

Friday, March 28, 2008

Beberapa Bimbingan Aplikasi Spasial (GIS)

Yang paling keren adalah membuat aplikasi yang dapat mengautomasi Google Earth (GE). Awalnya saya rasa berat, eh, ternyata GE mengekspos fungsi2nya ke dalam bentuk API yang mudah dipergunakan. Saya baru tahu pagi ini, tapi mungkin seperti cara aplikasi2 Microsoft Office mengekspos interface2nya. Beberapa link ini mungkin membantu : (mengautomasi Google Earth dengan VB 6), (mengautomasi Google Earth dengan ASP.NET) dan (Google Earth COM API Documentation).


Google Earth di Wikipedia

Kemudian yang sebelum itu adalah menampilkan data spasial hasil dari ArcView dengan menggunakan PHP + MySQL. Ini keren juga.

ArcView Terbaru Versi 9.x


Yg terakhir adalah juga menggunakan VB.NET, mengolah data hasil dari ArcView (untuk fitur produk, silahkan dilihat disini), untuk kemudian membuat software pembelajaran dari peta tersebut. Komponen yang dipakai adalah Dundas Map disini (komponen chartinya juga bagus sekali).


Komponen Chart, Gauge dan Map yang sangat produktif!


Semuanya menarik sekali!

Thanks for all

NB :
  • Dari dulu sudah sering lihat temen buat aplikasi spasial. Keren sekali.
  • Tapi ternyata tidak sesulit yg terlihat
  • Mari bereksperimen... ^_^


Sunday, January 27, 2008

Debugging dan Penghitungan Kecepatan Eksekusi Aplikasi Web


Semua itu dilakukan dengan Firebug, sebuah plugin Mozilla Firefox

Silahkan dapatkan disini : www.getfirebug.com


Kemudian artikel ini mungkin bisa menjadi panduan praktis penggunaan Firebug untuk Debugging aplikasi Web


Semoga bermanfaat!

Thursday, October 18, 2007

Perkembangan Privat PHP Fundamental

Unik sekali usaha yang satu ini.

Inti usahanya mungkin hanya Silaturahim saja.
Tapi apa yang didapat tidak bisa ditebak.

Sebagai contoh, sehabis sholat zuhur saya didatangi teman, beberapa saat kemudian saya tawari saja u/ belajar PHP. Nah, karena senangnya, teman saya (Muhammad Rozi) langsung membayar uang Rp. 30ribu u/ modul PHP. Kemudian mulailah saya bolak-balik ke Masjid Ar-Raqib (selatan Mandala Krida), beliau takmir di sana.

Disini mulailah terjadi banyak hal yang indah.
Pertama, karena terbiasa mengerjakan beberapa proyek yg lumayan besar, saya terkadang lupa, kalau ada satu usaha yang ringaaan saja yang bisa saya lakukan : mengetik, dengan dibayar per lembar. Ya Allah, saya lakukan ini di Ar-Raqib u/ teman Mas Rozi. Dan dibayar langsung Rp 20ribu... Senangnya...

Kemudian setelah berdiplomasi tentang Linux, akhirnya setelah berjuang beberapa hari (karena ada masalah dengan Driver Nvidia), di desktop Mas Rozi telah terinstall Ubuntu Feisty. Sangat senangnya saya, karena memudahkan teman saya tersebut u/ menggunakan sistem operasi Halalan Thayiiban.

Dan juga, karena Mas Rozi ini mahasiswa Pertanian (atau Peternakan?), maka saya belajar dari awal u/ mengajarkan IT dari awal. Wah, benar2 melatih kesabaran dan membuat saya banyak bersyukur atas ilmu yang diberikan Allah SWT kepada saya, Ilmu Komputer.

Untuk selanjutnya, saya ingin menyusun suatu buku atau panduan bagi orangtua u/ mengajarkan anaknya skill IT, berbasis Ubuntu.

Senangnya saya kalau ini berhasil...
(Mohon doanya, karena saya sering tidak bisa menyelesaikan ide menulis buku. Seperti ide u/ menulis buku Java Web Application kemarin dulu)

Selamat Hari Raya Idul Fitri 1428 Hijriyyah, mohon maaf lahir bathin.
Semoga Allah hantarkan kita ke bulan Ramadhan 1429 Hijriyyah yang akan datang.

Betapa indahnya Bulan Ramadhan..