- Bab 4 dari 9
- 25 menit
- 1 latihan kode
- 4 soal kuis
Penerapan dan Pemeliharaan
Di bab ini (5 bagian)
Tujuan bab ini
- Mengenal tiga lingkungan: development, staging, dan production.
- Membandingkan strategi rilis Big Bang, Rolling, Blue-Green, dan Canary.
- Membedakan empat jenis pemeliharaan: korektif, adaptif, perfektif, dan preventif.
- Memahami mengapa pemeliharaan mengembalikan proses ke perencanaan.
Tahap 6: Penerapan
Software yang sudah lulus uji belum berguna sampai dipakai pengguna. Tahap penerapan (deployment) adalah merilis software ke lingkungan produksi agar dapat digunakan oleh pengguna akhir.
Tiga Lingkungan
Software biasanya berpindah melewati tiga lingkungan:
| Lingkungan | Fungsi |
|---|---|
| Development | Lingkungan kerja developer, tempat kode ditulis dan dicoba |
| Staging / UAT | Replika produksi untuk uji akhir |
| Production | Dipakai pengguna sebenarnya |
Mengapa perlu staging? Karena laptop developer berbeda dengan server sungguhan. Versi database bisa berbeda, data bisa jauh lebih banyak, dan pengaturan keamanan bisa lebih ketat. Staging dibuat semirip mungkin dengan produksi, sehingga masalah yang hanya muncul di "dunia nyata" bisa ketahuan sebelum menyentuh pengguna.
Pada aplikasi kas kelas, development adalah laptopmu, staging adalah salinan aplikasi yang dicoba bendahara dengan data contoh, dan production adalah aplikasi yang dipakai seluruh kelas.
Empat Strategi Rilis
Cara merilis juga perlu dipilih. Deck menyebut empat strategi:
| Strategi | Cara kerja | Catatan |
|---|---|---|
| Big Bang | Semua pengguna pindah sekaligus | Sederhana namun berisiko tinggi |
| Rolling | Server diperbarui bertahap satu per satu | Sebagian server masih versi lama selama proses |
| Blue-Green | Dua lingkungan identik, trafik dialihkan | Mudah rollback |
| Canary | Rilis ke sebagian kecil pengguna dulu, lalu diperluas | Masalah hanya menimpa sedikit pengguna |
Mari pahami dengan analogi kantin sekolah yang mengganti menu.
- Big Bang: besok semua menu lama diganti total. Kalau menu baru tidak laku, seluruh kantin rugi.
- Rolling: satu per satu kios mengganti menu, sampai semua kios memakai menu baru.
- Blue-Green: kantin punya dua dapur identik. Dapur biru masih menyajikan menu lama, dapur hijau sudah siap menu baru. Pembeli dialihkan ke dapur hijau. Kalau ada masalah, pembeli langsung dikembalikan ke dapur biru.
- Canary: menu baru ditawarkan dulu ke satu kelas. Kalau responsnya baik, diperluas ke seluruh sekolah.
Nama "canary" berasal dari burung kenari yang dulu dibawa penambang sebagai tanda bahaya awal. Sekelompok kecil pengguna berperan sebagai tanda awal bahwa rilis aman atau tidak.
Selalu Siapkan Rollback
Apa pun strateginya, selalu siapkan rencana rollback, yaitu cara kembali ke versi sebelumnya kalau rilis bermasalah. Strategi Blue-Green dan Canary mengurangi risiko saat rilis karena rollback-nya mudah atau dampaknya kecil.
Logika canary bisa dimodelkan dalam kode. Rilis naik bertahap selama tingkat error masih di bawah batas, dan berhenti kalau melewatinya:
Kamu akan menulis versi ini sendiri di latihan bab ini.
Output Penerapan
Deliverable tahap ini: Release Notes, Panduan Instalasi, Manual Pengguna, dan materi pelatihan. Untuk kas kelas, release notes bisa berupa pesan singkat di grup kelas: "Versi 1.1: sekarang bisa melihat riwayat pembayaranmu sendiri."
Tahap 7: Pemeliharaan
Software terus dirawat setelah rilis. Tahap ini umumnya berlangsung paling lama sepanjang usia sistem. Aplikasi kas kelas mungkin dibangun dalam 6 minggu, tetapi dipakai dan dirawat selama bertahun-tahun.
Empat Jenis Pemeliharaan
| Jenis | Tujuan | Contoh pada kas kelas |
|---|---|---|
| Korektif | Memperbaiki bug dan error yang ditemukan pengguna | Saldo salah hitung saat ada iuran ganda |
| Adaptif | Menyesuaikan dengan perubahan OS, regulasi, atau platform | Menyesuaikan tampilan setelah browser ponsel diperbarui |
| Perfektif | Menambah fitur dan meningkatkan performa sesuai masukan | Menambah fitur ekspor laporan ke spreadsheet |
| Preventif | Refactoring dan pembaruan untuk mencegah masalah | Merapikan kode perhitungan saldo agar mudah diubah |
Cara mudah mengingatnya:
- Korektif = memperbaiki yang rusak.
- Adaptif = menyesuaikan dengan dunia luar yang berubah.
- Perfektif = membuat lebih baik sesuai keinginan pengguna.
- Preventif = mencegah masalah sebelum terjadi.
Bedakan adaptif dan perfektif dengan bertanya: perubahan ini dipicu dunia luar (sistem operasi, aturan, platform) atau dipicu keinginan pengguna? Kalau dunia luar, adaptif. Kalau keinginan pengguna, perfektif.
Pemeliharaan Menyerap Biaya Besar
Pemeliharaan sering menyerap porsi biaya terbesar dalam total umur software. Karena itu desain yang mudah dirawat sangat penting. Keputusan di tahap desain, seperti memisahkan modul dengan rapi, terasa manfaatnya bertahun-tahun kemudian saat ada perubahan.
Kembali ke Perencanaan
Permintaan perubahan besar memicu siklus SDLC baru. Misalnya wali kelas meminta aplikasi kas dipakai untuk seluruh angkatan, bukan satu kelas saja. Ini bukan sekadar perbaikan kecil. Perlu perencanaan ulang, analisis kebutuhan baru, desain ulang database, dan seterusnya. Itulah mengapa SDLC disebut siklus: tahap ketujuh membawa kita kembali ke tahap pertama.
Kesalahan Umum
- Merilis tanpa rencana rollback. Saat ada masalah, tim panik karena tidak tahu cara kembali ke versi lama.
- Melewatkan staging. Masalah yang hanya muncul di lingkungan mirip produksi baru ketahuan setelah pengguna terdampak.
- Memakai Big Bang untuk sistem besar tanpa alasan kuat. Semua pengguna langsung terkena kalau ada masalah.
- Menganggap pemeliharaan sebagai pekerjaan kecil. Justru tahap ini paling lama dan sering paling mahal.
Rangkuman
- Penerapan merilis software yang lulus uji ke produksi, melewati lingkungan development, staging, dan production.
- Strategi rilis: Big Bang (sederhana, berisiko tinggi), Rolling (bertahap per server), Blue-Green (dua lingkungan, mudah rollback), Canary (sebagian kecil pengguna dulu).
- Selalu siapkan rencana rollback, dan sertakan release notes, panduan instalasi, serta manual pengguna.
- Pemeliharaan terdiri dari korektif, adaptif, perfektif, dan preventif, serta umumnya paling lama sepanjang usia sistem.
- Perubahan besar memicu siklus SDLC baru, kembali ke perencanaan.
Slide 13 sampai 14 dari deck Software Development Life Cycle (SDLC). Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (1)
- 3. Kuis (4 soal)
Latihan kode: Mengevaluasi rilis canary
Tulis fungsi cekCanary(tahapPersen, errorPerTahap, batas).
tahapPersenberisi persentase pengguna di tiap tahap, misalnya[5, 25, 50, 100].errorPerTahap[i]adalah tingkat error (persen) di tahap ke-i.- Rilis berhenti di tahap pertama yang error-nya lebih besar dari
batas.
Kembalikan { status, persenAman }:
statusbernilai"rollback"bila ada tahap yang melewati batas, selain itu"rilis penuh".persenAmanadalah persentase tahap terakhir yang lolos sebelum berhenti (0 bila tahap pertama sudah gagal). Bila semua lolos, isi dengan persentase tahap terakhir.
Cek pemahaman
1Strategi rilis dengan dua lingkungan identik dan trafik dialihkan sehingga mudah rollback adalah...
2Menyesuaikan aplikasi karena ada perubahan regulasi termasuk pemeliharaan...
3Lingkungan staging adalah replika produksi untuk uji akhir.
4Refactoring untuk mencegah masalah di masa depan termasuk pemeliharaan...