# Update Kelas dengan Fase dan Kompetensi Keahlian

## Ringkasan
Sistem kelas telah diperbarui untuk menampilkan informasi dengan format yang lebih lengkap dan sesuai standar kurikulum:
- **Kelas / Kompetensi Keahlian**: Menampilkan tingkat kelas (X, XI, XII) dan nama jurusan
- **Fase**: Otomatis ditentukan berdasarkan tingkat kelas
  - Fase E: untuk Kelas X (tingkat 10)
  - Fase F: untuk Kelas XI dan XII (tingkat 11 dan 12)

## Perubahan yang Dilakukan

### 1. Model Kelas (`app/Models/Kelas.php`)
Ditambahkan method helper untuk memudahkan akses informasi:

```php
// Mendapatkan fase berdasarkan tingkat
public function getFaseAttribute(): string
{
    return $this->tingkat == '10' ? 'E' : 'F';
}

// Mendapatkan format romawi (X, XI, XII)
public function getTingkatRomawi(): string
{
    return match($this->tingkat) {
        '10' => 'X',
        '11' => 'XI',
        '12' => 'XII',
        default => $this->tingkat
    };
}

// Mendapatkan format "Kelas / Kompetensi Keahlian"
public function getKelasKompetensiDisplay(): string
{
    $tingkat = $this->getTingkatRomawi();
    $jurusan = $this->jurusan?->nama_jurusan ?? '-';
    return "{$tingkat} / {$jurusan}";
}

// Mendapatkan format lengkap dengan fase
public function getFullDisplayWithFase(): string
{
    return $this->getKelasKompetensiDisplay() . " (Fase {$this->fase})";
}
```

### 2. View Kelas Index (`resources/views/simaju/kelas/index.blade.php`)
- Header tabel diubah dari "Tingkat" dan "Jurusan" menjadi "Kelas / Komp. Keahlian" dan "Fase"
- Menampilkan fase dengan badge berwarna ungu
- Menggunakan method `getKelasKompetensiDisplay()` untuk format yang konsisten

### 3. View Kelas Show (`resources/views/simaju/kelas/show.blade.php`)
- Menampilkan "Kelas / Komp. Keahlian" dengan format yang jelas
- Menampilkan badge fase dengan warna yang konsisten
- Menampilkan informasi wali kelas, tahun ajaran, dan fase dalam satu baris

### 4. View Kelas Create (`resources/views/simaju/kelas/create.blade.php`)
- **Bug Fix**: Menambahkan `value="10"` yang hilang pada option Kelas X
- Setiap option tingkat kelas sekarang menampilkan fase-nya:
  - Kelas X (Fase E)
  - Kelas XI (Fase F)
  - Kelas XII (Fase F)

### 5. View Kelas Edit (`resources/views/simaju/kelas/edit.blade.php`)
- Update option tingkat untuk menampilkan fase
- Format yang sama dengan view create untuk konsistensi

### 6. View Rapor Print (`resources/views/simaju/rapor/print.blade.php`)
- Mengganti logika regex yang rumit dengan method model yang sederhana
- Kelas/Komp. Keahlian: Menggunakan `$rapor->siswa->kelas->getKelasKompetensiDisplay()`
- Fase: Menggunakan `$rapor->siswa->kelas->fase` (otomatis dari accessor)

## Cara Penggunaan

### Dalam View/Blade
```blade
{{-- Menampilkan "X / Nautika Kapal Niaga" --}}
{{ $kelas->getKelasKompetensiDisplay() }}

{{-- Menampilkan "E" atau "F" --}}
{{ $kelas->fase }}

{{-- Menampilkan "X / Nautika Kapal Niaga (Fase E)" --}}
{{ $kelas->getFullDisplayWithFase() }}

{{-- Menampilkan "X", "XI", atau "XII" --}}
{{ $kelas->getTingkatRomawi() }}
```

### Dalam Controller
```php
// Fase otomatis tersedia sebagai attribute
$fase = $kelas->fase; // "E" atau "F"

// Format display
$display = $kelas->getKelasKompetensiDisplay(); // "X / Nautika Kapal Niaga"
```

## Contoh Output

### Tabel Kelas
| Nama Kelas | Kelas / Komp. Keahlian | Fase | Wali | Siswa |
|------------|------------------------|------|------|-------|
| X NKN 1    | X / Nautika Kapal Niaga | [Fase E] | Pak Budi | 30/36 |
| XI NKN 1   | XI / Nautika Kapal Niaga | [Fase F] | Bu Ani | 32/36 |
| XII RPL 1  | XII / Rekayasa Perangkat Lunak | [Fase F] | Pak Dedi | 28/36 |

### Rapor
```
Kelas/Komp. Keahlian : X / Nautika Kapal Niaga
Fase                 : Fase E
Semester             : GANJIL
Tahun Pelajaran      : 2025/2026
```

## Daftar Jurusan yang Tersedia
Berdasarkan `Jurusan::getKodeOptions()`:
- NKN: Nautika Kapal Niaga
- NKPI: Nautika Kapal Penangkap Ikan
- RPL: Rekayasa Perangkat Lunak
- TKJ: Teknik Komputer dan Jaringan
- MM: Multimedia
- AK: Akuntansi
- AP: Administrasi Perkantoran
- BD: Bisnis Daring dan Pemasaran
- HTL: Perhotelan
- TB: Tata Boga
- TK: Tata Kecantikan
- UPW: Usaha Perjalanan Wisata
- DKV: Desain Komunikasi Visual

## Testing
Untuk memastikan sistem berfungsi dengan baik:

1. **Test Create Kelas**
   - Buat kelas baru dengan tingkat X, XI, dan XII
   - Pastikan fase otomatis muncul: E untuk kelas X, F untuk XI dan XII

2. **Test Index Kelas**
   - Lihat daftar kelas
   - Pastikan kolom "Kelas / Komp. Keahlian" menampilkan format yang benar
   - Pastikan badge Fase muncul dengan warna yang sesuai

3. **Test Detail Kelas**
   - Buka detail kelas
   - Pastikan informasi fase dan kompetensi keahlian tampil lengkap

4. **Test Rapor**
   - Generate rapor untuk siswa dari berbagai tingkat
   - Pastikan informasi kelas dan fase tampil dengan benar di rapor

## Catatan Penting
- Tidak ada perubahan database diperlukan (menggunakan accessor)
- Semua perubahan backward compatible
- Method lama masih dapat digunakan (`$kelas->tingkat`, `$kelas->jurusan->nama_jurusan`)
- Fase dihitung otomatis berdasarkan tingkat, tidak perlu disimpan di database

## Update
- **Tanggal**: 3 Agustus 2026
- **Versi**: 1.0
- **Developer**: Sistem SIMAJU
