    {"id":2302,"date":"2023-02-09T09:35:11","date_gmt":"2023-02-09T09:35:11","guid":{"rendered":"http:\/\/student-activity.binus.ac.id\/csc\/?p=2302"},"modified":"2023-02-09T09:35:25","modified_gmt":"2023-02-09T09:35:25","slug":"software-development-life-cycle","status":"publish","type":"post","link":"https:\/\/student-activity.binus.ac.id\/csc\/2023\/02\/software-development-life-cycle\/","title":{"rendered":"Software Development Life Cycle"},"content":{"rendered":"<p><b>Software Development Life Cycle<\/b><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">SDLC <\/span><i><span style=\"font-weight: 400\">(Software Development Life Cycle<\/span><\/i><span style=\"font-weight: 400\">) adalah terminologi yang tidak asing terdengar di lingkungan pengembangan software. Dengan pengembangan ini pula, banyak perusahaan mengembangkan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\"> sebagai produk (<\/span><i><span style=\"font-weight: 400\">Software-as-a-service<\/span><\/i><span style=\"font-weight: 400\">) untuk dipasarkan kepada masyarakat. Umumnya, dalam pengembangan software ini membutuhkan tahapan yang runut. Pada artikel kali ini, kita akan coba untuk membahas hal yang perlu kamu ketahui dalam pengembangan software.<\/span><span style=\"font-weight: 400\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2303\" src=\"http:\/\/student-activity.binus.ac.id\/csc\/wp-content\/uploads\/sites\/37\/2023\/02\/Gambar-SDLC-1.png\" alt=\"\" width=\"469\" height=\"359\" \/><\/span><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><b>Apa itu SDLC?<\/b><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">SDLC adalah kependekan dari <\/span><i><span style=\"font-weight: 400\">Software Development Life Cycle <\/span><\/i><span style=\"font-weight: 400\">atau dalam bahasa Indonesia bisa disebut dengan siklus hidup pengembangan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">. SDLC dapat didefinisikan sebagai sekumpulan aktivitas yang diperlukan untuk membangun, melakukan eksekusi hingga pemeliharaan informasi dalam suatu sistem. Dalam pengertian lain, SDLC adalah tahapan kerja yang bertujuan untuk menghasilkan sistem <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">berkualitas tinggi yang sesuai dengan keinginan pelanggan atau tujuan dibuatnya software tersebut.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Secara umum, SDLC memiliki cara kerja dengan mengurangi biaya pengembangan perangkat lunak sekaligus meningkatkan kualitas dan mengurangi waktu produksi. SDLC dapat membantu tim mencapai tujuan mereka dengan menilai kekurangan sistem. SDLC juga menentukan persyaratan sistem baru selama pengembangan perangkat lunak. Selain itu, SDLC akan mendukung pengembangan perangkat lunak mulai dari tahap analisis, perencanaan, desain, pengembangan, pengujian hingga penerapan.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cara kerja utama SDLC adalah menghilangkan pengerjaan ulang yang berlebihan dan perbaikan selanjutnya. Ini bisa dalam bentuk ekspektasi yang salah, yang bisa merugikan, seperti gagal mendapatkan umpan balik dari pengguna akhir atau pelanggan. Secara umum, SDLC merupakan pendekatan iteratif yang harus dipastikan melalui kualitas kode di setiap siklus. Dengan SDLC ini, perusahaan akan fokus pada pengujian untuk menghemat uang saat pengerjaan ulang terjadi.<\/span><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><b>Kenapa SDLC itu penting?<\/b><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Setelah membaca definisi, dapat disimpulkan bahwa SDLC memiliki sebuah fungsi dan manfaat penting yaitu untuk menyediakan alat bantu bagi project manager IT dalam memastikan keberhasilan implementasi <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang memenuhi tujuan strategis dan bisnis.<\/span><span style=\"font-weight: 400\"> Para pengembang perangkat lunak akan lebih mudah memahami apa yang harus mereka bangun dan mengapa. Semua pihak dalam sebuah tim juga memiliki potensi untuk memahami besaran biaya dan sumber daya yang dibutuhkan dalam suatu proyek pengembangan melalui SDLC. Apabila dapat dijabarkan, maka kurang lebih penjelasan detail sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Memetakan perencanaan, penjadwalan, dan estimasi proyek secara rinci<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menyediakan <\/span><i><span style=\"font-weight: 400\">framework<\/span><\/i><span style=\"font-weight: 400\"> untuk serangkaian aktivitas dan deliverables<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Dapat digunakan sebagai mekanisme untuk men-<\/span><i><span style=\"font-weight: 400\">tracking<\/span><\/i><span style=\"font-weight: 400\"> dan mengontrol proyek<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Meningkatkan visibilitas perencanaan proyek kepada semua <\/span><i><span style=\"font-weight: 400\">stakeholders <\/span><\/i><span style=\"font-weight: 400\">yang terlibat dalam proses <\/span><i><span style=\"font-weight: 400\">developing<\/span><\/i><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Meningkatkan kecepatan proses <\/span><i><span style=\"font-weight: 400\">developing<\/span><\/i><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Membantu untuk mengurangi risiko proyek dan <\/span><i><span style=\"font-weight: 400\">overhead <\/span><\/i><span style=\"font-weight: 400\">rencana manajemen proyek<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Jadi, dapat diartikan dari poin di atas adalah SDLC berfungsi untuk memberikan gambaran baik masukan maupun luaran bagi tim pengembang untuk menjalankan proses pengembangan dari satu tahap ke tahap lainnya tanpa risiko pengulangan.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><b>Tahapan atau Fase dalam SDLC<\/b><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Seperti yang sudah diilustrasikan di gambar pada pembukaan artikel ini, SDLC memiliki 6 tahapan atau fase sebagai berikut:<\/span><\/p>\n<p><span style=\"font-weight: 400\">1. Perencanaan dan Analisis Kebutuhan (<\/span><i><span style=\"font-weight: 400\">Planning and Requirement<\/span><\/i><span style=\"font-weight: 400\">)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Pada tahap pertama ini, project manager akan melakukan beberapa evaluasi persyaratan yang dibutuhkan dalam sebuah project. Penting untuk diingat agar fase perencanaan harus dapat menjelaskan ruang lingkup dan tujuan pembuatan aplikasi <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">tersebut. Hal ini bertujuan supaya tim dapat menghasilkan software secara efektif tanpa bergeser dari tujuan awal.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Pada tahap ini, dilakukan juga aktivitas pengumpulan dan analisis kebutuhan user yang dilakukan oleh tim developer. <\/span><i><span style=\"font-weight: 400\">Requirement <\/span><\/i><span style=\"font-weight: 400\">yang telah dibuat akan disusun dalam dokumentasi SRS (<\/span><i><span style=\"font-weight: 400\">Software Requirement Specification<\/span><\/i><span style=\"font-weight: 400\">) atau BRD (<\/span><i><span style=\"font-weight: 400\">Business Requirement Document<\/span><\/i><span style=\"font-weight: 400\">).<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">2. Perancangan Sistem (<\/span><i><span style=\"font-weight: 400\">Design and Prototyping<\/span><\/i><span style=\"font-weight: 400\">)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Pada tahap ini, designer akan mempersiapkan sejumlah dokumen desain sistem dan software sesuai dengan dokumen spesifikasi kebutuhan di tahap sebelumnya. Tahapan ini akan menghasilkan prototype dan bebe<\/span><span style=\"font-weight: 400\">rapa output lain meliputi dokumen berisi desain, pola, dan komponen yang diperlukan untuk mewujudkan proyek tersebut sehingga dapat membantu untuk menentukan arsitektur sistem secara keseluruhan. Adapun desain yang dibuat oleh tim UI\/UX Designer adalah sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Membuat <\/span><i><span style=\"font-weight: 400\">architecture design.<\/span><\/i><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Membuat <\/span><i><span style=\"font-weight: 400\">user interface.<\/span><\/i><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Mendesain alur data (Diagram Alur Data).<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Membuat diagram proses.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Melakukan <\/span><i><span style=\"font-weight: 400\">usability testing<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Tidak hanya bagi designer, tahap ini juga digunakan oleh tim Produk untuk:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menentukan prioritas kerja.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menyusun product <\/span><i><span style=\"font-weight: 400\">roadmap.<\/span><\/i><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Meminta persetujuan dari <\/span><i><span style=\"font-weight: 400\">stakeholder.<\/span><\/i><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Namun, terdapat juga beberapa aspek lain yang perlu diperhatikan dalam tahap ini, antara lain:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Communication<\/span><\/i><span style=\"font-weight: 400\">, menentukan cara sebuah aplikasi akan berkomunikasi dan saling terintegrasi dengan aset lainnya, contohnya server pusat atau aplikasi lainnya.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Programming<\/span><\/i><span style=\"font-weight: 400\">, menentukan kerangka kerja atau <\/span><i><span style=\"font-weight: 400\">framework <\/span><\/i><span style=\"font-weight: 400\">dalam pemecahan masalah yang berkemungkinan akan terjadi saat proses implementasi <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Architecture<\/span><\/i><span style=\"font-weight: 400\">, menentukan bahasa pemrograman yang akan dipakai.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">User Interface<\/span><\/i><span style=\"font-weight: 400\">, mendefinisikan bagaimana cara pengguna berinteraksi dengan <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">dan bagaimana respon <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">tersebut dapat menerima input yang ada.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Platforms<\/span><\/i><span style=\"font-weight: 400\">, mendefinisikan operasi sistem yang akan digunakan e.g. Android, iOS, Windows, macOs, etc.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Security<\/span><\/i><span style=\"font-weight: 400\">, mendefinisikan langkah-langkah untuk keamanan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">. Misalnya, perlindungan kata sandi, enkripsi <\/span><i><span style=\"font-weight: 400\">SSL traffic<\/span><\/i><span style=\"font-weight: 400\"> atau membuat penyimpanan kredensial pengguna yang aman.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">3. Pengembangan perangkat lunak (<\/span><i><span style=\"font-weight: 400\">Software<\/span><\/i> <i><span style=\"font-weight: 400\">Development<\/span><\/i><span style=\"font-weight: 400\">)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Tahap ini merupakan tahap penulisan program. Biasanya, jika proyeknya kecil, program dapat ditulis oleh satu developer. Namun, jika proyek besar dapat dipecah dan diselesaikan oleh banyak tim. Pada tahap ini, <\/span><i><span style=\"font-weight: 400\">Access Control<\/span><\/i><span style=\"font-weight: 400\"> atau <\/span><i><span style=\"font-weight: 400\">Source Code Management<\/span><\/i><span style=\"font-weight: 400\"> juga dapat digunakan untuk membantu developer melacak perubahan kode dan memastikan kompatibilitas antara proyek tim yang berbeda untuk mencapai tujuan mereka.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Proses pengkodean tidak terbatas pada kompilasi kode agar aplikasi dapat berjalan, tetapi juga mencakup banyak tugas lainnya, seperti menemukan dan memperbaiki <\/span><i><span style=\"font-weight: 400\">error <\/span><\/i><span style=\"font-weight: 400\">atau <\/span><i><span style=\"font-weight: 400\">glitches <\/span><\/i><span style=\"font-weight: 400\">yang ditemukan, dan menulis dokumentasi, seperti panduan pengguna atau bantuan FAQ untuk pertanyaan seputar teknis. Fase ini merupakan salah satu fase dalam siklus hidup pengembangan perangkat lunak yang membutuhkan waktu lebih lama.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">4. Pengujian (Testing)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ketika pengembangan perangkat lunak selesai, tim tester harus menguji apakah produk berfungsi dengan optimal. Tahap pengujian <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">adalah untuk menilai apakah produk yang dikembangkan bekerja dengan baik sesuai dengan kebutuhan pengguna. Pengujian ini terutama melibatkan <\/span><i><span style=\"font-weight: 400\">Quality Assurance<\/span><\/i><span style=\"font-weight: 400\"> (QA), tim <\/span><i><span style=\"font-weight: 400\">developer<\/span><\/i><span style=\"font-weight: 400\">, dan bisa juga melibatkan pengguna yang akan menggunakan produk tersebut.<\/span><\/p>\n<p><span style=\"font-weight: 400\">QA harus memastikan bahwa perangkat lunak yang dikembangkan memenuhi persyaratan. Selama fase ini, QA mungkin menemukan beberapa <\/span><i><span style=\"font-weight: 400\">bug\/defects<\/span><\/i><span style=\"font-weight: 400\">, <\/span><i><span style=\"font-weight: 400\">error,<\/span><\/i> <i><span style=\"font-weight: 400\">freeze <\/span><\/i><span style=\"font-weight: 400\">dan kemudian mereka berkomunikasi dengan tim <\/span><i><span style=\"font-weight: 400\">developer<\/span><\/i><span style=\"font-weight: 400\">. Tim pengembangan kemudian memperbaiki bug dan mengirimkannya kembali ke QA untuk diuji ulang. Proses ini berlanjut hingga perangkat lunak benar-benar bebas bug, stabil, dan berfungsi sesuai kebutuhan.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Tahapan pengujian ini sangat penting sebelum aplikasi<\/span><i><span style=\"font-weight: 400\"> software<\/span><\/i><span style=\"font-weight: 400\"> digunakan pengguna. Beberapa pengujian yang biasanya dilakukan seperti <\/span><i><span style=\"font-weight: 400\">security testing<\/span><\/i><span style=\"font-weight: 400\"> yang diotomatiskan, atau pengujian untuk penerapan yang kompleks. Pengujian harus memastikan setiap fungsi dapat bekerja dengan benar dan lancar sehingga dapat mengurangi kemungkinan adanya keterlambatan dalam pemrosesan, <\/span><i><span style=\"font-weight: 400\">bug<\/span><\/i><span style=\"font-weight: 400\"> dan gangguan yang ditemui pengguna.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Melakukan aktivitas seperti <\/span><i><span style=\"font-weight: 400\">penetration testing<\/span><\/i><span style=\"font-weight: 400\"> perlu dilakukan juga, sebagai salah satu cara bagi tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">untuk mengevaluasi kelemahan-kelemahan terhadap sistem yang telah mereka buat sehingga meminimalisir terjadinya hal-hal yang tidak diinginkan, salah satunya adalah <\/span><i><span style=\"font-weight: 400\">hacking<\/span><\/i><span style=\"font-weight: 400\">. <\/span><i><span style=\"font-weight: 400\">Red team<\/span><\/i><span style=\"font-weight: 400\"> akan melakukan beberapa tahapan aktivitas <\/span><i><span style=\"font-weight: 400\">penetration testing<\/span><\/i><span style=\"font-weight: 400\"> yang dapat diurutkan sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Planning.<\/span><\/i><span style=\"font-weight: 400\"> Tahapan pertama yang dilakukan adalah perencanaan. Planning yang dimaksud adalah mendefinisikan ruang lingkup (<\/span><i><span style=\"font-weight: 400\">scope<\/span><\/i><span style=\"font-weight: 400\">) dan tujuan pengujian, termasuk sistem yang akan ditangani dan menentukan metode yang akan digunakan.\u00a0\u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Scanning<\/span><\/i><span style=\"font-weight: 400\">. Usai melakukan tahap perencanaan, pentester akan melakukan pemindaian. <\/span><i><span style=\"font-weight: 400\">Scanning <\/span><\/i><span style=\"font-weight: 400\">dilakukan untuk memahami bagaimana <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang ditargetkan bereaksi apabila terdeteksi upaya penyusupan. Ketika <\/span><i><span style=\"font-weight: 400\">scanning <\/span><\/i><span style=\"font-weight: 400\">ini, pentester akan melakukan dua cara yaitu analisis statis dan analis dinamis. Analisis statis adalah pengecekan kode aplikasi untuk memperkirakan perilaku saat suatu sistem jaringan berjalan, <\/span><i><span style=\"font-weight: 400\">tools <\/span><\/i><span style=\"font-weight: 400\">ini dapat memindai seluruh <\/span><i><span style=\"font-weight: 400\">code <\/span><\/i><span style=\"font-weight: 400\">dalam sekali jalan saja, sedangkan analisis dinamis adalah pengecekan <\/span><i><span style=\"font-weight: 400\">code <\/span><\/i><span style=\"font-weight: 400\">aplikasi yang sedang berjalan, pemindaian dengan metode ini dipercaya lebih praktis karena memberikan tampilan waktu nyata dari kinerja suatu <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Gaining access<\/span><\/i><span style=\"font-weight: 400\">. Ketika sudah mendapatkan akses, pentester mulai menggunakan <\/span><i><span style=\"font-weight: 400\">cross-site scripting<\/span><\/i><span style=\"font-weight: 400\">, <\/span><i><span style=\"font-weight: 400\">SQL injection<\/span><\/i><span style=\"font-weight: 400\">, <\/span><i><span style=\"font-weight: 400\">backdoor<\/span><\/i><span style=\"font-weight: 400\">, dan serangan lainnya untuk mengungkap kerentanan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">. Tidak hanya itu, pentester akan mencoba untuk melakukan eksploitasi kerentanan dengan berbagai cara seperti pencurian data, <\/span><i><span style=\"font-weight: 400\">privilege escalation<\/span><\/i><span style=\"font-weight: 400\">, dan lain sebagainya. Tujuan dari tahap ini adalah memahami kerusakan yang ditimbulkan dari sejumlah aktivitas eksploitasi sebelumnya.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Maintaining access<\/span><\/i><span style=\"font-weight: 400\">. Pada tahap ini, pentester menggunakan kerentanan yang ada untuk melihat apakah kerentanan yang ditimbulkan bersifat permanen dalam sistem yang sebelumnya sudah dieksploitasi.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Analysis. Tahap terakhir dari <\/span><i><span style=\"font-weight: 400\">penetration testing<\/span><\/i><span style=\"font-weight: 400\"> adalah membuat dokumentasi tentang kerentanan suatu sistem yang telah ditemukan dalam <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang sedang dikembangkan. Tidak hanya itu, pentester juga akan melakukan analisa sekaligus melaporkan risiko yang ditimbulkan dari kerentanan <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">dan saran untuk meningkatkan keamanan.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><i><span style=\"font-weight: 400\">5. Deployment<\/span><\/i><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Setelah menyelesaikan issues seperti bug dan defects sebelumnya, maka software sudah siap untuk dirilis ke pasar untuk digunakan oleh pengguna. Tahapan ini bisa menjadi sulit dan kompleks, contohnya saja beberapa perusahaan diharuskan untuk memperbarui database ke aplikasi yang baru dikembangkan sehingga memakan waktu dan tenaga lebih banyak.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">6. Pemeliharaan (<\/span><i><span style=\"font-weight: 400\">Maintenance<\/span><\/i><span style=\"font-weight: 400\">)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Setelah <\/span><i><span style=\"font-weight: 400\">deployment <\/span><\/i><span style=\"font-weight: 400\">selesai, dan para pengguna sudah mulai menggunakan produk yang telah dibuat. Tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">jelas tidak boleh lepas tangan begitu saja, ada beberapa aktivitas yang setidaknya harus dilakukan sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Melakukan upgrade berkala ke versi software yang terbaru.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menambah beberapa fitur ke dalam perangkat lunak.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Memperbaiki bug jika ada.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Membatasi akses dan menyaring permintaan data customer jika dirasa terdapat <\/span><i><span style=\"font-weight: 400\">suspicious activity<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Mencari celah keamanan pada sistem yang sudah dibuat.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><b>Pendekatan atau Metode Pengembangan SDLC<\/b><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Apabila kita mencari referensi tentang pengembangan SDLC, terdapat banyak sekali metode yang tertulis dalam pengembangan SDLC, namun hanya terdapat dua metode yang terkenal dan sering digunakan, contohnya metode pengembangan tradisional <\/span><i><span style=\"font-weight: 400\">Waterfall <\/span><\/i><span style=\"font-weight: 400\">dan metode <\/span><i><span style=\"font-weight: 400\">Agile<\/span><\/i><span style=\"font-weight: 400\">. Alasan kenapa terjadi demikian adalah banyak metode yang bisa dibilang terbaik dalam bidangnya namun belum tentu hal tersebut berlaku di <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">lain. Lalu, bagaimana cara kita untuk mengetahui metode yang tepat? Terdapat beberapa aspek penting yang perlu dipertimbangkan agar pengembangan software cocok dengan metode yang dipakai, yaitu:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Cost and Budget.<\/span><\/i><span style=\"font-weight: 400\"> Pada poin pertama ini, kita perlu membuat perencanaan yang strategis terhadap anggaran yang akan dikeluarkan. Kita juga perlu melakukan prediksi apakah saat implementasi nanti akan terdapat perubahan rencana terhadap anggaran atau tidak ada perubahan sama sekali dan masih menggunakan rencana yang sudah dibuat sebelumnya.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Team size<\/span><\/i><span style=\"font-weight: 400\">. Banyaknya anggota tim yang terlibat dalam proses pengembangan dapat menentukan pemilihan metode SDLC. Kita perlu memperkirakan jumlah anggota dari masing-masing divisi, apakah kedepannya nanti anggota tim project tersebut akan bertambah seiring berjalannya project atau tidak ada penambahan anggota sama sekali.\u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Ability to take risks. Kemampuan sebuah tim dalam menghadapi dan memprediksi (<\/span><i><span style=\"font-weight: 400\">forecast<\/span><\/i><span style=\"font-weight: 400\">) sebuah risiko sangat diperhitungkan. Tim project diharuskan untuk mengetahui kira-kira seberapa besar dampak apabila kesalahan sudah terjadi dan tim diharapkan sudah mempunyai solusi untuk itu.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Flexibility. Kita perlu mempertimbangkan dan menentukan <\/span><i><span style=\"font-weight: 400\">scope <\/span><\/i><span style=\"font-weight: 400\">(cakupan) dari sebuah <\/span><i><span style=\"font-weight: 400\">project<\/span><\/i><span style=\"font-weight: 400\"> di awal perencanaan. Apakah <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">yang akan dikerjakan mengalami banyak perubahan sehingga membuat <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">tersebut berada di luar <\/span><i><span style=\"font-weight: 400\">scope <\/span><\/i><span style=\"font-weight: 400\">atau mungkin tidak di luar <\/span><i><span style=\"font-weight: 400\">scope <\/span><\/i><span style=\"font-weight: 400\">sama sekali.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Client or Stakeholder collaboration<\/span><\/i><span style=\"font-weight: 400\">. Tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">harus sudah bisa menentukan apakah <\/span><i><span style=\"font-weight: 400\">client <\/span><\/i><span style=\"font-weight: 400\">atau <\/span><i><span style=\"font-weight: 400\">stakeholder <\/span><\/i><span style=\"font-weight: 400\">dilibatkan dalam proses pengerjaan. Tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">juga harus bisa menilai seberapa terlibat mereka di dalam proses pengembangan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">, apakah mereka akan terlibat secara aktif atau pasif.\u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Timeline. Tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">dapat memperkirakan berapa waktu yang dibutuhkan dalam pengembangan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">. Apakah dibutuhkan secepat mungkin atau tidak masalah cepat atau lambat, karena yang terpenting adalah hasil yang <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang memuaskan.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Seperti yang sudah dijelaskan di awal, terdapat banyak metode project management dan masing-masing diantaranya memiliki kelebihan dan kekurangan. Kita mungkin sudah mengenali dua metode pengembangan perangkat lunak yang terkenal, tentunya dari metode tersebut dapat bekerja sangat baik di beberapa industri dan <\/span><i><span style=\"font-weight: 400\">projects<\/span><\/i><span style=\"font-weight: 400\">. Di bawah ini terdapat informasi beserta penjelasan mengenai metode SDLC:\u00a0<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Metode <\/span><i><span style=\"font-weight: 400\">Waterfall <\/span><\/i><span style=\"font-weight: 400\">(<\/span><i><span style=\"font-weight: 400\">Traditional Project Management<\/span><\/i><span style=\"font-weight: 400\">)<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">\u00a0\u00a0\u00a0 <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2304\" src=\"http:\/\/student-activity.binus.ac.id\/csc\/wp-content\/uploads\/sites\/37\/2023\/02\/Gambar-SDLC-2.png\" alt=\"\" width=\"387\" height=\"239\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400\">Pendekatan ini dilakukan secara linear-sekuensial atau berjalan lurus seperti air terjun yang jatuh lurus, mulai dari awal sampai akhir. Dalam metode SDLC <\/span><i><span style=\"font-weight: 400\">waterfall<\/span><\/i><span style=\"font-weight: 400\">, hasil dari satu fase menjadi input untuk fase berikutnya. Metode waterfall juga bersifat <\/span><i><span style=\"font-weight: 400\">documentation-intensive<\/span><\/i><span style=\"font-weight: 400\">, karena pada fase awal kita banyak mendokumentasikan apa saja yang perlu dilakukan pada fase berikutnya.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Berdasarkan gambar Waterfall di atas, kita dapat lihat bahwa setiap fasenya sangat bergantung dari dokumentasi fase sebelumnya yang berarti bisa dapat memicu kegagalan. Terdapat banyak sekali kesalahan jika tidak berjalan sesuai dengan rencana awal dan juga tidak bisa mengulang kembali pekerjaan yang pada dasarnya sudah diselesaikan sebelumnya. Namun, tim project dapat menggunakan metode ini dengan beberapa kondisi sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Akhir dari sebuah project atau <\/span><i><span style=\"font-weight: 400\">outcome <\/span><\/i><span style=\"font-weight: 400\">telah dideklarasikan dan didefinisikan dengan jelas di awal dan tim pengembang tidak memiliki rencana untuk melakukan perubahan terhadap rencana yang sudah dibuat sebelumnya meskipun itu dibutuhkan.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Para pemangku kepentingan tahu jelas apa yang mereka inginkan dari <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang akan dibuat dan mereka juga tidak memiliki rencana untuk merubah perencanaan yang sudah dibuat sebelumnya.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Project <\/span><\/i><span style=\"font-weight: 400\">yang akan dikerjakan berjalan dengan konsisten dan dapat diprediksi hasilnya.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Project <\/span><\/i><span style=\"font-weight: 400\">yang akan dikerjakan berkemungkinan membutuhkan banyak calon anggota selama pengerjaan.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Project <\/span><\/i><span style=\"font-weight: 400\">yang akan dikerjakan membutuhkan banyak dokumentasi sebagai alat untuk tracking yang bersifat ekstensif.\u00a0\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Metode ini tidak cocok jika project yang dijalankan:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Project <\/span><\/i><span style=\"font-weight: 400\">yang akan dikerjakan memiliki peluang besar untuk berubah atau tidak sesuai pada rencana awal.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Project <\/span><\/i><span style=\"font-weight: 400\">yang membutuhkan pengujian yang konstan dan dapat beradaptasi dengan baik terhadap umpan balik (<\/span><i><span style=\"font-weight: 400\">feedback<\/span><\/i><span style=\"font-weight: 400\">) yang diberikan selama proses pengerjaan project berlangsung.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Project <\/span><\/i><span style=\"font-weight: 400\">yang akan dikerjakan belum memiliki gambaran atau <\/span><i><span style=\"font-weight: 400\">outcomes <\/span><\/i><span style=\"font-weight: 400\">yang jelas sejak awal dan requirement yang dibutuhkan masih belum jelas juga.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Setelah membaca semua informasi mengenai Waterfall di atas kita dapat simpulkan bahwa traditional project management Waterfall memiliki kelebihan dan kekurangan sebagai berikut:<\/span><\/p>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Kelebihan<\/b><\/td>\n<td><b>Kekurangan<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Dapat diidentifikasikan bahwa metode Waterfall memiliki work flow atau alur kerja yang terukur dan jelas. Setiap proses dilakukan secara bertahap dan sistematis.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Tahapan pengerjaan <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">yang terlalu sistematis juga tidak baik. Inilah yang membuat metode ini menjadi kelemahan dikarenakan kurang fleksibel terhadap perubahan yang mungkin saja diperlukan di tengah pengerjaan project.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Proses yang tidak membutuhkan banyak sumber daya sehingga lebih hemat biaya. Hal ini disebabkan pihak <\/span><i><span style=\"font-weight: 400\">client <\/span><\/i><span style=\"font-weight: 400\">tidak dapat turut serta dalam proses pengembangan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><\/td>\n<td><span style=\"font-weight: 400\">Dikarenakan proses yang dilakukan secara bertahap membuat metode Waterfall membutuhkan waktu lebih lama. Setiap proses pengerjaan dilakukan satu per satu sehingga tidak memungkinkan untuk melakukan aktivitas lain dalam satu waktu,<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Memiliki prosedur dokumentasi yang baik, sistematis, dan bertahap sehingga setiap informasi akan tercatat dan terdistribusi ke seluruh anggota tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">dengan baik.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Pada penerapan metode ini, orang lain di luar tim (<\/span><i><span style=\"font-weight: 400\">Client<\/span><\/i><span style=\"font-weight: 400\">) tidak dapat melihat keseluruhan konsep dan fungsi sebuah <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang dibuat. Mereka hanya bisa melihat setelah seluruh tahapan selesai dilakukan.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">2. Metode <\/span><i><span style=\"font-weight: 400\">Agile<\/span><\/i><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2305\" src=\"http:\/\/student-activity.binus.ac.id\/csc\/wp-content\/uploads\/sites\/37\/2023\/02\/Gambar-SDLC-3.png\" alt=\"\" width=\"575\" height=\"239\" \/><\/p>\n<p><span style=\"font-weight: 400\">Metode <\/span><i><span style=\"font-weight: 400\">Agile <\/span><\/i><span style=\"font-weight: 400\">adalah sebuah metodologi dalam pengembangan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\"> yang didasarkan pada proses pengerjaan berulang yang terdiri dari aturan dan solusi yang sudah disepakati. Metode ini juga dilakukan dengan sistem kolaborasi antar tim secara terstruktur dan terorganisir.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Metode <\/span><i><span style=\"font-weight: 400\">Agile <\/span><\/i><span style=\"font-weight: 400\">sangat cocok untuk proyek jangka pendek dikarenakan metode ini akan sangat mudah beradaptasi apabila terjadi perubahan dalam suatu proyek. Dalam <\/span><i><span style=\"font-weight: 400\">Agile Development<\/span><\/i><span style=\"font-weight: 400\">, nilai terpentingnya terdapat pada tim yang bisa memutuskan suatu hal dengan cepat dan tepat.<\/span><\/p>\n<p><i><span style=\"font-weight: 400\">Agile software development<\/span><\/i><span style=\"font-weight: 400\"> sendiri memiliki empat nilai inti (<\/span><i><span style=\"font-weight: 400\">Agile core value<\/span><\/i><span style=\"font-weight: 400\">) sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Value responding to change over following a plan<\/span><\/i><span style=\"font-weight: 400\">. <\/span><i><span style=\"font-weight: 400\">Client <\/span><\/i><span style=\"font-weight: 400\">akan terus meminta perubahan dan revisi sampai <\/span><i><span style=\"font-weight: 400\">client <\/span><\/i><span style=\"font-weight: 400\">merasa sesuai dengan produk yang dibuat. Maka dari itu, setiap tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">harus siap dengan perubahan yang terjadi.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Value individuals and interactions over processes and tools.<\/span><\/i><span style=\"font-weight: 400\"> Nilai yang kedua ini menyatakan pengembangan perangkat lunak tidak akan sukses jika tidak ada kolaborasi antara tim project dan <\/span><i><span style=\"font-weight: 400\">client<\/span><\/i><span style=\"font-weight: 400\">. Selain itu, dibutuhkan juga komunikasi yang baik agar pengembangan berjalan dengan baik dan maksimal.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Value working software over comprehensive documentation.<\/span><\/i><span style=\"font-weight: 400\"> Dokumentasi pada <\/span><i><span style=\"font-weight: 400\">Agile <\/span><\/i><span style=\"font-weight: 400\">dapat berupa sebuah cerita dari <\/span><i><span style=\"font-weight: 400\">user <\/span><\/i><span style=\"font-weight: 400\">untuk tim <\/span><i><span style=\"font-weight: 400\">project<\/span><\/i><span style=\"font-weight: 400\">. Walaupun begitu, dokumentasi ini memang penting, namun pengembangan perangkat lunak yang berjalan sesuai dengan direncanakan jauh lebih penting.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Value customer collaboration over contract negotiation<\/span><\/i><span style=\"font-weight: 400\">. Kontrak memanglah penting, tapi mungkin produk yang dibuat oleh pengembang berbeda dan sedikit tidak sesuai dengan apa yang dituliskan dalam kontrak. Dengan adanya kolaborasi dengan <\/span><i><span style=\"font-weight: 400\">client<\/span><\/i><span style=\"font-weight: 400\">, tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">dapat menyesuaikan produk yang dikembangkan sesuai dengan yang tertulis dalam kontrak dan keinginan <\/span><i><span style=\"font-weight: 400\">client<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Agile software development memiliki 7 tujuan sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">High Value &amp; Working App System<\/span><\/i><span style=\"font-weight: 400\">. <\/span><span style=\"font-weight: 400\">Tujuan yang pertama adalah <\/span><i><span style=\"font-weight: 400\">high value<\/span><\/i> <i><span style=\"font-weight: 400\">and working app system. <\/span><\/i><span style=\"font-weight: 400\">Artinya, untuk menghasilkan sebuah <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\"> yang punya nilai jual tinggi dengan menggunakan biaya pembuatan yang serendah mungkin. Namun, kualitas produk tetap menjadi prioritas utama dan tidak boleh disepelekan.<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Iterative, Incremental, Evolutionary<\/span><\/i><span style=\"font-weight: 400\">. <\/span><i><span style=\"font-weight: 400\">Agile <\/span><\/i><span style=\"font-weight: 400\">merupakan metode pengembangan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\"> yang dijalankan secara iteratif, berulang, serta bisa diubah di tengah jalan bila perlu. Dengan istilah lain, metode ini fleksibel dan bisa dipakai dalam proyek IT jangka pendek.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Cost Control &amp; Value Driven Development<\/span><\/i><span style=\"font-weight: 400\">. <\/span><span style=\"font-weight: 400\">Proses<\/span><i><span style=\"font-weight: 400\"> software development<\/span><\/i><span style=\"font-weight: 400\"> bisa disesuaikan dengan kebutuhan <\/span><i><span style=\"font-weight: 400\">user <\/span><\/i><span style=\"font-weight: 400\">atau pengguna. Di samping itu, tim pengembang juga bisa mengontrol biaya serta waktu yang dibutuhkan untuk proses <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i> <i><span style=\"font-weight: 400\">development <\/span><\/i><span style=\"font-weight: 400\">sesuai kebutuhan.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">High Quality Production<\/span><\/i><span style=\"font-weight: 400\">. <\/span><span style=\"font-weight: 400\">Meskipun menggunakan biaya seminimal mungkin, produk berupa <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\"> atau perangkat lunak akan tetap terjaga kualitasnya.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Flexible &amp; Risk Management<\/span><\/i><span style=\"font-weight: 400\">. <\/span><span style=\"font-weight: 400\">Tujuan fleksibel berkaitan dengan jadwal pertemuan dengan klien yang bisa diatur kapan saja. Dengan begitu, fungsi perangkat lunak yang sedang dikembangkan tetap terjaga. Cara ini juga dilakukan untuk mengurangi kesalahan program sebelum akhirnya dilakukan proses deploy aplikasi.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Collaboration<\/span><\/i><span style=\"font-weight: 400\">. <\/span><span style=\"font-weight: 400\">Kolaborasi sangat penting dilakukan oleh tim <\/span><i><span style=\"font-weight: 400\">developer <\/span><\/i><span style=\"font-weight: 400\">untuk membahas <\/span><i><span style=\"font-weight: 400\">feedback<\/span><\/i><span style=\"font-weight: 400\"> dari klien. Oleh karena itu diperlukan koordinasi serta komunikasi yang baik dengan seluruh anggota tim.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Self Organizing, Self-Managing Teams<\/span><\/i><span style=\"font-weight: 400\">. <\/span><span style=\"font-weight: 400\">Tujuan akhir dari metode <\/span><i><span style=\"font-weight: 400\">Agile <\/span><\/i><span style=\"font-weight: 400\">yaitu <\/span><i><span style=\"font-weight: 400\">developer <\/span><\/i><span style=\"font-weight: 400\">diberi akses untuk mengatur sendiri urusan <\/span><i><span style=\"font-weight: 400\">software development.<\/span><\/i><span style=\"font-weight: 400\"> Tugas seorang manajer yaitu menjadi penghubung antara <\/span><i><span style=\"font-weight: 400\">developer <\/span><\/i><span style=\"font-weight: 400\">dan <\/span><i><span style=\"font-weight: 400\">client<\/span><\/i><span style=\"font-weight: 400\">. Dengan begitu, kemungkinan <\/span><i><span style=\"font-weight: 400\">miscommunication <\/span><\/i><span style=\"font-weight: 400\">bisa dikurangi.<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Metode <\/span><i><span style=\"font-weight: 400\">Agile <\/span><\/i><span style=\"font-weight: 400\">sendiri masih terbagi lagi menjadi beberapa jenis bagian seperti <\/span><i><span style=\"font-weight: 400\">Adaptive software development<\/span><\/i><span style=\"font-weight: 400\"> (ASD), <\/span><i><span style=\"font-weight: 400\">Agile Modelling<\/span><\/i><span style=\"font-weight: 400\"> (AM), <\/span><i><span style=\"font-weight: 400\">Crystal<\/span><\/i><span style=\"font-weight: 400\">, <\/span><i><span style=\"font-weight: 400\">Dynamic System Development Method <\/span><\/i><span style=\"font-weight: 400\">(DSDM), <\/span><i><span style=\"font-weight: 400\">Extreme Programming<\/span><\/i><span style=\"font-weight: 400\"> (XP), <\/span><i><span style=\"font-weight: 400\">Feature Driven Development<\/span><\/i><span style=\"font-weight: 400\"> (FDD), <\/span><i><span style=\"font-weight: 400\">Rational Unified Process<\/span><\/i><span style=\"font-weight: 400\">, serta <\/span><i><span style=\"font-weight: 400\">Scrum Methodology<\/span><\/i><span style=\"font-weight: 400\">. Untuk jenis yang paling sering digunakan adalah <\/span><i><span style=\"font-weight: 400\">Scrum Methodology<\/span><\/i><span style=\"font-weight: 400\">.<\/span><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2306\" src=\"http:\/\/student-activity.binus.ac.id\/csc\/wp-content\/uploads\/sites\/37\/2023\/02\/Gambar-SDLC-4.png\" alt=\"\" width=\"716\" height=\"398\" \/><\/p>\n<p><i><span style=\"font-weight: 400\">Scrum methodology<\/span><\/i><span style=\"font-weight: 400\"> adalah salah satu dari bagian <\/span><i><span style=\"font-weight: 400\">Agile project management<\/span><\/i><span style=\"font-weight: 400\">. <\/span><i><span style=\"font-weight: 400\">Scrum <\/span><\/i><span style=\"font-weight: 400\">berfokus pada pengembangan <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang kompleks. Pengerjaan <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">pada <\/span><i><span style=\"font-weight: 400\">scrum <\/span><\/i><span style=\"font-weight: 400\">dibagi menjadi beberapa proses kecil yang disebut dengan <\/span><i><span style=\"font-weight: 400\">sprints<\/span><\/i><span style=\"font-weight: 400\">. Dalam satu <\/span><i><span style=\"font-weight: 400\">sprint<\/span><\/i><span style=\"font-weight: 400\">, biasanya tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">akan berfokus menyelesaikan satu fitur tertentu. Terdapat tiga peran penting dalam <\/span><i><span style=\"font-weight: 400\">Scrum team<\/span><\/i><span style=\"font-weight: 400\"> seperti berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Product Owner<\/span><\/i><span style=\"font-weight: 400\">. Bertugas memaksimalkan nilai bisnis dari <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang dikembangkan dan memastikan <\/span><i><span style=\"font-weight: 400\">list <\/span><\/i><span style=\"font-weight: 400\">fitur dari produk <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">yang dibuat telah tersusun dengan baik.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Development Team<\/span><\/i><span style=\"font-weight: 400\">. Sekumpulan orang yang memiliki skill tertentu untuk menjalankan project e.g. programmer, designer, writer, etc.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Scrum Master<\/span><\/i><span style=\"font-weight: 400\">. Bertugas memfasilitasi <\/span><i><span style=\"font-weight: 400\">daily scrum meeting<\/span><\/i><span style=\"font-weight: 400\"> dan memastikan bahwa tim sudah paham dengan proses <\/span><i><span style=\"font-weight: 400\">Scrum<\/span><\/i><span style=\"font-weight: 400\">. Selain itu, ia juga akan berkoordinasi dengan <\/span><i><span style=\"font-weight: 400\">Product Owner<\/span><\/i><span style=\"font-weight: 400\"> agar bisa memaksimalkan hasil produk dan ROI (<\/span><i><span style=\"font-weight: 400\">Return of Investment<\/span><\/i><span style=\"font-weight: 400\">)<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Scrum master yang akan bertugas untuk memfasilitasi daily sprint meeting dengan product owner dan development team, di mana masing-masing peran akan menjelaskan mengenai status dari tugas yang sedang dijalankan dan job desc apa yang akan mereka lakukan di hari selanjutnya. Aktivitas yang terdapat di dalam metode ini adalah sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">First meeting. Sebelum dimulainya aktivitas yang lain, haruslah dimulai dari first meeting yang agendanya membuat to do list dalam Backlog lalu disortir berdasarkan skala prioritas oleh product owner.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Sprint planning meeting. Melakukan perencanaan pada Sprint adalah sebuah keharusan, dimulai dari bagaimana Sprint akan dilakukan dan bagaimana caranya agar tim project mencapai <\/span><i><span style=\"font-weight: 400\">outcomes <\/span><\/i><span style=\"font-weight: 400\">yang diinginkan.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Daily scrum meeting. Ketika Sprint sudah berjalan sesuai dengan Sprint planning meeting, maka tim development akan melakukan rapat harian singkat yang disebut daily scrum meeting yang fungsinya untuk melakukan laporan update pengerjaan hari sebelumnya.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Sprint review meeting. Pada akhir rangkaian kerja Sprint, setiap tim diharuskan telah membuat Sprint review untuk menilai performa yang selama ini sudah berjalan.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Tim <\/span><i><span style=\"font-weight: 400\">project <\/span><\/i><span style=\"font-weight: 400\">dapat mempertimbangkan untuk menggunakan metode ini dengan beberapa kondisi seperti:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Project yang akan dikerjakan terbuka terhadap perbaikan yang terus menerus.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Project yang akan dikerjakan memiliki peluang untuk berubah saat di tengah pengerjaan project.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Para pemangku jabatan (Stakeholders) atau client ingin terlibat di setiap fase pengerjaan project.\u00a0\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Setelah membaca informasi tentang Agile project management (Scrum), kita dapat menyimpulkan bahwa metode ini memiliki kelebihan dan kekurangannya sebagai berikut:<\/span><\/p>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Kelebihan<\/b><\/td>\n<td><b>Kekurangan<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Pengembangan perangkat lunak membutuhkan waktu yang relatif cepat dan tidak membutuhkan sumber daya yang terlalu besar<\/span><\/td>\n<td><span style=\"font-weight: 400\">Metode Agile ini tidak sesuai dengan tim yang memiliki komitmen untuk menyelesaikan project secara bersama<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Dapat merespon perubahan dengan cepat dan sesuai dengan kebutuhan dari client<\/span><\/td>\n<td><span style=\"font-weight: 400\">Kurang sesuai dengan tim besar yang memiliki anggota lebih dari 20 orang<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Client dapat ikut berpartisipasi dalam pengembangan perangkat lunak dengan cara memberikan feedback kepada tim pengembang selama proses pembuatan perangkat lunak<\/span><\/td>\n<td><span style=\"font-weight: 400\">Setiap anggota tim harus siap dengan perubahan yang dapat terjadi sewaktu-waktu.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Sebelum metode Agile project management (Scrum) muncul, sebelumnya terdapat metode waterfall yang sudah dijelaskan di atas yang lebih dulu digunakan sebagai metode pengembangan software. Lalu, apa saja perbedaan dari keduanya?\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Agile PM (Scrum)<\/b><\/td>\n<td><b>Traditional PM (Waterfall)\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Dikembangkan secara incremental atau sedikit demi sedikit namun teratur<\/span><\/td>\n<td><span style=\"font-weight: 400\">Dikembangkan secara runtut dari rangkaian awal hingga akhir<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Estimasi pengerjaan project kecil bisa sangat cepat, namun untuk project besar waktunya sulit diprediksi<\/span><\/td>\n<td><span style=\"font-weight: 400\">Setiap project sudah memiliki estimasi waktu yang jelas<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Pengerjaan dibagi antar individu<\/span><\/td>\n<td><span style=\"font-weight: 400\">Tidak dilakukan secara individu<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Testing dan development dilakukan secara bersamaan<\/span><\/td>\n<td><span style=\"font-weight: 400\">Testing dan development dilakukan secara terpisah<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Client dapat memberikan feedback produk di tengah proses pengembangan<\/span><\/td>\n<td><span style=\"font-weight: 400\">Client hanya bisa melihat produk ketika project sudah selesai<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Pengembangan <\/span><i><span style=\"font-weight: 400\">software <\/span><\/i><span style=\"font-weight: 400\">lebih diprioritaskan daripada dokumentasi<\/span><\/td>\n<td><span style=\"font-weight: 400\">Dokumentasi merupakan prioritas utama<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Project dilakukan selama 2-4 minggu, perencanaan cukup kurang.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Proses pengembangan dilakukan bertahap dan lebih besar dari iterasi. Di akhir fase, selalu terdapat penjelasan rinci untuk fase berikutnya.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><b>Secure SDLC<\/b><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2307\" src=\"http:\/\/student-activity.binus.ac.id\/csc\/wp-content\/uploads\/sites\/37\/2023\/02\/Gambar-SDLC-5.png\" alt=\"\" width=\"417\" height=\"397\" \/><\/b><\/p>\n<p><span style=\"font-weight: 400\">SDLC atau dalam bahasa Indonesia siklus hidup pengembangan perangkat lunak adalah proses atau aktivitas yang di dalamnya mencakup perencanaan, implementasi, dan pemeliharaan software yang telah ada kurang lebih selama 60 tahun terakhir. Namun, selama proses pengembangannya, keamanan sering diabaikan dari SDLC. Di era sekarang, terdapat banyak sekali kasus pembobolan data vital (Data breaches), ransomware, dan ancaman siber lainnya.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Para pemangku kepentingan (<\/span><i><span style=\"font-weight: 400\">Stakeholder<\/span><\/i><span style=\"font-weight: 400\">) menganggap keamanan akan menambah biaya yang berlebihan (<\/span><i><span style=\"font-weight: 400\">Overhead cost<\/span><\/i><span style=\"font-weight: 400\">) saat pengembangan software. Namun, kenyataannya adalah dampak dari kerusakan software itulah yang akan memakan biaya jauh lebih tinggi. Yang menjadi kendala dalam proses pengembangan biasanya adalah bagaimana tim project menambahkan aspek keamanan pada perangkat lunak yang rumit dan sudah dibangun sebelumnya. Ini membutuhkan strategi yang advance di mana tim project harus memikirkan kembali untuk memperkenalkan best practice ke dalam bagian dari proses pengembangan. Jika tim project ingin implementasikan keamanan di dalam pengerjaan <\/span><i><span style=\"font-weight: 400\">software<\/span><\/i><span style=\"font-weight: 400\">,<\/span> <span style=\"font-weight: 400\">maka hal yang perlu diperhatikan dalam memulainya ialah:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Memberikan edukasi kepada tim development dalam mempraktikan coding dengan baik dan aman. Lalu, tidak lupa juga untuk menyediakan <\/span><i><span style=\"font-weight: 400\">frameworks <\/span><\/i><span style=\"font-weight: 400\">atau kerangka kerja untuk keamanan.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Melakukan analisis risiko terhadap arsitektur yang akan dibuat.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Mempertimbangkan keamanan ketika tim sedang merencanakan dan membangun uji kasus.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menggunakan <\/span><i><span style=\"font-weight: 400\">scanning tools<\/span><\/i><span style=\"font-weight: 400\"> untuk <\/span><i><span style=\"font-weight: 400\">static analysis, dynamic analysis,<\/span><\/i><span style=\"font-weight: 400\"> dan <\/span><i><span style=\"font-weight: 400\">interactive application security testing<\/span><\/i><span style=\"font-weight: 400\">.\u00a0\u00a0\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Setelah melakukan hal di atas, tim project perlu mengembangkan pendekatan strategis untuk dampak yang lebih signifikan. Apabila para pembuat keputusan (<\/span><i><span style=\"font-weight: 400\">Decision-maker<\/span><\/i><span style=\"font-weight: 400\">) tertarik dan setuju untuk melakukan implementasi secure SDLC secara masif dan komplit, maka hal yang perlu dilakukan selanjutnya adalah:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Melakukan gap analysis untuk menentukan kegiatan dan kebijakan apa yang akan berlaku di proses pengembangan dan seberapa efektifnya.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Membuat sebuah <\/span><i><span style=\"font-weight: 400\">software security program<\/span><\/i><span style=\"font-weight: 400\"> (SSP) atau <\/span><i><span style=\"font-weight: 400\">software security initiative<\/span><\/i><span style=\"font-weight: 400\"> (SSI) dengan tujuan yang realistis dan dapat dicapai dengan metrics yang ditentukan.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menjadikan aktivitas pengembangan keamanan menjadi sebuah proses yang formal di dalam SSI.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Menggunakan tenaga dari luar seperti vendor.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Melakukan investasi jangka panjang seperti mengadakan pelatihan coding dalam bentuk <\/span><i><span style=\"font-weight: 400\">workshop <\/span><\/i><span style=\"font-weight: 400\">untuk tim developer sebaik mungkin dan difasilitaskan dengan tools yang canggih.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Perlu diketahui bagi kita semua untuk mengerti semua aktivitas yang akan dilakukan dalam melakukan penerapan keamanan sistem. Terdapat beberapa praktik yang di dalamnya sebagai berikut:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Static analysis<\/span><\/i><span style=\"font-weight: 400\">. <\/span><span style=\"font-weight: 400\">Sebuah proses pengolahan data yang meliputi pemeriksaan, pembersihan, transformasi, pemrosesan, dan pemodelan data. Pada umumnya, proses ini merupakan proses otomatis yang mengidentifikasikan pola code tidak aman <\/span><i><span style=\"font-weight: 400\">(Insecure code)<\/span><\/i><span style=\"font-weight: 400\"> yang terdapat di dalam perangkat lunak seperti <\/span><i><span style=\"font-weight: 400\">infrastructure as code<\/span><\/i><span style=\"font-weight: 400\"> (IaC) dan <\/span><i><span style=\"font-weight: 400\">application code<\/span><\/i><span style=\"font-weight: 400\">. Tujuan dari adanya aktivitas ini adalah memberikan kesempatan bagi tim developer untuk memperbaiki masalah jauh sebelum mereka melakukan deployment.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Security scanning<\/span><\/i><span style=\"font-weight: 400\">. Mirip dengan aktivitas sebelumnya, proses pengujian yang dilakukan dengan cara memindai seluruh berkas atau <\/span><i><span style=\"font-weight: 400\">file<\/span><\/i><span style=\"font-weight: 400\"> dalam aplikasi berbasis web, website, jaringan, dan sistem. Pengujian jenis ini bertujuan untuk menemukan kerentanan berupa manipulasi atau modifikasi <\/span><i><span style=\"font-weight: 400\">file<\/span><\/i><span style=\"font-weight: 400\"> yang tidak sah. Selain itu, pemindaian bisa dilakukan secara otomatis atau manual tergantung alat dan metode yang diterapkan. Pemindaian menghasilkan insight mendalam tentang celah kerentanan serta menyediakan beberapa rekomendasi terbaik untuk mengatasi masalah yang ditemukan.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Code reviews.<\/span><\/i><span style=\"font-weight: 400\"> Proses ini dapat didefinisikan sebagai sekumpulan aktivitas yang dilakukan untuk membaca kode, memberikan masukan, termasuk komentar mengenai perbaikan kode dari rekan satu tim. Atau menurut beberapa sumber lainnya Code Review bisa diartikan sebagai sebuah pertemuan biasanya terdiri dari seluruh anggota tim, untuk membaca secara detail kode baris demi baris dari tim itu sendiri.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Penetration testing.<\/span><\/i><span style=\"font-weight: 400\"> Praktik ini bisa dibilang cukup intensif, pengujian ini melibatkan tenaga cyber security yang profesional untuk menguji keamanan infrastruktur software. Pentester akan melakukan beberapa rangkaian kerja seperti menganalisis kerentanan hingga eksekusi eksploitasi, dan dari proses tersebut menghasilkan sebuah laporan tentang berbagai masalah yang ditemukan.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Bug bounties. <\/span><\/i><span style=\"font-weight: 400\">Praktik ini mirip dengan sebelumnya, <\/span><span style=\"font-weight: 400\">Bug bounty adalah sebuah program yang dibuat oleh para perusahaan atau developer untuk memberikan apresiasi berupa uang kepada para hacker. Apresiasi tersebut diberikan kepada para hacker yang berhasil menemukan dan melaporkan bug pada website atau aplikasi mereka<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Training<\/span><\/i><span style=\"font-weight: 400\">. Pendidikan yang baik merupakan investasi bagi perusahaan kedepannya. Dunia keamanan siber terus berubah dengan cepat, ilmu yang didapat hari ini belum tentu masih berlaku 10 tahun kemudian. Pelatihan keamanan dapat sangat membantu dalam mengurangi kerentanan software yang disebabkan oleh human error.\u00a0\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Setelah membaca informasi tentang secure SDLC, diharapkan kita tahu bahwa mengamankan SDLC adalah sebuah gerakan yang baik. Berikut adalah <\/span><i><span style=\"font-weight: 400\">best practice<\/span><\/i><span style=\"font-weight: 400\"> yang dapat diikuti jika ingin menghasilkan <\/span><i><span style=\"font-weight: 400\">outcomes <\/span><\/i><span style=\"font-weight: 400\">yang baik dalam implementasi keamanan di SDLC:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Culture<\/span><\/i><span style=\"font-weight: 400\">. Biasakan untuk menciptakan budaya kerja SDLC di mana keamanan siber adalah yang terpenting. Memperhitungkan dan mengidentifikasikan masalah keamanan ke dalam project kick-off sebagai prioritas.\u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Standardization<\/span><\/i><span style=\"font-weight: 400\">. Membuat roadmap pengembangan Secure SDLC yang konsisten, artinya adalah menjadikan keamanan siber sebagai standar yang baru apabila tim project mengerjakan pengembang software lainnya.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Testing<\/span><\/i><span style=\"font-weight: 400\">. Melakukan tes secara teratur menggunakan static analysis security testing (SAST).\u00a0\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Document and manage.<\/span><\/i><span style=\"font-weight: 400\"> Kerentanan keamanan yang teridentifikasi selama pengerjaan SDLC perlu didokumentasikan\u00a0 agar tidak terjadi lagi kedepannya. Karena kerentanan bisa terjadi kapan saja, dengan melakukan pemantauan yang berkelanjutan diharapkan dapat mencegah peningkatan risiko dan biaya perbaikan.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><b>Referensi\u00a0<\/b><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.geeksforgeeks.org\/software-engineering-spiral-model\/\"><span style=\"font-weight: 400\">https:\/\/www.geeksforgeeks.org\/software-engineering-spiral-model\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/accounting.binus.ac.id\/2020\/05\/19\/memahami-system-development-life-cycle\/\"><span style=\"font-weight: 400\">https:\/\/accounting.binus.ac.id\/2020\/05\/19\/memahami-system-development-life-cycle\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.binaracademy.com\/blog\/sdlc-6-tahapan-metode-software-development-life-cycle-populer\"><span style=\"font-weight: 400\">https:\/\/www.binaracademy.com\/blog\/sdlc-6-tahapan-metode-software-development-life-cycle-populer<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.ekrut.com\/media\/sdlc-adalah#2_cara_kerja_s_d_l_c\"><span style=\"font-weight: 400\">https:\/\/www.ekrut.com\/media\/sdlc-adalah#2_cara_kerja_s_d_l_c<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.guru99.com\/software-development-life-cycle-tutorial.html\"><span style=\"font-weight: 400\">https:\/\/www.guru99.com\/software-development-life-cycle-tutorial.html<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.productplan.com\/learn\/software-development-lifecycle\/\"><span style=\"font-weight: 400\">https:\/\/www.productplan.com\/learn\/software-development-lifecycle\/<\/span><\/a><\/p>\n<p><a href=\"https:\/\/www.roberthalf.com.au\/blog\/employers\/6-basic-sdlc-methodologies-which-one-best\"><span style=\"font-weight: 400\">https:\/\/www.roberthalf.com.au\/blog\/employers\/6-basic-sdlc-methodologies-which-one-best<\/span><\/a><\/p>\n<p><a href=\"https:\/\/sis.binus.ac.id\/2019\/07\/02\/software-development-model-incremental-model\/\"><span style=\"font-weight: 400\">https:\/\/sis.binus.ac.id\/2019\/07\/02\/software-development-model-incremental-model\/<\/span><\/a><\/p>\n<p><a href=\"https:\/\/www.lucidchart.com\/blog\/pros-and-cons-of-waterfall-methodology\"><span style=\"font-weight: 400\">https:\/\/www.lucidchart.com\/blog\/pros-and-cons-of-waterfall-methodology<\/span><\/a><span style=\"font-weight: 400\">\u00a0\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.dicoding.com\/blog\/konsep-agile-pada-software-development\/\"><span style=\"font-weight: 400\">https:\/\/www.dicoding.com\/blog\/konsep-agile-pada-software-development\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.dewaweb.com\/blog\/pengertian-penetration-testing\/\"><span style=\"font-weight: 400\">https:\/\/www.dewaweb.com\/blog\/pengertian-penetration-testing\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.synopsys.com\/blogs\/software-security\/secure-sdlc\/\"><span style=\"font-weight: 400\">https:\/\/www.synopsys.com\/blogs\/software-security\/secure-sdlc\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.paloaltonetworks.com\/cyberpedia\/what-is-secure-software-development-lifecycle\"><span style=\"font-weight: 400\">https:\/\/www.paloaltonetworks.com\/cyberpedia\/what-is-secure-software-development-lifecycle<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.checkpoint.com\/cyber-hub\/cloud-security\/what-is-secure-sdlc\/#\"><span style=\"font-weight: 400\">https:\/\/www.checkpoint.com\/cyber-hub\/cloud-security\/what-is-secure-sdlc\/#<\/span><\/a><\/p>\n<p><a href=\"https:\/\/owasp.org\/www-pdf-archive\/Jim_Manico_(Hamburg)_-_Securiing_the_SDLC.pdf\"><span style=\"font-weight: 400\">https:\/\/owasp.org\/www-pdf-archive\/Jim_Manico_(Hamburg)_-_Securiing_the_SDLC.pdf<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/snyk.io\/learn\/secure-sdlc\/\"><span style=\"font-weight: 400\">https:\/\/snyk.io\/learn\/secure-sdlc\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software Development Life Cycle &nbsp; SDLC (Software Development Life Cycle) adalah terminologi yang tidak asing terdengar di lingkungan pengembangan software. Dengan pengembangan ini pula, banyak perusahaan mengembangkan software sebagai produk (Software-as-a-service) untuk dipasarkan kepada masyarakat. Umumnya, dalam pengembangan software ini membutuhkan tahapan yang runut. Pada artikel kali ini, kita akan coba untuk membahas hal yang [&hellip;]<\/p>\n","protected":false},"author":42,"featured_media":2303,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-2302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"_links":{"self":[{"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/posts\/2302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/comments?post=2302"}],"version-history":[{"count":1,"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/posts\/2302\/revisions"}],"predecessor-version":[{"id":2308,"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/posts\/2302\/revisions\/2308"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/media\/2303"}],"wp:attachment":[{"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/media?parent=2302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/categories?post=2302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/student-activity.binus.ac.id\/csc\/wp-json\/wp\/v2\/tags?post=2302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}