











{"author":"Faiq Najib Al-Aziz","body":"\nIni episode terakhir seri _frontend_. Seperti [seri sebelah](/writing/2026/hijrah-backend-09/), saya tidak mau menulis seolah semua masalah sudah beres. Saya cuma ingin mencatat apa yang selesai, apa yang belum disentuh, dan apa yang saya pelajari setelah ikut mengurus kedua sisi gedung ini.\n\n## Cek Inventaris Dulu\n\nEmpat episode lalu, saya mulai membongkar gedung _frontend_ warisan. Port-nya sekarang selesai, jadi saya catat dulu isinya:\n\n- **76 halaman dipindahkan dan tetap hidup.** Port 1:1 tanpa meninggalkan satu halaman pun. Semua _link_ internal antarhalaman masih menuju ke tempat yang benar.\n- **Dua _library_ UI tetap dipakai.** Ada 101 _file_ untuk yang mayoritas dan 13 untuk pemegang komponen kalender. Seperti sebelumnya, tidak ada _file_ yang memakai keduanya.\n- **194 bekas luka tipe sudah terukur.**[^1] Ada 194 jaring pengaman kecil yang masih berupa angsuran, belum menjadi arsitektur.\n- **Tiga era _styling_ masih ada**,[^2] satu _backup_ sudah dipensiunkan, dan _standardisasi_ menunggu giliran.\n\nAngka-angka ini bukan tanda gedungnya sudah rapi. **Pindahan selesai, renovasi belum.** Saya sempat mencampuradukkan dua hal itu, padahal jelas beda pekerjaan.\n\n## Backend dan Frontend, Sama-sama Warisan\n\nKalau saya lihat lagi dua seri ini, pola kerjanya mirip meski masalahnya beda.\n\nDi _backend_, kami menemukan _query_ yang tidak sargable dan _prepared statement_ yang terputus di _tunnel_. Di _frontend_, ada _field_ dengan tipe yang tidak sesuai dan dua _library_ yang dipisahkan oleh garis demarkasi. Cara menanganinya serupa di kedua sisi: ukur dulu, pindahkan dengan setia, catat yang dibatalkan, dan jangan memperbaiki sambil memindahkan.\n\nDua sistem ini juga tumbuh karena waktu dan keadaan darurat, bukan karena seseorang duduk merancang arsitektur sempurna. Jadi saya susah menyalahkan _spaghetti_-nya. Kode itu tetap melayani pengguna meski orang yang merawatnya berganti.\n\n## Yang Saya Catat untuk Nanti\n\nBiar tidak semuanya menumpuk di kepala, saya pisahkan catatannya seperti ini:\n\nMulai sekarang, saya jaga batas antarlibrary supaya tidak ada _file_ campuran, kontrak tipe di pintu masuk, dan kebiasaan mencatat warisan yang kami bawa.\n\n_TypeScript_, penamaan lintas era, dan _refactor_ struktur internal masih menunggu giliran. Saya ingin melihat data pemakaian dulu sebelum mengubah struktur.\n\nMigrasi _state management_ batal, dan saya tidak menyesal. Rencana yang tidak jadi juga perlu dicatat, bukan disembunyikan seolah tidak pernah ada.\n\n\u003e Setelah ikut berjibaku merawat _web app_ v3 ini, saya malah makin merasa seperti turis. Hati masih protes, tapi _production_ tetap harus jalan.\n\nDi [episode pertama](/writing/2026/hijrah-frontend-01/) saya bercanda soal visa turis yang dicabut dan diganti KTP penduduk. Kenyataannya, KTP-nya memang terbit, tetapi hati saya masih sering membawa paspor.\n\n## Nah, Selesai Juga\n\nDengan episode ini, dua seri Hijrah selesai: [satu _backend_](/writing/2026/hijrah-backend-01/) dan seri _frontend_. Keduanya membahas dua sisi gedung yang sama, yang tetap melayani puluhan ribu _user_ setiap hari. Kode tidak minta tepuk tangan, tapi saya boleh kan? hehe.\n\nKalau kamu juga sedang mengurus sistem warisan, saya biasanya mulai dengan mengukur dulu. Pindahkan apa adanya, catat yang belum dikerjakan, dan jangan memaksa semuanya selesai sekaligus. Saya sendiri masih belajar bagian terakhir itu.\n\nTerima kasih sudah mengikuti seri ini sampai akhir. Semoga gedung yang kamu urus tetap jalan meski penjaganya berganti.\n\nSekian. Salam.\n\n[^1]: Angka-angka inventaris merujuk pada episode-episode sebelumnya di seri ini, yang masing-masing mencantumkan catatan pengukurannya.\n\n[^2]: Nama _library_, _framework_, dan detail _stack_ tetap disederhanakan, konsisten dengan seluruh seri.\n","body_clean":"Ini episode terakhir seri frontend. Seperti seri sebelah, saya tidak mau menulis seolah semua masalah sudah beres. Saya cuma ingin mencatat apa yang selesai, apa yang belum disentuh, dan apa yang saya pelajari setelah ikut mengurus kedua sisi gedung ini.\nCek Inventaris Dulu #Empat episode lalu, saya mulai membongkar gedung frontend warisan. Port-nya sekarang selesai, jadi saya catat dulu isinya:\n76 halaman dipindahkan dan tetap hidup. Port 1:1 tanpa meninggalkan satu halaman pun. Semua link internal antarhalaman masih menuju ke tempat yang benar. Dua library UI tetap dipakai. Ada 101 file untuk yang mayoritas dan 13 untuk pemegang komponen kalender. Seperti sebelumnya, tidak ada file yang memakai keduanya. 194 bekas luka tipe sudah terukur.1 Ada 194 jaring pengaman kecil yang masih berupa angsuran, belum menjadi arsitektur. Tiga era styling masih ada,2 satu backup sudah dipensiunkan, dan standardisasi menunggu giliran. Angka-angka ini bukan tanda gedungnya sudah rapi. Pindahan selesai, renovasi belum. Saya sempat mencampuradukkan dua hal itu, padahal jelas beda pekerjaan.\nBackend dan Frontend, Sama-sama Warisan #Kalau saya lihat lagi dua seri ini, pola kerjanya mirip meski masalahnya beda.\nDi backend, kami menemukan query yang tidak sargable dan prepared statement yang terputus di tunnel. Di frontend, ada field dengan tipe yang tidak sesuai dan dua library yang dipisahkan oleh garis demarkasi. Cara menanganinya serupa di kedua sisi: ukur dulu, pindahkan dengan setia, catat yang dibatalkan, dan jangan memperbaiki sambil memindahkan.\nDua sistem ini juga tumbuh karena waktu dan keadaan darurat, bukan karena seseorang duduk merancang arsitektur sempurna. Jadi saya susah menyalahkan spaghetti-nya. Kode itu tetap melayani pengguna meski orang yang merawatnya berganti.\nYang Saya Catat untuk Nanti #Biar tidak semuanya menumpuk di kepala, saya pisahkan catatannya seperti ini:\nMulai sekarang, saya jaga batas antarlibrary supaya tidak ada file campuran, kontrak tipe di pintu masuk, dan kebiasaan mencatat warisan yang kami bawa.\nTypeScript, penamaan lintas era, dan refactor struktur internal masih menunggu giliran. Saya ingin melihat data pemakaian dulu sebelum mengubah struktur.\nMigrasi state management batal, dan saya tidak menyesal. Rencana yang tidak jadi juga perlu dicatat, bukan disembunyikan seolah tidak pernah ada.\nSetelah ikut berjibaku merawat web app v3 ini, saya malah makin merasa seperti turis. Hati masih protes, tapi production tetap harus jalan.\nDi episode pertama saya bercanda soal visa turis yang dicabut dan diganti KTP penduduk. Kenyataannya, KTP-nya memang terbit, tetapi hati saya masih sering membawa paspor.\nNah, Selesai Juga #Dengan episode ini, dua seri Hijrah selesai: satu backend dan seri frontend. Keduanya membahas dua sisi gedung yang sama, yang tetap melayani puluhan ribu user setiap hari. Kode tidak minta tepuk tangan, tapi saya boleh kan? hehe.\nKalau kamu juga sedang mengurus sistem warisan, saya biasanya mulai dengan mengukur dulu. Pindahkan apa adanya, catat yang belum dikerjakan, dan jangan memaksa semuanya selesai sekaligus. Saya sendiri masih belajar bagian terakhir itu.\nTerima kasih sudah mengikuti seri ini sampai akhir. Semoga gedung yang kamu urus tetap jalan meski penjaganya berganti.\nSekian. Salam.\nAngka-angka inventaris merujuk pada episode-episode sebelumnya di seri ini, yang masing-masing mencantumkan catatan pengukurannya.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nNama library, framework, dan detail stack tetap disederhanakan, konsisten dengan seluruh seri.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","canonical":"https://najib.id/writing/2026/hijrah-frontend-05/","description":"Catatan saya setelah port seri Hijrah Frontend selesai, tentang apa yang sudah dipindah dan apa yang masih menunggu.","language":"id","lastmod":"2026-10-29T09:31:17Z","publishedAt":"2026-09-23T09:00:05Z","readingTime":3,"section":"writing","series":"Hijrah Frontend","tags":["frontend","refleksi","cerita"],"title":"Hijrah Frontend (5): Dua Sisi Satu Gedung","type":"writing","url":"https://najib.id/writing/2026/hijrah-frontend-05/","wordCount":507}
