Upload
sidneyvalent
View
61
Download
0
Embed Size (px)
DESCRIPTION
Jika mau belajar PHP Programming
Citation preview
5/24/2018 Belajar PHP Pengenalan
1/117
PHP Workshop Intellisys Tripratama - 2006
5/24/2018 Belajar PHP Pengenalan
2/117
Perkenalan
Nama : Emilia Khonato Khouw
Perusahaan : Intellisys
Jabatan : Software Development Trainer
Tugas : Trainer programming, khususnya
.NET dan SQL Server.Apa pengalaman Anda dalam:
HTML
PHP
Object Oriented Programming
Bahasa lainnya
Apa yang Anda harapkan dari course PHP ini?
5/24/2018 Belajar PHP Pengenalan
3/117
Fasilitas
Class hours Building hours
Restrooms
Coffee breaks and Meals Phones
Smoking
Recycling
5/24/2018 Belajar PHP Pengenalan
4/117
Tujuan Workshop ini
Tujuan Workshop ini sangat sederhana: mengajarkanAnda dasar-dasar penggunaan PHP termasuk carainstalasi dan konfigurasi, serta mengapa PHP sangatpopuler dalam pengembangan aplikasi Web saat ini.
Saya tidak akan membuat asumsi apapun tentangpengetahuan Anda dalam PHP, selain bahwa Andamengerti dasar-dasar HTML, dan juga memiliki selerahumor yang baik. Workshop ini akan membahas baik
PHP 4 maupun PHP 5, dengan highlight pada fitur-fiturbaru PHP 5. Secara umum, metode yang digunakanpada PHP 4 dapat dijalankan seluruhnya pada PHP 5.
5/24/2018 Belajar PHP Pengenalan
5/117
Questions?
Feel free to interrupt me!
5/24/2018 Belajar PHP Pengenalan
6/117
Apa itu PHP?
PHP: Hypertext Preprocessor. Lokasi PHP engine terletak pada web server,
biasanya sebagai Apache module, atau pun IIS.
Biasa disebut LAMP (Linux Apache mySQL, PHP)atau WAMP (Windows Apache mySQL PHP)
Adalah bahasa script yang menempel padaHTML.
PHP (dan Apache + mySQL) adalah software
opensource (gratis)! PHP memungkinkan Anda menambahkan logika
pada HTML yang bodoh dan static!
5/24/2018 Belajar PHP Pengenalan
7/117
Mengapa PHP?
Open Source. Tersedia gratis, tidak dipungut biaya sama sekali.
Terbuka (dapat dimodifikasi).
Cross-platform. Bekerja di Linux, UNIX, Windows, dan Mac.
Server-independent.
Dapat bekerja di Apache, MS IIS, dan web server lain.
Mendukung OOP dan procedural programming.
5/24/2018 Belajar PHP Pengenalan
8/117
Ok, tapi apakah PHP bisa diandalkan?
Perusahaan berikut adalah partner ZendTechnology, Inc.
IBM
Oracle
SAP
Sun
Adobe
MySQL Bila cukup baik bagi mereka
5/24/2018 Belajar PHP Pengenalan
9/117
Masalah Konfigurasi
Dengan berbagai alasan, konfigurasi PHP secaramanual dapat memusingkan Anda
Oleh sebab itu tersedia banyak paket software yangdapat membantu Anda melakukan instalasi dan
konfigurasi Apache + PHP + MySQL, baik untukplatform Windows maupun Linux.
Contoh:
[Easy]PHP - http://www.easyphp.org/
XXAMP - http://www.apachefriends.org/en/xampp-windows.html
http://www.easyphp.org/http://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.easyphp.org/5/24/2018 Belajar PHP Pengenalan
10/117
Instalasi PHP dengan IIS (1 of 2)
Tersedia installer CGI, namun biasanya sangat terbatasdan kurang flexible.
Cara manual: Copy source PHP ke C:\PHP
Copy php5ts.dll atau php4ts.dll ke C:\Windows
Copy php.ini-dist ke C:\Windows dan rename menjadi php.ini
Ubah beberapa baris berikut pada php.ini: doc_root = "c:\inetpub\wwwroot"
extension_dir = "c:\php\ext"
extension=php_mysql.dll
Copy libmysql.dll ke C:\Windows (optional, lakukan bilaterjadi masalah pada saat loading php_mysql.dll di IIS)
5/24/2018 Belajar PHP Pengenalan
11/117
Instalasi PHP dengan IIS (2 of 2)
Buka Internet Information Service.
Expand Web Sites sampai menemukan
Default Web Site, klik kanan,
pilih Properties.
Pada tab ISAPI Filter, pilih Add:
Pada tab Home Directory,
pilih Configuration, pilih Add:
Pada tab Documents, pilih Add:
5/24/2018 Belajar PHP Pengenalan
12/117
Instalasi MySQL
Instalasi dengan installer dapat dilakukan dengan
mudah, cukup download installer dari official websiteMySQL.
Setelah selesai instalasi, Configuration Wizard otomatisakan dijalankan. Tidak perlu melakukan perubahanpada pilihan konfigurasi yang ada. Cukup tambahkanpassword untuk root yang dapat Anda ingat. Janganmelupakan password root ini, karena Anda akankehilangan akses ke MySQL apabila Andamelupakannya.
Nice to have: mysql-administrator (Free) PHPMyAdmin (Free)
5/24/2018 Belajar PHP Pengenalan
13/117
Text Editor
Walaupun sebenarnya Anda dapat melakukan codingPHP hanya dengan menggunakan Notepad, namuntidak ada salahnya Anda mencoba beberapa TextEditor berikut untuk memudahkan hidup Anda bersamaPHP:
ConTEXT (Free)
PHPEdit (Free)
RapidPHP (Not Free)
EditPlus (Not Free)
Macromedia Dreamweaver (Not Free)
Microsoft FrontPage (Not Free)
5/24/2018 Belajar PHP Pengenalan
14/117
Mari kita mulai
PHP menempel pada HTML
PHP script dimulai dengan
File HTML yang ditempeli PHP diakhiri dengan
.php (bukan .html) PHP code diproses oleh web server; hasilnya
berupa HTML. HTML asli beserta HTML yangdibuat oleh PHP kemudian dikombinasikan dan
dikirim oleh web server ke browser user.
5/24/2018 Belajar PHP Pengenalan
15/117
Lab: Installing PHP
Install PHP & MySQL. Konfigurasi IIS supaya semua bekerja dengan
baik.
Install Text Editor favorit Anda.
5/24/2018 Belajar PHP Pengenalan
16/117
Lab: PHP pertama Anda
Buatlah PHP pertama Anda. Buka text editor favorit Anda, dan ketiklah code berikut.
Exercise 1
This is the plain HTML text
5/24/2018 Belajar PHP Pengenalan
17/117
Statement dan Akhir Baris
Statement dalam PHP adalah baris code yangdapat dieksekusi, yang biasanya berisi fungsidan argumen.
Perhatikan bahwa statement PHP yang terdapat
di lab sebelumnya () diakhiri dengan titik koma(;).
Semua statement dalam PHP diakhiri dengan ;
5/24/2018 Belajar PHP Pengenalan
18/117
Output ke Browser
Beberapa cara: print(); adalah fungsi yang akan mencetak isi dari
argumen ke dalam layar.
Ex.print("An argument isn't justcontradiction.");
Ex.print("
It can be.
");echo bukanlah sebuah fungsi, melainkan berupaconstruct, jadi echo tidak membutuhkan tandakurung ().
Ex. echo "
No it can't. An argument is aconnected series of statements intended toestablish a proposition.
";5/24/2018 Belajar PHP Pengenalan
19/117
Lab: Output ke browser
Code:
PHP Lecture Ex. 1
This is the plain HTML text
Final Output:
PHP Lecture Ex. 1
This is the plain HTML text
Today is May 6, 2005
5/24/2018 Belajar PHP Pengenalan
20/117
Memberikan komentar pada Code
Komentar berupa satu baris diawali dengan//
Komentar berupa blok teks diawali dengan /*dan diakhiri dengan */
Contoh:
// This is a single line comment
/* This text block is a comment
which includes this line.And this line too! */
5/24/2018 Belajar PHP Pengenalan
21/117
Variable
Apakah variable itu? Penampung data. Dapat berisi satu atau lebih karakter (baik huruf maupun angka).
Variable harus diawali dengan tanda $
Dapat dimulai dengan huruf atau underscore ("_") tapi tidakdapat dimulai dengan angka.
Nama variable tidak boleh mengandung spasi dan bersifat casesensitive!
Variable memiliki scope lokal (akan dibahas pada topikselanjutnya) Hanya dapat diakses pada tingkat di mana mereka dibuat.
Variable di dalam fungsi tidak tersedia di luar fungsi.
Variable yang dibuat diluar fungsi tidak tersedia di dalam fungsi.
Variable yang dibuat dalam fungsi tidak tersedia di dalam fungsi lainnya.
5/24/2018 Belajar PHP Pengenalan
22/117
PHP Predefined Variable
PHP memiliki sejumlah variable yang telah tersedia
(predefined variables).Variable semacam ini selalu berupa huruf besar. $GLOBALS berisi nama dan nilai dari semua variable
semacam ini.
Buatlah sebuah file PHP bernama predefined.php danisi dengan:
Upload ke server dan lihat hasilnya di browser.
5/24/2018 Belajar PHP Pengenalan
23/117
Output dari print_r ($GLOBALS);
Array (
[LC_PAPER] => en_US[LESSKEY] => /etc/.less[LC_ADDRESS] => en_US[KDE_MULTIHEAD] => false[HOSTNAME] => cob.uccs.edu[LC_MONETARY] => en_US[SHELL] => /bin/bash[XDM_MANAGED] =>/var/run/xdmctl/xdmctl-:0,rsvd
[HISTSIZE] => 1000[LC_SOURCED] => 1
These "keys" can be accessed one at a
time using the following command:
echo $GLOBALS[HOSTNAME];
where "HOSTNAME" is the key name
you want to access.
5/24/2018 Belajar PHP Pengenalan
24/117
Tipe Variable: Numeric
Numeric
Integer dan floating-point (double precision)
Integer berupa bilangan bulat; dapat positif ataupunnegatif, tapi bukan pecahan.
Floating point numbers dapat mengekspresikan nilaipecahan (seperti desimal)
Tidak seperti bahasa lainnya, Anda tidak perlumelakukan type castterhadap variable numeric.
5/24/2018 Belajar PHP Pengenalan
25/117
Tipe Variable: String
String adalah variable yang berisi karakter (segala jenis
kombinasi). Penugasan variable dilakukan dengan tanda kutip dua
atau kutip satu.
$name = 'Joe Blow';
$today = "6.22.05";
$year = "2005";
Tanda kutip di dalam kutip harus diberi backslash:
$greeting = "We'd like to say \"Welcome\".";
bl ( )
5/24/2018 Belajar PHP Pengenalan
26/117
Tipe Variable: String (cont.)
Tanda kutip dua dan kutip satu memiliki arti yang berbeda.
Variable yang dibungkus kutip dua akan ditulis sebagai nilaivariable tersebut; Variable dalam kutip satu tidak.
PHP juga memungkinkan Anda untuk menambahkan stringdengan operator string concatenation, yang dilambangkandengan titik (.)
L b N i
5/24/2018 Belajar PHP Pengenalan
27/117
Lab: Numeric
Buat script dengan nama numbers.php, upload, dan lihat:
Perhatikan bahwa $totaltelah di-cast ke float secara otomatiskarena nilainya 16.8
L b St i
5/24/2018 Belajar PHP Pengenalan
28/117
Lab: String
F
5/24/2018 Belajar PHP Pengenalan
29/117
Form
Kita akan menggunakan form sebagai user interface
utama. Sejak dulu, form selalu merupakan cara yang tercepat
dan terbaik untuk menambahkan interaksi pada Website Anda. Form memungkinkan Anda untuk
menanyakan customer tentang pendapat merekaterhadap produk ataupun Web site Anda.
Ketika user menekan tombol submit, data dalam formdikirim ke URL yang terdapat pada atribut action:
F M th d
5/24/2018 Belajar PHP Pengenalan
30/117
Form Method
Atribut methodmerupakan salah satu hal yangharus benar-benar dipertimbangkan. Ada duamethod yang dapat kita gunakan: GET danPOST.
GET akan mengirimkan data dalam form keserver dalam bentuk URL.
POST akan mengirimkan data dalam form keserver secara "invisible"
L b F GET M th d
5/24/2018 Belajar PHP Pengenalan
31/117
Lab: Form GET Method
Form using GET
L b Fo m POST Method
5/24/2018 Belajar PHP Pengenalan
32/117
Lab: Form POST Method
Form using POST
Globals
5/24/2018 Belajar PHP Pengenalan
33/117
Globals
Setting register_globals pada php.ini secara default bernilai off,
oleh sebab itu pengambilan data harus melalui $_POST ataupun$_GET berdasarkan form method: $_POST['email'];atau$_GET['email'];
Bila register_globals di set on, maka variable yang dikirimkanoleh form dapat dibaca cukup dengan nama variable tersebut. $email;
Server lokal di Indonesia kebanyakan memiliki settingregister_globals = On, jadi kita dapat memanfaatkankemudahan dalam mengambil variable form.
Salah satu faktor yang harus dipertimbangkan, metode inimengandung resiko sekuriti karena user dapat mengenali namavariable dengan mudah lewat HTML source code pada form.
PHP Operators
5/24/2018 Belajar PHP Pengenalan
34/117
PHP Operators
Operator Description Example Result
+ Addition x=2, x+2 4
- Subtraction x=2, 5-x 3
* Multiplication x=4, x*5 20
/ Division 15/55/2
32.5
% Modulus (division remainder) 5%210%810%2
120
++ Increment x=5, x++ x=6
-- Decrement x=5, x-- x=4
PHP Comparison & Logic
5/24/2018 Belajar PHP Pengenalan
35/117
PHP Comparison & Logic
Operator Description Example Result
greater-than 9 > 10 false
= 10 false
== equality operator 9 == 9, "a" = "a" true
!= or not-equal-to 9 != 10, "a" "b" true
=== test both for equality and type '10' == 10'10' === 10
truefalse
&& logical AND returns true if allconditions are true
true && truetrue && false
truefalse
|| logical OR returns true if anycondition is true
true || truetrue || false
truetrue
! logical NOT returns true if thecondition is false and vice-versa
!true!false
falsetrue
PHP Conditional Statements IF
5/24/2018 Belajar PHP Pengenalan
36/117
PHP Conditional Statements - IF
if (first condition is true) {
do this!}
elseif (second condition is true) {
do this!
}elseif (third condition is true) {
do this!
}
... and so on ...
else {
do this!
}
PHP Conditional Statements Switch
5/24/2018 Belajar PHP Pengenalan
37/117
PHP Conditional Statements - Switch
switch (decision-variable) {
case first condition is true:
do this!
case second condition is true:
do this!
... and so on...
}
Beberapa keywords: break: digunakan untuk berhenti dan keluar dari switch(), dan kemudian
berpindah ke baris selanjutnya setelah switch(). default: digunakan untuk mengeksekusi kumpulan statement apabila
syarat switch tidak terpenuhi (seperti "case else").
Kesalahan yang biasa dibuat oleh newbie (pemula) adalahmelupakan break pada akhir setiap block case(). Ingatlah bahwabisa Anda melupakan break, PHP akan terus mengeksekusi codepada block case() selanjutnya.
Lab: IF
5/24/2018 Belajar PHP Pengenalan
38/117
Lab: IF
Today's special is:
Lab: Switch
5/24/2018 Belajar PHP Pengenalan
39/117
Lab: Switch
Today's special is:
PHP Looping Statements - While
5/24/2018 Belajar PHP Pengenalan
40/117
PHP Looping Statements - While
while (condition is true) {
do this!
}
Statement akan terus dieksekusi selama kondisiyang dievaluasi bernilai true. Pengecekankondisi dimulai sejak pertama kali blok
dieksekusi.
PHP Looping Statements Do While
5/24/2018 Belajar PHP Pengenalan
41/117
PHP Looping Statements Do While
do {
do this!
} while (condition is true)
Statement akan terus dieksekusi selama kondisiyang dievaluasi bernilai true. Pengecekankondisi dimulai setelah satu kali blok dieksekusi.
Jadi loop model ini akan dieksekusi minimum1x.
PHP Looping Statements - For
5/24/2018 Belajar PHP Pengenalan
42/117
PHP Looping Statements For
for (initial value of counter;
condition; new value of counter){
do this!
} Bila Anda sudah mengetahui berapa kali jumlah eksekusi yang
Anda inginkan, gunakanlah For. "counter" adalah variable PHP yang di-inisialisasi dengan nilai
numerik, dan mencatat berapa kali loop telah dieksekusi.Sebelum tiap eksekusi, "condition" akan diuji. Bila hasilnya true,
maka loop akan dieksekusi sekali lagi dan counter akanbertambah; Bila hasilnya false, loop akan berhenti dan barisberikut setelah blok for() akan dieksekusi.
Lab: While
5/24/2018 Belajar PHP Pengenalan
43/117
Lab: While
Lab: Do While
5/24/2018 Belajar PHP Pengenalan
44/117
Lab: Do While
Lab: For
5/24/2018 Belajar PHP Pengenalan
45/117
Lab: For
Lab: Conditional & Looping
5/24/2018 Belajar PHP Pengenalan
46/117
Lab: Conditional & Looping
Kombinasikan semua yang telah Anda pelajari
untuk membuat script:
Variable: firstname, lastname, favnum (favoritenumber) antara 1-20
Bila favorite number lebih dari 20 maka cetak "Myfavorite number is greater than 20";
Cetak semua angka dari 0 sampai favorite numberAnda.
Apa itu Array?
5/24/2018 Belajar PHP Pengenalan
47/117
Apa itu Array?
Array adalah variable kompleks yang memungkinkan
Anda untuk menyimpan beberapa value sekaligus kedalam satu variable. (yang sangat berguna bila Andaingin menyimpan dan menampilkan informasi yangsaling berhubungan).
Dua macam: Indexed dan Associative
Indexed keys dimulai dari 0 dan seterusnya.Associative arrays menggunakan string sebagai keys.
$colors = array("red", "green", "blue", "purple", "pink");
Indexed Keys
5/24/2018 Belajar PHP Pengenalan
48/117
Indexed Keys
Karena array memiliki keys yang spesifik, kita dapatmenggunakan index untuk mengakses nilainya dengan []
// Single colors will just print
$color = "red";print $color;
// Arrays need to be indexed using []'s. Which colors will print?$colors = array("red", "green", "blue", "purple", "pink");print $colors[0];
print $colors[2];
Associative Arrays
5/24/2018 Belajar PHP Pengenalan
49/117
Associative Arrays
Bagaimana bila kita ingin membuat keys kita sendiri?
Caranya:key => value
$grades = array("Homer" => 20, "Marge" => 80,
"Lisa" => 100, "Bart" => 0, "Maggie" => 50);
print $grades["Homer"];print $grades["Bart"];
Looping dalam Arrays
5/24/2018 Belajar PHP Pengenalan
50/117
oop g da a ays
Daripada mengakses value satu per satu, mengapa tidaksekaligus mengakses semua value yang ada dengan looping?
foreach($array as $key=>$value);
$grades = array("Homer" => 20, "Marge" => 80, "Lisa" =>100, "Bart" =>0, "Maggie" => 50);
// Prints out all the names and gradesforeach($grades as $key => $value){
print $key . " has a score of " . $value . "
";}
// Same thing as above, notice we can call it whatever we want
foreach($grades as $name => $grade){print $name . " has a
score of " . $grade . "
";
}
Array Push dan Pull
5/24/2018 Belajar PHP Pengenalan
51/117
y
Anda dapat menambahkan elemen terakhir
array dengan fungsi array_push() Dan Anda dapat membuang elemen terakhir
array dengan fungsi array_pop()yangmemiliki nama cukup aneh..
Bila Anda ingin membuang elemen di awal array(seperti pop), gunakan fungsi array_shift()
Dan fungsi array_unshift()akan menangani
penambahan elemen di awal array.
Fungsi Array lainnya
5/24/2018 Belajar PHP Pengenalan
52/117
g y y
Fungsi explode()memisahkan string menjadi elemen-elemenarray berdasarkan pembatas (delimiter) yang didefinisikan user.
Sebaliknya, Anda dapat menggunakan fungsi implode(), yangmenggabungkan semua elemen array ke dalam sebuah stringdengan pembatas (delimiter) yang didefinisikan user.
Fungsi sort()dan rsort()dapat digunakan untuk mengurutkanisi array secara alfabet ataupun numerik, secara ascending
maupun descending. Fungsi sizeof()mengembalikan ukuran (baca: jumlah elemen
dalam) array. Bila Anda menggunakan associative array, fungsi array_keys()
dan array_values() akan sangat berguna bagi Anda untukmendapatkan daftar seluruh keys dan values yang ada di dalamarray.
Lab: Array (1 of 2)
5/24/2018 Belajar PHP Pengenalan
53/117
y ( )
Buatlah lima orang siswa dengan nilai antara 0
sampai 100. Tampilkan siswa yang memiliki nilailebih dari 80.
Hints:$array = array("key"=>5);foreach($array as $key => $value){
if($something > 4){ }
}
Lab: Array (2 of 2)
5/24/2018 Belajar PHP Pengenalan
54/117
y ( )
Modifikasi lab sebelumnya untuk
mengimplementasikan fungsi berikut: array_push() & array_pop()
array_shift() & array_unshift()
sort() & rsort()
sizeof()
array_keys() & array_values()
Buatlah array baru untuk mengeksplorasi fungsi
berikut: explode()
implode()
File Operations
5/24/2018 Belajar PHP Pengenalan
55/117
p
Di bagian ini, kita akan mempelajari operasi utama pada text fileexternal, yaitu membuka (shock!), membaca isi file (shriek!),dan (horror of horrors!) menulis data ke dalamnya.
Saya akan mulai dengan operasi yang paling sederhana:membuka file dan membaca isinya. Mari berasumsi bahwa Andamemiliki text file bernama baca.txt pada folder php Anda, dan
saat ini Anda ingin membaca isi file tersebut ke dalam scriptPHP.
Untuk itu, ada tiga langkah yang harus dikerjakan: Buka file, dan berikan sebuah file handle.
Lewat handle tersebut, ambil isi file ke dalam variable PHP. Tutup file.
Mengecek file - file_exists()
5/24/2018 Belajar PHP Pengenalan
56/117
g ()
Salah satu fungsi yang paling sering digunakan untuk mengecek
file adalah file_exists(). file_exists() akan mengembalikan true apabila file yang
dimaksud ditemukan.
Membaca Text Filefread()
5/24/2018 Belajar PHP Pengenalan
57/117
5/24/2018 Belajar PHP Pengenalan
58/117
Cara lain untuk membaca data dari file adalah dengan fungsifile() yang sangat keren. Fungsi file() membaca seluruh isi fileke dalam array (ingat makhluk yang bernama array?) cukupdengan satu baris code. Masing-masing elemen array berisi satubaris dari isi file. Untuk menampilkan seluruh isi file, lakukanloop foreach() untuk tiap elemen array dan cetak elementersebut.
Membaca Text Filefile_get_contents()
5/24/2018 Belajar PHP Pengenalan
59/117
Tidak butuh data dalam bentuk array? Coba lah fungsifile_get_contents(), perintah baru di PHP 4.3.0 dan PHP 5.0,yang membaca seluruh isi file ke dalam sebuah string.
Terlalu mudah? Saya biasa menggunakan fungsi ini dibandingharus menulis tiga baris code fopen(), fread(), dan fclose().Kemalasan mengalahkan segalanya
Menulis Text Filefwrite()
5/24/2018 Belajar PHP Pengenalan
60/117
5/24/2018 Belajar PHP Pengenalan
61/117
Bila saya sudah memanjakan Anda dengan menunjukkan fungsiyang membaca dengan cukup satu baris, maka fungsifile_put_contents(), baru di PHP 5.0, dapat mengambil stringdan menuliskannya ke file dengan satu baris code. Attribut
FILE_APPEND bersifat optional. Ingatlah bahwa direktori dan file yang akan ditulis dari PHP
harus sudah ada sebelum penulisan. Melupakan langkah iniseringkali menyebabkan error pada script.
Import filesinclude() & require()
5/24/2018 Belajar PHP Pengenalan
62/117
Perbedaan antara include()dan require(): require()
akan mengembalikan fatal error apabila file tidakditemukan dan proses selanjutnya akan terhenti.include() hanya akan mengembalikan warning dankemudian terus menjalankan proses script selanjutnya.
PHP juga memiliki fungsi require_once()daninclude_once(), yang menjamin bahwa file yangtelah dibaca tidak dibaca sekali lagi. Ini sangatberguna dalam situasi di mana Anda inginmenghilangkan pembacaan file yang sama berulang-
ulang, entah untuk alasan performance, atau punmenghindari bentroknya nilai variable.
Lab: File Operations
5/24/2018 Belajar PHP Pengenalan
63/117
Buatlah sebuah text file dummy untuk
menampung beberapa baris text. Buatlah script untuk membaca text file tersebut
dalam bentuk array dan tampilkan hasilnya per
baris supaya format tetap seperti aslinya. Buatlah form dan script untuk menulis isi ke text
file tersebut:
Write: hapus isi text sebelumnya
Append: tambahkan isi text ke dalam file
Function
5/24/2018 Belajar PHP Pengenalan
64/117
Function adalah sekumpulan statement yang dapat melakukantugas tertentu, dan dapat dipanggil, atau pun dieksekusi, daribagian program Anda.
Ada tiga alasan mengapa function akan memudahkan hidupAnda: user-defined function memungkinkan Anda untuk memisahkan code ke
dalam sub bagian yang mudah diidentifikasiyang berarti lebih mudah
dimengerti dan di-debug. Function membuat program Anda bersifat modular, yang berarti Anda
dapat menuliskan sepotong code sekali saja dan menggunakan potongantersebut berkali-kali dalam program Anda.
Function menyederhanakan proses update ataupun perubahan, karenaperubahan cukup diimplementasikan pada satu tempat (yaitu pada fungsiyang bersangkutan). Oleh sebab itu, function akan menghemat waktudan uang!
Functionmengembalikan nilai
5/24/2018 Belajar PHP Pengenalan
65/117
Ada dua macam procedure, yaitu sub (tidak
mengembalikan nilai), dan function (mengembalikannilai). Namun PHP tidak membedakan keduanya. BilaAnda ingin mengembalikan nilai kepada pemanggilfunction, gunakanlah keyword return.
Functiontidak mengembalikan nilai
5/24/2018 Belajar PHP Pengenalan
66/117
FunctionDefault Value
5/24/2018 Belajar PHP Pengenalan
67/117
Dengan default value, kita dapat melakukan
pemanggilan function walaupun parameterfunction tidak lengkap.
Shrinking Argument List
5/24/2018 Belajar PHP Pengenalan
68/117
Dengan built-in function berikut, Anda dapat mengekstraksemua argumen yang dilemparkan dari pemanggil function kefunction tersebut ke dalam bentuk array dengan mudah.
Lab: Functions
5/24/2018 Belajar PHP Pengenalan
69/117
Buatlah sebuah fungsi untuk mengembalikan
nilai penjumlahan lima parameter dengandefault value 0 supaya bila user tidakmemberikan value, perhitungan tetap dapat
dilakukan. Tambahkan func_get_args() untuk
menampilkan seluruh argumen yangdilemparkan kepada function tersebut.
Variable Scope
5/24/2018 Belajar PHP Pengenalan
70/117
Variable Reference Type
5/24/2018 Belajar PHP Pengenalan
71/117
Apa perbedaan "passing by reference" dan "passing by value"? Sejauh ini,semua contoh yang telah dibahas adalah jenis "passing by value", tapi PHP
juga memungkinkan Anda untuk menggunakan "passing by reference".
Lab: Variable Scope
5/24/2018 Belajar PHP Pengenalan
72/117
Buatlah contoh fungsi yang mengakses variable
local. Buatlah contoh fungsi yang mengakses variable
global dengan memanfaatkan keyword global.
Buatlah contoh fungsi yang melakukan passingparameter by reference.
Object Oriented Programming
5/24/2018 Belajar PHP Pengenalan
73/117
Dalam PHP, sebuah class adalah sekumpulan statement yang melakukantugas tertentu. Sebuah class umumnya berisi kumpulan variable dan fungsi,
dan berperanan sebagai template untuk instance dari class tersebut.
Instance dari class disebut sebagai object. Setiap object memilikikarakteristik masing-masing, yaitu property (variable) dan method (function).
Setelah class didefinisikan, Anda dapat membuat sebanyak mungkin instancedari class yang Anda miliki. Masing-masing instance akan berupa object yangberdiri sendiri, dengan property dan method milik mereka sendiri. Olehkarena itu, object-object tersebut dapat digunakan tanpa harus bergantungpada object lainnya.
Class juga membantu menjaga coding Anda tetap modularAnda dapatmendefinisikan class dalam file yang terpisah, dan kemudian melakukan
include file tersebut pada saat Anda ingin menggunakannyadanmenyederhanakan perubahan coding, karena Anda hanya perlu mengeditsatu file untuk mengubah fungsi atau menambahkan fungsi baru kedalamsemua object yang ada.
Lab: Class (PHP5)
5/24/2018 Belajar PHP Pengenalan
74/117
Lab: Class (PHP4)
5/24/2018 Belajar PHP Pengenalan
75/117
Lab: Object (1 of 2)
5/24/2018 Belajar PHP Pengenalan
76/117
5/24/2018 Belajar PHP Pengenalan
77/117
// and a baby to complete the family$baby = new Bear;$baby->name = "Baby Bear";
$baby->age = 1;$baby->sex = "male";$baby->colour = "black";$baby->weight = 180;
// a nice evening in the Bear family// daddy kills prey and brings it home
$daddy->kill();
// mommy eats it$mommy->eat();// and so does baby$baby->eat();
// mommy sleeps$mommy->sleep();
// and so does daddy$daddy->sleep();// baby eats some more
$baby->eat();
?>
Keyword: This
5/24/2018 Belajar PHP Pengenalan
78/117
Bila Anda ingin mengakses fungsi atau variable dalam class, tersedia keyword $thispada PHP4 maupun PHP5.
Contoh:
Dalam kasus ini, $this mengindikasikan bahwa variable yang akan dimodifikasi beradadalam class, atau bila diterjemahkan: tambahkan argumen yang disediakan untukeat() ke dalam variable $weight dalam object ini. $this menyediakan cara yangmudah untuk mengakses variable dan fungsi yang local dalam class ini.
Lab: This
5/24/2018 Belajar PHP Pengenalan
79/117
Constructor
5/24/2018 Belajar PHP Pengenalan
80/117
Bila Anda ingin mengeksekusi suatu fungsi pada setiap
kali pembuatan object baru dari suatu class, Andadapat menggunakan constructor yang dalam PHP5berupa fungsi__construct().
Dalam PHP4, constructor berupa fungsi yang memiliki
nama yang sama dengan nama class tersebut. Misalnya, Anda ingin semua beruang yang baru lahir
otomatis berwarna coklat dan memiliki berat badan100, maka Anda dapat menggunakan contructor
seperti berikut:
Lab: Constructor (PHP5)? h
5/24/2018 Belajar PHP Pengenalan
81/117
Lab: Constructor (PHP4)? h
5/24/2018 Belajar PHP Pengenalan
82/117
Lab: Constructor (Usage)
5/24/2018 Belajar PHP Pengenalan
83/117
Hasilnya:
Baby Bear is brown and weighs 100 units at birth
Destructor
5/24/2018 Belajar PHP Pengenalan
84/117
Seperti halnya constructor, kita mengenal
adanya destructor. Destructor adalah metode yang akan dieksekusi
pada saat object dihancurkan dari memory, dan
biasanya berhubungan dengan tugaspembersihanseperti menutup koneksidatabase atau file, menghancurkan session, danlain-lain.
Destructor hanya tersedia di PHP5, dan harusdiberi nama__destruct().
Lab: Destructor (PHP5)
5/24/2018 Belajar PHP Pengenalan
85/117
Lab: Destructor (Usage)
5/24/2018 Belajar PHP Pengenalan
86/117
Hasilnya:Daddy Bear is killing prey...
Daddy Bear is eating 2000 units of food...
Daddy Bear is running...
Daddy Bear is eating 100 units of food...Daddy Bear is dead. He was 10 years old and 2200 units heavy. Rest
in peace!
Public, Private, Protected
PHP 5 memperkenalkan 3 tingkat visibility: public private dan
5/24/2018 Belajar PHP Pengenalan
87/117
PHP 5 memperkenalkan 3 tingkat visibility: public, privatedanprotected.
PHP 4 tidak mendukung visibility, maka seluruh property danmethod dalam class PHP4 bersifat public.
Secara default, property dan method dalam class bersifatpublic; ini memungkinkan script pemanggil untuk masuk kedalam instance object dan memanipulasi secara langsung.
Privateberarti property atau method tersebut tidak dapatdimanipulasi ataupun dilihat dari luar class. Ini berguna untukmelindungi proses yang ada dalam class dari manipulasi yangtidak terpantau.
Protectedberarti property atau method tersebut tidak dapatdimanipulasi ataupun dilihat selain oleh class tersebut danturunannya (akan dibahas lebih lanjut).
Lab: Private
5/24/2018 Belajar PHP Pengenalan
88/117
p p// PHP 5class Bear {
public $name;public $age;public $weight;private $_lastUnitsConsumed;
public function __construct() {$this->age = 0;
$this->weight = 100;
$this->_lastUnitsConsumed = 0;}public function eat($units) {
echo $this->name." is eating ".$units." units of food...\n";$this->weight += $units;
$this->_lastUnitsConsumed = $units;}public function getLastMeal() {
echo "Units consumed in last meal were ".$this->_lastUnitsConsumed."\n";}
}
?>
Lab: Private (Usage)
5/24/2018 Belajar PHP Pengenalan
89/117
Inheritance atau Extends
Dengan pen nan seb ah class (e tends) kita
5/24/2018 Belajar PHP Pengenalan
90/117
Dengan penurunan sebuah class (extends), kita
dapat membuat class baru berdasarkan classyang sudah ada, dan menambahkan fungsi-fungsi baru ke dalam class baru tersebut tanpamempengaruhi class yang sudah ada.
Class yang sudah ada dapat dianggap sebagaiorang tua (parent), dan class hasil extendsdisebut juga anak (child).
Hasil dari extends berupa class, bukan sebuahobject.
Lab: Extends (PHP5)
5/24/2018 Belajar PHP Pengenalan
91/117
class Bear {public $name;public $weight;
public $age;public $sex;public $colour;
public function __construct() {$this->age = 0;$this->weight = 100;
}public function eat($units) {
echo $this->name." is eating ".$units."units of food...\n";
$this->weight += $units;}
public function run() {echo $this->name." is running...\n";
}public function kill() {
echo $this->name." is killingprey...\n";
}
public function sleep() {echo $this->name." is sleeping...\n";}
}
// extended class definition
class PolarBear extends Bear {
public function __construct() {
parent::__construct();
$this->colour = "white";
$this->weight = 600;
}
public function swim() {
echo $this->name." is swimming..";
}
}
?>
Lab: Extends (PHP4)
5/24/2018 Belajar PHP Pengenalan
92/117
// PHP 4
// extended class definitionclass PolarBear extends Bear {
// constructor
function PolarBear() {
parent::Bear();
$this->colour = "white";
$this->weight = 600;}
// define methods
function swim() {
echo $this->name." is swimming...\n";
}
}
?>
Lab: Extends (Usage)
5/24/2018 Belajar PHP Pengenalan
93/117
// create instance of Bear()
$tom = new Bear;$tom->name = "Tommy Bear";
// create instance of PolarBear()
$bob = new PolarBear;
$bob->name = "Bobby Bear";
// $bob can use all the methods of Bear() and PolarBear()$bob->run();
$bob->kill();
$bob->swim();
// $tom can use all the methods of Bear() but not PolarBear()
$tom->run();
$tom->kill();$tom->swim();
?>
Menghindari inheritance?
Khusus di PHP5, kita dapat mengunci class supaya tidak dapat
5/24/2018 Belajar PHP Pengenalan
94/117
, p g p y pdi extends, yaitu dengan keyword final.
Informasi tentang class
get class(): nama class dari sebuah object
5/24/2018 Belajar PHP Pengenalan
95/117
get_class(): nama class dari sebuah object
get_parent_class(): nama parent class darisebuah nama class/object
get_class_vars(): seluruh property atauvariable yang dimiliki oleh class
get_class_methods(): seluruh method ataufunction yang dimiliki oleh class
get_object_vars(): seluruh property beserta
nilainya dari object tertentu. Catatan: tidak ada get_object_methods()
Lab: Informasi Class
5/24/2018 Belajar PHP Pengenalan
96/117
// PHP 5
class Bear {
public $name;public $weight;
public function __construct() {
}
public function eat() {
}
public function run() {
}public function sleep() {
}
}
// derived class
class GrizzlyBear extends Bear {
public function kill() {}
}
?>
Lab: Informasi Class (Usage)
5/24/2018 Belajar PHP Pengenalan
97/117
$joe = new GrizzlyBear;$joe->name = "Joe Bear";
$joe->weight = 1000;echo "Class: " . get_class($joe);echo "Parent class: " . get_parent_class(get_class($joe));
// get class name$className = get_class($joe);
// get class propertiesecho "Class properties:\n";print_r(get_class_vars($className));
// get class methods
echo "\nClass methods:\n";print_r(get_class_methods($className));
// get this instance's properties
echo "\nInstance properties:\n";print_r(get_object_vars($joe));
?>
Koneksi ke Database MySQL Buatlah database berikut:
5/24/2018 Belajar PHP Pengenalan
98/117
CREATE DATABASE testdb;CREATE TABLE `symbols` (
`id` int(11) NOT NULL auto_increment,
`country` varchar(255) NOT NULL default '',
`animal` varchar(255) NOT NULL default '',PRIMARY KEY (`id`)
) TYPE=MyISAM;
INSERT INTO `symbols` VALUES (1, 'America', 'eagle');
INSERT INTO `symbols` VALUES (2, 'China', 'dragon');INSERT INTO `symbols` VALUES (3, 'England', 'lion');
INSERT INTO `symbols` VALUES (4, 'India', 'tiger');
INSERT INTO `symbols` VALUES (5, 'Australia', 'kangaroo');INSERT INTO `symbols` VALUES (6, 'Norway', 'elk');
Syntax untuk akses MySQL open connection
$connection = mysql connect($host $user $pass) or die ("Unable to connect!");
5/24/2018 Belajar PHP Pengenalan
99/117
$connection = mysql_connect($host, $user, $pass) or die ( Unable to connect! ); select database
mysql_select_db($db) or die ("Unable to select database!"); create query
$query = "SELECT * FROM symbols"; execute query
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); see if any rows were returned
if (mysql_num_rows($result) > 0)
fetch rows (ada beberapa metode, akan dijelaskan di slide berikutnya) while($row = mysql_fetch_row($result)) while(list($id, $country, $animal) = mysql_fetch_row($result)) while($row = mysql_fetch_assoc($result))
while($row = mysql_fetch_object($result)) free result set memory
mysql_free_result($result); close connection
mysql_close($connection); check number of affected rows
mysql_affected_rows()
Lab 1: mysql_fetch_row()
5/24/2018 Belajar PHP Pengenalan
100/117
// set database server access variables:
$host = "localhost";$user = "test";
$pass = "test";
$db = "testdb";
// open connection
$connection = mysql_connect($host, $user, $pass) or die ("Unable to
connect!");
// select database
mysql_select_db($db) or die ("Unable to select database!");
// create query
$query = "SELECT * FROM symbols";
// execute query
$result = mysql_query($query) or die ("Error in query: $query.".mysql_error());
// see if any rows were returned
if (mysql num rows($result) > 0) {
5/24/2018 Belajar PHP Pengenalan
101/117
if (mysql_num_rows($result) > 0) {
echo "";
while($row = mysql_fetch_row($result)) {echo "";
echo "".$row[0]."";echo "".$row[1]."";echo "".$row[2]."";echo "";
}
echo "";}
else {
echo "No rows found!";
}
mysql_free_result($result);
mysql_close($connection);
?>
Lab 2: list() dan mysql_fetch_row()if (mysql_num_rows($result) > 0) {
// yes
5/24/2018 Belajar PHP Pengenalan
102/117
// yes
// print them one after another
echo "";while(list($id, $country, $animal) = mysql_fetch_row($result))
echo "";
echo "$id";echo "$country";echo "$animal";
echo "";}
echo "";}
else {
// no
// print status messageecho "No rows found!";
}
Lab 3: mysql_fetch_assoc()if (mysql_num_rows($result) > 0) {
// yes
5/24/2018 Belajar PHP Pengenalan
103/117
// yes
// print them one after another
echo "";while($row = mysql_fetch_assoc($result)) {
echo "";
echo "".$row['id']."";echo "".$row['country']."";echo "".$row['animal']."";
echo "";}
echo "";}
else {
// no
// print status messageecho "No rows found!";
}
Lab 4: mysql_fetch_object()if (mysql_num_rows($result) > 0) {
// yes
5/24/2018 Belajar PHP Pengenalan
104/117
// yes
// print them one after another
echo "";while($row = mysql_fetch_object($result)) {
echo "";
echo "".$row->id."";echo "".$row->country."";echo "".$row->animal."";
echo "";}
echo "";}
else {
// no
// print status messageecho "No rows found!";
}
Lab 5: Insert Data
5/24/2018 Belajar PHP Pengenalan
105/117
5/24/2018 Belajar PHP Pengenalan
106/117
// escape input values for greater safety
$country = empty($_POST['country']) ? die ("ERROR: Enter a country") :mysql_escape_string($_POST['country']);
$animal = empty($_POST['animal']) ? die ("ERROR: Enter an animal") :mysql_escape_string($_POST['animal']);
$connection = mysql_connect($host, $user, $pass) or die ("Unable toconnect!");
mysql_select_db($db) or die ("Unable to select database!");
$query = "INSERT INTO symbols (country, animal) VALUES ('$country',
'$animal')";$result = mysql_query($query) or die ("Error in query: $query.
".mysql_error());
// print message with ID of inserted record
echo "New record inserted with ID ".mysql_insert_id();
mysql_close($connection);
}?>
Lab 6: Delete Data
5/24/2018 Belajar PHP Pengenalan
107/117
5/24/2018 Belajar PHP Pengenalan
108/117
$query = SELECT * FROM symbols ;$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());
if (mysql_num_rows($result) > 0) {echo "";while($row = mysql_fetch_object($result)) {
echo "";echo "".$row->id."";echo "".$row->country."";
echo "".$row->animal."";echo "Delete";
echo "";}echo "";
}
else {echo "No rows found!";
}mysql_free_result($result);
mysql_close($connection);?>
Lab 7: Error Handling
5/24/2018 Belajar PHP Pengenalan
109/117
$connection = mysql_connect("localhost", "test", "test") or
die("Invalid server or user");
mysql_select_db("testdb", $connection) or die("Invalid database");
$query = "SELECT FROM symbols";
$result = mysql_query($query,$connection);
// look for errors and printif(!$result) {
$error_number =mysql_errno();$error_msg =mysql_error();echo "MySQL error $error_number: $error_msg";
}
mysql_close($connection);?>
State Management
Cookie:memungkinkan Web site untuk
5/24/2018 Belajar PHP Pengenalan
110/117
menyimpan informasi tentang client ke dalamsystem client itu sendiri, dan mengaksesinformasi tersebut apabila diperlukan.
Session: menyimpan informasi client di dalamserver selama kunjungan client, dan dibuangsetelah kunjungan berakhir. Session bekerjadengan cara mengasosiasikan masing-masing
session dengan session ID yang di-generateoleh PHP.
Lab: Session (Intro)
5/24/2018 Belajar PHP Pengenalan
111/117
// initialize a session
session_start();
// increment a session counter
$_SESSION['counter']++;
// print valueecho "You have viewed this page " . $_SESSION['counter'] .
" times";
// print session ID
echo "I'm tracking you with session ID " . session_id();
?>
Lab: Session (Remember Me)
5/24/2018 Belajar PHP Pengenalan
112/117
5/24/2018 Belajar PHP Pengenalan
113/117
}
}
else if (isset($_SESSION['name'])) {
// if a previous session exists
// calculate elapsed time since session start and nowecho "Welcome back, " . $_SESSION['name'] . ". This
session was activated " . round((time() -$_SESSION['start']) / 60) . " minute(s) ago. Click here to refresh thepage.";
}
?>
Lab: Session (Logout/Destroy)
5/24/2018 Belajar PHP Pengenalan
114/117
// initialize a session
session_start();
// then destroy itsession_destroy();
header("Location: session1.php");
exit;?>
Lab: Cookie (Set)
5/24/2018 Belajar PHP Pengenalan
115/117
_ ()
if (!isset($_COOKIE['test123'])) {// if a cookie does not exist// set it
setcookie("test123", "test", mktime()+86400);
echo "This is your first visit here today.";
}else {
// if a cookie already exists
echo "Nice to see you again, old friend!";}
?>
Lab: Cookie (Delete)
5/24/2018 Belajar PHP Pengenalan
116/117
// delete cookie
setcookie("test123", NULL, mktime() -
3600);
?>
Lab: Login with Database
Buatlah sebuah website kecil yangmenggunakan cek login ke database dengan
5/24/2018 Belajar PHP Pengenalan
117/117
menggunakan cek login ke database denganpage berikut: Login page
Beberapa page yang dilindungi supaya hanya bisadiakses setelah login
Logout
Buat dengan dua metode penyimpanan info: Session
Cookies (Remember Me) supaya tidak perlu loginulang pada kunjungan berikutnya.