Modul ajar
Pemrograman
WEB I
Khairi Ibnutama, S.Kom., M.Kom.
Stmik triguna dharma
2019
PEMROGRAMAN WEB I 1
STMIK TRIGUNA DHARMA
CHAPTER 1
SERVER SIDE SCRIPTING
1.1 Client and Server Scripting
Pemrograman client server dapat digambarkan melalui diagram berikut ini:
Gambar 1.1 Pemrograman Client Server
1.2 Lingkungan Kerja
Dalam merancang website dinamis berbasis client-server dibutuhkan beberapa
komponen atau perangkat lunak pendukung diantaranya:
1.2.1 Apache
Apache merupakan salah satu web server PHP yang dapat digunakan dalam
membangun website client-server menggunakan PHP. Pemrograman PHP tidak dapat
berjalan selain di dalam lingkungan web server, tidak seperti HTML yang langsung dapat
diakses. Apache dapat diinstal langsung pada komputer dengan mengunduhnya di alamat
https://httpd.apache.org/download.cgi. Pada modul ini tidak dilakukan instalasi Apache
secara terpisah, melainkan akan dilakukan instalasi menyeluruh nantinya menggunakan
perangkat lunak all-in-one package.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 2
STMIK TRIGUNA DHARMA
1.2.2 PHP
Agar komputer dapat mengenali bahasa pemrograman PHP maka dibutuhkan
instalasi library PHP dalam run-time environtment komputer. Script PHP tidak akan dapat
dieksekusi ke server jika di komputer tersebut tidak terdapat instalasi PHP. Komputer yang
tidak terinstal PHP tetap dapat mengakses website yang menggunakan PHP melalui web
browser, hal ini dikarenakan yang di akses oleh web browser tersebut adalah dokumen
HTML hasil eksekusi dari server (seperti terlihat pada diagram Gambar 1.1). Untuk instalasi
PHP secara manual dapat dilakukan dengan mengunduh PHP pada alamat
https://www.php.net/downloads.php.
1.2.3 MySQL
Dalam membangun website dinamis dibutuhkan layanan basis data untuk
menyimpan konten yang akan ditampilkan pada halaman website. Konten tersebut dapat
berubah sesuai dengan kebutuhan website yang dilakukan menggunakan query melalui
PHP. Basis data yang umum digunakan bersamaan dengan PHP adalah MySQL yang
dapat diunduh pada alamat https://www.mysql.com/downloads/.
1.2.4 All in One Package Software
Agar ketiga komponen tersebut dapat digunakan secara bersamaan, maka
dibutuhkan konfigurasi yang kompleks. Konfigurasi tersebut dapat ditemukan dengan
membaca dokumentasi yang ada di alamat website masing-masing. Untuk pengguna yang
belum terbiasa melakukan konfigurasi server dapat melakukan instalasi all-in-one package
software yang secara otomatis telah menyelaraskan kerja ketiga komponen tersebut.
Terdapat banyak perangkat lunak untuk menjalankan web server dengan fitur Apache dan
MySQL, diantaranya:
1. XAMPP (https://www.apachefriends.org/download.html)
2. WAMP (http://www.wampserver.com/en/#download-wrapper)
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 3
STMIK TRIGUNA DHARMA
1.3 Perangkat Lunak yang Digunakan
Dalam membangun sebuah website berbasis client-server dibutuhkan beberapa
perangkat lunak diantaranya sebagai berikut:
1.3.1 XAMPP
Gambar 1.2 XAMPP Control Panel
XAMPP merupakan salah satu all-in-one Package Software yang dapat menjalankan
server secara lokal dan mengeksekusi script PHP dalam sebuah website. Selain itu versi
PHP yang didukung oleh perangkat lunak tersebut saat ini telah mencapai versi 7.3.
1.3.2 Visual Studio Code
Gambar 1.3 Visual Studio Code
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 4
STMIK TRIGUNA DHARMA
Visual Studio Code merupakan salah satu text editor yang populer saat ini
dikarenakan dapat diinstal banyak plugin yang membantu pengguna mempercepat
penulisan program. Visual Studio Code juga terintegrasi dengan Command Line Interface
(CLI) sehingga dapat langsung menjalankan perintah-perintah compiler atau program yang
berbasis CLI.
1.3.3 Google Chrome
Gambar 1.4 Browser Google Chrome
Browser Google Chrome merupakan browser yang paling umum digunakan dalam
pembangunan website. Tidak hanya sebagai media pra-tampil website yang sedang
dikerjakan, Google Chrome juga menyediakan Developer Console yang sangat berguna
dalam proses debugging. Developer Console pada Google Chrome dapat diakses dengan
menekan tombol F12 pada keyboard.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 5
STMIK TRIGUNA DHARMA
CHAPTER 2
DASAR PEMROGRAMAN PHP
2.1 Bentuk Penulisan PHP
PHP merupakan bahasa pemrograman dengan bentuk penulisan case sensitive,
dimana huruf besar dan kecil pada penulisan kode program sangat berpengaruh terhadap
eksekusi perintah. File PHP hanya dapat dieksekusi dan dijalankan di server.
2.2 Syntax Dasar
PHP adalah bahasa yang dirancang untuk mudah digunakan dalam kode HTML.
Kode PHP yang ditulis dibungkus1 dengan tag <?php dan diakhiri dengan tag ?>.
Di dalam bahasa pemrograman PHP terdapat sintaks penulisan komentar untuk
memberikan catatan atau komentar terhadap baris atau bagian program sehingga
mempermudah dalam proses pembacaan dan penandaan baris-baris kode. Komentar
dapat ditulis dengan dua cara, yaitu:
1. Komentar sebaris, yang diawali dengan tanda //. Contoh:
Program 2.1 – Komentar Sebaris
<?php
// ini adalah komentar sebaris
?>
2. Komentar banyak baris, yang diawali tanda /* dan diakhiri dengan tanda */. Contoh:
Program 2.2 – Komentar Banyak Baris
<?php
/*
ini adalah komentar
yang terdiri dari
banyak baris
*/
?>
File PHP yang ditulis pada text editor kemudian disimpan kedalam folder yang dibuat
pada direktori “htdocs” pada folder penyimpanan XAMPP. Sebagai contoh, buatlah folder
dengan nama “chapter2” didalam folder htdocs, kemudian ketik kode PHP berikut ini
menggunakan text editor Visual Studio Code:
1
Tutup tag PHP ?> boleh tidak digunakan jika didalam file tersebut hanya terdapat baris kode PHP.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 6
STMIK TRIGUNA DHARMA
Program 2.3 – Penulisan PHP File: index.php
<?php
/*
PEMROGRAMAN WEB 1
CHAPTER 2
STMIK TRIGUNA DHARMA
*/
?>
Simpan kode di atas (CTRL + S) dengan nama file “index.php”2 di dalam folder
chapter2. Kemudian buka browser Google Chrome (atau Mozilla Firefox) dan ketikkan
alamat http://localhost/chapter2 seperti pada gambar dibawah ini.
Gambar 2.1 Tampilan PHP Sederhana
Secara default ketika mengakses sebuah folder pada server (folder chapter2) maka
server otomatis akan mencari file dengan nama index.php untuk dieksekusi. Jika file
tersebut tidak ada, maka server akan mencari file dengan nama index.html untuk
dieksekusi. Jika kedua file tersebut tidak terdapat pada folder, maka server akan
menampilkan list folder dan file yang terdapat pada folder yang diakses.
File PHP tersebut tidak menampilkan apapun di halaman browser karena hanya
berisi komentar, dimana komentar tidak akan dieksekusi atau diabaikan.
2
Biasakan menulis nama file dengan huruf kecil tanpa spasi untuk memudahkan dalam pengelolaan URL
nantinya.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 7
STMIK TRIGUNA DHARMA
2.1.1 Output
Dalam pemrograman PHP terdapat beberapa fungsi untuk mencetak output pada
halaman web browser, diantaranya:
1. Fungsi echo()
Fungsi echo() pada PHP digunakan untuk menampilkan teks/string maupun hasil
operasi ke halaman web browser3. Fungsi echo() dapat digunakan tanpa tanda kurung dan
dapat menerima lebih dari satu parameter yang dipisahkan dengan tanda koma.
Program 2.4 – Fungsi Echo File: echo.php
<?php
echo ("STMIK ");
echo "Triguna Dharma, ";
echo "Langkah ", "Pasti ", "Menuju ", "Sukses.";
?>
Baris kode di atas disimpan dengan nama file echo.php yang akan menghasilkan
tampilan pada web browser pada alamat http://localhost/chapter2/echo.php seperti
terlihat pada gambar berikut:
Gambar 2.2 Output Fungsi Echo
2. Fungsi print()
Fungsi print() pada PHP hampir sama dengan fungsi echo(), namun pada fungsi
print() akan mengembalikan nilai 1 ketika dieksekusi, sedangkan fungsi echo() tidak
3
Dalam mencetak string pada PHP dapat dilakukan menggunakan tanda kutip dua (“) atau tanda kutip
satu (‘).
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 8
STMIK TRIGUNA DHARMA
mengembalikan nilai apapun. Fungsi print() akan menampilkan error jika diberikan lebih
dari satu parameter.
Program 2.5 – Fungsi Print File: print.php
<?php
print("Pemrograman WEB 1");
print " - ";
print "Khairi Ibnutama, S.Kom., M.Kom.";
?>
Ketik dan simpan baris kode di atas dengan nama file print.php yang disimpan satu
folder dengan file sebelumnya, sehingga ketika diakses pada web browser dengan alamat
http://localhost/chapter2/print.php akan menghasilkan tampilan sebagai berikut:
Gambar 2.3 Output Fungsi Print
3. Fungsi print_r()
Fungsi print_r() umum digunakan untuk mencetak isi dalam sebuah array4,
walaupun fungsi ini juga dapat digunakan untuk mencetak seperti pada fungsi-fungsi
sebelumnya. Fungsi print_r() lebih sering digunakan pada proses debug5 program,
seperti untuk mengetahui isi dari sebuah array sebelum dikelola pada halaman website.
4
Array pada PHP akan dibahas lebih lanjut pada Chapter 7.
5
Debug atau debugging adalah proses pengujian sebuah program pada aplikasi yang berjalan.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 9
STMIK TRIGUNA DHARMA
Program 2.6 – Fungsi Print_r File: printr.php
<?php
$semester = array("Semester 1", "Semester 2", "Semester 3");
print_r($semester);
?>
Baris kode tersebut disimpan dalam file printr.php dengan tampilan pada halaman
web browser sebagai berikut:
Gambar 2.4 Output Fungsi Print_r
Berbeda dengan fungsi echo() dan print(), fungsi print_r() harus menggunakan
tanda kurung dalam penulisannya seperti pada contoh di atas.
4. Fungsi var_dump()
Fungsi var_dump() juga umum digunakan pada saat proses debugging. Berbeda
dengan fungsi print_r(), fungsi var_dump() ikut menyimpan serta menampilkan informasi
berupa tipe data dan panjang dari output yang akan ditampilkan.
Program 2.7 – Fungsi Var_dump File: vardump.php
<?php
var_dump(25000);
$matkul = array("Disain WEB", "WEB 1", "WEB 2");
var_dump($matkul);
?>
Baris kode di atas akan menampilkan informasi dari bilangan 25000 dan array yang
dicetak pada halaman web browser.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 10
STMIK TRIGUNA DHARMA
Gambar 2.5 Output Fungsi Var_dump
2.1.2 Bentuk Penulisan
Dalam membangun web dinamis dibutuhkan penggabungan bahasa pemrograman
PHP dan HTML. Penggabungan tersebut harus mengikuti kaidah bentuk penulisan yang
berlaku. Bentuk penulisan PHP dan HTML terbagi menjadi dua yaitu penulisan HTML di
dalam sintaks PHP dan penulisan PHP didalam tag HTML.
1. HTML di dalam PHP
Bentuk penulisan tag HTML di dalam sintaks PHP jarang digunakan oleh developer
website. Hal ini dikarenakan akan menyulitkan saat pembacaan dan perbaikan kode
program. Bentuk penulisan ini hanya dilakukan jika ingin mencetak tag HTML yang
berjumlah sedikit. Contoh bentuk penulisan tag HTML di dalam sintaks PHP adalah sebagai
berikut:
Program 2.8 – HTML di Dalam PHP File: htmlphp.php
<?php
echo "<html>", "<head>";
echo "<title>WEB 1 - Chapter 2</title>";
echo "</head>";
?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 11
STMIK TRIGUNA DHARMA
Baris kode dalam file htmlphp.php tersebut menyisipkan tag HTML di dalam sintaks
PHP untuk ditampilkan pada halaman web browser. Output dari kode tersebut adalah
mengubah judul halaman web seperti pada gambar berikut ini:
Gambar 2.6 Tampilan HTML di Dalam PHP
2. PHP di dalam HTML
Bentuk penulisan ini yang paling umum digunakan untuk mempermudah saat
pembacaan dan perbaikan baris kode PHP. Bentuk penulisan sintaks PHP di dalam tag
HTML sedikit lebih panjang dan merepotkan namun sangat mempermudah nantinya dalam
pengelolaan program.
Program 2.9 – PHP di Dalam HTML File: phphtml.php
<body>
<h1>
<?php echo "Chapter 2"; ?>
</h1>
<h3>
<?= "Dasar Pemrograman PHP"; ?>
</h3>
Pada baris kode tersebut terdapat tag <?= yang dapat digunakan sebagai pengganti
sintaks <?php echo sehingga mempercepat dalam penulisan. Tampilan dari baris kode
tersebut dapat dilihat pada gambar berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 12
STMIK TRIGUNA DHARMA
Gambar 2.7 Tampilan PHP di Dalam HTML
2.3 Pemanggilan File PHP
Dalam membangun website dinamis menggunakan PHP sebaiknya setiap elemen
atau konten pada website dipisah menjadi beberapa file PHP yang nantinya akan dipanggil
dan digabungkan kedalam satu halaman. Pemisahan file tersebut memungkinkan untuk
digunakan kembali pada halaman yang berbeda serta memudahkan saat mengubah isi
konten pada halaman. Proses pemanggilan file PHP dilakukan dengan menggunakan
fungsi include(), require(), serta include_once() dan require_once(). Jika file PHP yang
dipanggil berada dalam satu folder dengan file yang tampilan, maka pemanggilan file cukup
dilakukan dengan mencantumkan nama file tersebut.
2.3.1 Fungsi include()
Fungsi include() digunakan untuk memanggil dan mengikutsertakan sebuah file
PHP pada halaman website. Jika sebuah file PHP dipanggil menggunakan fungsi include()
ternyata tidak ditemukan, maka akan ditampilkan pesan error pada halaman website dan
perintah/fungsi selanjutnya yang ada di bawah fungsi include() akan tetap
dieksekusi/diproses.
Pada contoh berikut ini, buka kembali file index.php yang telah dibuat sebelumnya,
lalu tambahkan baris program seperti berikut:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 13
STMIK TRIGUNA DHARMA
Program 2.10 – Fungsi Include File: index.php
<?php
/*
PEMROGRAMAN WEB 1
CHAPTER 2
STMIK TRIGUNA DHARMA
*/
include("htmlphp.php");
?>
Pada contoh program di atas kita memanggil file htmlphp.php ke dalam file
index.php untuk ditampilkan pada halaman web browser. Pada kasus ini file htmlphp.php
yang dipanggil berada dalam satu folder (chapter2) dengan file index.php sehingga
pemanggilan cukup dilakukan dengan mencantumkan nama file yang dipanggil. Hasil
pemanggilan file htmlphp.php dapat dilihat dengan mengakses alamat
http://localhost/chapter2 pada halaman web browser.
Gambar 2.8 Pemanggilan Menggunakan Fungsi include
2.3.2 Fungsi require()
Fungsi require() hampir sama dengan fungsi include() yang telah dibahas
sebelumnya. Perbedaan antara kedua fungsi ini adalah jika file PHP yang dipanggil
menggunakan fungsi require() tidak ditemukan, maka pesan error akan ditampilkan pada
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 14
STMIK TRIGUNA DHARMA
halaman web browser dan perintah/fungsi selanjutnya yang berada dibawah fungsi
require() tidak akan dieksekusi/diproses.
Tambahkan baris kode pemanggilan file phphtml.php menggunakan fungsi
require() pada file index.php seperti pada contoh berikut:
Program 2.11 – Fungsi Require File: index.php
<?php
/*
PEMROGRAMAN WEB 1
CHAPTER 2
STMIK TRIGUNA DHARMA
*/
include("htmlphp.php");
require("phphtml.php");
?>
Tampilan fungsi require() pada halaman web browser dapat dilihat setelah me-
refresh6 halaman index.php seperti pada gambar berikut:
Gambar 2.9 Pemanggilan Menggunakan Fungsi require
2.3.3 Fungsi include_once() dan require_once()
Perbedaan Fungsi include_once() dan require_once() dengan fungsi include()
dan require() adalah pemanggilan file yang dilakukan menggunakan fungsi
6
Refresh/reload halaman dapat dilakukan dengan menekan tombol F5 pada keyboard, atau dengan klik
icon reload pada browser.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 15
STMIK TRIGUNA DHARMA
include_once() dan require_once() hanya terjadi sekali, sehingga memungkinkan file
yang sama dipanggil berulang kali dalam satu halaman menggunakan kedua fungsi ini7.
Ubah kembali file index.php untuk memanggil file lainnya menggunakan perintah
include_once() dan require_once() seperti pada contoh program berikut ini.
Program 2.12 – Fungsi Include_once dan Require_once File: index.php
<?php
/*
PEMROGRAMAN WEB 1
CHAPTER 2
STMIK TRIGUNA DHARMA
*/
include("htmlphp.php");
require("phphtml.php");
echo "<p>";
include_once("echo.php");
echo "</p>";
echo "<small>";
require_once("print.php");
echo "</small>";
?>
Tampilan pada halaman web browser dari pemanggilan file seperti pada contoh
program 2.12 dapat dilihat pada gambar berikut:
Gambar 2.10 Pemanggilan Menggunakan Fungsi include_once dan require_once
7
Sebuah file yang sama tidak dapat dipanggil lebih dari satu kali dalam satu halaman menggunakan fungsi
include() dan require() karena akan menampilkan pesan error.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 16
STMIK TRIGUNA DHARMA
2.4 Latihan
Klik kanan mouse pada halaman web browser (Gambar 2.10) lalu pilih View Page
Source. Analisa source kode HTML tersebut dan lengkapi tag HTML yang masih kurang
pada file index.php!
Jawaban: Lampiran Latihan 1
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 17
STMIK TRIGUNA DHARMA
CHAPTER 3
VARIABEL DALAM PHP
3.1 Variabel
Variabel adalah suatu pengenal di dalam program yang digunakan untuk menyimpan
nilai atau data tertentu. Dengan memasukkan nilai ke dalam variabel maka nilai tersebut
dapat diakses pada bagian lain dalam program dengan mengacu ke nama variabel
tersebut.
Dalam pemrograman PHP, variabel didefinisikan dengan membubuhkan tanda $
(dollar) di depan nama variabel yang dibuat. Berbeda dengan bahasa pemrograman pada
umumnya, variabel pada PHP tidak butuh deklarasi tipe data terhadap nilai yang akan
dimasukkan. Dengan kata lain, variabel pada PHP dapat menampung nilai dengan tipe data
apapun.
Catatan: Buatlah folder baru pada direktori htdocs dengan nama chapter3 lalu buka
folder chapter3 menggunakan Visual Studio Code!
3.1.1 Penulisan Variabel
Berikut ini contoh kode penulisan variabel dalam PHP yang diisi dengan nilai dengan
tipe data berbeda tiap variabelnya:
Program 3.1 – Variabel Pada PHP File: index.php
<?php
/*
PEMROGRAMAN WEB 1
CHAPTER 3
STMIK TRIGUNA DHARMA
*/
$nama = "John Doe";
$usia = 32;
?>
Pada baris kode di atas terdapat dua buah variabel yaitu “nama” dan “usia”, dimana
kedua variabel tersebut menampung nilai dengan tipe data berbeda (string dan integer)
tanpa perlu deklarasi tipe data terlebih dahulu. Pengisian nilai atau data ke dalam variabel
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 18
STMIK TRIGUNA DHARMA
dilakukan dengan membubuhkan tanda sama dengan ( = ) diantara variabel dan nilai yang
akan disimpan.
Penamaan sebuah variabel dalam PHP harus mengikuti kaidah penulisan variabel
sebagai berikut:
1. Harus diawali dengan karakter huruf, contoh: $Kelas
2. Karakter selanjutnya boleh berupa angka atau underscore, contoh: $semester_3
3. Tidak boleh menggunkan spasi atau simbol lainnya, jika sebuah variabel
menggunakan dua suku kata, pisahkan dengan underscore atau tulis dengan gaya
camelCase, contoh: $web_satu atau $webSatu
4. Nama variabel bersifat case sensitive, dimana huruf besar dan huruf kecil dianggap
berbeda, contoh: $Kelas ≠ $KELAS
5. Minimal terdiri dari satu karakter setelah tanda $ dan tidak lebih dari 128 karakter.
3.1.2 Mencetak Isi Variabel
Nilai atau data yang tersimpan dalam variabel dapat dicetak/ditampilkan ke halaman
web browser dengan memanggil nama variabel penampungnya menggunakan perintah
output pada PHP. Berikut ini contoh kode mencetak isi variabel “nama” dan “usia”:
Program 3.2 – Mencetak Isi Variabel File: index.php
<?php
/*
PEMROGRAMAN WEB 1
CHAPTER 3
STMIK TRIGUNA DHARMA
*/
$nama = "John Doe";
$usia = 32;
echo "$nama";
print "<br>";
echo $usia;
?>
Dalam mencetak isi variabel dapat dilakukan dengan atau tanpa tanda kutip dua ( “
” ), tetapi tidak dapat dilakukan menggunakan tanda kutip satu ( ‘ ’ ). Berikut ini tampilan
output dari kode di atas:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 19
STMIK TRIGUNA DHARMA
Gambar 3.1 Output Isi Variabel
3.1.3 Jenis Variabel dalam PHP
Terdapat beberapa jenis variabel dalam pemrograman PHP, diantaranya adalah
sebagai berikut:
1. Konstanta
Konstanta adalah suatu pengenal didalam program yang digunakan untuk
menyimpan nilai sederhana. Perbedaan konstanta dengan variabel adalah ketika konstanta
didefinisikan maka nilai konstanta tidak dapat diubah selama program dieksekusi,
sedangkan nilai pada variabel dapat diubah sesuai dengan kebutuhan. Deklarasi konstanta
pada pemrograman PHP dilakukan dengan menggunakan fungsi define().
define('PI', 3.14);
echo PI;
Pemanggilan nilai dari sebuah konstanta dilakukan tanpa mencantumkan tanda $
seperti pada pemanggilan nilai pada variabel.
2. Variabel Variabel
Kita dapat mengacu nilai dari variabel yang namanya tersimpan dalam variabel lain,
contoh berikut ini menunjukkan setelah program dieksekusi, variabel $var2 akan bernilai
“Triguna”.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 20
STMIK TRIGUNA DHARMA
$var1 = "var2";
$$var1 = "Triguna";
3. Variabel Referensi
Referensi merupakan alias dari sebuah variabel. Contoh membuat alias dari sebuah
variabel adalah sebagai berikut:
$nama =& $panggilan;
Nilai lama dari variabel $nama akan hilang dan tertimpa oleh nilai yang disimpan
dalam variabel $panggilan dikarenakan variabel $nama saat ini telah menjadi nama lain atau
alias dari variabel $panggilan.
4. Variabel Global dan Lokal
Variabel yang dideklarasikan dalam sebuah fungsi8 akan bersifat lokal untuk fungsi
tersebut. Dengan kata lain variabel tersebut hanya dapat diakses dan digunakan di dalam
fungsi tersebut, termasuk nested-function atau sub-fungsi. Variabel yang dibuat di luar
sebuah fungsi secara default akan dianggap sebagai variabel global9. Sebuah variabel lokal
dapat di akses secara global dengan mencantumkan statement global sebelum penamaan
variabel. Contoh variabel global dan lokal dapat dilihat pada kode program berikut ini:
$x = 2; //variabel global
function lokalGlobal() {
$y = 4; //variabel lokal
global $z; //variabel lokal yang di set global
}
5. Variabel Statis
Variabel statis merupakan variabel yang dapat menyimpan nilai terakhir dari setiap
pemanggilan fungsi. Perhatikan contoh program berikut!
function updateNilai() {
static $x = 0; // nilai awal variabel static
$x++; // x + 1 setiap pemanggilan fungsi
echo "$x <br>"; // mencetak nilai variabel x
}
updateNilai(); // pemanggilan pertama, 0 + 1 = 1
updateNilai(); // pemanggilan kedua, 1 + 1 = 2
8
Materi tentang fungsi akan dibahas pada Chapter 5.
9
Variabel global dapat diakses di seluruh bagian program maupun fungsi.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 21
STMIK TRIGUNA DHARMA
Pada fungsi updateNilai() diberikan nilai 0 pada variabel $x, dimana setiap kali
fungsi updateNilai() dipanggil nilai variabel $x akan diperbarui dengan melakukan
increment10. Pada pemanggilan fungsi pertama kali, nilai variabel $x adalah 1. Dengan
menyatakan variabel $x adalah static, maka ketika fungsi updateNilai() dipanggil kedua
kali nilai variabel $x tidak diulang dari 0, melainkan masih tersimpan nilai increment
sebelumnya yaitu 1.
6. Parameter Fungsi
Variabel dapat berperan sebagai parameter yang menerima masukan dari sebuah
fungsi yang dipanggil.
function penjumlahan($a, $b) {
$hasil = $a + $b; // operasi penjumlahan
echo "Hasil penjumlahan = $hasil"; // cetak hasil penjumlahan
}
penjumlahan(3, 8); // menjumlahkan 3 dan 8
10
Increment adalah menambahkan nilai awal dengan 1, sering disimbolkan dengan ++ atau +=1.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 22
STMIK TRIGUNA DHARMA
CHAPTER 4
OPERATOR
4.1 Operator pada PHP
Operator adalah suatu karakter atau simbol yang berfungsi untuk mengoperasikan
lebih dari satu bilangan atau nilai untuk mendapatkan hasil tertentu. Bilangan atau nilai yang
dioperasikan menggunakan operator disebut dengan operand.
4.1.1 Operator Assignment
Operator penugasan atau assignment merupakan operator yang digunakan untuk
mengisi nilai dalam sebuah variabel menggunakan tanda sama dengan (=). Operator
penugasan telah dibahas sebelumnya pada materi tentang variabel.
4.1.2 Operator Aritmatika
PHP menyediakan dukungan terhadap operasi dasar aritmatika dengan simbol-
simbol sebagai berikut:
Operator Keterangan
* Operator perkalian
/ Operator pembagian
+ Operator penjumlahan
- Operator pengurangan
% Mencari sisa pembagian (modulus)
++ Menaikkan nilai variabel sebesar 1 (increment)
-- Menurunkan nilai variabel sebesar 1 (decrement)
Contoh program operator aritmatika dapat dilihat pada program berikut ini:
Program 4.1 – Operator Aritmatika File: aritmatika.php
<?php
$nilai_1 = 7;
$nilai_2 = 5;
$kali = $nilai_1 * $nilai_2;
$bagi = $nilai_1 / $nilai_2;
$tmbh = $nilai_1 + $nilai_2;
$krg = $nilai_1 - $nilai_2;
$mod = $nilai_1 % $nilai_2;
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 23
STMIK TRIGUNA DHARMA
$nilai_1++;
$nilai_2--;
echo "Hasil perkalian = $kali <br>";
echo "Hasil pembagian = $bagi <br>";
echo "Hasil penjumlahan = $tmbh <br>";
echo "Hasil pengurangan = $krg <br>";
echo "Sisa hasil bagi (mod) = $mod <br>";
echo "Increment nilai_1 = $nilai_1 <br>";
echo "Decrement nilai_2 = $nilai_2 <br>";
?>
Output dari program tersebut dapat dilihat pada gambar berikut ini:
Gambar 4.1 Operator Aritmatika pada PHP
Catatan: Increment juga dapat dilakukan dengan cara $var += 1; atau dengan cara
$var = $var + 1;. Berlaku juga untuk operasi decrement.
4.1.3 Operator Concatenation
Concatenation atau sering disebut concat adalah operator yang digunakan untuk
menghubungkan dua buah string dalam variabel. String concat menggunakan simbol titik
(.) diantara dua buah string.
Program 4.2 – Operator Concatenation File: concat.php
<?php
$teks1 = "Triguna";
$teks2 = "Dharma";
echo $teks1 . " " . $teks2;
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 24
STMIK TRIGUNA DHARMA
?>
Pada program tersebut dilakukan concatenation untuk menggabungkan tiga string
yaitu “Triguna”, “[spasi]”, dan “Dharma” sehingga menghasilkan teks “Triguna Dharma”
saat dicetak.
Gambar 4.2 Operator Concatenation pada PHP
4.1.4 Operator Perbandingan
Operator perbandingan atau relasional digunakan untuk membandingkan dua buah
nilai. Hasil dari operasi perbandingan berupa nilai boolean (true atau false).
Operator Keterangan
$x == $y Memeriksa apakah nilai $x sama dengan nilai $y
$x === $y Memeriksa apakah nilai dan tipe data $x sama dengan $y
$x != $y Memeriksa apakah nilai $x tidak sama dengan nilai $y
$x !== $y Memeriksa apakah nilai dan tipe data $x tidak sama dengan $y
$x < $y Memeriksa apakah nilai $x lebih kecil dari nilai $y
$x <= $y Memeriksa apakah nilai $x lebih kecil atau sama dengan nilai $y
$x > $y Memeriksa apakah nilai $x lebih besar dari nilai $y
$x >= $y Memeriksa apakah nilai $x lebih besar atau sama dengan nilai $y
Perbedaan antara operator == dan === dapat dilihat pada contoh program berikut:
$a = (5 == "5"); // bernilai true
$b = (5 === "5"); // bernilai false
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 25
STMIK TRIGUNA DHARMA
Variabel $a bernilai true karena kedua nilai (5) yang dibandingkan sama, tetapi
variabel $b akan bernilai false karena kedua nilai yang dibandingkan berbeda tipe data
(integer dan string) walaupun bernilai sama. Operator === dan !== sering juga disebut
dengan operator identitas.
4.1.5 Operator Logika
Operator logika digunakan untuk mengoperasikan dua buah operand yang bertipe
boolean. Hasil dari operasi menggunakan operator logika juga akan bertipe boolean.
Operator logika pada PHP dapat berupa AND (dan), OR (atau), dan NOT (negasi).
Operator Keterangan
&& Logika AND, bernilai true jika kedua operand bernilai true
|| Logika OR, bernilai true jika salah satu operand bernilai true
! Logika NOT, bernilai true jika operand bernilai false
Contoh penggunaan operator logika dapat dilihat pada program berikut ini:
$a = 7;
$b = 9;
$and = (($a == 7) && ($b < 5)); // bernilai false
$or = (($a == 4) || ($b >= 9)); // bernilai true
$not = (!($b < 10)); // bernilai false
Variabel $and bernilai false karena salah satu operand bernilai false ($b < 5).
Variabel $or bernilai true karena salah satu operand bernilai true ($b >= 9). Sedangkan
variabel $not bernilai false karena operand bernilai true ($b < 10).
Catatan: Operator perbandingan dan operator logika akan dibahas lebih lanjut pada
materi Kontrol Program pada Chapter 4.
4.2 Latihan
Buatlah sebuah file PHP dengan nama latihan.php di dalam folder chapter3 lalu
tentukan tiga variabel dengan nama $namaDepan, $namaBelakang, dan $tahunLahir. Isi
ketiga variabel tersebut dengan data diri masing-masing. Kemudian cari usia anda saat ini
berdasarkan tahun lahir dalam variabel $tahunLahir sehingga dapat ditampilkan output
pada browser seperti pada contoh gambar berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 26
STMIK TRIGUNA DHARMA
Jawaban: Lampiran Latihan 2
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 27
STMIK TRIGUNA DHARMA
CHAPTER 5
SELEKSI KONDISI
5.1 Seleksi Kondisi (Percabangan)
Seleksi kondisi atau blok pemilihan yang terdapat dalam suatu program berguna
untuk menentukan aksi mana yang akan dieksekusi berdasarkan pada kondisi-kondisi
tertentu yang didefinisikan. Jika suatu kondisi terpenuhi (bernilai true) maka aksi yang
terdapat di dalam blok tersebut akan dieksekusi. Sebaliknya jika tidak terpenuhi (bernilai
false) maka aksi tersebut akan diabaikan oleh program.
Catatan: Buatlah folder baru di dalam htdocs dengan nama folder chapter5 untuk
menyimpan file pada materi ini.
5.1.1 Perintah if
Perintah if digunakan jika sebuah blok program hanya akan dieksekusi saat suatu
kondisi bernilai true, tanpa ada opsi lain jika kondisi bernilai false. Bentuk umum perintah if
adalah sebagai berikut:
if(kondisi){
// statement jika benar
}
Contoh program dibawah ini berfungsi untuk mencetak output jika sebuah bilangan
dalam variabel bernilai lebih kecil dari 10.
Program 5.1 – Perintah If File: if.php
<?php
$bilangan = 9;
if($bilangan < 10){
echo "Bilangan bernilai < 10";
}
?>
Program tersebut akan menampilkan output pada web browser berupa kalimat
“Bilangan bernilai < 10” karena kondisi yang di cek bernilai true. Namun jika variabel
$bilangan nilainya diganti dengan bilangan yang lebih besar atau sama dengan 10 maka
tidak akan ada output yang ditampilkan.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 28
STMIK TRIGUNA DHARMA
Gambar 5.1 Output Perintah If
5.1.2 Perintah if – else
Seleksi kondisi if – else digunakan saat pengecekan satu kondisi yang
memungkinkan terdapat dua pilihan output. Jika kondisi bernilai true, maka blok program
dibawahnya akan dieksekusi. Sedangkan jika kondisi bernilai false, maka blok program
pada bagian else akan dieksekusi. Bentuk umum perintah if – else adalah sebagai berikut:
if(kondisi){
// statement jika benar
} else {
// statement jika salah
}
Contoh program berikut ini melakukan pengecekan bilangan positif atau negatif
berdasarkan kondisi dari nilai sebuah variabel.
Program 5.2 – Perintah If Else File: ifelse.php
<?php
$nilai = -2;
if($nilai < 0){
echo "Bilangan negatif";
} else {
echo "Bilangan positif";
}
?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 29
STMIK TRIGUNA DHARMA
Gambar 5.2 Output Perintah If – Else
5.1.3 Perintah if – elseif – else
Bentuk seleksi kondisi ini digunakan saat ada lebih dari satu kondisi yang ingin
diperiksa, dan setiap kondisi akan menghasilkan output berbeda jika bernilai true.
Sedangkan jika semua kondisi bernilai false, maka akan ditampilkan output terakhir pada
blok program else. Bentuk umum perintah ini adalah sebagai berikut:
<?php
if(kondisi_1){
// statement jika kondisi 1 benar
} elseif(kondisi_2){
// statement jika kondisi 2 benar
} elseif(kondisi_n){
// statement jika kondisi n benar
} else {
// statement jika semua kondisi salah
}
?>
Contoh program bentuk seleksi kondisi ini dapat dilihat pada program 5.3 berikut
ini:
Program 5.3 – Perintah If Elseif Else File: ifelseif.php
<?php
$jeniskelamin = 'W';
$usia = 25;
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 30
STMIK TRIGUNA DHARMA
if ($jeniskelamin == 'P' && $usia <= 40 && $usia > 0) {
echo "Anda seorang Pria muda.";
} elseif ($jeniskelamin == 'W' && $usia <= 40 && $usia > 0) {
echo "Anda seorang Wanita muda.";
} elseif ($jeniskelamin == 'P' && $usia > 40 && $usia > 0) {
echo "Anda seorang Pria tua.";
} elseif ($jeniskelamin == 'W' && $usia > 40 && $usia > 0) {
echo "Anda seorang Wanita tua.";
} elseif ($usia < 0) {
echo "Usia tidak valid!";
} else {
echo "Jenis kelamin tidak valid!";
}
?>
Program tersebut melakukan pengecekan nilai dua buah variabel menggunakan
operator AND, dimana jika setiap kondisi yang ada pada blok if dan elseif harus bernilai
true, jika tidak maka akan ditampilkan output pada blok program else.
Gambar 5.3 Output Perintah If – Elseif – Else
5.1.4 Bentuk Lain Penulisan
Terdapat beberapa bentuk lain penulisan perintah seleksi kondisi sesuai dengan
kebutuhan program pada PHP, diantaranya:
1. If – Endif
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 31
STMIK TRIGUNA DHARMA
Bentuk lain penulisan perintah seleksi kondisi if, if – else, atau if – elseif – else dapat
ditulis menggunakan sintaks seperti berikut:
<?php
$angka = 11;
if ($angka < 0) :
echo "Isi variabel = $angka <br>";
echo "Angka adalah bilangan negatif";
elseif ($angka < 10) :
echo "Isi variabel = $angka <br>";
echo "Angka adalah bilangan positif < 10";
else :
echo "Isi variabel = $angka <br>";
echo "Angka adalah bilangan positif > 10";
endif;
?>
2. Ternary (Shorf If)
Perintah if – else dapat disingkat bentuk penulisannya menggunakan ternary (short
if) jika ingin mencetak salah satu dari dua output kondisi. Program 5.2 akan menghasilkan
output yang sama menggunakan ternary seperti dibawah ini:
<?= -2 < 0 ? "Bilangan negatif" : "Bilangan positif"; ?>
Simbol <?= sebagai pengganti perintah echo, sedangkan simbol ? mewakili output
jika kondisi true, dan simbol : sebagai opsi jika kondisi bernilai false (else). Ternary
digunakan saat melakukan pengecekan kondisi yang hanya butuh satu output di setiap
nilai true atau false.
5.1.5 Perintah switch – case
Bentuk perintah switch – case digunakan penggantu perintah if yang memiliki terlalu
banyak kondisi. Bentuk umum perintah switch – case adalah sebagai berikut:
switch(ekspresi){
case nilaiKonstan1:
// statement jika benar
break;
case nilaiKonstan2:
// statement jika benar
break;
case nilaiKonstanN:
// statement jika benar
break;
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 32
STMIK TRIGUNA DHARMA
default:
// statement alternatif
}
Pada bentuk umum tersebut, ekspresi dapat berupa sebuah kondisi atau nilai dalam
sebuah variabel. Nilai konstan merupakan kemungkinan yang terdapat pada ekspresi,
sedangkan perintah break diberikan di setiap pengecekan nilai konstan agar eksekusi
program segera dihentikan saat terdapat jawaban benar pada salah satu nilai konstan. Jika
tidak ada nilai konstan yang bernilai benar, maka blok default akan dieksekusi sebagai
alternatif jawaban (output) dari program.
Program 5.4 – Perintah Switch – Case File: switchcase.php
<?php
$bulan = 6;
switch ($bulan) {
case 1: $teks = 'Januari'; break;
case 2: $teks = 'Februari'; break;
case 3: $teks = 'Maret'; break;
case 4: $teks = 'April'; break;
case 5: $teks = 'Mei'; break;
case 6: $teks = 'Juni'; break;
case 7: $teks = 'Juli'; break;
case 8: $teks = 'Agustus'; break;
case 9: $teks = 'September'; break;
case 10: $teks = 'Oktober'; break;
case 11: $teks = 'November'; break;
case 12: $teks = 'Desember'; break;
default: echo "Bulan tidak valid"; exit();
}
echo "Bulan $bulan adalah bulan $teks";
?>
Tampilan program tersebut pada halaman browser dapat dilihat pada gambar
berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 33
STMIK TRIGUNA DHARMA
Gambar 5.4 Output Perintah Switch – Case
Perintah exit() yang terdapat pada blok program default berfungsi agar program
segera diakhiri tanpa mengeksekusi perintah setelah switch – case. Dalam kasus ini baris
terakhir program untuk menampilkan teks bulan akan diabaikan karena kemungkinan nilai
dalam variabel bulan adalah 0 < $bulan > 12.
5.2 Latihan
Buatlah sebuah file PHP dengan nama latihan.php di dalam folder chapter5.
Tentukan sebuah variabel dengan nama $ujian yang berisi nilai sembarang dari 0 s/d 100.
Lakukan pengecekan kondisi variabel ujian untuk menampilkan yudisium nilai dengan
ketentuan:
• Nilai 80 s/d 100, yudisium A;
• Nilai 70 s/d 79, yudisium B;
• Nilai 60 s/d 69, yudisium C;
• Nilai 50 s/d 59, yudisium D;
• Nilai 0 s/d 49, yudisium E;
• Nilai < 0 atau > 100 tampikan output “Nilai ujian tidak valid!”;
Kemudian tampilkan output program pada halaman browser dalam bentuk seperti
gambar dibawah ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 34
STMIK TRIGUNA DHARMA
Jawaban: Lampiran Latihan 3
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 35
STMIK TRIGUNA DHARMA
CHAPTER 6
PERULANGAN
6.1 Perulangan
Perulangan atau looping pada PHP digunakan untuk mengulang sebuah perintah
yang sama lebih dari satu kali, sehingga penulisan program dapat dipersingkat. Sebuah
perulangan membutuhkan kondisi yang diperiksa, selama kondisi tersebut masih bernilai
true, maka perintah akan terus diulang dan akan berhenti saat kondisi mencapai nilai false.
Umumnya akan dilakukan increment atau decrement terhadap nilai kondisi agar terjadi
perubahan hingga nilai false dapat tercapai. Terdapat beberapa bentuk perintah
perulangan yang dapat digunakan dalam PHP.
Catatan: Buatlah folder baru di dalam htdocs dengan nama folder chapter6 untuk
menyimpan file pada materi ini.
6.1.1 Perulangan While
Perintah while melakukan pemeriksaan kondisi di awal blok program sehingga jika
kondisi tersebut bernilai false, maka blok perintah akan diabaikan. Bentuk umum penulisan
perintah while adalah sebagai berikut:
while(kondisi){
aksi;
}
Contoh program berikut ini melakukan perulangan untuk mencetak kalimat beserta
nilai dalam sebuah variabel:
Program 6.1 – Perulangan While File: while.php
<?php
$n = 0;
while($n <= 10){
echo "Perulangan ke - $n <br>";
$n++;
}
?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 36
STMIK TRIGUNA DHARMA
Pada program tersebut dilakukan pemeriksaan kondisi nilai di dalam variabel $n.
Saat nilai tersebut masih lebih kecil atau sama dengan 10, maka perintah mencetak kalimat
“Perulangan ke - $n” akan dieksekusi. Selanjutnya dilakukan increment untuk
menambahkan nilai awal $n dengan 1, kemudian dilakukan pemeriksaan nilai $n saat ini
apakah masih lebih kecil atau sama dengan 10.
Output tampilan program tersebut pada halaman web browser dapat dilihat pada
gambar berikut ini:
Gambar 6.1 Output Perulangan While
6.1.2 Perulangan Do – While
Berbeda dengan perintah while, perintah do – while akan memeriksa kondisi di
bagian akhir blok program. Hal ini memungkinkan perintah akan dieksekusi satu kali
walaupun kondisi yang didefinisikan tidak terpenuhi (bernilai false). Bentuk umum penulisan
perintah do – while adalah sebagai berikut:
do {
aksi;
} while (kondisi);
Contoh program penggunaan perintah do – while pada PHP dapat dilihat pada
Program 6.2 berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 37
STMIK TRIGUNA DHARMA
Program 6.2 – Perulangan Do While File: dowhile.php
<?php
$n = 1;
do {
echo "Perulangan ke - $n";
$n--;
} while ($n > 10);
?>
Pada contoh program tersebut perintah akan dikerjakan terlebih dahulu walaupun
nilai variabel $n tidak sesuai kondisi yang ditetapkan. Output program dapat dilihat pada
gambar berikut ini:
Gambar 6.2 Output Perulangan Do – While
6.1.3 Perulangan For
Perintah for merupakan bentuk perulangan yang paling sering digunakan serta dapat
dikatakan bentuk perulangan paling sederhana diantara bentuk lainnya. Pada struktur
perulangan for, inisialisasi, kondisi, dan increment/decrement ditulis pada bagian awal
perulangan di tempat yang sudah ditentukan. Bentuk umum perulangan for adalah sebagai
berikut:
for(inisialisasi; kondisi; increment/decrement){
perintah;
}
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 38
STMIK TRIGUNA DHARMA
Contoh program penerapan perulangan for untuk mencetak bilangan kelipatan 2 dari
0 s/d 10 dapat dilihat pada Program 6.3 berikut ini:
Program 6.3 – Perulangan For File: for.php
<?php
echo "Bilangan kelipatan 2 dari 0 sampai 10 adalah = ";
for ($i = 2; $i <= 10; $i += 2) {
echo "$i, ";
}
?>
Pada program tersebut dilakukan penambahan nilai variabel $i dengan 2 di setiap
kali selesai dilakukan pemeriksaan kondisi. Sehingga dihasilkan output nilai variabel $i
dengan kelipatan dua seperti pada tampilan gambar berikut ini:
Gambar 6.3 Output Perulangan For
6.1.4 Perintah For – Each
Perulangan for – each digunakan untuk melakukan pengulangan pada saat
mengakses elemen-elemen dalam suatu array11. Bentuk umum perulangan for – each
adalah sebagai berikut:
foreach($array as $elemen){
perintah;
}
11
Array akan dibahas lebih lanjut pada Chapter 8.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 39
STMIK TRIGUNA DHARMA
Berikut ini contoh penggunaan perulangan for – each untuk mencetak nilai elemen
yang terdapat dalam sebuah array:
Program 5.4 – Perulangan For Each File: foreach.php
<?php
$kelas = ['3SIA1', '3SIB1', '3SIC1', '3MIA2'];
foreach ($kelas as $kls) {
echo "Kelas $kls <br>";
}
?>
Program tersebut akan melakukan perulangan mencetak nilai tiap elemen dalam
array sebanyak jumlah elemen di dalamnya. Pada kasus ini terdapat empat kelas di dalam
array $kelas, maka perulangan pencetakan akan dilakukan sebanyak empat kali. Tiap kelas
akan disimpan dalam sebuah variabel baru dengan nama $kls sebelum dicetak ke halaman
browser.
Gambar 6.4 Output Perulangan For – Each
6.2 Latihan
Buatlah sebuah file PHP dengan nama latihan.php di dalam folder chapter6.
Buatlah perulangan untuk mencetak bilangan ganjil dari 99 sampai 1 dengan tampilan
seperti pada gambar berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 40
STMIK TRIGUNA DHARMA
Jawaban: Lampiran Latihan 4
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 41
STMIK TRIGUNA DHARMA
CHAPTER 7
FUNGSI DAN PEMINDAHAN EKSEKUSI
7.1 Fungsi
Fungsi adalah blok program yang didefinisikan dengan nama tertentu dan digunakan
untuk melaksanakan tugas-tugas spesifik. Sebuah fungsi hanya perlu didefinisikan satu
kali, namun dapat digunakan secara berulang. Fungsi berguna untuk membuat kode
program lebih bersifat modular dan mudah dibaca. Di dalam PHP, fungsi dibedakan
menjadi dua jenis yaitu:
1. Fungsi yang tidak mengembalikan nilai (void function)
2. Fungsi yang mengembalikan nilai
Bentuk umum sebuah fungsi yang dibuat dalam pemrograman PHP dapat dilihat
pada contoh berikut ini:
function namaFungsi($parameter1, $parameter2) {
// perintah program
}
Aturan penulisan nama sebuah fungsi sama dengan aturan penulisan nama variabel.
Parameter dalam sebuah fungsi bersifat opsional, dimana hanya diberikan jika sebuah
fungsi akan menerima data untuk di proses.
Catatan: Buatlah folder baru di dalam htdocs dengan nama folder chapter7 untuk
menyimpan file pada materi ini.
7.1.1 Fungsi Tanpa Nilai Kembali
Sebuah fungsi yang dibuat tanpa mengembalikan nilai apapun setelah pemanggilan
merupakan bentuk fungsi yang paling sederhana. Berikut ini contoh program bentuk fungsi
tanpa pengembalian nilai:
Program 7.1 – Fungsi Tanpa Pengembalian Nilai File: voidfunction.php
<?php
// deklarasi fungsi
function luasPersegi($p, $l){
echo "Luas persegi = " . $p * $l;
}
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 42
STMIK TRIGUNA DHARMA
// pemanggilan fungsi
luasPersegi(5, 3);
?>
Pada contoh program di atas dapat dilihat bahwa fungsi luasPersegi dideklarasikan
di bagian awal program dengan menerima dua buah parameter $p dan $l. Fungsi tersebut
tidak akan dieksekusi oleh program sebelum dilakukan pemanggilan nama fungsinya.
Ketika pemanggilan nama fungsi dilakukan, diberikan dua buah nilai untuk diproses,
dimana nilai-nilai tersebut ditampung terlebih dahulu di dalam variabel parameter yang
disediakan.
Gambar 7.1 Fungsi Tanpa Pengembalian Nilai
7.1.2 Fungsi Dengan Pengembalian Nilai
Sebuah fungsi dengan pengembalian nilai biasanya dibuat untuk mengembalikan
hasil proses pada fungsi tersebut agar dapat digunakan pada bagian lain dari program.
Pengembalian dari sebuah fungsi dapat langsung berupa suatu nilai, atau nilai yang
disimpan dalam variabel penampung. Berikut contoh fungsi pada program yang
mengembalikan nilai:
Program 7.2 – Fungsi Dengan Pengembalian Nilai File: returnfunction.php
<?php
// deklarasi fungsi
function nilaiHuruf(int $nilai) {
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 43
STMIK TRIGUNA DHARMA
if ($nilai >= 80) {
$huruf = 'A';
} elseif ($nilai >= 70) {
$huruf = 'B';
} elseif ($nilai >= 60) {
$huruf = 'C';
} elseif ($nilai >= 50) {
$huruf = 'D';
} else {
$huruf = 'E';
}
// pengembalian nilai
return $huruf;
}
// pemanggilan fungsi
$h = nilaiHuruf(75);
// cetak nilai dari fungsi
echo "Nilai huruf adalah = $h";
?>
Pada program di atas dilakukan deklarasi fungsi yang mengolah nilai dari parameter
$nilai untuk mendapatkan nilai huruf. Nilai huruf yang didapat melalui proses seleksi
kondisi di dalam fungsi nilaiHuruf dikembalikan ke program menggunakan perintah
return dan ditampung kedalam variabel $h untuk kemudian dicetak ke halaman web
browser.
Gambar 7.2 Fungsi Dengan Pengembalian Nilai
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 44
STMIK TRIGUNA DHARMA
7.2 Pemindahan Eksekusi
Dalam eksekusi program dapat dilakukan pemindahan alur eksekusi ke bagian atau
baris program lainnya. PHP menyediakan beberapa perintah untuk pemindahan alur
eksekusi program yang sering disebut dengan pernyataan loncat (jump statement). Selain
itu terdapat juga fungsi exit() yang dapat dikategorikan sebagai kelompok pemindahan
eksekusi.
7.2.1 Perintah Break
Dalam pemrograman PHP, perintah break memiliki dua fungsi, yaitu untuk
menghentikan proses seleksi kondisi yang dilakukan menggunakan perintah switch, dan
menghentikan proses perulangan jika ditempatkan di dalam blok perulangan (while, do –
while, for, maupun foreach). Contoh perintah break dalam perulangan yang menghentikan
alur program saat tercapai suatu kondisi adalah sebagai berikut:
Program 7.3 – Perintah Break File: break.php
<?php
for ($i = 0; $i < 10; $i++) {
// hentikan perulangaan saat nilai i = 5
if ($i == 5) {
break;
}
echo "Perulangan ke - $i <br>";
}
?>
Pada program 7.3 seharusnya dilakukan perulangan untuk mencetak nilai $i dari 0
sampai 9 ($i < 10). Namun karena terdapat perintah break saat nilai $i mencapai 5, maka
perulangan akan dihentikan.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 45
STMIK TRIGUNA DHARMA
Gambar 7.3 Perintah Break
7.2.2 Perintah Continue
Perintah continue berguna untuk memaksa perulangan agar melanjutkan proses ke
langkah berikutnya. Perintah ini akan mengabaikan semua perintah-perintah program yang
ditulis di bawah perintah continue.
Program 7.4 – Perintah Continue File: continue.php
<?php
echo "Bilangan genap dari 0 s/d 10 adalah = ";
for ($n = 0; $n <= 10; $n++) {
if ($n % 2 == 1) {
continue;
}
// cetak nilai n
echo $n;
if ($n == 10) {
echo ".";
break;
}
// cetak pemisah koma
echo ", ";
}
?>
Program 7.4 melakukan perulangan untuk mencetak bilangan dari 0 sampai 10,
namun dengan memberikan perintah continue saat bilangan mod 2 = 1 (ganjil) maka
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 46
STMIK TRIGUNA DHARMA
pencetakan bilangan akan diabaikan, dan perulangan akan dilanjutkan kembali untuk
mencetak bilangan-bilangan berikutnya. Sehingga terjadi pola pencetakan hanya ditujukan
pada bilangan genap12.
Gambar 7.4 Perintah Continue
7.2.3 Perintah Goto
Perintah goto akan memindahkan alur eksekusi program ke baris tertentu yang
ditandai dengan sebuah label. Dalam pemrograman PHP label ditulis dengan bebas dan
diakhiri dengan tanda titik dua.
Program 7.5 – Perintah Goto File: goto.php
<?php
$n = 0;
// membuat label
ulangi:
if($n <= 5){
echo "Cetakan ke - $n<br>";
$n++;
// pindah eksekusi ke label ulangi
goto ulangi;
}
?>
12
Perintah break disisipkan untuk menghentikan pencetakan pemisah koma saat bilangan mencapai nilai 10.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 47
STMIK TRIGUNA DHARMA
Label “ulangi” yang terdapat pada program berfungsi sebagai alamat tujuan
eksekusi program dari perintah goto. Pada contoh program tersebut terdapat perintah goto
menuju alamat label ulangi selama nilai di dalam variabel lebih kecil atau sama dengan 5.
Gambar 7.5 Perintah Goto
7.2.4 Perintah Return
Pada saat pemanggilan sebuah fungsi, maka eksekusi program akan diarahkan ke
perintah-perintah di dalam fungsi. Perintah return berguna untuk mengembalikan hasil
eksekusi program dari dalam fungsi yang dipanggil menuju baris pemanggil (baris kode
yang memanggil fungsi tersebut). Penggunaan dan contoh program perintah return dapat
dilihat pada sub-chapter 7.1.2.
7.2.5 Fungsi Exit
Fungsi exit() berguna untuk menghentikan eksekusi perintah di dalam suatu
program. Perintah-perintah program yang berada di bawah fungsi exit() tidak akan
dieksekusi. Contoh penggunaan fungsi exit() pada PHP dapat dilihat pada contoh
program berikut ini:
Program 7.6 – Fungsi Exit File: exit.php
<?php
$p = 4;
$l = 7;
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 48
STMIK TRIGUNA DHARMA
// ganti dengan 'K' untuk mencari keliling
$dicari = 'L';
if ($dicari == 'L') {
goto luas;
} else {
goto keliling;
}
luas:
$luas = $p * $l;
echo "Luas persegi panjang = $luas";
// hentikan program
exit();
keliling:
$kel = (2 * $p) + (2 * $l);
echo "Keliling persegi panjang = $kel";
?>
Pada contoh program 6.6 digunakan fungsi exit() untuk menghentikan eksekusi
program jika yang dicari adalah luas persegi panjang. Hal ini dilakukan agar perintah yang
ada dibawah label keliling tidak dieksekusi.
Gambar 7.6 Fungsi Exit
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 49
STMIK TRIGUNA DHARMA
7.3 Latihan
Perbaiki program berikut sehingga tampilan pada web browser sesuai dengan
gambar!
Program 7.7 – Latihan File: latihan.php
<?php
$r = 7;
if($r % 2 == 0){
goto luasLingkaran;
} else {
goto kelilingLingkaran;
}
function luasLingkaran($r){
$luas = PI * r * r;
return $luas;
}
function kelilingLingkaran(){
$keliling = 2 * PI * $r;
return $keliling;
}
kelilingLingkaran:
$kel = kelilingLingkaran();
luasLingkaran:
$luas = luasLingkaran();
?>
Jawaban: Lampiran Latihan 5
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 50
STMIK TRIGUNA DHARMA
CHAPTER 8
ARRAY
8.1 Array Pada PHP
Array merupakan suatu koleksi nilai yang saling berkaitan. Array berfungsi sama
seperti variabel, hanya saja nilai yang dapat ditampung dalam sebuah array dapat lebih dari
satu (banyak). Array tersusun atas elemen-elemen yang memiliki kunci (key) dan nilai
(value). Terdapat dua jenis array di dalam pemrograman PHP yaitu array berindeks (indexed
array) dan array asosiatif (associative array).
Catatan: Buatlah folder baru di dalam htdocs dengan nama folder chapter8 untuk
menyimpan file pada materi ini.
8.1.1 Array Berindeks
Array berindeks merupakan sekumpulan nilai didalam sebuah array yang diindeks
atau diurutkan menggunakan angka/nomor. Penomoran array dimulai dari 0 sampai
dengan banyak nilai – 1. Contoh program berikut ini membuat sebuah variabel bertipe array
menggunakan fungsi array() pada PHP.
Program 8.1 – Indexed Array File: indeksarray.php
<?php
$prodi = array(
'Sistem Informasi',
'Sistem Komputer',
'Manajemen Informatika',
'Teknik Komputer'
);
echo ($prodi[2]);
?>
Pada program tersebut dibuat sebuah array dengan nama $jurusan yang terdiri dari
empat buah nilai (value). Keempat nilai tersebut secara otomatis akan diindeks sesuai
urutan penulisannya, sehingga ketika dipanggil $jurusan[2] akan tampil nilai pada indeks
ke-2 yaitu “Manajemen Informatika”.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 51
STMIK TRIGUNA DHARMA
Gambar 8.1 Tampilan Salah Satu Nilai Array
8.1.2 Array Asosiatif
Array asosiatif adalah array yang diindeks berdasarkan kunci (key) dengan nama
tertentu. Perbedaannya dengan array berindeks hanya terdapat pada penamaan kunci
yang bukan merupakan urutan indeks. Penentuan nama kunci terhadap nilai array
disimbolkan dengan tanda fat arrow =>.
Program 8.2 – Associative Array File: asosiatifarray.php
<?php
$mahasiswa = array(
'nama' => 'John Doe',
'prodi' => 'Sistem Informasi',
'semester' => 3,
'aktif' => true
);
if ($mahasiswa['aktif'] == true) {
echo ($mahasiswa['nama'] . ' mahasiswa semester ' . $mahasiswa['semester'] . ' ' .
$mahasiswa['prodi']);
} else {
echo ($mahasiswa['nama'] . ' sudah tidak aktif kuliah.');
}
?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 52
STMIK TRIGUNA DHARMA
Masing-masing nilai array diberikan kunci dengan nama berbeda sehingga
memudahkan dalam pemanggilan nilai array. Pada program 8.2 juga dapat dilihat bahwa
sebuah array dalam PHP dapat menampung nilai dengan tipe data berbeda13.
Gambar 8.2 Tampilan Nilai Asosiatif Array
8.2 Mengakses Elemen Array
Terdapat beberapa cara dalam mengakses elemen array, salah satunya telah
dicontohkan sebelumnya dengan menentukan indeks atau nama kunci didalam kurung
siku. Selain itu array juga dapat diakses menggunakan perulangan foreach untuk mencetak
tiap nilai yang terdapat didalamnya. Sebagai contoh, data pada tabel berikut akan diubah
kedalam bentuk array pada PHP.
No. Produk Sisa Stock Harga Satuan Terjual
1 Shampoo 15 8000 13
2 Crackers 35 4000 27
Data pada tabel tersebut dapat diubah kedalam bentuk array terindeks yang tiap
nilainya terdiri dari sebuah asosiatif array. Dengan kata lain, tiap baris data pada tabel
diubah ke dalam bentuk asosiatif array dengan judul kolom sebagai kunci, lalu asosiatif
13
Gunakan perintah var_dump($namaarray); untuk mendapatkan informasi sebuah array.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 53
STMIK TRIGUNA DHARMA
array tersebut akan menjadi value dari array terindeks. Hal ini dilakukan agar data-data
tersebut dapat disimpan hanya dalam satu buah array14.
Program 8.3 – Akses Elemen Array File: aksesarray.php
<?php
$tabel = array(
array(
'no' => 1,
'produk' => 'Shampoo',
'sisa' => '15',
'harga' => 8000,
'terjual' => 13
),
array(
'no' => 2,
'produk' => 'Crackers',
'sisa' => '35',
'harga' => 4000,
'terjual' => 27
)
);
?>
Untuk menampilkan elemen-elemen yang terdapat dalam array multidimensi seperti
pada contoh program 8.3 dilakukan perulangan foreach dengan menampung tiap elemen
pada array terindeks (baris data) dalam satu variabel. Tambahkan kode program berikut
setelah tutup tag ?> pada file aksesarray.php.
Program 7.4 – Akses Elemen Array File: aksesarray.php
<table border="1">
<tr>
<th>No.</th>
<th>Produk</th>
<th>Sisa</th>
<th>Harga</th>
<th>Terjual</th>
<th>Pemasukan</th>
</tr>
<?php foreach ($tabel as $baris) : ?>
<tr>
<td><?= $baris['no'] ?></td>
<td><?= $baris['produk'] ?></td>
14
Array di dalam array disebut juga dengan multidimensional arrays.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 54
STMIK TRIGUNA DHARMA
<td><?= $baris['sisa'] ?></td>
<td><?= $baris['harga'] ?></td>
<td><?= $baris['terjual'] ?></td>
<td><?= $baris['harga'] * $baris['terjual'] ?></td>
</tr>
<?php endforeach; ?>
</table>
Pada program 8.4 dilakukan perulangan untuk mencetak tiap baris pada tabel serta
ditambahkan satu kolom “Pemasukan” yang berisi data hasil perkalian “harga” dan
“terjual”. Sehingga dapat ditampilkan output pada web browser seperti pada gambar
berikut ini:
Gambar 8.3 Tampilan Array Multidimensi
8.3 Fungsi Pendukung
Terdapat beberapa fungsi dalam pemrograman PHP yang dapat digunakan pada
sebuah array. Diantaranya sebagai berikut:
8.3.1 Fungsi Sort
Fungsi sort() digunakan untuk mengurutkan tiap value yang ada di dalam sebuah
array. Sebuah array yang diurutkan menggunakan fungsi sort() tidak ikut mengubah
urutan indeks atau key dari array tersebut. Contoh:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 55
STMIK TRIGUNA DHARMA
$pulau = array(
'Sumatera',
'Jawa',
'Kalimantan',
'Sulawesi',
'Papua',
'Bali'
);
sort($pulau);
print_r($pulau);
8.3.2 Fungsi Merge
Untuk menggabungkan dua atau lebih array ke dalam bentuk array yang baru dapat
dilakukan menggunakan fungsi array_merge(). Contoh:
$pulau1 = array('Sumatera', 'Jawa', 'Kalimantan');
$pulau2 = array('Sulawesi', 'Papua', 'Bali');
$pulau3 = array('Lombok');
$pulau = array_merge($pulau1, $pulau2, $pulau3);
print_r($pulau);
8.3.3 Fungsi Count
Fungsi count() digunakan untuk menghitung jumlah elemen yang terdapat dalam
sebuah array. Contoh:
$pulau = array('Sumatera', 'Jawa', 'Kalimantan');
$jumlah = count($pulau);
echo($jumlah);
8.3.4 Fungsi Search
Fungsi array_search() berfungsi untuk mencari sebuah elemen tertentu dalam satu
array. Fungsi ini akan mengembalikan nilai indeks elemen yang dicari jika pencarian
ditemukan, sebaliknya akan mengembalikan nilai false jika pencarian elemen tidak
ditemukan. Contoh:
$pulau = array('Sumatera', 'Jawa', 'Kalimantan');
$cari = array_search('Jawa', $pulau);
echo($cari);
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 56
STMIK TRIGUNA DHARMA
8.4 Latihan
Gunakan perulangan foreach untuk menampilkan array berikut ke dalam bentuk
tabel pada halaman web browser dengan seleksi kondisi hanya mahasiswa aktif.
Program 8.5 – Latihan File: latihan.php
<?php
$mahasiswa = array(
array(
'nirm' => 2017020001,
'nama' => 'Albert Einstein',
'aktif' => true
),
array(
'nirm' => 2010040002,
'nama' => 'Nikola Tesla',
'aktif' => false
),
array(
'nirm' => 2018030003,
'nama' => 'Bacharuddin Habibie',
'aktif' => true
)
);
?>
Jawaban: Lampiran Latihan 6
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 57
STMIK TRIGUNA DHARMA
CHAPTER 9
FORM HANDLING
9.1 Form Method
Form method digunakan untuk menentukan bagaimana cara informasi (data) dari
suatu form dikirimkan ke server. Terdapat dua cara dalam menangani data yang dikirim
dari form, yaitu dengan menggunakan method GET atau POST.
<form action="formhandler.php" method="post">
...
</form>
Atau
<form action="formhandler.php" method="get">
...
</form>
9.1.1 Method GET
Method get digunakan untuk mengirimkan data ke server melalui URL pada web
browser. Data yang dikirimkan melalui URL ditulis dengan format namaelemen=nilaidata,
dimana nama elemen adalah name dari sebuah elemen kontrol, contoh:
<input type="text" name="namaelemen">
Sedangkan nilai data adalah data yang dimasukkan oleh user ke dalam elemen
tersebut. Jika data yang dikirimkan lebih dari satu, maka akan ditambahkan simbol &
sebagai pemisah antar data yang dikirimkan, contoh:
?nama=John&usia=20&pekerjaan=Dosen
Catatan: Buatlah folder baru di dalam htdocs dengan nama folder chapter9 untuk
menyimpan file pada materi ini.
Program 9.1 – Form Method GET File: formget.php
<form action="dataget.php" method="get">
<input type="text" name="nama" placeholder="Nama Anda"><br><br>
<input type=”number” name=”usia” placeholder=”Usia Anda”><br><br>
<input type="submit" value="Kirim">
</form>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 58
STMIK TRIGUNA DHARMA
Ketikkan alamat http://localhost/chapter8/formget.php untuk melihat tampilan form
yang telah dibuat pada web browser.
Gambar 9.1 Tampilan Form Method GET
Buat file baru dengan nama dataget.php untuk menangani data yang dikirim melalui
form tersebut.
Program 9.2 – Handler Method GET File: dataget.php
<?php
$datanama = $_GET['nama'];
$datausia = $_GET['usia'];
echo ("$datanama sekarang berusia $datausia tahun.");
?>
Input data nama anda dan usia pada form yang telah dibuat, kemudian tekan tombol
“kirim” untuk mengirim data menuju file handler dataget.php sehingga menampilkan output
pada web browser seperti pada gambar berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 59
STMIK TRIGUNA DHARMA
Gambar 9.2 Output Data yang Dikirim
Perhatikan pada URL web browser saat data ditampilkan, terdapat penambahan
beberapa parameter pada bagian akhir URL sebagai berikut:
http://localhost/chapter8/dataget.php?nama=John+Doe&usia=25.
Sebagaimana telah dijelaskan sebelumnya, method GET akan mengirimkan data
melalui URL untuk diproses lebih lanjut. Data yang terdapat pada URL tersebut dapat
langsung dimodifikasi tanpa harus mengirim ulang data dari form, sehingga sangat tidak
aman jika digunakan untuk query database.
9.1.2 Method POST
Method POST pada form berfungsi sama dengan method GET yang telah dibahas
sebelumnya. Perbedaannya adalah method POST tidak menampilkan data yang dikirim
melalui URL, sehingga lebih aman digunakan untuk melakukan query ke database nantinya.
Buatlah file baru dengan nama formpost.php pada folder chapter8 dan ketikkan
kode HTML berikut ini:
Program 9.3 – Form Method POST File: formpost.php
<form action="datapost.php" method="post">
<input type="text" name="nama" placeholder="Nama Anda"><br><br>
<input type=”number” name=”usia” placeholder=”Usia Anda”><br><br>
<input type="submit" value="Kirim">
</form>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 60
STMIK TRIGUNA DHARMA
Ketikkan alamat http://localhost/chapter8/formpost.php untuk melihat tampilan form
yang telah dibuat pada web browser.
Gambar 9.3 Tampilan Form Method GET
Buat file baru dengan nama datapost.php untuk menangani data yang dikirim melalui
form tersebut.
Program 9.4 – Handler Method POST File: datapost.php
<?php
$datanama = $_POST['nama'];
$datausia = $_POST['usia'];
echo ("$datanama sekarang berusia $datausia tahun.");
?>
Input data nama anda dan usia pada form yang telah dibuat, kemudian tekan tombol
“kirim” untuk mengirim data menuju file handler datapost.php sehingga menampilkan
output pada web browser seperti pada gambar berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 61
STMIK TRIGUNA DHARMA
Gambar 9.4 Output Data yang Dikirim
Perhatikan alamat URL file handler tersebut yang tidak terdapat penambahan
parameter apapun. http://localhost/chapter8/datapost.php
9.2 Latihan
Buatlah file dengan nama latihan.php di dalam folder chapter8. Buatlah sebuah form
dengan nama login.php menggunakan method POST, lalu tentukan elemen input sebagai
berikut:
1. Input type = text, name = username, placeholder = Nama Pengguna
2. Input type = password, name = password, placeholder = Password
3. Input type = submit, value = Login
Buatlah file handler dengan nama file datalogin.php. Jika data Nama Pengguna yang
diinput pada form adalah 'admin' dan Password yang diinput adalah 'adminpass' maka
tampilkan teks “Anda berhasil login”. Jika Nama Pengguna dan Password yang diinput
bukan 'admin' dan 'adminpass', maka tampilkan pesan “Nama Pengguna atau Password
salah!”.
Jawaban: Lampiran Latihan 7
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 62
STMIK TRIGUNA DHARMA
CHAPTER 10
MYSQL DATABASE
10.1 Pendahuluan
Mulai Chapter 9 sampai selesai akan dibuat sebuah project PHP menggunakan
basis data MySQL. Untuk mepercepat proses penyelesaian proyek, maka disain tiap
halaman akan dilakukan menggunakan framework CSS Bootstrap 4
(https://getbootstrap.com). Disain tiap halaman yang akan digunakan pada proyek ini dapat
diunduh di alamat: http://bit.ly/TGDWEB1. Buat folder “katalogbuku” di dalam htdocs lalu
ekstrak isi file “katalogbuku.zip” hasil unduhan tersebut.
10.2 Persiapan Basis Data
Ketikkan alamat http://localhost/phpmyadmin pada web browser lalu ikuti langkah-
langkah berikut ini:
1. Klik menu ‘Databases’
2. Buat database dengan nama ‘katalogbuku’
3. Tekan tombol ‘Create’
4. Tekan tombol ‘SQL’
lalu ketikkan perintah berikut ini untuk membuat tabel buku:
Program 10.1 – Query Table Buku phpmyadmin
CREATE TABLE `buku` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`judul` varchar(128) NOT NULL,
`pengarang` varchar(128) NOT NULL,
`ringkasan` text NOT NULL,
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 63
STMIK TRIGUNA DHARMA
`tahun` int(4) NOT NULL,
`penerbit` varchar(128) NOT NULL,
`sampul` varchar(128) NOT NULL,
`created_at` time NOT NULL
);
5. Tekan tombol ‘Go’ untuk mengeksekusi query tersebut.
6. Tekan kembali menu ‘SQL’ untuk membuat tabel user melalui MySQL Query.
Program 10.2 – Query Table User phpmyadmin
CREATE TABLE `user` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`username` varchar(128) NOT NULL,
`password` varchar(128) NOT NULL,
`nama` varchar(128) NOT NULL
);
7. Eksekusi query dengan menekan tombol ‘Go’.
10.3 Keterangan
Field `id` pada kedua tabel (buku dan user) merupakan field kunci utama yang akan
digenerate otomatis secara berurutan saat ada data baru yang diisi pada tabel tersebut.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 64
STMIK TRIGUNA DHARMA
CHAPTER 11
PHP MYSQL 1
11.1 Koneksi Database
Catatan: Buatlah folder baru di dalam htdocs dengan nama folder katalogbuku untuk
menyimpan file mulai dari Chapter 11 hingga selesai.
Buatlah folder baru di dalam folder katalogbuku dengan nama “proses”, kemudian
buat file baru dengan nama “dbconfig.php” dan ketikkan kode PHP berikut ini:
Program 11.1 – Konfigurasi Database File: dbconfig.php
<?php
define('SERVER', 'localhost');
define('USERNAME', 'root');
define('PASSWORD', 'root');
define('DATABASE', 'katalogbuku');
// lakukan koneksi ke database
$koneksi = mysqli_connect(SERVER, USERNAME, PASSWORD, DATABASE);
// jika koneksi gagal
if (!koneksi) {
echo ('Error: Tidak dapat terhubung ke MySQL.' . PHP_EOL);
exit;
}
?>
11.2 Create Data
Perhatikan baris kode pada file “tambah.php” yang terdapat di dalam folder
katalogbuku.
<form action="proses/create.php" method="post">
Pada baris kode tersebut terdapat action menuju alamat folder proses dan file
create.php di dalamnya. File “create.php” akan menjadi file handler data yang diinput user
pada form tersebut untuk diolah nantinya (dalam kasus ini akan disimpan ke database).
Buatlah file dengan nama “create.php” di dalam folder “proses” lalu ketikkan kode berikut:
Program 11.2 – Create Data File: create.php
<?php
// cek jika tombol pada form di tekan
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 65
STMIK TRIGUNA DHARMA
if (isset($_POST['formtambah'])) {
// panggil file dbconfig
require_once('dbconfig.php');
// terima input dari form
$judul = mysqli_real_escape_string($koneksi, $_POST['judulbuku']);
$pengarang = mysqli_real_escape_string($koneksi, $_POST['pengarang']);
$ringkasan = mysqli_real_escape_string($koneksi, $_POST['ringkasan']);
$tahun = mysqli_real_escape_string($koneksi, $_POST['tahunterbit']);
$penerbit = mysqli_real_escape_string($koneksi, $_POST['penerbit']);
$created = time();
// ------------------------------------------
// file upload akan dibahas pada chapter lain
// ------------------------------------------
// query MySQL simpan data
$query = "INSERT INTO buku (
`judul`, `pengarang`, `ringkasan`, `tahun`, `penerbit`, `created_at`
) VALUES (
'$judul', '$pengarang', '$ringkasan', '$tahun', '$penerbit', '$created'
)";
// eksekusi query
$hasil = mysqli_query($koneksi, $query);
// jika query sukses
if ($hasil) {
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
// jika gagal
else {
// tampilkan pesan error
echo "Error: " . $sql . "<br>" . mysqli_error($koneksi);
echo "<br><br> <a href='../tambah.php'>Kembali</a>";
}
// tutup koneksi
mysqli_close($koneksi);
}
// jika halaman diakses melalui url
else {
// alihkan ke halaman tambah
header('location: ../tambah.php');
exit();
}
?>
Setelah file handler “create.php” selesai dibuat, ketikkan alamat
http://localhost/katalogbuku/tambah.php pada web browser lalu tambahkan minimal 3
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 66
STMIK TRIGUNA DHARMA
data buku. Gambar sampul buku belum dibahas pada chapter ini, khusus pada Chapter 13
akan dibahas tentang file upload pada PHP.
11.3 Read Data
Pembacaan data (read) dari database dapat dilakukan menggunakan PHP untuk
menampilkan data pada halaman web browser. Hal ini memungkinkan untuk membuat
sebuah website yang dinamis tanpa harus mengubah struktur kode dari website tersebut
secara manual. Oleh karena itu buatlah file baru di dalam folder “proses” dengan nama
“read.php” lalu ketikkan kode program berikut ini:
Program 11.3 – Read Data File: read.php
<?php
// panggil file dbconfig
require_once('dbconfig.php');
// query MySQL baca data
$query = "SELECT * FROM buku";
// eksekusi query
$hasil = mysqli_query($koneksi, $query);
?>
Jika tidak terjadi kesalahan, maka saat ini variabel $hasil telah menampung
informasi yang ada pada tabel buku dari database. Selanjutnya akan dilakukan perulangan
untuk menampilkan tiap baris data dari tabel buku ke dalam format tabel di halaman web
browser. Temukan baris program berikut ini pada file “dashboard.php”.
<tr>
<th scope="row">1</th>
<td>NULL</td>
<td>NULL</td>
<td>NULL</td>
<td>NULL</td>
<td>NULL</td>
<td>
<a href="ubah.php" class="btn btn-success">Ubah</a>
<a href="proses/delete.php" class="btn btn-danger float-right">Hapus</a>
</td>
</tr>
Ubah baris kode tersebut menjadi seperti pada kode program berikut ini:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 67
STMIK TRIGUNA DHARMA
Program 11.4 – Tampilkan Data File: dashboard.php
<?php
// pemanggilan file read
require_once('proses/read.php');
// cek jika ada data buku tersimpan
if (mysqli_num_rows($hasil) > 0) :
$no = 1;
while ($buku = mysqli_fetch_assoc($hasil)) :
// mulai tampilkan data
?>
<tr>
<th scope="row"><?= $no ?></th>
<td>NULL</td>
<td><?= $buku['judul'] ?></td>
<td><?= $buku['pengarang'] ?></td>
<td><?= $buku['penerbit'] ?></td>
<td><?= $buku['tahun'] ?></td>
<td>
<a href="ubah.php?id=<?= $buku['id'] ?>" class="btn btn-success">Ubah</a>
<a href="proses/delete.php?id=<?= $buku['id'] ?>" class="btn btn-danger float-
right">Hapus</a>
</td>
</tr>
<?php
// increment no
$no++;
endwhile;
// jika tidak ada data buku tersimpan
else :
?>
<tr>
<td colspan="7" class="text-center">Tidak ada data buku tersimpan.</td>
</tr>
<?php
endif;
?>
Ketikkan alamat http://localhost/katalogbuku/dashboard.php untuk menampilkan
data buku yang tersimpan pada database.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 68
STMIK TRIGUNA DHARMA
Gambar 11.1 Halaman Dashboard
11.4 Update Data
Ketika salah satu tombol “ubah” pada halaman “dashboard.php” ditekan, maka
halaman akan beralih menuju “ubah.php” dimana parameter id ditambahkan pada URL
halaman tersebut. Parameter tersebut ditambahkan sebagai acuan pengubahan data buku
yang akan dilakukan. Sebelum data buku diubah, dilakukan pencarian terlebih dahulu
terhadap data buku pada database berdasarkan parameter id pada URL. Data hasil
pencarian akan ditampilkan ke halaman “ubah.php”. Temukan baris kode berikut pada file
“ubah.php”.
<form action="proses/update.php" method="post">
Tambahkan baris kode PHP berikut ini tepat dibawah baris kode tersebut!
Program 11.5 – Cari Data Buku File: ubah.php
<?php
// pemanggilan file dbconfig
require_once('proses/dbconfig.php');
// ambil id dari parameter URL
$idbuku = $_GET['id'];
// query MySQL cari berdasarkan id
$query = "SELECT * FROM buku WHERE `id` = '$idbuku'";
// tampung hasil pencarian dalam variabel
$buku = mysqli_fetch_assoc(
// eksekusi query
mysqli_query($koneksi, $query)
);
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 69
STMIK TRIGUNA DHARMA
// jika buku tidak ditemukan
if ($buku == 0) :
echo ('Buku tidak ditemukan!');
// hentikan program
exit();
endif;
?>
Selanjutnya tambahkan satu buah input yang tersembunyi (hidden) untuk
menampung id buku. Serta tambahkan attribut value pada setiap input yang ada (kecuali
submit) untuk menampilkan data buku pada form.
Program 11.6 – Tampilkan Data Buku File: ubah.php
<input type="hidden" name="id" value="<?= $buku['id'] ?>">
<div class="form-group">
<input type="text" class="form-control" id="judulbuku" name="judulbuku"
placeholder="Judul Buku" value="<?= $buku['judul'] ?>">
</div>
<div class="form-group">
<input type="text" class="form-control" id="pengarang" name="pengarang"
placeholder="Nama Pengarang" value="<?= $buku['pengarang'] ?>">
</div>
<div class="form-group">
<textarea class="form-control" id="ringkasan" name="ringkasan" rows="4"
placeholder="Ringkasan Buku"><?= $buku['ringkasan'] ?></textarea>
</div>
<div class="form-group">
<input type="text" class="form-control" id="tahunterbit" name="tahunterbit"
placeholder="Tahun Terbit" value="<?= $buku['tahun'] ?>">
</div>
<div class="form-group">
<input type="text" class="form-control" id="penerbit" name="penerbit"
placeholder="Penerbit Buku" value="<?= $buku['penerbit'] ?>">
</div>
Jika tidak terdapat kesalahan maka halaman “ubah.php” akan menampilkan data
buku yang dipilih untuk diubah seperti pada gambar berikut:
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 70
STMIK TRIGUNA DHARMA
Gambar 11.2 Halaman Ubah Data
Selanjutnya buat file handler baru di dalam folder “proses” dengan nama
“update.php” untuk menangani perubahan data.
Program 11.7 – Update Data File: update.php
<?php
// cek jika tombol submit pada form ditekan
if (isset($_POST['formubah'])) {
require_once('dbconfig.php');
$idbuku = mysqli_real_escape_string($koneksi, $_POST['id']);
$judul = mysqli_real_escape_string($koneksi, $_POST['judulbuku']);
$pengarang = mysqli_real_escape_string($koneksi, $_POST['pengarang']);
$ringkasan = mysqli_real_escape_string($koneksi, $_POST['ringkasan']);
$tahun = mysqli_real_escape_string($koneksi, $_POST['tahunterbit']);
$penerbit = mysqli_real_escape_string($koneksi, $_POST['penerbit']);
// ------------------------------------------
// file upload akan dibahas pada chapter lain
// ------------------------------------------
$query = "UPDATE buku SET
`judul` = '$judul',
`pengarang` = '$pengarang',
`ringkasan` = '$ringkasan',
`tahun` = '$tahun',
`penerbit` = '$penerbit'
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 71
STMIK TRIGUNA DHARMA
WHERE `id` = '$idbuku'";
// eksekusi query
$hasil = mysqli_query($koneksi, $query);
// jika berhasil ubah data
if ($hasil) {
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
// jika gagal
else {
// tampilkan pesan error
echo "Error: " . $sql . "<br>" . mysqli_error($koneksi);
echo "<br><br> <a href='../ubah.php'>Kembali</a>";
}
mysqli_close($koneksi);
}
// jika halaman diakses melalui url
else {
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
?>
11.5 Delete Data
Dalam proses menghapus data menggunakan query MySQL pada PHP
membutuhkan referensi primary key data tersebut (dalam hal ini field `id` pada tabel buku).
Oleh karena itu pada tombol hapus halaman “dashboard.php” telah disisipkan parameter
id yang akan diproses oleh file handler “delete.php”. Untuk itu buatlah file baru pada folder
“proses” dengan nama “delete.php” lalu ketikkan kode PHP berikut ini.
Program 11.8 – Delete Data File: delete.php
<?php
// pemanggilan file dbconfig
require_once('dbconfig.php');
// terima parameter id dari URL
$idbuku = $_GET['id'];
// cari data buku berdasarkan id
$query = "SELECT * FROM buku WHERE `id` = '$idbuku'";
// simpan hasil pencarian dalam variabel
$hasil = mysqli_fetch_assoc(
// eksekusi query
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 72
STMIK TRIGUNA DHARMA
mysqli_query($koneksi, $query)
);
// jika tidak ada data buku
if ($hasil == 0) {
// tampilkan pesan error
echo "Error: Data buku tidak ditemukan.";
echo "<br><br> <a href='../dashboard.php'>Kembali</a>";
exit();
}
// jika ditemukan data buku
else {
// query MySQL hapus data
$hapus = "DELETE FROM buku WHERE `id` = '$idbuku'";
// eksekusi query
mysqli_query($koneksi, $hapus);
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
mysqli_close($koneksi);
?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 73
STMIK TRIGUNA DHARMA
CHAPTER 12
PHP MYSQL 2
12.1 Mendaftarkan User
Buatlah file baru di dalam folder “proses” dengan nama file “userregister.php”, lalu
ketikkan kode program berikut ini:
Program 12.1 – Proses Registrasi File: userregister.php
<?php
// cek apakah tombol register ditekan
if (isset($_POST['formregister'])) {
require_once('dbconfig.php');
// terima data dari form register
$username = mysqli_real_escape_string($koneksi, $_POST['username']);
$password = mysqli_real_escape_string($koneksi, $_POST['password']);
$confpass = mysqli_real_escape_string($koneksi, $_POST['conf_password']);
$namauser = mysqli_real_escape_string($koneksi, $_POST['namalengkap']);
// cek password konfirmasi
if ($password == $confpass) {
// enkripsi password
$pass_encrypt = md5($password);
$simpan = "INSERT INTO user (`username`, `password`, `nama`)
VALUES ('$username', '$pass_encrypt', '$namauser')";
// jika sukses register
if (mysqli_query($koneksi, $simpan)) {
// arahkan ke halaman login
header('location: ../login.php');
exit();
}
// jika gagal register
else {
echo "Error: " . $sql . "<br>" . mysqli_error($koneksi);
echo "<br><br> <a href='../register.php'>Kembali</a>";
}
}
// jika password konfirmasi tidak sama
else {
// kembali ke halaman register
header('location: ../register.php?err=1');
exit();
}
mysqli_close($koneksi);
}
// jika proses diakses dari url
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 74
STMIK TRIGUNA DHARMA
else {
header('location: ../register.php');
exit();
}
?>
Pada proyek ini registrasi user dibatasi hanya bisa dilakukan satu kali. Hal ini untuk
mencegah sembarang user melakukan registrasi akun pada website dan melakukan
perubahan data buku yang ada. Jika sudah ada user yang terdaftar, maka halaman
register.php akan dialihkan ke halaman login.php.
Untuk itu buatlah file baru di dalam folder “proses” dengan nama “cekuser.php” lalu
tambahkan kode berikut ini untuk memeriksa ada atau tidaknya user yang telah terdaftar
di database.
Program 12.2 – Memeriksa User Terdaftar File: cekuser.php
<?php
// pemanggilan file dbconfig
require_once('dbconfig.php');
// cari data dari tabel user
$query = "SELECT * FROM user";
// simpan hasil pencarian
$hasil = mysqli_fetch_assoc(
// eksekusi query
mysqli_query($koneksi, $query)
);
// jika ada data user tersimpan
if ($hasil) {
// alihkan ke halaman login
header('location: login.php?err=3');
exit();
}
mysqli_close($koneksi);
?>
Tambahkan baris kode berikut tepat di bawah <div class="container"> pada file
“register.php” untuk memanggil file cekuser.php dan menampilkan pesan error yang terjadi
saat registrasi dilakukan.
Program 12.3 – Limit Registrasi dan Pesan Error File: cekuser.php
<?php
// pemanggilan file cekuser
require_once('proses/cekuser.php');
// cek kode error dari URL
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 75
STMIK TRIGUNA DHARMA
$kode = $_GET['err'];
// jika ada kode error
if ($kode) :
// jika kode error = 1
if ($kode == 1) :
$pesan = "Password konfirmasi tidak sama.";
endif;
// tampilkan pesan gagal registrasi
?>
<div class="row justify-content-lg-center mt-5">
<div class="col-lg-6 alert alert-danger alert-dismissible fade show" role="alert">
<strong>Registrasi Gagal!</strong> <?= $pesan ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
</div>
<?php
endif;
?>
Daftarkan satu akun user dengan username dan password bebas untuk melanjutkan
ke tahapan login user.
12.2 Login User
Setelah melakukan pendaftaran user, maka selanjutnya dilakukan proses login
sebagai validasi user yang dapat merubah data buku pada website katalogbuku. Untuk itu
buatlah file baru di dalam folder “proses” dengan nama “userlogin.php” untuk menangani
proses login user.
Program 12.4 – Login User File: userlogin.php
<?php
// cek apakah tombol login ditekan
if (isset($_POST['formlogin'])) {
// pemanggilan file dbconfig
require_once('dbconfig.php');
// terima input dari form login
$username = $_POST['username'];
$password = $_POST['password'];
// cari data user berdasarkan username
$cariuser = "SELECT * FROM user WHERE username = '$username'";
// eksekusi query
$hasil = mysqli_query($koneksi, $cariuser);
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 76
STMIK TRIGUNA DHARMA
// jika username ditemukan
if (mysqli_num_rows($hasil) > 0) {
$data = mysqli_fetch_array($hasil);
// enkripsi input password
$enc_pass = md5($password);
// cek apakah password benar
if ($enc_pass == $data['password']) {
// masuk ke halaman dashboard
header('location: ../dashboard.php');
}
// jika password salah
else {
// kembali ke halaman login
header('location: ../login.php?err=2');
exit();
}
}
// jika username tidak ditemukan
else {
// kembali ke halaman login
header('location: ../login.php?err=1');
exit();
}
mysqli_close($koneksi);
}
// jika proses login diakses melalui url
else {
header('location: ../login.php');
exit();
}
?>
Tambahkan baris kode berikut ini tepat di bawah <div class="container"> pada file
“login.php” untuk menampilkan pesan error saat terjadi kesalahan login.
Program 12.5 – Menampilkan Pesan Error Login File: login.php
<?php
// cek kode error dari URL
$kode = $_GET['err'];
// jika ada kode error
if ($kode) :
// cek kode error
if ($kode == 1) :
$pesan = "User tidak ditemukan.";
elseif ($kode == 2) :
$pesan = "Password anda salah.";
elseif ($kode == 3) :
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 77
STMIK TRIGUNA DHARMA
$pesan = "Sudah ada user terdaftar, silahkan login!";
else :
$pesan = "Terjadi kesalahan, ulangi dalam beberapa saat.";
endif;
// tampilkan pesan gagal registrasi
?>
<div class="row justify-content-lg-center mt-5">
<div class="col-lg-6 alert alert-danger alert-dismissible fade show" role="alert">
<strong>Gagal!</strong> <?= $pesan ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
</div>
<?php
endif;
?>
Pesan error tidak akan tampil jika tidak terdapat parameter err pada URL. Jika terjadi
kesalahan login seperti password yang salah, maka akan tampil pesan error seperti pada
gambar berikut ini:
Gambar 12.1 Tampilan Pesan Error Login
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 78
STMIK TRIGUNA DHARMA
CHAPTER 13
FILE UPLOAD
13.1 Multipart Form
Secara umum value multipart yang terdapat di dalam atribut enctyle pada form
digunakan agar user dapat mengunggah file melalui form di halaman website. Jika sebuah
form ditujukan untuk mendukung pengunggahan file, maka harus ditambahkan atribut
enctype="multipart/form-data".
Catatan: Buat folder baru dengan nama “img” di dalam folder ‘katalogbuku’.
13.2 Upload Foto Sampul
Temukan baris kode berikut ini pada file “tambah.php”.
<form action="proses/create.php" method="post">
Ubah baris kode tersebut seperti pada program 11.1 berikut ini sehingga form
tersebut dapat digunakan untuk mengunggah foto sampul buku.
Program 13.1 – Multipart Form File: tambah.php
<form action="proses/create.php" method="post" enctype="multipart/form-data">
Selanjutnya modifikasi file “create.php” yang terdapat di dalam folder “proses”
menjadi seperti berikut ini:
Program 13.2 – Upload Foto Sampul File: create.php
<?php
// cek jika tombol pada form di tekan
if (isset($_POST['formtambah'])) {
// panggil file dbconfig
require_once('dbconfig.php');
// terima input dari form
$judul = mysqli_real_escape_string($koneksi, $_POST['judulbuku']);
$pengarang = mysqli_real_escape_string($koneksi, $_POST['pengarang']);
$ringkasan = mysqli_real_escape_string($koneksi, $_POST['ringkasan']);
$tahun = mysqli_real_escape_string($koneksi, $_POST['tahunterbit']);
$penerbit = mysqli_real_escape_string($koneksi, $_POST['penerbit']);
$created = time();
// ------------
// file upload
// ------------
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 79
STMIK TRIGUNA DHARMA
// baca data file
$tmp_lokasi = $_FILES['fotosampul']['tmp_name'];
$tmp_namafile = $_FILES['fotosampul']['name'];
// ambil ekstensi file
$ekstensi = strtolower(
end(
explode('.', $tmp_namafile)
)
);
// ubah nama file
$fotosampul = $created . '.' . $ekstensi;
// tentukan folder penyimpanan file
$folder = '../img/' . $fotosampul;
// query MySQL simpan data
$query = "INSERT INTO buku (
`judul`, `pengarang`, `ringkasan`, `tahun`, `penerbit`, `sampul`, `created_at`
) VALUES (
'$judul', '$pengarang', '$ringkasan', '$tahun', '$penerbit', '$fotosampul', '$crea
ted'
)";
// eksekusi query
$hasil = mysqli_query($koneksi, $query);
// jika query sukses
if ($hasil) {
// upload file foto sampul
move_uploaded_file($tmp_lokasi, $folder);
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
// jika gagal
else {
// tampilkan pesan error
echo "Error: " . $sql . "<br>" . mysqli_error($koneksi);
echo "<br><br> <a href='../tambah.php'>Kembali</a>";
}
// tutup koneksi
mysqli_close($koneksi);
}
// jika halaman diakses melalui url
else {
// alihkan ke halaman tambah
header('location: ../tambah.php');
exit();
}
?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 80
STMIK TRIGUNA DHARMA
Penyimpanan file ke dalam direktori server dilakukan menggunakan perintah
move_uploaded_file() yang diisi dua parameter berupa alamat file di komputer dan alamat
tujuan file akan disimpan pada server.
Catatan: Untuk menampilkan nama file pada form input saat dipilih dapat
menggunakan javascript/jquery dengan event onChange(). Lampiran 8.
13.3 Tampilkan Foto Sampul
Temukan baris kode berikut ini pada file “dashboard.php”:
<td>NULL</td>
Ubah baris kode tersebut menjadi seperti kode program 13.3 berikut ini:
Program 13.3 – Tampilkan Foto Sampul File: dashboard.php
<td>
<img src="<?= 'img/' . $buku['sampul'] ?>" style="width:100px">
</td>
13.4 Ubah Foto Sampul
Temukan baris kode berikut ini pada file “ubah.php”.
<form action="proses/update.php" method="post">
Ubah baris kode di atas menjadi seperti pada program 13.4 berikut ini, sehingga
form tersebut dapat digunakan untuk mengunggah foto sampul buku.
Program 13.4 – Multipart Form File: ubah.php
<form action="proses/create.php" method="post" enctype="multipart/form-data">
Selanjutnya modifikasi file “update.php” yang terdapat di dalam folder “proses”
menjadi seperti berikut ini:
Program 13.5 – Ubah Foto Sampul File: update.php
<?php
// cek jika tombol submit pada form ditekan
if (isset($_POST['formubah'])) {
require_once('dbconfig.php');
$idbuku = mysqli_real_escape_string($koneksi, $_POST['id']);
$judul = mysqli_real_escape_string($koneksi, $_POST['judulbuku']);
$pengarang = mysqli_real_escape_string($koneksi, $_POST['pengarang']);
$ringkasan = mysqli_real_escape_string($koneksi, $_POST['ringkasan']);
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 81
STMIK TRIGUNA DHARMA
$tahun = mysqli_real_escape_string($koneksi, $_POST['tahunterbit']);
$penerbit = mysqli_real_escape_string($koneksi, $_POST['penerbit']);
$created = time();
// ------------
// file upload
// ------------
// baca data file
$tmp_lokasi = $_FILES['fotosampul']['tmp_name'];
$tmp_namafile = $_FILES['fotosampul']['name'];
// ambil ekstensi file
$ekstensi = strtolower(
end(
explode('.', $tmp_namafile)
)
);
// cek apakah ada foto sampul yang pernah diupload
$query = "SELECT sampul, created_at FROM buku WHERE `id` = '$idbuku'";
$hasil = mysqli_fetch_assoc(mysqli_query($koneksi, $query));
// alamat file foto lama
$oldfile = '../img/' . $hasil['sampul'];
// periksa jika input file kosong
if ($_FILES['fotosampul']['size'] == 0) {
// jika field sampul kosong
if ($hasil['sampul'] == null) {
$fotosampul = null;
}
// jika field sampul berisi
else {
$fotosampul = $hasil['sampul'];
}
}
// jika input file berisi
else {
// jika field sampul kosong
if ($hasil['sampul'] == null) {
$fotosampul = $created . '.' . $ekstensi;
}
// jika field sampul berisi
else {
$fotosampul = $hasil['created_at'] . '.' . $ekstensi;
// hapus foto lama
unlink($oldfile);
}
}
// tentukan folder penyimpanan file
$folder = '../img/' . $fotosampul;
// ---------------------------------
// query MySQL
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 82
STMIK TRIGUNA DHARMA
$query = "UPDATE buku SET
`judul` = '$judul',
`pengarang` = '$pengarang',
`ringkasan` = '$ringkasan',
`tahun` = '$tahun',
`penerbit` = '$penerbit',
`sampul` = '$fotosampul'
WHERE `id` = '$idbuku'";
// eksekusi query
$hasil = mysqli_query($koneksi, $query);
// jika berhasil ubah data
if ($hasil) {
// simpan foto baru
move_uploaded_file($tmp_lokasi, $folder);
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
// jika gagal
else {
// tampilkan pesan error
echo "Error: " . $sql . "<br>" . mysqli_error($koneksi);
echo "<br><br> <a href='../ubah.php'>Kembali</a>";
}
mysqli_close($koneksi);
}
// jika halaman diakses melalui url
else {
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
?>
Untuk menghapus file pada direktori digunakan perintah unlink() dengan
memberikan parameter alamat file yang akan dihapus.
13.5 Hapus Foto Sampul
Menghapus foto yang telah diunggah dilakukan bersamaan dengan menghapus
data buku yang ada. Oleh karena itu proses penghapusan file akan dilakukan pada file
handler “delete.php” yang terdapat di dalam folder proses.
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 83
STMIK TRIGUNA DHARMA
Program 13.6 – Hapus Foto Sampul File: delete.php
<?php
// pemanggilan file dbconfig
require_once('dbconfig.php');
// terima parameter id dari URL
$idbuku = $_GET['id'];
// cari data buku berdasarkan id
$query = "SELECT * FROM buku WHERE `id` = '$idbuku'";
// simpan hasil pencarian dalam variabel
$hasil = mysqli_fetch_assoc(
// eksekusi query
mysqli_query($koneksi, $query)
);
// jika tidak ada data buku
if ($hasil == 0) {
// tampilkan pesan error
echo "Error: Data buku tidak ditemukan.";
echo "<br><br> <a href='../dashboard.php'>Kembali</a>";
exit();
}
// jika ditemukan data buku
else {
// tentukan alamat file yang akan dihapus
$fotosampul = '../img/' . $hasil['sampul'];
// query MySQL hapus data
$hapus = "DELETE FROM buku WHERE `id` = '$idbuku'";
// eksekusi query
mysqli_query($koneksi, $hapus);
// hapus file foto sampul
unlink($fotosampul);
// alihkan ke halaman dashboard
header('location: ../dashboard.php');
exit();
}
mysqli_close($koneksi);
?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 84
STMIK TRIGUNA DHARMA
CHAPTER 14
SESSION
14.1 Pengertian Session
Session merupakan suatu mekanisme PHP untuk melacak variabel yang berasosiasi
dengan seorang user tertentu dalam suatu web session. Web session dalah waktu yang
user gunakan untuk menjelajahi halaman-halaman website menggunakan satu web
browser yang sama. Jika browser tersebut ditutup, maka variabel session akan hilang.
Session dapat dimanfaatkan untuk memeriksa apakah user yang sedang mengakses suatu
halaman website sedang dalam kondisi login atau tidak. Dengan demikian website dapat
membatasi hak akses suatu halaman terhadap user. Session pada PHP dapat diakses
secara global dalam bentuk array asosiatif $_SESSION yang diinisialisasi dengan perintah
session_start();.
14.2 Mulai Session
Untuk membuat session dalam sebuah website, langkah awal adalah dengan
membuat variabel di dalam array session. Variabel tersebut diisi saat user melakukan login
pada website sehingga halaman lain dapat mengakses isi dari variabel tersebut nantinya.
Modifikasi file “userlogin.php” di dalam folder “proses” untuk membuat session saat user
berhasil login.
Program 14.1 – Membuat Session File: userlogin.php
<?php
// mulai session
session_start();
// cek apakah tombol login ditekan
if (isset($_POST['formlogin'])) {
// pemanggilan file dbconfig
require_once('dbconfig.php');
// terima input dari form login
$username = $_POST['username'];
$password = $_POST['password'];
// cari data user berdasarkan username
$cariuser = "SELECT * FROM user WHERE username = '$username'";
// eksekusi query
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 85
STMIK TRIGUNA DHARMA
$hasil = mysqli_query($koneksi, $cariuser);
// jika username ditemukan
if (mysqli_num_rows($hasil) > 0) {
$data = mysqli_fetch_array($hasil);
// enkripsi input password
$enc_pass = md5($password);
// cek apakah password benar
if ($enc_pass == $data['password']) {
// isi session dengan username
$_SESSION['user'] = $data['username'];
// masuk ke halaman dashboard
header('location: ../dashboard.php');
}
// jika password salah
else {
// kembali ke halaman login
header('location: ../login.php?err=2');
exit();
}
}
// jika username tidak ditemukan
else {
// kembali ke halaman login
header('location: ../login.php?err=1');
exit();
}
mysqli_close($koneksi);
}
// jika proses login diakses melalui url
else {
header('location: ../login.php');
exit();
}
?>
Setelah user berhasil melakukan login, maka array $_SESSION diisi dengan key ‘user’
dan value ‘username’ dari user yang login. Selanjutnya halaman lain hanya butuh
memeriksa apakah terdapat variabel dengan nama ‘user’ di dalam array session.
Pada project ini file “head.php” dipakai di semua halaman, oleh karena itu inisialisasi
session dapat dilakukan satu kali pada file tersebut. Tambahkan baris kode berikut pada
bagian paling atas (baris pertama) file “head.php”.
Program 14.2 – Inisialisasi Session File: head.php
<?php session_start() ?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 86
STMIK TRIGUNA DHARMA
Penghapusan session dilakukan saat user melakukan logout. Buatlah file baru
dengan nama “logout.php” di dalam folder “proses” lalu ketikkan kode PHP berikut ini:
Program 14.3 – Menghapus Session File: logout.php
<?php
// mulai session
session_start();
// hapus session
session_destroy();
// alihkan ke halaman index
header('location: ../index.php');
exit();
?>
14.3 Hak Akses
Untuk mencegah user yang tidak login dapat mengakses halaman dashboard,
tambah, dan update dibutuhkan hak akses terhadap halaman-halaman tersebut. Hak akses
dapat dilakukan dengan memanfaatkan session yang sudah dibuat. Buatlah file baru
dengan nama “otentikasi.php” di dalam folder “proses”.
Program 14.4 – Otentikasi Halaman File: otentikasi.php
<?php
// jika session user kosong
if (!isset($_SESSION['user'])) {
// alihkan ke halaman index
header('location: index.php');
exit();
}
?>
Setelah file otentikasi dibuat, selanjutnya hanya perlu memanggil file tersebut di
setiap halaman yang hanya boleh diakses oleh user yang sedang login.
Catatan: dikarenakan session_start() berada pada file head.php maka pemanggilan
file otentikasi.php harus dilakukan setelah file head.php dipanggil dalam suatu
halaman.
Tambahkan baris kode berikut ke halaman “dashboard.php”, “tambah.php”, dan
“ubah.php” dibawah baris kode <?php include('include/head.php') ?>.
Program 14.5 – Pemanggilan File Otentikasi File: dashboard.php, ubah.php, tambah.php
<?php require_once('proses/otentikasi.php'); ?>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 87
STMIK TRIGUNA DHARMA
Dengan meletakkan file otentikasi.php pada halaman-halaman tersebut maka user
yang tidak melakukan login tidak akan dapat mengaksesnya. Halaman index.php tidak
diberikan otentikasi karena halaman tersebut memang ditujukan untuk publik tanpa perlu
melakukan login.
14.4 Pengaturan Navigasi
Menu navigasi yang ada seperti “dashboard”, “register”, “login”, dan “logout” diatur
sesuai kondisi user saat ini. Menu dashboard dan logout hanya tampil saat user telah
melakukan login. Sedangkan user yang belum login akan ditampilkan menu register dan
login. Modifikasi file “navbar.php” sesuai dengan kode program berikut ini:
Program 14.6 – Pengaturan Navigasi File: navbar.php
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="index.php">Katalog Buku</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-
target="#navMenu" aria-controls="navMenu"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navMenu">
<ul class="navbar-nav mr-auto">
<?php if (isset($_SESSION['user'])) : ?>
<li class="nav-item">
<a class="nav-link" href="dashboard.php">Dashboard</a>
</li>
<?php endif; ?>
</ul>
<div class="form-inline my-2 my-lg-0">
<?php if (!isset($_SESSION['user'])) : ?>
<a href="register.php" class="btn btn-light mx-1">Register</a>
<a href="login.php" class="btn btn-dark mx-1">Login</a>
<?php else : ?>
<a href="proses/logout.php" class="btn btn-dark mx-1">Logout</a>
<?php endif; ?>
</div>
</div>
</nav>
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019
PEMROGRAMAN WEB I 88
STMIK TRIGUNA DHARMA
14.5 Evaluasi dan Latihan
Modifikasi file “index.php” sehingga dapat menampilkan semua data buku yang ada
menggunakan perulangan. Serta dapat dilakukan pencarian buku yang ada berdasarkan
judul, pengarang, dan penerbit.
Jawaban: Lampiran Latihan 9
STMIK Triguna Dharma Langkah Pasti Menuju Sukses 2019