You are on page 1of 60

PHP Web Development

9 Instalasi dan pengenalan PHP


9 SQL dengan menggunakan MySQL Server
9 PHP Scripting
9 Array dan String Functions
9 Integrasi PHP dan MySQL
9 Session dan Cookies
9 Handling File Uploads
9 Shopping Cart

PHP Web Development Page 1 of 60


Daftar Isi
Bagian 1 - Instalasi dan Pengenalan PHP ........................................................................................... 4
1.1 Instalasi PHP........................................................................................................ 4
1.2 Instalasi Apache Server 1.3.33 .............................................................................. 4
1.3 Instalasi MySQL Server ....................................................................................... 10
1.4 PHP Language Fundamental................................................................................ 10
1.4.1 HTML Tags .................................................................................................... 11
1.4.2 Variabel dalam PHP ........................................................................................ 18
1.4.3 Control Structure ............................................................................................ 18
1.4.4 Including PHP script........................................................................................ 19
Bagian 2 – Language Fundamental (Lanjutan).................................................................................... 21
2.1 Function ............................................................................................................ 21
2.2 Array................................................................................................................. 22
2.3 Array Functions .................................................................................................. 23
2.3.1 count ............................................................................................................ 23
2.3.2 array_keys ..................................................................................................... 23
2.3.3 array_values .................................................................................................. 24
2.3.4 array_key_exists ............................................................................................ 24
2.3.5 in_array......................................................................................................... 24
2.3.6 array_splice ................................................................................................... 24
2.3.7 array_unique.................................................................................................. 25
2.3.8 array_filter..................................................................................................... 25
2.3.9 array_intersect ............................................................................................... 26
2.3.10 array_merge .............................................................................................. 26
2.4 String Functions ................................................................................................. 26
2.4.1 md5 .............................................................................................................. 26
2.4.2 sha1.............................................................................................................. 26
2.4.3 number_format .............................................................................................. 26
2.4.4 parse_str ....................................................................................................... 27
2.4.5 str_replace..................................................................................................... 27
2.4.6 str_ireplace.................................................................................................... 27
2.4.7 addslashes..................................................................................................... 27
2.4.8 stripslashes.................................................................................................... 27
2.4.9 strlen ............................................................................................................ 27
2.4.10 strtolower .................................................................................................. 27
2.4.11 strtoupper.................................................................................................. 27
2.4.12 substr........................................................................................................ 27
2.4.13 trim........................................................................................................... 28
2.4.14 sprintf ....................................................................................................... 28
2.4.15 sscanf........................................................................................................ 28
2.4.17 implode ..................................................................................................... 28
2.4.18 explode ..................................................................................................... 28
2.4.19 htmlspecialchars......................................................................................... 28
2.4.20 htmlentities................................................................................................ 29
2.4.21 html_entity_decode .................................................................................... 29
2.5 Class and Objects ............................................................................................... 29
Bagian 3 – Using MySQL........................................................................................................... 30
3.1 Membuat database baru ..................................................................................... 31
3.2 Membuat tabel baru ........................................................................................... 31
3.3 Mengubah struktur tabel ..................................................................................... 32

PHP Web Development Page 2 of 60


3.4 Memanipulasi record dalam tabel......................................................................... 32
3.5 Backup database/tabel to Script........................................................................... 32
Bagian 4 – Integrating PHP dan MySQL........................................................................................... 37
4.2 menghitung jumlah record .................................................................................. 38
4.3 mengubah data di database ................................................................................ 38
Bagian 5 – Data Manipulation ..................................................................................................... 40
Bagian 6 – Paging dan Filtering................................................................................................... 50
6.1 Paging............................................................................................................... 50
6.2 Searching .......................................................................................................... 51
Bagian 7 – Session dan Cookies .................................................................................................. 52
7.1 Session.............................................................................................................. 52
7.2 Cookies ............................................................................................................. 53
8.1 Baca file ............................................................................................................ 55
8.2 Tulis file ............................................................................................................ 55
8.3 Menampilkan isi direktori..................................................................................... 55
8.4 Mengubah nama file ........................................................................................... 55
8.5 Menghapus suatu file.......................................................................................... 56
8.6 Menampilkan file dengan berbagai format ............................................................ 56
8.7 Uploading files ................................................................................................... 56
Bagian 9 – Shopping Cart ......................................................................................................... 58

PHP Web Development Page 3 of 60


Bagian 1 - Instalasi dan Pengenalan PHP
1.1 Instalasi PHP

Langkah-langkah menginstal PHP

1. Copykan file php ke C:\PHP.


Kemudian copy file php4ts.dll ke C:\windows\system32

2. Masuk ke C:\PHP, kemudian duplikatkan file php.ini-dist menjadi php.ini


Kemudian rename file tersebut menjadi php.ini dan copykan ke C:\WINDOWS

1.2 Instalasi Apache Server 1.3.33

1. Instal Apache terlebih dahulu.

PHP Web Development Page 4 of 60


2. Pilihlah mode Complete.

PHP Web Development Page 5 of 60


3. Kemudian klik Next terus hingga proses instalasi dilakukan.

4. Tunggu hingga instalasi selesai.

Kemudian kita lanjutkan dengan setting sebagai berikut


5. Apache anda secara default terinstal di
C:\Program Files\Apache Group\Apache
Kemudian cari folder conf dan cek di dalamnya terdapat file httpd.conf, buka dengan
menggunakan Notepad dan tambahkan 3 baris ini di bagian paling bawah :

LoadModule php4_module c:/php/sapi/php4apache.dll


AddModule mod_php4.c
AddType application/x-httpd-php .php

PHP Web Development Page 6 of 60


6. Restart apache.
Masuk ke services.msc, dengan memilih Start > Run, kemudian ketik services.msc.

Setelah itu restart Apache-nya.

PHP Web Development Page 7 of 60


7. Masuk ke C:\Program Files\Apache Group\Apache\htdocs, kemudian buat folder test, di
dalam folder tersebut buat file test.php. Isi test.php dengan sintaks dibawah ini :

<?
phpinfo();
?>

8. Buka Browser anda dan ketik http://localhost/test/test.php

Jika muncul tampilan seperti di atas berarti PHP anda telah terinstal dan siap digunakan.
Dalam httpd.conf (C:\Program Files\Apache Group\Apache\conf) terdapat beberapa
setting yang bersifat optional. Di dalam file httpd.conf cari teks documentroot: kemudian kita
bisa mengganti path directory yang diinginkan untuk menaruh file-file PHPnya. Selain itu anda
juga harus mengubah tag Directory yang letaknya di bawah tak jauh dari documentroot.

PHP Web Development Page 8 of 60


Pada satu komputer bisa menggunakan beberapa web server, seperti IIS misalnya untuk
ASP, Apache Tomcat untuk JSP, di mana masing-masing web server tersebut harus dibedakan
portnya. Jika dalam komputer anda terdapat lebih dari satu web server pastikan setiap web
server menggunakan port yang berbeda. Untuk mengubah Port search port: pada file
httpd.conf defaultnya adalah 80 bisa anda ubah dengan port lain misalkan 8080. Setelah diubah
untuk mengaksesnya menggunakan http://localhost:8080

PHP Web Development Page 9 of 60


1.3 Instalasi MySQL Server

MySQL Server digunakan sebagai database server. Untuk instalasinya sangat mudah jalankan
saja Setup dan ikuti wizard hingga instalasi selesai. Secara default mysql akan diinstal pada
folder C:\mysql

Setelah selesai install, MySQL perlu kita aktifkan untuk pertama kali. Masuklah ke C:\mysql\bin
jalankan program winmysqladmin.exe, masukkan nama username misalnya root dan
passwordnya misalkan root.

Setelah itu MySQL siap digunakan. Untuk mempermudah pengaksesan ke MySQL kita gunakan
tool tambahan yang bernama SQLYog. SQLYog merupakan sebuah tool untuk mempermudah
mengatur dan memanipulasi database di MySQL Server.

1.4 PHP Language Fundamental

Struktur pemrograman php diawali dengan tag <? dan ?>.

<html>
<head>
<title>PHP Introduction</title>
</head>
<body>
<?
//PHP Scripts here !!!
?>

</body>
</html>

PHP Web Development Page 10 of 60


Pada penulisannya script PHP dapat disisipkan di antara tag-tag HTML. Sebelum masuk ke
scripting PHP kita akan review tag-tag HTML yang sering dipakai terlebih dahulu.

1.4.1 HTML Tags

HTML(Hypertext Markup Language) adalah suatu standar bahasa yang digunakan untuk
membuat halaman web. File-file ini memiliki ekstensi .htm atau .html

Coding di dalam HTML menggunakan tag-tag dalam penulisannya.

Bagian-bagian dari coding Html tersebut antara lain.

<html>
<head>
<title>Latihan1</title>
</head>

<body>
<div align="center">Selamat Datang di Web Kami</div>
</body>
</html>

<html> </html>
Adalah tag utama dimana tag-tag lain akan diletakan di dalamnya.

<head> </head>
Adalah tag untuk menuliskan Header dari halaman web yang kita buat. Di dalamnya terdapat
beberapa tag lain seperti <title>, <meta>, <link>, <script> dan sebagainya.

<title> </title>
Adalah tag untuk menuliskan judul dari halaman Html yang anda buat. Tag title diletakkan di
dalam tag head.

<body> </body>
Adalah tag utama dari halaman web. Dimana biasanya pada tag ini berisi table, gambar, atau
informasi yang ingin ditampilkan di halaman web.

PHP Web Development Page 11 of 60


<div>

Menampilkan text dengan menggunakan div dapat kita atur alignmentnya.

<div align="center" width=”100%”>Selamat Datang di Web Kami</div>

<div align="left" width=”100%”>Selamat Datang di Web Kami</div>

<div align="right" width=”100%”>Selamat Datang di Web Kami</div>

Masing-masing akan menampilkan alignment yang berbeda, di tengah, rata kiri dan rata kanan.

Menampilkan teks dalam bentuk tabel

<table> </table>
Adalah tag yang digunakan untuk membuat tabel.

<tr> </tr>
Adalah tag yang digunakan untuk membuat baris (row) dari tabel.

<td> </td>
Adalah tag yang digunakan untuk membuat column dari tabel.

Untuk membuat table dengan 4 kolom dan 3 baris maka

<table width="75%" border="1">


<tr>
<td align=”center”>Nama</td>
<td align=”center”>Tanggal Lahir</td>
<td align="center">Alamat</td>
<td align="center">No Telp</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>

PHP Web Development Page 12 of 60


Kita dapat menggunakan berbagai macam properti dari tabel. Sebagai contoh misalkan kita ingin
tampilan seperti berikut ini.

<table width="75%" border="1" cellpadding="5" cellspacing="10">


<tr>
<td colspan="3" align="center">JUDUL</td>
</tr>
<tr>
<td>
KOLOM KIRI
</td>
<td>
KOLOM TENGAH
</td>
<td>
KOLOM KANAN
</td>
</tr>
</table>

PHP Web Development Page 13 of 60


Dalam suatu tabel dapat kita sisipkan tabel lagi. Pada bagian kolom kiri kita ubah menjadi
sebagai berikut.

<html>
<head>
</head>
<body>
<table width="75%" border="1" cellpadding="5" cellspacing="10">
<tr>
<td colspan="3" align="center">JUDUL</td>
</tr>
<tr>
<td width="30%">
<table width="100%" border="1">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td colspan="2">3</td>
</tr>
</table>
</td>
<td>
KOLOM TENGAH
</td>
<td>
KOLOM KANAN
</td>
</tr>
</table>
</body>
</html>

PHP Web Development Page 14 of 60


<form> </form>

Adalah tag yang digunakan untuk membuat form. Di mana di dalamnya dapat kita letakan
beberapa object seperti textfield, radiobutton, checkbox, dan sebagainya. Form sering digunakan
untuk meminta input dari user yang kemudian akan dikirimkan untuk diproses.

<form name="form1">
<table>
<tr>
<td >Nama</td>
<td ><input type="text" name="txtnama"></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td >
<input type="radio" name="radiobutton" value="radiobutton">Pria
</td>
<td >
<input type="radio" name="radiobutton" value="radiobutton">Wanita
</td>
</tr>
<tr>
<td>No Telp</td>
<td ><input type="text" name="txttelp"></td>
</tr>
<tr>
<td><input type="submit" name="btnSubmit" value="Submit"></td>
<td><input type="reset" name="btnReset" value="Reset"></td>
</tr>
</table>
</form>

Pada code di atas menampilkan cara membuat form dan menggunakan tag input. Untuk lebih
detailnya mengenai tag input dapat lihat HTML Manualnya.

PHP Web Development Page 15 of 60


<select>

<select name="pilih">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

Pada tag select terdapat attribute multiple untuk memberikan kesan tampilan yang berbeda.

PHP Web Development Page 16 of 60


<select name="pilih" MULTIPLE SIZE=4>
<option value="1">Gado-gado</option>
<option value="2">Ketoprak</option>
<option value="3">Nasi Uduk</option>
<option value="4">Nasi Goreng</option>
<option value="5">Nasi Tim</option>
<option value="6">Kwetiau Goreng</option>
<option value="7">Kwetiau Siram</option>
<option value="8">Nasi Gila</option>
</select>

<textarea>

Untuk meminta input lebih lebih dari satu baris dapat menggunakan textarea.

<TEXTAREA NAME="text" ROWS=3 COLS=20>text here</TEXTAREA>

Using Checkbox

Checkbox digunakan untuk meminta input lebih dari satu.

<input type="checkbox" name="chkEmail" CHECKED>Send Me Email <br>


<input type="checkbox" name="chkGift">Send Me Gift

Using RadioButton

RadioButton digunakan untuk meminta input di mana user hanya boleh memilih salah satu.
Untuk penamaan pada radiobutton untuk yang satu group beri nama yang sama pada attribute
name.

PHP Web Development Page 17 of 60


<input type="radio" name="radGender" CHECKED VALUE=”male”>Male<br>
<input type="radio" name="radGender" VALUE=”female”>Female

1.4.2 Variabel dalam PHP

Dalam PHP semua variabel diawali dengan tanda $. Variabel langsung dapat digunakan tapa
harus dideklarasikan terlebih dahulu.

<?
$a = 5;
$b = 10;
$c = $a + $b;

echo $c;

$str1 = “Hello”;
$str2 = “EVO”;

echo $str1 . $str2 ; // . untuk penggabungan string


?>

1.4.3 Control Structure

Untuk struktur pemilihan dan perulangan adalah sebagai berikut:

Struktur pemilihan

<?
$n = 10;
if ( $n > 10 ){
... //true part
}else{
... //false part
}
?>

PHP Web Development Page 18 of 60


<?
$n = 1;
switch ($n){
case 1 :
//statements here
break;
case 2 :
//statements here
break;
default:
//statements here
break;
}
?>

Struktur perulangan

<?
for($i=0; $i<10; $i++){
echo $i;
}
?>

<?
$i = 0;
do {
echo $i;
$i++;
}while($i<10);
?>

<?
$i = 0;
while ( $i < 10 ){
echo $i;
$i++;
}
?>

1.4.4 Including PHP script

Kita dapat menyertakan suatu halaman php di dalam halaman php lain dengan menggunakan
include. Misalkan kita membuat dua halaman satu.php dan dua.php.

satu.php
<?
echo date(“j F Y”, mktime());
?>

PHP Web Development Page 19 of 60


dua.php
<html>
<head>
<title>Include Test</title>
</head>
<body>
<? include “satu.php”; ?>
</body>
</html>

Variabel yang dideklarasikan pada halaman utama dapat digunakan pada halaman yang
diinclude.

tiga.php

<?
$var = “Hello EVO”;
?>

empat.php

<?
include “tiga.php”;

echo $var;
?>

PHP Web Development Page 20 of 60


Bagian 2 – Language Fundamental (Lanjutan)
2.1 Function

Pada halaman PHP kita dapat mendefinisikan fungsi. Contohnya sebagai berikut:

<?
function test(){
echo “Hello EVO”;
}

test(); //pemanggilan fungsi


?>

Kita dapat juga mengirimkan passing parameter.

<?
function test( $str ){
echo $str;
}

test(“Hello EVO”); //pemanggilan fungsi


?>

Selain itu fungsi juga dapat mengembalikan suatu nilai (return value).

<?
function tambah ( $a, $b ){
return $a + $b;
}

echo tambah(5,6); //output 11


?>

PHP Web Development Page 21 of 60


2.2 Array

Array dalam PHP sifatnya sangat dinamis. Array terdiri dari pasangan key dan value. Di mana
key dapat berupa angka atau string.

<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar


echo $arr[12]; // 1
?>

<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["somearray"][6]; // 5
echo $arr["somearray"][13]; // 9
echo $arr["somearray"]["a"]; // 42
?>

<?php
// This array is the same as ...
array(5 => 43, 32, 56, "b" => 12);

// ...this array
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>

Untuk menelusuri elemen-elemen dalam array dapat menggunakan for each.

<?php
$colors = array('red', 'blue', 'green', 'yellow');

foreach ($colors as $color) {


echo "Do you like $color?\n";
}

/* output:
Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?
*/
?>

PHP Web Development Page 22 of 60


2.3 Array Functions

2.3.1 count

Untuk menghitung jumlah elemen dalam suatu array.

format: int count ( mixed var)

$colors = array('red', 'blue', 'green', 'yellow');

echo count($colors); //output 4

2.3.2 array_keys

Untuk mendapatkan array dari semua key dari array. Elemen-elemen akan disusun mulai
dari indeks 0.

format: array array_keys ( array input [, mixed search_value])

$array = array (0 => 100, "color" => "red");


print_r(array_keys ($array));

$array = array ("blue", "red", "green", "blue", "blue");


print_r(array_keys ($array, "blue"));

$array = array ("color" => array("blue", "red", "green"), "size" =>


array("small", "medium", "large"));
print_r(array_keys ($array));

Output:

Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)
Array
(
[0] => color
[1] => size
)

PHP Web Development Page 23 of 60


2.3.3 array_values

Untuk mendapatkan array dari semua value dari array. Elemen-elemen akan disusun
mulai dari indeks 0.

format: array array_values ( array input)

$data = array( “name” => “evo”, “age” => 18 );

$keys = array_keys($data);
print_r($keys);

/* output
Array ( 0 => “evo”,
1 => 18
);
*/

2.3.4 array_key_exists

Fungsi ini mengembalikan nilai Boolean true atau false di mana memeriksa apakah suatu
key ada di dalam suatu array.

format: bool array_key_exists ( mixed key, array search)


$data = array( “name” => “evo”, “age” => 18 );

if(array_key_exists(“name”, $data)){
echo “found”;
}

2.3.5 in_array

Fungsi ini hampir sama dengan array_key_exists hanya saja yang dibandingkan
adalah value bukan key.

2.3.6 array_splice

Fungsi ini digunakan untuk mengambil sebagian dari suatu array.

format: array array_slice ( array array, int offset [, int length])

Jika offset bernilai positif, urutan hasilnya akan mulai dari offset tersebut, jika negative
maka akan mulai dari belakang array.

PHP Web Development Page 24 of 60


Jika length bernilai positif maka urutan hasilnya akan sejumlah length. Tetapi jika
negative maka urutan akan stop dihitung dari elemen terkahir, jika dikosongkan maka
akan diteruskan hingga akhir array.

$input = array ("a", "b", "c", "d", "e");

$output = array_slice ($input, 2); // returns "c", "d", and "e"


$output = array_slice ($input, 2, -1); // returns "c", "d"
$output = array_slice ($input, -2, 1); // returns "d"
$output = array_slice ($input, 0, 3); // returns "a", "b", and "c"

2.3.7 array_unique

Fungsi ini digunakan untuk menghilangkan value yang terdapat duplikasi.

format: array array_unique ( array array)

$input = array ("a" => "green", "red", "b" => "green", "blue",
"red");
$result = array_unique ($input);
print_r($result);

2.3.8 array_filter

Fungsi ini digunakan untuk memfilter elemen-elemen dalam array dengan menggunakan
suatu fungsi.

format: array array_filter ( array input [, callback function])

function odd($var) {
return ($var % 2 == 1);
}

function even($var) {
return ($var % 2 == 0);
}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);


$array2 = array (6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";


print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));

PHP Web Development Page 25 of 60


2.3.9 array_intersect

Fungsi ini digunakan untuk mencari interseksi dari beberapa array.

format: array array_intersect(array arr1, array arr2 [, array ...])

$array1 = array ("a" => "green", "red", "blue");


$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);

2.3.10 array_merge

Fungsi ini digunakan untuk menggabungkan beberapa array.

format: array array_merge(array arr1, array arr2 [, array ...])

$array1 = array ("color" => "red", 2, 4);

$array2 = array ("a", "b", "color" => "green", "shape" =>


"trapezoid", 4);

$result = array_merge ($array1, $array2);


print_r($result);

Untuk fungsi-fungsi array lainnya masih banyak. Untuk lebih lengkap dapat dilihat di PHP
Manual.

2.4 String Functions

2.4.1 md5
Digunakan untuk enkripsi satu arah dengan metode MD5. Hasil dari md5 adalah string
sepanjang 32 karakter.

2.4.2 sha1
Digunakan untuk enkripsi selain md5, menggunakan algoritma sha1.

2.4.3 number_format
Digunakan untuk mem-format tampilan suatu bilangan numerik.

$number = 1234.56;
$english_format_number = number_format($number); // 1,234

$nombre_format_francais = number_format($number, 2, ',', ' ');


// 1 234,56
$number = 1234.5678;
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

PHP Web Development Page 26 of 60


2.4.4 parse_str
Digunakan untuk memparsing suatu string ke dalam variabel atau array.

$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

2.4.5 str_replace
Digunakan untuk mengganti suatu string dalam string dengan string baru.

$bodytag = str_replace("%body%", "black", "<body text=%body%>");

echo $bodytag; //<body text=black>

2.4.6 str_ireplace
Sama seperti str_replace hanya bersifat incase-sensitive.

2.4.7 addslashes
Menambahkan backslash untuk karakter-karakter yang membutuhkan backslash sebelum
digunakan dalam query ke database. Karakter yang ditambahkan backslash adalah
single-quote ( ‘ ), double-quote ( “ ), backslash ( \ ) dan NUL.

2.4.8 stripslashes
Menghilangkan tanda backslash pada suatu string. Tanda \’ akan menjadi ‘ saja.

2.4.9 strlen
Mendapatkan panjang dari suatu string.

2.4.10 strtolower
Mengembalikan nilai string dengan huruf kecil.

2.4.11 strtoupper
Mengembalikan nilai string dengan huruf kapital.

2.4.12 substr
Mengambil sebagian dari keseluruhan string.

$rest = substr("abcdef", 1); // returns "bcdef"


$rest = substr("abcdef", 1, 3); // returns "bcd"
$rest = substr("abcdef", 0, 4); // returns "abcd"
$rest = substr("abcdef", 0, 8); // returns "abcdef"

$string = 'abcdef';
echo $string{0}; // returns a
echo $string{3}; // returns d

PHP Web Development Page 27 of 60


2.4.13 trim
Mengembalikan string dengan menghilangkan spasi pada bagian awal dan akhir.

2.4.14 sprintf
Mengembalikan string sesuai dengan format.

$name = ”John”;
$age = 18;

$result = sprintf(“My name is %s. I am $age years old”,$name,$age);

echo $result;

2.4.15 sscanf
2.4.16
sscanf(“5 6 7”,$a,$b,$c);

echo $a;
echo $b;
echo $c;

2.4.17 implode

<?php

$array = array('lastname', 'email', 'phone');


$comma_separated = implode(",", $array);

print $comma_separated; // lastname,email,phone


?>

2.4.18 explode

<?php

$string = “jon@hotmail.com,hon@yahoo.com,ali@evopage.com”;
$emails = explode(“,”, $string);
print_r($emails);
?>

2.4.19 htmlspecialchars
Menerjemahkan karakter khusus pada HTML di mana:

format:
string htmlspecialchars ( string string [, int quote_style [,
string charset]])

• &' (ampersand) menjadi '&amp;'


• '"' (double quote) menjadi '&quot;' pada saat ENT_NOQUOTES tidak diset.
• ''' (single quote) menjadi '&#039;' hanya pada saat ENT_QUOTES diset.
• '<' (less than) menjadi '&lt;'
• '>' (greater than) menjadi '&gt;'

PHP Web Development Page 28 of 60


2.4.20 htmlentities
Menerjemahkan semua karakter ke bentuk standar dalam format HTML.

2.4.21 html_entity_decode
Menerjemahkan HTML entities menjadi karakter tertentu. &amp; akan diubah menjadi &.

2.5 Class dan Objects

Kita dapat mendeklarasikan class dalam PHP. Sintaksnya adalah sebagai berikut:

Person.inc

<?
class Person {
var $name;
var $age;

//CONSTRUCTOR
function Person($name=””, $age=0){ //default value
$this->name = $name;
$this->age = $age;
}

function isOld(){
return ($this->age>=50);
}
}
?>

TestPerson.php

<?
include (“Person.inc”);

$objek = new Person();


$objek->name = “John”;
$objek->age = 19;

if($objek->isOld()){
echo $objek->name . “ is old”;
}else{
echo $objek->name . “ is young”;
}
?>

PHP Web Development Page 29 of 60


Bagian 3 – Using MySQL
Pastikan MySQL Server sudah aktif.

Kemudian jalankan program SQLYog yang sudah terinstall.

Default Host Address adalah localhost, username root, dan password dikosongkan.

database aktif

code editor
database explorer

result view

PHP Web Development Page 30 of 60


3.1 Membuat database baru

Untuk membuat database baru, klik kanan pada database explorer, pilih Create
Database (Ctrl+D). Kemudian masukkan nama database.

create database mydatabase;

3.2 Membuat tabel baru

Untuk membuat tabel baru klik kanan pada database kemudian pilih Create Table In The
Database atau tekan tombol Insert. Kemudian masukkan struktur tabel yang diinginkan.

Kemudian klik tombol Create Table di bagian bawah. Masukkan nama tabel.
Hasilnya akan tampil di database explorer.

PHP Web Development Page 31 of 60


3.3 Mengubah struktur tabel

Untuk mengubah struktur tabel, klik kanan pada tabel yang ingin diubah, pilih Alter Table
Structure (F6).

3.4 Memanipulasi record dalam tabel

Untuk memanipulasi record dalam tabel, pilih tabelnya, kemudian pilih Insert/Update Data
atau tekan F11.

3.5 Backup database/tabel to Script

Untuk melakukan backup database/tabel yang sudah kita buat dalam bentuk SQL Script, pilih
database/tabel yang ingin di-backup, pilih Export As Batch Scripts.

SQL Basics

Pada bagian ini kita akan membahas sintaks-sintaks untuk memanipulasi data pada database
yang dikenal dengan nama DML ( Data Manipulation Language ). Misalkan kita mempunyai
struktur tabel sebagai berikut:

create table PhoneBook(


Nomor int not null,
Nama varchar(20),
TanggalLahir datetime,
Alamat varchar(200),
JenisKelamin char(1),
Telepon varchar(15),
Primary key (Nomor)
)
Perintah perintah tersebut antara lain :

INSERT
Insert adalah perintah sql untuk memasukkan suatu data baru ke dalam suatu table.

Format perintah ini adalah

Insert into <Nama Tabel > <(Nama Kolom,Nama Kolom,..)>


values <Nilai yang Diisi Ke kolom1, Nilai Ke kolom 2,…>

insert into Phonebook values(1,'Budi',2020-12-20,'Jalan Mangga


12','L','021-5682771',30)

Maka Data baru dengan Nomor,Nama,TanggalLahir,Alamat,JenisKelamin dan telepon akan


ditambahkan ke Dalam tabel PhoneBook.

atau

insert into Phonebook(Nomor,Nama) values(1,'Budi')

PHP Web Development Page 32 of 60


Pada contoh di atas kita hanya memberi nilai ke Nomor dan Nama, maka kolom yang lain akan
bernilai null, hal ini diperbolehkan jika pada saat membuat tabel kita mengizinkan nilai null pada
kolom tersebut. Jika memberikan nilai default maka nilai yang akan diberikan pada saat kita tidak
member nilai adalah nilai defaultnya bukan nilai null.

SELECT
Select adalah perintah sql yang berguna untuk mengambil data yang terdapat di dalam database
sesuai yang kita inginkan

Format perintah ini adalah

Select <Nama Kolom>,<Nama Kolom> from <Nama Table>


[ where <Condition> ]
[ group by … ]
[ having condition ]
[ order by <Nama Kolom> ]

select * from Phonebook

select Nomor,Nama from Phonebook where Nomor=1

Maka Query akan menghasilkan semua data yang memiliki Nomor 1 dari tabel Phonebook.

Menampilkan semua data yang berumur >= 20 dan jenis kelaminnya laki-laki.

select * from PhoneBook


where Umur >= 20 AND JenisKelamin='L'

Menampilkan semua data yang berumur lebih besar dari 40 tahun atau lebih kecil dari 20 tahun.

select * from PhoneBook


where Umur > 40 OR Umur < 20

Menampilkan Nomor, Nama, JenisKelamin, Umur diurutkan dari yang paling tua hingga yang
paling muda.

select Nomor,Nama,JenisKelamin,Umur from PhoneBook


order by Umur DESC

PHP Web Development Page 33 of 60


Menampilkan Nomor, Nama, JenisKelamin, Umur diurutkan dari yang paling tua hingga yang
paling muda.

select Nomor,Nama,JenisKelamin,Umur from PhoneBook


order by Umur ASC

Note: untuk ASC boleh tidak ditulis.

UPDATE
Update adalah perintah sql untuk mengubah satu atau lebih data yang terdapat di dalam suatu
table.

Format perintah ini adalah

Update <Nama Table> set <Nama Kolom = Nilai Baru>,


<Nama Kolom = Nilai Baru>, …
where <Condition>

update PhoneBook set Nama='Andi' where Nomor=2

Maka Nama dari tabel Phonebook dengan nomor 2 akan diubah namanya menjadi Andi.

Menambahkan umur semuanya sebesar 1.

update PhoneBook set Umur=Umur+1

DELETE

Delete adalah perintah sql untuk menghapus satu atau lebih data yang terdapat di dalam suatu
table.

Format perintah ini adalah

Delete from <Nama Table> where <Condition>

delete from PhoneBook WHERE Nomor=1

Maka yang nomor 1 akan dihapus dari tabel.

Menghapus semua data dari dalam tabel.

delete from PhoneBook

Semua data dalam tabel akan dihapus, tetapi struktur tabelnya tetap. Jika kita ingin menghapus
tabelnya dari database dapat menggunakan sintaks berikut ini. Tabel berserta data di dalamnya
akan dihapus semua.

PHP Web Development Page 34 of 60


Menghapus tabel dari database

drop table PhoneBook

Menggunakan Aggregate Function

MAX
digunakan untuk mengambil nilai maksimal dari suatu field

select max(Umur) as MaxUmur from PhoneBook

MIN
digunakan untuk mengambil nilai Minimal dari suatu field

select min(Umur) as MinUmur from PhoneBook

AVG
digunakan untuk mengambil rata-rata dari suatu kolom.

select avg(Umur) as RataRataUmur from PhoneBook

SUM
digunakan untuk menghitung Jumlah Total dari suatu kolom pada tabel.

select sum(Umur) as TotalUmur from PhoneBook

PHP Web Development Page 35 of 60


Count
digunakan untuk menghitung jumlah record yang terdapat pada suatu kolom dari suatu tabel.

select count(Nomor) as JumlahOrang from PhoneBook

Bila Kita ingin menampilkan suatu aggregate function Bersama-sama dengan kolom lain di
suatu query, kita harus menggunakan sintaks Group By, Sehingga data yang dihitung oleh
aggregate function tersebut akan dikelompokkan berdasarkan kolom yang kita GroupBy
tersebut. Misalkan kita ingin menampilkan kolom JenisKelamin dengan jumlah orangnya

select JenisKelamin,count(Nomor) as Jumlah from PhoneBook


group by JenisKelamin

Jika kondisi yang kita gunakan menggunakan aggregate function maka tidak boleh diletakkan di
WHERE tetapi harus menggunakan HAVING.

select JenisKelamin,count(Nomor) as Jumlah from PhoneBook


group by JenisKelamin
having count(Nomor)=MAX(Nomor)

Menggunakan Limit

select * from PhoneBook limit 0,10

sintaks di atas akan menampilkan data dari tabel PhoneBook mulai dari indeks 0 (record
pertama) dan seterusnya hingga mencapai 10 record. Dengan sintaks di atas maka hanya 10
record pertama yang akan tampil.

PHP Web Development Page 36 of 60


Bagian 4 – Integrating PHP dan MySQL
Pada bagian ini kita akan mengintegrasikan PHP dengan MySQL. PHP menyediakan fungsi-fungsi
untuk melakukan koneksi ke MySQL, mengambil data, mengupdate data, dan operasi database
lainnya.

connection.inc
<?
$HOST = “localhost”; //database server, bisa menggunakan IP
$USER = “root”; //user login ke database
$PASS = “”; //password untuk login ke database
$DATA = “mydatabase”; //nama database
?>

testconnection.php

Setiap ingin melakukan koneksi ke database digunakan fungsi mysql_connect, kemudian untuk
memlilih database digunakan mysql_select_db, untuk menutup koneksi gunakan mysql_close

<?
include (“connection.inc”);

$con = mysql_connect($HOST,$USER,$PASS); //koneksi database


mysql_select_db($DATA); //pilih database

//... lakukan operasi database di sini

mysql_close($con); //tutup koneksi


?>

4.1 membaca data dari database – mysql_fetch_array

<?
include (“connection.inc”);

$con = mysql_connect($HOST,$USER,$PASS); //koneksi database


mysql_select_db($DATA); //pilih database

$result = mysql_query(“select * from PhoneBook”);

while ( $fetch = mysql_fetch_array($result) ){

echo $fetch[0] . “ “ . $fetch[“email”] . “<BR>”;

mysql_close($con); //tutup koneksi


?>

PHP Web Development Page 37 of 60


4.2 menghitung jumlah record – mysql_num_rows

<?
include (“connection.inc”);

$con = mysql_connect($HOST,$USER,$PASS); //koneksi database


mysql_select_db($DATA); //pilih database

$result = mysql_query(“select * from PhoneBook”);

$number_rows = mysql_num_rows($result);

echo $number_rows;

mysql_close($con); //tutup koneksi


?>

4.3 mengubah data di database – mysql_query

<?
include (“connection.inc”);

$con = mysql_connect($HOST,$USER,$PASS); //koneksi database


mysql_select_db($DATA); //pilih database

$result = mysql_query(“update PhoneBook set


email=’somebody@hotmail.com’ where name=’john’”);

if($result){
echo “update success”;
}else{
echo “update fail”;
}

mysql_close($con); //tutup koneksi


?>

PHP Web Development Page 38 of 60


4.4 mendapatkan informasi kolom dari suatu tabel – mysql_num_fields, mysql_fetch_field

<?
include (“connection.inc”);

$con = mysql_connect($HOST,$USER,$PASS); //koneksi database


mysql_select_db($DATA); //pilih database

$result = mysql_query("select * from PhoneBook")


or die("Query failed: " . mysql_error());

$i = 0;
while ($i < mysql_num_fields($result)) { //get column count
echo "Information for column $i:<br />\n";
$meta = mysql_fetch_field($result);
if (!$meta) {
echo "No information available<br />\n";
}
echo "<pre>
blob: $meta->blob
max_length: $meta->max_length
multiple_key: $meta->multiple_key
name: $meta->name
not_null: $meta->not_null
numeric: $meta->numeric
primary_key: $meta->primary_key
table: $meta->table
type: $meta->type
unique_key: $meta->unique_key
unsigned: $meta->unsigned
zerofill: $meta->zerofill
</pre>";
$i++;
}

mysql_free_result($result);
mysql_close($con); //tutup koneksi
?>

PHP Web Development Page 39 of 60


Bagian 5 – Data Manipulation
Pada bagian ini kita akan membuat halaman web untuk memanipulasi data. Struktur tabel yang
digunakan adalah sebagai berikut:

Untuk field id dibuat primary key dan auto Increment

Struktur webnya adalah sebagai berikut:

show.php - halaman menampilkan semua data dari database


add_form.php - halaman form input user untuk tambah data
edit_form.php - halaman form edit user untuk ubah data
delete_form.php - halaman form untuk konfirmasi penghapusan data
add_process.php - halaman untuk proses tambah data
edit_process.php - halaman untuk proses ubah data
delete_process.php - halaman untuk proses delete data
includes - folder template script php yang di-include.
images - folder untuk menyimpan gambar-gambar
styles.css - file untuk setting CSS (Cascading Stylesheet)

PHP Web Development Page 40 of 60


includes/connection.php

<?
$SERVER = “localhost”;
$USER = “root”;
$PASS = “”;
$DATABASE = “phonebook”;
?>

includes/header.php

My PhoneBook Version 1.00<BR>


<img src=”images/logo.jpg”>
styles.css

BODY {
font-family: Verdana, Arial, Tahoma;
font-size: X-Small;
}

.mylink {
font-family: Verdana, Arial, Tahoma;
font-size: X-Small;
color: #00FF00;
text-decoration: none;
}

.mylink:hover {
font-family: Verdana, Arial, Tahoma;
font-size: X-Small;
color: #009CC9;
text-decoration: underline;
}

.mylink:visited {
font-family: Verdana, Arial, Tahoma;
font-size: X-Small;
color: #00FF00;
text-decoration: none;
}

PHP Web Development Page 41 of 60


show.php

Pada halaman ini kita akan menampilkan data dari database dalam bentuk tabel di HTML.

<? include (“includes/connection.php”); ?>


<html>
<head>
<title>My PhoneBook</title>
</head>
<body>
<? include (“includes/header.php”); ?><BR>
<a href=””>Add new data</a>
<?
$con = mysql_connect($SERVER,$USER,$PASS);
mysql_select_db($DATABASE);
$rs = mysql_query(“select * from tab_phonebook”);
?>
<table>
<TR>
<TD>Name</TD>
<TD>Phone</TD>
<TD>Email</TD>
</TR>
<?
while($fetch = mysql_fetch_array($rs)){
?>
<TR>
<TD><?= $fetch[“name”] ?></TD>
<TD><?= $fetch[“phone”] ?></TD>
<TD><?= $fetch[“email”] ?></TD>
<TD><?= date(“j n Y”,strtotime($fetch[“birthdate”])) ?></TD>
<TD>
<a href=”edit_form.php?id=<?= $fetch[“id”] ?>”>edit</a>
</TD>
<TD>
<a href=”delete_form.php?id=<?=$fetch[“id”] ?>”>delete</a>
</TD>
</TR>
<?
}
?>
</table>
<?
mysql_close($con);
?>
</body>
</html>

PHP Web Development Page 42 of 60


add_form.php
<html>
<head>
<title>My PhoneBook</title>
</head>
<body>
<? include (“includes/header.php”); ?><BR>
<form action=”add_process.php” method=”POST”>
<table>
<tr>
<td>ID</td>
<td>Auto-generated</td>
</tr>
<tr>
<td>Name</td>
<td><input type=”text” name=”name”></td>
</tr>
<tr>
<td>Phone</td>
<td><input type=”text” name=”phone”></td>
</tr>
<tr>
<td>Email</td>
<td><input type=”text” name=”email”></td>
</tr>
<tr>
<td>Birthdate</td>
<td>
<select name=”dd”>
<?
for($i=1;$i<=31;$i++) {
?>
<option value=”<?= $i ?>”><?= $i ?></option>
<?
}
?>
</select>
<select name=”mm”>
<?
for($i=1;$i<=12;$i++) {
?>
<option value=”<?= $i ?>”><?= $i ?></option>
<?
}
?>
</select>
<select name=”yy”>
<?
for($i=1900;$i<=2020;$i++) {
?>
<option value=”<?= $i ?>”><?= $i ?></option>
<?
}
?>
</select>
</td>
PHP Web Development Page 43 of 60
</tr>
<tr>
<td colspan=”2”>
<input type=”submit” name=”add” value=”Submit”>
</td>
</tr>
</table>
</form>
</body>
</html>

Data di dalam form akan dikirimkan ke halaman yang kita spesifikasikan pada attribute action
pada form (add_process.php). Berarti untuk code insert ke database akan dituliskan pada
halaman add_process.php

add_process.php

Pada halaman ini, kita tangkap terlebih dahulu data yang dikirimkan dari form. Jika method yang
digunakan adalah POST berarti kita gunakan variabel $_POST, jika method yang digunakan
adalah GET berarti kita gunakan variabel $_GET

<?
if(empty($_POST)) { header(“location:show.php”); exit; }
include (“includes/connection.php”);

$name = $_POST[“name”]; //disesuaikan dengan nama textfield


$phone= $_POST[“phone”]; //disesuaikan dengan nama textfield
$email= $_POST[“email”]; //disesuaikan dengan nama textfield
$dd = $_POST[“dd”];
$mm = $_POST[“mm”];
$yy = $_POST[“yy”];
//validasi nama harus diisi
if($name==””){
echo “nama harus diisi<BR>”;
echo ‘<a href=”add_form.php”>Back</a>’;
}else if(checkdate($mm,$dd,$yy)){
echo “tanggal tidak valid<BR>”;
echo ‘<a href=”add_form.php”>Back</a>’;
}else{
//input user valid
$con = mysql_connect($SERVER,$USER,$PASS);
mysql_select_db($DATABASE);

$sql = “insert into tab_phonebook(`name`,`phone`,`email`,`birthdate`)


values (‘$name’,’$phone’,’$email’,’$yy-$mm-$dd’)”;

$success = mysql_query($sql); //execute SQL statement


mysql_close($con);
if($success) header(“location:show.php”);
else {
echo “Error: ” . mysql_error() . “<BR>”;
echo ‘<a href=”add_form.php”>Back</a>’;
}
}
?>

PHP Web Development Page 44 of 60


Perbedaan antara $_POST dan $_GET adalah jika kita menggunakan method get maka nilai-nilai
yang dikirimkan akan muncul di url address pada address bar. Sedangkan jika menggunakan
POST data tidak akan ditampilkan paa url address. Untuk data yang banyak, seperti registrasi
member, ataupun yang tidak ingin ditampilkan, misalkan form login, kita gunakan method POST.

edit_form.php

Untuk edit form pada dasarnya hampir sama dengan add_form.php hanya saja pada halaman
ini kita akan mengambil nilai yang dipassing dari link pada show.php. Pada saat kita meng-klik
pada link edit maka akan diredirect ke halaman edit_form.php dengan mengirimkan id yang akan
diedit dengan menggunakan method GET.

Sehingga pada halaman ini kita akan mengambil dulu dari querystring nilai id yang ingin di-edit,
kemudian kita ambil detailnya dari database dan kemudian ditampilkan dalam form. Untuk ID
akan kita buat readonly sehingga user hanya bisa bisa mengubah nilai dari field-field yang lain
saja.

<?
include (“includes/connection.php”);
$id = $_GET[“id”]; //get id to be edited
$con = mysql_connect($SERVER,$USER,$PASS);
mysql_select_db($DATABASE);
$rs = mysql_query(“select * from tab_phonebook where `id`=’$id’”);
if($fetch=mysql_fetch_array($rs)){
$found=true;
$name = $fetch[“name”];
$phone = $fetch[“phone”];
$email = $fetch[“email”];
$name = $fetch[“name”];
$time = strtotime($fetch[“birthdate”]);
$dd = date(“j”,$time);
$mm = date(“n”,$time);
$yy = date(“Y”,$time);
}

PHP Web Development Page 45 of 60


else{
$found=false;
echo “data tidak ada<BR>”;
echo ‘<a href=”add_form.php”>Back</a>’;
}
mysql_close($con);
if(!found) exit; //do nothing
?>
<html>
<head>
<title>My PhoneBook</title>
</head>
<body>
<? include (“includes/header.php”); ?><BR>
<form action=”edit_process.php” method=”POST”>
<table>
<tr>
<td>ID</td>
<td>
<input type=”text” name=”id” value=”<?= $id ?>” READONLY>
</td>
</tr>
<tr>
<td>Name</td>
<td><input type=”text” name=”name” value=”<?= $name ?>”></td>
</tr>
<tr>
<td>Phone</td>
<td><input type=”text” name=”phone” value=”<?= $phone ?>”>
</td>
</tr>
<tr>
<td>Email</td>
<td><input type=”text” name=”email” value=”<?= $email ?>”>
</td>
</tr>
<tr>
<td>Birthdate</td>
<td>
<select name=”dd”>
<?
for($i=1;$i<=31;$i++) {
if($i==$dd)
?>
<option value=”<?= $i ?>” SELECTED><?= $i ?></option>
<?
else
?>
<option value=”<?= $i ?>”><?= $i ?></option>
<?
}

PHP Web Development Page 46 of 60


<select name=”mm”>
<?
for($i=1;$i<=12;$i++) {
if($i==$mm)
?>
<option value=”<?= $i ?>” SELECTED><?= $i ?></option>
<?
else
?>
<option value=”<?= $i ?>”><?= $i ?></option>
<?
}
?>
</select>
<select name=”yy”>
<?
for($i=1900;$i<=2020;$i++) {
if($i==$yy)
?>
<option value=”<?= $i ?>” SELECTED><?= $i ?></option>
<?
else
?>
<option value=”<?= $i ?>”><?= $i ?></option>
<?
}
?>
</select>
</td>
</tr>
<tr>
<td colspan=”2”>
<input type=”submit” name=”edit” value=”Update”>
</td>
</tr>
</table>
</form>
</body>
</html>

Pada halaman ini user dapat mengubah nama, phone, email, dan birthdate. Untuk ID kita
tambahkan READONLY pada tag input sehingga tidak bisa diubah. Form ini akan dikirim ke
edit_process.php dengan method POST.

edit_process.php

Pada halaman edit_process.php kita dapat menangkap data-data yang dikirimkan dari
edit_form.php dan kemudian lakukan proses update ke database.

PHP Web Development Page 47 of 60


<?
if(empty($_POST)) { header(“location:show.php”); exit; }
include (“includes/connection.php”);

$name = $_POST[“name”]; //disesuaikan dengan nama textfield


$phone= $_POST[“phone”]; //disesuaikan dengan nama textfield
$email= $_POST[“email”]; //disesuaikan dengan nama textfield
$dd = $_POST[“dd”];
$mm = $_POST[“mm”];
$yy = $_POST[“yy”];
//validasi nama harus diisi
if($name==””){
echo “nama harus diisi<BR>”;
echo ‘<a href=”edit_form.php”>Back</a>’;
}else if(checkdate($mm,$dd,$yy)){
echo “tanggal tidak valid<BR>”;
echo ‘<a href=”edit_form.php”>Back</a>’;
}else{
//input user valid
$con = mysql_connect($SERVER,$USER,$PASS);
mysql_select_db($DATABASE);

$sql = “update tab_phonebook set


`name`=’$name’,
`phone`=’$phone’,
`email`=’$email’,
`birthdate`=’$$yy-$mm-$dd’ where `id`=’$id’;

$success = mysql_query($sql); //execute SQL statement


mysql_close($con);
if($success) header(“location:show.php”);
else {
echo “Error: ” . mysql_error() . “<BR>”;
echo ‘<a href=”edit_form.php”>Back</a>’;
}
}
?>

delete_form.php

Pada delete_form sama seperti halaman edit_form.php. Dapatkan id yang akan didelete dari
url dengan $_GET kemudian tampilkan konfirmasi menggunakan form. User dapat memilih untuk
klik button yes atau no. Untuk mengirimkan id lewat form kita dapat menggunakan hidden field
di mana informasinya kita sisipkan tanpa perlu dilihat user. Nilai dari hidden field akan tetap
dikirimkan lewat form ke halaman yang dituju.
<? $id = $_GET[“id”]; ?>
<form action=”delete_process.php” method=”POST”>
Are you sure ?
<input type=”hidden” name=”id” value=”<?= $id ?>”>
<input type=”submit” name=”action” value=”Yes”>
<input type=”submit” name=”action” value=”No”>
</form>

PHP Web Development Page 48 of 60


delete_process.php

Pada halaman ini kita ambil id yang dikirimkan lewat form dan action yang diklik apakah valuenya
bernilai “Yes” atau “No”. (Case-sensitive – disesuaikan dengan value pada tag input – submit).
<?
include (“includes/connection.php”);

$action = $_POST[“action”];

if($action==”No”) {
header(“location:show.php”);
}else if($action==”Yes”){
$id = $_POST[“id”];
$con = mysql_connect($SERVER,$USER,$PASS);
mysql_select_db($DATABASE);

$sql = ”delete from tab_phonebook where `id`=’$id’”;


$success = mysql_query($sql);
mysql_close($con);

if($success){
header(“location:show.php”);
}else{
echo “Error: ” . mysql_error() . “<BR>”;
echo ‘<a href=”delete_form.php”>Back</a>’;
}
}
?>

Catatan:

Untuk pindah ke halaman lain menggunakan header(“location:url.php”) tidak boleh terjadi


output ke client. Pastikan fungsi tersebut dipanggil sebelum terjadi output kepada user seperti
perintah echo. Selain menggunakan fungsi tersebut dapat juga menggunakan tag meta dari html
seperti berikut.

header(“location:show.php”);

dapat juga dilakukan dengan

<meta http-equiv=”refresh” content=”1;url=show.php”>

Dengan tag meta dari HTML tersebut browser akan direfresh dalam waktu 1 detik dan pindah ke
halaman show.php. Tag meta ini dapat digunakan walaupun sudah terjadi output kepada client.

PHP Web Development Page 49 of 60


Bagian 6 – Paging dan Filtering
6.1 Paging

Paging adalah suatu teknik untuk menampilkan data dari database per bagian di mana
menggunakan konsep halaman.

Pada halaman show.php akan kita modifikasi sedikit untuk memberikan efek paging.

...
<body>
<? include (“includes/header.php”); ?><BR>
<a href=””>Add new data</a>
<?
$con = mysql_connect($SERVER,$USER,$PASS);
mysql_select_db($DATABASE);

$sql = “select * from tab_phonebook”;


$rs = mysql_query($sql);

$page = (($_GET[“page”]==””) ? 1 : $_GET[“page”]);

$numrows = mysql_num_rows($rs);
$pagesize = 10; //jumlah record per halaman
$pagecount = ceil($numrows/$pagesize); //jumlah halaman

$sql .= “ limit “ . (($page-1)*$pagesize) . “ , “ . $pagesize;


$rs = mysql_query($sql);

//generate page navigation


for($i=1;$i<=$pagecount;$i++)
echo ‘<a href=”?page=’.$i.’”>’.$i.’</a>&nbsp;&nbsp;’;
?>
<table>
...

PHP Web Development Page 50 of 60


6.2 Searching

Pada halaman web kita juga dapat menambahkan fitur searching. Caranya tambahkan sebuah
form pada show.php

<form action=”” method=”POST”>


<input type=”text” name=”keyword”>
<input type=”submit” value=”search”>
</form>

Dengan mengosongkan bagian action, berarti data dalam form akan dikirimkan ke halaman yang
sama. Kemudian keyword yang dikirimkan kita tangkap dengan $_POST kemudian kita
tambahkan where pada sintaks SQL sebelum dieksekusi dengn mysql_query

...
<body>
<? include (“includes/header.php”); ?><BR>
<a href=””>Add new data</a>
<?
$con = mysql_connect($SERVER,$USER,$PASS);
mysql_select_db($DATABASE);

$sql = “select * from tab_phonebook”;

$keyword = $_POST[“keyword”];
if($keyword!=””){
$sql .= “ where `name` LIKE ‘$keyword%’”;
}

$rs = mysql_query($sql);

...

PHP Web Development Page 51 of 60


Bagian 7 – Session dan Cookies
7.1 Session

Session adalah suatu fitur untuk menampung suatu variabel di server di mana dapat digunakan
pada halaman-halaman web dalam satu session. Setiap user akan mendapatkan session id yang
unik dari server.

Untuk menggunakan session pada halaman web gunakan fungsi session_start(). Fungsi ini
harus dipanggil sebelum terjadi output kepada client.

<? // tidak boleh, ada spasi yang dikirim ke user


session_start();
?>
...

Seharusnya seperti berikut ini:


<?
session_start();
?>
...

Setelah fungsi tersebut dipanggil halaman tersebut dapat menggunakan variabel $_SESSION.

session1.php

<?
session_start();
$_SESSION[“nilai”] = 100; //simpan nilai ke session
?>
<a href=”session2.php”>Ke halaman kedua</a>

session2.php

<?
session_start();
echo $_SESSION[“nilai”]; //cetak nilai dari session
?>

Session juga dapat dimanfaatkan untuk proses login. Pada saat login berhasil simpanlah suatu
nilai misalkan username yang sedang login pada session, kemudian pada saat mengakses suatu
halaman yang ingin diproteksi cek terlebih dahulu apakah di session terdapat username yang
sedang login jika tidak ada pindahkan ke halaman login.

Session secara default disimpan di C:\Windows\Temp (PHP Versi 4.3.9) atau dapat diset dengan
menggunakan session_save_path di mana harus dipanggil sebelum session_start()

<?
session_save_path(“foldersess”);
session_start();
?>

PHP Web Development Page 52 of 60


Fungsi-fungsi session lainnya:

session_destroy() - untuk menghapus session yang sedang aktif


session_id() - untuk mendapatkan/mengeset session id yang digunakan. Untuk
mengeset session id fungsi ini harus dipanggil sebelum
session_start()

7.2 Cookies

Cookies adalah suatu teknik menyimpan suatu nilai pada sisi client, berbeda dengan session yang
disimpan di server. Untuk menyimpan nilai cookie digunakan fungsi setcookie. Untuk
mengakses nilai cookide digunakan variabel $_COOKIE

format:

bool setcookie ( string name [, string value [, int expire [, string


path [, string domain [, int secure]]]]])

Parameter Keterangan Contoh


name nama dari cookie 'cookiename' digunakan dalam $_COOKIE['cookiename']
value nilai dari cookie nilai di dapat dari $_COOKIE[“cookiename’]
time()+60*60*24*30 akan menyebabkan cookie berlaku
waktu berlaku cookie. dalam detik. fungsi time()
selama 30 hari. Jika parameter ini dikosongkan maka
expire biasa digunakan untuk mendapatkan waktu dari
cookie akan berlaku hingga akhir session (pada saat
sistem
browser ditutup)
Jika menggunakan '/', cookie berlaku untuk keseluruhan
domain. Jika diset '/foo/', cookie hanya berlaku untuk
path path di server di mana cookie berlaku
direktori /foo/ dan sub-direktorinya. Nilai defaultnya
adalah direktori yang sedang aktif.
Agar cookie berlaku untuk semua subdomains dari
example.com maka set nilainya menjadi '.example.com'.
domain Nama domain di mana cokie berlaku.
Jika diset dengan www.example.com maka cookiehanya
berlaku untuk subdomain www.
mengindikasikan apakah cookie dikirimkan
melalui koneksi HTTPS yang secure. Jika diset 1,
secure 0 or 1
cookie hanya dapat diset jika menggunakan SSL
secure connection. Nilai defaultnya adalah 0.

<?php
$value = 'something from somewhere';

setcookie ("TestCookie", $value);


setcookie ("TestCookie", $value,time()+3600); /* expire in 1 hour */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/",
".example.com", 1);
?>

Untuk menghapus cookie, setcookie dengan waktu yang expired.

<?php
// set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
?>
PHP Web Development Page 53 of 60
Array of Cookies

<?php
// set the cookies
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");

// after the page reloads, print them out


if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
echo "$name : $value <br />\n";
}
}

/* which prints

three : cookiethree
two : cookietwo
one : cookieone
*/
?>

PHP Web Development Page 54 of 60


Bagian 8 – File and Handling Uploads
Pada bagian ini kita akan membahas fungsi-fungsi file dan cara mengupload file melalui web dan
bagaimana cara penanganannya.

8.1 Baca file- fopen, fread

<?
$filename =”filetoread.txt”;

if(file_exists($filename))&&filesize($filename)!=0){
$fp = fopen($filename, “r”); //read file
$result = fread($fp,filesize($fp));
fclose($fp);
echo “File content:<BR>” . $result;
}
?>

Selain fread juga dapat menggunakan fungsi fgets, fscanf.

8.2 Tulis file – fopen, fwrite

<?
$fp = fopen(“filetowrite.txt”,”w”); //a – for append
fwrite($fp, “some text to write”);
fclose($fp);
?>

Selain fwrite juga dapat menggunakan fungsi fputs, fprintf.

8.3 Menampilkan isi direktori - opendir

<?php
$dir = "/tmp/";

// Open a known directory, and proceed to read its contents


if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
print "filename: $file – “;
print “filetype: ".filetype($dir . $file)."\n";
}
closedir($dh);
}
}
?>

8.4 Mengubah nama file - rename

<?
rename(“file1.txt”,”file2.txt”);
?>

PHP Web Development Page 55 of 60


8.5 Menghapus suatu file - unlink

<?
unlink (“filetodelete.html”);
?>

8.6 Menampilkan file dengan berbagai format

Sebagai contoh kita ingin menampilkan file dengan format PDF.

<?
// We'll be outputting a PDF
header("Content-type: application/pdf");

// It will be called mytitle.pdf


header("Content-Disposition: attachment; filename=mytitle.pdf");

// The PDF source is in original.pdf


readfile('original.pdf');
?>

8.7 Uploading files

Untuk proses upload kita sediakan form untuk upload file terlebih dahulu. Data dalam form akan
disubmit dan akan kita tampilkan informasi file yang diupload.

form_upload.html

<form action=”singleupload.php” method=”POST”


enctype=”multipart/form-data”>

<input type=”hidden” name=”MAX_FILE_SIZE” value=”30000”>


<input type=”file” name=”userfile”>
<input type=”submit” value=”Upload”>
</form>

Dalam form penggunakan nilai MAX_FILE_SIZE besifat optional. Pada tag form tambahkan
enctype=”multipart/form-data”. Data akan dikirimkan ke singleupload.php

singleupload.php

<?
$files = $_FILES[“userfile”];
$name = $files[“name”]; //nama file
$type = $files[“type”]; //tipe file
$size = $files[“size”]; //ukuran file
$tmp_name = $files[“tmp_name”]; //hasil upload di tmp
$error = $files[“error”]; //kode error

PHP Web Development Page 56 of 60


$uploaddir = '/var/www/uploads/';

$destination = $uploaddir . $name;


if ( move_uploaded_file($tmp_name, $destination) ) {
echo “success”;
print_r($files);
} else {
echo “fail”;
print_r($files);
}

Kode error yang dikembalikan adalah sebagai berikut:


UPLOAD_ERR_OK – 0 : Tidak ada error, upload file sukses.
UPLOAD_ERR_INI_SIZE – 1 : Upload melebihi ukuran max yang diset di php.ini.
UPLOAD_ERR_FORM_SIZE – 2 : Upload melebihi nilai hidden field MAX_FILE_SIZE.
UPLOAD_ERR_PARTIAL – 3 : Terupload sebagian.
UPLOAD_ERR_NO_FILE – 4 : Tidak ada file yang terupload.

Proses upload secara otomatis akan dicopy ke tmp_name kemudian dengan fungsi
move_uploaded_file kita pindahkan file tersebut ke target file yang kita inginkan.

Untuk upload beberapa file sekaligus dapat menggunakan form sebagai berikut.

form_multi_upload.html

<form action=”multiupload.php” method=”POST”


enctype=”multipart/form-data”>

<input type=”hidden” name=”MAX_FILE_SIZE” value=”30000”>


<input type=”file” name=”userfile[]”>
<input type=”file” name=”userfile[]”>
<input type=”file” name=”userfile[]”>
<input type=”submit” value=”Upload”>
</form>

Maka $_FILES[“userfile”][“name”] adalah suatu array di mana terdiri dari


$_FILES[“userfile”][“name”][0] => file pertama
$_FILES[“userfile”][“name”][1] => file kedua
$_FILES[“userfile”][“name”][2] => file ketiga
demikian pula dengan nilai yang lainnya seperti type, size, dan sebagainya.

PHP Web Development Page 57 of 60


Bagian 9 – Shopping Cart
Shopping Cart adalah cara yang biasa digunakan pada halaman web e-commerce di mana
pengunjung situs dapat melihat daftar produk beserta gambar dan deskripsinya, kemudian
memilih produk-produk yang ingin dimasukkan ke keranjang belanjanya.

Untuk membuat shopping cart kita dapat memanfaatkan variabel session. Setiap user meng-klik
add to cart – tambahkanlah item tersebut dalam $_SESSION. Kemudian pada saat halaman
order kita dapat menampilkan halaman konfirmasi order, tampilkan semua produk yang tadi
dipesan, kemudian user dapat menginput jumlah yang ingin dipesan dan kemudian klik Confirm.

PHP Web Development Page 58 of 60


Index
$_COOKIE, 53 fwrite, 55
$_GET, 44 GET, 44
$_POST, 44 Group By, 36
$_SESSION, 52 HAVING, 36
<body>, 11 header, 49
<div>, 12 hidden field, 48
<form>, 15 HTML Tags, 11
<head>, 11 html_entity_decode, 29
<html>, 11 htmlentities, 29
<select>, 16 htmlspecialchars, 28
<table>, 12 httpd.conf, 6, 8
<td>, 12 implode, 28
<textarea>, 17 in_array, 24
<title>, 11 include, 19
<tr>, 12 Insert, 32
addslashes, 27 Limit, 36
Aggregate Function, 35 MAX, 35
AVG, 35 MAX_FILE_SIZE, 56
MAX, 35 md5, 26
MIN, 35
SUM, 35 meta, 49
Apache Server, 4 MIN, 35
Array, 22 move_uploaded_file, 57
Array Functions, 23 MySQL Server, 10
array_filter, 25 mysql_close, 37
array_intersect, 26 mysql_connect, 37
array_key_exists, 24 mysql_fetch_array, 37
array_keys, 23 mysql_fetch_field, 39
array_merge, 26 mysql_num_fields, 39
array_splice, 24 mysql_num_rows, 38
array_unique, 25 mysql_query, 38
array_values, 24 mysql_select_db, 37
auto Increment, 40 number_format, 26
AVG, 35 Objects, 29
Checkbox, 17 opendir, 55
Class, 29 Paging, 50
Control Structure, 18 parse_str, 27
Struktur Pemilihan, 18 passing parameter, 21
Struktur perulangan, 19 port, 9
Cookies, 53 POST, 44
count, 23 primary key, 40
Count, 36 RadioButton, 17
Delete, 34 rename, 55
DML ( Data Manipulation Language ), 32 return value, 21
documentroot:, 8 searching, 51
enctype=”multipart/form-data”, 56 Select, 33
explode, 28 Session, 52
fopen, 55 session id, 52
for each, 22 session_destroy(), 53
fread, 55 session_id(), 53
Function, 21

PHP Web Development Page 59 of 60


session_save_path, 52 strtolower, 27
session_start(), 52 strtoupper, 27
setcookie, 53 substr, 27
sha1, 26 SUM, 35
Shopping Cart, 58 trim, 28
sprintf, 28 unlink, 56
SQL, 32 Update, 34
SQLYog, 30 UPLOAD_ERR_FORM_SIZE, 57
sscanf, 28 UPLOAD_ERR_INI_SIZE, 57
str_ireplace, 27 UPLOAD_ERR_NO_FILE, 57
str_replace, 27 UPLOAD_ERR_OK, 57
String Functions, 26 UPLOAD_ERR_PARTIAL, 57
stripslashes, 27 Uploading files, 56
strlen, 27 Variabel, 18

PHP Web Development Page 60 of 60

You might also like