2.5 KiB
2.5 KiB
PERUBAHAN SISTEM TERAKHIR TERBIT
Masalah yang Diperbaiki
- Menghapus kolom
rank_order
yang statis dan akan bermasalah ketika ada data baru - Mengubah sistem ordering menggunakan
tanggal_terbit
yang lebih dinamis dan logis
Perubahan Yang Dilakukan
1. Database Migration (2025_07_14_033547_create_terakhir_terbit_table.php)
- ❌ Dihapus:
rank_order
column - ❌ Dihapus: unique constraint berdasarkan rank_order
- ✅ Ditambah: index pada
kategori
dantanggal_terbit
- ✅ Ditambah: index pada
kategori
dansync_date
2. Model TerakhirTerbit (app/Models/TerakhirTerbit.php)
- ❌ Dihapus:
rank_order
dari fillable dan casts - ✅ Diubah: Query method
getLatestByKategori()
menggunakanORDER BY tanggal_terbit DESC
+LIMIT 5
- ✅ Diubah: Query method
getByKategoriAndDate()
menggunakanORDER BY tanggal_terbit DESC
+LIMIT 5
3. API Service (app/Services/PerizinanApiService.php)
- ❌ Dihapus: Logic penambahan
rank_order
dalamsyncTerakhirTerbitToDatabase()
- ✅ Simplified: Data disimpan tanpa manual ranking, biarkan database yang mengurutkan
4. Dashboard Helper (app/Helpers/DashboardHelper.php)
- ✅ Diubah: Generate
rank_order
secara dinamis hanya untuk display (tidak disimpan di DB) - ✅ Data tetap diurutkan berdasarkan
tanggal_terbit
terbaru dari database
Keuntungan Sistem Baru
✅ Dinamis
- Data selalu diurutkan berdasarkan tanggal terbit terbaru
- Tidak ada masalah ketika ada data baru
✅ Consistent
- Urutan data konsisten berdasarkan logical field (
tanggal_terbit
) - Tidak bergantung pada urutan API response
✅ Scalable
- Bisa handle unlimited data tanpa konflik ranking
- Index database optimal untuk performa query
✅ Maintainable
- Code lebih sederhana tanpa logic manual ranking
- Ranking hanya untuk display purpose
Contoh Output Sistem Baru
PERTEK - Top 5 Terakhir Terbit:
#1: SUMANTO TJAHAJA (02 Jul 2025) ← Terbaru
#2: Eka Ferdiyus Supatmo (16 Jun 2025) ← Kedua terbaru
#3: Adrian Mara Maulana (13 Jun 2025) ← Ketiga terbaru
#4: AHMAD SYARIF (04 Jun 2025) ← Keempat terbaru
#5: drg. WWM Diah Arimbi (28 May 2025) ← Kelima terbaru
Migration Command
php artisan migrate:fresh # ← Sudah dijalankan
php artisan perizinan:sync --all # ← Test dengan data baru
Status: ✅ COMPLETED
Sistem terakhir terbit sekarang menggunakan ordering dinamis berdasarkan tanggal terbit terbaru.