Anda di halaman 1dari 12

METODE SOFTWARE

DEVELOPMENT LIFE CYCLE (SDLC)


Disusun untuk memenuhi tugas mata kuliah Rekayasa Perangkat Lunak

Dosen Pengampu :
Candrasena Setiadi, ST., M.MT

Disusun oleh :
1. Broto Agung W. 224172xxxx
2. Farid Fitriansah A. 2241720055
3. Maulidin Zakaria 2241720160
4. Putri Ayu A. 2241720132
5. Rio Bagas 224172xxxx

POLITEKNIK NEGERI MALANG


MALANG
2023
DAFTAR ISI
DAFTAR ISI........................................................................................................................................ii
A. PENGERTIAN............................................................................................................................3
B. METODE-METODE SDLC.......................................................................................................3
1. Waterfall....................................................................................................................................3
2. Agile..........................................................................................................................................4
3. Prototype...................................................................................................................................6
4. Dev Ops.....................................................................................................................................7
5. Spiral.......................................................................................................................................10
DAFTAR PUSTAKA........................................................................................................................12
A. PENGERTIAN
Metode SDLC (Software Development Life Cycle) adalah proses pembuatan dan
pengubahan sistem serta model dan metodologi yang digunakan untuk
mengembangkan sistem rekayasa perangkat lunak. Metode SDLC hadir untuk
membantu kita dalam pengembangan produk. Metode ini memiliki banyak jenis,
tetapi di sini kita fokus membahas 5 metode saja. Berikut adalah 5 metode SDLC
dalam pengembangan software. (Setiawan, Metode SDLC Dalam Pengembangan
Software, 2021)

B. METODE-METODE SDLC
1. Waterfall

Waterfall merupakan metodologi SDLC pertama dan tertua yang masih


digunakan oleh developer hingga sekarang. Model Waterfall adalah pendekatan
linier berurutan untuk pengembangan perangkat lunak yang bergerak melalui
tahap-tahap secara linier. Setiap tahap diselesaikan sebelum tahap berikutnya
dimulai, dan sulit untuk kembali ke tahap sebelumnya. Umumnya, metode ini
terdiri dari beberapa fase produksi (product life cycle), seperti:
 Analisis kebutuhan
 Perencanaan
 Desain arsitektur
 Pengembangan software
 Pengujian (testing)
 Deployment atau peluncuran produk (product launch)
 Maintenance atau pemeliharaan

Berikut adalah kelebihan dan kekurangan dari metode Waterfall


Keuntungan:
 Persyaratan yang jelas dan terdefinisi dengan baik: Dalam model Waterfall,
persyaratan ditentukan pada awal proyek, yang membantu menciptakan
pemahaman yang jelas tentang apa yang diharapkan dari tim pengembangan
perangkat lunak.
 Mudah dikelola: Model Waterfall mudah dipahami dan dikelola karena
prosesnya berurutan dan setiap tahap memiliki hasil dan tujuan yang jelas.
 Dokumentasi: Model Waterfall menekankan pada dokumentasi, yang
membantu dalam menyimpan catatan kemajuan dan hasil proyek.
 Risiko rendah: Model Waterfall memiliki risiko rendah karena setiap tahap
diselesaikan sebelum tahap berikutnya dimulai, sehingga mengurangi risiko
masalah yang teridentifikasi di kemudian hari dalam proses pengembangan.
Kekurangan:
 Ketidak Fleksibelan: Model Waterfall tidak fleksibel dan tidak
memungkinkan untuk melakukan perubahan setelah satu tahap selesai.
Setiap perubahan pada persyaratan atau desain akan membutuhkan memulai
proses dari awal.
 Kurangnya keterlibatan pelanggan: Dalam model Waterfall, pelanggan
hanya dilibatkan pada awal proyek, yang dapat menyebabkan kurangnya
pemahaman tentang kebutuhan dan persyaratan pelanggan.
 Siklus pengembangan yang panjang: Model Waterfall dapat memiliki siklus
pengembangan yang panjang, karena setiap tahap harus diselesaikan
sebelum tahap berikutnya dimulai, yang dapat menyebabkan penundaan
dalam proses pengembangan.
 Pengujian terbatas: Pengujian dilakukan di akhir proses pengembangan,
yang dapat mengakibatkan masalah diidentifikasi pada akhir proses
pengembangan, yang menyebabkan penundaan pengiriman perangkat
lunak.

Metode ini cocok untuk proyek dengan persyaratan yang terdefinisi dengan baik
dan keterlibatan pelanggan yang terbatas. Namun, mungkin tidak cocok untuk
proyek-proyek kompleks dengan persyaratan yang berubah-ubah dan kebutuhan
akan umpan balik pelanggan yang sering.

2. Agile

Agile software development adalah metode pengembangan perangkat lunak yang


didasarkan pada pengerjaannya yang berulang, dimana aturan dan solusi yang
sudah disepakati oleh setiap anggota tim dilakukan dengan kolaborasi secara
terstruktur dan terorganisir.

Ia sendiri merupakan metode pengembangan perangkat lunak dengan jangka


waktu yang pendek. Selain itu ia juga membutuhkan adaptasi yang cepat dari
pengembang terhadap perubahan yang mungkin terjadi dalam bentuk apapun.

Agile software development sendiri memiliki 4 nilai inti. Berikut ini adalah
keempat nilainya:
1. Interaksi antar individu lebih penting dibandingkan proses dan alat.
2. Proses pengembangan software lebih penting dibandingkan dengan
dokumentasi.
3. Kolaborasi dengan klien lebih penting dibandingkan dengan kontrak.
4. Menanggapi perubahan lebih penting daripada mengikuti rencana.

Dalam penggunaannya, metode agile ini dapat dirasakan oleh setiap orang yang
terlibat dalam setiap prosesnya seperti developer, client, dan juga vendor.

Manfaat yang didapatkan dari sisi developer adalah peningkatan produktivitas.


Karena setiap tim dapat mengerjakan setiap tugas tanpa harus menunggu tim lain
untuk menyelesaikan tugasnya. Selain itu, developer menjadi memiliki banyak
waktu untuk berkembang sesuai dengan keinginan mereka.

Dari pihak vendor, penggunaan agile ini dapat menghemat pengeluaran serta
dapat berfokus pada upaya pengembangan fitur dan peningkatan efisiensi, dengan
begitu pengguna tahu jika vendor memberikan respon terhadap permintaan
pengembangan.

7 tujuan dari agile, berikut ini adalah tujuannya:


1. High-value & working app system
2. Iterative, incremental, evolutionary
3. Cost control & value – driven development
4. High-quality production
5. Flexible & risk management
6. Collaboration
7. Self-organizing and self-managing teams

Kelebihan
1. Pengembangan perangkat lunak membutuhkan waktu yang relatif cepat dan
tidak membutuhkan sumber daya yang terlalu besar.
2. Dapat merespon perubahan dengan cepat dan sesuai dengan kebutuhan dari
klien.
3. Klien dapat ikut berpartisipasi dalam pengembangan perangkat lunak
dengan cara memberikan feedback kepada tim pengembang selama proses
pembuatan perangkat lunak.

Kekurangan
1. Metode agile ini tidak sesuai dengan tim yang memiliki komitmen untuk
menyelesaikan proyek secara bersama.
2. Kurang sesuai dengan tim besar yang memiliki anggota lebih dari 20 orang.
3. Setiap anggota tim harus siap dengan perubahan yang dapat terjadi
sewaktu-waktu.

Agile software development didasarkan pada 12 prinsip. Berikut adalah kedua


belas prinsip tersebut:
1. Lebih menekankan kepuasan pengguna dengan cara merilis produk secara
cepat dan bertahap.
2. Selalu terbuka menerima perubahan, meskipun berdampak pada
keterlambatan dalam mengembangkan produk.
3. Dapat menghasilkan perangkat lunak yang dapat bekerja dengan baik dalam
jangka waktu yang relatif pendek.
4. Dapat menjalin kerja sama yang baik antara pengembang produk dan klien.
5. Membuat suasana yang berisi anggota dengan motivasi yang tinggi. Dengan
adanya lingkungan yang mendukung, maka setiap anggotanya akan
menyelesaikan pekerjaan dengan baik.
6. Sebisa mungkin melakukan komunikasi secara langsung, karena metode
tersebut dinilai lebih efektif untuk menyampaikan informasi.
7. Kemajuan sebuah proyek IT dinilai dari perangkat lunak yang dapat bekerja
dengan baik.
8. Pengembangan perangkat lunak yang berkelanjutan dengan dukungan dari
berbagai pihak, seperti pengguna, klien, dan developer.
9. Memiliki keunggulan dari segi teknis adalah hal utama dalam
pengembangan perangkat lunak menggunakan metode agile
10. Kesederhanaan adalah poin utama dalam agile development untuk
memaksimalkan sumber daya yang ada.
11. Setiap anggota tim harus mampu untuk mengorganisir diri sendiri.
12. Melakukan refleksi secara berkala mengenai cara bekerja yang lebih efektif
dan menyesuaikannya.
(Setiawan, Konsep Agile pada Software Development, 2021)

3. 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. (Memahami System Development
Life Cycle, 2020)

Metode prototype adalah metode yang memungkinkan pengguna atau user


memiliki gambaran awal tentang perangkat lunak yang akan dikembangkan, serta
pengguna dapat melakukan pengujian di awal sebelum perangkat lunak dirilis.
Metode ini bertujuan untuk mengembangkan model menjadi perangkat lunak
yang final. Artinya sistem akan dikembangkan lebih cepat dan biaya yang
dikeluarkan lebih rendah. (Setiawan, Metode SDLC Dalam Pengembangan
Software, 2021)

Tahap-tahap pengembangan perangkat lunak dalam metode Prototype : 


1. Analisa kebutuhan
Pada tahap ini pengembang melakukan identifikasi perangkat lunak dan
semua kebutuhan sistem yang akan dibuat.
2. Membuat prototype
Membuat rancangan sementara yang berfokus pada alur program kepada
pengguna.
3. Evaluasi prototype
Evaluasi dilakukan untuk mengetahui apakah model prototype sudah sesuai
dengan harapan.
4. Mengkodekan sistem
Jika prototype disetujui maka akan diterjemahkan ke dalam bahasa
pemrograman yang sesuai.
5. Pengujian sistem
Setelah perangkat lunak sudah siap, perangkat lunak harus melewati
pengujian. Pengujian ini biasanya dilakukan dengan White Box Testing,
Black Box Testing, dan lain-lain.
6. Evaluasi sistem
Pengguna melakukan evaluasi apakah perangkat lunak sudah sesuai dengan
apa yang diharapkan atau tidak. Jika ya, lakukan tahap selanjutnya. Jika
tidak, ulangi tahap mengkodekan sistem dan pengujian sistem.
7. Penggunaan sistem dan pemeliharaan
Perangkat lunak yang telah diuji dan disetujui siap untuk digunakan.
kemudian akan dilakukan pemeliharaan pada sistem yang telah dibuat
tersebut.

Kelebihan metode 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 metode Prototype :


 Proses analisis dan perancangan terlalu singkat.
 Biasanya kurang fleksibel dalam menghadapi 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.

4. Dev Ops

DevOps merupakan singkatan dari dua kata yaitu Development dan Operation
(operasional pengembang). Di mana kedua kata tersebut bermakna
menggabungkan proses development/pengembangan dari sebuah sistem/aplikasi
dengan operation/operasional. DevOps adalah sebuah prinsip developer untuk
mengkoordinasikan antar tim yaitu tim development dengan tim operations
dengan efektif dan efisien.
Pola pikir yang dibentuk oleh DevOps adalah koordinasi antar tim yang dapat
dilakukan dengan cara singkat sehingga tidak membutuhkan banyak pertanyaan.
Tim operation atau development cukup mengkonfigurasi beberapa komponen
yang dibutuhkan melalui prosedur yang dibuat. (Intern, 2020)

Tujuan DevOps
DevOps bertujuan untuk meningkatkan kolaborasi antara tim development dan
tim operation dari mulai perencanaan hingga aplikasi/fitur ter-deliver ke
pengguna. Semua itu harus dilakukan secara otomatis agar:
1. Meningkatkan deployment frequency.
2. Meningkatkan waktu pemasaran.
3. Menurunkan tingkat kegagalan pada rilisan terbaru.
4. Mempersingkat waktu perbaikan.
5. Meningkatkan waktu pemulihan.
Menurut laporan State of DevOps pada tahun 2015, organisasi IT yang
menerapkan DevOps menghasilkan kinerja 30x lebih tinggi dengan 200x efisiensi
waktu, kegagalan 60x lebih sedikit, dan proses pemulihan 168x lebih cepat.
(Intern, 2020)

Tools yang Digunakan DevOps


Melalui berbagai referensi, ternyata ada banyak alat bantu untuk menerapkan
DevOps yang harus kita tahu.
1. Source Code Management
Melalui sumber repository, antar developer dapat memeriksa dan mengubah
kode tanpa perlu saling mengisi satu sama lainnya. Source control ini
mungkin telah ada sejak 40 tahun yang lalu, tetapi ini merupakan
komponen utama dari Continuous Integration atau CI. Adapun contoh
produk yang berfungsi sebagai SCM yaitu Git, Subversion, Cloudforce,
Bitbucket, dan TFS.
2. Build Server
Build server adalah alat otomatisasi yang mengkompilasi kode dalam SCR
(Source Code Repository) ke dalam basis kode yang dapat dieksekusi. Alat
ini bisa kamu temukan seperti Jenkins, SonarQube, dan Artifactory.
3. Configuration Management
Manajemen konfigurasi berguna untuk menetapkan konfigurasi pada server
atau lingkungannya. Alat yang populer biasa kamu temukan seperti Puppet
dan Chef.
4. Virtual Infrastructure
Amazon Web Services dan Microsoft Azure adalah contoh infrastruktur
virtual. Virtual Infrastructure ini disediakan oleh vendor cloud yang
menjual insrastruktur atau Platform as a Service (PaaS). Infrastruktur ini
memiliki API yang memungkinkan kamu membuat mesin baru yang
terprogram dengan alat manajemen konfigurasi. Ada juga private cloud di
mana private infrastructure virtual memungkinkan kamu menjalankan cloud
di hardware sebagai data terpusat. Alat ini dikombinasikan dengan alat
otomatisasi untuk memberdayakan organisasi yang melatih DevOps dengan
kemampuan konfigurasi server tanpa jari di atas keyboard. Jika ingin
menguji kode baru, cukup mengirimkan kode ke infrastruktur cloud untuk
membangun lingkungan. Kemudian tes dijalankan tanpa adanya campur
tangan manusia.
5. Test Automation
Test automation sebenarnya sudah ada sejak lama. Pengujian yang diadopsi
oleh DevOps berfokus pada pengujian otomatis melalui pipeline build
untuk memastikan bahwa build deployable sudah dilakukan. Tools populer
untuk tahapan ini adalah Selenium dan Air. (Intern, 2020)
DevOps Lifecycle
DevOps lifecycle memperlihatkan bagaimana sebuah pipeline dari suatu
pengembangan sebuah aplikasi, atau dengan kata lain tahapan-tahapan yang
terjadi ketika mengembangkan sebuah aplikasi, dimulai dari Plan,Code, Build,
Test, Release, Deploy, Operate, Monitor.
 Plan
Tahap Plan akan mencakup semua perencanaan dan perancangan dari
sebuah aplikasi yang akan dikembangkan. Biasanya pada tahap ini seorang
Project Manager yang akan memimpin. Semua aturan, persyaratan, dan
feedback dari stakeholders atau project owner dan bahkan user akan
dikumpulkan, dan akan digunakan untuk membuat roadmap project. Tools
yang umumnya digunakan untuk melakukan tracking diantaranya ada
Asana, Jira, ClickUp, dan lain sebagainya.
 Code
Pada tahap ini developer akan mulai menuliskan code dari aplikasi yang
dibangun. Untuk tools yang digunakan pun ada banyak salah satunya yang
populer adalah VSCode. Setelah developer menuliskan code, kemudian
mereka melakukan push atau proses menyimpan code ke sebuah repository
terpusat, salah satunya adalah Github.
 Build
Selanjutnya setelah code di-push ke repository akan dilakukan build. Build
disini bermaksud mengubah code dari developer menjadi sebuah aplikasi.
Biasanya sebelum melakukan build, developer lain akan melakukan diskusi
untuk mendapatkan feedback dan review terhadap code. Setelah selesai
melakukan diskusi selanjutnya adala melakukan build aplikasi. Build
aplikasi bisa menggunakan berbagai macam tools tergantung dari aplikasi
yang dibuat, jika dibuat menjadi image maka Docker dapat digunakan. Atau
juga dibuat menjadi compressed file (zip, jar, dan lain-lain).
 Test
Tahapan berikutnya adalah melakukan Test pada aplikasi yang di-build.
Apakah aplikasi yang dibuat memenuhi kriteria atau tidak, secara
fungsional berjalan dengan semestinya atau tidak, secara desain, dan
sebagainya. Apabila ternyata tidak sesuai maka akan berhenti ditahap ini
dan melakukan perbaikan. Namun apabila sudah sesuai maka selanjutnya
adalah Release.
 Release
Pada tahap Release aplikasi yang sudah lolos dari tahap Test akan diberikan
label atau nomor versi. Kapan aplikasi tersebut dirilis, apa saja perubahan
yang dilakukan, dan pada tanggal berapa dilakukan release, sebelum
akhirnya aplikasi tersebut akan di-deploy.
 Deploy
Deploy adalah proses dimana aplikasi yang dibuat ditempatkan atau
disebarkan, dan akhirnya bisa diakses oleh user. Salah satu tools yang
digunakan adalah AWS CodeDeploy, Jenkins, dan sebagainya.
 Operate
Pada tahap Operate, tim Operation akan memastikan aplikasi dan
infrastruktur berjalan sebagaimana mestinya. Dan juga mengambil data
performance, errors, dan sebagainya. Apabila ternyata ada berupa kesalahan
atau bug, user pun dapat memberikan feedback yang nantinya akan menjadi
sebuah patokan untuk melakukan pengembangan dari aplikasi.
 Monitor
Monitor adalah tahap terakhir dari DevOps Lifecycle. Dari tahap
sebelumnya sudah dikumpulkan berupa data performance, error, atau
bahkan feedback. Dari data-data tersebut bisa dilakukan introspeksi atau
evaluasi dari aplikasi yang dikembangkan. Bahkan juga dapat dilakukan
monitor untuk pipeline yang dibuat, apakah kedepannya akan terjadi
bottlenecks yang dapat menghambat produktivitas pengembangan aplikasi.
(Maulana, 2022)

Kelebihan Metode DevOps: 


 Mengurangi biaya dan waktu yang harus dihabiskan untuk proses
pengembangan yang tidak direncanakan serta perbaikan bug.
 Meningkatkan tingkat loyalitas karyawan (employee retention).
 Tingkat pemulihan kegagalan yang lebih cepat.
 Kredibilitas yang lebih tinggi

Kekurangan Metode DevOps:


 Memicu masalah keamanan yang berisiko tinggi, seperti spoofing dan
serangan man in the middle. Sebab, pendekatan pengembangan perangkat
lunak ini lebih menyukai percepatan proses pengembangan perangkat lunak
daripada pengembangan keamanan.
(Lazuardi, 2022)

5. Spiral

Spiral Model adalah model proses pengembangan perangkat lunak berbasis


risiko. Ini adalah kombinasi dari model air terjun dan model iteratif. Model Spiral
membantu mengadopsi elemen pengembangan perangkat lunak dari berbagai
model proses untuk proyek perangkat lunak berdasarkan pola risiko unik yang
memastikan proses pengembangan yang efisien. (Spiral Model (SDLC) :
Kelebihan & Kekurangannya, 2022)

Contoh penggunaan spiral model


 Incremental
 Waterfall
 Prototyping

Kelebihan spiral model


 Penyelesaian proyek perangkat lunak, mulai dari pembuatan hingga
perubahan lebih sistematis
 Estimasi biaya lebih mudah
 Menyediakan manajemen dan analisa risiko cepat
 Perubahan kebutuhan dan dokumentasi lebih mudah
 Proses produksi lebih cepat
Kekurangan spiral model
 Tidak cocok untuk proyek skala kecil
 Waktu relatif lama
 Membutuhkan best practice
 Pada tahap planning risiko cukup besar
(Sutiono S.Kom., 2022)
DAFTAR PUSTAKA
Intern, D. (2020, November 18). Apa itu DevOps? Berikut Penjelasan Lengkapnya. Retrieved from
dicoding: https://www.dicoding.com/blog/apa-itu-devops/

Lazuardi, D. (2022, Juny 21). 5 Metode SDLC (Software Development Life Cycle) Terbaik Sepanjang
Masa. Retrieved from https://inmarketing.id: https://inmarketing.id/metode-sdlc-
adalah.html

Maulana, G. (2022, July 18). Pengenalan DevOps - Pengertian, Tahapan Kerja dan Manfaat. Retrieved
from horangi.com: https://id.horangi.com/blog/pengenalan-devops-pengertian-tahapan-
kerja-dan-manfaat/

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

Setiawan, R. (2021, October 2). Konsep Agile pada Software Development. Retrieved from dicoding:
https://www.dicoding.com/blog/konsep-agile-pada-software-development/

Setiawan, R. (2021, July 28). Metode SDLC Dalam Pengembangan Software. Retrieved from dicoding:
https://www.dicoding.com/blog/metode-sdlc/

Spiral Model (SDLC) : Kelebihan & Kekurangannya. (2022, April 4). Retrieved from qnp.co.id:
https://qnp.co.id/blog/spiral-model-sdlc-kelebihan-kekurangannya/

Sutiono S.Kom., M. M. (2022, Juny 10). Spiral Model: Tahapan, Kelebihan dan Kekurangan. Retrieved
from dosenit.com: https://dosenit.com/ilmu-komputer/spiral-model/amp

Anda mungkin juga menyukai