Bagaimana kabarnya teman-teman semua?, semoga dalam keadaan sehat selalu ya. Sudah lama saya tidak menulis di blog karena ada beberapa urusan, sekarang ini saya akan membagikan cara membuat form pemesanan tiket destinasi yang sederhana, dimana ide ini saya dapat dari seseorang yang bertanya di grup Telegram mengenai tugas yang diberikan oleh dosen nya dan saya meminta tentang tugas itu untuk membuat nya sendiri sekaligus melatih pembelajaran saya tentang Javascript. Baiklah, tak perlu panjang lebar mari kita buat program tersebut.
Pertama yang kita siapkan file html nya terlebih dahulu dan kita isikan struktur membuat form, jangan lupa juga untuk menghubungkan file html kita dengan file css dan file javascript nya. Jika kamu ingin membuat sendiri struktur form kamu, silahkan dibuat terlebih dahulu yang paling terpenting adalah memberikan id pada tiap input, karena sangat berguna saat kita sudah masuk ke file javascript nanti. Jika kamu ingin mengikuti struktur saya, kamu bisa salin kode dibawah ini:
<!-- Jika berhasil pesan akan menampilkan berkas output nya --> <divclass="output"> <h2>TICKET PAYMENT</h2> <p>Nama: <spanid="namaOutput"></span></p> <p>Destinasi: <spanid="destinasiOutput"></span></p> <p>Status: <spanid="statusOutput"></span></p> <p>Jumlah Tiket: <spanid="jumlahOutput"></span></p> <p>Subtotal: <spanid="subtotalOutput"></span></p> <p>Diskon: <spanid="diskonOutput"></span></p> <p>Total: <spanid="totalOutput"></span></p> <p><sup>*</sup>Harga 1 tiket: <spanid="hargaTiket"></span></p> </div> </div>
<divclass="informasi"> <span>Catatan:</span> <span><sup>*</sup>Destinasi hanya terdapat 3 kota: Bandung, Jakarta dan Surabaya <spanclass="">(Perhatikan huruf kecil dan besar nya)</span></span> <span><sup>*</sup>Status hanya terdapat 2: Dewasa dan Anak-anak <span>(Perhatikan huruf kecil dan besar nya)</span></span> <span><sup>*</sup>Jika membeli Jumlah Tiket lebih dari 5 bisa mendapat diskon 15% <span>(Tidak lebih dari 5 maka tidak dapat diskon)</span></span> </div> <scriptsrc="script.js"></script> </body> </html>
Maka jika kita buka di browser, tampilan jika kamu menyalin kode diatas hasilnya akan seperti ini:
Terlihat aneh bukan?, maka dari itu saatnya kita membuat file css dan kita mencoba mempercantiknya. Jika kamu ingin mempercantik tampilan dengan cara sendiri silahkan atau jika ingin mengikuti tampilan saya, silahkan salin kode dibawah ini:
Sekarang sudah mendingan untuk dilihat bukan tampilannya hahaha, sekarang lanjut ke bagian terpenting nya yaitu bagian javascript. Silahkan buat file javascript nya terlebih dahulu. Lalu kalian bisa salin kode dibawah ini, dengan catatan perhatikan id yang pada pada html kalian.
// Menyeleksi beberapa inputan textfield const nama = document.getElementById("nama"); const destinasi = document.getElementById("destinasi"); const status = document.getElementById("status"); const jumlah = document.getElementById("jumlah"); const subtotal = document.getElementById("subtotal"); const diskon = document.getElementById("diskon"); const total = document.getElementById("total"); const cetakPesanan = document.querySelector(".output");
// Menyeleksi bagian tombol dan menjalnkan apabila tombol pesan di klik const tombolPesan = document.getElementById("pesan"); tombolPesan.addEventListener("click", function (e) { e.preventDefault();
// Pengecekan jika inputan-nya kosong atau tidak diisi if (nama.value == "" || destinasi.value == "" || status.value == "" || jumlah.value == "") { alert("Inputan nilai harus diisi terlebih dahulu!"); } else { // Mengecek jika inputan nama nya sudah tidak kosong if (nama.value != "") { document.getElementById("namaOutput").innerText = nama.value; }
// Mengecek inputan destinasi sesuai 3 Pilihan: Bandung, Jakarta dan Surabaya if (destinasi.value == "Bandung") { document.getElementById("destinasiOutput").innerText = destinasi.value; } elseif (destinasi.value == "Jakarta") { document.getElementById("destinasiOutput").innerText = destinasi.value; } elseif (destinasi.value == "Surabaya") { document.getElementById("destinasiOutput").innerText = destinasi.value; } else { alert("Pilihan Destinasi hanya Bandung, Jakarta dan Surabaya"); }
// Mengecek inputan status sesuai 2 pilihan: Dewasa dan Anak-anak if (status.value == "Dewasa") { document.getElementById("statusOutput").innerText = status.value; } elseif (status.value == "Anak-anak") { document.getElementById("statusOutput").innerText = status.value; } else { alert("Pilihan status hanya untuk Dewasa dan Anak-anak saja!"); }
let harga = 0; let hargaPerTiket = document.getElementById("hargaTiket");
// Mengecek antara status dan destinasi if (destinasi.value == "Bandung" && status.value == "Dewasa") { harga = 200000; hargaPerTiket.innerText = harga + " (Dua Ratus Ribu)"; } elseif (destinasi.value == "Bandung" && status.value == "Anak-anak") { harga = 100000; hargaPerTiket.innerText = harga + " (Seratus Ribu)"; } elseif (destinasi.value == "Jakarta" && status.value == "Dewasa") { harga = 300000; hargaPerTiket.innerText = harga + " (Tiga Ratus Ribu)"; } elseif (destinasi.value == "Jakarta" && status.value == "Anak-anak") { harga = 200000; hargaPerTiket.innerText = harga + " (Dua Ratus Ribu)"; } elseif (destinasi.value == "Surabaya" && status.value == "Dewasa") { harga = 400000; hargaPerTiket.innerText = harga + " (Empat Ratus Ribu)"; } elseif (destinasi.value == "Surabaya" && status.value == "Anak-anak") { harga = 300000; hargaPerTiket.innerText = harga + " (Tiga Ratus Ribu)"; }
// Mengecek inputan jumlah / tiket jika lebih dari 5 maka akan dikasih diskon, jika dibawah 5 tidak dapat diskon // Ubah dulu yang tipe data nya string menjadi number const convertToNumber = Number(jumlah.value); subtotal.value = harga * convertToNumber; document.getElementById("subtotalOutput").innerText = harga * convertToNumber;
if (nama.value != "" || destinasi.value != "" || status.value != "" || jumlah.value != "") { // Mengecek jika user memasukkan nilai 0 pada inputan jumlah tiket if (jumlah.value == 0) { alert("Jumlah tiket tidak boleh 0"); cetakPesanan.classList.remove("tampil"); } else { cetakPesanan.classList.add("tampil"); } } } });
// Menyeleksi bagian tombol dan menjalankan apabila tombol hapus di klik const hapus = document.getElementById("hapus"); hapus.addEventListener("click", function () { // Menghapus bagian output pada html if (nama.value == "" && destinasi.value == "" && status.value == "" && jumlah.value == "") { alert("Data masih kosong, apa yang mau dihapus?"); } elseif (nama.value != "" || destinasi.value != "" || status.value != "" || jumlah.value != "") { nama.value = ""; destinasi.value = ""; status.value = ""; jumlah.value = ""; subtotal.value = ""; diskon.value = ""; total.value = ""; cetakPesanan.classList.remove("tampil"); } });
Maka tampilan sekarang lebih menarik dimana kita bisa berinteraksi dengan pengguna
Maka program form pemesanan tiket kita sudah berhasil dibuat dan berjalan dengan seharusnya, apabila ada kendala kamu bisa chat saya melalui Telegram Rian.
Cukup sekian pembahasan dari saya mengenai pembuatan program pemesanan tiket yang sangat sederhana ini, saya yakin pasti ada cara yang lebih ringkas dan lebih baik lagi. Apabila ada pertanyaan silahkan ditanyakan lewat kolom komentar atau chat saya di Telegram.
Jika ingin melihat demo program kamu bisa lihat di Demo-Program. Terima kasih semua, semoga dapat bermanfaat :D