Saturday, April 20, 2013

Debugging Aplikasi PHP

Debugging merupakan proses yang mau-nggak-mau harus dijalani tiap kali membuat program. Ada dua garis besar metode yang bisa dilakukan:

  • Nge-print variable dengan code
  • Menggunakan tools debugger dengan IDE (Integrated Development Environment)
Cara Tebar Ranjau

Cara pertama yaitu dengan menambahkan code var_dump($var);. Dengan cara ini, isi variable $var akan terlihat di browser. Makin banyak variable yang ingin diperiksa, makin banyak pula var_dump($var) yang harus ditambahkan sehingga code semakin kotor dan berantakan. Cara ini sering juga disebut dengan "tebar ranjau" :D

Cara tebar ranjau ini makin rumit kalau kita tidak tahu variable mana dan pada kondisi apa bug muncul (misalnya dalam kasus for loop), maka metode print variable dengan var_dump($var) ini menjadi tidak efektif. Walaupun demikian, metode ini sering dipakai untuk quick n dirt debug, pada kondisi-kondisi yang simple, dan biasanya banyak dipakai oleh newbie :D.

Cara Debugging Tools

Cara debugging php menggunakan tools adalah dengan memakai XDebug. Untuk pengguna Unix/Linux bisa ikuti langkah disini http://devzone.zend.com/1120/introducing-xdebug/. Untuk pengguna Windows yang memakai XAMPP sebagai webserver-nya, cukup ikuti langkah berikut:

  • Aktifasi XDebug
  • Buka "C:/xampp/php/php.ini", pada [XDebug], uncomment zend_extension dan tambahkan beberapa setting seperti line dibawah ini:

    [XDebug]
    zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

    xdebug.remote_port=9000
    xdebug.profiler_enable=1
    xdebug.idekey=netbeans-xdebug
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_host=127.0.0.1
    xdebug.remote_mode=req
    xdebug_break();

  • Restart Apache service
  • Buka XAMPP Control Panel, stop Apache, lalu start kembali.

  • Cek apakah XDebug sudah terinstall atau belum
  • Buka http://localhost/xampp/phpinfo.php, pastikan XDebug sudah terinstall.

Bonus: setelah XDebug terinstall, output dari var_dump($var) akan berubah menjadi lebih readable. Perhatikan perbedaan berikut ini:

XDebug tidak diaktifkan

XDebug diaktifkan

XDebug sudah terinstall, tinggal install Debugging tools (IDE)-nya. Untuk PHP saya lebih suka pakai Netbeans, yang lain mungkin lebih suka Eclipse, pilihan saja. Untuk netbeans (versi 7.1 keatas) by default sudah suppport XDebug. Break point pada line yang ingin didebug, lalu klik Debug > Debug Project (atau klik icon pada toolbar) untuk mendebug aplikasi PHP. Sekarang kita bisa lihat isi variable PHP tanpa harus menambahkan (dan mendelete lagi) var_dump($var);.

Pada contoh dibawah ini, kita bisa periksa isi variable $data tanpa harus menambahkan code var_dump($data);

By default Netbeans PHP akan berhenti di line pertama ketika di debug. Untuk mengubah settingan ini masuk ke Tools > Option, pilih PHP lalu pilih tab Debugging. Uncheck pada pilihan "Stop at first line".

Selamat mencoba :D (ya2n)

Thursday, April 11, 2013

Tutorial Membuat Software MySQL Client (Windows, Linux, Mac) Menggunakan Qt Desktop

Pada tutorial berikut, kita akan membuat software desktop (GUI) menggunakan Qt untuk menampilkan database (MySQL) dari server. Berikut skemanya:

Tutorial ini ditujukan bagi yang sudah familiar dengan Qt dan sedikit tahu tentang MySQL. Bagi yang belum familiar dengan Qt, silakan pelajari dulu tutorial memulai membuat software GUI menggunakan Qt.

Install software yang dibutuhkan

Sebelum dilanjutkan, pastikan beberapa software ini telah terinstall, jika sudah terinstall bisa langsung masuk ke tutorial:

1. MySQL server

Untuk localhost, bisa install XAMPP disini. Setelah XAMPP terinstall, pastikan Apache dan MySQL server sudah dinyalakan.

2. MySQL Qt plugin

Untuk menginstall plugin MySQL di Qt, ikuti langkah pada tutorial disini. Untuk mengecek apakah MySQL plugin sudah terinstall atau belum, jalankan code berikut di Qt:

Maka Qt akan mengeluarkan output berupa daftar DBMS yang telah terinstall (pastikan QMYSQL ada dalam daftar list tersebut).

Membuat Database

1. Buka http://localhost/phpmyadmin
2. Masuk ke Privileges, klik "Add a New User".
3. Masukkan data berikut (isi Password dengan password):

JANGAN LUPA: pilih "Create database with the same name and grant privileges", lalu "Check All" pada pilihan privileges-nya.

4. Dari home PhpMyAdmin, masuk ke database example yang sudah dibuat pada no.5
5. Masuk ke menu SQL
6. Copy/paste SQL command dibawah ini, lalu klik GO:

Maka tabel test akan muncul seperti ini:

Membuat GUI

1. Buat file MysqlExample.pro, isikan dengan code berikut:
2. Buat file main.cpp difolder yang sama dengan MysqlExample.pro, isikan dengan code berikut:
3. Jalankan aplikasinya, maka akan muncul GUI dengan tabel dimana isi tabelnya diambil dari MySQL database di localhost.

Karena software ini dibuat menggunakan Qt, maka code yang sama dapat dijalankan di WIndows, Linux, dan Mac. Enjoy! (ya2n)