Kontrak software yang kami lihat di Indonesia biasanya menghabiskan dua puluh halaman untuk apa yang akan dibuat, lalu setengah halaman untuk urusan setelah rilis. Masalahnya justru muncul dari setengah halaman itu. Enam bulan kemudian ada celah keamanan di salah satu library, sertifikat SSL kedaluwarsa pas libur panjang, atau Google Play mengirim email bahwa aplikasi Anda tidak bisa di-update lagi. Harus ada yang membereskan, tapi tidak pernah disepakati siapa orangnya, secepat apa, dan berapa bayarannya.
Maintenance Itu Bukan Tambah Fitur
Maintenance menjaga software yang sudah ada tetap jalan, tetap di-patch, dan tetap diterima platform yang berlaku sekarang. Pengembangan baru mengubah apa yang dikerjakan software itu. Garis ini perlu jelas karena harganya beda, dan banyak cekcok antara klien dan vendor berawal dari permintaan laporan baru atau metode pembayaran baru yang dilaporkan sebagai "bug". Patokan sederhananya begini. Kalau dulu bisa dan sekarang tidak bisa, itu bug. Kalau dari awal memang tidak ada, itu change request.
Perubahan kecil seperti ganti label atau tambah kolom di ekspor Excel biasanya masih masuk maintenance, selama tidak melewati jatah jam per bulan. Kalau sudah butuh desain, tabel database baru, atau integrasi baru, buat penawaran sendiri. Tulis batasnya di kontrak, misalnya "perubahan dengan estimasi di bawah 4 jam per item".
Isi Pekerjaan Maintenance yang Sebenarnya
- Update keamanan untuk seluruh stack: OS server, runtime (PHP, Node.js, Python, JVM), framework (Laravel, Next.js, Django, Spring), dan semua library di lockfile. Standard support Ubuntu 20.04 sudah selesai Mei 2025 dan Node.js 20 sudah end of life sejak April 2026. Sistem yang dibangun empat tahun lalu kemungkinan besar sudah jalan di atas versi yang tidak didukung lagi.
- Perbaikan bug yang ditemukan setelah masa garansi habis.
- Monitoring dan backup: cek uptime, error tracking dengan tool seperti Sentry, alert disk dan database, dan backup yang sesekali benar-benar dicoba restore.
- Perpanjangan: domain (.com, .co.id), sertifikat SSL, Apple Developer Program USD 99 per tahun, dan API key yang punya masa berlaku. Masa berlaku sertifikat SSL publik sedang dipangkas bertahap, jadi perpanjangannya harus otomatis, tidak bisa lagi manual setahun sekali.
- Perubahan yang dipaksa dari luar. Tiap tahun Google Play menaikkan batas minimum target API level untuk aplikasi baru dan update, dan aplikasi yang tertinggal terlalu jauh tidak lagi ditawarkan ke pengguna Android versi baru. Apple mewajibkan upload dibangun dengan Xcode dan SDK yang baru. Payment gateway dan WhatsApp Business Platform juga mematikan versi API lama sesuai jadwal mereka sendiri.
Poin terakhir paling sering diremehkan. Tanpa fitur baru sama sekali pun, aplikasinya tetap butuh dikerjakan tiap tahun karena platform di bawahnya terus bergeser.
Model Harga Maintenance dari Vendor
Model yang paling umum adalah retainer bulanan: biaya tetap untuk monitoring, update, dan support, plus jatah jam untuk perbaikan dan perubahan kecil, sering 10 atau 20 jam. Kelebihan jam ditagih dengan tarif yang sudah disepakati. Model ini paling mudah dianggarkan, dan cuma di model ini SLA benar-benar ada artinya. Tarif per jam software house di Indonesia kira-kira Rp150 ribu sampai Rp400 ribu, dan bedanya antar vendor cukup lebar.
Model kedua, bayar per kejadian atau time and material. Anda hanya bayar kalau ada yang rusak. Kelihatannya lebih hemat untuk website yang jarang berubah. Kekurangannya, tidak ada yang memantau sistem di sela-sela itu, update menumpuk, dan saat ada yang rusak belum tentu vendornya punya orang kosong minggu itu.
Model ketiga, persentase dari biaya pembuatan per tahun. Angka yang sering disebut 15 sampai 20 persen. Ini estimasi awal yang masuk akal, bukan aturan baku. Sistem seharga Rp300 juta dengan 15 persen berarti Rp45 juta per tahun, atau sekitar Rp3,75 juta per bulan. Banyak integrasi atau target uptime ketat membuatnya naik. Aplikasi internal yang stabil dengan tiga puluh pengguna bisa lebih rendah.
Kisaran Biaya Maintenance per Bulan
Angka di bawah ini hanya biaya jasa maintenance. Server, pemakaian layanan pihak ketiga seperti pesan WhatsApp atau OTP SMS, dan biaya akun store dihitung terpisah. Harganya beda jauh antar vendor dan tergantung seberapa cepat Anda butuh direspons.
Website company profile berbasis WordPress atau static site: kira-kira Rp500 ribu sampai Rp2,5 juta per bulan, untuk update core dan plugin, backup, cek uptime, dan beberapa edit konten. Web app kecil, misalnya sistem pemesanan atau stok internal dengan panel admin dan satu dua integrasi: kira-kira Rp3 juta sampai Rp12 juta per bulan. Aplikasi mobile dengan backend dan panel admin sendiri: kira-kira Rp6 juta sampai Rp25 juta per bulan, lebih tinggi lagi kalau aplikasinya lebih dari satu atau butuh support 24 jam.
Untuk kasus yang paling kecil, jujur saja. Kalau website Anda company profile lima halaman dengan satu form kontak, kemungkinan besar Anda tidak butuh kontrak maintenance dengan SLA. Pilih hosting managed yang ikut meng-update WordPress, nyalakan update otomatis, simpan satu backup di luar server, lalu bayar orang per jam saat ada perubahan.
Istilah SLA dengan Bahasa Sehari-hari
SLA atau service level agreement mengatur seberapa cepat vendor bereaksi dan seberapa tinggi ketersediaan sistem. Response time adalah waktu sampai ada orang yang mengonfirmasi masalahnya dan mulai mengerjakan. Resolution time adalah waktu sampai masalahnya beres atau ada jalan keluar sementara. Banyak SLA cuma menjanjikan response time, yang gampang dipenuhi.
Jam support menentukan kapan hitungan waktunya jalan. Jam kerja biasanya berarti Senin sampai Jumat pukul 09.00 sampai 17.00 WIB, tidak termasuk tanggal merah. Janji respons empat jam di jam kerja, untuk tiket yang masuk Jumat pukul 16.30 sebelum cuti bersama Lebaran, secara teknis bisa berarti baru dibalas seminggu kemudian. Kalau sistem Anda menerima pesanan saat Lebaran atau Harbolnas, bayar jam support tambahan untuk tanggal-tanggal itu.
Level severity mengelompokkan insiden berdasarkan dampaknya, biasanya P1 sampai P4. Contoh di bawah bisa disesuaikan dengan bisnis Anda.
| Severity | Contoh | Respons umum | Target penyelesaian umum |
|---|---|---|---|
| P1 Kritis | Sistem mati untuk semua pengguna, pembayaran gagal, ada dugaan kebocoran data | 30 sampai 60 menit, 24 jam kalau dibayar untuk itu | Solusi sementara dalam 4 jam |
| P2 Tinggi | Fitur utama rusak untuk banyak pengguna, misalnya invoice tidak terbit atau login gagal di iOS | 2 sampai 4 jam | 1 hari kerja |
| P3 Sedang | Fitur rusak tapi masih ada cara lain, misalnya satu filter laporan menampilkan total yang salah | 1 hari kerja | 5 hari kerja atau rilis berikutnya |
| P4 Rendah | Masalah tampilan, salah ketik, pertanyaan, atau permintaan perubahan kecil | 2 hari kerja | Dijadwalkan bersama pekerjaan bulanan |
Sepakati secara tertulis siapa yang menentukan level severity. Klien cenderung menandai semua tiket sebagai P1, vendor cenderung menurunkannya. Aturan yang biasanya bertahan: P1 berarti uang atau data sedang hilang saat ini juga.
Arti Angka Uptime dalam Hitungan Menit
Uptime biasanya dihitung per bulan. Satu bulan 30 hari ada 43.200 menit. Uptime 99,5 persen berarti sistem boleh mati sekitar 216 menit, kurang lebih 3,6 jam sebulan. Uptime 99,9 persen berarti sekitar 43 menit. Naik dari 99,5 ke 99,9 kedengarannya cuma beda pembulatan, padahal butuh server cadangan, database managed dengan failover, deploy tanpa downtime, dan orang yang siaga malam hari. Tagihan infrastruktur dan support-nya bisa jadi dua kali lipat.
Baca juga apa yang dikecualikan, biasanya jadwal maintenance terencana dan gangguan di penyedia cloud, lalu apa kompensasinya kalau target meleset. Umumnya berupa potongan beberapa persen dari tagihan bulan depan, yang jelas tidak menutup penjualan yang hilang. Pendapat kami, kebanyakan sistem internal sudah cukup dengan 99,5 persen di jam kerja. Selisih biayanya lebih berguna untuk backup dan uji restore yang sungguhan.
Kalau Maintenance Dilewatkan
Awalnya tidak terjadi apa-apa. Justru itu masalahnya. Lalu beberapa hal datang di bulan yang sama. Plugin WordPress yang punya celah dipakai untuk menyusupkan ratusan halaman judi online, kejadian yang sering menimpa website perusahaan dan kampus di Indonesia. Aplikasi tertinggal dari target API level Play Store persis saat Anda harus merilis perbaikan darurat. Versi PHP di server sudah terlalu tua, sehingga upgrade framework berarti lompat tiga versi mayor sekaligus, dan pekerjaan dua hari berubah jadi proyek dua bulan.
Melewatkan maintenance tidak menghemat uang. Tagihannya cuma dipindah ke bulan yang lebih buruk, plus bunganya.
Saat kami mengambil alih sistem yang dua atau tiga tahun tidak disentuh, penawaran pertamanya hampir selalu untuk mengejar ketertinggalan, dan biayanya sering lebih besar dari maintenance rutin setahun.
Yang Harus Tertulis di Kontrak Maintenance
- 1Cakupan: sebutkan semua komponen yang ditangani, misalnya web app, API, panel admin, aplikasi mobile, dan server. Yang tidak tercantum berarti di luar cakupan.
- 2Jam dan sisa jam: tulis jatah jam per bulan, tarif kelebihan jam, dan apakah sisa jam bisa dipakai bulan berikutnya. Sisa jam berlaku satu bulan saja biasanya adil untuk kedua pihak.
- 3Pengecualian: fitur baru, gangguan layanan pihak ketiga, input konten, dan masalah akibat perubahan dari staf Anda sendiri atau vendor lain biasanya dikecualikan. Tulis semuanya supaya tidak jadi bahan debat di bulan ketujuh.
- 4Tabel SLA: definisi tiap severity, target respons dan penyelesaian, jam support, kanal pelaporan (sistem tiket jauh lebih rapi daripada grup WhatsApp yang ramai), dan kontak eskalasi dari kedua pihak.
- 5Laporan: laporan bulanan berisi jam terpakai, update yang dipasang, insiden, dan hasil uji restore backup terakhir.
- 6Akses dan kepemilikan: source code disimpan di organisasi GitHub atau GitLab milik perusahaan Anda, dan akun server, cloud, domain, serta akun developer dipegang oleh Anda, vendor cukup ditambahkan sebagai user.
- 7Pemutusan dan serah terima: masa pemberitahuan 30 sampai 90 hari, serta kewajiban menyerahkan kode, dokumentasi, kredensial, dan sesi penjelasan untuk tim berikutnya. Klausul ini gratis untuk ditandatangani dan bisa menghemat berbulan-bulan kalau kerja sama berakhir.
Tim Internal atau Vendor
Developer internal biayanya lebih dari sekadar gaji: ada tunjangan, THR, laptop, dan risiko semua pengetahuan menumpuk di satu orang. Satu developer juga tidak mungkin menguasai backend, mobile, server, dan keamanan sekaligus, apalagi cuti dua minggu tanpa meninggalkan sistem tanpa penjaga. Untuk satu atau dua sistem bisnis, retainer vendor biasanya lebih murah.
Tim internal mulai masuk akal kalau software-nya inti dari cara bisnis Anda menghasilkan uang dan berubah setiap minggu. Susunan yang biasanya jalan adalah satu lead internal yang memegang roadmap dan semua akun, dibantu vendor atau dedicated team untuk kapasitas dan jaga malam.
Di Salamun Teknologi kami menangani maintenance untuk sistem buatan kami maupun sistem yang kami ambil alih, dimulai dengan audit komponen yang sudah ketinggalan versi. Kalau Anda sudah pegang penawaran maintenance dan ingin pendapat kedua, kami bisa bantu membacanya.
Poin penting
- Maintenance menjaga software yang sudah ada tetap di-patch, dipantau, dan diterima platform. Fitur baru adalah change request dengan harga sendiri.
- Aplikasi tanpa fitur baru pun tetap butuh dikerjakan tiap tahun, karena OS, runtime, framework, dan aturan store terus berubah.
- Sebagai estimasi awal, siapkan 15 sampai 20 persen biaya pembuatan per tahun, atau kira-kira Rp3 sampai 12 juta per bulan untuk web app kecil. Angkanya bervariasi tergantung cakupan dan vendor.
- Di SLA, bedakan response time dan resolution time, cek jam support, dan siapa yang menentukan severity. Uptime 99,5 persen berarti boleh mati sekitar 3,6 jam sebulan, 99,9 persen sekitar 43 menit.
- Pastikan kontrak menjamin Anda memegang source code, kredensial, dan hak atas serah terima kalau vendor berhenti.


