Perbedaan Pengembangan software dengan 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. Sedangkan 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).

Terdapat 2 hal yang perlu di pertimbangkan dalam pengembangan software, yang pertama adalah produk atau software itu sendiri serta proses pengembangannya. Produk, sendiri terdiri dari program, dokumen, dan data, sementara 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.

Dalam model atau paradigma pengembangan software, terdapat 3 metode yang secara luas dipergunakan, yaitu:

  1. 1. System Development Life Cycle (SDLC)

Yaitu, proses pengembangan dimana keseluruhan proses pengembangan sistem dilakukan melalui proses multi-langkah dari investigasi persyaratan awal melalui analisis, desain, implementasi dan pemeliharaan (sumber: Russel Kay, Computer World).

SDLC terdiri dari beberapa jenis model antara lain model Waterfall, Fountain, dan Spiral. Pada model waterfall output dari langkah yang satu akan menjadi input bagi langkah selanjutnya:

  1. a. Waterfall model

Berikut merupakan penjelasan setiap fase atau tahapan yang terjadi pada waterfall model:

1)     Tahap Investigasi

Pada tahap investigasi akan terjadi proses seperti:

a)   Initialisasi, pada initialisasi akan terjadi proses seperti perencanaan manajemen, kebutuhan serta potensi dari user.

b)  Definisi formal, pada proses ini dilakukan definisi tujuan, motivasi, ruang lingkup, batasan, kendala, dan strategi. Selain itu, pada definisi formal juga dilakukan verifikasi permasalahan sehingga dapat dilakukan penilaian terhadap kebutuhan yang baru.

c)   Uji kelayakan, yang terdiri dari:

  1. Uji kelayakan teknis
  2. Uji kelayakan ekonomis
  3. Uji kelayakan operasional
  4. Uji kelayakan kelayakan organisasi

2)     Tahap Analisa

Pada tahap ini sistem yang akan dibangun diselaraskan dengan kebutuhan user atau pengguna. Pada tahap ini terjadi proses seperti:

a)     Determine requirements atau penentuan kebutuhan, hal ini dilakukan dengan cara mempelajari sistem yang telah ada, serta menentukan kebutuhan struktur dan menghilangkan redundansi.

b)     Requirement analysis atau analisa kebutuhan, terdiri dari analisa kebutuhan fungsional dan performa (kinerja).

c)      Menghasilkan desain sistem alternatif

d)     Membandingkan alternatif desain sistem yang dihasilkan dan

e)     Merekomendasikan alternatif terbaik kepada klien.

3)     Tahap Desain

Yaitu, merupakan tahap menentukan bagaimana sistem mencapai tujuan yang telah didefinisikan sebelumnya. Tahap ini terdiri dari:

a)     User interface design

b)     Data design

c)      Process design

4)     Tahap Implementasi

Pada tahap ini terjadi beberapa hal seperti:

a)     Evaluasi hardware, software dan jasa

b)     Modifikasi dan pengembangan software

c)      Dokumentasi, yang merupakan mekanisme komunikasi utama selama proses pengembangan.

d)     Konversi data, pada proses ini terjadi perbaikan dan penyaringan data yang tidak diinginkan dan konsolidasi data.

e)     Testing atau uji coba, pada proses ini dilakukan uji coba dan debugging software.

f)       Training atau pelatihan sistem/software yang telah terbentuk.

g)     Konversi, yakni proses pergantian dari sistem lama ke sistem baru. Proses konversi dapat dilakukan melalui 4 macam cara antara lain:

  1. Parallel strategy
  2. Pilot strategy
  3. Phased strategy dan
  4. Plunge strategy

5)     Tahap Pemeliharaan (maintenance)

Pada proses ini terjadi modifikasi software, perbaikan error atau umpan balik dari user terhadap software yang telah mereka gunakan.

  1. b. Spiral Model

Model spiral (spiral model) adalah model pengembangan software dimana proses digambarkan sebagai spiral. Setiap loop akan mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya.

Pada spiral model, setiap Loop dibagi dibagi menjadi sejumlah aktifitas kerangka kerja yang disebut juga wilayah tugas, wilayah tugas tersebut terdiri antara tiga sampai enam wilayah tugas, yaitu :

  1. Komunikasi Pelanggan

Tugas – tugas yang dibutuhkan untuk membangun komunikasi yang efektif di antara pengembangan dan pelanggan.

  1. Perencanaan

Tugas–tugas yang dibutuhkan untuk mendefinisikan sumber–sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan.

  1. Analisis Risiko

Tugas – tugas yang dibutuhkan untuk menaksir risiko – risiko, baik manajemen maupun teknis.

  1. Perekayasaan

Tugas – tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut.

  1. Konstruksi dan peluncuran

Tugas – trugas yang dibutuhkan untuk mengkonstruksi, menguji, instalasi dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan dokumentasi).

f. Evaluasi pelanggan

Tugas – tugas yang dibutuhkan untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi software, yang dibuat selama masa perekayasaan, dan diimplementasikan selama masa pemasangan software.

  1. 2. Rapid Application Development (RAD)

Rapid Aplication Development (RAD) adalah sebuah metode pengembangan software yang diciptakan untuk menekan waktu yang dibutuhkan untuk mendesain serta mengimplementasikan sistem, informasi sehingga dihasilkan siklus pengembangan yang sangat pendek.

Model RAD ini merupakan adaptasi dari model sekuensial linier dimana perkembangan yang cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen. Sehingga, jika kebutuhan sistem dipahami dengan baik, proses RAD memungkinkan developer menciptakan sistem fungsional yang utuh dalam periode waktu yang sangat pendek (± 60 sampai 90 hari). Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD meliputi fase – fase seperti  seperti dibawah ini:

  1. a. Bussiness modeling

Aliran informasi di antara fungsi – fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan – pertanyaan seperti:

1)     Informasi apa yang mengendalikan proses bisnis?

2)     Informasi apa yang di munculkan?

3)     Siapa yang memunculkanya?

4)     Ke mana informasi itu pergi?

5)     Siapa yang memprosesnya?

  1. b. Data modeling

Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing masing objek diidentifikasi dan hubungan antara objek – objek tersebut didefinisikan.

  1. Prosess modelling

Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.

  1. Aplication generation

RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada (pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.

  1. Testing and turnover

Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.

Keunggulan dan kelemahan model RAD adalah :

Keunggulan:

  1. Waktu pengembangan yang lebih singkat dan
  2. Biaya yang relatif lebih murah

Kelemahan:

  1. Tidak cocok untuk proyek skala besar
  2. Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
  3. Sistem yang tidak bisa dimodularisasi tidak cocok untuk model
  4. Resiko teknis yang tinggi juga kurang cocok untuk model ini
  1. 3. Prototyping

Information systems desain merupakan pekerjaan yang fokus dengan spesifikasi solusi yang berbasiskan computer. Jika analisis sistem berhubungan dengan masalah bisnis, maka desain sistem fokus terhadap implementasi dan masalah teknik sistem.Sistem desain ditentukan oleh sistem designer atau perancang desain, sehingga data, process, dan interface dari sistem ditentukan oleh perspektif perancang. Prototyping merupakan salah satu teknik atau pendekatan dalam menerapkan desain system. Dahulu, para analis membuat desain fisik dengan cara menggambar layout atau struktur dari outputs, inputs, basis data serta aliran dari dialog dan proses di atas kertas. Hal itu merupakan proses yang cenderung menimbulkan error dan hilangnya informasi (omissions). Umumnya hasil dengan cara ini adalah ketidakakuratan, ketidakcukupan serta ketidaklengkapan. Saat ini para analis dan desainer lebih memilih prototyping, yaitu sebuah pendekatan yang berbasiskan teknik untuk membuat desain.

Pendekatan prototyping merupakan proses iteratif yang meliputi hubungan kerja yang dekat antara desainer dan user. Pendekatan ini memiliki beberapa keuntungan yaitu :

  1. Prototyping melibatkan partisipasi aktif end-user, hal ini dapat meningkatkan moral end-user serta mendukung untuk proyek
  2. Prototyping lebih cocok dengan keadaan sebenarnya karena prototype selalu berkembang – karena adanya proses iterasi – hingga menjadi sistem yang dibutuhkan
  3. End user bisa mengetahui kebutuhan dan kesesuaian sistem tanpa harus menunggu sampai sistem diimplementasikan
  4. Prototype merupakan model aktif, bukan pasif, yang user dapat lihat, sentuh, rasakkan, dan alami
  5. Protoyping dapat meningkatkan kreatifitas karena memungkinkan user untuk lebih cepat memberikan feedback, yang akan mampu membawa menuju solusi yang lebih baik
  6. Mampu mendeteksi eror lebih dini
  7. Prtotyping mampu mempercepat beberapa fase dari life cycle

Selain keuntungan, pendekatan prototyping ini juga menimbulkan kerugian. Umumnya kerugian yang terjadi tesebut disebabkan oleh satu hal yaitu pendekatan prototyping mendorong menuju ill-advised karena adanya shortcut melalui life cycle. Tetapi, kerugian in dapat dihindari dengan mengikuti disiplin-disiplin dibawah ini:

  1. Prototyping menggunakan life cycle “ code, implement, and repair” yang digunakan untuk mendominasi sistem informasi. Pengalaman beberapa perusahaan, sistem yabg dikembangkan dalam prototyping dapat menyebabkan masalah yang sama dalam perawatan yang disebabkan oleh “warisan” sistem yang dikembangkan sebelumnya seperti misalnya COBOL.
  2. Prototyping tidak meniadakan proses analisis sistem.
  3. Adanya pendekatan prototyping bukanlah untuk menggantikan secara total desain dengan cara konvensional. Prototyping harusnya melengkapi, bukan menggantikan, metodologi yang lain.
  4. Beberapa isu desain tidak dapat ditaruh pada pendekatan prototyping. Isu-isu ini dapat mudah dilupakan oleh para desain bila mereka tidak berhati-hati
  5. Prototyping dapat menyebabkan komitmen yang prematur pada desain
  6. Saat membuat prototype, cakupan dan kompleksitas sistem dapat secara cepat melebar dari rencana awal, sehingga dapat menimbulkan out of control
  7. Prototyping sering menimbulkan performansi yang lebih lambat daripada 3GLs counterparts. Meski demikian, hal ini selanjutnya tidak menjadi masalah lagi.

Prototyping dapat secara cepat dikembangkan menggunakan berbagai 4GLs dan bahasa pemrograman yang object oriented. Desain dengan prototyping tidak dapat sepenuhnya memenuhi keperluan desain, prototype tidak selalu dapat menempatkan isu performansi yang penting dan konstrain storage. Protoype jarang menggabungkan kontro intenal. Para analis ataupun desainer nasih harus mengspesifikaikan hal ini.

Prototyping merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem. Sering terjadi seorang pelanggan hanya mendefinisikan secara umum apa yang dikehendakinya tanpa menyebutkan secara detail output, pemrosesan dan data-data apa saja yang dibutuhkan. Sebaliknya disisi pengembang kurang memperhatikan efesiensi algoritma, kemampuan sistem operasi dan interface yang menghubungkan manusia dan komputer. Untuk mengatasi ketidakserasian antara pelanggan dan pengembang, maka harus dibutuhkan kerjasama yang baik diantara keduanya sehingga pengembang akan mengetahui dengan benar apa yang diinginkan pelanggan dengan tidak mengesampingkan segi-segi teknis dan pelanggan akan mengetahui proses-proses dalam penyelesaian system yang diinginkan. Dengan demikian akan dihasilkan sistem yang sesuai dengan jadwal waktu penyelesaian yang telah ditentukan. Kunci agar model prototype ini berhasil dengan baik adalah dengan mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan pengembang harus setuju bahwa prototype dibangun untuk mendefinisikan kebutuhan. Prototype akan dihilangkan sebagian atau seluruhnya dan perangkat lunak aktual aktual direkayasa dengan kualitas dan implementasi yang sudah ditentukan.

Tahapan-tahapan dalam prototyping adalah sebagai berikut:

  1. 1. Evaluasi protoptyping

Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun dan disesuaikan dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulangi langkah 1, 2 , dan 3.

  1. 2. Mengkodekan system

Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.

  1. 3. Menguji system

Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box,Basis Path, pengujian arsitektur dan lain-lain.

  1. 4. Evaluasi Sistem

Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan.   Jika ya, langkah 7 dilakukan,  jika tidak, ulangi langkah 4 dan 5.

  1. 5. Menggunakan system

Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.

Keunggulan prototyping adalah:

1. Adanya komunikasi yang baik antara pengembang dan pelanggan

2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan

3. Pelanggan berperan aktif dalam pengembangan sistem

4. Lebih menghemat waktu dalam pengembangan sistem

5.Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya.

Kelemahan prototyping adalah :

  1. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum mencantumkan kualitas perangkat lunak secara keseluruhan  dan juga belum memikirkan kemampuan pemeliharaan untuk jangka waktu lama.
  2. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga menggunakan algoritma dan bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai tanpa memikirkan lebih lanjut bahwa program tersebut hanya merupakan cetak biru system.
  3. Hubungan pelanggan dengan komputer yang disediakan mungkin tidak mencerminkan teknik    perancangan yang baik.

Prototyping bekerja dengan baik pada penerapan-penerapan yang berciri sebagai berikut:

  1. Resiko tinggi, yaitu untuk maslaha-masalah yang tidak terstruktur dengan baik, ada perubahan yang besar dari waktu ke waktu, dan adanya persyaratan data yang tidak menentu.
  2. Interaksi pemakai penting. Sistem harus menyediakan dialog on-line antara pelanggan dan komputer.
  3. Perlunya penyelesaian yang cepat
  4. Perilaku pemakai yang sulit ditebak
  5. Sistem yang inovatif. Sistem tersebut membutuhkan cara penyelesaian masalah dan penggunaan perangkat keras yang mutakhir.
  6. Perkiraan tahap penggunaan sistem yang pendek

Daya tarik  Prototyping

  1. Komunikasi antara analis sistem dan pemakai membaik
  2. Analis dapat bekerja dg lebih baik dlm menetukan kebutuhan pemakai
  3. Pemakai berperan lebih aktif dalam pengembangan sistem
  4. Spesialis informasi dan pemakai menghabiskan lebih sedikit waktu dan usaha alam mengembangkan sistem
  5. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yg diharapkannya

Potensi  kegagalan Prototyping

  1. Ketergesaan untuk membuat prototipe mungkin menghasilkan jalan pintas untuk definisi permasalahan,evaluasi alternatif dan dokumentasi.
  2. Pemakai mungkin sangat tertarik dg prototipe tersebut sehingga mereka mengharapkan sesuatu yg tidak realistis dari sistem operasional.
  3. Prototipe type I mungkin tidak seefisien sistem yang dikodekan dalam bahasa pemrograman.
  4. Hubungan komputer-manusia yg disediakan oleh peralatan prototiping ttt mungkin tdk mencerminkan teknik perancangan yg baik.
This entry was posted in Uncategorized. Bookmark the permalink.