Pengertian SDLC dan Macam-Macam Metode SDLC
SDLC (System Development Life Cycle) atau Siklus hidup pengmbangan system adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Konsep ini umumnya merujuk pada sistem komputer atau informasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap-tahap: rencana(planning),analisis (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance) proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Konsep ini umumnya merujuk pada sistem komputer atau informasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap-tahap: rencana(planning),analisis (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance).
12 Model SDLC (Software Development Life Cycle)

- Waterfall Development Model ( Model Sekuensial Linier)

Kelebihan Model Sekuensial Linear / Waterfall Development Model
- Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
- Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
- Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
- Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
Kekurangan Model Sekuensial Linear / Waterfall Development Model
- 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.
- Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
- Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
- 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.
- Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
- Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
- Model Prototype
Dalam Model Prototype, prototype 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.

Kelebihan Model Prototype
- Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
- Penentuan kebutuhan lebih mudah diwujudkan.
- Mempersingkat waktu pengembangan produk perangkat lunak.
- Adanya komunikasi yang baik antara pengembang dan pelanggan.
- Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
- Lebih menghemat waktu dalam pengembangan sistem.
- Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan Model Prototype
- Proses analisis dan perancangan terlalu singkat.
- Biasanya kurang fleksibel dalam mengahadapi perubahan.
- 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.
- Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
- Model Rapid Application Development (RAD)

- Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
- Cocok untuk proyek yang memerlukan waktu yang singkat.
- 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 :
- 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.
- Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
- RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
- Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.( Jdi dak biso di pake utk TA)
- Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.
- Model Evolutionary Development (Evolutionary Software Process Models)
- Model Incremental
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.
Kelebihan Model Incremental :
- Personil bekerja optimal.
- mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
- Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
- Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
- Memaksimalkan pengembalian modal investasi konsumen.
Kekurangan Model Incremental :
- Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
- Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.
- Model Spiral ( Model Boehm)

Kelebihan Model Spiral
Kelebihan model iniadalah 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 iniadalah 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.
- Model Agile
- Interaksi antar personal lebih penting daripada proses dan alat.
- Software yang berfungsi lebih penting daripada dokumentasi yang lengkap
- Kolaborasi dengan klien lebih penting daripada negoisasi kontrak.
- Sikap tanggap lebih penting daripada mengikuti rencana/plan.

- Functional dapat dibuat dengan cepat dan dilakukan testing
- Perubahan dengan cepat ditangani
Kelemahan Model Agile
- Analisis, desain, dan pengembangan sulit diprediksi
- Dapat memunculkan permasalahan dari arsitektur maupun desain.
- Model Fountain (Air Mancur)

- Model Synchronize And Stabilize (Sdlc)
Analisis kebutuhan dilakukan dengan wawancara dengan sejumlah konsumen yang potensial. Kemudian kebutuhan-kebutuhan tersebut dibuat paket dan disusun daftar secara prioritas. Kemudian spesifikasi ditulis. Selanjutnya pekerjaan dibagi dalam tiga atau empat bagian pembangunan software. Bagian pertama menangani hal-hal yang paling kritis, bagian selanjutnya menangani hal-hal yang krisis selanjutnya, dan seterusnya.

Kelebihan Model Synchronize And Stabilize (Sdlc)
- Membagi produk yang besar ke dalam bagian-bagian yang lebih kecil (prioritas dari fitur produk yang memiliki tim fitur kecil dapat dibuat dalam beberapa bulan)
- Membuat project bekerja secara sistematis meskipun mereka tidak dapat menggambarkan dan menyelesaikan suatu produk di awal project.
- Mengijinkan tim besar bekerja menjadi tim yang lebih kecil dengan membagi sebuah tim menjadi beberapa bagian, bekerja secara paralel tetapi tetap dapat berkesinambungan dalam men synchronizing setiap perubahan, stabilizing produk dan menemukan serta memperbaiki kesalahan.
- Memfasilitasi masukkan dari customer, fitur produk dan waktu pengembangan yang pendek, yang didukung oleh mekanisme masukkan customer, prioritas, menyelesaikan dahulu bagian yang sangat penting dan melakukan perubahan tanpa harus mengurangi fitur yang diperlukan.
- Model Rational Unified Process
RUP mempunyai beberapa tahapan, yaitu : Inception, Elaboration, Construction, dan Transition

- Ada beberapa keuntungan dengan mengunakan RUP di antaranya
- Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
- Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
- Mendukung proses pengulangan dalam pengembangan software
- Memungkinkan adanya penambahan-penambahan pada proses..
- Memungkinkan untuk secara sistematis mengontrol perubahan- perubahan yangterjadi pada software selama proses pengembangannya.
- Memungkinkan untuk menjalankan test case dengan menggunakan Rational TestManager Tool
Kekurangan Model RUP :
Metodologi ini hanya dapat digunakan pada pengembangan perangkat lunak yangberorientasi objek dengan berfokus pada UML (Unified Modeling Language)
- Model Build & Fix Method

- Build and fix dibuat tanpa melalui tahapan analisis dulu
Kekurangan Model Build & Fix Method
- Tidak cocok ketika di pakai untuk membuat produk dengan kompleksitas tinggi dan dengan ukuran yang besar
- Biaya yang di butuhkan akan menjadi sangat membengkak dan membesar ketika build and fix di gunakan untuk membuat projek berskala besar
- Metode Pengembangan Extreme Programming

- Planning/Perencanaan
- Design/Perancangan
- Coding/Pengkodean
- Coding/Pengujian
- SDLC Big Bang Model
Biasanya model ini di implementasi untuk proyek kecil dimana tim developernya sangat sedikit.
Spesifikasi Big Bang Model SDLC
Model Big Bang terdiri dari memfokuskan semua sumber daya yang mungkin dalam pengembangan perangkat lunak dan pembuatan code / coding, dengan perencanaan yang sangat sedikit atau tidak sama sekali. Requirement yang dibutuhkan terkadang datang pada saat pembuatan code. Setiap perubahan yang diperlukan mungkin atau mungkin tidak perlu mengubah perangkat lunak yang lengkap.
Big Bang Model ini sangat ideal untuk proyek kecil dengan satu atau dua pengembang yang bekerja sama dan juga berguna untuk pembelajaran atau project-project yang sangat kecil
Keuntungan dan Kelebihan Big Bang Model SDLC
Keuntungan dari Model Big Bang ini adalah sangat sederhana dan memerlukan perencanaan yang sangat sedikit atau tidak sama sekali. Mudah untuk mengelola dan tidak ada prosedur formal yang diperlukan.
Namun Big Bang model ini sangat beresiko tinggi dikarenakan dipastikan seringnya terjadi perbuhaan mengakibatkan kesalah pahaman antar developer yang mengerjakan project tersebut. Ini sangat ideal untuk proyek berulang atau kecil dengan risiko minimum.
Keuntungan Big Bang Model antara lain:
- Model yang sangat sederhana
- Sedikit atau tidak ada perencanaan yang dibutuhkan
- Mudah dikelola
- Sangat sedikit sumber daya yang dibutuhkan
- Memberikan fleksibilitas kepada pengembang
- Bagus untuk developer yang ingin belajar atau developer pendatang baru.
- Beresiko tinggi dan kepastian dari requirement yang tidak jelas
- Tidak cocok untuk project skala besar dan berorientasi objek
- Model yang buruk untuk proyek yang panjang dan sedang berlangsung.
- Bisa berubah menjadi sangat mahal jika persyaratan disalahpahami
12. The V-Model
The V-Model adalah model SDLC dimana pelaksanaan proses yang terjadi secara berurutan dalam bentuk-V. Dikenal juga sebagai model Verifikasi dan Validasi.

The V-Model merupakan perluasan dari waterfall model dan didasarkan pada asosiasi dari fase pengujian untuk setiap tahap pengembangan yang sesuai. Ini berarti bahwa untuk setiap fase tunggal dalam siklus pengembangan, ada tahap pengujian terkait langsung. Ini adalah model yang sangat disiplin dan tahap berikutnya dimulai setelah selesainya tahap sebelumnya.
Ilustrasi berikut menggambarkan berbagai tahap dalam V-Model SDLC.

Ada beberapa tahapan verifikasi di V-Model, masing-masing dijelaskan secara rinci di bawah:
Business Requirement Analysis
Ini adalah tahap pertama dalam siklus pengembangan di mana persyaratan produk dipahami dari perspektif pelanggan. Fase ini melibatkan komunikasi rinci dengan pelanggan untuk memahami harapan dan kebutuhan yang tepat. Ini merupakan kegiatan yang sangat penting dan perlu dikelola dengan baik, karena sebagian besar pelanggan tidak yakin tentang apa yang sebenarnya mereka butuhkan Acceptance test desain dilakukan pada tahap ini sebagai kebutuhan bisnis dapat digunakan sebagai masukan untuk pengujian penerimaan.
System Design
Setelah Anda memiliki persyaratan produk yang jelas dan rinci, sekarang saatnya untuk merancang
sistem yang lengkap. Desain sistem akan memiliki pemahaman dan merinci hardware lengkap dan setup komunikasi untuk produk dalam pengembangan. Rencana pengujian sistem dikembangkan berdasarkan desain sistem. Melakukan hal ini pada tahap awal membuat lebih banyak waktu untuk pelaksanaan tes yang sebenarnya nanti
Architectural Design
spesifikasi arsitektur dipahami dan dirancang dalam fase ini. Biasanya lebih dari satu pendekatan teknis diusulkan dan berdasarkan kelayakan teknis dan finansial keputusan akhir diambil. Desain sistem dipecah lebih jauh ke dalam modul mengambil fungsi yang berbeda. Hal ini juga disebut sebagai “Desain Tingkat Tinggi”
Module Design
Pada fase ini, desain internal rinci untuk semua modul sistem yang ditentukan, disebut “Desain Tingkat Rendah”. Penting bahwa desain tersebut kompatibel dengan modul lain dalam arsitektur sistem dan sistem eksternal lainnya.
Coding Phase
Bahasa pemrograman yang paling cocok ditentukan berdasarkan sistem dan persyaratan arsitektur. pengkodean dilakukan berdasarkan pedoman coding dan standar. Kode berjalan melalui berbagai ulasan kode dan dioptimalkan untuk kinerja terbaik sebelum final membangun diperiksa ke dalam repositori
Fase Validasi berbeda dalam V-Model dijelaskan secara rinci di bawah ini:
Unit Testing
unit testing adalah pengujian pada tingkat kode dan membantu menghilangkan bug pada tahap awal, meskipun semua cacat tidak dapat ditemukan oleh unit testing.
Integration Testing
Integration testing dikaitkan dengan fase desain arsitektur. tes integrasi dilakukan untuk menguji koeksistensi dan komunikasi dari modul internal dalam sistem.
System Testing
System testing secara langsung berhubungan dengan tahap desain sistem. System testing memeriksa seluruh fungsi sistem dan komunikasi sistem dalam pengembangan dengan sistem eksternal. Sebagian besar perangkat lunak dan perangkat keras masalah kompatibilitas dapat ditemukan selama pelaksanaan test ini
Acceptance Testing
Acceptance testing dikaitkan dengan tahap analisis kebutuhan bisnis dan melibatkan pengujian produk di lingkungan pengguna. Acceptance testing mengungkap masalah kompatibilitas dengan sistem lain yang tersedia di lingkungan pengguna. Juga menemukan masalah non-fungsional seperti beban dan kinerja cacat pada aktual lingkungan pengguna.
Kelebihan dari V-Model SDLC
- Ini adalah model yang sangat-disiplin dan Tahapan selesai satu per satu.
- Bekerja dengan baik untuk proyek-proyek yang lebih kecil dimana persyaratan dipahami dengan baik.
- Sederhana dan mudah dimengerti dan digunakan.
- Mudah dikelola karena setiap fase memiliki spesifik kiriman dan proses review.
Kekurangan dari V-Model SDLC
- Berisiko tinggi dan ketidakpastian.
- Tidak cocok untuk proyek-proyek yang kompleks dan berorientasi objek.
- Tidak cocok untuk proyek-proyek dimana persyaratan beresiko tinggi
- Tidak cocok untuk proyek-proyek yang lama dan berkelanjutan.
- Setelah aplikasi dalam tahap pengujian, sulit untuk kembali dan mengubah fungsionalitas.
terima kasih telah mengunjungi blog saya, semoga bermanfaat bagi kita semia.
Tidak ada komentar:
Posting Komentar