Académique Documents
Professionnel Documents
Culture Documents
September 2011
ii | P a g e
Information in this document, including URL and other Internet Web site references, is
subject to change without notice.
software that may be changed substantially prior to final commercial release, and is the
proprietary information of Binus University.
This document is for informational purposes only.
Complying with all applicable copyright laws is the responsibility of the user.
Without limiting the rights under copyright, no part of this document may be
reproduced, stored in or introduced into a retrieval system, or transmitted in any form or
by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any
purpose, without the express written permission of Binus University.
Binus University may have patents, patent applications, trademarks, copyrights, or other
intellectual property rights covering subject matter in this document. Except as expressly
provided in any written license agreement from Binus University, the furnishing of this
document does not give you any license to these patents, trademarks, copyrights, or
other intellectual property.
Unless otherwise noted, the example companies, organizations, products, domain
names, e-mail addresses, logos, people, places and events depicted herein are fictitious,
and no association with any real company, organization, product, domain name, email
address, logo, person, place or event is intended or should be inferred.
2011 Binus University. All rights reserved.
The names of actual companies and products mentioned herein may be the trademarks
of their respective owners.
iii | P a g e
Table of Contents
OVERVIEW .............................................................................................................................. 1
Chapter 01 Introduction to PHP................................................................................................. 2
Chapter 02 Basic PHP ................................................................................................................ 8
Chapter 03 String and Array .................................................................................................... 20
Chapter 04 Function ................................................................................................................. 33
Chapter 05 Using MySql ......................................................................................................... 53
Chapter 06 Database Manipulation .......................................................................................... 59
Chapter 07 Advanced PHP Techniques ................................................................................... 69
Chapter 08 Report .................................................................................................................... 79
1|Page
OVERVIEW
Chapter 01
Chapter 02
Chapter 03
String and Array : Inisialisasi dan Manipulasi String, Inisialisasi dan Manipulasi
Array, Baca-Tulis File
Chapter 04
Chapter 05
Chapter 06
Chapter 07
Advanced PHP Techniques : Session and Cookies, File Upload, Paging, Mail
Chapter 08
2|Page
Chapter 01
Introduction to PHP
Objectives
1. Pengenalan PHP
2. Pengenalan Layanan Basis Data
3. Arsitektur Sever-Client
4. Tag-tag dalam PHP
5. Sintaks dalam PHP
6. Komentar dalam PHP
7. Exercise
Learning Outcomes
3|Page
berbasiskan
baris
perintah
(command-line
pada 17 Maret 2011 yaitu versi 5.3.6. Di praktikum, kita menggunakan versi 5.2.8.
yang
berjalan
sebagai
peladen
yang
4|Page
sang pengembang, Widenius, sedangkan SQL adalah singkatan dari Structured Query
Language.
MySQL pada awalnya dikembangkan oleh Michael Widenius dan David Axmark pada
tahun 1994. Rilis publik pertamanya adalah versi 3.23 yang diluncurkan pada Juni 2000.
Versi terakhirnya adalah versi 5.5.12 diluncurkan pada 5 Mei 2011 yang lalu. Versi 5.5
sudah dikembangkan oleh tim Oracle dan Sun Microsystem. Di praktikum, kita
menggunakan MySQL versi 5.1.30 yang disediakan bersama XAMPP 1.7.3 dengan
bantuan phpMyAdmin.
1.3 Arsitektur Server-Client
Dalam model klien/server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi
masih merupakan sebuah kesatuan yakni komponen klien dan komponen server.
Komponen klien juga sering disebut sebagai front-end, sementara komponen server
disebut sebagai back-end. Komponen klien dari aplikasi tersebut dijalankan dalam sebuah
workstation dan menerima masukan data dari pengguna. Komponen klien tersebut akan
menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan teknologi
pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di
atas mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang
dimiliki oleh server. Komponen server akan menerima request dari klien, dan langsung
memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada klien. Klien pun
menerima informasi hasil pemrosesan data yang dilakukan server dan menampilkannya
kepada pengguna, dengan menggunakan aplikasi yang berinteraksi dengan pengguna.
Contoh dari aplikasi client/server sederhana adalah aplikasi web yang dapat didesain
dengan menggunakan PHP, JSP, ASP atau script lainnya akan dijalankan di dalam web
server (seperti Apache atau Internet Information Services), sementara skrip yang berjalan
di pihak klien akan dijalankan oleh web browser pada komputer klien.
1.4 Tag-tag dalam PHP
Untuk menyertakan suatu sintaks PHP ke dalam sumber kode HTML, diperlukan penanda
khusus. Ada dua macam penanda yang bisa digunakan yaitu:
<?php dan ?>
<script language="php"> dan </script>
5|Page
Selain dua macam penanda di atas ada pula penanda singkat yaitu:
<? dan ?> berfungsi sama seperti penanda di atas. Tetapi disarankan memakai tag
<?php dan ?> karena tag <? dan ?> di php versi yang baru akan dihilangkan.
<?= dan ?> berfungsi untuk mengeluarkan output langsung. Tetapi disarankan
memakai tag <?php echo . ?> karena tag <? dan ?> di php versi yang baru akan
dihilangkan.
Pengaturan tag singkat ini ada dalam file php.ini dalam potongan baris berikut
short_open_tag = off. Nilai dari atribut short_open_tag dapat diganti dengan on atau
off.
1.5 Sintaks dalam PHP
Bila tag PHP sudah dibuat, di dalamnya bisa dimasukan beberapa sintaks PHP, di mana
bisa perintah, deklarasi variabel, operasi aritmetika dan lain sebagainya. Untuk mencetak
sesuatu ke dalam halaman web akhir bisa digunakan sintaks echo diikuti dengan apa yang
ingin ditulis dengan diapit tanda kutip (") dan tidak memerlukan buka dan tutup kurung ((
dan )). Akhiri pula setiap baris sintaks dengan titik koma (;).
Berbeda dengan html dimana kita menggunakan <!-- dan --> untuk membuat komentar,
dalam PHP kita bisa menggunakan tiga macam penanda untuk komentar yaitu:
Penanda buka //
Digunakan untuk memberikan komentar pada akhir suatu sintaks.
Penanda buka #
Digunakan untuk memberikan komentar pada suatu baris penuh.
6|Page
7|Page
8|Page
Chapter 02
Basic PHP
Objectives
Learning Outcomes
9|Page
Variabel di dalam PHP tidak mengenal tipe data, atau sering disebut dengan Loosely
Typed Language. PHP akan secara otomatis mengkonversi variabel tersebut menjadi tipe
data yang benar berdasarkan nilainya.
Nama dan tipe data variabel di dalam PHP juga tidak perlu dideklarasikan secara spesifik,
atau sering disebut dengan Weakly Typed Language. PHP akan mende-klarasikan variabel
tersebut ketika Anda menggunakannya.
Cara membuat maupun memanggil variabel di dalam PHP hanya perlu menandai tanda
dollar ($) di awal nama variabel tersebut. Untuk memberikan nilai ke dalam variabel
dapat menggunakan tanda sama dengan (=). Saat memanggilnya dengan echo, variabel
ini dapat digabungkan menggunakan operator titik (.).
Sebuah nama variabel harus dimulai dengan huruf atau sebuah underscore (_).
Sebuah nama variabel hanya dapat memuat karakter alfa-numerik dan under-score (az, A-Z, 0-9, dan _).
Sebuah nama variabel juga tidak boleh memuat spasi. Jika nama variabel merupakan
dua kata atau lebih, maka harus dipisahkan dengan underscore ($kalimat_pembuka),
atau dengan kapitalisasi ($kalimatPembuka).
10 | P a g e
Operator Aritmetika
Operator
Penjelasan
Penjumlahan
+
Pengurangan
Perkalian
*
Pembagian
/
Penggabungan
.
Modulus (sisa bagi)
%
++
-
Penaikan
Penurunan
Operator Penugasan
Operator
Contoh
x=y
=
x+=y
+=
x-=y
-=
x*=y
*=
x/=y
/=
x.=y
.=
x%=y
%=
Contoh
2+2
5-2
4*5
5/2
5.2
5%2
10%8
10%2
x=5; x++
x=5; x--
Hasil
4
3
20
2.5
52
1
2
0
x=6
x=4
11 | P a g e
Operator Perbandingan
Operator
Penjelasan
Sama dengan
==
Tidak sama dengan
!=
Tidak sama dengan
<>
Lebih besar dari
>
Lebih kecil dari
<
Lebih besar dari atau sama dengan
>=
Lebih kecil dari atau sama dengan
<=
Operator Logika
Operator
Description
Dan
&&
||
Atau
Bukan/tidak
Contoh
5==8
5!=8
5<>8
5>8
5<8
5>=8
5<=8
Hasil
False
True
True
False
True
False
True
Contoh
x=6; y=3;
(x<10&&y>1)
x=6; y=3
(x==5||y==5)
x=6; y=3
!(x==y)
Hasil
True
False
True
12 | P a g e
13 | P a g e
$hasil =
(n == label1 ? nilai hasil yang diinginkan bila n sama dengan label1 :
(n == label2 ? nilai hasil yang diinginkan bila n sama dengan label2 :
nilai hasil yang diinginkan bila n tidak sama dengan label1 dan label2 ));
Kondisi ini dapat digabungkan menggunakan operator logika. Perhatikan contoh di
bawah ini yang akan mencetak Selamat berakhir pekan!.
Menggunakan For
Cara penulisan sintaks:
for (inisialisasi; kondisi perulangan; perubahan nilai){
kode yang akan dijalankan;
}
Saat menggunakan for, inisialisasi akan dijalankan di awal, kemudian kondisi
perulangan akan dicek. Jika kondisi perulangan terpenuhi atau benar, maka kode
yang akan dijalankan akan dijalankan. Setelah dijalankan, perubahan nilai akan
dilakukan. Setelah itu, akan dicek kembali kondisi perulangan, perulangan
dilakukan, dan seterusnya.
Perhatikan contoh di bawah ini yang akan mencetak 0 2 4.
14 | P a g e
Menggunakan While
Cara penulisan sintaks:
while (kondisi){
kode yang akan dijalankan;
}
Saat menggunakan while, kode yang akan dijalankan akan dijalankan hanya bila
kondisi terpenuhi atau benar. Perulangan akan terhenti saat kondisi sudah tidak
terpenuhi.
Perhatikan contoh di bawah ini yang akan mencetak 0 2 4.
Menggunakan Do While
Cara penulisan sintaks:
do{
kode yang akan dijalankan;
}while (kondisi);
15 | P a g e
Saat menggunakan do while, kode yang akan dijalankan akan dijalankan terlebih
dahulu. Bila kondisi terpenuhi, perulangan akan dilakukan kembali. Perulangan akan
terhenti saat kondisi sudah tidak terpenuhi.
Perhatikan contoh di bawah ini yang akan mencetak 0 2 4.
$_POST
Cara penulisan sintaks:
$_POST['nama variabel']
$_POST digunakan untuk mendapatkan nilai suatu input dalam suatu form yang yang
dikirim dengan method post (data yang dikirim tidak terlihat di dalam URL).
$_GET
Cara penulisan sintaks:
$_GET['nama variabel']
$_GET digunakan untuk mendapatkan nilai suatu input dalam suatu form yang yang
dikirim dengan method get, maupun yang dilemparkan melalui URL (data yang
dikirim terlihat di dalam URL).
Catatan:
Metode ini tidak digunakan ketika ingin mengirimkan nilai seperti password atau
informasi sensitif lainnya dan juga metode ini tidak cocok untuk mengirimkan nilai
yang sangat besar jumlahnya karena metode ini hanya bisa menampung tidak lebih
dari 2000 karakter.
16 | P a g e
$_REQUEST
Cara penulisan sintaks:
$_REQUEST['nama variabel']
$_REQUEST digunakan untuk mendapatkan nilai suatu input dalam suatu form yang
yang dikirim dengan method post, method get, maupun yang dilemparkan melalui
URL.
17 | P a g e
2.7 Exercise
Soal
Buatlah sebuah halaman PHP yang akan meminta inputan kalimat apa yang ingin diulang.
Saat user mengirim kalimat tersebut, alihkanlah ke halaman proses. Di sana, lakukan
validasi. Bila kalimat yang dimasukan kosong, tampilkan pesan Anda harus memasukan
suatu kalimat. Jika tidak, tampilkan nomor baris dan kalimat tersebut sebanyak sepuluh
kali. Tampilkan pula link untuk kembali ke halaman awal.
Jawab
Dengan menggunakan Expression Web, buatlah sebuah halaman PHP baru, masukkan
kode di bawah ini, lalu simpanlah dengan nama lat2-awal.php.
18 | P a g e
19 | P a g e
20 | P a g e
Chapter 03
String and Array
Objectives
1. Inisialisasi String
2. Manipulasi String
3. Inisialisasi Array
4. Manipulasi Array
5. Baca-Tulis File
6. Exercise
Learning Outcomes
21 | P a g e
Cara membuat maupun memanggil string (dan juga variabel lainnya) di dalam PHP hanya
perlu menandai tanda dollar ($) di awal nama variabel string tersebut. Untuk memberikan
nilai ke dalam variabel dapat menggunakan tanda sama dengan (=).
Sebuah string dapat dipanggil menggunakan echo. Manipulasi yang bisa dilakukan
terhadap string diantaranya adalah penggabungan string, yaitu menggunakan operator
titik (.). Selain menggunakan operator, ada pula beberapa fungsi untuk melakukan
manipulasi string.
Lebih jelasnya mengenai fungsi-fungsi ini dapat dipelajari pada bab selanjutnya.
Gambar 21: Kode sumber contoh pembuatan & pemanggilan variabel string
22 | P a g e
Gambar 22: Tampilan contoh pembuatan & pemanggilan variabel string pada
browser
3.3 Inisialisasi Array
Sebuah array adalah sebuah variabel khusus yang bisa menampung beberapa nilai dalam
satu variabel saja. Sebuah array dapat menampung semua nilai variabel Anda dalam satu
nama yang sama, dan Anda dapat mengakses nilainya dengan menunjuk nama array.
Setiap unsur dalam array memiliki indeks atau namanya sendiri-sendiri sehingga dapat
dengan mudah diakses.
Aturan penamaan variabel (termasuk array), dapat dilihat pada bab sebelumnya.
Ada tiga jenis array yang dikenali di PHP yaitu array numerik, asosiatif, dan multidimensi. Berikut ini dari inisialisasi dari masing-masing jenis array tersebut.
Array Numerik
Array dengan indeks numerik
Cara penulisan sintaks:
$nama_larik = array(nilai1, nilai2, nilai3);
Atau bisa juga dengan:
$nama_larik[0] = nilai1;
$nama_larik[1] = nilai2;
$nama_larik[2] = nilai3;
23 | P a g e
Array Asosiatif
Array dimana setiap kunci ID diasosiasikan untuk setiap nilainya
Cara penulisan sintaks:
$nama_larik =
array(
kunci_ID1 => nilai1,
kunci_ID2 => nilai2,
kunci_ID3 => nilai3
);
Atau bisa juga dengan:
$nama_larik[kunci_ID1] = nilai1;
$nama_larik[kunci_ID2] = nilai2;
$nama_larik[kunci_ID3] = nilai3;
Perhatikan contoh di bawah ini yang akan mencetak Masing-masing asrama di
Hogwarts dikepalai oleh Minerva McGonagall, Pomona Sprout, Filius Flitwick, dan
Severus Snape.!
24 | P a g e
Array Multi-dimensi
Array yang memuat satu atau lebih array di dalamnya
Cara penulisan sintaks:
$nama_larik_induk = array(
nama_larik_anak1 => array(
nilai11, nilai12, nilai13
),
nama_larik_anak2 => array(
nilai21
),
nama_larik_anak3 => array(
nilai31, nilai32
)
);
Atau bisa juga dengan teknik numerik seperti ini:
$nama_larik_induk = array(
nama_larik_anak1 => array(
[0] => nilai11
[1] => nilai12
[2] => nilai13
),
nama_larik_anak2 => array(
[0] => nilai21
),
nama_larik_anak3 => array(
[0] => nilai31
[1] => nilai32
)
);
Atau bisa juga dengan teknik asosiatif seperti ini:
25 | P a g e
$nama_larik_induk = array(
nama_larik_anak1 => array(
kunci_ID11 => nilai11
kunci_ID12 => nilai12
kunci_ID13 => nilai13
),
nama_larik_anak2 => array(
kunci_ID21 => nilai21
),
nama_larik_anak3 => array(
kunci_ID31 => nilai31
kunci_ID32 => nilai32
)
);
Perhatikan contoh di bawah ini yang akan mencetak
Asrama-asrama di Hogwarts
Nama Asrama
Kepala
Penunggu
Pendiri
Gryffindor
Minerva
McGonagall
Hufflepuff
Pomona Sprout
Helga Hufflepuff
Ravenclaw
Filius Flitwick
Rowena Ravenclaw
Slytherin
Severus Snape
S Slytherin
26 | P a g e
27 | P a g e
print_r()
print_r digunakan untuk menampilkan isi dari semua array.
Contoh:
Gambar 26: Contoh penggunaan print_r
Dengan kode yang ada pada contoh inisialisasi array, hal ini akan menghasilkan:
array_search()
array_search digunakan untuk mencari ada pada posisi mana semua tersebut.
Contoh:
sort()
sort digunakan untuk mengurutkan isi dari semua array.
Contoh:
28 | P a g e
Berikut ini adalah beberapa fungsi yang digunakan untuk melakukan baca-tulis file:
fopen()
digunakan untuk membuka suatu file yang ingin dibaca atau ditulis.
fclose()
digunakan untuk menutup suatu file di PHP bila sudah selesai dibaca atau ditulis.
feof()
digunakan untuk menentukan apakah pembacaan sudah berada di akhir file.
fgets()
digunakan untuk mengambil beberapa karakter yang ada pada satu baris dari suatu
file.
fgetc()
digunakan untuk mengambil satu buah karakter yang ada dari suatu file.
fwrite()
digunakan untuk menuliskan sesuatu ke dalam suatu file.
Saat membuka suatu file, kita harus menentukan mode yang kita inginkan. Mode-mode
yang ada adalah sebagai berikut:
29 | P a g e
Mode
r
r+
w
w+
a
a+
x
x+
Penjelasan
Baca saja. Dimulai dari awal file
Baca-tulis. Dimulai dari awal file
Tulis saja. Membuka dan mengosongkan file, file akan dibuat bila tidak ada
Baca-tulis. Membuka dan mengosongkan file, file akan dibuat bila tidak ada
Menambah. Membuka dan menambahkan file, file akan dibuat bila tidak ada
Baca-menambah. Membuka dan menulis sesuatu pada akhir file
Tulis saja. Membuat file baru. Mengembalikan FALSE bila file sudah ada
Baca-tulis. Membuat file baru. Mengembalikan FALSE bila file sudah ada
30 | P a g e
Jawab
Dengan menggunakan Expression Web, buatlah sebuah halaman PHP baru, masukkan
31 | P a g e
32 | P a g e
Atau akan tampil hasil seperti di bawah ini bila kalian buka di Notepad:
33 | P a g e
Chapter 04
Function
Objectives
1. Function
2. Built-in Function
3. Filter
4. String Function
5. Exception Handling
6. Exercise
Learning Outcomes
34 | P a g e
4.1 Function
Function adalah beberapa baris kode dari program yang lebih besar yang melakukan tugas
tertentu yang memiliki nama tertentu, bisa dipanggil berulang kali, serta umumnya
independen terhadap kode yang lainnya.
Dalam PHP, selain sudah disediakan pustaka untuk lebih dari 700 function internal, kita
bisa membuat function kita sendiri. Cara penulisan sintaks untuk membuat function
adalah sebagai berikut:
35 | P a g e
Gambar 37: Hasil contoh pembuatan & pemanggilan function pada browser
4.2 Built-in Function
Built-in function adalah fungsi yang sudah disediakan oleh PHP secara internal, sehingga
tidak perlu dibuat manual seperti di atas. Ada 700 lebih built-in function yang ada di
PHP. Yang akan kita pelajari di sini adalah include dan date saja.
Include()
Include digunakan untuk memasukan halaman lain ke halaman yang saat ini, biasanya
digunakan untuk header dan footer. Header dan footer dapat kita simpan sebagai
halaman terpisah, lalu memanggilnya di halaman lain, sehingga kita perlu melakukan
copy-paste manual ke setiap halamannya.
36 | P a g e
Date()
Date digunakan untuk menampilkan tanggal hari ini dengan format tertentu yang kita
tentukan.
Timestamp merupakan urutan karakter yang menunjukkan tanggal dan / atau waktu di
mana peristiwa tersebut terjadi.
37 | P a g e
Parameter
format
timestamp
Deskripsi
Diperlukan. Menentukan format timestamp
Opsional. Menentukan timestamp. Default adalah tanggal dan
waktu
38 | P a g e
r
U
Tanggal sesuai RFC 2822 (mis, Thu, 21 Desember 2000 16:01:07 +0200)
Detik sejak Unix Epoch (1 Januari 1970 00:00:00 GMT)
Contoh:
<?php
echo date("Y/m/d") . "<br />";
echo date("Y.m.d") . "<br />";
echo date("Y-m-d");
?>
Hasil dari kodingan diatas:
2011/08/26
2011.08.26
2011-08-26
Perhatikan contoh dibawah ini yang akan mencetak
Wednesday 18th of May 2011 05:51:31 PM!
Gambar 40: Kode sumber contoh date function
Parameter opsional timestamp pada fungsi Date() menentukan informasi waktu. Jika
tidak menentukan informasi waktu, maka waktu dan tanggal sekarang yang akan
digunakan. Disini akan menjelaskan dengan menggunakan fungsi mktime() yang akan
mengembalikan informasi waktu UNIX untuk tanggal.
Unix Timestamp berisi jumlah detik antara Unix Epoch (1 Januari 1970 00:00:00
GMT) dan waktu yang ditentukan.
39 | P a g e
4.3 Filter
Filter adalah bantuan yang disediakan oleh PHP dalam memudahkan kita untuk
melakukan validasi dan penyaringan data yang dikirimkan oleh user. Misalnya saja jika
kita ingin melakukan validasi angka, daripada melakukan perulangan per indeks
karakternya dan melakukan is_nan, kita bisa memanfaatkan filter yang jauh lebih singkat.
Filter bisa digunakan untuk melakukan validasi tertentu. Filter validasi yang dikenal
adalah:
Nama
Penjelasan
FILTER_VALIDATE_INT
Validasi bilangan bulat.
FILTER_VALIDATE_BOOLEAN Jika "1", "true", "on" "yes" nengembalikan
TRUE,
Jika "0", "false", "off", "no", "", NULL
mengemba-likan FALSE
FILTER_VALIDATE_FLOAT
Validasi bilangan pecahan
FILTER_VALIDATE_REGEXP
Validasi sesuai regular expression
FILTER_VALIDATE_URL
Validasi URL
FILTER_VALIDATE_EMAIL
Validasi e-mail
FILTER_VALIDATE_IP
Validasi IP address, (IPv4 atau IPv6)
Cara memakai fungsi validasi di atas adalah sebagai berikut:
if(!filter_var(yang akan dicek, nama filter)){
Kode yang akan dijalankan bila validasi gagal;
}else{
Kode yang akan dijalankan bila validasi berhasil;
}
Perhatikan contoh berikut yang akan mecetak Ini angka!
40 | P a g e
41 | P a g e
5. strlen()
Strlen digunakan untuk mengembalikan panjang suatu string.
Biasanya strpos dimanfaatkan untuk melakukan validasi pada alamat di mana harus
mengandung kata Jalan dan sejenisnya. Untuk lebih memahami penggunaan
sintaksnya, perhatikanlah contoh di bawah ini yang akan mencetak 6!
Gambar 47: Kode sumber contoh penggunaan strpos
7. substr()
Substr digunakan untuk mengambil suatu teks dalam suatu string lainnya, dimulai dari
titik tertentu sepanjang sekian karakter.
Biasanya substr dimanfaatkan untuk memisahkan nama depan dengan nama belakang
(perlu digabungkan pula dengan strpos). Untuk lebih memahami penggunaan
sintaksnya, perhatikanlah contoh di bawah ini yang akan mencetak world!
Gambar 48: Kode sumber contoh penggunaan substr
8. strcmp()
Strcmp digunakan untuk membandingkan suatu string dengan string yang lainnya.
Strcmp akan mengembalikan 0 jika kedua string tersebut sama, nilai negatif bila
string pertama lebih kecil dari string kedua, dan nilai positif bila sebaliknya.
42 | P a g e
Biasanya strcmp dimanfaatkan untuk melakukan validasi atas pilihan tertentu. Untuk
lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini yang
akan mencetak 0!
Gambar 49: Kode sumber contoh penggunaan strcmp
9. explode()
Explode digunakan untuk memisahkan suatu string berdasarkan pemisah tertentu dan
menyimpan hasilnya ke dalam array.
Biasanya explode dimanfaatkan untuk menyimpan data yang disimpan dalam file
yang kemudian akan diproses ke dalam array. Untuk lebih memahami penggunaan
sintaksnya, perhatikanlah contoh di bawah ini yang akan mencetak Array ([0] =>
WL [1] => William Surya Permana [2] => Teknik Informatika)!
Biasanya explode dimanfaatkan untuk mengolah data array di dalam PHP untuk
kemudian dalam disimpan bentuk file eksternal. Untuk lebih memahami penggunaan
sintaksnya, perhatikanlah contoh di bawah ini yang akan mencetak WL, William
Surya Permana, Teknik Informatika!
43 | P a g e
Biasanya addslashes dimanfaatkan untuk membuat suatu string aman untuk dientri
sebagai query. Karakter petik dalam query dapat dianggap sebagai pembuka atau
penutup string, sehingga perlu diberi
Biasanya chop dimanfaatkan untuk membuang suatu string yang didapat dari database
yang ditampung dalam tipe data CHAR yang akan diakhiri banyak spasi bila string
yang ditampung tidak sepanjang length CHAR tersebut. Untuk lebih memahami
penggunaan sintaksnya, perhatikanlah contoh di bawah ini yang akan mencetak
String sebelum dichop: 'Hello world! ', setelah dichop: 'Hello world!'!
44 | P a g e
Biasanya crc32 dimanfaatkan untuk mengecek apakah data yang terkirim benar atau
salah. Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah
ini yang akan mencetak 461707669!
Gambar 58: Kode sumber contoh penggunaan crc32
18. md5()
Md5 digunakan untuk menghasilkan enkripsi dengan metode MD5.
45 | P a g e
Biasanya md5 dimanfaatkan untuk melakukan enkripsi data di mana data tersebut
tidak perlu didekripsi ulang, misalnya saja untuk field password. Untuk lebih
memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini yang akan
mencetak 86fb269d190d2c85f6e0468ceca42a20!
Gambar 59: Kode sumber contoh penggunaan md5
19. sha1()
Sha1 digunakan untuk menghasilkan enkripsi dengan metode SHA1.
Biasanya sha1 dimanfaatkan untuk melakukan enkripsi data di mana data tersebut
tidak perlu didekripsi ulang, misalnya saja untuk field password. Untuk lebih
memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini yang akan
mencetak d3486ae9136e7856bc42212385ea797094475802!
Gambar 60: Kode sumber contoh penggunaan sha1
20. parse_str()
Parse_str digunakan untuk mengembalikan string yang dikirim oleh method get pada
URL menjadi variabel sebenarnya.
Biasanya sha1 dimanfaatkan untuk menampilkan nilai mata uang. Untuk lebih
memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini yang akan
mencetak 1.500.000,79!
46 | P a g e
Munculkan pesan di
samping textfield nama
samping textfield nama
Kondisi
nama kosong
nama lebih panjang dari 30
karakter
nama tidak diawali dengan
Teknik
strlen
strlen
substr
47 | P a g e
or Mrs. word
4 required
5 must be a number
6 must be greater than 17
7 required
8 must contains street
word
9 Sorry, your data cannot
be submitted.
10 Your data has been saved
in data.txt.
bawah form
bawah form
strlen
filter
operator
strlen
strpos
variabel(
flagging)
variabel(
flagging)
Lakukan validasi di atas menggunakan function. Bila terjadi kesalahan validasi lakukan
exception handling untuk menampilkan Sorry, your data cannot be submitted. setelah
mengirim pesan-pesan error yang ada. Namun bila tidak terjadi kesalahan, ubahlah semua
data di atas menjadi array. Lalu dengan menggunakan fungsi implode, gabungkanlah
ketiga data dari array tersebut dengan format Nama#Umur#Alamat. Tulislah hasil
penggabungan tersebut ke dalam data.txt dan munculkan pesan Your data has been
saved in data.txt.
Jawab
Dengan menggunakan Expression Web, buatlah sebuah halaman PHP baru, masukkan
kode di bawah ini, lalu simpanlah dengan nama lat4.php.
48 | P a g e
49 | P a g e
50 | P a g e
51 | P a g e
52 | P a g e
Gambar 71: Tampilan dari data.txt bila data dari lat4.php di atas sudah benar
53 | P a g e
Chapter 05
Using MySql
Objectives
1. Introduction to MySQL
2. Menggunakan phpMyAdmin
3. MySQL Connection
4. Exercise
Learning Outcomes
54 | P a g e
MySQL adalah salah satu jenis database server yang sangat terkenal. Kepopulerannya
disebabkan MySQL menggunkaan SQL sebagai bahasa dasar untuk mengakses
databasenya. Selain itu bersifat free (tidak perlu membayar untuk menggunakannya).
55 | P a g e
mysql_connect().
Sintaks:
mysql_connect(servername,username,password);
Parameter:
servername : parameter ini berisi nama server dan bersifat optional, nilai
defaultnya jika tidak ditulis adalah localhost:3306
username : parameter ini berisi username dan bersifat optional, nilai
defaultnya jika tidak ditulis adalah nama yang digunakan dalam proses server.
password : parameter ini berisi password untuk login dan bersifat optional,
nilai defaultnya jika tidak ditulis adalah .
Pada contoh berikut kita menyimpan koneksi dalam sebuah variabel ($con) untuk
digunakan dalam script. Fungsi die akan dijalankan jika koneksi gagal:
56 | P a g e
Menutup Koneksi
Koneksi ke database akan ditutup secara otomatis ketika script berakhir. Untuk
menutup
koneksi
sebelumnya,
gunakan
fungsi
mysql_close().
Contoh:
5.4 Exercise
Buatlah database yang diperlukan oleh Bluejack University dengan menggunakan
MySQL lewat bantuan phpmyadmin.
57 | P a g e
58 | P a g e
59 | P a g e
Chapter 06
Database Manipulation
Objectives
1. View Data
2. Search
3. DML pada PHP
4. Exercise
Learning Outcomes
60 | P a g e
Untuk menampilkan data dari database ke dalam suatu website, kita dapat menggunakan
sintaks SELECT.
Sintaks:
SELECT column_name(s)
FROM table_name
Agar PHP dapat mengeksekusi pernyataan di atas kita harus menggunakan fungsi
mysql_query(). Fungsi ini digunakan untuk mengirim query atau perintah ke koneksi
MySQL.
Contoh berikut memilih semua data yang disimpan dalam tabel Persons (karakter *
berarti memilih semua kolom dalam tabel):
61 | P a g e
Contoh di atas menyimpan data yang dikembalikan oleh fungsi mysql_query() dalam
variabel $result.
Hasilnya:
Peter Griffin
Glenn Quagmire
Untuk menampilkan hasilnya dalam HTML:
62 | P a g e
Hasilnya:
6.2 Search
Untuk search sebenarnya hanya masalah logika saja. Kita tinggal menambahkan sebuah
form search dan tinggal memanipulasi query untuk menampilkan sesuai dengan kriteria
pencarian.
Contoh untuk view dengan kriteria pencarian firstname:
63 | P a g e
Insert
Query insert digunakan untuk menambah record () atau baris pada database
INSERT INTO table_name
VALUES (value1, value2, value3,...)
Atau
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Contoh query Insert:
Update
Query update digunakan untuk mengubah isi data yang sudah ada pada tabel.
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Contoh query Update:
64 | P a g e
Pengembalian dari mysql_query dari syntax di atas adalah true atau false.
Mengembalikan true apabila syntax tersebut berhasil di-execute. Mengembalikan false
apabila gagal. Syntax di atas akan langsung commit apabila menggunakan mysqli.
Namun autocommit
65 | P a g e
6.4 Exercise
Buatlah sebuah web sederhana yang dapat mewakili semua fungsi insert, update, delete,
search dan view data.
1. Search Data
Halaman ini berfungsi untuk mencari data-data sepatu yang ada.
Validasikan agar yang dapat mengakses halaman ini hanya admin yang sudah
melakukan login. Pada halaman ini ditampilkan semua data yang ada dan berikan hak
akses untuk admin agar dapat menghapus sepatu yang sudah ada.
Gallery.php
<form action="gallery.php" method="post">
search by name : <input name="txtsearch" type="text"><input
name="Submit1" type="submit" value="submit" style="font-family: 'Berlin Sans FB';
Berlin Sans FB&amp; quot; color: #036;" /></form>
<br>GALLERY
<?php
include("connect.php");
$search = $_REQUEST['txtsearch'];
if($search != null)
$query = "select * from msshoes where name like '%".
$search ."%'";
else $query = "select * from msshoes";
$rs = mysql_query($query);
66 | P a g e
?>
<table >
<tr>
<td style="width: 25px">id</td>
<td>shoes</td>
<?php
if($_SESSION['user'] == "admin")
{
?>
<td>delete</td>
<?php
}
?>
</tr>
<?php
while($rs2 = mysql_fetch_array($rs))
{
?>
<tr>
<td style="width: 25px"><?php echo($rs2[0]);?></td>
<td><a href="detailgallery.php?id=<?php echo($rs2[0]);?>"><?php
echo($rs2[1]);?></a></td>
<?php
if($_SESSION['user'] == "admin")
{
?>
<td style="width: 57px" class="auto-style1"><a
href="dodelete.php?id=<?php echo($rs2[0]);?>">delete</a></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
67 | P a g e
dodelete.php
2. tambah_sepatu
Halaman ini berfungsi untuk menambahkan sepatu. Validasikan halaman ini hanya
bisa diakses oleh admin.Validasikan field-field tidak boleh kosong. Jika ada
kesalahan, tampilkanlah pesan kesalahannya.
68 | P a g e
<?php
include("connect.php");
$name = $_REQUEST['txtname'];
$brand = $_REQUEST['txtbrand'];
$price = $_REQUEST['txtprice'];
$image = $_REQUEST['txtimage'];
if($name == "" || $brand == "" || $price == "" || $image == "")
{
header("location:insert.php?err=all field must be filled");
}
else if(is_numeric($price) == false)
{
header("location:insert.php?err=price must be a number");
}
else if($price <= 0)
{
header("location:insert.php?err=price must be more than 0");
}
else
{
mysql_query("insert into msshoes(name, brand, price, image)
values('". $name ."','". $brand ."','". $price ."','". $image ."')");
header("location:gallery.php");
}
?>
69 | P a g e
Chapter 07
Advanced PHP Techniques
Objectives
Learning Outcomes
70 | P a g e
session.
session_start() : fungsi ini harus dipanggil ketika sebelum kita menggunakan session
di suatu halaman.
Cookies
Cookies PHP memiliki fungsi yang hampir mirip dengan fungsi session. Cookies sering
digunakan untuk mengidentifikasi pengguna / user. Cookies adalah file kecil yang di
embeds server pada computer user. Maka setiap kali komputer menjalankan permintaan
ke halaman web yang sama maka cookies akan di kirim ke komputer user. Dengan PHP,
Anda dapat mengambil dan membuat nilai cookies.
71 | P a g e
Syntax:
Contoh:
Pada contoh di bawah ini kita akan membuat cookie dengan nama user dan value test dan
kita juga akan menentukan bahwa cookie akan habis setelah 1 jam.
Ketika menghapus cookies anda harus yakin betul anda mengurangi nilai expire dengan
benar.
contoh menghapus cookies :
Selain harus menggunakan method POST, form tersebut harus ditambahkan behaviour
berupa ENCTYPE=multipart/form-data, di mana pada defaultnya behaviour dari
form adalah ENCTYPE= application/x-www-form-urlencoded. Tujuannya agar
72 | P a g e
dapat mengirimkan nama, ekstensi, lokasi awal file, dan lainnya dari file yang dikirim.
Dengan adanya Common Gateway Interface, file akan bebas untuk dikirimkan ke server.
Di php sendiri, tersedia fasilitas global array untuk menampung file yang dikirim.
$_FILES[upload]. Array tersebut dapat menampung nama file, besar size file (dalam
bytes), tipe file, lokasi awal file, serta error file.
$_FILES[upload][name]; => menyimpan nama file yang dikirimkan
$_FILES[upload][size]; => menyimpan besar file yang dikirimkan
$_FILES[upload][tmp_name]; => menyimpan lokasi file dikirim
$_FILES[upload][error]; => menyimpan error dari file yang dikirim
Untuk metode penyimpanan file sendiri terdiri dari beberapa jenis, mulai dari
penyimpanan file secara fisik (dipindahkan file tersebut ke dalam server) maupun
disimpan dalam bentuk binary ke dalam database (bloob).
Jika kita ingin menyimpan bentuk file fisik, kita tidak akan kesulitan dalam mendownload file tersebut. Namun perlu diperhitungkan, besar size dari file yang di-upload
tersebut akan langsung memotong besar kapasitas hard disk fisik server. Hal ini dapat
menimbulkan kerugian, karena kapasitas server menjadi habis. Selain itu riskan untuk
terkena file injection (akan dijelaskan di dalam web security). Jika kita menggunakan
metode penampungan di database, akan sulit dalam hal penanganan penyimpanan
informasi.
File upload (physical) :
Form.php :
73 | P a g e
Upload.php:
Untuk penyimpanan file menggunakan database, anda harus menyiapkan 1 field dengan
tipe bloob. Lalu source file yang ada diubah bentuknya menggunakan fungsi
file_get_contents(source); lalu di save ke dalam database.
7.3 Paging
Paging adalah konsep menampilkan data per halaman dengan jumlah data per
halamannya sesuai yang diinginkan, di bawah ini link contoh script PHP untuk
menampilkan 5 data per halaman:
<?php
$host = localhost;
$user = root;
$pass = ;
$db = info;
$conn = mysql_connect($host,$user,$pass) or
74 | P a g e
75 | P a g e
}
else
{
?>
First Previous <?php
}
$nav = select count(*) from info;
$query = mysql_query($nav,$conn);
$brs=mysql_fetch_row($query);
$n = $brs[0];
if ($page+$record_home<ceil($n/$record_home)*$record_home)
{
?>
<a href=?page=<?=$page+$record_home?>>Next</a> <a
href=?page=<?=(ceil($n/$record_home)*$record_home)-$record_home?>>Last</a>
<?
}
else
{
?>
Next Last
<?
}
?>
</CENTER>
7.4 Mail
Fungsi PHP mail() menyediakan fasilitas untuk mengirimkan email secara langsung dari
script. Fungsi mail() ini memerlukan program PHP yang sudah diinstall dan juga sistem
email yang bekerja. Tidak membutuhkan installasi program tambahan. Program yang
digunakan ditentukan oleh pengaturan konfigurasi pada file php.ini.
Runtime Configuration
Sifat dari fungsi mail ini dipengaruhi oleh pengaturan pada file php.ini.
76 | P a g e
Konfigurasi mail
Name
SMTP
Default
localhost
smtp_port
25
sendmail_from
NULL
sendmail_path
NULL
Description
Windows: Nama DNS
atau alamat IP dari
server SMTP
Windows: Nomor port
SMTP. Tersedia sejak
PHP 4.3
Windows:
Menentukan alamat
"from" untuk
digunakan dalam
email yang dikirim
dari PHP
Unix system:
Menentukan dimana
program sendmail
dapat ditemukan
(biasanya
/usr/sbin/sendmail
atau /usr/lib/sendmail)
Changeable
PHP_INI_ALL
PHP_INI_ALL
PHP_INI_ALL
PHP_INI_SYSTEM
Syntax Mail
mail (to,subject,message,headers,parameters)
Parameter
Description
To
Diperlukan. Menentukan penerima email
Subject
Diperlukan. Menentukan subyek email. Catatan: parameter ini tidak
boleh berisi karakter baris baru
Message
Diperlukan. Mendefinisikan pesan yang akan dikirim. Setiap baris harus
dipisahkan dengan LF (\ n). Garis tidak boleh melebihi 70 karakter
Headers
Opsional. Menentukan header tambahan, seperti From, Cc, dan Bcc.
Header tambahan harus dipisahkan dengan CRLF (\ r \ n)
Parameters
Opsional. Menentukan parameter tambahan untuk program sendmail
Berikut ini merupakan contoh kodingan email dengan nama file frmMail.php :
<html>
<title>Simple Mail Form</title>
<body>
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
77 | P a g e
//send email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail("ddarmawan@binus.edu", "$subject",
$message, "From:" . $email);
echo "Thank you for using our mail form";
}
else
//if "email" is not filled out, display the form
{
echo "<form method='post' action='frmMail.php'>
Email: <input name='email' type='text' /><br />
Subject: <input name='subject' type='text' /><br />
Message:<br />
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type='submit' />
</form>";
}
?>
</body>
</html>
Berikut penjelasan contoh kodingan diatas, yaitu:
Pertama, program akan melakukan pengecekan apakah data email sudah terisi atau
belum.
Jika data email belum diisi, maka program akan menampilkan tampilan form 2
textbox, 1 textarea, dan 1 button submit.
Setelah data diisi dengan benar, maka program akan masuk ke dalam data yang sudah
terisi dan mengirimkan data tersebut ke email dan akan menampilkan pesan Thank
you for using our mail form
7.5 Exercise
Buatlah sebuah web yang terdapat fitur login untuk menampung session dan terdapat juga
fitur file upload dan paging.
78 | P a g e
1. Buatlah sistem login dari Bluejack University sesuai dengan yang disediakan oleh
soal.
Jika NIM/KdDosendan Password yang diisi pada proses login sesuai maka login
berhasil dan alihkan ke halaman home.php.
Jika NIM/KdDosenatau Password salah maka akan ditampilkan pesan kesalahan
pada halaman login.php.
Setting session selama user belum logout dan tampilkan Username yang login pada
halaman home.php.
Buatlah menu untuk logout.
3. Upload file
Validasikan agar halaman ini hanya dapat diakses olehadmin. Pada halaman Add
New Students/Lecture, tambahkan fasilitas upload file untuk image foto yang akan
ditampilkan lalu simpan file tersebut ke dalam folder bernama upload.
79 | P a g e
Chapter 08
Report
Objectives
Learning Outcomes
1. -
80 | P a g e
Tutorial ini adalah bagaimana membuat script PHP untuk menghasilkan file report dalam
format MS. Excel.
Apa menariknya report dalam format MS. Excel? dengan report berformat MS. Excel
memungkinkan untuk dilakukan pengolahan lagi pada data report tersebut. Sebagai
contoh, report tentang data nilai mahasiswa dan status kelulusannya pada matakuliah
tertentu. Apabila report yang dihasilkan berupa MS. Excel, maka memungkinkan untuk
pengolahan lebih lanjut terhadap report tersebut menggunakan perintah-perintah dalam
MS. Excel, seperti menghitung jumlah mahasiswa yang lulus maupun tidak lulus, bahkan
dalam bentuk prosentasenya.
Kita akan coba membuat script PHP untuk menghasilkan report dalam format MS. Excel
ini, dengan mengambil studi kasus lagi-lagi tentang nilai matakuliah mahasiswa. Report
yang akan dihasilkan berupa daftar mahasiswa (NIM dan Nama) yang mengambil
matakuliah, nilai yang diperoleh, serta status kelulusannya (LULUS/TIDAK LULUS).
Untuk menentukan kelulusan, misalnya diambil policy jika nilainya 60 ke atas maka
LULUS, jika kurang dari 60 maka TIDAK LULUS. Untuk data mentah dari report ini
diambil dari database MySQL. Terlebih dahulu kita siapkan tabel dan recordnya.
CREATE TABLE nilaimhs(
nim varchar(10),
namaMhs varchar(30),
nilai int(11),
PRIMARY KEY(nim)
)
INSERT INTO nilaimhs VALUES
('M0197001', 'Faza Fauzan Kh.', 80),
('M0197002', 'Dwi Amalia Fitriani', 75),
('M0197003', 'Rosihan Ari Yuana', 45),
('M0197004', 'Nada Hasanah', 83),
('M0197005', 'Muh. Ahsani Taqwim', 90);
81 | P a g e
Setelah tabel dan record sudah siap, lets write a PHP script. Ini dia scriptnya
<?php
// nama file
$namaFile = "report.xls";
// Function penanda awal file (Begin Of File) Excel
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
// Function penanda akhir file (End Of File) Excel
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}
// Function untuk menulis data (angka) ke cell excel
function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
// Function untuk menulis data (text) ke cell excel
function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
// header file excel
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,
pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
// header untuk nama file
header("Content-Disposition: attachment;
filename=".$namaFile."");
82 | P a g e
83 | P a g e
84 | P a g e
Contoh:
<?php
require('html2fpdf/html2fpdf.php');
$pdf=new HTML2FPDF();
$pdf->AddPage();
$strContent = "<h1 align=center>Hello World!</h1><p>Sekarang saya bisa bikin
laporan PDF dengan mudah</p>";
$pdf->WriteHTML($strContent);
$pdf->Output("sample2.pdf","I");
//echo "PDF file is generated successfully!";
?>
85 | P a g e
8.2 Exercise
Buatlah sebuah PHP report dengan menampilkan report dalam bentuk pdf.
Contoh: