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:
- 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.
5.Maintance
. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
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 Methodsdikembangkan 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 Alliancemendefinisikan
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.
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.
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.