Berikut adalah aplikasi simulasi penggunaan listrik yang memungkinkan pengguna untuk memasukkan perangkat dan konsumsi daya (watt) secara manual.
Kode HTML, CSS, dan JavaScript
File index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Simulasi Penggunaan Listrik</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<h1>Simulasi Penggunaan Listrik</h1>
<form id="device-form">
<div class="form-group">
<label for="deviceName">Nama Perangkat:</label>
<input type="text" id="deviceName" placeholder="Misalnya: Lampu" required>
</div>
<div class="form-group">
<label for="devicePower">Daya Perangkat (Watt):</label>
<input type="number" id="devicePower" min="1" placeholder="Misalnya: 60" required>
</div>
<div class="form-group">
<label for="hoursUsed">Durasi Pemakaian (jam):</label>
<input type="number" id="hoursUsed" min="1" placeholder="Misalnya: 5" required>
</div>
<button type="submit">Tambahkan Perangkat</button>
</form>
<div class="result">
<h2>Daftar Perangkat:</h2>
<ul id="deviceList"></ul>
<h2>Total Konsumsi:</h2>
<p id="totalOutput">Belum ada data perangkat.</p>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
JavaScriptFile styles.css
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f9;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
width: 400px;
text-align: center;
}
h1 {
font-size: 24px;
margin-bottom: 20px;
}
.form-group {
margin-bottom: 15px;
text-align: left;
}
label {
font-weight: bold;
}
input {
width: 100%;
padding: 8px;
margin-top: 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
button {
background: #007bff;
color: white;
border: none;
padding: 10px;
border-radius: 4px;
cursor: pointer;
width: 100%;
}
button:hover {
background: #0056b3;
}
.result {
margin-top: 20px;
}
ul {
list-style-type: none;
padding: 0;
}
ul li {
margin: 5px 0;
}
.result p {
font-size: 18px;
color: #333;
}
JavaScriptFile script.js
let devices = [];
function updateTotal() {
const totalConsumption = devices.reduce((total, device) => {
return total + (device.power * device.hours) / 1000;
}, 0);
const totalCost = totalConsumption * 1444.70; // Tarif listrik per kWh
document.getElementById("totalOutput").textContent =
`Total Konsumsi: ${totalConsumption.toFixed(2)} kWh, Biaya: Rp ${totalCost.toFixed(2)}`;
}
function addDevice(event) {
event.preventDefault();
const name = document.getElementById("deviceName").value;
const power = parseFloat(document.getElementById("devicePower").value);
const hours = parseFloat(document.getElementById("hoursUsed").value);
if (!name || isNaN(power) || isNaN(hours)) {
alert("Harap masukkan data yang valid.");
return;
}
const device = { name, power, hours };
devices.push(device);
const deviceList = document.getElementById("deviceList");
const listItem = document.createElement("li");
listItem.textContent = `${name} - ${power} Watt, ${hours} jam`;
deviceList.appendChild(listItem);
document.getElementById("device-form").reset();
updateTotal();
}
document.getElementById("device-form").addEventListener("submit", addDevice);
JavaScriptSee the Pen Simulasi Penggunaan Listrik by WebbizID (@De-Orchids) on CodePen.
Cara Menggunakan
- Input Perangkat: Masukkan nama perangkat, daya dalam watt, dan durasi pemakaian.
- Tambahkan Perangkat: Klik tombol “Tambahkan Perangkat” untuk menambahkannya ke daftar.
- Lihat Total: Daftar perangkat akan ditampilkan, termasuk total konsumsi listrik dan perkiraan biaya.
Fitur Utama
- Input Manual: Pengguna dapat menambahkan perangkat dengan nama dan daya.
- Dinamis: Daftar perangkat dan total konsumsi diperbarui secara otomatis.
- Biaya Listrik: Menghitung biaya berdasarkan tarif listrik per kWh.
Aplikasi ini dapat dikembangkan lebih lanjut dengan menambahkan opsi pengeditan perangkat atau penyimpanan data menggunakan localStorage
.
Leave a Reply