Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC)
Pengembangan perangkat lunak merupakan suatu proses yang kompleks dan membutuhkan banyak sumber daya dalam menyelesaikannya. Terdapat banyak tahapan yang harus dilalui hingga pada akhirnya dapat dioperasikan dan dipelihara. Pada dasarnya, tahapan yang harus dilalui saat proses pengembangan perangkat lunak meliputi, analisis kebutuhan pengguna, membuat desain berdasarkan analisis, mengubah ke bentuk kode program, melakukan uji coba, sampai dengan perbaikan/pemeliharaan.
Dalam proses mengembangkan perangkat lunak, kita akan lebih sering menjumpai siklus hidup perangkat lunak yang disebut SDLC (System Development Life Cycle). SDLC merupakan siklus hidup dalam proses pengembangan software yang dilakukan secara terus-menerus untuk menjaga kualitas produk yang dihasilkan. Saat ini, terdapat 3 jenis metode siklus hidup sistem yang sering digunakan, yaitu tradisional, prototyping, dan objek-oriented. SDLC digunakan dalam proses pengembangan perangkat lunak agar dapat mempermudah dan mengefisien waktu dengan memberikan gambaran input yang jelas serta menciptakan output yang terarah dan tepat sasaran sesuai dengan yang diinginkan.
Beberapa tahapan dalam SDLC, yaitu:
1. Perencanaan
Perencanaan merupakan tahap di mana tim akan melakukan identifikasi terhadap ruang lingkup dan mengumpulkan segala informasi yang digunakan dalam proses pengembangan. Tim juga harus melakukan perencanaan terhadap struktur, waktu, budget, keamanan dan berbagai faktor lainnya.
2. Analisis
Pada tahap ini, tim harus dapat menganalisis fungsional sistem untuk mengetahui masalah bisnis, target, tujuan utama, fungsi, dan berbagai hal terkait lainnya dalam pengembangan software tersebut. Analisis dilakukan agar produk yang dihasilkan nantinya sesuai dengan ekspektasi klien.
3. Desain
Setelah melakukan analisis, tim harus merancang beberapa aspek desain berupa arsitektur (bahasa pemrogramman yang digunakan, desain software, dll), user interface, platform (android, iOS, Linux, dll), dan keamanan. Tim harus bisa menjelaskan parameter seperti risiko, teknologi yang digunakan, kapabilitas, kendala, waktu dan anggaran proyek.
4. Pengembangan
Pada tahap ini, tim pengembangan akan membangun seluruh sistem dengan mengubah desain menjadi kode program menggunakan bahasa pemrogramman yang telah ditentukan. Tahap ini merupakan fase terpanjang dalam proses pengembangan software.
5. Percobaan
Selanjutnya, akan dilakukan tahapan percobaan terhadap sistem yang telah dibuat untuk menilai apakah software dapat bekerja sesuai dengan fungsi dan harapannya. Proses ini dilakukan hingga software dapat bekerja stabil, terbebas dari bug, dan berfungsi sesuai harapan.
6. Implementasi dan Perilisan
Tahap ini bertujuan untuk men-deploy perangkat lunak ke lingkungan produksi agar pengguna dapat menggunakan software yang dikembangankan tersebut.
7. Pemeliharaan
Tahapan terakhir pada siklus hidup perangkat lunak ini adalah melakukan pemeliharaan software. Tim akan melakukan pemeliharaan rutin untuk memperbarui kinerja software agar dapat terus digunakan dari generasi ke generasi dengan optimal.
Berikut ini beberapa model SDLC yang sering digunakan dalam proses mengembangkan perangkat lunak.
1. Linier Sequential Model (Waterfall Methods)
a. Requirement Analysis
Tahap ini dilakukan untuk mengumpulkan informasi-informasi yang dapat diperoleh dari berbagai cara seperti diskusi, observasi, survei, wawancara, dan lain sebagainya. Informasi yang didapatkan akan diproses dan dianalisa untuk mendapatkan informasi yang lengkap mengenai kebutuhan pengguna terhadap perangkat lunak yang akan dikembangkan.
b. System and Software Design
Informasi yang telah didapatkan selanjutnya diimplementasikan pada desain pengembangan dengan tujuan membantu memberikan gambaran detail mengenai hal-hal yang harus dikerjakan. Tidak hanya itu, tahap ini turut membantu pengembang menyiapkan kebutuhan hardware dalam proses pembuatan arsitektur sistem perangkat lunak secara keseluruhan.
c. Implementation and Unit Testing
Tahap ini bisa disebut juga dengan tahap pemrograman. Desain yang telah dibuat akan dituangkan dalam bentuk kode program yang telah dibagi menjadi modul-modul kecil. Setelah itu, akan dilakukan testing guna menguji apakah yang dikembangkan telah sesuai dengan fungsi dan harapan.
d. Integration and System Testing
Pada tahap ini, unit akan diintegrasikan dalam sistem secara menyeluruh dan dilakukan pemeriksaan sistem untuk mengidentifikasi kemungkinan adanya kesalahan atau kegagalan sistem saat digabungkan.
e. Operation and Maintenance
Perangkat lunak yang sudah jadi dapat dioperasikan oleh pengguna dan dilakukan pemeliharaan secara berkala. Pemeliharaan dilakukan untuk memperbaiki perangkat lunak jika sewaktu-waktu ditemukan kesalahan yang tidak terdeteksi pada tahap sebelumnya dan melakukan pembaharuan terhadap perkembangan era.
2. Evolutionary Process Model (Metode Prototyping)
Evolutionary Process Model merupakan siklus yang bertujuan mengembangan perangkat lunak dari setiap aktifitas yang saling terkoneksi untuk melakukan penentuan, perancangan, implementasi hingga pengujian sistem perangkat lunak. Salah satu metode pada model pengembangan ini adalah prototyping. Pada dasarnya metode prototyping ini terbagi dalam lima fase, yakni:
a. Communication
Fase ini merupakan tempat dimana pengembang dan klien bertemu dan berdiskusi mengenai perangkat lunak yang akan dikembangkan.
b. Quick Design
Fase ini merupakan pengimplementasian dari requirement-requirement yang sebelumnya telah diperbincangkan. Tahap ini berfokus kepada aspek yang terlihat pada pengguna. Desain yang dibuat digunakan untuk membantu membangun prototype.
c. Modelling Quick Design
Fase ini memberi ide mengenai pengembangan perangkat lunak yang akan dibuat. Tahap ini membantu pengembang untuk lebih memahami lebih tepat requirement yang diminta.
d. Construction of Prototype
Prototype yang telah dikembangkan akan dievaluasi oleh klien sendiri pada tahap ini agar sesuai dengan keinginan dan tepat sasaran.
e. Deployment, Delivery, and Feedback
Jika klien tidak puas dengan prototype maka akan diperbaiki sesuai dengan permintaan. Proses perbaikan akan terus dilakukan hinggan klien puas. Setelah puas dengan prototype, barulah sistem akan dikembangkan berdasarkan prototype akhir kesepakatan.
3. Incremental Process Model (Rapid Application Development)
Salah satu metode yang dikenal pada model pengembangan incremental process adalah RAD (Rapid Application Development). Metode ini merupakan proses yang menekankan pada pembuatan prototype, iterasi dan feedback yang berulang. Hal tersebut sangat cocok dengan kebutuhan dan perkembangan digital yang serba cepat. Terdapat empat tahapan dalam RAD, yaitu:
a. Menentukan Kebutuhan Proyek
Tahapan ini dimulai dengan menganalisa kebutuhan-kebutuhan yang akan digunakan pada proyek pengembangan perangkat lunak. Tahap ini dilakukan guna memberikan gambaran mengenai proyek yang akan dikerjakan.
b. Membuat Prototype
Selanjutnya, pengembang akan membuat prototype dari perangkat lunak yang diinginkan. Hal tersebut dilakukan guna menyesuaikan keinginan dan kebutuhan klien. Tahap ini dilakukan secara berulang dan melibatkan pengguna untuk mengecek adanya bug atau error pada sistem.
c. Proses Pengembangan dan Pengumpulan Feedback
Pada tahap ini, pengembang akan mengubah prototype menjadi bentuk aplikasi. Proses ini dilakukan sambil mempertimbangkan feedback dari klien mengenai keseluruhan aplikasi yang dikembangkan.
d. Implementasi dan Finalisasi Produk
Tugas utama dari tahap ini adalah memperbaiki kekurangan produk yang sebelumnya tidak terdeteksi. Finalisasi produk dilakukan guna mengoptimasi stabilitas aplikasi, memperbaiki interface, maintenance dan menyusun dokumentasi.
4. Agile Model (Metode Scrum)
Secara bahasa, agile memiliki arti cepat, ringan, dan bebas bergerak. Kata ini digunakan untuk melambangkan sebuah model pengembangan perangkat lunak yang bersifat seperti kata tersebut. Salah satu metode pada model agile ini adalah scrum. Metode ini sangat cocok digunakan untuk menemukan solusi cepat apabila terdapat kendala dalam proyek. Terdapat beberapa tahapan dalam melakukan metode scrum, yaitu:
a. Menentukan Tim
Dalam mengerjakan projek, tentu saja diperlukan tim. Usahakan jumlah anggota yang efektif dan efisien.
b. Menentukan Waktu Pengerjaan
Pada metode ini, umumnya dikerjakan secara cepat (sprint) sekitar 7 sampai dengan 30 hari.
c. Menentukan Peran dalam Tim
Agar dapat bekerja secara maksimal, setiap tim harus memiliki perannya masing-masing agar dapat saling melengkapi saat melaksanakan projek.
d. Mengumpulkan Berbagai Permasalahan
Pengumpulan masalah atau yang biasa disebut sebagai backlog digunakan untuk menentukan urutan prioritas pengerjaan.
e. Memulai sprint
Setelah semua tahap dijalankan, maka akan langsung dapat dilakukan sprint atau pengerjaan projek.
Kesimpulan
- Pengembangan perangkat lunak merupakan suatu proses pengembangan yang dilakukan mulai dari tahap analisis kebutuhan pengguna, membuat desain berdasarkan analisis, mengubah ke bentuk kode program, melakukan uji coba, sampai dengan perbaikan/pemeliharaan.
- SDLC merupakan siklus hidup dalam proses pengembangan software yang dilakukan secara terus-menerus untuk menjaga kualitas produk yang dihasilkan.
- SDLC digunakan dalam proses pengembangan perangkat lunak agar dapat mempermudah dan mengefisien waktu dengan memberikan gambaran input yang jelas serta menciptakan output yang terarah dan tepat sasaran sesuai dengan yang diinginkan.
- Terdapat 7 Tahapan dalam SDLC, yaitu Perencanaan, Analisis, Desain, Pengembangan, Percobaan, Implementasi & Perilisan, dan Pemeliharaan.
- Terdapat 4 Model SDLC, meliputi:
- Linier Sequential Model (Waterfall Methods) dengan tahapan
- Evolutionary Process Model (Metode Prototyping)
- Incremental Process Model (Rapid Application Development)
- Agile Model (Metode Scrum)
Daftar Pustaka
Alghi, A. (2020, January 17). Proses Pengembangan Software yang Mudah dan Tepat. Medium. Retrieved 3 March, 2023, from https://medium.com/purwadhikaconnect/pengembangan-software-bukan-sekedar-coding-2622e3286da5
Setiawan, R. (2021, July 28). Metode SDLC Dalam Pengembangan Software. dicoding. Retrieved 3 March, 2023, from https://www.dicoding.com/blog/metode-sdlc/
(2020, May 19). Memahami System Development Life Cycle. BINUS University. Retrieved 3 March, 2023, from https://accounting.binus.ac.id/2020/05/19/memahami-system-development-life-cycle/
Feradhita, NKD. (2021, April 28). Pengertian, Model, dan Tahapan SDLC (Software Development Life Cycle). LOGIQUE. Retrieved 3 March, 2023, from https://www.logique.co.id/blog/2021/04/28/tahapan-sdlc/
(2022, June 7). Metode Waterfall - Definisi dan Tahap-tahap Pelaksanaannya. LP2M UMA. Retrieved 3 March, 2023, from https://lp2m.uma.ac.id/2022/06/07/metode-waterfall-definisi-dan-tahap-tahap-pelaksanaannya/
(2017). Evolutionary Process Models in Software Engineering. TutotialRide. Retrieved 3 March, 2023, from https://www.tutorialride.com/software-engineering/evolutionary-process-models-in-software-engineering.htm
Bayu, W. (2016, September 30). Evolutionary Software Process Models. Wordpress. Retrieved 3 March, 2023, from https://wisbays.wordpress.com/2016/09/30/evolutionary-software-process-models/
(2021, April 3). Apa itu RAD? Mengenal Salah Satu Metode Pengembangan Aplikasi. Bitlabs. Retrieved 3 March, 2023, from https://bitlabs.id/blog/rad-adalah/
Perdana, A. (2022, February 11). Metode Scrum:Definisi, Cara Kerja, Manfaat, dan Peran-Peran di Dalamnya. glints. Retrieved 3 March, 2023, from https://glints.com/id/lowongan/metode-scrum/#.ZAHFEnZBw2w
Komentar
Posting Komentar