
Belajar Flask - Bagian 9
Mini Project: Daftar Nilai Sederhana
oleh: Suryo Adhy Chandra, ST
Project ini menampilkan daftar nilai siswa dalam bentuk tabel, lengkap dengan nilai rata-rata dari semua siswa yang tercatat.
1. Fitur yang akan dibuat
- Form untuk menambah nama siswa beserta nilainya
- Menampilkan seluruh data dalam bentuk tabel
- Menghitung otomatis nilai rata-rata
2. Kode app.py
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
daftar_nilai = [
{"nama": "Budi", "nilai": 90},
{"nama": "Sinta", "nilai": 85},
{"nama": "Andi", "nilai": 78},
]
@app.route("/", methods=["GET", "POST"])
def index():
if request.method == "POST":
nama = request.form["nama"]
nilai = int(request.form["nilai"])
daftar_nilai.append({"nama": nama, "nilai": nilai})
return redirect("/")
total = 0
for data in daftar_nilai:
total = total + data["nilai"]
rata_rata = total / len(daftar_nilai)
return render_template("nilai.html", daftar_nilai=daftar_nilai, rata_rata=rata_rata)
if __name__ == "__main__":
app.run(debug=True)
int(request.form["nilai"]) dipakai karena data yang dikirim dari form selalu berupa
teks. Supaya bisa dijumlahkan sebagai angka, teks tersebut harus diubah dulu menjadi
int.
3. Template templates/nilai.html
<h1>Daftar Nilai Siswa</h1>
<form method="POST">
<input type="text" name="nama" placeholder="Nama siswa" required>
<input type="number" name="nilai" placeholder="Nilai" required>
<button type="submit">Tambah</button>
</form>
<table border="1">
<tr><th>Nama</th><th>Nilai</th></tr>
{% for data in daftar_nilai %}
<tr>
<td>{{ data.nama }}</td>
<td>{{ data.nilai }}</td>
</tr>
{% endfor %}
</table>
<p>Rata-rata nilai: {{ rata_rata }}</p>
4. Coba jalankan
Jalankan dengan python app.py, lalu buka http://127.0.0.1:5000/.
Tambahkan beberapa nilai siswa baru dan lihat perubahan rata-ratanya.