Forum membuat kalkulasi pada add page...
D
Dimastoro
⭐ Starter
Member

membuat kalkulasi pada add page

13 May 2026, 22:25 🖼️ 5 views 2 jawaban

Assalamulaikum

saya ingin bertanya bagaimana membuat kalkulasi otomatis pada field contoh

total = harga x quantity.

apakah berfungsi juga pada edit page?

terima kasih

2 Jawaban
A
admin
Admin
13 May 2026, 22:30

Wallaikumsallam

kalkulasi total bisa digunakan pada Add dan Edit, gunakan event Javascript onload

// Rumusan event seperti ini hanya bisa di gunakan pada Inline form saja//

const harga = document.querySelector('[name="harga"]');
const quantity = document.querySelector('[name="quantity"]');
const total = document.querySelector('[name="total"]');

function calculateTotal() {
const hargaValue = Number(harga?.value || 0);
const quantityValue = Number(quantity?.value || 0);

if (total) {
total.value = hargaValue * quantityValue;
}
}

if (total) {
total.readOnly = true;
}

harga?.addEventListener('input', calculateTotal);
quantity?.addEventListener('input', calculateTotal);

calculateTotal();


-================= Jika form Add/Edit dibuka sebagai Modal Popup, selector global kadang bisa mengambil field dari panel lain. Lebih aman gunakan scope modal: ======================
const form = document.querySelector('#modalForm_add') || document.querySelector('#modalForm_edit');

const harga = form?.querySelector('[name="harga"]');
const quantity = form?.querySelector('[name="quantity"]');
const total = form?.querySelector('[name="total"]');

function calculateTotal() {
const hargaValue = Number(harga?.value || 0);
const quantityValue = Number(quantity?.value || 0);

if (total) {
total.value = hargaValue * quantityValue;
}
}

if (total) {
total.readOnly = true;
}

harga?.addEventListener('input', calculateTotal);
quantity?.addEventListener('input', calculateTotal);

calculateTotal();


Semoga membantu... Terima kasih

A
admin
Admin
13 May 2026, 22:37

grosstotal = total x discount/100
seperti nya masih ada field yang kurang. tapi baik akan coba kami bantu

ini berlaku pada modal add-edit form saja. coba gunakan rumus Add page after record add dan Edit pada event After record edit

const harga = form.querySelector('[name="harga"]');
const quantity = form.querySelector('[name="quantity"]');
const discount = form.querySelector('[name="discount"]');
const total = form.querySelector('[name="total"]');
const totalgross = form.querySelector('[name="totalgross"]');

function toNumber(value) {
return Number(String(value || '0').replace(/,/g, '')) || 0;
}

function calculate() {
const hargaValue = toNumber(harga?.value);
const quantityValue = toNumber(quantity?.value);
const discountValue = toNumber(discount?.value);

const totalValue = hargaValue * quantityValue;
const totalgrossValue = totalValue * discountValue / 100;

if (total) {
total.value = totalValue;
}

if (totalgross) {
totalgross.value = totalgrossValue;
}
}

if (total) {
total.readOnly = true;
}

if (totalgross) {
totalgross.readOnly = true;
}

harga?.addEventListener('input', calculate);
quantity?.addEventListener('input', calculate);
discount?.addEventListener('input', calculate);

harga?.addEventListener('keyup', calculate);
quantity?.addEventListener('keyup', calculate);
discount?.addEventListener('keyup', calculate);

calculate();

Silahkan coba kembali

Punya pertanyaan serupa? Masuk untuk membuat topik baru.