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:
- 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.
- 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.
- 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.
- 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:
- Prioritas tertinggi adalah memuaskan pelanggan melalui penyerahan awal dan perangat lunak yang bernilai.
- Menerima perubahan requirements meskipun perubahan tersebut diminta pada akhir pengembangan.
- Memberikan perankat lunak yang sedangdikerjakan dengan sering,beberapa min ggu atau bulan, dengan pilihan waktu yang paling singkat.
- Pihak bisnis dan penggembangan harus berkerja sama setiap hari selam penggembangan berjalan.
- Bangun proyek dengan individu-individu yang bermotivasi tinggi dengan memberikan lingkungan dan dukungan yang diperlukan, dan mempercyai mereka sepenuhnya untuk menyelesaikan pekerjaannya.
- Metode yang paling efektif dan efisien dala m menyampaikan informasi kepada tim pengembangan adalah dengan komunikasi langsung face to face.
- Perangkat lunak yang dikerjakan merupakan pengukur utama kemajuan.
- Proses agile memberikan proses pengembangan yang bias ditopang.Sponsor,pengembangan, dan user garus bias menjaga ke-konstanan langkah yang tidak pasti.
- Perhatian yang harus terus mennerus terhadap rangcangan dan teknik yang baik meningkatkan agility.
- Keserdahanaan seni untuk meminimalkan jumlah pekerjaan adalah penting
- Arsitektur,requirements, dan rancangan terbaik muncul dari tim yang mengatur sendiri.
- 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.
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.
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