Perbedaan Pengembangan Software Dan Pengembangan Sistem Informasi
a. Pengembangan Sistem Informasi Sistem informasi dapat merupakan kombinasi teratur apapun dari orang-orang, hardware, software, jaringan komunikasi, dan sumber daya data yang mengumpulkan, mengubah, dan menyebarkan informasi dalam sebuah organisasi (O’Brien, 2005). Menurut Yulianto et al (2009), pengembangan sistem informasi ialah satu set aktivitas, metode, praktik terbaik, siap dikirimkan, dan peralatan terotomasi yang digunakan oleh stakeholder untuk mengembangkan dan memelihara sistem informasi dan perangkat lunak. Biasanya pengembangan sistem dilakukan apabila sistem yang lama sudah tidak bisa mengimbangi/memadai kebutuhan atau pun perkembangan perusahaan, sehingga terdapat beberapa pendapat tentang definisi pengembangan sistem, antara lain: •
Menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau memperbaiki sistem yang telah ada.
•
Suatu proses pengaplikasian teknologi informasi untuk suatu tujuan tertentu atau menyelesaikan suatu masalah.
•
Memilah suatu masalah yang besar dan kompleks menjadi beberapa bagian kecil yang dapat dikelola.
Menurut Yulianto et al (2009), terdapat macam-macam representasi metodologi pengembangan sistem, yaitu: •
Architected Rapid
•
Application Development (Architected RAD)
•
Dynamic Systems Development Methodology (DSDM)
•
Joint Application Development (JAD)
•
Information Engineering (IE)
•
Rapid Application Development (RAD)
•
Rational Unified Process (RUP)
•
Structured Analysis and Design (SAD)
•
eXtreme Programming (XP)
1
System Development Life Cycle disingkat dengan SDLC merupakan siklus pengembangan sistem. Pengembangan sistem teknik (engineering system development). SDLC berfungsi untuk menggambarkan tahapan-tahapan utama dan langkah-langkah dari setiap tahapan yang secara garis besar terbagi dalam empat kegiatan utama, yaitu initiation, analysis, design dan implementation. Setiap kegiatan dalam SDLC dapat dijelaskan melalui tujuan (purpose) dan hasil kegiatannya (deliverable). SDLC didefinisikan oleh Departemen Kehakiman AS sebagai sebuah proses pengembangan software yang digunakan oleh analyst system, untuk mengembangkan sebuah sistem informasi. SDLC mencakup kebutuhan (requirement), validasi, pelatihan, kepemilikan (user ownership) sebuah sistem informasi yang diperoleh melalui investigasi, analisis, desain, implementasi, dan perawatan software. Software yang dikembangkan berdasarkan SDLC akan menghasilkan sistem dengan kualitas yang tinggi, memenuhi harapan penggunanya, tepat dalam waktu dan biaya, bekerja dengan efektif dan efsien dalam infrastruktur teknologi informasi yang ada atau yang direncanakan, serta murah dalam perawatan dan pengembangan lebih lanjut (Yulianto, et al 2009).
SDLC meliputi tahapan berikut:
1)
System
initiation
ialah
perencanaan
awal
untuk
sebuah
proyek
guna
mendefinisikan lingkup, tujuan, jadwal dan anggaran bisnis awal yang diperlukan untuk memecahkan masalah atau kesempatan yang direpresentasikan oleh proyek. Lingkup proyek mendefinisikan area bisnis yang akan ditangani oleh proyek dan tujuan-tujuan yang akan dicapai. Lingkup dan tujuan pada akhirnya berpengaruh pada komitmen sumber yaitu jadwal dan anggaran yang harus dibuat supaya berhasil menyelesaikan proyek. 2) System analysis ialah studi domain masalah bisnis untuk merekomendasikan perbaikan dan menspesifikasikan persyaratan dan prioritas bisnis untuk solusi. Analisis system ditujukan untuk menyediakan tim proyek dengan pemahaman yang lebih menyeluruh terhadap masalah-masalah dan kebutuhan-kebutuhan yang memicu proyek. Area bisnis dipelajari dan dianalisis untuk memperoleh pemahaman yang lebih rinci mengenai apa yang bekerja, apa yang tidak bekerja dan apa yang dibutuhkan.
2
3) System design ialah spesifikasi atau konstruksi solusi yang teknis dan berbasis komputer untuk persyaratan bisnis yang diidentifikasikan dalam analisis sistem. Selama desain sistem, pada awalnya akan mengekspolarasi solusi teknis alternatif. Setelah alternatif solusi disetujui, fase desain sistem mengembangkan cetak biru (blueprint) dan spesifikasi teknis yang dibutuhkan untuk mengimplementasikan database, program, antarmuka pengguna dan jaringan yang dibutuhkan untuk sistem informasi, 4) System implementation ialah konstruksi, instalasi, pengujian dan pengiriman sistem ke dalam produksi (artinya operasi sehari-hari). Implementasi sistem mengontruksi sistem informasi baru dan menempatkannya ke dalam operasi, selanjutnya dilaksanakan pengujian.
Menurut O’Brien (2005), siklus pengembangan sistem informasi tradisional dapat dilihat pada Gambar 1. dari gambar tersebut dapat dilihat bahwa lima langkah dalam siklus tersebut didasari oleh langkah-langkah pendekatan sistem. Pada praktiknya, beberapa aktivitas pengembangan bisa muncul pada saat yang bersamaan. Jadi bagian yang berbeda dari proyek pengembangan bisa jadi berada pada tingkat yang berbeda pada siklus pengembangan. Selain itu, ahli SI bisa kembali kapanpun untuk mengulang aktivitas sebelumnya jika perlu memodifikasi dan memperbaiki sistem yang sedang dikembangkan.
3
Gambar 1. Siklus Pengembangan Sistem Informasi Tradisional
b. Pengembangan Software (Perangkat Lunak) Fritz Bauer memberikan definisi bahwa Rekayasa Perangkat Lunak merupakan pengembangan dan penggunaan prinsip pengembangan suara untuk memperoleh perangkat lunak secara ekonomis yang reliable dan bekerja secara efisien pada mesin nyata. Sedangkan IEEE telah mengembangkan definisi yang lebih komperhensif yaitu bahwa rekayasa perangkat lunak :
4
1. Aplikasi dari sebuah pendekatan kuantitatif, disiplin, dan sistematis kepada pengembangan, operasi, dan pemeliharaan perangkat lunak yaitu : aplikasi dari Rekayasa Perangkat Lunak. 2. Studi tentang pendekatan – pendekatan seperti pada nomor 1.
Rekayasa perangkat lunak merupakan sebuah teknologi yang dibentangkan. Banyak pendekatan keteknikan yang harus berada pada sebuah komitmen dasar menuju kualitas. Batu landasan yang menopang rekayasa perangkat lunak merupakan fokus pada kualitas. Fondasi untuk rekayasa perangkat lunak merupakan bentangan proses. Proses-proses rekayasa perangkat lunak adalah perekat yang menjaga bentangan-bentangan teknologi secara bersama-sama dan memungkinkan perkembangan perangkat lunak komputer yang tepat waktu dan rasional. Metodemetode rekayasa perangkat lunak memberikan teknik untuk membangun perangkat lunak. Metode-metode itu menyangkut seragkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan. Rekayasa perangkat lunak mengandalkan pada serangkaian prinsip dasar yang mengatur setiap area teknologi dan menyangkut aktivitas permodelan serta teknik-teknik deskriptif yang lain. Tool-tool rekayasa perangkat lunak memberikan topangan yang otomatis maupun semi-otomatis pada proses-proses dan metode-metode yang ada. Ketika tool-tool diintegrasikan sehingga informasi yang diciptakan oleh satu tool bias digunakan oleh yang lain, system untuk menopang perkembangan perangkat lunak yang disebut computer-aided software engineering (CASE) terbangun. CASE menggabungkan perangkat lunak, perangkat keras, dan database rekayasa perangkat lunak untuk menciptakan lingkungan rekayasa perangkat lunak yang analog dangan CAD/CAE (Computer Aided Design/Engineering) untuk perangkat keras. Usaha yang berhubungan dengan rekayasa perangkat lunak dapat dikategorikan ke dalam tiga fase umum dengan tanpa memperdulikan area aplikasi, ukuran proyek, atau kompleksitasnya 1. Fase definisi (Definition Phase) berfokus pada “apa”; dimana pada definisi ini pengembang perangkat lunak harus mengidentifikasi informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku
5
system seperti apa yang diharapkan, interface apa yang akan dibangun, batasan desain apa yang ada, dan kriteria validasi apa yang dibutuhkan untuk mendefinisikan sistem yang sukses. 2. Fase pengembangan (Development Phase) berfokus pada how (bagaimana) yaitu dimana selama masa pengembangan perangkat lunak, teknisi harus mendefinisikan bagaimana dat dikonstruksikan, bagaimana fungsi – fungsi diimplementasikan, bagaimana interface ditandai, bagaimana rancangan akan diterjemahkan ke dalam bahasa pemrograman, serta bagaimana pengujian akan dilakukan. 3. Fase pemeliharaan (Maintenance Phase) berfokus pada perubahan, yang dihubungkan dengan koreksi kesalahan, penyesuaian yang dibutuhkan ketika
lingkungan
perangkat
lunak
berkembang,
serta
perubahan
sehubungan dengan perkembangan yang disebabkan oleh perubahan kebutuhan pelanggan. Fase pemeliharaan mengaplikasikan lagi langkahlangkah pada fase definisi dan fase pengembangan, tetapi semuanya tetap tergantung pada konteks perangkat lunak yang ada. Ada empat tipe perubahan yang terjadi selama masa fase pengembangan, yaitu Koreksi, Adaptasi, Perkembangan, dan Pencegahan.
Sebuah kerangka kerja proses umum dibangun dengan mendefinisikan sejumlah kecil aktivitas kerangka kerja yang bisa diaplikasikan ke semua proyek perangkat lunak, tanpa melihat ukuran atau kompleksitasnya. Sejumlah task set- tiap koleksi rekayasa perangkat lunak yang mengerjakan tugas – tugas, tonggak proyek, hasil usaha perangkat lunak dan bisa dipesan, serta titik jaminan kualitas- memungkinkan aktivitas kerangka kerja disesuaikan dengan karakteristik proyek perangkat lunak dan kebutuhan tim proyek. Akhirnya, aktivitas pelindung- seperti jaminan kualitas perangkat lunak, manajemen konfigurasi perangkat lunak- lampiran model proses. Aktivitas pelindung tidak tergantung pada satupun aktivitas kerangka kerja dan terjadi pada seluruh proses.
6
Gambar 2. Proses Perangkat Lunak
Rekayasa
perangkat
lunak
Institute
(SEI)
telah
mengembangkan
model
komprehensif yang didasarkan atas sekumpulan kapabilitas rekayasa perangkat lunak yang harus ada sebagai organisasi yang mencapai tingkat kematangan proses yang berbeda. Untuk menentukan keadaan suatu organisasi dalam hal kematangan prosesnya, SEI menggunakan perkiraan kuesioner serta skema gradasi lima poin. Skema gradasi tersebut menentukan pemenuhan dengan sebuah model kematangan kapabilitas yang mendefiniskan aktivitas kunci yang dibutuhkan pada tingkat kematangan proses yang berbeda. Pendekatan SEI memberikan sebuah pengukuran terhadap efektivitas global dari sebuah praktek perekayasaan perangkat lunak perusaahaan dan membangun lima tingkat kematangan proses, yang didefinisikan dengan cara berikut : 1. Level 1 Initial – Proses perangkat lunak yang ditandai sebagai ad hoc, dan bahkan kadang-kadang bersifat kacau. 2. Level 2 Repeatable – Proses – proses manajemen proyek dasar dibangun untuk menulusuri masalah biaya, jadwal, dan fungsionalitas. Disiplin proses yang perlu ada untuk mengulangi sukses – sukses proyek yang terdahulu dengan penerapan yang sama. 3. Level 3 Defined – Proses perangkat lunak, baik untuk aktivitas manajemen atau perekayasaan didokumentasikan, distandarkan, dan diintregasikan ke
7
dalam
proses
perangkat
lunak
organisasi
besar.
Semua
proyek
menggunakan versi proses organisasi yang didokumentasikan dan disahkan untuk pengembangan dan pemeliharaan perangkat lunak. Tingkat ini menyangkut semua ciri yang didefinisikan pada tingkat 3. 4. Level 4 Managed – Pengukuran detail terhadap proses perangkat lunak dan kualitas produksi dikumpulkan. Produk dan proses perangkat lunak dipahami secara kuantitatif dan dikontrol dengan menggunakan pengukuran secara detail. Tingkat ini termasuk semua karakteristik yang didefinisikan pada tingkat 3. 5. Level 5 Optimizing – Pertambahan proses yang terus – menerus dimungkinkan oleh umpan balik kuantitatif dari prose dan dari gagasan inovatif pengujian serta teknologi. Tingkat ini termasuk semua ciri yang didefinisikan pada tingkat 4.
Lima tingkat yang didefinisikan oleh SEI ini disimpulkan dari sebuah konsekuensi respon evaluasi ke assessment questionnaire yang didasarkan pada CMM. Hasil dari kuesioner tersebut didestilasi menjadi sebuah tingkatan numeric tunggal yang memberikan identifikasi terhadap kematangan proses organisasi. SEI telah menggabungkan area proses kunci dengan masing – masing tingkat kematangan. KPA menggambarkan fungsi – fungsi rekayasa perangkat lunak yang harus ada untuk memenuhi praktek yang baik pada suatu tingkat tertentu. Setiap KPA digambarkan dengan mengidentifikasikan ciri – ciri sebagai berikut : •
Tujuan – objektif keseluruhan yang harus dicapai oleh KPA.
•
Komitmen – kebutuhan yang harus dipenuhi untuk mencapai tujuan, dan yang membuktikan dari maksud mencapai tujuan.
•
Kemampuan – hal – hal tersebut harus ada yang akan memungkinkan organisasi untuk memenuhi komitmennya.
•
Aktivitas – tugas – tugas khusus yang dibutuhkan untuk mencapai fungsi – fungsi dari KPA.
•
Metode untuk memonitor informasi – sikap dimana kegiatan dimonitor pada saat dipakai.
•
Metode – metode untuk memverifikasi informasi – sikap dimana praktek yang sesuai untuk KPA diverifikasi.
8
Perbedaan antara pengembangan software dan pengembangan sistem informasi adalah pengembangan software mampu mengelola aktifitas pengembangan software berskala besar dalam tiap tahapannya (software development life cycle), selain itu dalam pengembangan software lebih bersifat aplikasi untuk pengguna akhir dan sangat berkaitan dengan pengguna operasional dan pencapaian keunggulan kompetitif perusahaan. Berkaitan dengan keunggulan kompetitif perusahaan, meliputi keamanan, akses informasi, strategi bisnis dan sarana yang penting bagi semua fungsi bisnis, proses bisnis dalam suatu organisasi serta meningkatkan daya saing perusahaan. Sedangkan pengembangan sistem informasi merupakan kemampuan untuk menganalisa kebutuhan (requirement) dan proses bisnis (business process), serta mendesain sistem berdasarkan tujuan dari organisasi dan dalam pengembangan sistem informasi, organisasi harus mampu melakukan perubahan sistem informasi yang mendasar baik terkait dengan perubahan, kebijakan, struktur organisasi, perubahan lingkungan, perubahan hubungan antara user dengan sistem informasi, proses dan peralatan. Selain itu, dalam pengembangan sistem informasi perlu diperhatikan tingkat resiko yang mungkin terjadi dalam pengembangan system informasi tersebut, bisa jadi akan memerlukan sumber daya lebih banyak dari yang direncanakan. [2]
9
DAFTAR PUSTAKA O’Brien, J. 2005. Pengantar Sistem Informasi: Perspektif Bisnis dan Manajerial. Penerbit Salemba Empat, Jakarta. Yulianto, A.A., I. Gartina, R. Astuti, S. Dewi, S.K. Sari, W. Witanti. 2009. Analisis dan Desain Informasi. Politeknik Telkom Bandung, Bandung. http://courseware.politekniktelkom.ac.id/BUKU_KA/Semester%203/IS193%20A nalisis%20Perancangan%20Sistem%20Informasi/Analisis%20Perancangan%20SI. pdf [ 20 Desember 2010]
LINK TERKAIT [1] http://yandra08.blogspot.com/2009/03/fritz-bauer-memberikan-definisi-bahwa.html [2] http://yolivia.blogstudent.mb.ipb.ac.id/2010/12/24/apa-yang-membedakan-antarapengembangan-software-dengan-pengembangan-sistem-informasi/comment-page1/#comment-3
10