Tahap implementasi adalah tahap di manas istem informasi telah digunakan oleh pengguna. Sebelum benar-benar bisa digunakan dengan baik oleh pengguna, sistem harus melalui tahap pengujian terlebih dahulu menjamin tidak ada kendala fatal yang muncul pada saat pengguna memanfaatkan sistemnya. Secara umum tahapan implementasi terdiri atas: Pengujian sistem Konversi sistem Pemeliharaan sistem Pada konversi sistem, analis harus bisa memilih strategi konversi yang tepat berkaitan dengan beroperasinya sistem baru. Pada pemeliharaan sistem, aspek pengembangan sistem dan penjagaan sistem dari kerusakan menjadi isu utama.
Gambar oleh Gerd Altmann dari Pixabay |
- Pengujian sistem
- Konversi sistem
- Pemeliharaan sistem
Pada konversi sistem, analis harus bisa memilih strategi konversi yang tepat berkaitan dengan beroperasinya sistem baru. Pada pemeliharaan sistem, aspek pengembangan sistem dan penjagaan sistem dari kerusakan menjadi isu utama.
PENGETESAN, IMPLEMENTASI, DAN PEMELIHARAAN SISTEM
Pengembangan perangkat lunak mengikuti siklus hidup tertentu yang dimulai dari menentukan solusi untuk masalah yang ditemukan dan mengimplementasikannya. Pengujian sistem perangkat lunak (software testing) adalah bagian dari siklus hidup tersebut yang melibatkan verifikasi apakah setiap unit yang dikembangkan telah memenuhi kebutuhan sistem yang didefinisikan pada tahapan sebelumnya. Bahkan dengan pengujian yang sangat teliti pada ratusan atau ribuan variabel dan kode program, pengguna tetap saja bisa menemukan "bugs" dari program yang dikembangkan. Pengujian sistem adalah tahapan yang paling sedikit dipahami dalam pengembangan sistem dan merupakan proses yang paling memakan waktu dan perencanaan yang matang. Sangat penting untuk memahami konsep ini dengan memahami perbedaan karakteristik dan aspek pengujian sistem, dan kemudian memeriksa teknik, prosedur, dan tool yang digunakan untuk mengaplikasikan konsep ini. Hal ini akan membantu pengguna menyadari permasalahan yang dihadapi oleh penguji sistem dan pentingnya pengujian sistem.
FILOSOFI PENGUJIAN
Pengujian sistem merupakan proses mengeksekusi sistem perangkat lunak untuk menentukan apakah sistem perangkat lunak tersebut cocok dengan spesifikasi sistem dan berjalan sesuai dengan lingkungan yang diinginkan. Pengujian sistem sering diasosiasikan dengan pencarian bug, ketidaksempurnaan program, kesalahan pada baris program yang menyebabkan kegagalan pada eksekusi sistem perangkat lunak. Menemukan dan menghilangkan ketidaksempurnaan program ini disebut debugging, yang berbeda dengan pengujian sistem yang berfokus pada pengidentifikasian adanya ketidaksempurnaan ini. Kesalahan sistem perangkat lunak bisa sangat bervariasi, mulai dari output yang salah, sistem yang crash, sampai pada sistem yang menggunakan memori terlalu banyak atau sistem yang berjalan terlalu lambat. Bug-bug seperti ini terjadi karena kode program yang dieksekusi belum diuji, urutan program yang dieksekusi belum diuji, kombinasi dari nilai input yang belum diuji, atau lingkungan pemrograman belum diuji.
Manajer pengembangan sistem harus bertanggung jawab pada pengujian sistem dan harus menentukan bagaimana pengujian sistem harus dilakukan dengan tujuan mengalokasikan waktu dan sumber daya yang dibutuhkan. Pengujian adalah tahap yang harus direncanakan. Manajer juga harus mengidentifikasi kualitas dari atribut sistem yang akan diujicoba, menyedari teknik pengujian yang bisa diterapkan pada sistem yang dikembangkan, dan memeriksa apakah metode pengujian yang dipilih telah terbukti pada proyek yang similiar. Kualitas atribut sistem meliputi keselamatan, kinerja, usability, akurasi, keakuratan dan reliabilitas dan semuanya itu harus diujicoba pada level taktis, historis, dan operasional. Beberapa aspek dari sistem juga harus pertimbangkan, seperti waktu tanggap, respons pada batasan data, respons jika tidak ada input, dan respons pada volume data yang besar. Pengujian sistem juga harus menyertakan data ilegal dan data di luar batasan sistem. Sistem harus bisa menangani segala macam kemungkinan.
METODE PENGUJIAN SISTEM
Beberapa test-case harus dilaksanakan degnan beberapa perbedaan strategi transsaksi, query, atau jalur navigasi yang mewakli penggunaan sistem yang tipikal, kritis, atau abnormal. Isu kunci pada pengembangan sistem adalah pemilihan sekelompok test-case yang cocok, sekecil, dan secepat mungkin, untuk meyakinkan perilaku sistem secara detail. Pengujian harus mencakup unit testing, yang mengecek validasi dari prosedur dan fungsi-fungsi secara independen dari komponen sistem yang lain. Kemudian modul testing harus menyusul dilakukan untuk mengetahui apakah penggabungan beberapa unit dalam satu modul sudah berjalan dengan baik, termasuk eksekusi dari beberapa modul yang saling berelasi, apakah sudah berjalan sesuai karakteristik sistem yang diinginkan. Berikut ringkasan beberapa kategori test yang bisa dilakukan.
STUB TESTING
Stub testing adalah pengujian yang difokuskan pada pengujian struktur kendali sebelum semua modul dituliskan. Sistem perangkat lunak secara umum terdiri dari modul yang berelasi, baik secara hierarki maupun relasional. Pengujian ini penting untuk mengecek apakah struktur kendali sudah memetakan kinerja keseluruhan modul secara tepat. Jika ada modul yang berfungsi memanggil modul yang lain maka harus dipastikan semua modul bekerjasama dengan tepat.
UNIT TESTING
Jika struktur kendali antar modul sudah terbukti bagus, maka pengujian yang tak kalah pentingnya adalah pengujian unit. Pengujian unit digunakan untuk menguji setiap modul untuk menjamin setiap modul menjalankan fungsinya dengan baik. Ada 2 metode untuk melakukan unit testing, yaitu:
- Black Box Testing. Terfokus pada apakah unit program memenuhi kebutuhan (requirement) yang disebutkan dalam spesifikasi. Pada black box testin, cara pengujian hanya dilakukan dengan menjalankan atau mengeksekusi unit atau modul, kemudian diamati apakah hasil dari unit itu sesuai dengan proses bisnis yang diinginkan. Jika ada unit yang tida sesuai outputnya maka untuk menyelesaikannya, diteruskan pada pengujian yang kedua, yaitu white box testing.
- White Box Testin. White box testing adalah cara pengujian dengan melihat ke dalam modul untuk meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan, maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperaiki, kemudian di-compile ulang.
INTEGRATION TESTING
Setelah unit testing selesai, maka pengujian berikutnya adalah pengujian interaksi dari modul-modul yang menyusun sistem informasi untuk menjamin bahwa mereka bekerja dengan baik. Integration test terdiri dari serangkaian tes sebagai berikut:
- Ujicoba antarmuka, Ujicoba setiap fungsi dari antarmuka.
- Ujicoba skenario pengguna, pastikan setiap skenario berjalan dengan baik.
- Ujicoba aliran data, uji setiap proses dalam langkah per langkah.
- Ujicoba sistem antarmuka, pastikan data mengalir antar proses.
PENGUJIAN SISTEM
Tes-tes sebelumnya berhubungan dengan bagaimana perangkat lunak sistem informasi berjalan dengan baik atau tidak. Komponen dari sistem informasi secara keseluruhan tidak hanya terdiri dari perangkat lunak saja, tetapi juga terdiri dari sistem transmisi data, perangkat keras seperti komputer, magnetic reader tes untuk menjamin perangkat lunak bekerja dengan baik sebagai bagian dari keseluruhan sistem. Jika sistem terdiri dari beberapa mesin komputer yang salin gberintegrasi, maka perangkatlunak harus bisa berjalan pada semua jenis perangkat keras yang terlibat. Aplikasi yang berjalan di sisi server misalnya harus dicek apakah merespons permintaan dari sisi klien dengan benar dan cepat.
ACCEPTANCE TESTING
Ketiga jenis tes yang dilakukan sebelumnya, merupakan test yang dilakukan oleh pengembang sistem. Karena pengguna akhir dari sistem memiliki pemahaman tentang sistem informasi dengan tingkat yang berbeda, maka seberapa jauh pengguna akhir dapat memahami dan menerima sistem harus diuji. Tes ini lah yang dinamakan dengan user acceptance test. Tes ini dilakukan untuk menjamin bahwa sistem telah melayani kebutuhan organisasi. Ada 2 tahap dalam user acceptance test, yaitu: Alpha testing dan Beta testing. Alpha testing adalah tes ini dilakukan oleh pengguna untuk menjamin bahwa mereka menerima sistem, tes dilakukan dengan menggunakan data tes. Tes ini sebenarnya merupakan simulasi dari penggunaan sistem oleh pengguna akhir pada sistem yang sebenarnya, tetapi dilaksanakan dengan data yang relatif sedikit dan dilaksanakan dilaboratorium. Tujuannya adalah untuk melihat kemudahan pengguna perangkat lunak oleh pengguna akhir. Tahap kedua adalah Beta testing. Alpha testing tidak dapat menggambarkan volume data yang sebenarnya yang harus diproses oleh sistem, sehingga perlu pengujian dengan menggunakan data riil, bukan data tes. Pengguna sesungguhnya memonitor kesalahan yang terjadi dan perbaikan yang dibutuhkan. Beta testing inilah yang menentukan apakah sistem akan diterima atau harus dirancang ulang.
IMPLEMENTASI SISTEM
Jika
sistem perangkat lunak telah selesai melewati tahap pengujian ssitem
maka sistem perangkat lunak tersebut telah siap untuk digunakan.
Penggunaan sistem perangkat lunak yang baru pada suatu organisasi atau
perusahaan kadang-kadang merupakan proses yang tidak mudah sehingga
persiapan untuk tahap ini harus dibuat dengan matang. Tahapan
implementasi sistem dapat terdiri dari langkah-langkah berikut:
- Menerapkan rencana implementasi
- Melakukan kegiatan implementasi
- Tindak lanjut implementasi
MENERAPKAN RENCANA IMPLEMENTASI
Supaya
kegiatan implemen tasi nantinya dpat beroperasi sesuai dengan yang
diharapkan, maka suatu rencana implementasi perlu direncanakan secara
matang. Dengan demikian, rencana implementasi merupakan kegiatan awal
dari tahap implementasi sistem. Rencana implementasi dimaksudkan untuk
mengatur biaya dan waktu yang dibutuhkan. Dalam tahapan ini biaya yang
dibutuhkan dikalkulasi dalam bentuk anggaran biaya. Anggaran biaya
inilah yang digunakan untuk kendali terhadap biaya-biaya yang
dikeluarkan. Waktu yang diperlukan untuk melaksanakan tahapan-tahapan
pekerjaan juga perlu ditentukan disini. Lebih jauh tentang penjadwalan
akan dibahas pada modul tersendiri.
KEGIATAN IMPLEMENTASI
Kegiatan
implementasi dilakukan dengan dasar kegiatan yang sudah direncanakan
dalam rencana implementasi. KEgiatan yang dilakukan dalam tahapan
implementasi adalah:
- Pemilihan dan pelatihan personel.
- Pemilihan tempat dan instalasi perangkat lunak dan perangkat keras.
- Pemrograman dan pengujian program.
- Pengujian sistem.
- Konversi sistem.
PEMILIHAN DAN PELATIHAN PERSONEL
Personel
yang dipilih dapat berasal dari dua sumber, yaitu karyawan yang telah
ada dari perusahaan atau calon karyawan yang berasal dari luar.
PELATIHAN KARYAWAN
Ada beberapa pendekatan pelatihan, yaitu:
- Ceramah/seminar
- Pelatihan prosedural
- Pelatihan tutorial
- Simulasi
- Latihan langsung di pekerjaan (on the job training)
PEMILIHAN TEMPAT DAN INSTALASI PERANGKAT LUNAK DAN PERANGKAT KERAS
Jika
peralatan baru akan dimiliki, maka tempat atau ruangan untuk perangkat
keras baru harus juga dipersiapkan. Sistem yang besar membutuhkan tempat
dan lingkungan yang harus diperhitungkan, misalnya pemasangan AC,
penerangan, pendeteksi kebakaran, UPS, telepon dan lain sebagainya.
Langkah selanjutnya adalah menginstal perangkat keras dan perangkat
lunak.
KONVERSI SISTEM
Setelah
sistem sukses diujicoba maka persiapan untuk menempatkan sistem baru
bisa dimulai. Analis sistem akan mengembangkan rencana konversi secara
lengkap. Dalam melakukan konversi sistem, ada beberapa alternatif
strategi yang bisa dipilih:
- Abrupt Cut Over (konversi langsung). Pada tanggal tertentu (biasanya tanggal yang bersamaan dengan periode bisnis resmi seperti periode anggaran bulanan, 4 bulanan atau tahunan), sistem lama dihapus dan sistem baru dioperasikan. Pendekatan ini merupakan pendekatan yang beresiko karena mungkin saja masih ada masalah utama yang belum ditemukan dalam ujicoba sistem. Kelebihannay adalah tidak ada biaya transisi. Pendekatan ini mungkin diperlukan untuk mandat pemerintah atau kebijakan bisnis yang hanya efektif pada tanggal tertentu dan sistem tidak bisa diimplementasikan setelah tanggal itu.
- Pararel Conversion. Pada pendekatan ini, baik sistem lama maupun sistem baru diimplementasikan selama beberapa periode waktu. Pendekatan ini memungkinkan beberapa masalah utama pada sistem baru berhasil ditemukan dan diatasi sebelum sistem lama berhenti dipakai. Pada akhir periode paralel, sistem lama bisa langsung dibuang, atau secara bertahap dihentikan pemakaiannya. Sistem ini menjamin kegiatan perusahaan atau organisasi tidak akan terhenti jika sistem baru ternyata bermasalah. Tetapi menjalankan dua sistem bersamaan akan menyebabkan biaya produksi meningkat. Menjalankan dua sistem bersamaan pada sistem komputer yang sama juga bisa menyebabkan kecepatan komputasi sistem melambat.
- Location Conversion. Ketika beberapa sistem yang sama akan dioperasikan pada lokasi yang berbeda. Konversi biasanya dilakuakn pada 1 lokasi terlebih dahulu (bisa konversi langsung atau paralel). Ketika sistem pada lokasi tersebut berjalan dengan baik, maka sistem bisa di -deploy di lokasi yang lainnya. Pada lokasi pertama disarankan digunakan konversi paralel dan pada lokasi-lokasi berikutnya bisa digunakan konversi secara langsung.
- Staged Conversion (Konversi bertahap). Seperti location conversion, staged conversion adalah variasi dari konversi langsung dan konversi paralel. Konversi ini menggunakan pendekatan versi. Suatu sistem dikembangkan dengan versi awal kemudian diimplementasikan, bisa dengan paralel atau langsung. Kemudian versi berikutnya diimplementasikan lagi, sampai diperoleh versi yang sesuai dengan kebutuhan organisasi atau perusahaan.
PEMELIHARAAN SISTEM
Walaupun telah didesain, dibangun, dan diujicoba, sistem atau aplikasi bisa mengalami error atau bug yang tidak bisa dihindari. Bug bisa disebabkan oleh beberapa hal, antara lain:- Kebutuhan sistem yang kurang divalidasi
- Kebutuhan sistem yang kurang dikomunikasikan
- Kebutuhan sistem yang disalahtafsirkan
- Kesalahan dalam mendesain dan mengimplementasikan kebutuhan sistem
- kesalahan penggunaan program semata
- Untuk membuat perubahan yang bisa diramaikan untuk sistem yang ada dan membetulkan kesalahan yang dibuat selama proses sistem disain dan implementasi.
- Untuk memelihara bagian program yang benar dan menghindari untuk memperbaiki bagian ini, justru akan menyebabkan error pada bagian lain yang sudah benar.
- Untuk menghindari degradasi performa sistem. Pemeliharaan sistem yang buruk akan berakibat menurunnya jumlah produksi dan waktu tanggap dari sistem.
- Untuk menjamin keseluruhan proses bisnis yang bergantung pada sistem informasi berjalan dengan baik, karena kegagalan sistem bisa saja berakibat pada kerugian jutaan dolar.
RECOVERY SYSTEM
Dari waktu ke waktu, sistem yang crash adalah hal yang tidak bisa dihindari. Biasanya disebabkan karena program hang dan
diikuti oleh hilangnya transaksi atau data-data bisnis. Analis sistem
biasanya berperan sebagai pihak yang memperbaiki atau sebagai jembatan
antara pengguna dan pihak yang bisa melakukan perbaikan. Pemulihan
sistem dapat dirangkum sebagai berikut:
- Pada banyak kasus, seorang analis cukup duduk di terminal komputer dan melakukan perbaikan dengan hanya menekan tombol tertentu atau melakukan "rebooting".
- Pada kasus ini, seorang analis biasanya memberikan sederetann insturksi untuk mencegah kerusakan yang sama terulang lagi.
- Pada kasuss yang lain, seorang analis mungkin perlu menghubungi personel operasi untuk memperbaiki kerusakan. Hal ini biasa dilakukan jika melibatkan server. Network administrator, database administrator, atau webmaster biasanya mengurusi server tersebut.
- Pada kasus lain,
seorang analis mungkin perlu memanggil administrator data untuk
mengembalikan data-data bisnis dalam database yang hilang atau rusak.
Dalam memulihkan data bisnis bukan hanya database yang perlu diperbaiki,
tetapi:
- Transaksi yang terjadi antara backup terakhir dan pemulihan data harus diproses ulang. Proses ini disebut dengan roll forward.
- Jika crash terjadi selama proses transaksi, dan transaksi tersebut baru sebagian selesai, maka segala update transaksional sebelum proses crash terjadi harus dihapus sebelum melakukan pemrosesan keseluruhan transaksi. Proses ini disebut dengan roll back.
- Biasanya sistem manajemen basis data menyediakan fasilitas roll back dan roll forward ini.
- Pada kasus slain, analis perlu memanggil administrator jaringan untuk memperbaiki jaringan lokal atau jaringan yang putus.
- Pada kasus lain, analis perlu memanggil teknisi perangkat keras untuk memperbaiki kerusakan pada perangkat keras.
- Pada kasus lain, seorang analis mungkin akan menemukan beberapa bug dan mengisolasi bugs tersebut atau mengingatkan pengguna untuk menghindari operasi yang menyebabkan bug tersebut.
SYSTEN ENCHANCEMENT
Melakukan
perubahan terhadap sistem karena perubahan kebutuhan sistem adalah hal
yang normal pada suatu sistem informasi. Dunia bisnis selalu berubah,
sehingga kebutuhan sistem juga akan ikut berubah. Analis sistem perlu
mengamati perubahan kebutuhan sistem ini. Pada satu kasus, analis sistem
mungkin akan mengadakan peningkatan atau perubahan pada perangkat lunak
yang dipakai, kadang-kadang harus melakukan pengembangan sistem dari
sisi perangkat lunak dengan menambahkan beberapa kebutuhan sistem yang
baru. Beberapa hal yang bisa menyebabkan terjadinya enchancement ini antara lain:
- Masalah bisnis baru. Masalah-masalah bisnis baru yang muncul akan menyebabkan sistem yang sedang digunakan menjadi tidak bisa digunakan atau tidak aman.
- Kebutuhan bisnis baru. Kebutuhan sistem baru (versi laporan yang terbaru, transaksi, ataupun kebijakan) diperlukan untuk mendukung keberadaan sistem yang sedang berjalan.
- Jebutuhan teknologi baru. Hal ini terjadi jika ternyata bermunculan teknologi baru yan glebih mempermudah proses bisnis.
- Desain sistem yang baru. Kadang-kadang beberapa elemen dari sistem yang sudah ada perlu diubah walaupun masalah bisnis dan kebutuhan bisnis tidak berubah (misalnya perubahan jumlah field dalam databse atau perubahan antarmuka pengguna).
Al Fatta, Hanif. 2007. Analisis & Perancangan Sistem Informasi. Yogyakarta: ANDI
KOMENTAR