perling/CHANGES_TERAKHIR_TERBIT.md

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 dan tanggal_terbit
  • Ditambah: index pada kategori dan sync_date

2. Model TerakhirTerbit (app/Models/TerakhirTerbit.php)

  • Dihapus: rank_order dari fillable dan casts
  • Diubah: Query method getLatestByKategori() menggunakan ORDER BY tanggal_terbit DESC + LIMIT 5
  • Diubah: Query method getByKategoriAndDate() menggunakan ORDER BY tanggal_terbit DESC + LIMIT 5

3. API Service (app/Services/PerizinanApiService.php)

  • Dihapus: Logic penambahan rank_order dalam syncTerakhirTerbitToDatabase()
  • 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.