I. PENDAHULUAN 1.1. Latar Belakang Kemajuan teknologi pada era sekarang terlihat dengan banyaknya software yang dikembangkan sesuai dengan kebutuhan pengguna. Software yang dikembangkan tersebut hendaknya dapat dengan baik dan mudah digunakan oleh pengguna. Selain itu dalam proses penjalanan/penggunaannya software tersebut dapat dilakukan pemeliharaan dan dapat dilakukan pengembangan jika diperlukan dikemudian hari. Software yang akan digunakan oleh pengguna harus memiliki kualits yang baik. Software yang berkualitas juga dapat dilakukan maintainability dalam proses pelaksanaannya karena perlunya pengembangan dan perbaikan pada software tersebut. maintainability pada sebuah software sangatlah diperlukan karena dapat menambah fungsionalitas dari software tersebut. Dalam pemanfaatan software dan pengembangan siste informasi di sebuah perushaan tidak lepas dari adanya kerjasama dengan pihak ketiga (Outsourcing). Outsourcing merupakan penyerahan tugas atau pekerjaan yang berhubungan dengan operasional perusahaan penggunaan jasa outsorcing bagi perusahaan karena perusahaan dapat berfokus pada kegiatan utama perusahaan sehingga penggunaan sistem informasi dapat diserahkan kepada pihak ketiga. Kebijakan penggunaan outsorcing tersebut juga perlu diperhatikan dan perlu adanya pemahaman sehingga dapat diperoleh hasil yang optimal pada sistem informasi yang aka digunakan oleh perusahaan. Pengembangan sistem informasi pada perusahaan juga diperlukan sebuah model yang dapat membantu dalam memperlancar kegiatan perusahaan dengan penggunaan sistem inforamasi yang baik. Penggunaan model tersebut haruslah sesuai dengan kebutuhan dari perusahaan dan sejalan dengan kegiatan dari perusahaan. Penggunaan model yang baik bagi perusahaan tersebut sangat perlu diketahui untuk meningkatkan kinerja dar perusahaan. Untuk itu dalam meningkatkan kinerja dari perusahaan maka diperlukan informasi mengenai penggunaan sistem informasi yang baik mencakup kriteria software yang berkualitas, maintainability dari sebuah software, penggunaan 1 outsourcing pada perusahaan, dan penerapan model sistem informasi dalam pengembangan sistem informasi di suatu perusahaan. 1.2. Tujuan Tujuan dari paper ini adalah untuk mengetahui kriteria dari software yang berkualitas, pentingnya dilakukan maintability pada sebuah software, penggunaa outsorcing TI pada perusahaan dan model sistem informasi yang dapat digunakan untuk perusahaan. 2 II. TINJAUAN PUSTAKA 2.1. Software Perangkat lunak (Software) merupakan sekumpulan instruksi yang diberikan untuk mengendalikan perangkat keras komputer, sekumpulan instruksi tersebut dikenal dengan sebutan program komputer (Kadir, 2003). Perangkat luanak biasanya dikelompokkan menjadi program aplikasi dan program sistem. Program sistem (support software) adalah program yang digunakan untuk mengontrol sumberdaya komputer, seperti CPU dan peranti masukan/keluaran. Kedudukan program ini adalah sebagai perantara antara program aplikasi dan perangkat keras komputer. Program sistem dapat dikelompokkan menjadi tiga kelompok yaitu program pengendali sistem, program pendukung sistem, dan program pengembangan sistem. Program aplikasi adalah program yang dibuat oleh pemakai yang ditujukan untuk melakukan tugas khusus. Program seperti ini biasa dikelompokkan menjadi dua, yaitu program aplikasi serbaguna dan program spesifik (Kadir, 2003). 2.2. Kualitas Software software quality adalah pemenuhan terhadap kebutuhan fungsional dan kinerja yang didokumentasikan secara eksplisit, pengembangan standar yang didokumentasikan secara eksplisit, dan sifat-sifat implisit yang diharapkan dari sebuah software yang dibangun secara profesional (Dunn, 1990). Berdasarkan definisi di atas terlihat bahwa sebuah software dikatakan berkualitas apabila memenuhi tiga ketentuan pokok: Memenuhi kebutuhan pemakai – yang berarti bahwa jika software tidak dapat memenuhi kebutuhan pengguna software tersebut, maka yang bersangkutan dikatakan tidak atau kurang memiliki kualitas. Memenuhi standar pengembangan software – yang berarti bahwa jika cara pengembangan software tidak mengikuti metodologi standar, maka hampir dapat dipastikan bahwa kualitas yang baik akan sulit atau tidak tercapai; dan 3 Memenuhi sejumlah kriteria implisit – yang berarti bahwa jika salah satu kriteria implisit tersebut tidak dapat dipenuhi, maka software yang bersangkutan tidak dapat dikatakan memiliki kualitas yang baik. Tantangan dalam pembuatan software antara lain adalah menciptakan software yang memperbolehkan berbagai macam mesin untuk saling berkomunikasi melewati jaringan intranet dan internet, menciptakan arsitektur aplikasi yang sederhana namun canggih sesuai dengan kebutuhan pasar di era globalisasi, mendistribusikan source code sehingga pelanggan bisa membuat modifikasi lokal sesuai dengan kebutuhannya, serta menciptakan aplikasi yang menfasilitasi komunikasi dan distribusi produk secara masal mengunakan konsep yang berkembang. Tabel 1. Kualitas Software: IS0 9126 Karakteristik Functionality: software untuk menjalankan fungsinya sebagaimana kebutuhan sistemnya Sub karakteristik Suitability, Accuracy, Interoperability,Security Reliability:Kemampuan software untuk dapat tetap tampil sesuai dengan fungsinya ketika digunakan Maturity, Fault tolerance, Recoverability Usability:Kemampuan software untuk mudah dimengerti, dipelajari, digunakan dan disukai pengguna Understandability, Learnability, Operability, Attractiveness Efficiency: Kemampuan software untuk menampilkan performans relatif terhadap penggunaan sumberdaya Time Behavior, Resource Utilization Maintainability: Kemampuan software untuk dimodifikasi (koreksi,adaptasi,perbaikan) Portability: Kemampuan software untuk ditransfer dari satu lingkungan ke lingkungan lain Analyzability, Changeability, Stability, Testability Adaptability, Installability Penilaian yang dapat digunakan untuk evaluasai software. faktor evaluasi software menurut O’briens (2010) sebagai berikut: 1. Kualitas: Apakah bebas kecacatan (bug) ataukah banyak kesalan dalam kode program? 2. Efisiensi: Apakah software tersebut memiliki sistem kode program yang dikembangkan dengan baik yang tidak menggunakan banyak waktu CPU, kapasitas memori atau disk space? 3. Fleksibilitas: Apakah dapat melakukan proses bisnis kita dengan mudah, tanpa banyak modifikasi? 4 4. Keamanan: Apakah ada prosedur pengendalian kesalahan, lerusakan fungsi, dan penggunaan yang tidak tepat? 5. Konektivitas: Apakah web-enable sehingga dapat dengan mudah mengakses internet, intranet, dan ekstranet dengan sendirinya, atau dengan bekerja sama degan browser web atau software jaringan lainnya. 6. Pemeliharaan: Apakah fitur-fitur baru dan perbaikan kecacatan (bug) dapat dengan mudah diimplementasikan oleh pengembang software kita sendiri? 7. Dokumentasi: Apakah software didokumentasikan dengan baik? Apakah mencakup layar bantuan dan agen software yang membantu? 8. Hardware: Apakah hardware yang ada memiliki fitur yang dibutuhkan agar software ini dapat berfungsi dengan baik? 9. Faktor-faktor lainnya: biaya,keandalan,ketersediaan, Apakah kompatibilitas, karakteristik modularitas, kinerja, teknologi, ergonomi, keleluasaan, dan pendukung software tersebut? 2.3. Outsorcing Outsourcing merupakan penyerahan tugas atau pekerjaan yang berhubungan dengan operasional perusahaan ataupun pengerjaan proyek kepada pihak ketiga atau perusahaan ketiga dengan menetapkan jangka waktu tertentu dan biaya tertentu dalam proses pengembangan proyeknya. O’Brien dan Marakas (2010) menyatakan outsourcing dalam arti luas adalahpembelian sejumlah barang atau jasa yang semula dapat dipenuhi olehinternal perusahaan tetapi sekarang dengan memanfaatkan mitraperusahaan sebagai pihak ketiga. Dalam kaitannya dengan TI, outsorcing digunakan untuk menjangkau fungsi TI secara luas dengan mengontrakpenyedia layangan eksternal Penggunan outsorcing IT pada perusahaan pada umumnya karena adalah penghematan biaya (cost saving), lebih fokus pada kegiatan utama (core business), pemanfaatan sumber daya (resource), waktu (Time), dan infrastruktur yang lebih baik. Keunggulan penggunaan outsorcing pada perusahaan sebagai berikut: a. Biaya menjadi lebih murah karena perusahaan tidak perlu membangun sendiri 5 b. fasilitas SI dan TI. c. Memiliki akses ke jaringan para ahli dan profesional dalam bidang SI/TI. d. Perusahaan dapat mengkonsentrasikan diri dalam menjalankan dan mengembangkan bisnis intinya. e. Dapat mengeksploitasi skill dan kepandaian dari perusahaan outsource dalam mengembangkan produk yang diinginkan perusahaan. f. Mempersingkat waktu proses karena beberapa outsourcer dapat dipilih sekaligus untuk saling bekerja sama menyediakan layanan yang dibutuhkan perusahaan. g. Fleksibel dalam merespon perubahan SI yang cepat sehingga perubahan arsitektur SI berikut sumberdayanya lebih mudah dilakukan. Penerapan teknologi terbaru dapat menjadi competitive advantage bagi perusahaan outsource. h. Meningkatkan fleksibilitas untuk melakukan atau tidak melakukan investasi,sehingga mengurangi resiko kegagalan investasi. Kemudian kelemahan dari penggunaan oautsorcing sebagai berikut: a. Permasalahan pada moral karyawan, penanganan masalah karyawan outsource b. lebih sulit dibandingkan karyawan tetap. c. Kurangnya kontrol perusahaan pengguna terhadap sistem informasi yang d. dikembangkan dan terkunci oleh penyedia outsourcing melalui perjanjian e. kontrak. f. Ketergantungan dengan perusahaan lain yaitu perusahaan pengembang sistem g. informasi akan terbentuk. h. Kurangnya perusahaan dalam mengerti teknik sistem informasi agar bisa i. dikembangkan atau diinovasi di masa mendatang, karena yang j. mengembangkan tekniknya adalah perusahaan outsource. k. Jurang antara karyawan tetap dan karyawan outsource. l. Perubahan dalam gaya manajemen. m. Proses seleksi kerja yang berbeda. 6 n. Informasi-informasi yang berhubungan dengan perusahaan kadang diperlukan o. oleh pihak pengembang aplikasi, dan kadang informasi penting juga perlu p. diberikan, hal ini akan menjadi ancaman bagi perusahaan bila bertemu dengan pihak pengembang yang nakal. Dalam outsourcing, outsourcer dan mitraoutsourcing-nya memilikihubungan yang lebih besar jika dibandingkan dengan hubungan antarapembeli dan penjual. Hal ini dikarenakan outsourcer mempercayakaninformasi penting perusahaan kepada mitraoutsourcing-nya. Salah satukunci kesuksesan dari outsource adalah kesepakatan untuk membuathubungan jangka panjang (long term relationship) tidak hanya kepadaproyek jangka dekat. Alasannya sangat sederhana, yaitu outsourcer harusmemahami proses bisnis dari perusahaan. Perusahaan juga akan menjadisedikit tergantung kepada outsourcer (Rahardjo, 2006). Saat ini,outsourcing tidak lagi terbatas pada outsourcing layanan TI tetapi jugasudah merambah ke bidang jasa keuangan, jasa rekayasa, jasa kreatif,layanan entry data dan masih banyak lagi. Menurut O’Brien dan Marakas (2011), beberapa pertimbangan perusahaan untuk memilih strategi outsourcing sebagai alternatif dalam mengembangkan Sistem Informasi Informasi diantaranya: 1. Biaya pengembangan sistem sangat tinggi. 2. Resiko tidak kembalinya investasi yang dilkukan sangat tinggi. 3. Ketidakpastian untuk mendapatkan sistem yang tepat sesuai dengan spesifikasi yang diinginkan. 4. Faktor waktu/kecepatan. 5. Proses pembelajaran pelaksana sistem informasi membutuhkan jangka waktu yang cukup lama. 6. Tidak adanya jaminan loyalitas pekerja setelah bekerja cukup lama dan terampil Jenis-jenis outsourcing Menurut Turban, et.al (2007) terdiri dari : • Total Outsourcing, yaitu penyerahan tanggung jawab sepenuhnya padalayanan tertentu dalam perusahaan, dalam bidang IT, vendor menyediakan personel, hardware dan software. 7 • Selective Outsourcing, yaitu penyerahan tanggung jawab pada bagian tertentu pada layanan tertentu dalam perusahaan, disesuaikan dengan bidang keahlian vendor. Misalnya SAP menyediakan software dan IBM menyediakan hardware. • De facto sourcing, yaitu penyerahan tanggung jawab pada pihak luar dikarenakan adanya latar belakang sejarah atau politik, dibandingkan dengan hasil evaluasi objektif. Misalnya dikarenakan salah seorang eksekutif memiliki perusahaan IT diluar jabatannya, maka perusahaan diarahkan untuk melakukan outsource pada perusahaan IT miliknya. 2.4. Pengembangan Sistem Informasi Proses pengembangan perangkat lunak terdiri dari beberapa model sebagai berikut: a. Code and Fix b. System Development Life Cycle (SDLC) c. Prototyping d. Spira e. CASE Dalam pengembangan perangkat lunak dalam model code and fix terdiri dari tahapan Code (Pemrograman) dan Fix (Perbaikan/Pemeliharaan) dengan kriteria transisi berupa Code (Program). Model proses ini merupakan proses pengembangan perangkat lunak pada awal era pengolahan data yang memiliki ciri menggunakan 3GL atau lebih rendah dan biaya pemeliharaan yang besar. Pada model spiral tahapan yang terdapat pada model tersebut mencakup: determine, objectives, alternatives, dan constraints. Kriteria transisi yang digunakan adlaah dokumen hasil analisa resiko, sehingga sering dikenal sebagai “Risk Driven Software Process”. Model ini merupakan kombinasi SDLC, Prototyping dan Risk Analysis dan digunakan untuk pengembangan proyek yang berskala besar, dengan memperhatikan pengaruh resiko dilihat dari segi finansial maupun keamanan (jiwa manusia). Pendekatan sistem (system approach) untuk penyelesaian masalah menggunakan orientasi sistem untuk merumuskan masalah dan peluang dan 8 mengembangkan solusi. Menganalisis masalah dan memformulasikan solusi melibatkan aktivitas yang saling berhubungan dibawah ini: 1. Kenali dan rumuskan masalah atau peluang dengan menggunakan pemikiran sistem 2. Kembangkan dan evaluasi alternatif solusi sistem 3. Pilih solusi sistem yang memenuhi persyaratan 4. Desain solusi sistem yang dipilih 5. Implementasikan dan evaluasi kesuksesan sistem yang telah didesain Menggunakan pendekatan sistem untuk mengembangkan solusi sitem informasi dapat dipandang sebagai proses multilangkah yang disebut siklus pengembangan sistem informasi (Information System Development Cycle) yang juga dikenal sebagai siklus hidup pengembangan sistem (system development life cycle-SDLC). dalam siklus ini terjadi proses yang mencakup langkah : investigasi, analisis, desain, implementasi, dan pemeliharaan. Semua aktivitas yang terlibat saling berhubungan erat satu sama lain dan saling terikat. Gambar 1. System Development Life Cycle (SDLC) (O’briens, 2010) Proses pengembangan sistem seringkali mengambil format, atau mencakup pendekatan pembuatan prototipe. Pembuatan protoipe (prototyping) adalah pengembangan yang cepat dan pengujian terhadap model kerja, atau prototipe, 9 dari aplikasi baru dalam proses yang interaktif dan berulang-ulang yang bisa digunakan oleh ahli SI dan praktisi bisnis. Pembuatan prototipe membuat proses pengembangan lebih cepat dan lebih mudah, khususnya untuk proyek dimana persyaratan pemakai akhir sulit dirumuskan. Pembuatan prototipe terkadang disebut juga desain aplikasi cepat (rapid application design-RAD). Pembuatan prototipe dapat digunakan untuk aplikasi besar dan aplikasi kecil. Umumnya, sistem bisnis besar masih perlu menggunakan pendekatan pengembangan sistem tradisional, tetapi sebagian sistem tersebut sering kali dapat dibuatkan prototipe-nya. Prototipe aplikasi bisnis yang diperlukan oleh pemakai akhir dikembangkan secara cepat dengan menggunakan berbagai alat software pengambang aplikasi. Kemudian prototipe tersebut diperbaiki berkali-kali hingga dapat diterima. Model CASE (Computer Aided Software Engineering) merupakan metode berbasis proses pengembangan perangkat lunak yang didukung oleh perangkat keras dan perangkat lunak. 10 III. PEMBAHASAN 3.1. Jelaskan atribut-atribut dari software yang berkualitas? Apa yang perlu dilakukan dalam pembangunan sistem informasi agar software penunjang sistem informasi yang dibangun tersebut memenuhi standar kualitas yang telah ditetapkan oleh ISO? Software yang berkualiatas merupakan software yang dapat dengan layak, mudah dimengerti dan digunakan oleh pemakainya. Bagi pengguna kualitas dari software sangatlah penting. Kualitas software yaitu penyesuaian kebutuhan fungsional dan performa yang ditetapkan secara eksplisit, standar pengembangan yang terdokumentasi secara eksplisit, dan karakteristik implisit yang diharapkan dari seluruh software yang dikembangkan secara professional. Jadi software yang berkulitas secara garis besar harus dapat memenuhi kebutuhan pemakai yang berarti jika software tersebut tidak dapat memenuhi kebutuhan penggunasoftware tersebut, maka dapat dikatakan tidak atau kurang memiliki kualitas. Kemudian software harus memenuhi standar pengembangan software yang berarti bahwa jika cara pengembangan software tidak mengikuti metodologi standar, maka hampir dapat dipastikan bahwa kualitas yang baik akan sulit atau tidak tercapai. Serta memenuhi sejumlah kriteria implisit yang berarti bahwa jika salah satu kriteria implisit tersebut tidak dapat dipenuhi maka software tersebut dapat dikatakan tidak memiliki kulitas yang baik. Dalam perkembangannya untuk menghasilkan software yang dapat diterima oleh pengguna akhir (end user) maka telah ditetapkan standar yang harus dipenuhi oleh software tersebut. Beberapa kriteria yang harus dimiliki agar software tersebut berkualitas menurut International Organization for Standardization (ISO) 9126 sebagai berikut: 1. Functionality yaitu software untuk menjalankan fungsinya sebagaimana kebutuhan sistemnya. 2. Reliability yaitu Kemampuan software untuk dapat tetap tampil sesuai dengan fungsinya ketika digunakan 11 3. Usabilit yaitu Kemampuan software untuk mudah dimengerti, dipelajari, digunakan dan disukai pengguna 4. Efficiency yaitu Kemampuan software untuk menampilkan performans relatif terhadap penggunaan sumberdaya 5. Maintainability yaitu Kemampuan software untuk dimodifikasi (koreksi,adaptasi,perbaikan) 6. Portability yaitu Kemampuan software untuk ditransfer dari satu lingkungan ke lingkungan lain Selain itu sub karakteristik yang harus dimiliki oleh software yang berkualitas seperti gambar di bawah : Gambar 2. Kualitas Model ISO/IEC 9126-1 Atribut-atribut diatas merupakan bagian yang diperlukan dalam sebuah software yang berkualitas. Dalam pembangunan sistem informasi keseluruhan atribut diatas harus dipenuhi agar dihasilkan software yang berkualitas. McCall et.al., (1977) mengusulkan suatu penggolongan faktor-faktor atau kriteria yang mempengaruhi kualitas software. Faktor-faktor tersebut dibagi 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). 12 Gambar 3. Faktor kualitas software (McCall, 1977) Berdasarkan gambar diatas, McCall memberikan beberapa dekripsi yaitu : 1. Correctness (kebenaran), tingkat pemenuhan program terhadap kebutuhan yang dispesifikasikan dan memenuhi tujuan/misi pengguna. 2. Reliability (Keandalan), tingkat kemampuan program yang diharapkan dapat menampilkan fungsi yang dimaksud dengan presisi yang ditetapkan. 3. Efficiency (efisiensi), jumlah sumberdaya yang diproses dan kode yang diperlukan oleh program untuk melaksanakan fungsinya. 4. Integrity (Integritas), tingkat kemampuan pengawasan akses terhadap data atau software oleh orang-orang tertentu. 5. Usability, usaha yang diperlukan untuk mempelajari, mengoperasikan, menyiapkan masukan dan mengartikan keluaran program. 6. Maintainability, usaha yang diperlukan untuk menetapkan dan memperbaiki kesalahan dalam program. 7. Flexibility, usaha yang diperlukan untuk memodifikasi program operasional. 8. Testability, usaha yang diperlukan untuk menguji program untuk memastikan bahwa program melaksanakan fungsi yang telah ditetapkan. 9. Portability, usaha yang diperlukan untuk memindahkan program dari hardware/lingkungan sistem software tertentu ke yang lainnya. 13 10. Reusability, tingkat kemampuan program/bagian dari program yang dapat dipakai ulang dalam aplikasi lainnya, berkaitan dengan paket dan lingkup dari fungsi yang dilakukan oleh program. 11. Interoperability, usaha yang diperlukan untuk menggabungkan satu sistem dengan sistem lainnya. Pengukuran mengenai faktor-faktor kualitas software dapat dilakukan dengan melakukan penilaian dan pengukuran secara objektif seperti. Pengukuran biasanya dalam bentuk checklist dengan menggunakan skala 0-10. McCall menetapkan beberapa pengukuran yang dapat digunakan, diantaranya: a. Auditability, kemudahan yaitu penyesuaian terhadap standar yang dapat diperiksa. b. Accuracy, ketepatan perhitungan dan kontrol. c. Communication commonality, tingkatan dimana interface standar, protokol dan bandwidth digunakan. d. Completeness, tingkatan dimana implementasi lengkap dari fungsi yang dibutuhkan telah tercapai. e. Conciseness, kepadatan program dalam jumlah baris kode. f. Consistency, penggunaan rancangan dan teknik dokumentasi dalam satu bentuk diseluruh proyek pengembangan software. g. Data commonality, penggunaan struktur dan tipe data standar diseluruh program. h. Error tolerance, kerusakan yang muncul ketika program menemukan kesalahan/kegagalan. i. Execution efficiency, performa run-time suatu program. j. Expandability, tingkatan dimana rancangan arsitektural, data atau prosedur dapat dikembangkan. k. Generality, lingkup aplikasi potensial dari suatu komponen program. l. Hardware independece, tingkatan dimana software dipisahkan dari hardware yang mengoperasikannya. m. Instrumentation, tingkatan dimana pengawasan program memiliki operasi tersendiri dan mengidentifikasikesalahan yang terjadi. n. Modularity, kemandirian fungsional dari suatu komponen program. 14 o. Operability, kemudahan pengoperasian program. p. Security, ketersediaan mekanisme yang mengontrol atau menproteksi program dan data. q. Self-documentation, tingkatan dimana kode sumber menyediakan dokumentasi yang berarti. r. Simplicity, tingkatan dimana program dapat dimengerti tanpa kesulitan. s. Software system independence, tingkatan dimana program mandiri terhadap feature bahasa pemrograman nonstandar, karakteristik sistem operasi, dan batasan-batasan lingkungan lainnya. t. Traceability, kemampuan penelusuran ulang representasi rancangan atau komponen program yang sesungguhnya dengan kebutuhan awal (requirements). u. Training, tingkatan dimana software membantu dalam user yang baru dalam penerapan sistem. 3.2. Mengapa kita perlu memperhatikan faktor “maintainaibility” dari suatu software? Jelaskan urgensinya! Sebuah software adakalanya perlu dilakukan pengembangan dan perbaikan dalam penggunaannya. Pada proses tersebut terdapat kegiatan maintainbility bagi sebuah software. Maintainability didefinisikan secara kualitatif merupakan kemudahan suatu software untuk di mengerti, diperbaiki, diadaptasi dan/atau dikembangkan. Pentingnya maintainaibility tersebut karena pada saat pengembang software dihadapkan dengan mengubah atau memperluas spesifikasi software. Hal ini menggambarkan kemampuan suatu spesifikasi pengujian yang akan dimodifikasi untuk koreksi kesalahan, perbaikan, atau penyesuaian terhadap perubahan lingkungan atau persyaratan terhadap software tersebut. Untuk itu dalam maintainability sebuah software seperti yang telah di tentukan dalam ISO/IEC 9126 mengenai subkarakteristik dalam maintainability yang harus dimiliki oleh software yang berkualitas mengandung sub-sub karakteristik lain seperti Analyzability, Changeability, Stability, dan Testability. 15 Aspek analysability berkaitan dengan sejauh mana spesifikasi tes dapat didiagnosis kekurangan. Misalnya, spesifikasi tes harus terstruktur dengan baik untuk memungkinkan tinjauan kode. Uji arsitektur, gaya panduan, dokumentasi, dan kode umumnya terstruktur dengan baik adalah elemen yang memiliki pengaruh dalam kualitas properti ini. Aspek Changeability menggambarkan kemampuan dari spesifikasi tes untuk memungkinkan modifikasi yang diperlukan untuk dilaksanakan. Misalnya kode buruk terstruktur atau arsitektur tes yang tidak diupgrade mungkin memiliki dampak negatif pada aspek kualitas. Aspek sbailitas berkaitan dengan sejauh mana kemampuan dalam menghadapi dampak karena dilakukannya pengembangan atau modifikasi. Ghezzi et,al,. (1991) membagi pemeliharaan (maintenance) menjadi tiga kategori yitu: corrective, adaptive dan perfective. Pemeliharaan korektif (corrective) berkaitan dengan menghilangkan bug minor setelah pengembangan dan selesai pengujian. Proses ini juga terlibat setelah kegiatan pemeliharaan lainnya. Pemeliharaan adaptif (adaptive) berkaitan dengan perubahan perangkat lunak untuk mencerminkan perubahan dalam kebutuhan pengguna. Untuk perubahan contoh pengguna mungkin ingin menambahkan fungsionalitas lebih. Pemeliharaan perfektif (perfective) berusaha untuk meningkatkan algoritma yang digunakan dalam perangkat lunak untuk meningkatkan kinerja. Boehm (1982) menyatakan dalam perekayasaan perangkat lunak terdapat biaya pemeliharaan perangkat lunak atau perawatan perangkat lunak yang besar corrective (21%), adaptive (25%), preventive (4%) dan perfective (50%). Dalam pemelharaannya dibutuhkan biaya sekitar 49% yang lebih besar dari biaya pengembangannya sebesar 43%. Berdasarkan penjelasan diatas maka faktor maintainability pada sebuah software sangatlah penting. Dalam pelaksanaanya jika sebuah software tidak dilakukan maintainability maka akan menimbulkan biaya yang sangat besar untuk software tersebut selain itu akan semakin sulit untuk melakukan maintain terhadap software tersebut serta ada kemungkinan software tersebut kehilangan fungsionalitas tambahan. selain itu perlunya dilakukan maintainbility untuk menjaga performance dan mengoptimalkan software yang dipakai oleh pengguna. 16 3. Apa‐apa saja yang perlu diperhatikan bila organisasi mengambil akan kebijakan outsourcing dalam pengembangan sistem informasinya? Jelaskan! Penggunaan outsorcing pada perusahaan akan memaksimalkan kegiatan pada perusahaan dengan lebih memfokuskan pada tujuan dan kegiatan inti dari perusahaan tersebut. namun untuk memaksimalkan hal tersebut harus didukung oleh kinerja outsorcing yang baik juga dalam mengimpelementasikan sistem informasi pada perusahaan tersebut. outsorcing IT pada perusahaan dapat berupa pembelian sistem informasi teknologi atau yang telah dikembangkan oleh outsorcing tersebut. kegiatan outsorcing juga dapat berupa pengembangan sistem informasi dan modifikasi software pada perusahaan tersebut. Perusahaan yang akan mengambil kebijakan outsorcing maka dapat merujuk pada IT Governance Institute (2005) dengan memberikan aturan baku untuk outsourcing yang memiliki tahapan outsourcing life cycle sebagai berikut: 1. Kesesuaian penanda tanganan kontrak dan penanda tanganan proses yang diselesaikan. 2. Persetujuan Service Level Agreement (SLA) 3. Proses Opersional yang dikembangkan 4. Transisi tahapan layanan dan waktu pembayaran 5. Tim operasional, artikulasi yang jelas hubungan dan interface 6. Transisi dan Transformasi rencana penyelesaian 7. Undang-undang sukses, bonus dan penalti 8. Konsensus dalam menentukan tanggung jawab 9. Penilaian kelanjutan kinerja dan gaya supplier outsource Perusahaan yang akan mengambil kebijakan outsorcing hendaknya dapat memahami secara operasional dan strategiis siklus kerja dari outsorcing seperti yang disarankan oleh IT Governance Institute (2005) seperti gambar dibawah: 17 Gambar 4. Outsorcing lifecycle (ITGS, 2005) Menurut Pasaribu (2010), Hal-hal yang menjadi pertimbanganperusahaan dalam memilih outsourcing adalah: harga, reputasi yang baikdari pihak provider outsourcing, tenaga kerja yang dimiliki oleh pihak provider outsourcing, pengetahuan pihak provider mengenai bentuk darikegiatan bisnis perusahaan, pengalaman pihak provider outsource,eksistensinya, dan lain-lain. Adapun beberapa keuntungan dari pengelolaan SI dan TI dengansistemoutsourcing antara lain: 1.Biaya menjadi lebih murah karena perusahaan tidak perlu membangunsendiri fasilitas SI dan TI. 2.Memiliki akses ke jaringan para ahli dan profesional dalam bidang SI/TI. 3.Perusahaan dapat mengkonsentrasikan diri dalam menjalankan danmengembangkan bisnis intinya, karena bisnis non-inti telahdidelegasikan pengerjaannya melalui outsourcing 4.Dapat mengeksploitasi skill dan kepandaian dari perusahaan outsource dalam mengembangkan produk yang diinginkan perusahaan. 5.Mempersingkat waktu proses karena beberapa outsourcer dapat dipilihsekaligus untuk saling bekerja sama menyediakan layanan yangdibutuhkan perusahaan. 6.Fleksibel dalam merespon perubahan SI yang cepat sehinggaperubahan arsitektur SI berikut sumberdayanya lebih mudah dilakukankarena perusahaan 18 outsource SI pasti memiliki pekerja TI yangkompeten dan memiliki skill yang tinggi, serta penerapan teknologiterbaru dapat menjadi competitive advantage bagi perusahaan outsource. 7.Meningkatkan fleksibilitas untuk melakukan atau tidak melakukaninvestasi 4. Kalau anda dipercaya untuk memimpin pembangunan sistem informasi terintegrasi bagi perusahaan di tempat anda bekerja langkah apa saja yang akan anda lakukan? Jelaskan! Dalam pengembangan sistem informasi dapat dilakukan dengan tiga cara yaitu dikembangkan secara mandiri (inhouse development), dikembangkan oleh pihak ketiga (outsorcing development), dan membeli produk jadi. Dalam tahapan pengembangan mencakup kegiatan perancangan dan pembuatan sistem atau membeli sistem jadi yang telah ada (Marimin, et,al,.2006). Jadi jika saya dipercaya untuk membangun sitem secara mandiri maka saya akan mempertimbangkan dahulu beberapa aspek misalnya ruang lingkup, waktu, biaya, kualitas, sumber daya manusia, komunikasi, resiko, kebutuhan, dan integrasi. Pengembangan yang dilakukan juga harus disesuaikan dengan visi dan misi perusahaan. Kemudian saya akan memilih menggunakan model System Development Life Cycle (SDLC). sistem tersebut merupakan sebuah metodologi dalam pembangunan atau pengembangan sistem. Model tersebut memberikan kerangka kerja yang konsisten terhadap tujuan yang diinginkan dalam pembangunan dan pengembangan sistem. Metodologi dari SDLC dimulai dengan ide-ide yang berasal dari pengguna, melalui studi kelayakan, analisis dan desain sistem, pemrograman, pilot testing, implementasi dan analisis setelah diimplementasikan. Dokumentasi yang dibuat selama pengembangan sistem digunakan untuk perubahan dimasa yang akan datang. Beberapa ahli sistem inforamsi menyatakan bahwa SDLC merupakan pengembangan sitem secara tradisional dan memiliki beberapa tahap. Marimin, et,al,.(2006) memaparkan inti dari langkah-langkah dalam metodologi SDLC sebagai berikut: 19 1. Mengevaluasi sitem yang ada Dengan mengevaluasi akan diketahui kekurangan-kekuranan sistem. Hal ini dapat dilakukan dengan cara melakukan wawancara dengan pengguna yang menggunakan sistem tersebut dan melakukan konsultasi dengan orang-orang yang berkompeten di bidang tersebut. 2. Mendefinisikan kebutuhan sistem baru yang dibangun Kekurangan-kekurangan yang ada pada sistem lama harus dijelaskan secara spesifik sehingga menjadi perhatian untuk perbaikan sistem yang akan dibangun. Selain menganalisis dan mendefinisikan masalah, sistem informasi yang ada juga memprediksi kemungkinan solusi untuk sistem informasi yang akan dibangun atau dikembangkan serta proses organisasinya. 3. Mendesain sitem yang diusulkan Rencana-rencana yang akan dilakukan didasarkan/ difokuskan pada konstruksi fisik, perangkat keras, perangkat lunak, sistem operasi, pemrograman, komunikasi, dan masalah keamanan sistem informasi. Merancang output, input, struktur file, program, prosedur, perangkat keras, dan perangkat lunak yang diperlukan untuk mendukung sistem informasi. 4. Pengemangan sistem yang baru Komponen-komponen dan program harus tersedia dan di instal. Membangun perangkat lunak yang diperlukan untuk mendukung sistem dan melakukan pengujian secara akurat. Melakukan pengujian dan instalasi terhadap perangkat kerasdan mengoperasikan perangkat lunak. Pengguna yang akan menggunakan sistem harus dilatih da semua aspek yang terdapat dalam sistem informasi tersebut harus dicoba. 5. Penggunaan sistem yang baru Hal ini dapat dilakukan dengan berbagai cara. Sistem baru dapat diimplementasikan untuk sistem lama. Penerapan sistem baru sebagai pengganti sistem lama yang ada dapat dilakukan secara serentak maupun bertahap. Hal ini tergantung dar kesiapan organisasi, teknis, operasional, dan biaya yang dimiliki oleh organisasi tersebut. 6. Evaluasi harus dialkukan terhadap sistem informasi baru yang telah/sedang berjalan. 20 Hal yang dilakukan adalah mengevaluasi sejauh mana sistem telah dibangun dan seberapa bagus sistem telah dioperasikan. Pemeliharaan sistem dilakukan dengan sungguh-sungguh dan teliti secara terus-menerus, sehngga sistem informasi yang dibangun dapat bermanfaat bagi perusahaan. Dengan penggunaan model System Development Life Cycle (SDLC) dimana sistem informasi akan selalu berkembang menjadi lebih bak sesuai dnegan perkembangan zaman dan tuntutan perusahaan. 21 IV. KESIMPULAN Berdasarkan penjelasan mengenai kualitas software, pengembangan yang dilakukan oleh pihak ketiga, dan pembangunan sistem yang terintegrasi pada suatu perusahaan dapat disimpulkan bahwa: Software yang berkualitas merupakan software yang dapat memenuhi kebutuhan pemakai, software harus memenuhi standar pengembangan software, Serta memenuhi sejumlah kriteria implisit. Software yang berkualitas tersebut harus memiliki kriteria : Functionality, Reliability, Usability, Efficiency, Maintainability, dan Portability. Salah satu faktor yang dibutuhkan dalam sebuah software yaitu adanya maintainability yang merupakan kemudahan suatu software untuk di mengerti, diperbaiki, diadaptasi dan/atau dikembangkan. faktor maintainability pada sebuah software sangatlah penting. Jika sebuah software tidak dilakukan maintainability maka akan menimbulkan biaya yang sangat besar untuk software tersebut selain itu akan semakin sulit untuk melakukan maintain terhadap software tersebut. Penggunaan jasa otusorcing dalam perusahaan dapat memudahkan dan memaksimalkan kinerja, namun perlu dilakukan perhatian dan kerja sama yang baik dengan pihak outsourcing. Untuk menggunakan outsourcing perusahaan dapat merujuk pada aturan IT Governance Institute dan memahapi tahapan outsourcing life cycle. Dalam pengembangan sistem di sebuah perusahaan hal yang perlu dilakukan yaitu dengan mempertimbangkan dahulu beberapa aspek misalnya ruang lingkup, waktu, biaya, kualitas, sumber daya manusia, komunikasi, resiko, kebutuhan, dan integrasi. Penggunaan model yang dapat digunakan pada perusahaan yaitu System Development Life Cycle (SDLC) memberikan kerja yang konsisten terhadap tujuan yang diinginkan dalam pembangunan dan pengembangan sistem. 22 V. DAFTAR PUSTAKA Boehm, B. W, Elwell, J. F,. Pyster, A. B, Stuckle, F. D, dan. Williams, R. D. 1982. The TRW software productivity system,” in Proc. IEEE 6th Int. Conf. Software Eng. Dunn, R. H. 1990. Software quality: Concepts and plans. Englewood Cliffs, N.J.: Prentice-Hall. ISO/IEC Standard No. 9126. 2001-2004: Software engineering – Product quality; Parts 1–4. International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC), Geneva, Switzerland. Ghezzi, C., Jazayeri, M. dan Mandrioli, D. 1991. Fundamentals of software engineering,Prentice-Hall, New Jersey, USA IT Governance Domain Practices and Competencies, 2005. Governance of Outsourcing, The IT Governance InstituteKadir, A. 2003. Pengenalan Sistem Informasi.yogyakarta: Andi Marimin, Tnajung, H, Prabowo, H. 2006. Sistem informasi Manajemen Sumber Daya Manusia. Jakarta: Grasindo McCall, J.A., Richards, P.K., and Walters, G.F., “Factors in Software Quality”, RADC TR-77-369, 1977, Vols I, II, III, US Rome Air Development Center Reports O’Brien, J. A. and G. M. Marakas. 2010. Introduction to InformationSystems, fifteenth edition. The McGraw-Hill Companies, Inc. ________. 2011. “Management Information Systems, 10th Edition”. McGrawHill/ Irwin, New York. Pasaribu, F.T.P. 2010. Outsourcing, Insourcing, .http://ferry1002.blog. binusian.org/?p=128. dan Selfsourcing Turban, E., Leidner, D., McLean, E., Wetherbe, J. 2007. Information Technology for Management. John Wiley. 23