# Pemeliharaan

# Informasi Umum Pemeliharaan



# Apa itu Pemeliharaan?

Sistem informasi atau aplikasi yang sudah dibangun agar dapat berjalan dengan baik harus di pelihara atau di-*maintenance*. Bahkan mungkin ini sudah menjadi rumus supaya sistem atau aplikasi yang sudah dibangun dapat berjalan tanpa masalah, maka harus ada *maintenance*, tidak cukup dibangun saja lalu selesai.

Mengingat resiko jika tidak di-*maintenance* atau dipelihara kemungkinan sewaktu-waktu bisa ada masalah dapat menghambat berjalannya bisnis perusahaan dan mengakibatkan kerugian. Hal ini tentu sangat tidak diharapkan.

Proses cara apa saja yang biasa dilakukan untuk pemeliharaan. Jenis-jenis pemeliharaan ada berbagai macam, seperti pada poin-poin berikut ini:

**<span style="color: #000000;">Pemeliharaan</span> Korektif**  
Pemeliharaan korektif adalah bagian pemeliharaan sistem yang tidak begitu tinggi nilainya dan lebih membebani, karena pemeliharaan ini mengkoreksi kesalahan-kesalahan yang ditemukan pada saat sistem berjalan. Umumnya pemeliharaan korektif ini mencakup kondisi penting atau bahaya yang memerlukan tindakan segera. Kemampuan untuk mendiagnosa atau memperbaiki kesalahan atau malfungsi dengan cepat sangatlah berharga bagi perusahaan.

**Pemeliharaan Adaptif**  
Pemeliharaan adaptif dilakukan untuk menyesuaikan perubahan dalam lingkungan data atau pemrosesan dan memenuhi persyaratan pemakai baru. Lingkungan tempat sistem beroperasi adalah dinamik, dengan demikian, sistem harus terus merespon perubahan persyaratan pemakai. Misalnya, Undang-Undang Perpajakan yang baru mungkin memerlukan suatu perubahan dalam kalkulasi pembayaran bersih. Umumnya pemeliharaan adatif ini baik dan tidak dapat dihindari.

**Pemeliharaan Perfektif (Penyempurnaan)**  
Pemeliharaan penyempurnaan mempertinggi cara kerja atau *maintainabilitas* (kemampuan untuk dipelihara). Tindakan ini juga memungkinkan sistem untuk memenuhi persyaratan pemakai yang sebelumnya tidak dikenal. Ketika membuat perubahan substansial modul apapun, petugas pemeliharaan juga menggunakan kesempatan untuk meng-upgrade kode, mengganti cabang-cabang yang kadaluwarsa, memperbaiki kecerobohan, dan mengembangkan dokumentasi. Sebagai contoh, kegiatan pemeliharaan ini dapat berbentuk perekayasaan ulang atau restrukturisasi perangkat lunak, penulisan ulang dokumentasi, pengubahan format dan isi laporan, penentuan logika pemrosesan yang lebih efisien, dan pengembangan efisiensi pengoperasian perangkat.

**Pemeliharaan Preventif**  
Pemeliharaan Preventif terdiri atas inspeksi periodik dan pemeriksaan sistem untuk mengungkap dan mengantisipasi permasalahan. Karena personil pemeliharaan sistem bekerja dalam sistem ini, mereka seringkali menemukan cacat-cacat (bukan kesalahan yang sebenarnya) yang menandakan permasalahan potensial. Sementara tidak memerlukan tindakan segera, cacat ini bila tidak dikoreksi di tingkat awal, jelas sekali akan mempengaruhi baik fungsi sistem maupun kemampuan untuk memeliharanya dalam waktu dekat.

# Pemindahan Website/Aplikasi

Sebagai pemilik website, suatu saat Anda mungkin ingin memindahkan situs ke URL atau infrastruktur lain karena suatu alasan. Halaman ini membahas beragam skenario pemindahan situs serta memberikan tips tentang cara menyiapkan, menerapkan, dan memantaunya. Ini juga berlaku bagi penyedia layanan bukan hanya client yang menjadi pemilik website/aplikasi.

<p class="callout info">Dalam dokumentasi ini, desain ulang (*redesign*) website tidak dianggap sebagai pemindahan website/aplikasi, meskipun melibatkan penambahan URL.</p>

Desain ulang berarti mengubah tata letak halaman yang sudah ada, atau menambahkan halaman konten baru. Pemindahan berarti memindahkan halaman yang ada dengan salah satu cara sebagai berikut:

- **Pemindahan situs tanpa perubahan URL**  
    Infrastruktur dasar yang melayani situs diubah, namun tidak ada perubahan yang terlihat pada URL. Misalnya, jika Anda memindahkan *www.example.com* ke penyedia hosting atau server lain dengan tetap mempertahankan *www.example.com* sebagai URL *root* yang sama untuk website.
- **Pemindahan situs dengan perubahan URL**  
    Pemindahan aplikasi seperti di atas tapi dengan perubahan URL halaman-nya. Misalnya seperti:  
    \- Perubahan protokol — *http://www.example.com* menjadi *https://www.example.com*  
    \- Perubahan nama domain — *example.com* menjadi *example.net*  
    \- Perubahan jalur URL — *example.com/page.php?id=1* menjadi *example.com/widget*

#### Rekomendasi untuk pemindahan situs/website/aplikasi

- **Bagi pemindahan menjadi langkah yang lebih kecil, jika hal tersebut efektif untuk website Anda.**  
    Sebaiknya, cukup pindahkan satu bagian website di awal untuk menguji dampaknya terhadap *traffic*. Setelah itu, Anda dapat memindahkan bagian lain website sekaligus atau secara bertahap. Saat memilih bagian website untuk pengujian awal, pilih bagian yang tidak sering berubah dan tidak terpengaruh secara signifikan oleh peristiwa yang sering terjadi atau yang tidak dapat diprediksi. Selain itu, perlu diingat bahwa meskipun memindahkan hanya satu bagian merupakan cara yang baik untuk menguji pemindahan, tindakan tersebut tidak selalu mewakili seluruh pemindahan website dalam hal penelusuran. Semakin banyak halaman yang dipindahkan, semakin besar kemungkinan Anda mengalami masalah yang perlu diselesaikan. Perencanaan yang matang dapat meminimalkan masalah.
- **Lakukan pemindahan saat jumlah traffic rendah, jika memungkinkan.**  
    Jika traffic Anda bersifat musiman atau menurun pada hari kerja tertentu, sebaiknya pindahkan website Anda selama penurunan *traffic* berulang. Artinya, lebih sedikit orang yang akan terpengaruh oleh potensi masalah yang dapat terjadi selama pemindahan website.
- **Ajukan pertanyaan di halaman bantuan &amp; Forum SPBE.**  
    Ada beberapa saran serta solusi di halaman bantuan dan kasus tertentu yang berkaitan telah terjawab di [forum SPBE](https://spbe.denpasarkota.go.id/forum/). Jika tidak dapat menemukan jawaban, Anda dapat mengajukan pertanyaan langsung kepada salah satu tim teknis kami melalui [forum](https://spbe.denpasarkota.go.id/forum/).
- **Jika pemindahan melibatkan perubahan URL, Anda dapat mempertimbangkan pengujian A/B atau menjalankan uji coba**.  
    Rencanakan selama beberapa minggu guna memberikan waktu untuk proses *crawling* dan pengindeksan (jika website Anda memanfaatkan SEO dan merupakan website/aplikasi publik) dalam menerapkan perubahan, serta waktu untuk memantau *traffic*.

# Pemeliharaan Aplikasi



# Memindahkan website tanpa perubahan URL

Panduan ini menunjukkan cara untuk memigrasikan website/aplikasi pada infrastruktur hosting atau server. Misalnya, saat berganti penyedia hosting atau berpindah ke [jaringan distribusi konten ](https://www.niagahoster.co.id/blog/apa-itu-cdn/)(CDN). Panduan ini hanya untuk migrasi yang tidak memengaruhi URL yang terlihat pengguna.

<p class="callout info">Apakah memindahkan website juga melakukan perubahan URL? Jika Anda melakukan perubahan URL, silahkan pergi ke [Pemindahan website dengan perubahan URL](#!).</p>

#### Beberapa hal yang dipersiapkan

1. [**Tinjau FAQ dan informasi dasar pemindahan website**](https://spbe.denpasarkota.go.id/wikia/books/pemeliharaan/page/pemindahan-websiteaplikasi). Ketahui apa yang akan terjadi dan bagaimana pengaruhnya terhadap pengguna.
2. **[Siapkan infrastruktur hosting baru](#bkmrk-siapkan-infrastruktu)**. Upload konten Anda ke server baru atau konfigurasikan CDN dan server asal, kemudian uji.
3. [**Mulai pemindahan website**](#bkmrk-memulai-pemindahan-w). Ubah setelan DNS nama domain agar mengarah ke infrastruktur hosting baru. Langkah ini adalah langkah pemindahan website aktual yang memulai proses pengiriman *traffic* ke infrastruktur baru.
4. [**Uji website di server baru**](#bkmrk-uji-website-di-serve). Lakukan beberapa hal ini langsung setelah melakukan pemindahan website sebelum membuka akses ke publik untuk menjamin bahwa website benar-benar berfungsi dengan baik.
5. **[Pantau traffic](#bkmrk-memantau-traffic%C2%A0)**. Amati traffic yang disuguhkan oleh hosting lama dan baru.
6. **[Nonaktifkan](#bkmrk-menonaktifkan-hostin)**. Nonaktifkan infrastruktur hosting lama saat Anda yakin bahwa semua pengguna menerima konten dengan benar dari infrastruktur baru dan tak seorang pun menggunakan infrastruktur lama.

#### Siapkan Infrastruktur Hosting Baru

Bagian ini membahas langkah yang perlu dilakukan sebelum memulai pemindahan situs aktual.

##### <span style="text-decoration: underline;"><span aria-level="3" class="devsite-heading" role="heading">Uji server</span></span>

- **Pastikan server sesuai dengan spesifikasi server sebelumnya.** Dengan catatan aplikasi yang dipindahkan tidak ada perubahan, misal pada bagian *source code*-nya. Pastikan jenis bahasa yang digunakannya, misal PHP dengan versi yang standar sekarang adalah 7.4, tapi jika aplikasi menggunakan versi di bawahnya dapat disesuaikan untuk sementara dengan catatan ke depannya aplikasi perlu di-upgrade bahasanya ke versi 7.4 (untuk PHP). Selain bahasanya juga jenis databasenya dan spesifikasi lainnya.
- **TBD.**

##### <span style="text-decoration: underline;"><span aria-level="3" class="devsite-heading" role="heading">Turunkan nilai TTL untuk data DNS</span><button aria-label="Salin link ke bagian ini: Turunkan nilai TTL untuk data DNS" class="devsite-heading-link button-flat material-icons" data-id="check-ttl" data-title="Salin link ke bagian ini: Turunkan nilai TTL untuk data DNS" type="button"></button></span>

Anda dapat membantu mempercepat pemindahan situs jika menurunkan nilai [TTL ](https://caraguna.com/apa-itu-time-to-live/)data DNS wesbite, yang akan memungkinkan setelan baru diterapkan ke [ISP ](https://www.jagoanhosting.com/blog/isp-adalah/)lebih cepat. Setelan DNS biasanya di-*cache* ISP berdasarkan [setelan Time to Live (TTL)](https://wikipedia.org/wiki/Time_to_live#DNS_records) yang ditentukan. Pertimbangkan untuk menurunkan TTL ke nilai rendah konservatif (misalnya, beberapa jam) setidaknya satu minggu sebelum pemindahan situs untuk memperbarui *cache* DNS lebih cepat.

##### <span style="text-decoration: underline;"><span aria-level="3" class="devsite-heading" role="heading">Tinjau verifikasi *Search Console* (Opsional untuk website yang menggunakan SEO)</span></span>

Pastikan verifikasi *Search Console* terus berfungsi setelah pemindahan situs.

Jika Anda menggunakan [metode file HTML](https://support.google.com/webmasters/answer/9008080?hl=id#html_verification) untuk memverifikasi kepemilikan website, pastikan Anda tidak lupa menyertakan file verifikasi saat ini dalam salinan website yang baru.

Begitu juga, jika Anda menyertakan *[tag meta](https://support.google.com/webmasters/answer/9008080?hl=id#meta_tag_verification)* atau *[Google Analytics](https://support.google.com/webmasters/answer/9008080?hl=id#google_analytics_verification)* pada template sistem pengelolaan konten (CMS) guna memverifikasi kepemilikan, pastikan juga menyertakannya.

##### Dokumentasi akses server

Setelah semua dipersiapkan, info akses server dapat dicatat dan didokumentasikan serta selanjutnya diinformasikan ke pengembang atau pemilik aplikasi, agar mereka dapat mengakses dan memindahkan websitenya.

#### <span aria-level="2" class="devsite-heading" role="heading">Memulai pemindahan website</span>

Proses pemindahannya adalah sebagai berikut.

1. **Dokumentasi proses pemindahan.** Sebelum memulai proses, pastikan untuk mendokumentasikannya dari awal hingga akhir proses. Sebagai awal, dapat dengan mengambil gambar dari informasi IP di server/infrastruktur yang lama.
2. **Ganti halaman pada website di layanan hosting/server lama**. Sebelum membuat salinan dari website/aplikasi, pemilik dari aplikasi perlu membuat halaman index sementara yang dapat diakses oleh publik. Halaman ini digunakan untuk memberhentikan akses sementara user ke website yang akan dipindahkan. Ini dilakukan supaya user tidak melakukan perubahan pada aplikasi/website. Selain itu halaman ini juga sebagai informasi ke user bahwa website sedang tidak dapat diakses dan dalam proses pemeliharaan/*maintenance*. Untuk halaman maintenance khusus web subdomain Pemerintah Kota Denpasar dapat menggunakan halaman [ini](https://github.com/kominfo-denpasar/maintenance-page/), agar sesuai dengan standar dan seragam.
3. **Lakukan backup pada source code.** Umumnya *source code* aplikasi ditaruh pada *home folder* di direktori *public\_html* pada [cpanel](https://www.hostinger.co.id/tutorial/apa-itu-cpanel). Ini juga tergantung dari developer yang mengembangkan aplikasi/website tersebut. Jika tidak yakin di-mana *source code* ditaruh dapat berkonsultasi terlebih dahulu dengan pihak developernya. Untuk metode *backup*-nya dapat dengan cara membuatkan arsip langsung berupa file dengan ekstensi .zip pada *file manager* di cpanel atau dengan menggunakan [FTP](https://www.niagahoster.co.id/blog/apa-itu-ftp/).
4. **Lakukan backup pada database.** Untuk backup database dapat dilakukan dengan menggunakan *Database Administration Tool* seperti [phpMyAdmin ](https://makinrajin.com/blog/phpmyadmin-adalah/)(untuk jenis database [MySQL](https://www.hostinger.co.id/tutorial/apa-itu-mysql)). Sesuaikan dengan jenis database yang digunakan oleh aplikasi.
5. **Catat informasi database, user dan password pada *source code* (Opsional)**. Ini dilakukan agar tidak melakukan penggantian user dan password lagi pada source code di infrastruktur yang baru.
6. **Upload source code dan database ke server baru.** Untuk pemindahan *source code* ke server yang baru dapat dengan menggunakan FTP atau langsung upload file arsip \*.zip melalui file manager pada cpanel dan memakai phpMyAdmin untuk migrasi databasenya.
7. **Konfigurasi website di server yang baru.** Ganti user dan password database.
8. **Perbarui setelan DNS**. Anda memulai pemindahan situs dengan memperbarui data DNS agar mengarah ke penyedia hosting baru. Hubungi penyedia DNS Anda untuk mengetahui cara melakukannya. Karena setelan cache DNS di-*cache*, perlu waktu beberapa saat untuk menyebarkan data sepenuhnya ke semua pengguna di internet.

#### <span aria-level="2" class="devsite-heading" role="heading">Uji website di server baru</span>

<span aria-level="2" class="devsite-heading" role="heading">Berikut ada beberapa hal/saran yang dapat dilakukan setelah melakukan pemindahan website.</span>

- **Buat lingkungan pengujian**, mungkin dengan akses IP tertentu, yang digunakan untuk menguji semua fitur sebelum website ditayangkan.
- **Izinkan pengujian publik** dengan nama host sementara untuk infrastruktur baru (seperti *beta.example.com*, *beta-subdomain.example.go.id*), sehingga Anda dapat menguji aksesibilitas menurut browser. Nama host sementara dapat membantu Anda menguji apakah user dapat menjangkau website Anda atau tidak dan menandakan atau memberi informasi ke user bahwa website masih dalam proses perubahan/migrasi yang mungkin rentan akan bug/error.
- **Buka situs baru di browser web** dan tinjau semua elemen situs: halaman web, gambar, formulir, dan download (seperti file PDF).
- **Uji *traffic.*** Uji website baru dengan sebagian kecil *live traffic* jika memungkinkan.
- **Dokumentasi,** bahwa website sudah berhasil dipindahkan ke server/infrastruktur yang baru.

#### <span aria-level="2" class="devsite-heading" role="heading">Memantau *traffic* </span><button aria-label="Salin link ke bagian ini: 
      Memantau traffic
    " class="devsite-heading-link button-flat material-icons" data-id="monitor" data-title="Salin link ke bagian ini: 
      Memantau traffic
    " type="button"></button>

Berikut hal yang dapat Anda lakukan untuk memastikan pemindahan berjalan lancar:

- **Perhatikan log server baik pada server lama maupun baru.**  
    Seiring penyebaran setelan DNS dan pemindahan traffic situs, Anda akan melihat penurunan traffic yang tercatat dalam log di server lama, dan peningkatan traffic terkait di server baru.
- **Gunakan alat pemeriksaan DNS publik yang lain.**  
    Periksa apakah [ISP ](https://www.jagoanhosting.com/blog/isp-adalah/)lain di seluruh dunia diperbarui ke setelan DNS baru dengan benar.

#### <span aria-level="2" class="devsite-heading" role="heading">Menonaktifkan hosting lama</span>

Periksa log server di penyedia atau infrastruktur lama, lalu setelah *traffic-nya* mencapai angka nol, Anda dapat menonaktifkan infrastruktur hosting lama. Tindakan ini mengakhiri proses pemindahan website.

