Rabu, 10 Maret 2010

Membuat Form Pemesanan Berbasis JavaScript


Setelah sebelumnya kita membahas mengenai kalkulator sederhana, sekarang kita berlanjut dengan aplikasi form pemesanan sederhana. Pada intinya hampir sama, cuma sedikit pengembangan dengan menambahkan elemen tabel. 

 

Dalam proses pembuatan, ada sedikit kualifikasi yang harus terpenuhi, yaitu:
Spesifikasi:  
  *Field Harga, Jumlah Total, Diskon, dan Jumlah Dibayar bersifat read- only
  *Jika pesan disi, maka field jumlah total secara otomatis akan menghitung totalnya, termasuk     juga field jumlah dibayar.
        Rumus:  
        -Jumlah Total = (harga * pesan)
        -Jumlah Dibayar = Jumlah Total - Diskon
        -Jika pembelian lebih dari 50000, maka field diskon secara otomatis akan berisi nilai diskon                sebesar 10000 (tidak berlaku kelipatannya) dan otomatis pula field jumlah dibayar akan berkurang
        -Jika tombol Batal diklik, maka semua field Pesan akan dibersihkan

Fungsi dari algoritma penghitungan seperti di bawah ini:

<script language="JavaScript" type="text/javascript">
<!--
function hitungPesan(){
var nota = document.form2;
var hargaBakso = 12000 * eval(nota.qBakso.value);
var hargaSoto = 10000 * eval(nota.qSoto.value);
var hargaMie = 15000 * eval(nota.qMie.value);
var hargaDegan = 5000 * eval(nota.qDegan.value);
var hargaCampur = 7000 * eval(nota.qCampur.value);
var jumlahTotal = hargaBakso + hargaSoto + hargaMie + hargaDegan + hargaCampur;
if (jumlahTotal > 50000){
nota.Total.value = jumlahTotal;
nota.Diskon.value = 10000;
nota.Bayar.value = jumlahTotal - eval(nota.Diskon.value);
} else {
nota.Total.value = jumlahTotal;
nota.Diskon.value = 0;
nota.Bayar.value = jumlahTotal - eval(nota.Diskon.value);
}
}
function resetForm(){
document.form2.reset();
}
//-->
</script><h3>Form Pemesanan Berbasis JavaScript</h3>




Kemudian untuk kode dari form tabel seperti di bawah ini:

<form name="form2" action="#">
<table border="1px">
<tr>
<th>No</th>
<th>Makanan/Minuman</th>
<th>Harga</th>
<th>Pesan</th>
</tr>
<tr>
<td width="15">1</td>
<td width="200">Bakso Istimewa</td>
<td width="90">Rp. <input id="n123" type="text" name="bakso" value="12000" size="n6" disabled="true"/></td>
<td width="110"><input type="text" name="qBakso" size="n14" value="0" onChange="hitungPesan()"/></td>
</tr>
<tr>
<td>2</td>
<td>Soto Spesial</td>
<td>Rp. <input type="text" name="soto" value="10000" size="6" disabled="true"/></td>
<td><input type="text" name="qSoto" size="14" value="0" onChange="hitungPesan()"/></td>
</tr>
<tr>
<td>3</td>
<td>Mie Ayam Super</td>
<td>Rp. <input type="text" name="mie" value="15000" size="6" disabled="true"/></td>
<td><input type="text" name="qMie" size="14" value="0" onChange="hitungPesan()"/></td>
</tr>
<tr>
<td>4</td>
<td>Es Degan</td>
<td>Rp. <input type="text" name="degan" value="5000" size="6" disabled="true"/></td>
<td><input type="text" name="qDegan" size="14" value="0" onChange="hitungPesan()"/></td>
</tr>
<tr>
<td>5</td>
<td>Es Campur</td>
<td>Rp. <input type="text" name="campur" value="7000" size="6" disabled="true"/></td>
<td><input type="text" name="qCampur" size="14" value="0" onChange="hitungPesan()"/></td>
</tr>
<tr>
<td colspan="3" align="right">Jumlah Total</td>
<td>Rp.<input type="text" name="Total" size="10" disabled="true" /></td>
</tr>
<tr>
<td colspan="3" align="right">Diskon</td>
<td>Rp.<input type="text" name="Diskon" size="10" disabled="true" /></td>
</tr>
<tr>
<td colspan="3" align="right">Jumlah Dibayar</td>
<td>Rp.<input type="text" name="Bayar" disabled="true" size="10" align="right"/></td>
</tr>
</table><br/>
<input type="button" value="BATAL" onClick="resetForm()" />
</form>


Tabel di atas dapat diformat sesuai dengan keinginan. Dan proses terakhir yaitu penggabungan menjadi sebuah form pemesanan sederhana.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Warung Makan "Mbok Darmi"</title>
</head>
<body>
<!--Masukkan fungsi hitungPesan
<!--Masukkan form

</body>
</html>

Form pemesanan sudah selesai, jika ingin mengembangkan sangat diharapkan untuk menjadikannya lebih sempurna. Selamat mencoba.. :-)

 

0 komentar:

Posting Komentar

Pengikut