Tugas Mata Kuliah Sistem Informasi Manajemen
URGENSI MAINTENANCE DALAM PENGEMBANGAN SOFTWARE SYSTEM
Oleh:
Lia Nur Alia Rahmah P056132591.52
Dosen: Dr. Ir. Arif Imam Suroso, M.Sc
PROGRAM PASCASARJANA MANAJEMEN DAN BISNIS INSTITUT PERTANIAN BOGOR 2014
BAB I PENDAHULUAN
1.1
Latar Belakang Era globalisasi telah menciptakan persaingan ketat di dunia bisnis
sehingga menuntut kemajuan teknologi khususnya pada bidang IT. Diperlukan penerapan sistem informasi yang lebih baik untuk menunjang kinerja perusahaan. Berdasarkan Indrajit (2001), sistem Informasi merupakan suatu kumpulan dari komponen-komponen dalam suatu organisasi yang berhubungan dengan proses penciptaan dan pengaliran informasi. Keandalan suatu sistem informasi dalam sebuah organisasi terletak pada keterkaitan antara komponen yang ada, sehingga dapat dihasilkan dan dialirkan suatu informasi yang berguna, akurat, terpercaya, detail, cepat, relevan, dan sebagainya) untuk organisasi yang bersangkutan. Sistem informasi bertujuan untuk mendukung kinerja perusahaan, meningkatkan efisiensi dan efektivitas proses bisnis, pengambilan keputusan manajerial, dan memperkuat posisi kompetitif perusahaan. Penggunaan sistem informasi di perusahaan yang semakin pesat sangatlah terkait dengan penggunaan software, hal ini menyebabkan issue mengenai sustainability ikut turut berkembang. Berdasarkan April et al. (2004), Perusahaan yang mengandalkan pendapatan dari pengembangan dan pemeliharaan software menghadapi tantangan baru di pasar global yang kompetitif, yaitu meningkatnya kebutuhan pelanggan. Dengan berbagai layanan dan produk yang tersedia dari vendor di seluruh dunia, pelanggan menuntut layanan dan produk dengan kualitas tinggi, biaya yang rendah, disertai dengan layanan penunjang yang dapat mengalahkan kompetisi. Untuk memenuhi kebutuhan tersebut, organisasi yang dinamis menghadapi dua tantangan: memiliki kemampuan mengembangkan serta memelihara software untuk memenuhi kebutuhan pelanggan dan memiliki akses terhadap software yang dapat mendukung proses bisnis perusahaan. Kedua perspektif dari software (eksternal dan internal) harus dapat diandalkan dan terawat dengan baik. Berdasarkan pemaparan di atas, dalam pembuatan software dan pengembangannya harus mampu digunakan sesuai dengan tujuan dari perangkat
lunak tersebut. Seringkali dalam pelaksanaannya, perangkat lunak yang dikembangkan tidak memenuhi persayatan dan tahap-tahap penting dalam pengembangan perangkat lunak tersebut. Hal ini seringkali menimbulkan kesalahan (bug) dalam proses penjalanan perangkat lunak tersebut. Oleh karena itu, penting untuk dilakukan kajian mengenai urgensi maintenance dalam sistem informasi, khususnya pada pengembangan software. 1.2
Tujuan Adapun penulisan makalah ini bertujuan untuk mengkaji urgensi
maintenance dalam pengembangan software.
BAB II TINJAUAN PUSTAKA
2.1
Sistem Informasi Berdasarkan O’Brien (2005), sistem informasi didefinisikan sebagai
kombinasi teratur dari sumber daya manusia, hardware, software, jaringan dan sumberdaya data yang mengumpulkan dan mentransformasi informasi didalam suatu organisasi. Software menurut IEEE (Institute of Electrical and Electronics Engineers) dapat didefinisikan sebagai program komputer, prosedur, data dan semua dokumentasi yang berhubungan operasi pada sistem komputer dengan kata lain software merupakan kumpulan dari objek membentuk konfigurasi yang didalamnya termasuk program, dokumen, dan data. Adapun tujuan umum Sistem Informasi Manajemen, yaitu : Menyediakan informasi yang dipergunakan di dalam perhitungan harga pokok jasa, produk, dan tujuan lain yang diinginkan manajemen. Menyediakan informasi yang dipergunakan dalam perencanaan, pengendalian, pengevaluasian, dan perbaikan berkelanjutan. Menyediakan informasi untuk pengambilan keputusan. Menyediakan informasi yang efektif dan efisien terkait hal-hal yang bisa membantu percepatan tanpa meninggalkan keakuratan, sehingga bisa meningkatkan nilai jual perusahaan dan memenangkan persaingan di pasar.
2.2
Pengembangan Software dalam Sistem Informasi Pengembangan software atau dikenal juga sebagai software engineering
menurut IEEE adalah aplikasi sistematik, disiplin, pendekatan kuantitatif untuk pengembangan, operasi dan pemeliharaan dari software, dengan kata lain software engineering merupakan sebuah metodologi pengembangan perangkat lunak (software) yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem hingga pada tahap pemeliharaan sistem setelah digunakan dengan tujuan untuk membuat perangkat lunak yang tepat dengan metode yang tepat.
Pengembangan sistem informasi merupakan proses pengembangan sistem untuk menghasilkan sistem informasi (CBIS atau computer based information system) dimana metodologi pengembangan sistem digunakan sebagai sarana untuk meningkatkan pengelolaan dan pengendalian komponen sistem informasi (sumber daya manusia, hardware, software, jaringan, sumberdaya data dan produk informasi). Ada dual hal yang perlu di pertimbangkan dalam pengembangan software yaitu : 1. Produk dan software. Produk, terdiri dari program, dokumen, dan data 2. Proses pengembangannya. Proses terdiri dari proses manajemen dan proses teknikal. Produk dari perangkat lunak dipantau melewati beberapa tahap pengembangan yang dikenal juga sebagai System Development Life Cycle (SDLC). Contoh dari SDLC antara lain model waterfall, model V, model spiral, prototyping dan lain-lain. Sedangkan proses manajemen dalam pengembangan software lunak terdiri atas manajemen proyek, configuration management, quality assurance management. Sementara, proses teknikal merupakan metode yang diaplikasikan pada tahap tertentu dalam pengembangan software, yang didalamnya termasuk metode analisis, metode desain, metode pemrograman, dan metode testing.
2.3
Software Maintenance Menurut McCall (1997) kriteria yang mempengaruhi kualitas software
terbagi menjadi tiga aspek penting yaitu : 1. Sifat-sifat operasional dari software (Product Operations). 2. Kemampuan software dalam menjalani perubahan (Product Revision) 3. Daya adaptasi atau penyesuaian software terhadap lingkungan baru (Product Transition). Dengan beragamnya tujuan perawatan perangkat lunak, maka jenis perawatan perangkat lunak dapat dibagi menjadi empat pula, yaitu perawatan perbaikan (correction),
perawatan
peningkatan
kinerja
(improvement),
perawatan
penyesuaian (adaptation), dan perawatan pencegahan (prevention). Akan tetapi, secara umum, jenis perawatan perangkat lunak dapat dikelompokkan kedalam dua
kategori besar, yaitu perawatan perbaikan (correction) dan perawatan peningkatan (enhancement). Perawatan jenis kedua mencakup perawatan improvement, adaptation, dan prevention.
2.4
Aspek Kegiatan Maintenance Aktivitas pemeliharaan yang pertama terjadi karena asumsi yang salah
pada saat uji coba yaitu kesalahan-kesalahan tersembunyi pada perangkat lunak yang cukup besar. Menurut O’Brien (2005) bahwa dibutuhkan pembagian kegiatan maintenance ke dalam empat aspek. Pemeliharaan perangkat lunak dapat dibedakan menjadi:
Adaptive, diartikan sebagai modifikasi sistem untuk mengatasi perubahan lingkungan software. Aktivitas yang kedua ini terjadi karena pertumbuhan atau perkembangan perangkat lunak atau perangkat keras sehingga memerlukan modifikasi dari perangkat lunak yang telah dibuat.
Perfective, diartikan sebagai tindakan baru implementasi atau perubahan pengguna peralatan yang mana memperhatikan fungsi tambahan untuk software. Aktivitas ini terjadi pada saat perangkat lunak yang telah dibuat dan dilakukan uji cobs kemudian dipergunakan oleh user. Setelah dipergunakan oleh user mungkin timbul permintaan tambahan fungsi sesuai dengan keinginan pemakai.
Corrective, diartikan sebagai deteksi dan perbaikan masalah, yang ditemukan oleh pengguna. Aktivitas ini terjadi pada saat produk dipakai dan hasil yang didapat oleh pamakai baik berupa kesalahan yang timbul maupun kesalahan dalam bentuk keluaran yang tidak sesuai.
Preventive, diartikan sebagai peningkatan kemampuan software atau reabilitas untuk menghindari masalah di masa yang akan datang. Pemeliharaan yang terakhir dilakukan untuk menghadapi kemajuan perangkat lunak atau perangkat keras di masa mendatang, umpamanya penambahan fungsifungsi atau melengkapi fungsi-fungsi yang telah ada.
2.5
Maintenance Planning Activity Aktivitas penting untuk maintenance perangkat lunak adalah perencanaan.
Jika tahap development berlangsung 1-2 tahun, maka fase maintenance berlangsung selama bertahun-tahun. Memperkirakan secara akurat sumber daya yang digunakan adalah elemen kunci dalam rencana maintenance. Sumber daya yang didalamnya termasuk biaya harus dimasukkan dalam rencana anggaran proyek. Rencana maintenance harus dimulai dengan membuat atau menentukan tujuan kualitas perangkat lunak. Konsep dan perencanaan maintenance : • Mengandung ruang lingkup (scope) maintenance perangkat lunak. • Proses setelah perangkat lunak selesai. • Harus diketahui siapa yang akan melakukan maintenance. • Perkiraan biaya maintenance siklus hidup perangkat lunak.
2.6
Teknik-teknik Maintenance Software maintenance yang efektif dilakukan dengan teknik yang spesifik
atau khusus untuk maintenance. Beberapa teknik praktis yang biasa dipakai maintener akan dijelaskan di bawah ini. 1. Program Comprehension Programmers menghabiskan banyak waktu untuk membaca dan mengerti program dalam rangka mengimplementasikan perubahan. Code browsers merupakan tools kunci dalam program comprehension. Dokumentasi yang singkat dan jelas dapat membantu dalam program comprehension. Berdasarkan atas pentingnya subtopik ini, maka IEEE Computer Society mengadakan pelatihan yang diadakan setiap tahunnya mengenai program comprehension. 2. Re-engineering Reengineering biasanya tidak dilakukan untuk meningkatkan kemudahan melakukan maintenance (maintainability) namun untuk mengganti legacy system yang sudah berumur. Arnold [Arn92] membahas topik ini secara luas meliputi konsep, tools, teknik, studi kasus, risiko dan keuntungan reengineering. Refactoring atau transformasi program yang mengorganisasi ulang (reorganisasi) tanpa mengubah perilaku sistem sekarang digunakan
dalam reverse engineering untuk meningkatkan struktur program berorientasi objek. 3. Reverse engineering Reverse engineering adalah proses menganalisa subjek sistem untuk mengindentifikasi komponen sistem dan hubungan yang terjadi di dalamnya untuk di representasikan dalam bentuk lain atau pada level abstraksi yang lebih tinggi. Reverse engineering dilkukan secara pasif, artinya tidak mengubah sistem atau menghasilkan sistem yang baru. Sebuah usaha reverse engineering sederhana mungkin menghasilkan sesuatu yang disebut graphs dan control flow graphs dari source code. Jenis dari reverse engineering antara lain redocumentation dan design recovery. Date Reverse Engineering mempunyai pengaruh penting beberapa tahun belakangan. Topik Reverse engineering menjadi bahan diskusi dalam acara tahunan Working Conference on Reverse Engineering (WCRE). 4. Impact Analysis Impact analysis mengidentifikasi keseluruhan sistem dan produk sistem yang dipengaruhi oleh permintaan perubahan (change request) dan membuat perkiraan sumber daya yang diperlukan untuk melakukan perubahan. Dilakukan setelah permintaan perubahan (change request) diterima oleh configuration management process. Beberapa hal penting tentang impact analisis:
Menentukan
ruang
lingkup
perubahan
untuk
perencanaan
dan
implementasi.
Membuat perkiraan sumber daya yang diperlukan untuk melakukan kegiatan secara akurat.
Menganalisa untung / rugi perubahan yang diminta.
Melakukan komunikasi dengan bagian lain tentang kompleks tidaknya perubahan yang dilakukan.
BAB III PEMBAHASAN
3.1
Urgensi Maintenance dalam Pengembangan Software Software maintanence menjadi bagian dari keberlangsungan sebuah
software (software sustainment). Software yang dapat di maintenance akan mendukung perusahaan dalam memecahkan solusi sesuai dengan perubahan lingkungan bisnis. Bila suatu software tidak dapat di maintenance maka sofrware tersebut tidak dapat mendukung kinerja dari perusahaan atau pengguna. Software maintenance menjadi sangat penting karena memberikan porsi yang besar dalam biaya lifecycle keseluruhan. Ketidakmampuan untuk melakukan perubahan software secara cepat dan reliable akan menyebabkan kehilangan peluang bisnis yang dimiliki. Maintenance pada software perlu dilakukan dengan cara memonitor dan mengevaluasi kinerja pada software yang sudah ada. Modifikasi atau perubahan diperlukan apabila terdapat perubahan dari organisasi itu sendiri baik yang berkaitan dalam hal struktur organisasi maupun perubahan cara kerja dan juga pengembangan bisnis (faktor external maupun faktor internal). Penyesuaian pada maintenance software dapat dilakukan dengan update sistem yang dimulai dari identifikasi permasalahan pada sistem yang sudah berjalan. Apabila suatu sistem tidak diperhatikan sisi maintenance-nya, maka sinergi antara perubahanperubahan/ kemajuan yang terjadi dalam perusahaan tidak dapat langsung diaplikasikan dalam software, yang dalam hal ini merupakan faktor penunjang dalam efisiensi dan efektivitas. Maintenance software perlu memperhatikan beberapa karakteristik: Karakteristik
Sub karakteristik
Functionality : Software untuk menjalankan fungsinya sebagimana kebutuhan sistemnya. Reliability : Kemampuan software untuk dapat tetap tampil sesuai dengan fungsi ketika digunakan.
Suitability, accuracy, interoperability, security Maturity, Fault tolerance, Recoverability
Understanbility, Learnability, Usability : Kemampuan software untuk Operability, Attractiveness menampilkan performans relatif terhadap penggunaan sumberdaya. Time behaviour, Resource Utilization Efficiency : Kemampuan software untuk menampilkan performans relatif terhadap penggunaan sumberdaya. Analyzability, Changeability, Stability, Maintainability : Kemampuan software untuk dimodifikasi Testability (korreksi, adaptasi, perbaikan) Adaptability, Installability Portability : Kemampuan software untuk ditransfer dari satu lingkungan ke lingkungan lain. Tabel 1. Karakteristik Software: ISO 9126
Untuk menghasilkan software yang baik dan berkualitas maka perangkat lunak tersebut harus memiliki kriteria : Functionality, Reliability, Usability, Efficiency, Maintainability, dan Portability. Penggunaan kriteria tersebut akan menghasilkan keuntungan bagi perusahaan penguna software tersebut. Berdasarkan uraian diatas maka, urgensi dari pemeliharaan sistem atau system maintenance adalah:
Memperbaiki Kesalahan (Correcting Errors) Maintenance dilakukan untuk mengatasi kegagalan dan permasalahan yang muncul saat sistem dioperasikan. Sebagai contoh, maintenance dapat digunakan untuk mengungkapkan kesalahan pemrograman (bugs) atau kelemahan selama proses pengembangan yang tidak terdeteksi dalam pengujian sistem, sehingga kesalahan tersebut dapat diperbaiki.
Menjamin dan Meningkatkan Kinerja Sistem (Feedback Mechanism) Kajian pasca implementasi sistem merupakan salah satu aktivitas maintenance yang meliputi tinjauan sistem secara periodik. Tinjauan periodik atau audit sistem dilakukan untuk menjamin sistem berjalan dengan baik, dengan cara memonitor sistem secara terus-menerus terhadap potensi masalah atau perlunya perubahan terhadap sistem. Sebagai contoh, saat user menemukan errors pada saat sistem digunakan, maka user dapat memberi umpan balik atau feedback kepada spesialis informasi guna meningkatkan
kinerja
sistem.
Hal
ini
yang
menjadikan
system
maintenance perlu dilakukan secara berkala, karena system maintenance akan senantiasa memastikan sistem baru yang di implementasikan berjalan dengan baik dan sesuai dengan tujuan penggunaanya melalui mekanisme umpan balik.
Menjaga Kemutakhiran Sistem (System Update) Selain sebagai proses perbaikan kesalahan dan kajian pasca implementasi, system maintenance juga meliputi proses modifikasi terhadap sistem yang telah dibangun karena adanya perubahan dalam organisasi atau lingkungan bisnis. Sehingga, system maintenance menjaga kemutakhiran sistem (system update) melalui modifikasi-modifikasi sistem yang dilakukan. Selain itu, urgensi dari pemeliharaan sistem atau system maintenance
dalam suatu organisasi/ perusahaan adalah sebagai berikut:
Mengurangi pengeluaran dalam bidang investasi teknologi.
Membantu perusahaan memecahkan masalah dengan tetap mengikuti perubahan lingkungan dan prosedur yang terjadi.
Efektivitas biaya. Menghindari kerugian yang diakibatkan oleh munculnya kesalahan pada perangkat lunak yang berakibat pada pengguna terakhir. Biaya yang dikeluarkan akan lebih sedikit jika dilakukan pendektesian awal terhadap kesalahan yang terjadi pada perangkat lunak tersebut.
Efisiensi waktu Dilakukannya pengujian terhadap perangkat lunak akan menghindari perusahaan dari resiko kerugian yang terjadi dan waktu yang lebih lama untuk melakukan perbaikan terhadap perangkat lunak tersebut.
Fokus pada pengembangan bisnis. Perangkat
lunak
yang
tidak
memiliki
kesalahan
(bug)
akan
memaksimalkan kinerja dari perusahaan dengan mendukung kegiatan bisnis lebih baik dan mendukung penyelesaian masalah lebih cepat dengan penggunaan perangkat lunak tersebut.
Peningkatan loyalitas pelanggan. Software maintenance yang dilakukan oleh pihak ketiga / outsourcing akan menghemat waktu yang berharga bagi perusahaan. Seperti akan
diperoleh cukup waktu untuk fokus pada kegiatan penting bisnis dan mengoptimalkan pelayanan terhadap pelanggan untuk meningkatkan loyalitas dan kepuasan terhadap perusahaan.
Membuat software tersebut menjadi kategori software berkualitas.
Mengambil peluang bisnis yang ada, dengan maintenance software atau sistem
informasi,
akan
mengevaluasi
sistem
yang
ada
dan
memodifikasinya, bila sebuah sistem usang atau rusak maka organisasi tidak akan dapat mengambil peluang bisnis yang ada dengan proses yang efektif dan efisien.
Menjaga agar software tidak menjadi usang. Keusangan software atau sistem informasi akan merugikan organisasi, organisasi menjadi tidak optimal dalam memanfaatkan software pun menghasilkan kinerja yang tidak optimal, sehingga proses maintenance menjaga hal ini agar keusangan tidak terjadi.
BAB IV KESIMPULAN
Besarnya biaya yang harus dikeluarkan untuk membangun sebuah sistem informasi baru, membuat perusahaan harus bisa memelihara atau maintenance sistem informasi yang telah dimiliki atau dibeli. Pentingnya dilakukan maintenance dalam proses pengembangan software yaitu untuk menghindari terjadinya kesalahan (bug) dalam perangkat lunak. Hal tersebut akan meminimalkan pengeluaran biaya yang diakibatkan oleh kerugian yang diakibatkan oleh kesalahan yang terjadi pada software tersebut. Dengan adanya proses maintenance yang dilakukan secara rutin dan berkala, perusahaan dapat dengan mudah melakukan penyesuaian terhadap lingkungan bisnis yang terus berkembangan dan memanfaatkan peluang bisnis yang ada untuk mencapai tujuan perusahaan.
DAFTAR PUSTAKA
April, Alain et al. 2004. Software Maintenance Maturity Model (SMmm): The software maintenance process model. Computer Science, Laboratory for Advanced Networking, University of Kentucky. Indrajit, Richardus Eko. 2001. Pengantar Konsep Dasar Manajemen Sistem Informasi dan Teknologi Informasi. Jakarta: Gramedia. McCall, J. A., P. K. Richards, et al. (1997). Factors in Software Quality US Rome Air Development Reports. O’Brien, J. A. 2005. Pengantar Sistem Informasi, Perspektif Bisnis dan Manajerial. Edisi 12. Terjemahan: Introduction to Information Systems, 12th Ed. Palupi W. (editor), Dewi F. dan Deny A. K. (penerjemah). Penerbit Salemba Empat, Jakarta.