Vous êtes sur la page 1sur 88

Diktat Web Database

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.

This document supports a preliminary release of

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.

BINUS UNIVERSITY MAKES NO

WARRANTIES, EITHER EXPRESS OR IMPLIED, AS TO THE INFORMATION IN THIS


DOCUMENT.
The entire risk of the use or the results from the use of this document remains with the
user.

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

Introduction to PHP : Pengenalan PHP, Pengenalan Layanan Basis Data, Arsitektur


Sever-Client, Tag-tag dalam PHP, Sintaks dalam PHP, Komentar dalam PHP

Chapter 02

Basic PHP : Variabel dan Operator-operator dalam PHP, Pemilihan, Perulangan,


Pengambilan nilai, Pengalihan halaman dan pengiriman nilai pada PHP

Chapter 03

String and Array : Inisialisasi dan Manipulasi String, Inisialisasi dan Manipulasi
Array, Baca-Tulis File

Chapter 04

Function : Function, Built-in Function, Filter, String function, Exception Handling

Chapter 05

Using MySql : Introduction to MySql, Using phpMyadmin, MySql Connection

Chapter 06

Database Manipulation : View Data, Search, DML pada PHP

Chapter 07

Advanced PHP Techniques : Session and Cookies, File Upload, Paging, Mail

Chapter 08

Report : How to make PHP Report

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

1. Build dynamic websites using HTML and PHP

3|Page

1.1 Pengenalan PHP


PHP singkatan dari "Personal Home Page", namun kini
disebut-sebut merupakan singkatan "PHP: Hypertext
Preprocessor", sebuah akronim rekursif adalah sebuah
bahasa skrip umum yang awalnya dirancang dalam

Gambar 1: Logo PHP

pengembangan web untuk menghasilkan halaman-halaman web yang dinamis.

Seiring dengan perkembangan zaman, PHP sudah mendukung


tatap-muka

berbasiskan

baris

perintah

(command-line

interface) dan dapat digunakan dalam aplikasi grafis mandiri.


PHP dapat digunakan pada kebanyakan web servers maupun
pada interpreter mandiri (misal dengan XAMPP) dan pada
hampir semua sistem operasi.
PHP awalnya dibuat oleh Rasmus Lerdorf pada tahun 1995.
Implementasi utama dari PHP kini diproduksi oleh PHP Group
dan disajikan sebagai standar de facto PHP karena tidak ada
spesifikasi formal. PHP ini sendiri merupakan perangkat lunak
Gambar 2: R. Lerdorf

gratis dengan lisensi khusus PHP. Versi terakhirnya dibuat

pada 17 Maret 2011 yaitu versi 5.3.6. Di praktikum, kita menggunakan versi 5.2.8.

1.2 Pengenalan Layanan Basis Data


PHP telah menyertakan beberapa pustaka sumber terbuka bersama dengan rilis utamanya.
PHP sendiri dapat berkomunikasi dengan peladen FTP, peladen basis data, termasuk
pustaka SQL yang sudah disertakan seperti PostgreSQL, MySQL dan SQLite, peladen
LDAP, dan beberapa yang lainnya.

MySQL adalah sistem pengelolaan basis data relasional


(RDBMS)

yang

berjalan

sebagai

peladen

yang

menyediakan akses bagi banyak pengguna ke sejumlah


basis data. Nama MySQL sendiri merupakan gabungan
dari My dan SQL. My adalah nama anak perempuan

Gambar 3: Logo MySQL

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

Gambar 4: Contoh sintaks dalam PHP


1.6 Komentar dalam PHP

Berbeda dengan html dimana kita menggunakan <!-- dan --> untuk membuat komentar,
dalam PHP kita bisa menggunakan tiga macam penanda untuk komentar yaitu:

Penanda buka /* dan penanda tutup */


Digunakan untuk memberikan komentar beberapa baris yang diapit kedua penanda
tersebut.

Penanda buka //
Digunakan untuk memberikan komentar pada akhir suatu sintaks.

Penanda buka #
Digunakan untuk memberikan komentar pada suatu baris penuh.

6|Page

Gambar 5: Contoh komentar pada PHP


1.7 Exercise
Soal
Buatlah sebuah halaman PHP yang akan mencetak PHP Test pada judul HTML
menggunakan penanda singkat dan Hello World di dalam konten HTML menggunakan
echo. Tambahkan pula beberapa komentar. Gunakan tag dan sintaks yang telah kalian
pelajari.
Jawab
Dengan menggunakan Expression Web, buatlah sebuah halaman PHP baru, masukkan
kode di bawah ini, lalu simpanlah dengan nama lat1.php.

Gambar 6: Kode sumber lat1.php


Jalankanlah XAMPP, bukalah browser, dan ketikan http://localhost:8088/lat1.php dan
lihat hasilnya.

7|Page

Gambar 7: Hasil lat1.php pada browser


Langkah untuk menjalankan program-program yang diperlukan di lab adalah sbb:
Expression Web:
Start > Programs > Multimedia > Microsoft Expression > Microsoft Expression Web 4
XAMPP:
Start > Programs > Webserver > XAMPP > xampp_start
Mozilla Firefox:
Start > Programs > Internet > Browser > Mozilla Firefox

8|Page

Chapter 02
Basic PHP

Objectives

1. Variabel di dalam PHP


2. Operator-operator pada PHP
3. Pemilihan (selection)
4. Perulangan (looping)
5. Pengambilan Nilai
6. Pengalihan Halaman dan Pengiriman Nilai
7. Exercise

Learning Outcomes

1. Build dynamic websites using HTML and PHP

9|Page

2.1 Variabel di dalam PHP


Sebuah variabel digunakan untuk menampung nilai, seperti teks, angka, maupun larik
(array). Ketika sebuah variabel telah dibuat, ia dapat digunakan berulang-ulang dalam
skrip Anda.

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

Aturan penamaan variabel:

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

Untuk lebih jelasnya lihat lah kode berikut ini:

10 | P a g e

Gambar 8: Kode sumber contoh pembuatan dan pemanggilan variabel

Gambar 9: Tampilan contoh pembuatan dan pemanggilan variabel pada browser


2.2 Operator-operator pada PHP

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

Sama saja dengan


x=y
x=x+y
x=x-y
x=x*y
x=x/y
x=x.y
x=x%y

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

2.3 Pemilihan (selection)


Dalam PHP kita dimungkinkan untuk melakukan pemilihan. Ada tiga macam pemilihan
yang dapat dilakukan yaitu:

Melalui Pernyataan If...Else


Cara penulisan sintaks:
if (kondisi1) {
kode yang dijalankan jika kondisi1 benar;
} else if (kondisi2) {
kode yang dijalankan jika kondisi2 benar dan kondisi1 salah;
} else
kode yang dijalankan jika kondisi1 dan kondisi2 salah;
}
Kondisi ini dapat digabungkan menggunakan operator logika di atas. Perhatikan
contoh di bawah ini yang akan mencetak Selamat berakhir pekan!.

12 | P a g e

Gambar 10: Contoh penggunaan If...Else

Melalui Pernyataan Switch


Cara penulisan sintaks:
switch (n){
case label1:
kode yang dijalankan bila n=label1;
break;
case label2:
kode yang dijalankan bila n=label2;
break;
default:
kode yang dijalankan bila n berbeda dari label1 dan label2;
}
Kondisi di dalam label tidak dapat digabungkan menggunakan operator logika. Jika
pada akhir setiap case tidak diakhiri break, maka statement di dalam case selanjutnya
akan dijalankan. Sehingga bila kita tidak menggunakan break bisa dimanfaatkan
sebagai or. Perhatikan contoh di bawah ini yang akan mencetak Selamat berakhir
pekan!.

Gambar 11: Contoh penggunaan Switch

Melalui Operator Ternary


Cara penulisan sintaks:

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

Gambar 12: Contoh penggunaan ternary


2.4 Perulangan (looping)
Dalam PHP kita dimungkinkan untuk melakukan pemilihan. Ada empat macam
pemilihan yang dapat dilakukan yaitu:

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.

Gambar 13: Contoh penggunaan for

Menggunakan For Each


Cara penulisan sintaks:

14 | P a g e

foreach (array as nilai sementara){


kode yang akan dijalankan, pemanggilan dengan nilai sementara;
}
Saat menggunakan for each, nilai array saat ini akan dibaca dan akan disimpan
dalam nilai sementara. Kode yang akan dijalankan akan dijalankan terus selama
array berisi (tidak null). Setelah dijalankan, program akan membaca nilai array yang
selanjutnya, dan seterusnya. Penggunaan array akan Anda pelajari pada bab 3.
Perhatikan contoh di bawah ini yang akan mencetak 0 2 4.

Gambar 14: Contoh penggunaan foreach

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.

Gambar 15: Contoh penggunaan while

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.

Gambar 16: Contoh penggunaan do while


2.5 Pengambilan nilai
Dalam PHP kita dimungkinkan untuk melakukan pengambilan nilai dari form. Ada tiga
macam pemilihan yang dapat dilakukan yaitu:

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

2.6 Pengalihan halaman dan pengiriman nilai


Pengiriman nilai dari suatu halaman ke halaman lain bisa dilakukan dengan menyisipkan
parameter tambahan saat kita mengalihkan halaman.

Cara penulisan sintaks:


header('location:namahalaman?variabel1=nilai1&variabel2=nilai2');
Pada saat PHP menemukan sintaks ini, kode selanjutnya tidak akan dikerjakan dan
halaman langsung dialihkan ke namahalaman yang ditunjuk. Untuk variabel dan nilainya
adalah opsional. Jumlah variabel yang dikirim pun bisa satu maupun lebih, dimana
dipisahkan dengan tanda dan (&).

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.

Gambar 17: Kode sumber lat2-awal.php


Dengan menggunakan Expression Web, buatlah sebuah halaman PHP baru, masukkan
kode di bawah ini, lalu simpanlah dengan nama lat2-proses.php.

18 | P a g e

Gambar 18: Kode sumber lat2-proses.php

Jalankanlah XAMPP, bukalah browser, dan ketikan http://localhost:8088/lat2-awal.php,


ketikan sebuah kalimat, misalnya Saya senang belajar PHP, klik OK dan lihat hasilnya.
Karena sebelumnya kita menggunakan $_REQUEST, maka halaman hasil ini dapat pula
diakses melalui http://localhost:8088/lat2-proses.php?kalimat= Saya senang belajar PHP.
Cobalah juga masukkan kalimat kosong pada lat2-awal.php

Gambar 19: Hasil lat2-awal.php pada browser

19 | P a g e

Gambar 20: Hasil lat2-proses.php pada browser

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

1. Build dynamic websites using HTML and PHP

21 | P a g e

3.1 Inisialisasi String


Sebuah string adalah sebuah variabel yang menampung nilai teks. Ketika sebuah variabel
telah dibuat, ia dapat digunakan berulang-ulang dalam skrip Anda.

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

Aturan penamaan variabel (termasuk string), dapat dilihat pada bab 2.

3.2 Manipulasi String

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.

Untuk lebih jelasnya lihat lah kode berikut ini:

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

Perhatikan contoh di bawah ini yang akan mencetak Masing-masing asrama di


Hogwarts dikepalai oleh Minerva McGonagall, Pomona Sprout, Filius Flitwick, dan
Severus Snape.!

Gambar 23: Contoh array numerik

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

Gambar 24: Contoh array asosiatif

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

Nearly Headless Nick Godric Gryffindor

Hufflepuff

Pomona Sprout

The Fat Friar

Helga Hufflepuff

Ravenclaw

Filius Flitwick

The Grey Lady

Rowena Ravenclaw

Slytherin

Severus Snape

The Bloody Baron

S Slytherin

26 | P a g e

Gambar 25: Contoh array multi-dimensi

27 | P a g e

3.4 Manipulasi Array


Sebuah array dapat dipanggil menggunakan echo. Manipulasi yang bisa dilakukan
terhadap string diantaranya adalah penggabungan array, yaitu menggunakan operator titik
(.). Selain menggunakan operator, ada pula beberapa fungsi untuk manipulasi array.
Contoh beberapa fungsi-fungsi umum untuk array adalah:

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:

Gambar 27: Hasil contoh penggunaan print_r pada browser

array_search()
array_search digunakan untuk mencari ada pada posisi mana semua tersebut.
Contoh:

Gambar 28: Contoh penggunaan array_search


Dengan kode yang ada pada contoh inisialisasi array, hal ini akan menghasilkan:
Godric Gryffindor adalah seorang pendiri asrama Gryffindor.
Severus Snape adalah seorang kepala asrama Slytherin.

sort()
sort digunakan untuk mengurutkan isi dari semua array.
Contoh:

28 | P a g e

Gambar 29: Contoh penggunaan sort


Dengan kode yang ada pada contoh inisialisasi array, hal ini akan menghasilkan:

Gambar 30: Hasil contoh penggunaan sort pada browser


3.5 Baca-Tulis File

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

Untuk lebih jelasnya perhatikan contoh di bawah ini:

Gambar 31: Contoh baca-tulis file.


Pada contoh di atas, halaman web akan menampilkan isi semua dari baca.txt sampai
dengan akhir file tersebut. Selanjutnya ia akan menuliskan Hello World. Testing! ke
dalam file tulis.txt.
3.6 Exercise
Soal
Buatlah sebuah halaman PHP yang menyiapakan array multi-dimensi berupa data inisial,
nama, dan jurusan asisten pengajar kalian. Tampilkanlah data tersebut ke dalam web.
Terakhir, tuliskanlah hasil array tersebut ke dalam file asisten.csv dengan format
"inisial","nama","jurusan"\n (dengan tanda petik). Tambahkan pula headernya.

30 | P a g e

Jawab
Dengan menggunakan Expression Web, buatlah sebuah halaman PHP baru, masukkan

31 | P a g e

kode di bawah ini, lalu simpanlah dengan nama lat3.php.


Gambar 32: Kode sumber lat3.php

Jalankanlah XAMPP, bukalah browser, dan ketikan http://localhost:8088/lat3.php (8088


adalah setting port di lab software bina nusantara), dan lihat hasilnya. Jika benar, maka
akan tampil hasil seperti yang di bawah ini:

Gambar 33: Hasil lat3.php pada browser


Lihat dan bukalah pula file asisten.csv kalian. Jika benar, maka akan tampil hasil seperti
yang di bawah ini:

Gambar 34: Hasil asisten.csv pada Microsoft Excel

32 | P a g e

Atau akan tampil hasil seperti di bawah ini bila kalian buka di Notepad:

Gambar 35: Hasil asisten.csv pada 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

1. Build dynamic websites using HTML and PHP

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:

function nama_fungsi(parameter1, parameter2){


Kode yang akan dijalankan;
return nilai yang ingin dikembalikan;
}
Aturan nama function sama dengan penamaan variabel. Sebuah function tidak harus
memiliki parameter, bisa pula dengan banyak parameter. Return pun tidak harus ada
dalam suatu function.

Untuk lebih jelasnya lihat lah kode berikut ini:

Gambar 36: Kode sumber contoh pembuatan & pemanggilan function

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.

Penulisan sintaksnya adalah seperti ini:


include("path & nama file yang ingin dimasukan");
Untuk lebih jelasnya lihatlah contoh di bawah ini:

36 | P a g e

Gambar 38: Kode sumber contoh include function

Gambar 39: Hasil contoh include function pada browser

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.

Syntax untuk date()


date(format, timestamp)

37 | P a g e

Parameter
format
timestamp

Deskripsi
Diperlukan. Menentukan format timestamp
Opsional. Menentukan timestamp. Default adalah tanggal dan
waktu

Karakter-karakter lain yang bisa digunakan seperti /, ., atau - bisa juga


disisipkan diantara karakter format untuk menambahkan format tambahan.
Format-format yang dikenali PHP adalah sebagai berikut:
d Tanggal dengan nol (01 hingga 31)
D Hari, singkatan tiga huruf
j Tanggal tanpa nol (1 hingga 31)
l Hari lengkap
N Representasi numerik hari ISO-8601 (1 untuk Senin hingga 7 untuk Minggu)
S Akhiran ordinal Inggris untuk tanggal (st, nd, rd atau th)
w Representasi numerik hari (0 untuk hari Minggu hingga 6 untuk Sabtu)
z Hari ke dalam setahun (0 hingga 365)
W Representasi numerik minggu ke ISO-8601 (1 hingga 52)
F Representasi tekstual bulan (January hingga December)
m Representasi numerik bulan (01 hingga 12)
M Representasi tekstual tiga huruf bulan (Jan hingga Dec)
n Representasi numerik bulan tanpa nol (1 hingga 12)
t Jumlah hari dalam bulan tersebut
L Penanda tahun kabisat (1 jika tahun kabisat, 0 jika tidak)
o Tahun ISO-8601
Y Representasi tahun empat digit
y Representasi tahun dua digit
a Huruf kecil am atau pm
A Huruf besar AM atau PM
B Waktu Swatch Internet (000 hingga 999)
g Jam format 12-jam tanpa nol (1 hingga 12)
G Jam format 24-jam tanpa nol (0 hingga 23)
h Jam format 12-jam dengan nol (01 hingga 12)
H Jam format 24-jam dengan nol (00 hingga 23)
i Menit dengan nol (00 hingga 59)
s Detik dengan nol (00 hingga 59)
e Zona waktu (Contoh: UTC, Atlantic / Azores)
I Penanda daylights savings time (1 jika Daylight Savings Time, 0 jika tidak)
O Selisih jam ke GMT dalam jam (Contoh: +0700)
T Zona waktu pada mesin PHP (Contoh: EST, MDT)
Z Selisih detik zona waktu (-43200 hingga 43200)
c Tanggal sesuai ISO-8601 (mis, 2004-02-12T15: 19:21 +00:00)

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.

Sintaks untuk mktime ()


mktime (hour, minute, second, month, day, year, is_dst)

Berikut merupakan contoh kodingan untuk mktime():


<?php
$tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo "Tomorrow is ".date("Y/m/d", $tomorrow);
?>
Hasil dari kodingan diatas:
Tomorrow is 2009/05/12

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!

Gambar 41: Kode sumber contoh penggunaan filter

40 | P a g e

4.4 String function


Berikut ini adalah beberapa fungsi built-in PHP yang berkaitan dengan string.
1. strtoupper()
Strtoupper digunakan untuk mengkapitalisasi setiap huruf yang ada dari suatu string.
Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini
yang akan mencetak HELLO WORLD!!
Gambar 42: Kode sumber contoh penggunaan strtoupper
2. ucwords()
Ucwords digunakan untuk mengkapitalisasi setiap huruf yang ada di depan setiap kata
dari suatu string.

Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini


yang akan mencetak Hello World!!

Gambar 43: Kode sumber contoh penggunaan ucwords


3. ucfirst()
Ucfirst digunakan untuk mengkapitalisasi huruf pertama saja dari suatu string.

Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini


yang akan mencetak Hello world!!
Gambar 44: Kode sumber contoh penggunaan ucfirst
4. strtolower()
Strtolower digunakan untuk mengecilkan setiap huruf yang ada dari suatu string.

Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini


yang akan mencetak hello world!!

Gambar 45: Kode sumber contoh penggunaan strtolower

41 | P a g e

5. strlen()
Strlen digunakan untuk mengembalikan panjang suatu string.

Biasanya strlen dimanfaatkan untuk melakukan validasi panjang nama atau


sejenisnya. Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di
bawah ini yang akan mencetak 12!
Gambar 46: Kode sumber contoh penggunaan strlen
6. strpos()
Strpos digunakan untuk mengembalikan letak dari string atau karakter yang ingin kita
cari di dalam suatu string lainnya. Jika tidak ditemukan akan dikembalikan nilai
FALSE.

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

Gambar 50: Kode sumber contoh penggunaan explode


10. implode()
Implode digunakan untuk menyatukan beberapa isi array dan kemudian
menyatukannya menjadi satu string dengan pemisah tertentu.

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!

Gambar 51: Kode sumber contoh penggunaan implode


11. addslashes()
Addslashes digunakan untuk menambahkan backslash di depan karakter petik
tunggal, petik, dan backslash.

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

backslash terlebih dahulu. Untuk lebih

memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini yang akan


mencetak Program itu mencetak \'Hello World\'!

Gambar 52: Kode sumber contoh penggunaan addslashes


12. stripslashes()
Stripslashes digunakan untuk menghilangkan backslash di depan karakter petik
tunggal, petik, dan backslash.

Biasanya stripslashes dimanfaatkan untuk mengembalikan nilai yang telah dikirim


melalui fungsi addslashes. Untuk lebih memahami penggunaan sintaksnya,
perhatikanlah contoh di bawah ini yang akan mencetak Program itu mencetak 'Hello
World'!

Gambar 53: Kode sumber contoh penggunaan stripslashes


13. chop()
Chop digunakan untuk membuang karakter null, tab, new line (LF atau \n), carriage
return (CR), dan spasi pada akhir suatu string.

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!'!

Gambar 54: Kode sumber contoh penggunaan chop


14. ltrim()
Ltrim digunakan untuk membuang karakter null, tab, new line (LF atau \n), carriage
return (CR), dan spasi pada awal suatu string.

44 | P a g e

Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini


yang akan mencetak String sebelum diltrim: ' Hello world!', setelah diltrim: 'Hello
world!'!

Gambar 55: Kode sumber contoh penggunaan ltrim


15. bin2hex()
Bin2hex digunakan untuk mengkonversi string menjadi heksadesimal.

Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini


yang akan mencetak 48656c6c6f20776f726c6421!
Gambar 56: Kode sumber contoh penggunaan bin2hex
16. chr()
Chr digunakan untuk mengkonversi suatu heksadesimal, oktal, maupun desimal
kembali dalam karakter ascii. Untuk heksadesimal diawali dengan 0x, oktal dengan
0, sedangkan desimal bisa dituliskan secara langsung.

Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini


yang akan mencetak HAI!
Gambar 57: Kode sumber contoh penggunaan chr
17. crc32()
Crc32 digunakan untuk menghitung bit parity dengan algoritma CRC32.

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.

Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini


yang akan mencetak WL, William Surya Permana!

Gambar 61: Kode sumber contoh penggunaan sha1


21. number_format()
Number_format digunakan untuk menampilkan angka dengan format tertentu dengan
jumlah desimal, pemisah desimal, dan pemisah ribuan yang bisa kita tentukan sendiri.

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!

Gambar 62: Kode sumber contoh penggunaan number_format

46 | P a g e

4.5 Exception Handling


Exception handling digunakan untuk mengubah arus biasa dari eksekusi kode jika terjadi
error yang sudah ditentukan. Kondisi ini disebut sebagai exception. Saat exception
ditemui, ia akan menjalankan catchnya tanpa mengerjakan baris-baris selanjutnya dalam
blok try tersebut.
Untuk lebih memahami penggunaan sintaksnya, perhatikanlah contoh di bawah ini yang
akan mencetak Terjadi error: Angka maksimum 10!!

Gambar 63: Kode sumber contoh penggunaan exception handling


Pada contoh kasus di atas, if pertama tidak terpenuhi maka exception yang pertama tidak
dijalankan. Lalu pada saat if yang kedua yang terpenuhi, exception kedua ini dijalankan
diterima dalam blok try. Saat exception dijalankan, kode di bawah Exception itu tidak
akan dijalankan lagi, sehingga tidak mencetak Angka diterima. Namun bila angka
adalah 5, maka yang dilakukan hanya mencetak Angka diterima.
4.6 Exercise
Soal
Buatlah sebuah halaman PHP yang menampilkan tulisan Todays date: tanggal hari ini
dengan format namahari, dd mmm yyyy di baris pertama. Lalu munculkan isi halaman
dari lat1.php. Setelah itu munculkan pula form pendaftaran yang berisi nama umur dan
alamat.

Lakukanlah validasi sebagai berikut:


No Pesan error yg muncul
1 required
2 max-length: 20
3

Munculkan pesan di
samping textfield nama
samping textfield nama

must be started with Mr. 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

kata Mr. / Mrs.


umur kosong
umur bukan angka
umur di bawah 18 tahun
alamat kosong
alamat tidak mengandung
kata street
ada kesalahan validasi

bawah form

tak ada kesalahan validasi

samping textfield umur


samping textfield umur
samping textfield umur
samping textfield alamat
samping textfield alamat

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

Gambar 64: Kode sumber lat4.php (1)

49 | P a g e

Gambar 65: Kode sumber lat4.php (2)


Dengan menggunakan Expression Web, buatlah lagi sebuah halaman PHP baru,
masukkan kode di bawah ini, lalu simpanlah dengan nama lat4-proses.php.

Gambar 66: Kode sumber lat4-proses.php (1)

50 | P a g e

Gambar 67: Kode sumber lat4-proses.php (2)


Jalankanlah XAMPP, bukalah browser, dan ketikan http://localhost:8088/lat4.php, dan
lihat hasilnya. Cobalah memasukan beberapa data. Jika benar, maka akan tampil hasil
seperti yang di bawah ini:

Gambar 68: Tampilan awal dari lat4.php

51 | P a g e

Gambar 69: Tampilan dari lat4.php bila terjadi kesalahan

Gambar 70: Tampilan dari lat4.php bila tidak terjadi kesalahan

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

1. Build dynamic websites using HTML and PHP


2. Design, planning, creating web database with MySQL

54 | P a g e

5.1 Introduction to MySQL

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

MySQL termasuk jenis RDBMS (Relational Database Management System). Itulah


sebabnya istilah seperti tabel, baris, dan kolom digunakan pada MySQL. Pada MySQL,
sebuah database mengandung satu atau sejumlah tabel. Tabel terdiri dari sejumah baris
dan setiap baris mengandung satu atau beberapa kolom.
5.2 Menggunakan phpMyAdmin
PhpMyAdmin adalah software yang digunakan untuk membuat dan memaintenance
database. Kita dapat mengakses database MySQL dengan account kita di phpMyAdmin.
Pastikan server MySQL dan program phpMySQL sudah berjalan. Untuk membuka
tampilan phpMyAdmin di komputer lokal melalui URL http://localhost/phpmyadmin/

Gambar 72: Halaman login pada PhpMyAdmin


Masukkan login sebagai root atau sesuai dengan user yang sudah dibuat sehingga muncul
tampilan sebagai berikut:

55 | P a g e

Gambar 2: Halaman awal pada PhpMyAdmin


5.3 MySQL Connection
a. Connect Database
Sebelum mengakses data dalam database, kita harus membuat koneksi ke database
terlebih dahulu.

Dalam PHP, hal ini dilakukan dengan menggunakan fungsi

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

Contoh jika tidak menggunakan password, maka bagian password dikosongkan


saja:

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.

MsMahasiswa dengan field-field berikut ini :


NIM dengan tipe varchar(50) sebagai primary key(PK)
Password dengan tipe varchar(50)
nama dengan tipe varchar(50)

57 | P a g e

alamat dengan tipe varchar(100)


email dengan tipe varchar(50)
Telp dengan tipe int(50)
jenis_kelamin dengan tipe varchar(20)
Agama dengan tipe varchar(20)
Semester dengan tipe int(11)
Tanggal_lahir dengan tipe date
Fakultas dengan tipe varchar(30)
Jurusan dengan tipe varchar(30)
status dengan tipe varchar(30)
upload file dengan tipe varchar(50)

Msdosen dengan field-field berikut ini :


KdDosen dengan tipe varchar(50) sebagai primary key(PK)
password dengan tipe varchar(50)
nama dengan tipe varchar(50)
alamat dengan tipe varchar(50)
email dengan tipe varchar(50)
jenis_kelamin dengan tipe varchar(20)
Telp dengan tipe int(11)
Agama dengan tipe varchar(30)
status dengan tipe varchar(30)
Tanggal_lahir dengan tipe date
uploadfile dengan tipe varchar(100)

MsPelajarandengan field-field berikut ini :


kdpelajaran dengan tipe varchar(20) sebagai primary key(PK)
namapelajaran dengan tipe varchar(50)
jumlah sks dengan tipeint(11)

TransPelajaran dengan field-field berikut ini :


Transaksi dengan tipe varchar(20) sebagai primary key(PK)

58 | P a g e

nim dengan tipe varchar(20)


kdpelajaran dengan tipe varchar(20)
kelas dengan tipe varchar(20)
shift dengan tipe int(11)
hari dengan tipe int(11)

DetailPelajaran dengan field-field berikut ini :


KdTransaksi dengan tipe varchar(20) sebagai primaryKey(PK)
NIM dengan tipe varchar(20) sebagai primaryKey(PK)

59 | P a g e

Chapter 06
Database Manipulation

Objectives

1. View Data
2. Search
3. DML pada PHP
4. Exercise

Learning Outcomes

1. Build E-commerce site and Security


2. Design, planning, creating web database with MySQL

60 | P a g e

6.1 View Data


Query data adalah suatu proses menampilkan, memasukkan, menghapus, ataupun
mengubah data yang ada di database.
Dalam PHP, kita dapat melakukan select, insert, delete, maupun delete dengan
menggunakan sintaks SQL.

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.

Selanjutnya, kita menggunakan fungsi mysql_fetch_array() untuk mengembalikan baris


pertama dari recordset sebagai array. Setiap panggilan ke mysql_fetch_array ()
mengembalikan baris berikutnya dalam recordset. Perulangan while melalui semua
record dalam recordset. Untuk mencetak nilai setiap baris, kita menggunakan variabel
$row ($row ['FirstName'] dan $row['LastName']).

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

6.3 DML pada PHP


DML ( Data Manipulation Language ) yang mencakup INSERT, UPDATE, DELETE
dapat dilakukan melalui PHP dengan menggunakan fungsi mysql_query(). Pada fungsi
mysql_query() dapat dimasukan query query database yang dibutuhkan.

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

bisa dibuat menjadi false apabila menggunakan fungsi

mysqli_autocommit dari object mysqli.


$objMysqli = new mysqli([server], [user], [password], [database]);
$objMysqli->autocommit(false);
$objMysqli->close();
Fungsi dari pengubahan autocommit menjadi false, biasa digunakan jika kita ingin
melakukan transaction bersifat batch dalam aplikasi. Di mana satu transaksi akan bersifat
berkelanjutan ke dalam transaksi lain, apabila satu transaksi gagal transaksi selanjutnya
tidak dapat dilanjutkan. Apabila 1 transaksi gagal, kita cukup menggunakan fungsi
mysqli_rollback(). Apabila berhasil, pada akhir transaksi kita bisa menambahkan syntax
mysqli_commit(). Dengan demikian semua hasil transaksi yang kita lakukan akan
menjadi commit (terjadi perubahan sesungguhnya di dalam database).
Delete
Query delete digunakan untuk menghapus record yang ada dalam table.
DELETE FROM table_name
WHERE some_column = some_value
Contoh query Delete:

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

1. Session and Cookies


2. File Upload
3. Paging
4. Mail
5. Exercise

Learning Outcomes

1. Build E-commerce site and Security


2. Design, planning, creating web database with MySQL
3. Building Web Application large project with PHP and MySQL

70 | P a g e

7.1 Session and cookies


Session
Session dalam PHP dapat digunakan sebagai tempat menyimpan informasi dalam server
yang dapat digunakan untuk keperluan data di tempat lain. Contohnya dapat digunakan
sebagai tempat mengisi username, shopping cart items, dll. Session hanya dapat
digunakan sementara waktu (alias tidak permanen). Setelah user telah meninggalkan
website, maka session akan hilang.
Session bekerja dengan cara membuat unique id (UID) untuk setiap pengunjung website.
Ini untuk menghindari ketika 2 user bersamaan menarik data dari server dan ini dapat
mengakibatkan ambigu. UID ini disimpan dalam sebuah cookie atau dalam URL.
Note : Jika Anda masih belum begitu berpengalaman dalam session, sebaiknya anda tidak
mempergunakan session karena akan mengancam keamanan website anda.

Contoh penggunaan session :

$_session[session name] : sintak untuk menyimpan dan mengambil data dalam

session.

session_start() : fungsi ini harus dipanggil ketika sebelum kita menggunakan session

di suatu halaman.

session_destroy() : menghapus semua data dalam session

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:

setcookie(name, value, expire, patch, domain);


name : nama cookies yang akan disimpan

value : nilai cookies yang akan disimpan

expire : lama waktu suatu cookie expired. Berisi Unix timestamp.

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.

Menampilkan cookies dengan nama user.

Ketika menghapus cookies anda harus yakin betul anda mengurangi nilai expire dengan
benar.
contoh menghapus cookies :

7.2 File Upload


Hal yang terpenting dari upload file adalah file tidak dapat dikirimkan dalam method
GET. Karena ada limitasi besar size dari URL, 1kb. Sedangkan File biasanya memiliki
size lebih besar dari limitasi tersebut. Jadi biasanya digunakan sebuah form sebagai media
pengirim file dan method POST.

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 :

<form enctype=multipart/form-data method=POST action=Upload.php>


<input type=file name=tryToUpload />
<input type=submit value=upload />
</form>

73 | P a g e

Upload.php:

Notes : Untuk validasi lainnya bisa ditambahkan sesuai kebutuhan.

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

die (Gagal Melakukan Koneksi ke Database Server);


echo mysql_error();
mysql_select_db($db,$conn) or die (Database Tidak Ditemukan);
$record_home = 5;
if(!$_GET['page'])
$page = 0;
else
$page = $_GET['page'];
$qmon = select * from info order by id desc limit $page,$record_home;
$query = mysql_query($qmon, $conn);
echo mysql_error();
if(mysql_num_rows($query)==0)
{
echo <BR>Tidak terdapat berita;
}
else
{
?>
<DL>
<?php
while($br = mysql_fetch_row($query))
{
?>
<DT><?=$br[1]?></DD>
<?php
}
?>
</DL>
<?php
}
?>
<hr size=1>
<CENTER>
<?php
if($page-$record_home>=0)
{
?>
<a href=?page=0>First</a> <a href=?page=<?=$page$record_home?>>Previous</a> <?php

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.

2. Search Data Students / Lecture


Halaman ini berfungsi untuk mencari data-data mahasiswa dan dosen 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
fasilitas paging agar tampilan web lebih terstruktur.

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

1. How to make PHP Report


2. Exercise

Learning Outcomes

1. -

80 | P a g e

8.1 How to make PHP Report

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

header("Content-Transfer-Encoding: binary ");


// memanggil function penanda awal file excel
xlsBOF();
// ------ membuat kolom pada excel --- //
// mengisi pada cell A1 (baris ke-0, kolom ke-0)
xlsWriteLabel(0,0,"NO");
// mengisi pada cell A2 (baris ke-0, kolom ke-1)
xlsWriteLabel(0,1,"NIM");
// mengisi pada cell A3 (baris ke-0, kolom ke-2)
xlsWriteLabel(0,2,"NAMA MAHASISWA");
// mengisi pada cell A4 (baris ke-0, kolom ke-3)
xlsWriteLabel(0,3,"NILAI");
// mengisi pada cell A5 (baris ke-0, kolom ke-4)
xlsWriteLabel(0,4,"STATUS KELULUSAN");
// -------- menampilkan data --------- //
// koneksi ke mysql
mysql_connect("localhost", "root", "root");
mysql_select_db("data");
// query menampilkan semua data
$query = "SELECT * FROM nilaimhs";
$hasil = mysql_query($query);
// nilai awal untuk baris cell
$noBarisCell = 1;
// nilai awal untuk nomor urut data
$noData = 1;
while ($data = mysql_fetch_array($hasil))
{
// menampilkan no. urut data
xlsWriteNumber($noBarisCell,0,$noData);
// menampilkan data nim
xlsWriteLabel($noBarisCell,1,$data['nim']);

83 | P a g e

// menampilkan data nama mahasiswa


xlsWriteLabel($noBarisCell,2,$data['namaMhs']);
// menampilkan data nilai
xlsWriteNumber($noBarisCell,3,$data['nilai']);
// menentukan status kelulusan
if ($data['nilai'] >= 60) $status = "LULUS";
else $status = "TIDAK LULUS";
// menampilkan status kelulusan
xlsWriteLabel($noBarisCell,4,$status);
// increment untuk no. baris cell dan no. urut data
$noBarisCell++;
$noData++;
}
// memanggil function penanda akhir file excel
xlsEOF();
exit();
?>
Apabila script di atas dijalankan pada browser, maka browser akan menampilkan kotak
dialog untuk mendownload file MS. Excel sebagai outputnya. Gambar berikut ini adalah
screen shot isi file excel yang telah didownload.

84 | P a g e

Berikut contoh menampilkan report dalam bentuk pdf.

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:

Vous aimerez peut-être aussi