import tkinter as tk
from tkinter import messagebox
from tkinter import simpledialog
def hitung_nilai():
jawaban_benar = {"1": "A", "2": "B", "3": "C", "4": "D", "5": "A"}
skor = 0
for nomor, jawaban in jawaban_benar.items():
if jawaban_peserta.get(nomor, "") == jawaban:
skor += 20
messagebox.showinfo("Hasil Ujian", f"Skor Anda: {skor}")
hasil_label.config(text=f"Skor Anda: {skor}")
cetak_button.config(state=tk.NORMAL)
def simpan_jawaban(nomor, jawaban):
jawaban_peserta[nomor] = jawaban
def cetak_hasil():
hasil = f"Nama: {nama_peserta}\nSkor: {hasil_label.cget('text').split(': ')[1]}"
with open("hasil_ujian.txt", "w") as file:
file.write(hasil)
messagebox.showinfo("Cetak Hasil", "Hasil ujian telah dicetak dan disimpan sebagai 'hasil_ujian.txt'")
root = tk.Tk()
root.title("Aplikasi Ujian")
nama_peserta = simpledialog.askstring("Nama Peserta", "Masukkan nama Anda:")
jawaban_peserta = {}
pertanyaan = {
"1": "Apa ibukota Indonesia?\nA. Jakarta\nB. Surabaya\nC. Bandung\nD. Medan",
"2": "Berapa hasil dari 2 + 3?\nA. 4\nB. 5\nC. 6\nD. 7",
"3": "Siapa penemu lampu?\nA. Newton\nB. Galileo\nC. Edison\nD. Einstein",
"4": "Apa warna bendera Indonesia?\nA. Biru-Putih\nB. Hijau-Kuning\nC. Merah-Putih\nD. Hitam-Putih",
"5": "Hewan yang bisa terbang adalah?\nA. Burung\nB. Ikan\nC. Kucing\nD. Gajah"
}
for nomor, teks in pertanyaan.items():
frame = tk.Frame(root)
frame.pack(pady=5)
label = tk.Label(frame, text=teks, justify=tk.LEFT)
label.pack(anchor="w")
for pilihan in ["A", "B", "C", "D"]:
rb = tk.Radiobutton(frame, text=pilihan, variable=tk.StringVar(value=""), value=pilihan, command=lambda n=nomor, p=pilihan: simpan_jawaban(n, p))
rb.pack(anchor="w")
submit_button = tk.Button(root, text="Kirim Jawaban", command=hitung_nilai)
submit_button.pack(pady=10)
hasil_label = tk.Label(root, text="")
hasil_label.pack()
cetak_button = tk.Button(root, text="Cetak Hasil", command=cetak_hasil, state=tk.DISABLED)
cetak_button.pack(pady=10)
root.mainloop()