week#14 webprogramming

100
 D G K U M N

Upload: medianamagdalena

Post on 18-Jul-2015

69 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 1/100

Disusun oleh Guson Kuntarto

Universitas Multimedia Nusantara

Page 2: Week#14 WebProgramming

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.

Page 3: Week#14 WebProgramming

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

Page 4: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 4/100

PART I

Page 5: Week#14 WebProgramming

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

Page 6: Week#14 WebProgramming

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

Page 7: Week#14 WebProgramming

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 )

Page 8: Week#14 WebProgramming

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.

Page 9: Week#14 WebProgramming

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

Page 10: Week#14 WebProgramming

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

Page 11: Week#14 WebProgramming

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 

Page 12: Week#14 WebProgramming

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.

Page 13: Week#14 WebProgramming

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.

Page 14: Week#14 WebProgramming

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

Page 15: Week#14 WebProgramming

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

Page 16: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 16/100

Books.xml

Page 17: Week#14 WebProgramming

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

Page 18: Week#14 WebProgramming

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.

Page 19: Week#14 WebProgramming

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.

Page 20: Week#14 WebProgramming

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

Page 21: Week#14 WebProgramming

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.

Page 22: Week#14 WebProgramming

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)

Page 23: Week#14 WebProgramming

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.

Page 24: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 24/100

Preview on webbrowser

Page 25: Week#14 WebProgramming

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.

Page 26: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 26/100

PART II

Page 27: Week#14 WebProgramming

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.

Page 28: Week#14 WebProgramming

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.

Page 29: Week#14 WebProgramming

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

Page 30: Week#14 WebProgramming

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.

Page 31: Week#14 WebProgramming

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>

Page 32: Week#14 WebProgramming

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.

Page 33: Week#14 WebProgramming

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

Page 34: Week#14 WebProgramming

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])

Page 35: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 35/100

Contoh:

Output di webbrowser

Page 36: Week#14 WebProgramming

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)

Page 37: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 37/100

Contoh:

Output di webbrowser

Page 38: Week#14 WebProgramming

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)

Page 39: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 39/100

Contoh:

u pu we rowser

Page 40: Week#14 WebProgramming

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.

Page 41: Week#14 WebProgramming

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

Page 42: Week#14 WebProgramming

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

Page 43: Week#14 WebProgramming

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.

Page 44: Week#14 WebProgramming

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()

Page 45: Week#14 WebProgramming

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)

Page 46: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 46/100

Contoh: preg_match

Page 47: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 47/100

Hasil di browser

Page 48: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 48/100

Contoh: preg_match_all

Page 49: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 49/100

Hasil di browser

Page 50: Week#14 WebProgramming

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 )

Page 51: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 51/100

Contoh: preg_replace

Page 52: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 52/100

Hasil di browser

Page 53: Week#14 WebProgramming

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 )

Page 54: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 54/100

Contoh: preg_grep()

Page 55: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 55/100

Hasil di browser

Page 56: Week#14 WebProgramming

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 )

Page 57: Week#14 WebProgramming

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)

Page 58: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 58/100

Hasil di browser

Page 59: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 59/100

PART III

Page 60: Week#14 WebProgramming

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

Page 61: Week#14 WebProgramming

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.

Page 62: Week#14 WebProgramming

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.

Page 63: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 63/100

PEAR’s package

Page 64: Week#14 WebProgramming

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

Page 65: Week#14 WebProgramming

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

Page 66: Week#14 WebProgramming

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

Page 67: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 67/100

Example: Generating Captcha using PEAR

Page 68: Week#14 WebProgramming

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

Page 69: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 69/100

Example

Page 70: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 70/100

PART IV

DEBUGGING

Page 71: Week#14 WebProgramming

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

Page 72: Week#14 WebProgramming

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

Page 73: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 73/100

level error reporting

73

Page 74: Week#14 WebProgramming

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

Page 75: Week#14 WebProgramming

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

Page 76: Week#14 WebProgramming

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

Page 77: Week#14 WebProgramming

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

Page 78: Week#14 WebProgramming

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

Page 79: Week#14 WebProgramming

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

Page 80: Week#14 WebProgramming

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)

Page 81: Week#14 WebProgramming

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

Page 82: Week#14 WebProgramming

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

Page 83: Week#14 WebProgramming

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

Page 84: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 84/100

Proses instalasi firebug dan firePHP

Page 85: Week#14 WebProgramming

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

Page 86: Week#14 WebProgramming

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.

Page 87: Week#14 WebProgramming

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 

Page 88: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 88/100

Hasil debugging script debug_01.php

Page 89: Week#14 WebProgramming

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

Page 90: Week#14 WebProgramming

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

Page 91: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 91/100

Contoh: debug_02.php

Page 92: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 92/100

Tampilan web browser firefox

Page 93: Week#14 WebProgramming

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

Page 94: Week#14 WebProgramming

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

Page 95: Week#14 WebProgramming

5/16/2018 Week#14 WebProgramming - slidepdf.com

http://slidepdf.com/reader/full/week14-webprogramming 95/100

PART V

Page 96: Week#14 WebProgramming

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.

Page 97: Week#14 WebProgramming

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.

Page 98: Week#14 WebProgramming

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.

Page 99: Week#14 WebProgramming

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

Page 100: Week#14 WebProgramming

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/