week#14 webprogramming
TRANSCRIPT
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 1/100
Disusun oleh Guson Kuntarto
Universitas Multimedia Nusantara
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 2/100
PHP Security: Introduction. Konfigurasi server.
SQL injection.
XSS & Securing Session. Golden Rules -> Filter & Escape.
Magic Quotes.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 3/100
XML and PHP Regular Expression (POSIX and PERL)
PEAR
Debugging PHP6
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 4/100
PART I
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 5/100
Pada pertemuan ini akan dibahas tentang. Pengantar XML, meliputi.
▪ Sintaks XML,
▪
Bagaimana membuat dokumen XML. PHP mem- parsing dokumen XML (DOM XML).
Men- generate dokumen XML menggunakan PHP.
Pemanfaatan dokumen XML di dalam aplikasiweb (RSS).
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 6/100
XML (eXtensible Markup Language) adalahsatu dari sekian banyak teknologi untuk
sharing data antara komputer dan aplikasi.
XML menyediakan sebuah format gunamenyimpan tidak hanya informasi akan
tetapi informasi tentang informasi (meta-
information). Sama seperti HTML, XML berbasis Standard
Generalized Markup Language (SGML).
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 7/100
XML, diatur oleh sebuah konsorsium di bawahWorld Wide Web Consortium (W3C), denganbeberapa tujuan sebagai berikut. Sebagai sebuah standar, bukan sebagai proprietary
ec no ogy yang anya m o e sa u perusa aansaja. Dapat secara fleksibel menyimpan bermacam-macam
informasi.
Dapat secara mudah dibaca oleh manusia dankomputer. Dapat memeriksa keabsahan (validity ) dan integritas
(integrity )
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 8/100
Sebuah kode HTML<strong>XML</strong>mengindikasikan bahwa kata “XML” harus
ditampilkan sebagai emphasized text.
XML menggunakan tags (< >) untukenkapsulasi potongan informasi.
Berbeda dengan HTML tags, XML tags tidak
akan tampil seperti HTML. Karena tujuan dariHTML adalah menyajikan informasi
sedangkan XML adalah identifikasi informasi.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 9/100
XML opened by Mozilla Firefox 3.6.13
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 10/100
HTML opened by Mozilla Firefox 3.6.13
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 11/100
PHP memiliki support built-in untuk XMLdalam bentuk ekstensi.
XML disusun (compiled ) dalam secara default,
sehingga tidak diperlukan konfigurasitambahan untuk menggunakan XML.
Tampilan phpinfo() guna memeriksa xml
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 12/100
Document Object Model (DOM) adalahsebuah interface yang berguna untuk
mengijinkan elemen dokumen XML di baca
dan diupdate oleh sebuah program.
Setiap elemen dari dokumen muncul sebagai
object dengan methods dan attributes yangdapat dimanipulasi oleh program.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 13/100
Implementasi DOM yang paling populeradalah JavaScript di dalam browser yang
dapat meng-update konten dari sebuah
laman HTML.
Dari perspektif PHP, DOM memungkinkan
penanganan dokumen XML sebagai strukturdata biasa.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 14/100
Memeriksa ketersedian library XML-DOM
dalam PHP melalui phpinfo().
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 15/100
Contoh. Books.xmlParent tags <books> memiliki set tags <book>. Di mana tag <book>
terdiri dari tags <author>, <publisher>, dan <title>.
authorChristopherCosentino
books
book publisher
A vance PHP
for WebProfessionals
titlePrentice Hall
PTR
book
author Leon Atkinson
publisherCore PHP
Programming,Third Edition
titlePrentice Hall
PTR
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 16/100
Books.xml
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 17/100
Kode untuk membaca books.xml dan menampilkan isimenggunakan DOM ditampilkan di bawah ini
(xml_dom.php).
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 18/100
Penjelasan xml_dom.php1. Dimulai dengan tag php,
2. Membuat instance (object) baru (new) dari
sebuah DOMDocument.3. Lalu, memuat (loading) books.xml ke dalam
object menggunakan method load.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 19/100
Penjelasan xml_dom.php (line 5 – 15) Script menggunakan method getElementsByName untuk
mengambil list semua elemen. Dalam loop book, script menggunakan method
getElementsByName untuk mengambil nodeValue untuk setiapnode tag yaitu author, publisher, dan title.
nodeValue adalah teks dalam node.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 20/100
Penjelasan xml_dom.php (line 17 -19)
cr p emu an menamp an n a -n a e, au or,
$publisher.
End of loop, dan tutup tag php.
Hasil di browser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 21/100
Bagaimana jika diinginkan menulis XML
menggunakan DOM ?
Script PHP berikut menunjukkan bagaimanamenulis dokumen XML menggunakan library
DOM.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 22/100
xml_dom_writing.php
Array dari books, yang
Terdiri dari title, author, danPublisher. Di mana semua elemen
Diberikan value.
Membuat instance $doc
dari DOMdocumentMembuat root node yaitu
Books dengan caracreateElement(“books”),
dan menambahkan Child node
dari root node: appendChild($r)
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 23/100
xml_dom_writing.php
Untuk setiap (foreach) book dibuatelemen menggunakan method
createElement untuk
Langkah terakhir untuk setiap node <book> di re-attach
Ke dalam root node <books>
author, title, dan publisher.Element tersebut merupakan childDari root <book>.Dan guna menambahkan valuetext node untuk setiap nodesnyadigunakan method createTextNode
Value createTextNode diambildari array yang telah dideclaresebelumnya.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 24/100
Preview on webbrowser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 25/100
Bagaimana jika tidak ada akses untuk
menggunakan XML DOM library?
Parsing document XML dapat dilakukandengan menggunakan regular expressions.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 26/100
PART II
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 27/100
Regular expression menyediakan fondasi
guna pencocokan (match) data menurut
aturan sintaks yang didefinisikan.
Regular expression tidak lebih dari sebuah
pola ( pattern) dari sebuah karakter, yang
digunakan untuk pencocokan sebuah teks.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 28/100
PHP memiliki library yang mendukung
implementasi regular expression:
POSIX (Portable Operating System Interface for
Unix ) dan PERL.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 29/100
Bracket [] digunakan untuk mewakili suatu list/ range
karakter yang akan dicocokkan. Contoh: [0-9] mencocokan sembarang digit desimal dari 0 s/d 9
[A-Za-z] mencocokan sembarang karakter dari huruf besar.
Quatifiers, kadang kala kita ingin membuat regularexpression untuk mencari karakter berdasarkanposisi.
Contoh, pencarian string yang mengandung satu ataulebih huruf p, atau pencarian string yang mengandungsetidaknya dua huruf p, bahkan string yang diawali dandiakhiri dengan huruf p
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 30/100
Contoh: p+ mencocokan sembarang string yang
mengandung paling sedikit satu huruf p.*
mengandung zero atau lebih dari satu huruf p.
p? mencocokan sembarang string yang
mengandung zero atau satu huruf p. p{2} mencocokan sembarang string yang
mengandung dua huruf p.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 31/100
Contoh: p{2,3} mencocokan sembarang string yang
mengandung dua atau tiga huruf p. p$ mencocokan sembarang string yang diakhiri
engan uru . ^p mencocokan sembarang string yang diawali
dengan huruf p. [^a-zA-Z] mencocokan sembarang string yang
tidak mengandung sembarang karakter dari as/d z dan A s/d Z. <b>(.*)</b> mencocokan sembarang string yang
berada dalam tag <b> dan</b>
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 32/100
Predefined charcter range, antara lain.
[:alpha:]: huruf kecil dan huruf besar alphabetical characters
[:alnum:]: huruf kecil dan huruf besar alphabetical n n . n
[A-Za-z0-9]. [:cntrl:]: Control characters seperti tab, escape, atau
backspace.
[:punct:]: Punctuation characters, termasuk ~ ` ! @ # $% ^ & * ( ) - _ + = { } [ ] : ; ' < > , . ? dan /. [:graph:]: Printable characters yang ditemui pada
range ASCII 33 to 126.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 33/100
PHP menawarkan tujuh functions untuk
pencarian string menggunakan POSIX-style
regular expressions, antara lain.
ereg(), eregi(), eregi_replace(), ereg_replace(),dan sql_regcase().
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 34/100
ereg() – case-sensitive, sedangkan untuk case-
insensitive adalah eregi().
Format:
boolean ereg(string pattern, string string [, array regs])
boolean ereg(string pattern, string string [, array regs])
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 35/100
Contoh:
Output di webbrowser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 36/100
ereg_replace() – case-sensitive, sedangkan untuk case-insensitive adalah eregi_replace().
Function mirip seperti ereg() dan eregi(), tidak hanyamencari tetapi dapat menggantikan pola dengan stringpen anti
Format:string ereg_replace(string pattern, string replacement, stringstring)
string eregi_replace(string pattern, string replacement, stringstring)
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 37/100
Contoh:
Output di webbrowser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 38/100
sql_reqcase() function ini digunakan ketika
menggunakan aplikasi PHP untukberkomunikasi dengan aplikasi lain yang hanya
support case-sensitive regular expression saja.
Format:string sql_regcase(string string)
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 39/100
Contoh:
u pu we rowser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 40/100
Perl dikenal sebagai “the most powerful parsing
languages”.
Menyediakan secara lengkap regular expression
yang dapat dipergunakan untuk mencari
(search) dan menggantikan (replace) bahkanuntuk string pattern yang rumit sekalipun.
Developer PHP memanfaatkan keunggulan perl,
dengan menyediakan Perl regular expressionsintaks availabel untuk pengguna PHP.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 41/100
Ada kemiripan antara Perl dan POSIX, dimana
perl regular expression dapat menggunakanquantifier sebagaimana yang telahdipergunakan oleh POSIX.
e a n uan er, ena s a mo er.Modifier berfungsi untuk menyembunyikaninterpretasi dari regular expression. Contohmodifier:
i menjalan pencarian case-insensitive s memerlakukan string sebagai single line,
mengacuhkan newline character yang ditemui. x mengacuhkan white space dan komentar
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 42/100
Modifiers diletakkan secara langsung setelah
regular expression.
Sintaks
/string/modifier
Contoh
/wmd/i
Mencocokan WMD, wMD, WMd, wmd, dan variasilainnya dari string wmd
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 43/100
Selain modifier, dikenal juga istilah
metacharacters. Metacharacter adalah karakter abjad yang
didahului dengan backslash yang memiliki artiusus. on o
\A: mencocokan hanya pada awal sebuah string. \d: mencocokan digit character. Sama halnya dengan
[0-9].
\D: mencocokan nondigit character. \s: mencocokan whitespace character. \S: mencocokan nonwhitespace character.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 44/100
PHP menawarkan tujuh function untuk
pencarian string menggunakan perl-compatible regular expression, yaitu.
preg_grep(), preg_match(), preg_match_all(), preg_quote(), preg_replace(), preg_replace_callback(), and preg_split()
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 45/100
preg_match() berfungsi mencari string dengan pola
tertentu, jika string ditemukan maka pencariandihentikan dan return 1. Sebaliknya return 0. Sintaks: (case-sensitive)
int preg_match(search_pattern, your_string)
preg_match_all() digunakan untuk mencari stringsecara keseluruhan untuk pola tertentu dan
menyimpan seluruh hasilnya dalam array. Sintaks: (case-sensitive)
int preg_match_all (pattern, string, $array, optional_ordering,optional_offset)
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 46/100
Contoh: preg_match
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 47/100
Hasil di browser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 48/100
Contoh: preg_match_all
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 49/100
Hasil di browser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 50/100
preg_replace() berfungsi mencari dan
mengganti string atau array. Sebagai contohmencari kata “him” lalu menggantikannya
dengan kata “her”. Sintaks: (case-sensitive)
preg_replace ( search_for, replace_with, your_data ,
optional_limit, optional_count )
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 51/100
Contoh: preg_replace
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 52/100
Hasil di browser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 53/100
preg_grep() berfungsi mencari array dengan
pola tertentu lalu return menjadi sebuaharray baru sesuai dengan proses filtering.
Sintaks:preg_grep ( search_pattern, $your_array, optional_inverse )
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 54/100
Contoh: preg_grep()
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 55/100
Hasil di browser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 56/100
preg_split () digunakan untuk mengambil
string, dan memasukkannya ke dalamarray. String tersebut dipecah menjadi nilai
yang berbeda dalam array berdasarkan
masukan Anda.
Sintaks:
preg_split ( split_pattern, your_data, optional_limit,optional_flags )
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 57/100
Contoh: preg_split()
Keterangan:PREG_SPLIT_NO_EMPTY no empty results are returned
- 1 = no limit (default)
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 58/100
Hasil di browser
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 59/100
PART III
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 60/100
“ Good programmers write solid
code, while great programmers
programmers.......” ☺☺☺☺
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 61/100
Bagi PHP programmers, PEAR adalah akronim
dari PHP Extension and ApplicationRepository.
PEAR adalah cara an alin efektif di dalam
mencari dan memakai ulang (reusing) Kode PHPyang solid. Terinspirasi dari CPAN (Comprehensive Perl
Archive Network), Project PEAR dimulai tahun1999 oleh PHP developer Stig Bakken,
Rilis pertama pada PHP version 4.3.0.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 62/100
PEAR dikemas dalam packages.
Bagaimana cara memeroleh packagestersebut?
s t ttp: pear.p p.net pac ages.p p, a u own oa
packages yang diinginkan.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 63/100
PEAR’s package
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 64/100
Jika anda menggunakan XAMPP, package
PEAR telah terinstal di dalam folderC:\Program Files (x86)\xampp\php\pear
Periksa pula phpin o().
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 65/100
Beberapa package yang populer
1. AUTHENTICATION
2. PAYMENT
3. HTML_AJAX4. TEXT_CAPTCHA
5. IMAGE 3D
6. More...............
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 66/100
Captcha adalah jenis tes tantangan-respon
yang digunakan dalam komputasi untukmemastikan bahwa respon ini tidak
dihasilkan oleh komputer
Guna membuat captcha, diperlukan
beberapa package PEAR, yaitu.
TEXT_CAPTCHA ver 0.4.1 IMAGE_TEXT ver 0.6.0
FONTS
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 67/100
Example: Generating Captcha using PEAR
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 68/100
Package PEAR lainnya adalah membuat citra
3D. Guna membuat citra 3D, diperlukan beberapa
package PEAR, yaitu.
IMAGE_3D ver 0.4.1
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 69/100
Example
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 70/100
PART IV
DEBUGGING
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 71/100
Debugging adalah proses mencari dan
mengurangi bugs (defects) di dalam programkomputer.
Debugging menjadi lebih susah ketika
bermacam subsistem digabungkan,
perubahan di salah satu subsistem dapat
menyebabkan bugs .“It is a common issue that fixing a bug can
produces more bugs”
71
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 72/100
Cara termudah untuk menampilkan pesan
kesalahan (error dan warning messages)dengan cara mengaktifkan line di bawah ini
. .
Terdapat empat belas level error reporting.Seperti yang ditunjukkan pada slide berikut.
72
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 73/100
level error reporting
73
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 74/100
Beberapa contoh penggunaan.
Show all errors, except for notices and coding standards warningserror_reporting = E_ALL & ~E_NOTICE
74
Show all errors, except for noticeserror_reporting = E_ALL & ~E_NOTICE | E_STRICT
Show only errors
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 75/100
Syntax Errors
Syntactical errors atau parse errors secara umumdisebabkan kesalahan pengetikan (typo) kodeprogram. Sebagai contoh, missing semicolon,quotation mark , brace atau parentheses.
Warning Warnings berbeda dengan syntax errors. PHP dapat
mengatasi kesalahan dengan peringatan (warning).
Peringatan muncul ketika kesalahan terjadi. Sebagaicontoh, disebabkan oleh penulisan jumlah parameteryang salah ketika memanggil sebuah function.
75
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 76/100
Notices
Notices are not going to halt the execution of yourcode either, but they can be very important in
Often you’ll find that code that’s workingperfectly happily in a production environmentstarts throwing out notices when you seterror_reporting to E_ALL.
For example, undefined variable or index in aarray
76
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 77/100
Fatal Errors
Fatal Errors terdengar sangat “painful” tetapipaling mudah diselesaikan (resolve).
Umumnya, fatal error muncul ketika sebuah
undefined class atau function dipanggil.
77
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 78/100
Logic Errors
Secara umum, bug seperti ini yang sulit untukdiatasi (resolve).
Penyebab utama adalah kesalahan kalkulasi
formula/ angka/ logic steps.
78
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 79/100
Jika anda menggunakan XAMPP, dimana web server
yang dipergunakan adalah apache (mis: ver 2.2.2), Maka web server harus diberikan hak untuk menulis log
ke dalam file an telah ditentukan. Log ditulis pada folder di bawah ini.
C:\Program Files (x86)\xampp\apache\logs
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 80/100
Contoh: error.txt
error logging (error)
Error logging (notice)
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 81/100
Secara umum, debuggers adalah software
tools yang dapat programmer untuk memantau eksekusi sebuah program,
menghentikan (stop) eksekusi,
mengulangi (re-start ) eksekusi,
mengatur (set ) breakpoints,
merubah nilai dalam memory,
81
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 82/100
Secara umum terdapat dua metode guna
debugging server-side code.1. Dapat menggunakan Integrated Development Environment (IDE) yang memiliki built-in
e ugger a au og.
2. Menggunakan web browser denganmenginstal add-on sebagai debugger . Caratermudah untuk debugging aplikasi tanpamemodifikasi konfigurasi server. Contoh:FirePHP 0.5.0
82
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 83/100
Apa saja yang dibutuhkan?
Firefox 3.5 higher (contoh: 3.6.13)
Firebug 1.6.0
FirePHP 0.5.0
FirePHPCore 0.3.2
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 84/100
Proses instalasi firebug dan firePHP
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 85/100
Pastikan proses instalasi firebug & firePHP
pada firefox sukses
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 86/100
Download FirePHPCore 0.3.2
Letakkan folder firePHPcore didalam folderyang akan didebug, mis:
ocs we prog wee 14 re core
Buatlah file mis: debug_01.php gunamelakukan uji coba debugging.
Struktur kode php ditunjukkan pada slide
berikut.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 87/100
Debug_01.php
Aktifkan panel firebug (F12) pada web
browser firefox. Pastikan panel firebug, Net dan Console
aktif
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 88/100
Hasil debugging script debug_01.php
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 89/100
Jika di klik pada
Maka akan muncul variable viewer
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 90/100
FirePHP memerbolehkan untuk log Firebug
Console menggunakan PHP method call . Dimana, semua data dikirim menggunakan
satu set X-FirePHP-Data response headers
Untuk kepentingan tersebut, PHP memilikilibrary yang menyediakan function guna
menangani pengiriman data ke client side,yaitu fb().
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 91/100
Contoh: debug_02.php
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 92/100
Tampilan web browser firefox
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 93/100
Diperlukan xDebug, hanya running untuk
PHP versi 5.2.x dan 5.3.x.
dibawah versi 1.7.0, di mana PHP bundlepaling di bawah 5.2.x.
Tutorial untuk menginstall xDebug:http://netbeans.org/kb/docs/php/configure-php-environment-windows.html
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 94/100
Diperlukan xDebug, hanya running untuk PHP versi5.2.x dan 5.3.x.
Tidak disarankan untuk menggunakan xamppdibawah versi 1. .0 di mana PHP bundle alin dibawah 5.2.x.
Tutorial untuk menginstall xDebug:http://netbeans.org/kb/docs/php/configure-php-environment-windows.html
Tutorial untuk melakukan Debugging kode PHPmenggunakan NetBeans IDEhttp://netbeans.org/kb/docs/php/debugging.html
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 95/100
PART V
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 96/100
PHP 6 support Unicode (UTF-8), ini berarti PHPmampu menangani karakter dari segala jenisbahasa di dunia ini.
e r ng engan c ass rar es yang erus
berkembang, besar kemungkinan akan dijumpaidua libraries menggunakan nama class yangsama. Pada PHP versi terdahulu, hal ini tidakdimungkinkan dalam satu file PHP mengakses
dua class yang memiliki nama yang sama. PHP 6overcome masalah ini dengan Namespace.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 97/100
Didukung dengan XMLWriter dan XMLReader,
class berbasis Object-oriented yang dapatmembaca dan menulis dokumen XML.
SOAP extension ON by default. Pada PHP versi5 SOAP extension diperkenalkan melalui PEARlibrary dan tidak diset sebagai default. Pada
versi 6, memungkinan platform (java, .NET)yang berbeda dapat memiliki interoperabilitas.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 98/100
Fitur yang dihapus
Magic Quotes Register global
ereg(), eregi(), ereg_replace(), dan ereg_replacei()
sama dengan preg_match() dan preg_replace()
FreeType 1 and GD 1.
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 99/100
XML and PHP
Regular Expression (POSIX and PERL) PEAR
Debugging
PHP6
5/16/2018 Week#14 WebProgramming - slidepdf.com
http://slidepdf.com/reader/full/week14-webprogramming 100/100
Bradley, A., 2010, Introduction to Preg PHP, URL:http://php.about.com/od/advancedphp/ss/php_preg.htm
Dorn, C., 2010, FirePHP: Print to Firebug Console fromPHP, URL: http://code.google.com/p/firephp/
, . . .
Gilmore, 2008, Beginning PHP and MySQL: FromNovice to Professional, Third Edition , Apress.
Good, N. A., 2008, The Future of PHP, URL:http://www.ibm.com/developerworks/opensource/library/os-php-future/
Herrington, J., 2005, Reading and writing the XMLDOM with PHP, IBM’s technical library, URL:http://www.ibm.com/developerworks/library/os-xmldomphp/
PHP PEAR, URL: http://pear.php.net/packages.php/