Kamis, 04 April 2013

SDLC (System Development Life Cycle)


System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC) adalah suatu pendekatan yang memiliki tahap atau bertahap untuk melakukan analisa dan membangun suatu rancangan sistem dengan menggunakan siklus yang lebih spesifik terhadap kegiatan pengguna (Kendall & Kendall, 2006). System Development Life Cycle (SDLC) juga merupakan pusat pengembangan sistem informasi yang efisien. SDLC terdiri dari 4 (empat) langkah kunci yaitu, perencanaan dan seleksi, analisis, desain, implementasi dan operasional (Valacich, George, & Hoffer, 2012). Selain itu, System Development Life Cycle (SDLC) adalah sebuah proses memahami bagaimana Sistem Informasi dapat mendukung kebutuhan bisnis, merancang system, membangun sistem, dan memberikannya kepada pengguna (Dennis, Wixom, & Tegarden, 2005).
Berdasarkan pada penjelasan diatas maka SDLC dapat disimpulkan sebagai sebuah siklus yang membangun suatu sistem itu sendiri dan memberikannya kepada pengguna melalui tahapan perencanaan, analisa, perancangan dan implementasi dengan cara memahami dan menyeleksi keadaan dan proses yang dilakukan pengguna untuk dapat mendukung seluruh kebutuhan para  pengguna. Untuk menggunakan SDLC maka dibutuhkan sumber dari data awal tersebut dari pengguna yang dijadikan acuan yang nantinya dimasukkan kedalam perencanaan, analisa, perancangan dan implementasi. Penggunaan acuan ini dimaksudkan agar sistem yang dibangun bisa menjembatani kebutuhan pengguna dari permasalahan yang dihadapinya.


Contoh 4 langkah kunci dari SDLC:


  1. Perencanaan
Fase perencanaan adalah sebuah proses dasar untuk memahami mengapa sebuah sistem itu harus dibangun, dan pada fase ini memang diperlukan analisa kelayakan dengan mencari data atau melakukan proses information gathering kepada para pengguna.
Sebagai contoh: proses dalam feasibility dan wawancara , observasi dan Quesener. Misal Jika pada tahap Feasibility hasilnya baik maka langsung ketahap investigasi dan diberi form kepada client untuk mencatat kebutuhan client. Dalam sistem investigasi, dapat berupa wawancara, kuosiener atau observation. Dalam tahap ini hal yang pertama dilakukan adalah memberikan form ke user yang digunakan untuk mengetahui permintaan user.
  1. Analisa
Fase analisa adalah sebuah proses investigasi terhadap sistem yang sedang berjalan itu sendiri dengan tujuan untuk mendapatkan jawaban mengenai pengguna sistem, cara kerjanya yaitu sistem dan waktu penggunaan sistem. Dari proses analisa ini akan didapatkan cara untuk membangun sistem baru.
  1. Rancangan
Fase perancangan merupakan proses penentuan cara kerja sistem dalam hal architechture design, interface design, database dan spesifikasi file, dan program design. Hasil dari proses perancangan ini akan didapatkan spesifikasi sistem.
  1. Implementasi
Fase implementasi adalah proses pembangunan dan pengujian sistem, instalasi sistem, dan rencana dukungan sistem.
Contohnya: konstruksi, instalasi, pengujian dan pengiriman sistem ke dalam produksi (artinya operasi sehari-hari). Implementasi sistem ini mengontruksi sistem informasi yang baru dan menempatkannya ke dalam operasi, dan selanjutnya dilaksanakan tahap pengujian.

  
Contoh Metodologi atau model pengembangan sistem, baik yang terstruktur maupun yang berbasis obyek

·         Agile Model


Ditulis oleh (Widodo Journal : 2006:1) Pada dekade ke 90-an diperkenalkan metodologi baru yang dikenal dengan nama agile methods. Metodologi ini sangat revolusioner perubahannya jika dibandingkan dengan metode sebelumnya. Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user. Saat ini metodologi ini sudah cukup banyak berkembang, diantaranya adalah:
1) eXtreme Programming (XP)
2) Scrum Methodology
3) Crystal Family
4) Dynamic Systems Development Method (DSDM)
5) Adaptive Software Development (ASD)
6) Feature Driven Development (FDD)
Jika kita lihat, agile bisa berarti tangkas, cepat, atau ringan. Agility merupakan metode yang ringan dan cepat dalam pengembangan perangkat lunak. Agile Alliance mendefinisikan 12 prinsip untuk mencapai proses yang termasuk dalam agility:
  1. Prioritas tertinggi adalah memuaskan pelanggan melalui penyerahan awal dan perangat lunak yang bernilai.
  2. Menerima perubahan requirements meskipun perubahan tersebut diminta pada akhir pengembangan.
  3. Memberikan perankat lunak yang sedangdikerjakan dengan sering,beberapa min ggu atau bulan, dengan pilihan waktu yang paling singkat.
  4. Pihak bisnis dan penggembangan harus berkerja sama setiap hari selam penggembangan berjalan.
  5. Bangun proyek dengan individu-individu yang bermotivasi tinggi dengan memberikan lingkungan dan dukungan yang diperlukan, dan mempercyai mereka sepenuhnya untuk menyelesaikan pekerjaannya.
  6. Metode yang paling efektif dan efisien dala m menyampaikan informasi kepada tim pengembangan adalah dengan komunikasi langsung  face to face.
  7. Perangkat lunak yang dikerjakan merupakan pengukur utama kemajuan.
  8. Proses agile memberikan proses pengembangan  yang bias ditopang.Sponsor,pengembangan, dan user garus bias menjaga ke-konstanan langkah yang tidak pasti.
  9.  Perhatian yang harus terus mennerus terhadap rangcangan dan teknik yang baik meningkatkan agility.
  10. Keserdahanaan seni untuk meminimalkan jumlah pekerjaan adalah penting
  11. Arsitektur,requirements, dan rancangan terbaik muncul dari tim yang mengatur sendiri. 
  12.  Pada interval reguler tertentu,tim merefleksikan bagaimana menjadi lebih efektif,kemudian menyesuaikannya.
Kelebihan  Metode Agile
1.        Meningakatkan rasio kepuasan pelanggan.
2.        Bisa melakukan reviw pelanggan mengenai software yang dibuat lebih awal.
3.        Mengurangi resiko kegagalan implementasi software dari non-teknis.
4.        Besar kerugian baik secara material atau imaterial tidak terlalu besar jiak terjadi kegagalan           

Kelemahan  Metode Agile
1.       Agile jarang dipraktekkan secara langsung,
2.       Interksi dengan customers yang berlebihan,
3.       Agile  sulid  diimplementasikan  dalam  proyek  yang berskala besar,
4.       Membutuhkan manajemen tim yang terlatih,
5.       Lemah dalam perencanaan arsitektur,2 Scrum dan Extreme Programming
6.       Keterbatasan waktu dalam perencanaan Proyek
7.       Serta beberapa kelemahan lainnya

Metodologi Waterfall

Metodologi Waterfall merupakan model klasik yang sederhana dengan aliran sistem yang linier. Output dari setiap tahap merupakan input bagi tahap berikutnya. Model ini pertama kali diperkenalkan oleh Winston Royce tahun 1970, sekarang model ini lebih dikenal dengan Liner Sequential Model.

Karakteristik dari metodologi waterfall ini meliputi beberapa bagian, yaitu :
• Aktivitas mengalir dari satu fase ke fase lainnya secara berurutan.
• Setiap fase dikerjakan terlebih dahulu sampai selesai, jika sudah selesai baru mulai menuju fase berikutnya.



Tahapan penelitian pada model waterfall meliputi metodologi berupa :

1. System Engineering
Menetapkan segala hal yang diperlukan dalam pelaksanaan proyek

2. Analisis
Menganalisis hal-hal yang diperlukan untuk pembuatan atau pengembangan perangkat lunak

3. Design
Tahap penerjemahan dari keperluan atau data yang telah dianalisis ke dalam bentuk yang mudah dimengerti oleh programmer . Tiga atribut yang penting dalam proses perancangan yaitu : struktur data, arsitektur perangkat lunak dan prosedur rinci / algoritma.

4. Coding
Menerjemahkan data yang telah dirancang / algoritma ke dalam bahasa pemrograman yang telah ditentukan

5. Testing
Uji coba terhadap program telah dibuat .

6. Maintenance
Perubahan atau penambahan program sesuai dengan permintaan user.

Kelebihan dari metode WaterFall :
Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.


Kekurangan dari metode Waterfall :
·         Pada kenyataannya, jarang mengikuti urutan sekuensial seperti pada teori. Iterasi sering terjadi menyebabkan masalah baru.
·         Sulit bagi pelanggan untuk menentukan semua kebutuhan secara eksplisit.
·         Pelanggan harus sabar, karena pembuatan perangkat lunak akan dimulai ketika tahap desain sudah selesai. Sedangkan pada tahap sebelum desain bisa memakan waktu yang lama.
·         Kesalahan di awal tahap berakibat sangat fatal pada tahap berikutnya.

Metodologi Prototipe
Model ini dikembangkan karena adanya kegagalan yang terjadi akibat pengembangan project / aplikasi menggunkan sistem waterfall. Kegagalan yang terjadi biasanya dikarenakan adanya kekurang pahaman atau bahkan sampai kesalah pahaman pengertian developer aplikasi mengenai user requirement yang ada.

Yang berbeda dari metodologi prototipe ini, apabila dibandingkan dengan waterfall, yaitu adanya pembuatan prototype dari sebuah aplikasi, sebelum aplikasi tersebut memasuki tahap design. Dalam fase ini, prototype yang telah dirancang oleh developer akan diberikan kepada user untuk mendapatkan dievaluasi. Tahap ini akan terus menerus diulang sampai kedua belah pihak benar-benar mengerti tentang requirement dari aplikasi yang akan dikembangkan. Apabila prototype telah selesai, maka tahapan aplikasi akan kembali berlanjut ke tahap design dan kembali mengikuti langkah-langkah pada waterfall model. Kekurangan dari tipe ini adalah tim developer pengembang aplikasi harus memiliki kemampuan yang baik karna dalam mengembangkan prototype ini hanya terdapat waktu yang singkat. Sebuah prototiping adalah sebuah sistem dalam  fungsi yang sangat minimal.

 
           Gambar Prototyping Method

Tahapan Metodologi Prototipe:

1.      Pengumpulan Kebutuhan dan perbaikan
Menetapkan segala kebutuhan untuk pembangunan perangkat lunak
2.      Disain cepat
Tahap penerjemahan dari keperluan atau data yang telah dianalisis ke dalam bentuk yang mudah dimengerti oleh user.
3.      Bentuk Prototipe
Menerjemahkan data yang telah dirancang ke dalam bahasa pemrograman (Program contoh atau setengah jadi )
4.       Evaluasi Pelanggan Terhadap Prototipe
Program yang sudah jadi diuji oleh pelanggan, dan bila ada kekurangan pada program bisa ditambahkan
5.      Perbaikan Prototype
Perbaikan program yang sudah jadi, sesuai dengan kebutuhan konsumen. Kemudian dibuat program kembali dan di evaluasi oleh konsumen sampai semua kebutuhan user terpenuhi.
6.      Produk Rekayasa
Program yang sudah jadi dan seluruh kebutuhan user sudah terpenuhi

Kelebihan Metode Prototipe

·         Developer belajar langsung mengenai kebutuhan sistem dari customer/user,
·         Hasil produk yang lebih akurat (lebih sesuai dengan permintaan user),
·         Desain sistem lebih fleksibel,
·         Iteraktif dengan adanya simulasi prototype,
·         Untuk pengembangan lebih lanjut (jika terjadi perubahan), developer hanya perlu mengubah prototype,
·         Jika customer sudah ”puas”, prototype dibuat menjadi system secara sempurna untuk dijadikan ’Final Product’.

Sedangkan kekurangan-kekurangannya yakni:

·         Proses bisa jadi berlanjut terus menerus tanpa henti (mengikuti keinginan customer),
·         Bisa jadi customer malah menginginkan prototype system dikirim,
·         Reputasi  yang  buruk  sebagai  sebuah  metode  yang bersifat ”Quick-and-Dirty”.
·         Kemungkinan perawatan secara keseluruhan bisa saja terabaikan.
·         Pengembangan yang berlebihan untuk prototype.


SUMBER REFERENSI

1.      Ozan. (2012). “System Development Life Cycle (SDLC) “ http://melengo.wordpress.com/2012/10/18/system-development-life-cycle-sdlc/ Diakses tanggal 30 Maret 2013

2.      Darma, Bina. (2011) “Macam-macam Metodologi Pengembangan Sistem” http://blog.binadarma.ac.id/usman/2011/02/27/macam-macam-metode-pengembangan-sistem.html Diakses tanggal 30 Maret 2013
3.      Maylad, Aviv. (2011). “Metodologi Pengembangan Sistem” http://jejakjari007.blogspot.com/2011/04/metodologi-pengembangan-sistem.html Diakses tanggal 30 Maret 2013

Tidak ada komentar:

Posting Komentar

 

FollowMe