Daftar Isi ⇅
show
SDLC yang merupakan singkatan dari software development life cycle atau sering disebut juga sebagai system development life cycle adalah rangkaian proses pengembangan suatu perangkat lunak atau sistem yang biasanya dilakukan melalui suatu model atau metode tertentu yang dapat menjamin bahwa pengembangan dapat dilaksanakan secara sistematis, menyeluruh, dan berkelanjutan hingga ke proses pemeliharaan maupun pengembangan lebih lanjut. Adanya proses pemeliharaan, perbaikan, dan pengembangan lebih lanjut ini adalah kunci utama dari SDLC yang menggunakan istilah “life cycle” atau siklus hidup.
Pengertian SDLC atau software development life cycle di atas senada dapat diperkuat oleh pendapat Hasanah, dkk (2020, hlml. 20) yang berpendapat bahwa SDLC adalah proses pengembangan atau mengubah suatu sistem perangkat lunak dengan menggunakan atau mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan sistem perangkat lunak.
Sementara itu menurut Permana, dkk (2023, hlm. 1) SDLC (Software Development Life Cycle) adalah suatu pendekatan sistematis yang digunakan dalam pengembangan perangkat lunak. Pendekatan ini membantu tim pengembangan perangkat lunak dalam mengatur proses pembuatan, pengembangan, pengujian, dan pemeliharaan perangkat lunak secara efisien dan terstruktur.
Seperti dari kata kunci utama dari istilah ini, yaitu “life cycle”, SDLC terdiri atas beberapa rangkaian proses yang berulang-ulang secara tetap dan teratur membentuk putaran waktu atau siklus hidup yang terus-menerus dilakukan untuk keberlanjutan suatu perangkat lunak atau sistem. Beberapa siklus tersebut dapat terdiri atas:
- Rencana(planning),
- Analisis (analysis),
- Desain (design),
- Implementasi dan pendistribusian (implementation and deployment),
- Uji coba (testing), dan
- Pengelolaan (maintenance) (Niqotaini, 2023, hlm. 8).
Apabila digambarkan, software development life cycle dapat diwakili oleh bagan sebagai berikut.
Dengan demikian sebuah pengembangan perangkat lunak adalah suatu siklus hidup yang akan terus berputar secara terus-menerus untuk memastikan perangkat lunak yang digunakan dapat terus digunakan mengikuti kebutuhan user, perkembangan teknologi, maupun perkembangan zaman sekali pun.
Mengapa Menggunakan SDLC? (Tujuan)
Pengembangan sistem perangkat lunak adalah kegiatan yang sangat kompleks. Proyek ini terdiri atas banyak pekerjaan yang memerlukan biaya dan sumber daya yang besar, dan merupakan kegiatan yang sangat penting dan berpengaruh besar bagi perusahaan (Hoffer, 2011, dalam Bahar, dkk, 2020, hlm. 1.25). Kompleksitas tersebut muncul disebabkan oleh beberapa hal sebagai berikut.
- Suatu sistem perangkat lunak yang akan dikembangkan biasanya melibatkan pemangku kepentingan (stakeholder) yang beragam dengan keinginan, kebutuhan, dan agenda yang berbeda-beda.
- Rumitnya struktur proses bisnis dalam organisasi di mana sistem perangkat lunak tersebut akan dikembangkan. Sebagaimana diketahui bahwa sistem perangkat lunak dikembangkan merujuk pada sistem bisnis (proses bisnis) organisasi.
- Rumit dan lamanya proses pengembangan sistem perangkat lunak itu sendiri, terutama pada sistem-sistem yang berskala besar.
Oleh karena itu, dalam situasi yang kompleks ini, suatu proyek pengembangan sistem perangkat lunak harus dijalankan dengan suatu prosedur kerja yang terstruktur dan terukur agar efisien dalam mencapai tujuan yang telah ditetapkan yang tak lain dan tak bukan terjawab oleh SDLC.
Selain itu, menurut Permana, dkk (2023, hlm. 1) tujuan dari SDLC adalah untuk menghasilkan perangkat lunak berkualitas tinggi yang memenuhi kebutuhan pengguna, mengikuti tenggat waktu, dan berada dalam batas anggaran yang ditentukan.
Kelebihan dan Kekurangan SDLC
Sebagai suatu kerangka kerja yang diupayakan dan dibuat untuk mempermudah dan mengelola pekerjaan dengan lebih baik, tentunya SDLC ini memiliki kelebihan dan kekurangan tersendiri. Beberapa kelebihan dari SDLC atau software design life cycle ini di antaranya adalah sebagai berikut.
- Dokumentasi Standar
SDLC akan menghasilkan dokumen standar yang dapat mempermudah komunikasi antara pemangku kepentingan. Dokumentasi standar juga menjamin kesesuaian spesifikasi sistem dengan kebutuhan pengguna. Misalnya, sebuah perusahaan dapat dengan mudah berbagi dokumen proyek dengan tim pengembang dan pihak-pihak terkait di luar perusahaannya. - Edukasi Pengguna
Dokumentasi yang lengkap memudahkan pengguna dalam memahami dan menggunakan sistem. Melalui SDLC yang jelas, kita dapat menulis manual pengguna yang komprehensif dan dapat membantu pengguna baru atau yang belum terbiasa dengan sistem. - Fase-fase Terdefinisi
Fase-fase yang jelas mempermudah manajemen proyek dan pengawasan. Kemajuan proyek dapat dipantau dengan mudah. Sebuah proyek dapat dengan jelas melihat tahapan analisis, desain, pengembangan, dan pengujian (Avison dalam Bahar, dkk, 2020, hlm. 1.33).
Sementara itu beberapa kekurangannya di antaranya adalah sebagai berikut.
- Tidak Memenuhi Kebutuhan Manajemen Tingkat Atas
SDLC cenderung membangun sistem pemrosesan transaksi dan teknis lainnya sehingga kurang memenuhi kebutuhan informasi manajemen tingkat atas dan harus dijelaskan lebih lanjut oleh pihak yang lebih memahami sisi teknis dari pengembangan perangkat lunak. Belum lagi, sistem yang fokus pada catatan transaksi harian mungkin tidak memberikan analisis strategis yang cukup bagi pimpinan perusahaan. - Pemodelan Proses yang Tidak Dinamis
Kurang fleksibel terhadap perubahan dinamis dalam proses bisnis. Misalnya, apabila model bisnis dibangun tanpa memperhitungkan perubahan pasar, sistem mungkin menjadi usang. - Perancangan yang Kurang Fleksibel
Desain sistem yang sulit berubah jika terjadi perubahan kebutuhan. Apabila ada perubahan dalam proses bisnis, maka perancangan sistem perlu diubah secara menyeluruh. - Ketidakpuasan Pengguna
Kesepakatan awal sering kali tidak sesuai dengan kebutuhan pengguna dan harus dilakukan perubahan lebih lanjut. Akan tetapi, kemudian beberapa pengguna lain yang awalnya setuju dengan spesifikasi justru merasa tidak puas pula apabila kebutuhan mereka berubah selama pengembangan.
Model-Model SDLC
Sebelumnya telah dipaparkan bahwa SDLC biasanya dilakukan menggunakan model atau metode tertentu yang telah disusun oleh banyak developer, peneliti, dan ahli bidang pengembangan perangkat lunak sistem lainnya. Menurut Hasanah, dkk (2020, hlm. 21) beberapa model SDLC tersebut di antaranya adalah sebagai berikut.
- Model Waterfall
Model waterfall atau air terjun adalah pendekatan klasik dalam pengembangan perangkat lunak yang menggambarkan metode pengembangan linier dan berurutan. Ini terdiri dari lima hingga tujuh fase, setiap fase didefinisikan oleh tugas dan tujuan yang berbeda, di mana keseluruhan fase menggambarkan siklus hidup perangkat lunak hingga pengirimannya. Setelah fase selesai, langkah pengembangan selanjutnya mengikuti dan hasil dari fase sebelumnya mengalir ke fase berikutnya. - Model Prototype
Prototyping adalah proses merancang sebuah prototype di mana prototype sendiri adalah sebuah model dari sebuah model produk yang mungkin belum memiliki semua fitur produk sesungguhnya namun sudah memiliki fitur-fitur utama dari produk sesungguhnya dan biasa digunakan untuk keperluan testing/uji coba untuk bahan uji coba sebelum berlanjut ke fase pembuatan produk sesungguhnya. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan suatu produk. - Model Rapid Application Development (RAD)
Metode Rapid Application Development (RAD) adalah model pengembangan perangkat lunak yang pengembangannya tergolong dalam teknik incremental (bertingakat). Rapid Application Development (RAD) adalah strategi siklus hidup yang ditujukan untuk menyediakan pengembangan yang jauh lebih cepat dan mendapatkan hasil dengan kualitas yang lebih baik dibandingkan dengan hasil yang dicapai melalui siklus tradisional (McLeod, 2002 dalam Hasanah, dkk, 2020, hlm. 25). - Model Iteratif
Metode yang merupakan pengembangan dari prototyping model dan digunakan ketika requirement dari software akan terus berkembang dalam tahapan-tahapan pengembangan aplikasi tersebut. Sedikit pengertian tentang requirement software dari developer yang diterapkan pada tahap pertama iterasi, akan mendapatkan tanggapan dari user. Ketika requirement menjadi jelas, tahapan iterasi selanjutnya akan dilaksanakan. - Model Spiral
Model Spiral merupakan model pengembangan system yang digambarkan berupa spiral. Model spiral ini tidak merepresentasikan rangkaian tahapan dengan penelusuran balik (back-tracking), tidak ada fase-fase tahapan yang tetap seperti spesifikasi atau perancangan. Setiap untaian pada pada spiral menunjukkan fase software process. Model spiral adalah model proses software yang evolusioner yang merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Model pengembangan perangkat lunak dengan metode spiral memiliki dua model yaitu prototyping dan waterfall. Model ini dikenal dengan sebutan Spiral Boehm.
Selain 5 model di atas, tentunya masih banyak lagi berbagai model SDLC lainnya, dan beberapa model lain yang penting untuk dibahas karena tengah banyak digunakan pada masa ini di antaranya adalah sebagai berikut.
- Scrum
Scrum merupakan metode SDLC yang paling menonjol pada dekade ini. Scrum adalah kerangka kerja agile yang menawarkan pendekatan iteratif dan inkremental dalam pengembangan perangkat lunak. Keunikan dan efektivitas Scrum dalam memenuhi kebutuhan pasar yang cepat berubah menjadikannya pilihan populer di kalangan organisasi modern (Permana, 2023, hlm. 188). Kerangka kerja ini dilatarbelakangi oleh kebutuhan teknologi yang terus berkembang menuntut pendekatan yang fleksibel, adaptif, dan efisien dalam mengelola proyek perangkat lunak. - Lean
Pendekatan lean pada dasarnya berfokus pada pandangan manajemen yang mengedepankan eliminasi proses yang tidak perlu serta mendorong kerjasama yang efektif antara semua pihak yang terlibat dalam setiap tahapan pengembangan, mulai dari perencanaan hingga pengiriman produk akhir kepada pengguna (Janes, 2015, dalam Permana, 2023, hlm. 249). - Dynamic System Development Method (DSDM)
Merupakan teknik pengembangan yang menekankan pada proses berulang dan peningkatan berkelanjutan, selaras dengan ide dasar metodologi Agile. DSDM muncul sebagai tanggapan terhadap keterbatasan yang diamati dalam metodologi sekuensial seperti air terjun dan RAD. Tujuannya adalah untuk mengintegrasikan kekuatan RAD sekaligus menggabungkan pemahaman yang komprehensif tentang pemangku kepentingan dan keterlibatan aktif mereka dalam proses Pembangunan. - Extreme Programming (XP)
Extreme programming adalah salah satu dari beberapa Proses Agile yang populer. Model ini telah terbukti sangat sukses di banyak perusahaan dengan berbagai ukuran dan industri di seluruh dunia. Model XP banyak berhasil diterapkan karena lebih menekankan pada kepuasan pelanggan/pengguna. Keunikan pada model XP juga dapat dilihat pada siklus pengembangannya yang fleksibel. Model XP memungkinkan penggunanya untuk memenuhi kebutuhan pada proses bisnis secara dinamis mengikuti perkembangan tanpa harus menunggu di waktu tertentu. Dalam Extreme Programming, pengembang perangkat lunak diberdayakan untuk menghadapi perubahan permintaan pelanggan secara lebih optimal, bahkan pada akhir siklus pengembangan (Permana, dkk, 2023, hlm. 216). - Agile
Jika diperhatikan, banyak sekali metode-metode SDLC yang menggunakan prinsip Agile sebagai paradigma utama dalam menciptakan kerangka kerjanya. Oleh karena itu, tak heran apabila Agile itu sendiri dapat menjadi suatu prinsip dasar yang dapat digunakan untuk membuat model atau metode unik tersendiri untuk membuat proses SDLC. Apalagi, dengan kenyataan bahwa banyak implementasi Agile seperti Scrum, dianggap kurang implementatif dan terlalu kaku apalagi jika digunakan untuk proyek-proyek yang cenderung tidak terlalu kompleks. Beberapa varian model agile yang banyak digunakan meliputi Scrum yang dikebiri (berbagai kompleksitas yang tidak diperlukannya dibuang, disisakan workflow yang vital).
Referensi
- Bahar, Wibawa, B., Situmorang, R. (2020). Rekayasa perangkat lunak pendekatan terstruktur & berorientasi objek. Jakarta: Universitas Negri Jakarta.
- Hasanah, F.N., Untari, R.S. (2020). Rekayasa perangkat lunak. Sidoarjo: Umsida Press.
- Niqotaini, Z., dkk. (2023). Rekayasa perangkat lunak. Yogyakarta: Penamuda Media.
- Permana, dkk. (2023). Memahami software development life cycle. Purbalingga: Eureka Media Aksara.