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