Upload files to "/"
This commit is contained in:
commit
fc8f48b19b
41
README.md
Normal file
41
README.md
Normal 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
34
nilai_pilihan_ganda.py
Normal 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}")
|
Loading…
x
Reference in New Issue
Block a user