WHAT'S NEW?
Loading...
Showing posts with label coding. Show all posts
Showing posts with label coding. Show all posts
Biasanya gw kalo debug PHP tuh pake output variabel pake echo atau print_r gitu, cuma masalahnya kita harus tau dulu file php mana yg bikin eror, nah kali ini ada cara gampang buat debug aplikasi PHP dengan XDEBUG yg bakalan memudahkan proses trace issue karena kita bisa masuk kedalam proses PHP langkah demi langkah, bahkan bisa masuk kedalam prosedur fungsi atau masuk ke dalam include file php nya.
Berikut ini cara yg gw lakukan dalam mendebug php pake xdebug dengan IDE favorit Notepad++. hehe.. Oke kita mulai yaa.

1. Mengetahui versi PHP lo dengan phpinfo().
Di tutorial ini gw pake web server lokal XAMPP versi Portabel dengan port khusu 8080, tapi secara umum langkah ini bisa di terapkan di web server apache lain kayak WAMP, atau EasyPHP.
Kalo lo pake XAMPP sih gampang tinggal akses aja root XAMPP nya, trus klik phpinfo()

XAMPP phpinfo

Kalo diliat di atas gw pake PHP versi 5.4.7, nah di dalam halaman phpinfo itu gw blok semua halaman nya dengan tombol ctrl+A ajah, kenapa? untuk analisa xdebug wizard di langkah 2.

2. Menggunakan bantuan Xdebug wizard
paste phpinfo lo disini

Langkah berikutnya, lo harus download versi xdebug yg sesuai dengan versi PHP server lo. Cuma kalo ga mau ribet, mending pake wizard ajah, lo ga perlu milih sendiri versi xdebug, tinggal copy-paste informasi phpinfo seperti langkah 1 trus paste ajah di form wizard, dan simsalabim... lo udah tinggal download versi xdebug yg sesuai dengan web server apache lo. dan lagi di tulisin lagi file tersebut harus lo taro di folder mana :) asik kan.. langsung cekidot di alamat ==> http://xdebug.org/wizard.php

hasil analisa xdebug wizard

3. Update file PHP.INI
Setelah lo download file xdebug dll nya lo paste lah itu di dalam folder webserver/php/ext 
trus edit file php.ini dengan kode berikut:
[XDebug]
; Sesuaikan lokasi webserver folder debug lo
zend_extension = \xampp-portable\php\ext\php_xdebug-2.3.2-5.4-vc9.dll
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
; Sesuaikan lokasi webserver folder debug lo
xdebug.profiler_output_dir = "\xampp-portable\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
; port buat debug nya 9000
xdebug.remote_port=9000
; Sesuaikan lokasi webserver folder debug lo
xdebug.trace_output_dir = "\xampp-portable\tmp"
xdebug.extended_info=1
xdebug.idekey=xdebug
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0
Trus restar webservice apache lo. dan xdebug berhasil di attach ke server PHP lo deh :D

4. Plugin debug buat notepad++
Siiip kali ini setelah PHP xdebug berhasil terpasang di webserver lo, sebelum bisa melakukan tracing debug php, ada yg harus di upgrade dari editor NPP ini, kita perlu yg namanya plugin DBGP, silahkan download dulu disini ==> http://sourceforge.net/projects/npp-plugins/files/DBGP%20Plugin/
Kelar download, hasil extractan dll nya di taro di folder instalasi NPP nya, kalo gw sih ada di C:\Program Files (x86)\Notepad++\plugins, restart deh itu notepadnya, sampe menu plugin seperti gambar di bawah muncul



5. Konfigurasi DBGp nya
Masuk ke menu Plugins -> DBGp ->Debugger, trus seting DBG configuration seperti berikut ini:

Remote Server IP : karena localhost jadi kita isikan 127.0.0.1,
Ide key : isi kan sesuai setingan di php.ini tadi
Remote path: lokasi folder webservernya, kalo xampp "htdocs" webserver yg laen kadang namanya "www"

6. Tambahkan breakpoint
Sampai dengan tahap ini, lo udah bisa melakukan debug PHP bro, cuma untuk mengintercept, alias mencegat eksekusi proses PHP, lo mesti nambahin breakpoint, gunanya buat nandain "Oke dari sini kita mulai telusuri". masuk ke Plugins -> DBGp ->Debugger
Trus kalo liat bunderan merah, lo klik ajah sampe di editor NPP nya muncul bunderan merah juga
Tambah breakpoint
6. Memulai debug
Lanjutkan dengan buka web localhost nya.. akses ke halaman yg di tuju, dan load page dengan tambahan parameter ?XDEBUG_SESSION_START=session_name. session name sih bisa apa ajah, contohnya http://localhost:8080/fachrul/index.php?XDEBUG_SESSION_START=testgan
Begitu kita click, maka aplikasi notepad nya malah jadi kedap-kedip karena proses load page PHP lagi mulai debug sekarang.
Di samping kiri bunderan merah tadi kita bisa liat ada tombol alur debug seperti 
step into : untuk masuk ke dalam prosedur/include file php
step over : melanjutkan proses tanpa masuk kedalam prosedur
step out : keluar dari dalam produr / proses debug, biasanya setelah step into.
nah kita bisa analisa nih si skrip PHP yg kita buat alurnya kayak gimana, kita bisa trace kenapa dia ga masuk kondisi disitu, atau kenapa nilainya berubah jadi itu.
Untuk mengetahui nilai dari variabel yg ditampung, kita bisa menggunakan fungsi waches variabel seperti di bawah ini, nanti hasil nya bisa muncul di bawahnya


Selesai deh itu, gampang kan caranya. :)
Itu baru ngedebug di notepad ya, gw juga udah coba debug di sublime text, bisa juga loh, tapi dengan instal package debug dlu, cuma secara tampilan lebih enak di baca kalo pake notepad++.
Apalagi kalo ngedebug PHP pake dreamwaver atau IDE laen kayak, netbeans, aptana, eclipe, atau komodo pasti tampilan debugnya lebih rapih sih, cuma belum nyoba ajah gw hehe.


Gegara rilisnya windows 8 di tahun 2012 lalu yang membuat perubahan drastis dalam dunia user interface. Win 8 tampil dengan desain yg simple, minimalis, dan kotak-kotak ternyata mendapat perhatian dunia desain UI, tampilan tombol yg serba glossy kayak kaca pun tiba-tiba berubah flat, satu warna, dan kotak! 
Web besar Indonesia macam Kaskus ajah sekarang tampilannya sangat flat dan simple dari sebelumnya, emang dunia internet sedang dilanda desain simple, flat ala windows 8. Nah sebagai penggiat pemrograman web, gw juga tertarik untuk membuat desain web dengan gaya kayak windows 8 ini, tapi ga kebayang riweuh nya kalo harus membuat semua user interface dari nol, untunglah gw menemukan framework CSS sangat keren dan mudah yaitu:



Dengan kerangka bootstrap 3 sehingga jelas memiliki performa responsive yg ciamik, dan yg paling gw suka adalah dokumentasi nya lengkap sekali coy, jadi gw tinggal capluk doank ini :D

Ini bukti kalo dokumentasi lengkap, kita tinggal copy-paste ajah buat mengaplikasikannya pada web yg dibuat

http://metroui.org.ua/examples.html


Tombol

Menu

Input Form

Window


UI nya khas windows macam Tiles (ubin kotak), efek carousel, efek klik, bahkan fluent menu kayak Office 2013 pun bisa lo bikin hanya dengan copas :D, gokil kan.

Nah buat kalian yg mau membuat front end web dengan tampilan keren ini bisa langsung aja di cekidot di web nya Metro UI CSS http://metroui.org.ua/

http://udiosoft.com/upload/SQL-Performance-Testing.jpg
Syntax SQL di oracle pada umumnya sama sih sama MySQL yg lebih gw kenal, dan mungkin juga sama dengan database lainya karena uda di standarisasi buat query SQL cuman buat beberapa DBMS punya bahasa lokal buat databasenya.
Okelah gw bahas kali ini adalah SQL Tuning, buat mempercepat dan membuat syntax query lebih ramah dibaca
Biasanya kalo kita butuh data kita bisa tinggal panggil aja di kolom mana, tabel mana kayak "select*from tabel" tapi ternyata ada standarisasi dari penulisan query sql, biar lebih gampang dibaca orang lain. jadi kita tulis seperti ini:


penjelasan:
- Perintah SQL huruf kapital dan rata kiri
- Kolom ditulis dalam baris baru
- Pergunakan alias dalam huruf besar (emp E)
- Gunakan bind variabel kayak ':vardpt'
- AND/OR ditaruh di baris baru
- Gapake spasi sebelum/sesudah dalam kurung

dan ini perbandingan penulisan query yg udah dihitung dengan data yg besar

menentukan urutan kalo oracle itu gada 'auto increment' kayak mysql, jadi mesti bikin nomer/id sendiri, caranya bisa kek gni
gitu aja sih yg gw dapet barusan dari ppt, nanti kalo ada sumber tambahn gw masukin :P