aplikasi simulasi penggunaan listrik

Aplikasi Simulasi Penggunaan Listrik

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>
JavaScript

File 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;
}
JavaScript

File 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);
JavaScript

See the Pen Simulasi Penggunaan Listrik by WebbizID (@De-Orchids) on CodePen.

Cara Menggunakan

  1. Input Perangkat: Masukkan nama perangkat, daya dalam watt, dan durasi pemakaian.
  2. Tambahkan Perangkat: Klik tombol “Tambahkan Perangkat” untuk menambahkannya ke daftar.
  3. 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

Your email address will not be published. Required fields are marked *