Jumat, 03 Maret 2023

SIKLUS PENGEMBANGAN PERANGKAT LUNAK ATAU Software Development Life Cycle (SDLC)

Proses Pengembangan Perangkat Lunak

Proses pengembangan perangkat lunak (software development process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap. Proses ini memiliki beberapa model yang masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi selama proses. Pengembangan perangkat lunak juga didefinisikan sebagai suatu proses dimana kebutuhan pemakai diterjemahkan menjadi produk perangkat lunak melalui suatu rangkaian aktivitas tertentu sesuai model proses yang digunakan. Proses pengembangan perangkat lunak dilaksanakan setelah proses akuisisi dan pasokan. Dalam pelaksanaannya, proses pengembangan ini akan melibatkan:
1. Orang (people) 
Individu, kelompok, atau bagian organisasi yang menjadi pelaksana pekerjaan, seperti analis sistem, pemrogram, penguji perangkat lunak, dan pihak-pihak lainnya termasuk pemakai dan pelanggan.
2. Proyek (project)
Pekerjaan pengembangan perangkat lunaknya sendiri, yang dikelola sesuai prinsip-prinsip manajemen proyek. 
3. Produk (product)
Kode sumber (source code), executable programs, model-model, dan dokumen-dokumen yang dihasilkan sebagai produk selama pelaksanaan pengembangan.
4. Proses (process)
Kumpulan aktivitas yang digunakan untuk menghasilkan perangkat lunak. Setiap aktivitas dilaksanakan dengan menggunakan pendekatan atau metode teknis tertentu.
5. Alat bantu
Kumpulan perangkat bantu atau kakas otomatis dan semi-otomatis yang akan digunakan untuk mendukung aktivitas-aktivitas dari proses..

Software Development Life Cycle (SDLC)

SDLC adalah proses pengubahan dan pembuatan sistem, model, serta metodologi yang digunakan untuk mengembangkan software. Singkatnya, dalam dunia rekayasa software, ia merupakan langkah-langkah yang bisa diterapkan para engineer dan developer untuk merancang dan mengelola software.
Untuk apa SDLC ini? Tentunya untuk menghasilkan output sistem berkualitas tinggi yang sesuai dengan ekspektasi para pengguna dan stakeholder.
SDLC juga memiliki beberapa tahap kerja,  termasuk planning, design, testing, building, dan deployment. Bagaimana cara kerja dalam software development life cycle? Berikut adalah pemaparannya.
1. Identifikasi masalah
Analisis kebutuhan dan masalah adalah syarat paling dasar dan juga utama dalam SDLC.
Dalam tahapan ini, engineer atau developer menerima semua input yang masuk termasuk dari customer, salesperson, industri, dan juga programmer.
Setelah input masuk, engineer akan mencoba mempelajari kekurangan dan kelebihan dari sistem. Tujuan utama dari tahapan ini adalah peningkatan dari sistem yang sudah ada.
2. Perencanaan
Dalam tahap ini, tim engineer akan merencanakan berbagai persyaratan dalam pembuatan software baru atau software yang sudah ada. Hal ini juga termasuk dari aspek biaya dan juga bahan-bahan yang dibutuhkan.
Tidak hanya itu, perencanaan ini termasuk pula rincian dari risiko atau skenario terburuk dari software yang akan di-SDLC-kan.
3. Rancangan
Tahap kerja selanjutnya yang perlu diterapkan dalam sistem SDLC adalah fase rancangan.
Tahap kerja SDLC ini dimulai dari mengubah spesifikasi sebuah software ke dalam design plan yang disebut dengan Desain Dokumen Spesifikasi (DDS).
Semua tim yang bersangkutan termasuk dengan klien akan membantu mereview dari rancangan ini dan menawarkan feedback.
Sangat penting untuk mengumpulkan semua feedback yang diberikan dalam dokumen ini. Jika ada kegagalan dalam tahap ini, akan berakibat biaya yang melonjak dan menjadi over.
Bahkan, kemungkinan terburuknya adalah dapat membuat proyek jadi gagal dan bangkrut.
4. Membangun atau mengembangkan produk
Dalam tahap SDLC ini, tugas engineer dan tim adalah untuk membangun sebuah produk dari barisan atau bahasa pemrograman.
Jika tahap sebelumnya sudah dikerjakan dengan sangat detail, mungkin sebenarnya tahap ini dapat dikatakan tahap paling sulit dan membingungkan.
5. Pengujian
Dalam tahap pengujian, pertanyaan-pertanyaan seperti “sudahkah kita mendapat apa yang kita mau?” akan terus berulang.
Dalam pengujian, engineer dan tim harus memastikan bahwa produk yang dibuat tidak memiliki cacat dan sesuai dengan permintaan klien.
6. Memasarkan Produk
Jika pengujian sudah selesai, proses kerja SDLC berikutnya yang bisa segera diluncurkan adalah pemasaran produk
Fase ini bukan tidak menunjukkan bahwa setiap tahap SDLC sudah selesai. Berbagai feedback yang disampaikan oleh user juga harus didengarkan lagi. Bila perlu, akan ada penyesuaian lagi terhadap produk.
7. Melakukan pemeliharaan (maintenance)
Tahap kerja terakhir yang perlu dilakukan oleh semua perusahaan dalam sistem SDLC adalah maintenance.
Dengan keadaaan dan kondisi teknologi yang terus berubah, tahapan terakhir dari SDLC mengharuskan engineer dan tim tetap memelihara produk yang sudah selesai.
Hal ini perlu dilakukan untuk mengurangi error dan penurunan kualitas pada produk.



Model Pengembangan SDLC

Model pengembangan ini sangat penting untuk membantu proses pengembangan perangkat lunak. Terdapat beberapa model pengembangan SDLC yang diikuti oleh berbagai organisasi, yaitu:

Waterfall Model
Metode pengembangan sistem metode SDLC(Sistem Development Life Cycle) atau sering disebut sebagai pendekatan air terjun (waterfall).Metode waterfall pertama kali diperkenalkan oleh Windows W. Royce pada tahun 1970. Waterfall merupakan model klasik yang sederhana dengan aliran sistem yang linier Output dari setiap tahap merupakan input bagi tahap berikutnya (Kristanto, 2004). Model ini melibatkan penyelesaian satu tahap secara lengkap sebelum melangkah ke tahap berikutnya. Ketika satu tahap selesai langsung dilakukan evaluasi untuk memastikan proyek berjalan sesuai rencana dan layak diteruskan ke tahap berikutnya. Waterfall Model, disebut juga model klasik, memiliki beberapa tahap utama, yaitu analisis dan rekayasa sistem, perancangan, penulisan program, pengujian, dan pemeliharaan.

Kelebihan Model Sekuensial Linear / Waterfall Development Model :
1) Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
2) Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
3) Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
4) Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.

Kekurangan Model Sekuensial Linear / Waterfall Development Model :
1) 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.
2) Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
3) Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
4) 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.
5) Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

Model Prototype
Metode Prototype 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 atau waterfall development model. 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 :
1) Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
2) Penentuan kebutuhan lebih mudah diwujudkan.
3)Mempersingkat waktu pengembangan produk perangkat lunak.
4) Adanya komunikasi yang baik antara pengembang dan pelanggan.
5) Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
6) Lebih menghemat waktu dalam pengembangan sistem.
7) Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.

Kekurangan Model Prototype :
1) Proses analisis dan perancangan terlalu singkat.
2) Biasanya kurang fleksibel dalam mengahadapi perubahan.
3) 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.
4) Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.

Model Rapid Application Development (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.

Kelebihan Model RAD :
1) Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
2) Cocok untuk proyek yang memerlukan waktu yang singkat.
3) 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 :
1) 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.
2) Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
3) RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
4) Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.( Jdi dak biso di pake utk TA)
5) Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

Model Evolutionary Development (Evolutionary Software Process Models)
Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu :
Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. 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.

Model Spiral ( Model Boehm)
Model 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.

Model Agile
Model Agile merupakan model pengembangan jangka pendek yang memerlukan adaptasi cepat dan pengembangan terhadap perubahan dalam bentuk apapun. Dalam agile terdapat beberapa poin penting diantaranya sebagai berikut:
1) Interaksi antar personal lebih penting daripada proses dan alat.
2) Software yang berfungsi lebih penting daripada dokumentasi yang lengkap
3) Kolaborasi dengan klien lebih penting daripada negoisasi kontrak.
4) Sikap tanggap lebih penting daripada mengikuti rencana/plan.

Kelebihan Model Agile :
1) Functional dapat dibuat dengan cepat dan dilakukan testing
2) Perubahan dengan cepat ditangani

Kelemahan Model Agile ;
1) Analisis, desain, dan pengembangan sulit diprediksi
2) Dapat memunculkan permasalahan dari arsitektur maupun desain.

Kesimpulan

Proses pengembangan perangkat lunak adalah suatu proses dimana kebutuhan pemakai direalisasikan menjadi suatu produk perangkat lunak melalui serangkaian aktivitas tertentu sesuai model proses yang digunakan. Model proses tersebut biasanya dikenal dengan SDLC atau Software Developmment Life Cycle. Metode ini digunakan untuk memaksimalkan proses pengembangan suatu perangkat lunak dari mulai planning, design, testing, building hingga deployment. Model SDLC yang terkenal meliputi waterfall model, spiral model, agile model, dan masih banyak lagi

Daftar Pustaka

Jessica, C. (2021, Desember 17). Software Development Life Cycle(SDLC) : Arti, Cara Kerja, Penerapan, dan Manfaatnya. Retrieved from glints.com: https://glints.com/id/lowongan/sdlc-software-development-life-cycle/#.ZAH6vRgxXVU

Pengembangan Perangkat Lunak. (n.d.). Retrieved from elearningunla.ac.id.

University, B. (2020, May 19). Memahami System Development Life Cycle. Retrieved from accounting.binus.ac.id: https://accounting.binus.ac.id/2020/05/19/memahami-system-development-life-cycle/

 


EmoticonEmoticon