Upload files to "/"

This commit is contained in:
202410715039 ADE KURNIA 2025-05-11 22:43:10 +07:00
commit fc8f48b19b
2 changed files with 75 additions and 0 deletions

41
README.md Normal file
View File

@ -0,0 +1,41 @@
# Program Validasi Nilai Pilihan Ganda
Program ini digunakan untuk menentukan apakah suatu nilai hasil ujian pilihan ganda mungkin didapatkan berdasarkan aturan penilaian yang diberikan.
## Penjelasan Singkat
Pada ujian pilihan ganda, setiap jawaban benar mendapatkan nilai positif (misalnya 5 poin), jawaban salah mengurangi nilai (misalnya -2 poin), dan tidak dijawab tidak menambah atau mengurangi nilai. Program ini mengecek apakah nilai akhir yang diperoleh mungkin dicapai dengan kombinasi jumlah soal tertentu.
## Aturan
- Input berupa 4 angka: nilai akhir, jumlah soal, skor jika benar, pengurangan jika salah.
- Program mencoba semua kombinasi kemungkinan jumlah jawaban benar dan salah.
- Hasil program: **YA** jika nilai mungkin dicapai, **TIDAK** jika tidak mungkin.
## Contoh
Input:
```
80 10 5 1
90 100 1 1
99 10 5 5
```
Output:
```
h#1: TIDAK
h#2: YA
h#3: TIDAK
```
## Kesimpulan
Program ini efektif untuk mengecek validitas hasil ujian berdasarkan aturan skor. Hal ini bisa digunakan sebagai alat bantu analisis atau verifikasi skor dalam sistem penilaian otomatis.
## Contoh Penerapan
- Sistem ujian berbasis komputer untuk validasi hasil otomatis.
- Audit skor dalam sistem pendidikan.
- Analisis kemungkinan penipuan dalam ujian berdasarkan kombinasi nilai.

34
nilai_pilihan_ganda.py Normal file
View File

@ -0,0 +1,34 @@
def is_score_possible(score, total_questions, score_true, score_false):
"""Cek apakah skor bisa didapatkan dari kombinasi benar, salah, kosong."""
for benar in range(total_questions + 1):
for salah in range(total_questions - benar + 1):
kosong = total_questions - benar - salah
total_score = benar * score_true + salah * (-score_false)
if total_score == score:
return "YA"
return "TIDAK"
def process_data(lines):
results = []
for line in lines:
nums = list(map(int, line.strip().split()))
if len(nums) != 4:
results.append("FORMAT SALAH")
continue
score, total, benar, salah = nums
hasil = is_score_possible(score, total, benar, salah)
results.append(hasil)
return results
# Contoh input
data_input = [
"80 10 5 1",
"90 100 1 1",
"99 10 5 5",
]
# Proses dan cetak hasil
hasil = process_data(data_input)
for i, res in enumerate(hasil, 1):
print(f"h#{i}: {res}")