get(); return view('guru.soal_pilgan.index', compact('ujian', 'soalPilgan')); } // Menampilkan form tambah soal public function create($ujian_id) { $ujian = Ujian::findOrFail($ujian_id); return view('guru.soal_pilgan.create', compact('ujian')); } // Menyimpan soal baru public function store(Request $request, $ujian_id) { $data = $request->validate([ 'pertanyaan' => 'required|string', 'opsi_a' => 'required|string', 'opsi_b' => 'required|string', 'opsi_c' => 'required|string', 'opsi_d' => 'required|string', 'jawaban_benar' => 'required|in:a,b,c,d', ]); // Menyimpan soal SoalPilgan::create(array_merge($data, ['ujian_id' => $ujian_id])); return redirect() ->route('guru.ujian.soal_pg', $ujian_id) ->with('success', 'Soal PG berhasil ditambahkan.'); } // Menampilkan form edit soal public function edit($ujian_id, $soal_id) { // Mencari soal berdasarkan ID soal dan ID ujian $soal = SoalPilgan::where('ujian_id', $ujian_id)->findOrFail($soal_id); return view('guru.soal_pilgan.edit', compact('soal', 'ujian_id')); } // Memperbarui soal public function update(Request $request, $ujian_id, $soal_id) { // Mencari soal berdasarkan ID soal dan ID ujian $soal = SoalPilgan::where('ujian_id', $ujian_id)->findOrFail($soal_id); // Validasi input $data = $request->validate([ 'pertanyaan' => 'required|string', 'opsi_a' => 'required|string', 'opsi_b' => 'required|string', 'opsi_c' => 'required|string', 'opsi_d' => 'required|string', 'jawaban_benar' => 'required|in:a,b,c,d', ]); // Memperbarui soal $soal->update($data); return redirect() ->route('guru.ujian.soal_pg', $ujian_id) ->with('success', 'Soal PG berhasil diperbarui.'); } // Menghapus soal public function destroy($ujian_id, $soal_id) { // Mencari soal berdasarkan ID soal dan ID ujian $soal = SoalPilgan::where('ujian_id', $ujian_id)->findOrFail($soal_id); // Menghapus soal $soal->delete(); return redirect() ->route('guru.ujian.soal_pg', $ujian_id) ->with('success', 'Soal PG berhasil dihapus.'); } // Export Excel public function exportExcel($ujian_id) { $fileName = 'soal_pilgan_ujian_'.$ujian_id.'.xlsx'; return Excel::download(new SoalPilganExport($ujian_id), $fileName); } // Import Excel (form upload) public function importExcel(Request $request, $ujian_id) { $request->validate([ 'file' => 'required|file|mimes:xlsx,xls,csv', ]); Excel::import(new SoalPilganImport($ujian_id), $request->file('file')); return redirect() ->route('guru.ujian.soal_pg', $ujian_id) ->with('success', 'Soal PG berhasil diimport dari Excel.'); } }