Software
atau perangkat lunak merupakan program yang berisi kumpulan instruksi untuk
melakukan proses pengolahan data. Namun, dalam mengembang perangkat lunak harus
melalui berbagai proses dan siklus yang
ada.
Siklus
pengembangan perangkat lunak atau yang biasa dikenal Software Development Life Cycle (SDLC) merupakan proses dimana
kebutuhan pemakai diterjemahkan menjadi sebuah produk software nantinya. Dalam pengembangan software ada beberapa tahapan yang harus dilakukan;
a.
Menentukan apa kegunaan dari software tersebut
dalam rentang waktu tertentu
b.
Mendefinisikan bagaimana software nantinya
dibuat, mencakup algoritma, UI/UX, arsitektur software, dan sebagainya.
c.
Penerapan serta penulisan program dan pengujian unit-unit program.
d.
Integritas dan pengujian modul-modul program.
e.
Pengujian sistem
Proses
pengembangan software seringkali
memakan waktu yang cukup lama dan banyak membutuhkan sumber daya. Lalu,
bagaimana jika seandainya software yang
dikembangkan timbul permasalahan?
Permasalahan
seperti itu sering terjadi pada saat pengembangan software, yang perlu dilakukan jika hal tersebut terjadi maka software perlu dikembangkan kembali. Hal
tersebut terus dilakukan hingga permasalahan pada software dapat teratasi, inilah yang disebut dengan siklus hidup
perangkat lunak.
Pengertian SDLC (Software Development Life Cycle)
Menurut
(Rosa & Shakahuddin, 2018) SDLC merupakan proses mengembangkan atau
mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan
metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat
lunak sebelumnya (berdasarkan best
practice atau cara-cara yang sudah teruji).
Ladjamudin
(2005) memberikan definisi bahwa metode SDLC adalah suatu pengembangan yang
difungsikan
sebagai sebuah mekanisme untuk dapat mengidentifikasikan
perangkat
lunak.
Seperti
yang dijelaskan sebelumnya, SDLC adalah proses dimana kebutuhan pemakai
diterjemahkan menjadi sebuah produk software nantinya.
Dalam
proses pengembangan software, SDLC
memungkinkan sebuah perusahaan dapat membuat perencanaan yang baik, menentukan
jumlah biaya yang diperlukan, menentukan tujuan, mengukur kinerja, hingga
membantu validasi poin pada setiap fase.
Keuntungan Menerapkan SDLC
Melansir
dari LOGIQUE berikut
ini beberapa keuntungan dalam menerapkan SDLC ;
1.
Membantu perencanaan,estimasi,dan penjadwalan proyek dengan baik
2.
Kontrol proyek dapat dilakukan dengan lebih mudah
3.
Semua pemangku kepentingan dapat mengetahui bagaimana siklus pengembangan software secara transparan.
4.
Dapat mempercepat proses pengembangan software
5.
Mengurangi resiko proyek
6.
Dapat mengurangi biaya manajemen proyek dan biaya produksi
7.
Meningkatkan hubungan yang baik dengan client
Fungsi Utama SDLC
Berdasarkan
yang dijelaskan pada situs MichiganTech fungsi dari metodologi SDLC adalah untuk menyediakan Manajer
Proyek IT dengan alat untuk membantu memastikan keberhasilan penerapan sistem
yang memenuhi tujuan strategis dan bisnis.
Tahapan SDLC (Software Development Life Cycle)
Selain
fungsi utamanya dan keuntungan dalam menerapkannya, ada beberapa tahapan yang
dijalani oleh framework ini. Berikut beberapa
tahapan yang terdapat pada SDLC ;
1. Planning
Tahapan
yang pertama adalah planning atau perencanaan, planning merupakan tahap dimana
tim akan mengidentifikasi dan menentukan terlebih dahulu ruang lingkup dan
tujuan dibuatnya software yang akan dikembangkan. Tujuannya agar tim
yang tergabung dalam pengembangan software
dapat mengembangkan software yang
tepat dan efektif tanpa keluar dari tujuan yang sebenarnya. Oleh karena itu,
tim juga nanti akan mengumpulkan semua informasi yang dibutuhkan dari client hingga selanjutnya menentukan
struktur tim, jangka waktu, biaya, keamanan, serta faktor-faktor pendukung
lainnya yang diperlukan dalam pengembangan software.
2.Analysis
Memiliki
hasil akhir yang sesuai dengan ekspetasi client,
tahapan analysis menjadi salah satu tahapan yang termasuk dalam metode SDLC.
Pada tahap ini dijelaskan bahwa mengumpulkan secara lengkap kebutuhan fungsional
sistem untuk dianalisis dan mendefinisikan dengan maksud mengetahui apa masalah
bisnis, target yang ingin dicapai, tujuan utama dikembangkannya software tersebut, hingga fungsi dari software yang akan dikembangkan. Dari
sinilah nantinya akan didapatkan cara untuk membangun sistem yang baru.
3.Design
Proses
yang menentukan cara kerja sistem dalam memperkiran sebelum dibuatnya kode. Pada
tahap ini dapat dibuat menggunakan flowchart,
MindMap,ERD (Entity Relationship Diagram).
Tahap
ini juga terdapat beberapa aspek yang sudah ditentukan :
a.
Architecture Design
Aspek
ini fokus pada bahasa pemograman yang akan digunakan, design software secara menyeluruh, dan
lain-lain.
b.
User Interface (UI)
Merupakan
bagaimana nantinya cara user ketika berinteraksi dengan software hingga cara software
memberikan respon kepada user.
c.
Platform
Platform
merupakan tempat dimana software akan
dijalankan, contohnya Android,iOs, Linux atau lainnya.
d.
Security
Security
merupakan langkah-langkah untuk mengamankan software
misalnya membuat perlindungan kata sandi, enkripsi SSL Traffic atau membuat penyimpanan kredensial pengguna yang aman.
4. Development
Memasuki
tahapan yang dimana software mulai
dikembangkan, seluruh tim yang tergabung dalam pengembangan software mulai membangun sistem dengan
meulis kode menggunakan bahasa pemograman yang sudah dipilih. Namun, jika
proyek yang dikerjakan ini berskala kecil, maka satu atau dua orang developer
mampu untuk mengerjakannya. Sebaliknya, jika proyek yang dikerjakan berskala
besar maka tim akan sangat diperlukan dalam pengerjaannya.
Membantu
developer untuk melacak perubahan pada kode dan memastikan kompabilitas antar
proyek tim, maka diperlukan aplikasi Access
Control atau Source Code Management. Pada
saat coding tidak hanya sebatas
menyusun kode agar aplikasi dapat berjalan, tapi juga mencakup banyak tugas
lain, misalnya yang paling sering adalah menemukan bug,error, hingga glitches dan
memperbaikinya. Oleh karena itulah, pada tahap ini memerlukan waktu yang cukup
lama.
5. Testing
Tahapan
setelah development adalah testing atau pengujian, pada tahapan
pengujian ini dilakukan sebelum software digunakan
oleh pengguna. Biasanya pada tahapan ini akan melibatkan para software Quality Assurance (QA) untuk
melakukan pengujian pada sistem dan menilai apakan software dapat bekerja sesuai dengan fungsi pada umumnya yang
diharapkan.
Beberapa
pengujian juga biasanya dilakukan adalah security
testing yang diotomatiskan atau pengujian untuk penerapan yang kompleks. Harapannya
pengujian ini dapat mengurangi kemungkinan adanua keterlambatan dalam
pemrosesa, bug,dan gangguan yang
ditemui pengguna.
6. Deployment
Tahapan
ini nantinya software sudah siap
diterapkan dan digunakan oleh pengguna. Tahap ini melibatkan pemasangan actual dari
sistem yang baru dikembangkan. Untuk proyek sederhana, contohnya menerapkan
kode ke server web. Sedangkan untuk pengembangan software berskala besar, deployment biasanya akan melibatkan proses
integrasi dengan banyak sistem berbeda.
Beberapa
perusahaan mungkin perlu melakukan pembaruan database ke aplikasi yang baru dikembangkan sehingga memakan lebih
banyak waktu dan tenaga. Bahkan banyak perusahaan memilih agar produk akhir
dapat pertama kali dirilis dalam segmen terbatas dan diuji dilingkungan bisnis
atau (UAT – User Acceptance Testing) dan
barulah dirilis ke pasar. Dengan harapan untuk meminimalisir adanya masalah
yang ditemukan oleh user setelah
produk dirilis ke pasar.
7. Maintenance
Tahapan
ini adalah tahapan akhir dari model SDLC, pada tahap ini tim akan melakukan
pemeliharaan sistem dan rutin melakukan pembaruan pada software.
SDLC
juga memiliki beberapa motode model pengembangan, diantaranya adalah ;
1.
Metode Waterfall
2.
Prototyping
3.
Linear Model
4.
Incemental Process Model
5.
V- Shaped model
Penjelasan
kali ini tidak menjelaskan sepenuhnya model pemgembangan yang terdapat pada
SDLC, jika mengambil salah satu contoh dari di atas yaitu V-Shaped. Dilansir dari
situs ekrut.com V-Shaped merupakan metodologi SDLC yang bertumpu pada validasi
dan verifikasi. Dengan metode berbentuk V dan dilakukan dengan fase pengujian
yang sesuai untuk setiap tahap pengembangan. V-Shaped Model berguna ketika ada
persyaratan yang diperlukan atau tidak diketahui dalam tahapan pengembangan software. Hal tersebut karena jika telah
berganti tahap, maka metode ini tidak lagi memungkinkan pengembang untuk
kembali ke tahap sebelumnya.
Kesimpulan
Siklus pengembangan perangkat lunak atau yang
biasa dikenal Software Development Life
Cycle (SDLC) merupakan proses dimana kebutuhan pemakai diterjemahkan
menjadi sebuah produk software nantinya.
Fungsi
utama SDLC adalah untuk menyediakan Manajer Proyek IT dengan alat untuk
membantu memastikan keberhasilan penerapan sistem yang memenuhi tujuan
strategis dan bisnis.
Menggunakan
model SDLC memiliki banyak keuntungan, dua diantaranya adalah dapat mempercepat
proses pengembangan software dan mengurangi resiko proyek