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()