← Kembali ke Portofolio
Studi Kasus Proyek — Pengembangan Web

Dari Joomla yang berat, ke sistem custom yang ringan dan terukur.

Pembangunan ulang penuh website katalog benih pertanian mutiarabumi.com — meninggalkan CMS generik demi kode PHP yang dibangun presisi mengikuti alur bisnisnya sendiri, dilanjutkan audit SEO teknis, penguatan keamanan panel admin, dan rekayasa ulang alur upload foto.

Klien
PT. Prabu Agro Mandiri
Industri
Benih Pertanian (B2B)
Sebelumnya
Joomla CMS
Sesudah
PHP & MySQL Custom
01 — Diagnosis

Situs lama membebani dirinya sendiri.

Joomla dirancang untuk melayani segala jenis website sekaligus — dari toko online hingga forum — dalam satu paket instalasi. Untuk katalog benih dengan kebutuhan sangat spesifik, ini berarti banyak beban yang tidak pernah dipakai: kerangka inti CMS, modul, dan plugin tetap dimuat penuh di setiap kunjungan, sementara struktur data generiknya sulit menampung spesifikasi produk pertanian (umur panen, bentuk buah, warna) tanpa workaround.

Laporan Diagnosis Situs Joomla → Custom
Sebelum
Sesudah
Arsitektur
CMS generik, beban penuh tiap request
PHP custom, hanya fitur yang dipakai
Struktur data
Dipaksakan ke skema generik
Dirancang mengikuti alur bisnis benih
Kontrol SEO
Bergantung plugin pihak ketiga
Ditulis & diaudit langsung di kode
Permukaan keamanan
Banyak ekstensi luar tak terpantau
Kode sendiri, celah bisa ditutup langsung
02 — Yang Dikerjakan

Empat lini pekerjaan, satu kode dasar.

Pembangunan ulang bukan cuma "pindah CMS" — diikuti audit teknis lanjutan agar situs baru benar-benar dioptimalkan, bukan sekadar berpindah rumah.

SEO Teknis

Memperbaiki cara Google membaca situs

Ditemukan bug canonical kritis: setiap halaman produk memberi sinyal ke Google bahwa dirinya "duplikat" dari homepage — berisiko membuat seluruh katalog tidak terindeks.

  • Canonical tag & struktur URL diperbaiki (produk & kategori berbasis slug)
  • Sitemap statis (4 halaman) diganti sistem dinamis yang membaca langsung dari database
  • Data terstruktur (schema.org Product) disesuaikan agar valid di Google Search Console
  • Penyeragaman domain (paksa HTTPS + non-www) untuk mencegah duplicate content
Keamanan

Mengaudit seluruh panel admin

Audit menyeluruh terhadap 20 halaman admin menemukan pola sistemik: sejumlah proses simpan/hapus data berjalan sebelum sesi login diperiksa.

  • 1 file admin yang bocor tanpa proteksi di folder publik dihapus
  • 10 halaman (tambah/ubah/hapus data) diperbaiki agar validasi sesi berjalan lebih dulu
  • Baris kode debug yang membocorkan info server ke publik dibersihkan
Rekayasa Fitur

Alur upload foto yang gagal diam-diam

Foto dari kamera HP gagal tersimpan tanpa pesan kesalahan — akar masalahnya batas ukuran upload server dan izin folder yang keliru.

  • Kompresi gambar sisi-klien (Canvas API) sebelum unggah, tuntas di akar masalah
  • Pola input ganda kamera/galeri dibangun dari nol, dipasang di 10 formulir admin
  • Pesan kegagalan eksplisit menggantikan kegagalan senyap
Dukungan Produksi

Diagnosis langsung di lingkungan live

Sebagian isu hanya muncul setelah rilis — ditelusuri langsung dari laporan lapangan hingga akar penyebabnya.

  • Path relatif yang rusak akibat struktur URL baru ditemukan & diperbaiki
  • Izin folder server yang tiba-tiba read-only dilacak hingga akar penyebab
  • Validasi data terstruktur diverifikasi ulang langsung di Search Console
PHP MySQL JavaScript · Canvas API Apache · mod_rewrite Schema.org Google Search Console Technical SEO
03 — Hasil

Terverifikasi, bukan diasumsikan.

Setiap perbaikan dikonfirmasi langsung di lingkungan produksi dan Google Search Console — bukan cuma "seharusnya bekerja".

79
halaman produk & kategori ditemukan Google lewat sitemap dinamis — dari sebelumnya hanya 4 URL statis
10
halaman admin diperbaiki agar validasi login berjalan sebelum data diproses
0
error kritis tersisa di validasi Data Terstruktur pada Google Search Console
Catatan jujur: laporan ini tidak menyertakan angka benchmark kecepatan (skor PageSpeed dsb.) dibanding versi Joomla lama, karena situs lama sudah tidak aktif untuk dibandingkan langsung. Klaim di atas dibatasi pada yang benar-benar bisa diverifikasi.