• Tidak ada hasil yang ditemukan

Diktat Web Database September 2011

N/A
N/A
Protected

Academic year: 2022

Membagikan "Diktat Web Database September 2011"

Copied!
88
0
0

Teks penuh

(1)

Diktat Web Database

September 2011

(2)

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.

(3)

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

(4)

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

(5)

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

(6)

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

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 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 1: Logo PHP

Gambar 2: R. Lerdorf

Gambar 3: Logo MySQL

(7)

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>

(8)

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.

(9)

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.

(10)

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

(11)

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

(12)

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 (a- z, 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:

(13)

Gambar 9: Tampilan contoh pembuatan dan pemanggilan variabel pada browser

2.2 Operator-operator pada PHP

 Operator Aritmetika

Operator Penjelasan Contoh Hasil

+ Penjumlahan 2+2 4

- Pengurangan 5-2 3

* Perkalian 4*5 20

/ Pembagian 5/2 2.5

. Penggabungan 5.2 52

% Modulus (sisa bagi) 5%2

10%8 10%2

1 2 0

++ Penaikan x=5; x++ x=6

-- Penurunan x=5; x-- x=4

 Operator Penugasan

Operator Contoh Sama saja dengan

= x=y x=y

+= x+=y x=x+y

-= x-=y x=x-y

*= x*=y x=x*y

/= x/=y x=x/y

.= x.=y x=x.y

%= x%=y x=x%y

(14)

 Operator Perbandingan

Operator Penjelasan Contoh Hasil

== Sama dengan 5==8 False

!= Tidak sama dengan 5!=8 True

<> Tidak sama dengan 5<>8 True

> Lebih besar dari 5>8 False

< Lebih kecil dari 5<8 True

>= Lebih besar dari atau sama dengan 5>=8 False

<= Lebih kecil dari atau sama dengan 5<=8 True

 Operator Logika

Operator Description Contoh Hasil

&& Dan x=6; y=3;

(x<10&&y>1)

True

|| Atau x=6; y=3

(x==5||y==5)

False

! Bukan/tidak x=6; y=3

!(x==y)

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

(15)

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:

(16)

$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:

:

(17)

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

(18)

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.

(19)

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

(20)

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.

(21)

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

(22)

Gambar 20: Hasil lat2-proses.php pada browser

(23)

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

(24)

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

“;

(25)

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 multi- dimensi. 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;

(26)

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

(27)

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:

(28)

$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

(29)

Gambar 25: Contoh array multi-dimensi

(30)

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:

(31)

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:

(32)

Mode Penjelasan

r Baca saja. Dimulai dari awal file r+ Baca-tulis. Dimulai dari awal file

w Tulis saja. Membuka dan mengosongkan file, file akan dibuat bila tidak ada w+ Baca-tulis. Membuka dan mengosongkan file, file akan dibuat bila tidak ada a Menambah. Membuka dan menambahkan file, file akan dibuat bila tidak ada a+ Baca-menambah. Membuka dan menulis sesuatu pada akhir file

x Tulis saja. Membuat file baru. Mengembalikan FALSE bila file sudah ada x+ 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.

(33)
(34)

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

(35)

Gambar 35: Hasil asisten.csv pada Notepad

(36)

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

(37)

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

(38)

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:

(39)

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)

(40)

Parameter Deskripsi

format Diperlukan. Menentukan format timestamp

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)

(41)

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

(42)

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

(43)

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

(44)

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.

(45)

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.

(46)

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.

(47)

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.

(48)

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

(49)

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 “Today’s 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 Munculkan pesan di Kondisi Teknik 1 required samping textfield nama nama kosong strlen 2 max-length: 20 samping textfield nama nama lebih panjang dari 30

karakter

strlen 3 must be started with ’Mr.’ samping textfield nama nama tidak diawali dengan substr

(50)

or ’Mrs.’ word kata ’Mr.’ / ’Mrs.’

4 required samping textfield umur umur kosong strlen 5 must be a number samping textfield umur umur bukan angka filter 6 must be greater than 17 samping textfield umur umur di bawah 18 tahun operator 7 required samping textfield alamat alamat kosong strlen 8 must contains ’street’

word

samping textfield alamat alamat tidak mengandung kata ’street’

strpos 9 Sorry, your data cannot

be submitted.

bawah form ada kesalahan validasi variabel(

flagging) 10 Your data has been saved

in data.txt.

bawah form tak ada kesalahan validasi 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.

(51)

Gambar 64: Kode sumber lat4.php (1)

(52)

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)

(53)

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

(54)

Gambar 69: Tampilan dari lat4.php bila terjadi kesalahan

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

(55)

Gambar 71: Tampilan dari data.txt bila data dari lat4.php di atas sudah benar

(56)

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

(57)

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:

(58)

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:

(59)

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)

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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:

(65)

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:

(66)

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:

(67)

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:

(68)

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

(69)

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

(70)

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.

(71)

$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");

}

?>

(72)

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

(73)

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.

(74)

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

(75)

$_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 men- download 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>

Gambar

Gambar 2: R. Lerdorf
Gambar 5: Contoh komentar pada PHP
Gambar 7: Hasil lat1.php pada browser
Gambar 9: Tampilan contoh pembuatan dan pemanggilan variabel pada browser
+7

Referensi

Dokumen terkait

•   Google Scholar è Impact Factor (profil jurnal: h-index, i10- index, Cita&gt;on analysis). •  EBSCO , Gale, Proquest, CABI è aggregator

Cara pertama dengan menggunakan tabel kebenaran, yaitu jika semua pilihan bernilai * (benar) maka disebut menggunakan tabel kebenaran, yaitu jika semua pilihan bernilai * (benar)

Secara keseluruhan EPIC rate, rata-rata adalah 4,077, artinya iklan menggunakan aplikasi mobile offline ini berada pada dimensi “efektif” (Gambar 4). Hal ini

Alamat Email : diharto72 pada domain gmail.com atau diharto pada domain staff.unnes.ac.id. Pangkat/Golongan/Ruang :

Berdasarkan pengertian dan unsur-unsur citizen jurnalims di atas dapat disimpulkan bahwa media massa sebagai salah satu sarana untuk mendapatkan informasi bagi

Angka c ommunalities terkecil yaitu indikator kesopanan pelayanan sebesar 0,237, yang berarti hanya 23,7% varians dari indikator kesopanan di dalam pelayanan dapat dijelaskan

Tumbuh optimum pada suhu 30-37˚C dan tumbuh baik pada NaCl 1-3% serta pendapat Nguyen et al (2006) yang menyatakan bahwa bakteri Bacillus sp tidak mampu tumbuh pada media

Berdasarkan definisi stres yang telah dikemukakan oleh Lazarus dan Folkman, maka definisi stres akademis yang digunakan dalam penelitian ini adalah kondisi dimana