01104 - APLIKASI
- APLIKASI
TEKNOLOGI
TEKNOLOGI
ONLINE
ONLINE
REVIEW
MENULIS PROGRAM DI PHP
02
Buatlah sebuah aplikasi web yang akan menampilkan harga BBM (Premium, Pertalite,
Pertamax dan Solar) berdasarkan inputan awal dan akhir liter yang ingin ditampilkan.
Data awal dan akhir liter diinputkan oleh user melalui sebuah form.
Jika liter awal diisi 1 dan liter akhir diisi 15 maka akan menampilkan daftar harga BBM
dari 1 s.d 15 liter untuk setiap jenis BBM.
<!DOCTYPE html>
<html>
<head><title>Daftar Harga BBM</title></head>
<body>
<h1>Daftar Harga BBM</h1>
<form method="post">
<table border="1">
<tr><th>Liter Awal</th><th>Liter Akhir</th><th> </th></tr>
<tr><td><input type="text" name="awal" maxlength="3" size="2"></td>
<td><input type="text" name="akhir" maxlength="3" size="2"></td>
<td><input type="submit" name="tblsubmit" value="View"></td></tr>
</table>
</form>
</body>
</html>
Jika anda menjalankan program ini maka akan muncul error seperti gambar di bawah
ini yang menyatakan bahwa variable awal dan akhir tidak dikenal.
Agar script PHP dieksekusi hanya ketika setelah adanya penekanan tombol submit, maka
lakukan hal berikut :
Tambahkan script berikut sebelum script yang akan dieksekusi setelah penekanan
tombol (setelah </form> sebelum <?php ).
<?php
if(isset($_POST["tblsubmit"])){ // jika telah mengklik tombol submit
?>
Tambahkan scrip berikut setelah </table>
<?php
} // akhir dari if tombol submit diklik
?>
Keterangan parameter :
$number : angka yang akan diformat
$decimal : berapa digit pecahan yang akan ditampilkan (default = 0)
$dec_point : karakter pemisah pecahan (decimal) (default = “.” tanda titik)
$thousands_sep : karakter pemisah ribuan (default = “,” tanda koma)
Ubah semua echo yang menampilkan angka uang dengan menambahkan function
number_format seperti pada contoh di bawah ini.
Cara untuk seting cell yang berisi data mata uang agar ditampilkan rata kanan adalah
sebagai berikut :
1. Menambahkan attribute align="right" pada setiap tag <td> yang ingin ditulis rata-kanan.
2. Mendefaultkan style untuk semua tag td pada dokumen html tersebut dengan menggunakan
Cascade Style Sheet (CSS).
Cara 1 : Seting tag <td> yang menuliskan data uang dengan menambah
align="right"
<td align="right">Rp <?php echo number_format($i*HARGA_PREMIUM,0,",",".");?></td>
<td align="right">Rp <?php echo number_format($i*HARGA_PERTALITE,0,",",".");?></td>
<td align="right"><?php echo "Rp ".number_format($i*HARGA_PERTAMAX,0,",",".");?></td>
<td align="right"><?php echo "Rp ".number_format($i*HARGA_SOLAR,0,",",".");?></td>
Perhatikan!
Semua td akan
Hasil Run ditampilkan rata kanan
Jika anda menggunakan cara ke-2 tetapi pada cell-cell (td) tertentu ingin rata kiri atau
rata kanan, maka anda bisa membuat sebuah class khusus di style-nya.
Contoh di bawah ini mencontohkan membuat selector class CSS untuk rata tengah. Tulis
diantara tag <style> dan </style>
.tengah{
text-align:center;
}
Pembuatan selector class pada css karena style ini akan digunakan di
banyak tag dalam dokumen yang diformat.
Jangan lupa mengedit cell (td) yang ingin dituliskan rata tengah. Misalnya jika kolom
Liter ingin ditulis rata tengah maka di tag <td> ditambahkan atribut class dengan nama
“tengah”.
Hasil Run
Rata Tengah
Cara untuk mengatur baris ganjil dan genap agar berbeda warna adalah sebagai berikut
:
1. Menambahkan attribute bgcolor="white" pada setiap tag <tr> baris ganjil dan attribute
bgcolor="silver" pada setiap tag <tr> baris genap.
2. Menambahkan attribute class="barisganjil" pada setiap tag <tr> baris ganjil dan attribute
class="barisgenap" pada setiap tag <tr> baris genap.
3. Penentuan baris ganjil genap dilakukan oleh Cascade Style Sheet (CSS).
Cara 1 : Menambahkan attribute bgcolor pada tag <tr> sesuai ganjil/genap liternya.
Isi attribut bgcolor harus berupa percabangan yang memeriksa apakah variable liter
ganjil atau genap. Jika ganjil maka isi bgcolor adalah white dan jika genap maka isinya
adalah silver.
<tr bgcolor="<?php
if($i %2 == 1)
echo "white";
else
echo "silver";
?>">
Atau
<tr bgcolor="<?php echo ($i%2==1?"white":"silver");?>">
Cara 1 : Menambahkan attribute bgcolor pada tag <tr> sesuai ganjil/genap liternya.
Isi attribut bgcolor harus berupa percabangan yang memeriksa apakah variable liter
ganjil atau genap. Jika ganjil maka isi bgcolor adalah white dan jika genap maka isinya
adalah silver.
Hasil Run
Hasil Run
Cara 3 : Penentuan baris ganjil dan genap menggunakan CSS yaitu cara menggunakan
selector :nth-child(). Sehingga tidak harus ada percabangan dengan php untuk
menentukan ganjil atau genapnya. Langkahnya :
Di bagian CSS tulislah hal berikut :
tr:nth-child(even) {
background: white;
}
tr:nth-child(odd) {
background: silver;
}
Cara 3 : Penentuan baris ganjil dan genap menggunakan CSS yaitu cara menggunakan
selector :nth-child.
Hasil Run
MODIFIKASI 4
(BARIS GANJIL DAN GENAP BEDA WARNA)
01104 - APLIKASI TEKNOLOGI ONLINE
Cara 3 : Penentuan baris ganjil dan genap menggunakan CSS yaitu cara menggunakan
selector :nth-child.
Hasil Run
MODIFIKASI 5
(MENAMPILKAN KEMBALI DATA YANG TERSUBMIT)
01104 - APLIKASI TEKNOLOGI ONLINE
Ketika anda membuka halaman bbm.php ini maka anda akan lihat form kosong.
Kemudian anda mengisi nilai awal dan akhir, kemudian klik tombol View.
Hasil eksekusi akan menampilkan hasil perhitungan seperti pada gambar di bawah ini.
Tapi kalau dilihat pada bagian form maka liter awal dan akhir kembali kosong. Alangkah
baiknya jika setelah eksekusi (submit data), maka form akan terisi sesuai data yang
telah disubmit.
Caranya dengan memanfaatkan function isset yang akan memeriksa apakah ada submit
data atau tidak. Jika ada submit data maka data tersebut dituliskan sebagai value dari
textbox awal atau akhir. Modifikasi yang dilakukan adalah sebagai berikut :
Edit pada tag <input> awal dan akhir
Ubah seperti pada script di bawah ini.
<input type="text" name="awal"
value="<?php echo (isset($_POST["awal"])?$_POST["awal"]:"");?>"
maxlength="3" size="2">
<input type="text" name="akhir“
value="<?php echo (isset($_POST["akhir"])?$_POST["akhir"]:"");?>"
maxlength="3" size="2">
Run
Awal pemanggilan bbm.php, isi awal dengan 5 dan akhir dengan 10.
Data submit
ditampilkan kembali
<!DOCTYPE html>
<html>
<head><title>Daftar Harga BBM</title>
<style>
td{
text-align:right;
}
.tengah{
text-align:center;
}
tr:nth-child(2n+2) {
background: white;
}
tr:nth-child(2n+3) {
background: silver;
}
</style>
</head>
<body>
<h1>Daftar Harga BBM</h1>
<form method="post">
<table border="1">
<tr><th>Liter Awal</th><th>Liter Akhir</th><th> </th></tr>
<tr><td><input type="text" name="awal" value="<?php echo (isset($_POST["awal"])?$_POST["awal"]:"");?>"
maxlength="3" size="2"></td>
<td><input type="text" name="akhir" value="<?php echo (isset($_POST["akhir"])?$_POST["akhir"]:"");?>"
maxlength="3" size="2"></td>
<td><input type="submit" name="tblsubmit" value="View"></td></tr>
</table>
</form>
<?php
if(isset($_POST["tblsubmit"])){ // jika telah mengklik tombol submit
?>
<?php
define("HARGA_PREMIUM",6550);
define("HARGA_PERTALITE",7600);
define("HARGA_PERTAMAX",8900);
define("HARGA_SOLAR",5150);
?>
<table border="1">
<tr><th>Liter</th><th>Premium</th><th>Pertalite</th><th>Pertamax</th><th>Solar</th></tr>
<?php
$awal=$_POST["awal"];
$akhir=$_POST["akhir"];
for($i=$awal;$i<=$akhir;$i++){
?>
<tr>
<td class="tengah"><?php echo $i;?></td>
<td>Rp <?php echo number_format($i*HARGA_PREMIUM,0,",",".");?></td>
<td>Rp <?php echo number_format($i*HARGA_PERTALITE,0,",",".");?></td>
<td><?php echo "Rp ".number_format($i*HARGA_PERTAMAX,0,",",".");?></td>
<td><?php echo "Rp ".number_format($i*HARGA_SOLAR,0,",",".");?></td>
</tr>
<?php
}
?>
</table>
<?php
}
?>
</body>
</html>
Oleh : Andri Heryandi, M.T. 34
FORUM DISKUSI
01104 - APLIKASI TEKNOLOGI ONLINE