Software Development Life Cycle



SDLC
(SOFTWARE DEVELOPMENT LIFE CYCLE)

                                                

A.    Pengertian SDLC

SDLC (Software Development Life Cycle Siklus Hidup Pengembangan Sistem) atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem. Konsep ini umumnya merujuk pada sistem komputer atau informasi. SDLC dapat juga dikatakan sebagai proses mengembangkan atau mengubah suatu sistem perangkat lunak yang memakai metodologi yang dipakai oleh orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya, berdasarkan pengalaman terbaik atau cara-cara yang sudah pasti terjamin sangat baik. Membuat perangkat lunak memiliki proses yang dilalui agar dapat menghasilkan perangkat lunak yang berkualitas. Untuk mengembangkan sistem perangkat lunak, terdiri dari tahap-tahap seperti : rencana (planing), analisis (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance). 
SDLC dimulai dari tahun 1960-an, untuk mengembangkan sistem skala usaha besar secara fungsional untuk para konglomerat pada zaman itu. Sistem-sistem yang dibangun mengelola informasi kegiatan dan rutinitas dari perusahaan-perusahaan yang nantinya akan memiliki jumlah data yang sangat banyak seiring berkembangnya sistem yang berjalan. SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi.
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.

B. Fungsi, Manfaat dan Tujuan SDLC

Beberapa fungsi dari SDLC yaitu :
1.      Mengidentifikasikan masalah-masalah dari user.
2.      Menyatakan secara spesifik sasaran yang harus dicapai untuk memenuhi kebutuhan user.
3.      Memilih alternatif-alternatif metode pemecahan masalah.
4.      Merencanakan dan menerapkan rancangan sistemnya sesuai dengan permintaan user.
5.      Sebagai sarana komunikasi antara tim pengembang dengan pemegang kepentingan.
6.      Membagi peranan dan tanggung jawab yang jelas antara pengembang, desainer, analis bisnis, dan manajer proyek.
7.      Dapat memberikan gambaran input dan output yang jelas dari satu tahap menuju tahap selanjutnya.
Manfaat dari SDLC yaitu :
1.      Perfomance (kinerja)
Peningkatan terhadap kinerja system yang baru menjadi lebih efektif. Kinerja dapat diukur dari throughput (jumlah dari pekerjaan yang dapat dilakukan suatu saat tertentu) dan response time (rata-rata waktu yang tertunda diantara dua transaksi).
2.      Information
Peningkatan kualitas informasi yang didapatkan
3.      Ekonomis
Peningkatan terhadap manfaat-manfaat, keuntungan-keuntungan atau penurunan-penurunan biaya yang terjadi.
4.      Efisiensi
Peningkatan terhadap efisiensi operasi. Efisiensi dapat diukur dari outputnya dibagi dengan inputnya.
5.      Servis (pelayanan)
Peningkatan terhadap pelayanan yang diberikan oleh sistem.
SDLC memiliki tiga tujuan bisnis utama:
1.      Memastikan pengiriman sistem berkualitas tinggi.
2.      Menyediakan kontrol manajemen yang kuat.
3.      Maksimalkan produktivitas.


C. Tahapan Umum SDLC


1.      Inisiasi (initiation)
Tahap ini biasanya ditandai dengan pembuatan proposal proyek perangkat lunak.
2.      Pengembangan konsep sistem (system concept development)
Mendefinisikan lingkup konsep termasuk dokumentasipengembangan sistem pada analisis lingkup area sistem dan memanajemen rencana  dan mempelajari cara kerja sisitem.
3.      Perencanaan (planning)
Membuat perencanaan terhadap pekerjaan dan berkas perencanaan yang lainnya. Menyediakan dasar untuk mendapatkan sumber daya (resources) yang dibutuhkan untuk memperoleh solusi.
4.      Analisis kebutuhan (requirements analysis)
Analisa terhadap kebutuhan pengguna sistem perangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional.
5.      Desain (design)
Mentransformasikan kebutuhan secara terinci, dokumen desain sistem fokus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan oleh sistem.
6.      Pengembangan (development)
Mengubah perancangan ke sistem informasi yang kompleks dan bagaimana mendapatkan dan melakukan penginstalan lingkungan sistem yang diharapkan;, membuat basis data dan menyiapkan standar prosedur pada saat pengujian, menyiapkan dokumen atau file coding, testing, compile, repair dan cleaning program.
7.      Integrasi dan pengujian (integration and test)
Mepresentasikan sistem perangkat lunak yang telah memenuhi keadaan yang dispesifikasikan pada dokumen kebutuhan fungsional. Dengan diarahkan oleh bagian penjamin mutu (quality assurance) dan user. Menghasilkan pelaporan analisis dari pengujian.
8.      Implementasi (implementation)
Termasuk pada persiapan implementasi, pelaksanaan perangkat lunak pada area produksi (area pada user) dan menjalankan resolusi dari problem yang terdeteksi dari tahap integrasi dan pengujian.
9.      Operasi dan pemeliharaan (operations and maintenance)
Menjelaskan tentang pekerjaan untuk menjalankan dan me-maintenance sistem informasi pada area produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses peninjauan.
10.  Disposisi (Disposition)
Mendeskripasikan aktifitas dari pengembangan sistem dan membangun data yang sesungguhnya sesuai dengan aktifitas user.
Siklus SDLC dijalankan secara berurutan, mulai dari langkah pertama hingga langkah terakhir. Setiap langkah yang telah selesai harus dikaji ulang, kadang-kadang bersama expert user, terutama dalam langkah spesifikasi kebutuhan dan perancangan sistem untuk memastikan bahwa langkah telah dikerjakan dengan benar dan sesuai harapan. Jika tidak maka langkah tersebut perlu diulangi lagi atau kembali ke langkah sebelumnya.
Kaji ulang yang dimaksud adalah pengujian yang sifatnya quality control dan pengujian bersifat quality assurance. Quality control dilakukan oleh personal internal tim untuk membangun kualitas, sedangkan quality assurance dilakukan oleh orang di luar tim untuk menguji kualitas sistem. Semua langkah dalam siklus harus terdokumentasi. Dokumentasi yang baik akan mempermudah pemeliharaan dan peningkatan fungsi sistem

D. Model SDLC

1.  Model Waterfall

Model Sekuensial Linier atau sering disebut Model Pengembangan Air Terjun, merupakan paradigma model pengembangan perangkat lunak paling tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain , kode, pengujian, dan pemeliharaan.
Text Box: DesainText Box: PengkodeanText Box: Pengujian
Tahapan model waterfall :
1.      Tahap analisa kebutuhan sistem yang akan dibuat dan harus dapat dimengerti oleh klien dan developer. Pada tahap ini klien harus dapat menjelaskan dan mendefinisikan tujuan dari sistem yang ingin dibangun. Sebagai developer harus dapat menangkap maksud klien mengenai sistem yang akan di bangun dan juga memberikan saran dan mungkin juga kendala terhadap sistem yang akan dibangun tersebut. Dokumen yang dihasilkan pada tahapan ini menjadi dasar kontrak kerja antara klien dengan developer.
2.      Tahap desain sistem, pada tahap ini developer merancang suatu arsitektur sistem berdasarkan hasil dari tahap sebelumnya yaitu tahap inisiasi.
3.      Tahap pengkodean, dimana keseluruhan desain sistem yang telah disusun sebelumnya akan diubah menjadi kode-kode program dan modul-modul yang nantinya akan diintegrasikan menjadi sebuah sistem yang lengkap sesuai dengan kontrak kerja.
4.      Tahap pengujian, sistem yang sudah dibuat akan diintegrasikan dan di test untuk menguji apakah sistem tersebut telah berfungsi dengan baik dan yang tidak kalah penting adalah sesuai dengan kontrak yang telah disetujui.
Kelebihan Model Sekuensial Linear / Waterfall Development Model :
a.       Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
b.      Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
c.       Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
d.      Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
 Kekurangan Model Sekuensial Linear / Waterfall Development Model :
                    
a.       Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
  1. Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
  2. Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
  3. Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
  4. Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
  5. Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

2. Model Prototipe

Metode Prototipe merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC (terutama  waterfall development model).
Dalam Model Prototipe, prototipe dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan. Metode ini cocok digunkan untuk menggali spesifikasi kebutuhan pelanggan secara lebih detail tetapi beresiko tinggi terhadap memebengkaknya biaya dan waktu proyek.

Tahapan Model Prototipe :
1.      Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat. Pengumpulan kebutuhan ini didengar dari pelanggan dan disesuaikan dengan keinginannya.
2.      Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
3.      Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya.
Kelebihan Model Prototipe :
a.       Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
  1. Penentuan kebutuhan lebih mudah diwujudkan.
  2. Mempersingkat waktu pengembangan produk perangkat lunak.
  3. Adanya komunikasi yang baik antara pengembang dan pelanggan.
  4. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
  5. Lebih menghemat waktu dalam pengembangan sistem.
  6. Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan Model Prototipe :
a.       Proses analisis dan perancangan terlalu singkat.
  1. Biasanya kurang fleksibel dalam mengahadapi perubahan.
  2. Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
  3. Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien. 

3. Model RAD              

Rapid Aplication Development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.

Tahapan Model RAD :
1.      Bussiness Modeling
Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut:
Informasi apa yang mengendalikan proses bisnis?
Informasi apa yang dimunculkan?
Di mana informasi digunakan ?
Siapa yang memprosenya ?
2.      Data Modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut didefinisikan.
3.      Proses Modeling
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.
4.      Aplication Generation
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
5.      Testing dan Turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.
Kelebihan Model RAD :
a.       Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
  1. Cocok untuk proyek yang memerlukan waktu yang singkat.
  2. Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
 Kekurangan Model RAD :
a.       Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
  1. Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
  2. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
  3. Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
  4. Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

4.      Model Iteratif

Model Iteratif merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototipe. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.

Model ini berfokus pada penyampaian produk operasional dalam setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas. Pada proses Pengembangan dengan Model Iteratif, perangkat lunak dibagi menjadi serangkaian increment yang dikembangkan secara bergantian.
Kelebihan Model Iteratif :
a.       Personil bekerja optimal.
b.      Mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
c.       Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
d.      Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
e.       Memaksimalkan pengembalian modal investasi konsumen.
Kekurangan Model Iteratif :
a.       Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
b.      Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.

5.  Model Spiral

Model spiral ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.

Tahapan Model Spiral :
1.      Tahap Liason, dibangun komunikasi yang baik dengan calon pengguna/pemakai.
2.      Tahap Planning (perencanaan), ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
3.      Tahap Analisis Resiko, mendefinisikan resiko dan menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
4.      Tahap Rekayasa (engineering), pembuatan prototipe.
5.      Tahap Konstruksi dan Pelepasan (release), dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
6.      Tahap Evaluasi, pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
Kelebihan Model Spiral :
Kelebihan model ini adalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
Kekurangan Model Spiral :
Kekurangan model ini adalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.


0 komentar:

Posting Komentar

FTI UNISKA MABA 2023

  MABA FTI UNISKA JAYA 2023