CoolFace
Datasetpublic

erzanugroho/soal-ujian-sd-kurikulum-merdeka

Soal Ujian SD Kurikulum Merdeka (Kelas 1–6) Dataset soal ujian Sekolah Dasar (SD) berbahasa Indonesia, dibangun mengikuti Kurikulum Merdeka untuk Kelas 1 sampai Kelas 6 (Fase A, B, dan C). Setiap entri berupa satu lembar soal (worksheet) berisi 5 soal dengan komposisi sesuai jenis ujiannya. 3.000 lembar soal (worksheets) 15.000 soal total 5 mata pelajaran × 6 kelas × 5 jenis ujian, terdistribusi merata Struktur Dataset Dataset punya dua konfigurasi:… See the full description on the dataset page: https://huggingface.co/datasets/erzanugroho/soal-ujian-sd-kurikulum-merdeka.

sourceHugging Facecc-by-4.0updated 4mo agoView on Hugging Face
0likes154downloads
Dataset Card

Soal Ujian SD Kurikulum Merdeka (Kelas 1–6)

Dataset soal ujian Sekolah Dasar (SD) berbahasa Indonesia, dibangun mengikuti Kurikulum Merdeka untuk Kelas 1 sampai Kelas 6 (Fase A, B, dan C). Setiap entri berupa satu lembar soal (worksheet) berisi 5 soal dengan komposisi sesuai jenis ujiannya.

  • —3.000 lembar soal (worksheets)
  • —15.000 soal total
  • —5 mata pelajaran × 6 kelas × 5 jenis ujian, terdistribusi merata

Struktur Dataset

Dataset punya dua konfigurasi:

1. worksheets (default — 3.000 baris)

Satu baris = satu lembar soal lengkap.

kolomtipeketerangan
idstringid unik lembar, mis. pilot_0042
subjectstringkode mapel: matematika, bahasa_indonesia, ipas, pendidikan_pancasila, bahasa_inggris
subject_labelstringnama mapel siap tampil
gradeintkelas 1–6
exam_typestringlatihan, formatif, sts, sas, tka
difficultystringmudah / sedang / sulit / campuran
topicstringtopik utama lembar
num_questionsintjumlah soal (selalu 5)
questions_jsonstringJSON array berisi 5 soal (lihat skema di bawah)

2. questions (15.000 baris)

Satu baris = satu soal (sudah di-flatten, enak untuk filter/analisis).

kolomtipeketerangan
worksheet_idstringid lembar asal
subject / subject_label / grade / exam_type—sama seperti worksheet
question_numberintnomor soal 1–5
typestringmcq_single, mcq_multi, true_false
textstringteks soal
topicstringtopik soal
difficultystringtingkat kesulitan soal
cognitive_levelstringlevel kognitif Bloom (C1–C4)
option_a–option_dstringopsi (null untuk true_false)
correct_answerstringmcq_single: satu huruf (a–d); mcq_multi: huruf dipisah koma (mis. a,c)
statements_jsonstringtrue_false: JSON array [{text, answer}] dengan answer B/S

Skema Soal (questions_json)

json
{
  "number": 1,
  "type": "mcq_single",
  "text": "FPB dari 12 dan 18 adalah...",
  "topic": "KPK dan FPB",
  "difficulty": "sedang",
  "cognitive_level": "C2",
  "option_a": "2", "option_b": "3", "option_c": "6", "option_d": "12",
  "correct_answer": "c",
  "statements": null
}

Tipe soal:

  • —`mcq_single` — pilihan ganda, 1 jawaban benar (correct_answer).
  • —`mcq_multi` — pilihan ganda kompleks, 2+ jawaban benar (correct_answers).
  • —`true_false` — beberapa pernyataan benar/salah (statements).

Komposisi per Jenis Ujian

jenismcq_singlemcq_multitrue_false
latihan500
formatif311
sts / sas / tka311

Distribusi

Per kelas (masing-masing 500 lembar):

kelas 1: 500   kelas 2: 500   kelas 3: 500
kelas 4: 500   kelas 5: 500   kelas 6: 500

Per mata pelajaran (masing-masing 600 lembar):

Matematika  Bahasa Indonesia  IPAS  Pendidikan Pancasila  Bahasa Inggris
   600            600           600          600                600

Per jenis ujian (masing-masing 600 lembar):

latihan  formatif  sts  sas  tka
  600      600      600  600  600

Per tipe soal (15.000 soal):

mcq_single: 11.400    mcq_multi: 1.800    true_false: 1.800

Pemetaan Fase Kurikulum Merdeka

FaseKelasLevel kognitif dominan
A1–2C1–C2
B3–4C1–C3
C5–6C2–C4

Cara Pakai

python
from datasets import load_dataset

# Lembar soal lengkap
ws = load_dataset("erzanugroho/soal-ujian-sd-kurikulum-merdeka", "worksheets", split="train")
print(ws[0]["subject_label"], ws[0]["grade"], ws[0]["exam_type"])

import json
soal = json.loads(ws[0]["questions_json"])
print(soal[0]["text"], "->", soal[0]["correct_answer"])

# Per-soal (flat)
q = load_dataset("erzanugroho/soal-ujian-sd-kurikulum-merdeka", "questions", split="train")
mtk_k6 = q.filter(lambda r: r["subject"] == "matematika" and r["grade"] == 6)
print(len(mtk_k6), "soal Matematika kelas 6")

Pembuatan & Validasi

Dataset di-generate dengan LLM lalu divalidasi otomatis secara ketat. Lembar yang lolos memenuhi semua aturan berikut:

  • —Skema JSON valid, jumlah & penomoran soal benar.
  • —Komposisi tipe soal sesuai jenis ujian.
  • —Topik cocok dengan daftar topik kelas tersebut.
  • —Bahasa konsisten: mapel non-Inggris wajib Bahasa Indonesia; Bahasa Inggris wajib English.
  • —cognitive_level sesuai fase kelas.
  • —Dedup tingkat-lembar: tidak ada dua lembar yang identik.

Batasan

  • —Konten dihasilkan model; perlu review guru sebelum dipakai di kelas nyata.
  • —Validasi bersifat struktural/heuristik, bukan jaminan kebenaran fakta tiap soal.
  • —Topik per kelas masih terbatas (beberapa topik inti per mapel/kelas).

Lisensi

Dirilis di bawah CC BY 4.0 — bebas dipakai dan dimodifikasi dengan atribusi.

Sitasi

bibtex
@misc{soal_ujian_sd_kurmer_2026,
  title  = {Soal Ujian SD Kurikulum Merdeka (Kelas 1-6)},
  author = {Erza Nugroho},
  year   = {2026},
  url    = {https://huggingface.co/datasets/erzanugroho/soal-ujian-sd-kurikulum-merdeka}
}