preprocessing = $preprocessing; } public function index() { $data = DataTraining::all(); return view('training.index', compact('data')); } public function create() { return view('training.create'); } public function store(Request $request) { // 1. Tambahkan validasi untuk mapel_favorit $request->validate([ 'nilai' => 'required|numeric', 'mapel_favorit' => 'required|string', // [DITAMBAHKAN] 'minat' => 'required|string', 'cita_cita' => 'required|string', 'preferensi_studi' => 'required|string', 'jurusan' => 'required|string' ]); // 2. Ambil nilai input asli dari form $nilaiRaw = $request->input('nilai'); $mapelRaw = $request->input('mapel_favorit'); // [DITAMBAHKAN] $minatRaw = $request->input('minat'); $citaRaw = $request->input('cita_cita'); $studiRaw = $request->input('preferensi_studi'); $jurusan = $request->input('jurusan'); // 3. Konversi menggunakan PreprocessingService yang sudah dipetakan $nilaiKategori = $this->preprocessing->kategoriNilai($nilaiRaw); $minatKategori = $this->preprocessing->kategoriMinat($minatRaw); $citaKategori = $this->preprocessing->kategoriCitaCita($citaRaw); $studiKategori = $this->preprocessing->kategoriPreferensi($studiRaw); // 4. Simpan data teks asli (_raw) dan data hasil konversi ke database DataTraining::create([ 'nilai_raw' => $nilaiRaw, 'mapel_favorit_raw' => $mapelRaw, // [DITAMBAHKAN] 'minat_raw' => $minatRaw, 'cita_cita_raw' => $citaRaw, 'preferensi_studi_raw' => $studiRaw, 'nilai' => $nilaiKategori, 'mapel_favorit' => $mapelRaw, // [DITAMBAHKAN] jika berupa pilihan dropdown langsung 'minat' => $minatKategori, 'cita_cita' => $citaKategori, 'preferensi_studi' => $studiKategori, 'jurusan' => $jurusan ]); return redirect()->route('training.index')->with('success', 'Data Latih Berhasil Dikonversi & Disimpan.'); } public function edit(string $id) { $data = DataTraining::findOrFail($id); return view('training.edit', compact('data')); } public function update(Request $request, string $id) { // 1. Tambahkan validasi untuk mapel_favorit $request->validate([ 'nilai' => 'required|numeric', 'mapel_favorit' => 'required|string', // [DITAMBAHKAN] 'minat' => 'required|string', 'cita_cita' => 'required|string', 'preferensi_studi' => 'required|string', 'jurusan' => 'required|string' ]); $data = DataTraining::findOrFail($id); // 2. Update baik data mentah (_raw) maupun data hasil konversinya $data->update([ 'nilai_raw' => $request->nilai, 'mapel_favorit_raw' => $request->mapel_favorit, // [DITAMBAHKAN] 'minat_raw' => $request->minat, 'cita_cita_raw' => $request->cita_cita, 'preferensi_studi_raw' => $request->preferensi_studi, 'nilai' => $this->preprocessing->kategoriNilai($request->nilai), 'mapel_favorit' => $request->mapel_favorit, // [DITAMBAHKAN] 'minat' => $this->preprocessing->kategoriMinat($request->minat), 'cita_cita' => $this->preprocessing->kategoriCitaCita($request->cita_cita), 'preferensi_studi' => $this->preprocessing->kategoriPreferensi($request->preferensi_studi), 'jurusan' => $request->jurusan ]); return redirect('/training')->with('success', 'Data Latih Berhasil Diperbarui.'); } public function destroy(string $id) { DataTraining::destroy($id); return redirect('/training')->with('success', 'Data Latih Berhasil Dihapus.'); } }