Menciptakan Situs Web Dinamis
3.1 Menyertakan
Beberapa File
Sampai sejauh
ini, setiap skript pada buku ini hanya terdiri-dari satu file yang memuat kode
HTML dan kode PHP. Tetapi, ketika Anda mengembangkan situs Web yang lebih
kompleks, Anda akan melihat bahwa metodologi ini memiliki banyak keterbatasan.
PHP dapat dipakai untuk mengakses atau menggunakan file eksternal, suatu
kapabilitas yang dapat digunakan untuk membagi skript Anda menjadi beberapa
bagian.
PHP memiliki
empat fungsi yang dapat dimanfaatkan untuk mengakses file eksternal: include(),
include_once(), require(), dan require_once(). Untuk menggunakannya, skript PHP
Anda memerlukan sebuah baris seperti:
include_once(‘namafile.php’);
require(‘/path/ke/namafile.html’);
Hasil akhir dari
penggunaan fungsi ini adalah pengaksesan seluruh isi file yang dicantumkan dan
menempatkannya pada skript induk. Pertimbangan penting saat penyertaan file
eksternal adalah bahwa PHP memperlakukan kode yang disertakan sebagai HTML
(yaitu, mengirimkannya langsung ke browser) kecuali jika file yang disertakan memuat
kode yang diapit di dalam tag PHP.
Dalam aspek
fungsionalitas, adalah tidak penting ekstensi yang dikenakan pada file
eksternal, baik ekstensi .php atau .html. Selain itu, Anda dapat memberikan
path absolut atau path relatif pada file yang akan disertakan
Fungsi include()
dan require() berperilaku sama persis ketika berhasil digunakan tetapi
berperilaku berbeda ketika gagal digunakan. Jika fungsi include() gagal bekerja
(tidak dapat menyertakan file dengan alasan tertentu), pesan peringatan akan
ditampilkan pada browser Web, tetapi skript akan tetap dijalankan. Jika fungsi require() gagal
bekerja, pesan error akan ditampilkan dan skript berhenti dijalankan.
Kedua fungsi
tersebut juga memiliki versi *_once(), yang menjamin bahwa file akan disertakan
sekali saja tanpa memandang berapa kali sebuah skript mencoba menyertakannya.
require_once(‘namafile.php’);
include_once(‘namafile.php’);
Pada contoh
selanjutnya, file yang disertakan akan memisahkan pemformatan HTML utama dari
kode PHP. Kemudian, contoh-contoh lain pada bab ini akan memiliki tampilan yang
sama, tanpa perlu menulis-ulang kode HTML. Teknik ini menciptakan sebuah sistem
template, sebuah cara mudah untuk membuat aplikasi-aplikasi besar dapat
terkelola dengan baik.
Menyertakan beberapa file eksternal
1. Desainlah sebuah halaman HTML pada editor teks Anda (Skript 3.1). Untuk
menciptakan sebuah template bagi situs Web, desainlah tata-letaknya seperti
sebuah halaman HTML standar, yang bebas dari kode PHP.
SKRIPT 3.1
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>Judul Halaman</title>
<link
rel="stylesheet" href="style.css"
type="text/css" media="screen"/>
<meta
http-equiv="content-type" content="text/html;
charset=iso-8859-1"/>
</head>
<body>
<div id="kepala">
<h1>Situs Web Anda</h1>
<h2>Slogan hidup
Anda...</h2>
</div>
<div id="navigasi">
<ul>
<li><a
href="indeks.php">Halaman Beranda</a></li>
<li><a
href="kalkulator.php">Kalkulator</a></li>
<li><a
href="formtanggal.php">Form Tanggal</a></li>
<li><a
href="#">Link Empat</a></li>
<li><a
href="#">Link Lima</a></li>
</ul>
</div>
<div id="isi"><!--
Awal dari isi halaman spesifik. -->
<h1>Header Konten</h1>
<p>Ini adalah dimana isi halaman spesifik
ditempatkan.
Bagian ini, dan header terkait, akan berubah
dari
satu
halaman ke halaman lain.</p>
<p>Volutpat at varius sed sollicitudin et, arcu. Vivamus
viverra. Nullam turpis.
Vestibulum sed etiam. Lorem ipsum
sit amet dolore. Nulla facilisi. Sed tortor.
Aenean felis. Quisque eros. Cras
lobortis commodo metus. Vestibulum vel purus.
In eget odio in sapien adipiscing
blandit. Quisque augue tortor, facilisis sit
amet, aliquam, suscipit vitae, cursus
sed, arcu lorem ipsum dolor sit amet.</p>
<!-- Akhir dari isi halaman spesifik.
--></div>
<div id="kaki">
<p>Copyright
© <a href=”#”>RH.SIANIPAR</a> 2015 | Dirancang oleh
<a
href="http://www.rh_sianipar.com/">rh_sianipar.com</a> |
Disponsori oleh
<a
href="http://www.teknik_unram.ac.id/">Fakultas Teknik
UNRAM</a> | Valid
<a
href="http://jigsaw.w3.org/css-validator/">CSS</a>
&
<a
href="http://validator.w3.org/">XHTML</a></p>
</div>
</body>
</html>
|
2. Tandai dimana konten halaman spesifik ditempatkan. Hampir semua situs
Web memiliki beberapa elemen yang sama pada tiap halaman, seperti kepala,
navigasi, iklan, kaki, dan lainnya. Pada halaman HTML (Skript 3.1), apit bagian
tata-letak yang akan berubah dari halaman ke halaman di dalam komentar-komentar
HTML untuk menandai statusnya.
3. Salin semua dari baris pertama sampai baris tepat sebelum konten halaman
spesifik dan tempatkan pada sebuah dokumen baru (Skript 3.2).
SKRIPT 3.2
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title><?php echo
$judul_hal;?></title>
<link rel="stylesheet"
href="style.css" type="text/css"
media="screen"/>
<meta
http-equiv="content-type" content="text/html;
charset=iso-8859-1"/>
</head>
<body>
<div
id="kepala">
<h1>Situs Web Anda</h1>
<h2>Slogan hidup Anda...</h2>
</div>
<div
id="navigasi">
<ul>
<li><a href="indeks.php">Halaman
Beranda</a></li>
<li><a
href="kalkulator.php">Kalkulator</a></li>
<li><a href="formtanggal.php">Form
Tanggal</a></li>
<li><a href="#">Link Empat</a></li>
<li><a href="#">Link Lima</a></li>
</ul>
</div>
<div
id="isi"><!-- Awal dari isi halaman spesifik. -->
<!-- Skript
3.2 - kepala.html -->
</body>
</html>
|
4. Ubah baris judul halaman untuk membaca
<title><?php echo $judul_hal; ?> </title>
Halaman judul (yang ditampilkan di
sis atas browser Web) sebaiknya dapat diubah halaman demi halaman. Agar hal itu
dimungkinkan, nilai ini akan didasarkan pada sebuah variabel PHP, yang akan
ditampilkan. Anda akan melihat bagaimana hal ini dilakukan.
5. Simpan file sebagai kepala.html. Seperti disebutkan sebelumnya, file
yang disertakan dapat menggunakan sembarang ekstensi. Jadi, file ini dinamakan
dengan kepala.html, yang menandakan template untuk kepala file.
6. Salin segala sesuatu dari template asli dari akhir dari konten halaman
spesifik sampai akhir halaman dan tempatkan pada sebuah file baru (Skript 3.3).
SKRIPT 3.3
|
|
1
2
3
4
5
6
7
8
9
10
|
<!-- Skript 3.3 - kaki.html -->
<!-- Akhir dari konten halaman spesifik.
--></div>
<div
id="kaki">
<p>Copyright © <a href=”#”>RH.SIANIPAR</a>
2015 | Dirancang oleh
<a
href="http://www.rh_sianipar.com/">rh_sianipar.com</a> |
Disponsori oleh
<a
href="http://www.teknik_unram.ac.id/">Fakultas Teknik
UNRAM</a> | Valid
<a
href="http://jigsaw.w3.org/css-validator/">CSS</a>
&
<a
href="http://validator.w3.org/">XHTML</a></p>
</div>
</body>
</html>
|
7. Simpan sebagai kaki.html.
8. Awali sebuah dokumen PHP yang baru pada editor teks atau IDE Anda
(Skript 3.4) dengan
<?php # Skript 3.4 - indeks.php
Karena skript ini akan menggunakan
file-file eksternal yang disertakan, ia akan diawali dan diakhiri dengan tag
PHP.
9. Tetapkan variabel $judul_hal dan sertakan header HTML.
$judul_hal
= 'Selamat datang ke situs ini!';
include
('kepala.html');
Variabel $judul_hal akan menyimpan
nilai yang ditampilkan di sisi atas jendela browser. Variabel ini ditampilkan
pada kepala.html (lihat Skript 3.2). Dengan mendefinisikan variabel sebelum
penyertaan file kepala, file kepala dapat mengakses variabel tersebut. Ingat
bahwa baris include() akan menempatkan isi dari file tercantum pada halaman
induk.
10. Tutup tag PHP dan tambahkan konten halaman spesifik.
?>
<h1>Header
Konten</h1>
<p>Ini adalah dimana isi halaman
spesifik ditempatkan.
Bagian ini, dan header terkait, akan berubah
dari
satu halaman ke halaman lain.</p>
<p>Volutpat at varius sed sollicitudin
et, arcu. Vivamus viverra. Nullam turpis.
Vestibulum sed etiam. Lorem ipsum sit amet
dolore. Nulla facilisi. Sed tortor.
Aenean felis. Quisque eros. Cras lobortis
commodo metus. Vestibulum vel purus.
In eget odio in sapien adipiscing blandit.
Quisque augue tortor, facilisis sit
amet, aliquam, suscipit vitae, cursus sed,
arcu lorem ipsum dolor sit amet.</p>
11. Ciptakan bagian akhir dari PHP dan sertakan file kaki.
<?php
include
('kaki.html');
?>
12. Simpan file sebagai indeks.php, dan tempatkan pada direktori Web Anda.
13. Uji template ini dengan menempatkan halaman indeks.php pada browser Web
Anda (Gambar 3.1).
Gambar 3.1 Tata-letak
halaman diciptakan menggunakan beberapa file eksternal.
SKRIPT 3.4
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php # Skript 3.4 -
indeks.php
$judul_hal = 'Selamat
datang ke situs ini!';
include
('kepala.html');
?>
<h1>Header Konten</h1>
<p>Ini
adalah dimana isi halaman spesifik ditempatkan.
Bagian ini, dan
header terkait, akan berubah dari
satu halaman ke
halaman lain.</p>
<p>Volutpat
at varius sed sollicitudin et, arcu. Vivamus viverra. Nullam turpis.
Vestibulum sed
etiam. Lorem ipsum sit amet dolore. Nulla facilisi. Sed tortor.
Aenean felis.
Quisque eros. Cras lobortis commodo metus. Vestibulum vel purus.
In eget odio in
sapien adipiscing blandit. Quisque augue tortor, facilisis sit
amet, aliquam,
suscipit vitae, cursus sed, arcu lorem ipsum dolor sit amet.</p>
<?php
include ('kaki.html');
?>
|
14. Jika diinginkan, Anda bisa melihat kode HTML dari halaman (Gambar 3.2).
Gambar 3.2 Kode sumber
HTML yang dihasilkan dari halaman Web mereplikasi kode pada template asli
(lihat Skript 3.1).
3.2
Revisi: Menangani Form HTML
Pada Bab 2,
telah didiskusikan tentang bagaimana menangani form HTML. Contoh-contoh pada
bab itu menggunakan dua file terpisah: satu file yang menampilkan form dan file
lain yang menerima data form. Meskipun tidak ada yang salah dengan hal ini, ada
beberapa keuntungan bila menempatkan keseluruhan proses ke dalam satu skript.
Untuk
menciptakan sebuah halaman yang menampilkan dan sekaligus menangani form,
sebuah kondisional perlu dipakai untuk memeriksa aksi mana (menampilkan atau
menangani) yang akan diambil:
if (/* form telah disubmit */) {
// Tangani form.
} else {
// Tampilkan form.
}
Untuk menentukan
apakah form telah disubmit atau tidak, periksa apakah variabel $_POST telah
ditetapkan atau tidak. Sebagai contoh, untuk menciptakan sebuah masukan form
tersembunyi dengan nama diserahkan
dan sembarang nilai:
<input type=”hidden” name=”diserahkan” value=”1” />
Maka pengujian
kondisi untuk pengiriman form dilakukan dengan
if (isset($_POST[‘diserahkan’])) {
// Tangani form.
} else {
// Tampilkan form.
}
Jika Anda
menginginkan sebuah halaman untuk menangani form dan kemudian menampilkannya
(misalnya, menambah sebuah rekaman ke dalam database), hapus kluasa else:
if (isset($_POST[‘diserahkan’])) {
// Tangani form.
}
// Tampilkan form.
Dengan kode
tersebut, sebuah skript akan menangani form jika form tersebut telah
dikirim/diserahkan dan menampilkan form setiap kali halaman dimuat.
Menangani form HTML
1. Ciptakan sebuah dokumen PHP yang baru pada editor teks atau IDE Anda
(Skript 3.5).
<?php #Skript 3.5 -
kalkulator.php
$judul_hal = 'Kalkulator
Penghitung Harga Widget';
include ('kepala.html');
Contoh ini, dan semua contoh
berikutnya pada buku ini, akan menggunakan template yang sama seperti
indeks.php (Skript 3.4). Sintaks awal dari tiap halaman akan sama, tetapi judul
halaman akan berbeda.
2. Tulis kondisional untuk menangani form.
if
(isset($_POST['diserahkan'])) {
Pengujian ini terkait dengan masukan
tersembunyi pada form.
3. Validasi form.
if (
is_numeric($_POST['kuantitas']) &&
is_numeric($_POST['harga']) &&
is_numeric($_POST['pajak']) ) {
Validasi di sini sangat sederhana:
hanya memeriksa apakah ketiga variabel yang dikirim semuanya bertipe numerik.
Anda dapat mengelaborasinya, misalnya dengan memeriksa apakah kuantitas merupakan
sebuah integer atau tidak dan memeriksa apakah semua nilai positif atau tidak.
Jika validasi melewati semua
pengujian, kalkulasi akan dilakukan; jika tidak, user akan diminta untuk
mencoba lagi.
4. Lakukan perhitungan.
// Menghitung hasil:
$total =
($_POST['kuantitas'] * $_POST['harga']);
$besar_pajak =
($_POST['pajak'] / 100); // Ubah 5% menjadi .05.
$total += ($total *
$besar_pajak); // Tambahkan ke total.
5. Tampilkan hasil.
// Menampilkan hasil:
echo '<h1>Biaya
total</h1>
<p>Biaya total
pembelian sejumlah ' .
$_POST['kuantitas'] . '
widget dengan harga masing-masing Rp.' .
number_format
($_POST['harga'], 2) . ', termasuk pajak ' .
$_POST['pajak'] . '%,
adalah Rp. ' . number_format ($total, 2) . '.</p>';
Semua nilai ditampilkan, dengan
memformat harga dan total dengan fungsi number_format(). Dengan menggunakan
operator penyambungan (tanda titik), nilai-nilai numerik dapat ditempelkan pada
pesan yang tertampil.
6. Sempurnakan kondisional dan tutup tag PHP.
} else { // Nilai-nilai yang dikirim tak-valid.
echo '<h1>Error!</h1>
<p class="error">Silahkan
masukkan kuantitas, harga, dan pajak yang valid.</p>';
}
}
?>
7. Tampilkan form HTML.
<h1>Kalkulator
Biaya Widget</h1>
<form action="kalkulator.php"
method="post">
<p>kuantitas: <input
type="text" name="kuantitas" size="5"
maxlength="5" /></p>
<p>harga: <input
type="text" name="harga" size="5"
maxlength="10" /></p>
<p>pajak (%): <input
type="text" name="pajak" size="5"
maxlength="5" /></p>
<p><input type="submit"
name="serahkan" value="Hitung!" /></p>
<input type="hidden"
name="diserahkan" value="1" />
</form>
8. Cantumkan file kaki.html.
<?php // Cantumkan
file kaki:
include ('kaki.html');
?>
Simpan file sebagai kalkulator.php,
tempatkan pada direktori Web Anda, dan uji dengan browser Anda (Gambar 3.3).
SKRIPT 3.5
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
28
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?php #Skript 3.5 - kalkulator.php
$judul_hal = 'Kalkulator Penghitung Harga Widget';
include ('kepala.html');
// Memeriksa submisi form:
if (isset($_POST['diserahkan'])) {
// Validasi form
minimal:
if (
is_numeric($_POST['kuantitas']) &&
is_numeric($_POST['harga']) &&
is_numeric($_POST['pajak']) ) {
// Menghitung
hasil:
$total =
($_POST['kuantitas'] * $_POST['harga']);
$besar_pajak =
($_POST['pajak'] / 100); // Ubah 5% menjadi .05.
$total +=
($total * $besar_pajak); // Tambahkan ke total.
// Menampilkan
hasil:
echo
'<h1>Biaya total</h1>
<p>Biaya
total pembelian sejumlah ' .
$_POST['kuantitas'] . ' widget dengan harga masing-masing Rp.' .
number_format
($_POST['harga'], 2) . ', termasuk pajak ' .
$_POST['pajak'] . '%, adalah Rp. ' . number_format ($total, 2) .
'.</p>';
} else { //
Nilai-nilai yang dikirim tak-valid.
echo
'<h1>Error!</h1>
<p
class="error">Silahkan masukkan kuantitas, harga, dan pajak yang
valid.</p>';
}
} // Akhir dari IF isset().
// Ciptakan form HTML:
?>
<h1>Kalkulator Biaya Widget</h1>
<form
action="kalkulator.php" method="post">
<p>kuantitas: <input type="text"
name="kuantitas" size="5" maxlength="5"
/></p>
<p>harga:
<input type="text" name="harga" size="5"
maxlength="10" /></p>
<p>pajak
(%): <input type="text" name="pajak"
size="5" maxlength="5" /></p>
<p><input type="submit" name="serahkan"
value="Hitung!" /></p>
<input
type="hidden" name="diserahkan" value="1" />
</form>
<?php // Cantumkan file kaki:
include ('kaki.html');
?>
|
Gambar 3.3 Halaman melakukan perhitungan, melaporkan hasil, dan kemudian
menampilkan-ulang form.
3.3
Membuat Sticky Form
Sticky form
merupakan form HTML standar yang mengingat bagaimana Anda mengisi form. Ini
merupakan fitur menarik bagi user, khususnya jika Anda perlu mengirim-ulang
sebuah form karena kesalahan pengisian form.
Untuk menetapkan
apa yang diisikan pada sebuah kotak teks, gunakan atribut value:
<input type=”text” name=”kota” size=”20” value=”Siantar”
/>
Agar PHP dapat
menetapkan nilai tersebut, tampilkan variabel tertentu:
<input type=”text” name=”kota” size=”20” value=”<?php echo
$kota; ?>” />
Untuk menetapkan
status dari tombol radio atau kotak periksa, tambahkan kode checked=”checked” pada tag input. Dengan menggunakan PHP, Anda bisa
menuliskan:
<input type=”radio” name=”gender” value=”P” <?php if
($gender == ‘P’)) {
echo
‘checked=”checked”’;
}
?>/>
Untuk menetapkan
nilai dari sebuah textarea,
tempatkan nilai di antara tag-tag textarea:
<textarea name=”komentar” rows=”10” cols=”50”><?php
echo $komentar; ?></textarea>
Perhatikan bahwa
tag textarea tidak memiliki atribut
value seperti tag text standar.
Untuk menyeleksi
sebuah menu pull-down, tambahkan selected=”selected”
pada opsi tertentu. Ini merupakan cara mudah jika Anda menggunakan PHP untuk
menghasilkan menu:
echo ‘<select name=”tahun”>’;
for ($y = 2008; $y <= 2018; $y++) {
echo “<option
value=\”$y\”;
if ($tahun == $y) {
echo ‘
selected=”selected”’;
}
echo
“>$y</option>\n”;
}
echo
‘</select>’;
Dengan informasi
ini, Anda akan menulis-ulang kalkulator.php untuk menciptakan sticky form.
Membuat sticky form
1. Buka kalkulator.php (Skript 3.5) pada editor teks atau IDE Anda.
2. Ubah masukan kuantitas
<p>Kuantitas:
<input type="text" name="kuantitas" size="5"
maxlength="5"
value="<?php
if (isset($_POST['kuantitas'])) echo $_POST['kuantitas']; ?>"
/></p>
Perubahan pertama adalah menambahkan
atribut value pada masukan.
Kemudian, menampilkan nilai dari variabel kuantitas yang dikirimkan
($_POST[‘kuantitas’]). Karena saat pertama kali halaman dimuat
$_POST[‘kuantitas’] tidak memiliki nilai, sebuah kondisional diperlukan untuk
memastikan bahwa variabel itu ditetapkan sebelum ditampilkan. Kode untuk
menetapkan nilai dari variabel kuantitas adalah
<?php
if (isset($_POST[‘kuantitas’])) {
echo $_POST[‘kuantitas’];
}
?>
Ini dapat dipadatkan menjadi form
minimal seperti dipakai pada skript.
3. Ulangi proses yang sama untuk harga dan pajak.
<p>Harga:
<input type="text" name="harga" size="5"
maxlength="10"
value="<?php
if (isset($_POST['harga'])) echo $_POST['harga']; ?>" /></p>
<p>Pajak
(%): <input type="text" name="pajak" size="5"
maxlength="5"
value="<?php
if (isset($_POST['pajak'])) echo $_POST['pajak']; ?>" /></p>
4. Simpan file sebagai kalkulator.php, tempatkan pada direktori Web, dan
uji dengan browser Web Anda (Gambar 3.4).
SKRIPT 3.6
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
28
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<?php #Skript 3.6 - kalkulator.php
$judul_hal = 'Kalkulator Penghitung Harga Widget';
include ('kepala.html');
// Memeriksa submisi form:
if (isset($_POST['diserahkan'])) {
// Validasi form
minimal:
if (
is_numeric($_POST['kuantitas']) &&
is_numeric($_POST['harga']) &&
is_numeric($_POST['pajak']) ) {
// Menghitung
hasil:
$total =
($_POST['kuantitas'] * $_POST['harga']);
$besar_pajak =
($_POST['pajak'] / 100); // Ubah 5% menjadi .05.
$total +=
($total * $besar_pajak); // Tambahkan ke total.
// Menampilkan
hasil:
echo
'<h1>Biaya total</h1>
<p>Biaya total pembelian sejumlah ' .
$_POST['kuantitas'] . ' widget dengan harga masing-masing Rp.' .
number_format
($_POST['harga'], 2) . ', termasuk pajak ' .
$_POST['pajak'] . '%, adalah Rp. ' . number_format ($total, 2) .
'.</p>';
} else { //
Nilai-nilai yang dikirim tak-valid.
echo
'<h1>Error!</h1>
<p
class="error">Silahkan masukkan kuantitas, harga, dan pajak yang
valid.</p>';
}
} // Akhir dari IF isset().
// Ciptakan form HTML:
?>
<h1>Kalkulator Biaya Widget</h1>
<form
action="kalkulator.php" method="post">
<p>Kuantitas: <input
type="text" name="kuantitas" size="5"
maxlength="5"
value="<?php if
(isset($_POST['kuantitas'])) echo $_POST['kuantitas']; ?>"
/></p>
<p>Harga: <input
type="text" name="harga" size="5"
maxlength="10"
value="<?php if (isset($_POST['harga'])) echo
$_POST['harga']; ?>" /></p>
<p>Pajak (%): <input
type="text" name="pajak" size="5"
maxlength="5"
value="<?php if (isset($_POST['pajak'])) echo
$_POST['pajak']; ?>" /></p>
<p><input
type="submit" name="serahkan" value="Hitung!"
/></p>
<input
type="hidden" name="diserahkan" value="1" />
</form>
<?php // Cantumkan file kaki:
include ('kaki.html');
?>
|
Gambar 3.4 Form sekarang
mengingat nilai-nilai yang dikirimkan sebelumnya, tanpa memandang apakah form
telah diisi secara keseluruhan atau tidak.
3.4 Menciptakan Fungsi Sendiri
PHP mempunyai banyak fungsi pustaka
(built-in), yang dapat dipakai untuk menyelesaikan hampir semua permasalahan
yang Anda alami. PHP juga memiliki kapabilitas sehingga Anda bisa
mendefinisikan dan menggunakan fungsi sendiri untuk tujuan yang Anda tetapkan
sendiri. Sintaksis untuk menciptakan fungsi sendiri adalah
function nama_fungsi () {
// Kode fungsi.
}
Nama fungsi
Anda dapat berupa kombinasi dari huruf, angka, dan garis-bawah tetapi ia harus
diawali dengan huruf atau garis-bawah, tidak bisa diawali dengan angka. Anda
juga tidak dapat memakai nama fungsi pustaka untuk nama fungsi Anda. Berikut
contoh definisi fungsi yang benar:
function lakukan_sesuatu() {
// Lakukan apapun.
}
Dalam PHP,
seperti disebutkan sebelumnya, nama fungsi berwatak case-insensitive (tidak
seperti nama variabel), jadi Anda dapat memanggil fungsi tersebut dengan
lakukan_Sesuatu() atau LAKUKAN_SESUATU() atau Lakukan_Sesuatu(), dan lainnya
(tetapi tidak dengan lakukansesuatu() atau LakukanSesuatu()).
Kode yang berada
di dalam fungsi dapat dipakai untuk apapun sesuai dengan keinginan Anda. Bab
ini akan menyajikan beberapa contoh tentang bagaimana fungsi sendiri dapat
diimplementasikan.
Menciptakan fungsi sendiri
1. Ciptakan sebuah dokumen PHP yang baru pada editor teks atau IDE Anda
(Skript 3.7).
<?php # Skript 3.7 -
formtanggal.php
$judul_hal = 'Form Kalender';
include ('kepala.html');
Halaman ini akan memakai template
HTML yang sama dengan contoh-contoh sebelumnya.
2. Awali pendefinisian sebuah fungsi baru.
function
buat_kalender_pulldown() {
Fungsi yang ditulis di sini akan
menghasilkan tiga menu pull-down yang diperlukan untuk memilih bulan, hari, dan
tanggal, sama seperti kalender.php (lihat Skript 2.9). Nama fungsi secara jelas
menyatakan tujuannya.
3. Bangkitkan tiga menu pull-down.
// Membuat array bulan:
$bulan = array (1 => 'Januari',
'Februari', 'Maret', 'April', 'Mei',
'Juni', 'Juli', 'Agustus', 'September',
'Oktober', 'Nopember', 'Desember');
// Membuat menu pull-down bulan:
echo '<select name="bulan">';
foreach ($bulan as $kunci => $nilai) {
echo
"<option value=\"$kunci\">
$nilai</option>\n";
}
echo '</select>';
// Membuat menu pull-down hari:
echo '<select name="hari">';
for ($hari = 1; $hari <= 31; $hari++) {
echo "<option
value=\"$hari\">$hari</option>\n";
}
echo '</select>';
// Membuat menu pull-down tahun:
echo '<select name="tahun">';
for ($tahun = 2008; $tahun <= 2018;
$tahun++) {
echo "<option
value=\"$tahun\">
$tahun</option>\n";
}
Kode ini persis sama dengan yang ada
pada kalender.php, hanya saja ia sekarang ditempatkan di dalam sebuah definisi
fungsi.
4. Tutup definisi fungsi.
} // Akhir definisi
fungsi.
Komentar bisa membantu Anda untuk
menandai akhir dari sebuah fungsi sehingga Anda mengetahui awal dan akhir dari
fungsi.
5. Ciptakan form dan panggil fungsi.
// Menciptakan tag-tag
form:
echo '<h1>Pilih
sebuah tanggal:</h1>
<form
action="formtanggal.php" method="post">';
// Memanggil fungsi.
buat_kalender_pulldown();
echo '</form>';
Kode ini akan menciptakan tag-tag
form. Pemanggilan terhadap fungsi buat_kalender_form() akan menghasilkan tiga
menu pull-down.
6. Tutup skript PHP dengan menyertakan kaki.html.
include ('kaki.html');
?>
7. Simpan file sebagai formtanggal.php, tempatkan pada direktori Web, dan
uji dengan browser Web Anda (Gambar 3.5).
SKRIPT 3.7
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
28
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<?php # Skript 3.7 - formtanggal.php
$judul_hal = 'Form Kalender';
include ('kepala.html');
// Fungsi ini membuat tiga menu pull-down
// untuk memilih bulan, hari, dan tahun.
function
buat_kalender_pulldown() {
// Membuat array bulan:
$bulan = array (1 => 'Januari',
'Februari', 'Maret', 'April', 'Mei',
'Juni', 'Juli', 'Agustus', 'September',
'Oktober', 'Nopember', 'Desember');
// Membuat menu pull-down bulan:
echo '<select
name="bulan">';
foreach ($bulan as $kunci => $nilai) {
echo "<option
value=\"$kunci\">
$nilai</option>\n";
}
echo '</select>';
// Membuat menu pull-down hari:
echo '<select
name="hari">';
for ($hari = 1; $hari <= 31; $hari++) {
echo "<option
value=\"$hari\">$hari</option>\n";
}
echo '</select>';
// Membuat menu pull-down tahun:
echo '<select
name="tahun">';
for ($tahun = 2008; $tahun <= 2018;
$tahun++) {
echo "<option
value=\"$tahun\">
$tahun</option>\n";
}
echo '</select>';
} // Akhir definisi
fungsi.
// Menciptakan tag-tag form:
echo '<h1>Pilih sebuah tanggal:</h1>
<form action="formtanggal.php"
method="post">';
// Memanggil fungsi.
buat_kalender_pulldown();
echo '</form>';
include ('kaki.html');
?>
|
3.5
Menciptakan Fungsi Dengan Argumen
Sama seperti
fungsi pustaka PHP, fungsi yang Anda ciptakan sendiri dapat memiliki argumen
(juga dikenal dengan parameter). Sebagai contoh, fungsi isset() mengambil
sebuah argumen berupa nama dari sebuah variabel yang akan diuji. Fungsi
strlen() mengambil sebuah argumen berupa string yang akan ditentukan panjang
karakternya.
Sebuah fungsi
dapat mengambil sebanyak mungkin argumen, tetapi urutan argumen harus menjadi
perhatian serius. Untuk memberikan argumen pada fungsi, gunakan sintaksis
berikut:
function tampil_hallo ($pertama, $terakhir) {
// Kode fungsi.
}
Setelah fungsi
didefinisikan, Anda kemudian dapat memanggilnya seperti memanggil fungsi lain
dalam PHP:
tampil_hallo (‘Tom’, ‘Cruise’);
$nama_keluarga = ‘Cruise’;
print_hello (‘Tom’, $nama_keluarga);
Sama seperti
fungsi lain dalam PHP, ketidak-cocokan jumlah argumen akan menyebabkan error.
Untuk mendemonstrasikan konsep ini, Anda akan menulis-ulang proses kalkulator
sebagai sebuah fungsi.
Mendefinisikan fungsi yang memiliki argumen
1. Buka kalkulator.php (Skript 3.6) pada editor teks atau IDE Anda.
2. Setelah menyertakan file kepala.html, definisikan fungsi hitung_total()
(Skript 3.8).
/* Fungsi ini menghitung
total dan kemudian
menampilkan hasilnya. */
function hitung_total
($kti, $biaya, $pjk) {
$total = ($kti * $biaya);
$taxrate = ($pjk / 100); // Mengubah 5%
menjadi .05.
$total += ($total * $taxrate); // Menambah
pajak.
// Menampilkan hasil:
echo '<p>Biaya total untuk membeli
sejumlah '
. $kti . ' widget seharga masing-masing
Rp. '
. number_format ($biaya,
2) . ', termasuk pajak '
. $pjk . '%, adalah Rp.
' . number_format ($total, 2) . '.</p>';
} // Akhir dari fungsi.
Fungsi ini melakukan perhitungan
yang sama dengan apa yang ada pada file kalkulator.php sebelumnya. Fungsi ini
mengambil tiga argumen: kuantitas yang dibeli, harga, dan pajak. Perhatikan
bahwa variabel-variabel yang digunakan sebagai argumen-argumen bukanlah
$_POST[‘kuantitas’], $_POST[‘harga’], dan $_POST[‘pajak’]. Variabel-variabel
argumen pada fungsi hanya dikenali pada fungsi ini dan memiliki nama sendiri.
3. Ubah isi dari validasi kondisional.
// Menampilkan heading:
echo '<h1>Biaya total</h1>';
// Memanggil fungsi:
hitung_total($_POST['kuantitas'],
$_POST['harga'], $_POST['pajak']);
Ketika memanggil fungsi, ketiga
argumen dilewatkan kepada fungsi tersebut, masing-masing merupakan sebuah
variabel $_POST. Nilai dari $_POST[‘kuantitas’] ditugaskan kepada variabel $kti
pada definisi fungsi; nilai dari $_POST[‘harga’] ditugaskan kepada variabel
$biaya pada definisi fungsi; Nilai dari $_POST[‘pajak’] ditugaskan kepada
variabel $pjk pada definisi fungsi.
4. Simpan file sebagai kalkulator.php, tempatkan pada direktori Web Anda,
dan uji dengan browser Web Anda (Gambar 3.6).
SKRIPT 3.8
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
28
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
<?php #Skript 3.8 - kalkulator.php
$judul_hal = 'Kalkulator Penghitung Harga Widget';
include ('kepala.html');
/* Fungsi ini menghitung total dan kemudian
menampilkan hasilnya. */
function hitung_total
($kti, $biaya, $pjk) {
$total = ($kti * $biaya);
$taxrate = ($pjk / 100); // Mengubah 5%
menjadi .05.
$total += ($total * $taxrate); // Menambah
pajak.
// Menampilkan hasil:
echo '<p>Biaya total untuk membeli
sejumlah '
. $kti . ' widget seharga
masing-masing Rp. '
. number_format ($biaya, 2) . ',
termasuk pajak '
. $pjk . '%, adalah Rp. ' .
number_format ($total, 2) . '.</p>';
} // Akhir dari fungsi.
// Memeriksa submisi form:
if (isset($_POST['diserahkan'])) {
// Validasi form
minimal:
if (
is_numeric($_POST['kuantitas']) &&
is_numeric($_POST['harga']) &&
is_numeric($_POST['pajak'])
) {
// Menampilkan
heading:
echo
'<h1>Biaya total</h1>';
//
Memanggil fungsi:
hitung_total($_POST['kuantitas'],
$_POST['harga'], $_POST['pajak']);
} else { //
Nilai-nilai yang dikirim tak-valid.
echo
'<h1>Error!</h1>
<p
class="error">Silahkan masukkan kuantitas, harga, dan pajak yang
valid.</p>';
}
} // Akhir dari IF isset().
// Ciptakan form HTML:
?>
<h1>Kalkulator Biaya Widget</h1>
<form
action="kalkulator.php" method="post">
<p>Kuantitas:
<input type="text" name="kuantitas" size="5"
maxlength="5"
value="<?php if (isset($_POST['kuantitas'])) echo
$_POST['kuantitas']; ?>" /></p>
<p>Harga:
<input type="text" name="harga" size="5"
maxlength="10"
value="<?php
if (isset($_POST['harga'])) echo $_POST['harga']; ?>" /></p>
<p>Pajak
(%): <input type="text" name="pajak"
size="5" maxlength="5"
value="<?php
if (isset($_POST['pajak'])) echo $_POST['pajak']; ?>" /></p>
<p><input type="submit" name="serahkan"
value="Hitung!" /></p>
<input
type="hidden" name="diserahkan" value="1" />
</form>
<?php // Cantumkan file kaki:
include ('kaki.html');
?>
|
Gambar 3.6 Meskipun
menggunakan fungsi sendiri dalam melakukan perhitungan, hasil akhir tidak
berbeda dari sebelumnya.
3.6
Menetapkan Nilai Argumen Default
Varian lain
dalam mendefinisikan fungsi Anda sendiri adalah dengan memberikan nilai
argumen. Untuk melakukannya, tugaskan sebuah nilai kepada argumen pada definisi
fungsi:
function salam($nama, $psn = ‘Hallo’) {
echo “$psn, $nama!”;
}
Hasil akhir dari
penetapan nilai argumen default adalah bahwa argumen tersebut menjadi opsional
ketika fungsi dipanggil. Jika sebuah nilai dilewatkan kepadanya, nilai yang
dilewatkan itu yang akan digunakan. Anda dapat menetapkan nilai-nilai default
untuk sebanyak mungkin argumen yang Anda inginkan, dengan syarat bahwa
argumen-argumen itu di berikan di bagian akhir pada definisi fungsi. Dengan
kata lain, argumen-argumen yang disyaratkan harus dicantumkan lebih dahulu.
Pada fungsi yang baru saja didefinisikan, semua pemanggilan ini dapat
dilakukan:
salam($nama_keluarga, $pesan);
salam(‘Samy’);
salam(‘Samy’, ‘Selamat Pagi’);
Namun, salam()
saja tidak dapat dipakai.
Menetapkan nilai argumen default
1. Buka file kalkulator.php (Skript 3.8) pada editor teks atau IDE Anda.
2. Ubah baris definisi fungsi sehingga hanya kuantitas dan harga yang
disyaratkan (Skript 3.9).
function hitung_total
($kti, $biaya, $pjk = 5) {
Nilai dari variabel $pjk sekarang diberikan
pada definisi fungsi, yang membuatnya menjadi opsional.
3. Ubah validasi form.
if (
is_numeric($_POST['kuantitas']) && is_numeric($_POST['harga'])) {
Karena nilai pajak menjadi opsional,
hanya dua variabel lain yang disyaratkan dan perlu divalidasi.
4. Ubah baris pemanggilan fungsi.
// Memanggil fungsi,
dengan atau tanpa pajak:
if
(is_numeric($_POST['pajak'])) {
hitung_total ($_POST['kuantitas'],
$_POST['harga'], $_POST['pajak']);
} else {
hitung_total ($_POST['kuantitas'], $_POST['harga']);
}
5. Ubah pesan error agar hanya melaporkan kuantitas dan harga.
echo
'<h1>Error!</h1>
<p
class="error">Silahkan masukkan kuantitas dan harga yang
valid.</p>';
6. Jika diinginkan, Anda bisa menandai nilai pajak pada form sebagai
variabel opsional.
<p>Pajak(%):
<input type="text" name="pajak" size="5"
maxlength="5"
value="<?php
if(isset($_POST['pajak'])) echo $_POST['pajak']; ?>"/>
(opsional)</p>
7. Simpan file, tempatkan pada direktori Web, dan uji dengan browser Web
Anda (Gambar 3.7).
SKRIPT 3.9
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
28
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<?php #Skript 3.9 - kalkulator.php
$judul_hal = 'Kalkulator Penghitung Harga Widget';
include ('kepala.html');
/* Fungsi ini menghitung total dan kemudian
menampilkan hasilnya. */
function hitung_total
($kti, $biaya, $pjk = 5) {
$total = ($kti *
$biaya);
$taxrate = ($pjk /
100); // Mengubah 5% menjadi .05.
$total += ($total *
$taxrate); // Menambah pajak.
// Menampilkan
hasil:
echo
'<p>Biaya total untuk membeli sejumlah '
. $kti . '
widget seharga masing-masing Rp. '
.
number_format ($biaya, 2) . ', termasuk pajak '
. $pjk . '%,
adalah Rp. ' . number_format ($total, 2) . '.</p>';
} // Akhir dari fungsi.
// Memeriksa submisi form:
if (isset($_POST['diserahkan'])) {
// Validasi form
minimal:
if (
is_numeric($_POST['kuantitas']) &&
is_numeric($_POST['harga'])) {
// Menampilkan
heading:
echo
'<h1>Biaya total</h1>';
// Memanggil
fungsi, dengan atau tanpa pajak:
if (is_numeric($_POST['pajak'])) {
hitung_total ($_POST['kuantitas'],
$_POST['harga'], $_POST['pajak']);
} else {
hitung_total ($_POST['kuantitas'],
$_POST['harga']);
}
} else { //
Nilai-nilai yang dikirim tak-valid.
echo '<h1>Error!</h1>
<p class="error">Silahkan
masukkan kuantitas dan harga yang valid.</p>';
}
} // Akhir dari IF isset().
// Ciptakan form HTML:
?>
<h1>Kalkulator Biaya Widget</h1>
<form
action="kalkulator.php" method="post">
<p>Kuantitas: <input type="text"
name="kuantitas" size="5" maxlength="5"
value="<?php if (isset($_POST['kuantitas'])) echo
$_POST['kuantitas']; ?>" /></p>
<p>Harga:
<input type="text" name="harga" size="5"
maxlength="10"
value="<?php
if (isset($_POST['harga'])) echo $_POST['harga']; ?>" /></p>
<p>Pajak(%): <input
type="text" name="pajak" size="5"
maxlength="5"
value="<?php if(isset($_POST['pajak']))
echo $_POST['pajak']; ?>"/> (opsional)</p>
<p><input type="submit" name="serahkan"
value="Hitung!" /></p>
<input
type="hidden" name="diserahkan" value="1" />
</form>
<?php // Cantumkan file kaki:
include ('kaki.html');
?>
|
3.7
Menciptakan Fungsi Penghasil Nilai Balik
Hal terakhir
pada sebuah fungsi sendiri yang akan didiskusikan adalah bagaimana menuliskan
sebuah fungsi yang dapat menghasilkan nilai balik. Sebagian fungsi pustaka
melakukan hal ini. Sebagai contoh, print() menghasilkan 1 atau 0, yang
mengindikasikan keberhasilan atau kegagalan dalam menampilkan. Fungsi echo()
bukanlah fungsi penghasil nilai balik.
Untuk
menciptakan fungsi penghasil nilai balik, gunakan statemen return berikut:
function penghasil_nilaibalik ($satu, $dua) {
// Kode fungsi.
return $nilai_balik;
}
Pada contoh
selanjutnya, Anda akan memperbarui fungsi hitung_total() sehingga ia
menghasilkan nilai balik berupa nilai total yang dihitung.
Menciptakan fungsi penghasil nilai balik
1. Buka file kalkulator.php (Skript 3.9) pada editor teks atau IDE Anda.
2. Hapus statemen echo() dari definisi fungsi dan ganti dengan sebuah
statemen return (Skript 3.10).
return number_format($total, 2);
Versi fungsi ini tidak akan
menampilkan hasil, tetapi menghasilkan nilai balik berupa nilai total yang
dihitung, yang diformat menjadi dua dijit di belakang titik desimal.
3. Ubah baris-baris
if
(is_numeric($_POST['pajak'])) {
$jum = hitung_total ($_POST['kuantitas'],
$_POST['harga'], $_POST['pajak']);
} else {
$jum = hitung_total ($_POST['kuantitas'],
$_POST['harga']);
}
4. Tambahkan statemen echo() yang baru untuk menampilkan hasil.
// Menampilkan hasil:
echo '<p>Biaya total
untuk membeli sejumlah '
. $_POST['kuantitas'] . ' widget seharga
masing-masing Rp. '
. number_format ($_POST['harga'], 2) . ',
termasuk pajak '
. ' adalah Rp. ' . $jum . '.</p>';
5. Simpan file, tempatkan pada direktori Web, dan uji dengan browser Web
Anda (Gambar 3.8).
SKRIPT 3.10
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
28
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
<?php #Skript 3.10 - kalkulator.php
$judul_hal = 'Kalkulator Penghitung Harga Widget';
include ('kepala.html');
/* Fungsi ini menghitung total dan kemudian
menghasilkan nilai balik. */
function hitung_total ($kti, $biaya, $pjk = 5) {
$total = ($kti *
$biaya);
$taxrate = ($pjk /
100); // Mengubah 5% menjadi .05.
$total += ($total
* $taxrate); // Menambah pajak.
return number_format($total, 2);
} // Akhir dari fungsi.
// Memeriksa submisi form:
if (isset($_POST['diserahkan'])) {
// Validasi form
minimal:
if (
is_numeric($_POST['kuantitas']) &&
is_numeric($_POST['harga'])) {
//
Menampilkan heading:
echo
'<h1>Biaya total</h1>';
// Memanggil
fungsi, dengan atau tanpa pajak:
if (is_numeric($_POST['pajak'])) {
$jum = hitung_total
($_POST['kuantitas'], $_POST['harga'], $_POST['pajak']);
} else {
$jum = hitung_total
($_POST['kuantitas'], $_POST['harga']);
}
// Menampilkan
hasil:
echo '<p>Biaya total untuk membeli
sejumlah '
. $_POST['kuantitas'] . ' widget
seharga masing-masing Rp. '
. number_format ($_POST['harga'], 2) .
', termasuk pajak '
. ' adalah Rp. ' . $jum .
'.</p>';
} else { //
Nilai-nilai yang dikirim tak-valid.
echo
'<h1>Error!</h1>
<p class="error">Silahkan
masukkan kuantitas dan harga yang valid.</p>';
}
} // Akhir dari IF isset().
// Ciptakan form HTML:
?>
<h1>Kalkulator Biaya Widget</h1>
<form
action="kalkulator.php" method="post">
<p>Kuantitas: <input type="text"
name="kuantitas" size="5" maxlength="5"
value="<?php if (isset($_POST['kuantitas'])) echo
$_POST['kuantitas']; ?>" /></p>
<p>Harga:
<input type="text" name="harga" size="5"
maxlength="10"
value="<?php
if (isset($_POST['harga'])) echo $_POST['harga']; ?>" /></p>
<p>Pajak(%): <input type="text"
name="pajak" size="5" maxlength="5"
value="<?php
if(isset($_POST['pajak'])) echo
$_POST['pajak']; ?>"/>
(opsional)</p>
<p><input type="submit" name="serahkan"
value="Hitung!" /></p>
<input
type="hidden" name="diserahkan" value="1" />
</form>
<?php // Cantumkan file kaki:
include ('kaki.html');
?>
|
Gambar 3.8 Fungsi yang
diciptakan sendiri sekarang menghasilkan nilai balik (bukan lagi menampilkan
hasil).
No comments:
Post a Comment