Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC) (Tugas 3)
Halo guys, kembali lagi di blog saya. Masih tidak bosan kan dengan tulisan saya hehe. Di blog saya kali ini saya akan membahas tentang Siklus Pengembangan Perangkat Lunak/Software Development Life Cycle atau yang biasa disingkat SDLC. Baiklah yuk langsung saja masuk ke penjelasannya secara rinci.
Proses Pengembangan Perangkat Lunak
Menurut Wikipedia Proses pengembangan perangkat lunak (software development process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap. Pengembangan perangkat lunak merupakan serangkaian proses yang dilakukan untuk mengembangkan perangkat lunak. Pengembangan perangkat lunak membutuhkan kehati-hatian dalam merancangnya agar memenuhi goal yang ingin dituju. Serangkaian proses yang dimaksud yaitu menulis kode program, mempersiapkan kebutuhan perangkat lunak, desain dari perangkat lunak, serta pengujian perangkat lunak. Semua aktivitas tersebut akan selalu berulang seiring dengan munculnya kebutuhan untuk membuat perangkat lunak yang lain jika perangkat lunak yang ada sudah tidak dapat memenuhi kebutuhan lagi akibat adanya perubahan lingkungan dan teknologi atau berubahnya keinginan dan pengharapan pemakai.
Software Development Life Cycle (SDLC)
SDLC (Software Development Life Cycle) adalah kerangka kerja atau model manajemen proyek terstruktur yang menguraikan fase-fase yang diperlukan untuk membangun sistem TI, dari awal hingga hasil akhir. Tujuan dari Software Development Life Cycle adalah untuk menciptakan proses produksi yang efektif dan berkualitas tinggi agar dapat memenuhi atau melampaui harapan klien sesuai dengan anggaran dan jadwal yang telah ditentukan. Tahapan SDLC dimulai dari identifikasi masalah, analisis masalah, studi kelayakan analisis sistem, pengembangan sistem, pengujian sistem, lalu implementasi sistem.
SDLC memiliki persyaratan yang terbagi menjadi 5 bagian, yaitu:
Scope ⇒ Syarat dari scoping meliputi pengikatan jenis sistem dan jenis proyek apa yang didukung oleh SDLC. SDLC harus dapat mendukung berbagai jenis proyek, dengan berbagai ukuran sistem.
Technical Activities ⇒ Technical activities menentukan jenis dan tugas dan hasil yang beru dipertimbangkan di dalam proyek. Technical activities terbagi dalam beberapa kategori, yaitu; system definition, testing, system installation, production support, evaluating alternatives, defining releases, reconciling information across multiple phases, reconciling to a global view, serta defining the project’s technical strategy.
Management Activities ⇒ Management activities terbagai ke dalam beberapa proses seperti; perencanaan, pengorganisasian, penempatan staff, pengarahan, serta mengkoordinasikan dan mengendalikan suatu proyek.
Usability ⇒ Usability mengatasi berbagai cara yang menentukan SDLC mana yang akan digunakan oleh anggota tim dan apa yang harus dipertimbangkan dalam membuat SDLC yang mudah dan dapat digunakan di semua kasus.
Installation Guidance ⇒ Installation guidance mengatasi semua kebutuhan yang terkait dengan pentahapan SDLC mulai dari awal.
Fase dalam SDLC ⇒ Untuk mendukung efisiensi dalam pengembangan suatu sistem, SDLC terbagi ke dalam 5 fase. Berikut ini 5 Fase dalam SDLC :
Identifying Problems, planning ⇒ Fase ini merupakan fase pertama dalam SDLC yang juga menentukan kesuksesan dari sebuah proyek. Pada tahapan ini akan mengidentifikasi sistem informasi mana yang seharusnya dikembangkan. Fase perencanaan bertujuan untuk memberikan jaminan atas kualitas, kelayakan teknis, juga menghindarkan dari resiko yang berpotensi muncul agar pengembangan perangkat lunak dapat berjalan lancar.
Analyzing system needs ⇒ Fase ini membutuhkan alat khusus yang membantu para analis menentukan kebutuhannya. Fase ini menilai beberapa aspek kelayakan seperti kelayakan operasional, kelayakan teknis, dan kelayakan ekonomis.
Designing the system ⇒ Pada fase ini analis menggunakan informasi yang telah dikumpulkan sebelumnya untuk menyelesaikan logika perancangan sistem informasi. Tujuan dari fase desain adalah untuk memberikan gambaran akan perangkat lunak yang menjadi pedoman bagi programmer.
Developing and documenting software ⇒ Pada fase ini analis bekerjasama dengan programmer untuk mengembangkan perangkat lunak asli yang dibutuhkan. Selama fase ini juga analis bekerjasama dengan pengguna aplikasi guna mengembangkan perangkat lunak yang efektif.
Testing the system ⇒ Sebelum sistem informasi dapat diluncurkan sebelumnya perusahaan harus melakukan tes terlebih dahulu. Testing dibutuhkan untuk menguji kelayakan perangkat lunak dan memastikan bahwa perangkat lunak tersebut memenuhi kebutuhan penggunanya.
Implementing and maintenance ⇒ Fase ini melibatkan pelatihan bagi pengguna untuk menangani sistem. Proses ini termasuk ke dalam mengkonversi file dari format lama ke yang baru atau membangun database, memasang peralatan dan membawa sistem baru ke dalam produksi. Sedangkan tahap maintenance meliputi seluruh proses yang menjamin kelangsungan, kelancaran, dan penyempurnaan sistem yang telah dioperasikan.
Model Software Development Life Cycle (SDLC)
Suatu strategi pengembangan yang memadukan lapisan proses, metode, dan alat serta tahap-tahap generik. Model proses pengembangan adalah cara atau strategi bagaimana mengembangkan perangkat lunak berdasarkan model proses, metode pengembangan, teknik, dan alat bantu tertentu sehingga produk perangkat lunak dapat diwujudkan. Penentuan model proses mana yang digunakan saat pengembangan, tergantung sepenuhnya kepada sifat dan ukuran proyek, area aplikasi, atau kompleksitas masalah. Model SDLC adalah pengembangan perangkat lunak yang memiliki jenis model dan metode berbeda. Contoh model SDLC yaitu :
Linear Sequential Model (Waterfall)
Linear Sequential Model yang biasa dikenal sebagai metode air terjun atau yang sering disebut metode waterfall, menggambarkan pendekatan yang sistematis dan juga berurutan pada pengembangan perangkat lunak, dimulai dengan spesifikasi kebutuhan pengguna lalu berlanjut melalui tahapan-tahapan perencanaan (planning), pemodelan (modelling), konstruksi (construction), serta penyerahan sistem ke para pengguna (deployment). Dalam pengembangannya metode waterfall memiliki beberapa tahapan yang berurut yaitu requirement (analisis kebutuhan), desain sistem (desain sistem), Coding (pengkodean) & Testing (pengujian), Penerapan Program, pemeliharaan. Berikut Tahapan Metode Waterfall Menurut Ian Sommerville (2011) :
Requirement Analisis
Tahap ini pengembang sistem diperlukan komunikasi yang bertujuan untuk memahami perangkat lunak yang diharapkan oleh pengguna dan batasan perangkat lunak tersebut. Informasi ini biasanya dapat diperoleh melalui wawancara, diskusi atau survei langsung. Informasi dianalisis untuk mendapatkan data yang dibutuhkan oleh pengguna.
System Design
Spesifikasi kebutuhan dari tahap sebelumnya akan dipelajari dalam fase ini dan desain sistem disiapkan. Desain Sistem membantu dalam menentukan perangkat keras(hardware) dan sistem persyaratan dan juga membantu dalam mendefinisikan arsitektur sistem secara keseluruhan.
Implementation
Pada tahap ini, sistem pertama kali dikembangkan di program kecil yang disebut unit, yang terintegrasi dalam tahap selanjutnya. Setiap unit dikembangkan dan diuji untuk fungsionalitas yang disebut sebagai unit testing.
Integration & Testing
Seluruh unit yang dikembangkan dalam tahap implementasi diintegrasikan ke dalam sistem setelah pengujian yang dilakukan masing-masing unit. Setelah integrasi seluruh sistem diuji untuk mengecek setiap kegagalan maupun kesalahan.
Operation & Maintenance
Tahap akhir dalam model waterfall. Perangkat lunak yang sudah jadi, dijalankan serta dilakukan pemeliharaan. Pemeliharaan termasuk dalam memperbaiki kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru.
Kelebihan Metode Waterfall
Kelebihan menggunakan metode air terjun (waterfall) adalah metode ini memungkinkan untuk departementalisasi dan kontrol. proses pengembangan model fase one by one, sehingga meminimalisir kesalahan yang mungkin akan terjadi. Pengembangan bergerak dari konsep, yaitu melalui desain, implementasi, pengujian, instalasi, penyelesaian masalah, dan berakhir di operasi dan pemeliharaan.
Kekurangan Metode Waterfall
Kekurangan menggunakan metode waterfall adalah metode ini tidak memungkinkan untuk banyak revisi jika terjadi kesalahan dalam prosesnya. Karena setelah aplikasi ini dalam tahap pengujian, sulit untuk kembali lagi dan mengubah sesuatu yang tidak terdokumentasi dengan baik dalam tahap konsep sebelumnya.
Evolutionary Process Model ⇒ sebuah siklus atau tahapan dengan tujuan pengembangan atau evolusi perangkat lunak, dimana masing – masing dari setiap aktivitas saling terkoneksi untuk menentukan, membuat sebuah perancangan, serta implementasi maupun pengujian sistem perangkat lunak. Evolusi ini Bersifat iteratif/ mengandung perulangan. Hasil proses berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Salah satu contohnya Prototyping, Spiral Model, Incremental Model, The Concurrent Development Model. Berikut ini penjelasan dari Spiral Model
Spiral Model
Model spiral (spiral model) adalah model proses software yang evolusioner yang merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Model ini berpotensi untuk pengembangan versi pertambahan software secara cepat. Spiral model adalah salah satu bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki oleh model prototyping dan digabungkan dengan aspek sistematis yang dikembangkan dengan model waterfall. Tahap desain umumnya digunakan pada model Waterfall, sedangkan tahap prototyping adalah suatu model dimana software dibuat prototype (incomplete model), “blue-print”-nya, atau contohnya dan ditunjukkan ke user / customer untuk mendapatkan feedback-nya. Jika prototype-nya sudah sesuai dengan keinginan user / customer, maka proses SE dilanjutkan dengan membuat produk sesungguhnya dengan menambah dan memperbaiki kekurangan dari prototype tadi. Spiral model dibagi menjadi beberapa framework aktivitas, yang disebut dengan task regions. Kebanyakan aktivitas2 tersebut dibagi antara 3 sampai 6 aktivitas. Berikut adalah aktivitas-aktivitas yang dilakukan dalam spiral model:
Customer communication. Aktivitas yang dibutuhkan untuk membangun komunikasi yang efektif antara developer dengan user / customer terutama mengenai kebutuhan dari customer.
Planning. Aktivitas perencanaan ini dibutuhkan untuk menentukan sumberdaya, perkiraan waktu pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan software.
Analysis risk. Aktivitas analisis resiko ini dijalankan untuk menganalisis baik resiko secara teknikal maupun secara manajerial. Tahap inilah yang mungkin tidak ada pada model proses yang juga menggunakan metode iterasi, tetapi hanya dilakukan pada spiral model.
Engineering. Aktivitas yang dibutuhkan untuk membangun 1 atau lebih representasi dari aplikasi secara teknikal.
Construction & Release. Aktivitas yang dibutuhkan untuk develop software, testing, instalasi dan penyediaan user / customer support seperti training penggunaan software serta dokumentasi seperti buku manual penggunaan software.
Customer evaluation. Aktivitas yang dibutuhkan untuk mendapatkan feedback dari user / customer berdasarkan evaluasi mereka selama representasi software pada tahap engineering maupun pada implementasi selama instalasi software pada tahap construction and release.
Berikut adalah gambar dari spiral model secara umum :
Incremental Process Model.
Incremental model adalah model pengembangan sistem pada software development berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengenbangannya secara bertahap. Dengan menggunakan incremental model dapat membantu kita untuk mengurangi biaya sebelum mencapai level dari initial productivity dan mengakselerasi proses dari pembuatan suatu fungsi sistem. Incremental model menggambarkan suatu proses dimana mengutamakan perhatian pada system requirement dan mengimplementasinya dalam team development. Tahap – tahap pada incremental model, yaitu:
Requirement: proses penentuan kebutuhan atau analisis kebutuhan.
Specification: proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya.
Architecture Design: perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
Code: melakukan koding.
Test: melakukan testing dalam model ini.
Kelebihan Dari Model Incremental :
Merupakan model dengan manajemen yang sederhana
Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem
Kelemahannya Dari Model Incremental :
Kemungkinan tiap bagian tidak dapat diintegrasikan
Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
Membutuhkan waktu yang relatif lama untuk menghasilkan produk yang lengkap
Agile Model
Agile Model adalah sekumpulan metode pengembangan software yang dilakukan secara bertahap dan berulang (iterasi). Setiap iterasi pada Agile juga berbeda-beda durasinya, tergantung project yang dikerjakan dan metode yang digunakan. Namun, umumnya iterasi berjalan antara satu sampai empat minggu. Iterasi pada Agile fokus pada upaya pengembangan software yang cepat sesuai perubahan kebutuhan konsumen dengan melibatkan semua tim. Contoh agile model yaitu Agile Model, Scrum Methodology, Extreme Programming (XP). Berikut ini penjelasan Extreme Programming (XP) :
Extreme Programming (XP)
Extreme programming adalah salah satu metodologi dari pendekatan agile software Development yang berfokus pada coding sebagai aktivitas utama di semua tahap pada siklus pengembangan yang lebih responsif terhadap kebutuhan customer dan membangun suatu software dengan kualitas yang lebih baik pula. Menurut Pratama (2017, hlm. 93) Extreme Programming (XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. Terdapat empat kerangka kegiatan dalam tahapan pelaksanaan extreme programming. Empat kerangka kegiatan dari tahapan extreme programming adalah sebagai berikut.
Planning
Kegiatan planning atau perencanaan dimulai dengan mengumpulkan berbagai requirement dari perangkat yang akan dikembangkan. Hal ini dilakukan agar anggota tim memahami konteks bisnis perangkat lunak dan untuk mendapatkan pandangan umum terhadap output dan fungsi utama dari perangkat lunak. Hal ini akan mengarah ke penciptaan suatu “story” atau kisah kebutuhan pengguna untuk mendeskripsikan output, fitur, dan fungsi dari aplikasi yang akan dikembangkan.
Design
Proses desain pada metodologi XP mengikuti prinsip KIS (keep it simple). Desain yang sederhana selalu dipilih dibandingkan dengan desain yang kompleks. Berbagai desain fungsi tambahan yang tidak diperlukan namun developer merasa nantinya akan diminta oleh pengguna tidak boleh dibuat. Hal ini karena XP menerapkan penggunaan CRC (class responsibility card) sebagai mekanisme yang efektif untuk memikirkan mengenai software dalam konteks berorientasi objek. CRC akan mengidentifikasi dan mengorganisasikan class berorientasi objek yang sesuai dengan peningkatan software. Artinya, berbagai desain fitur tambahan tersebut lebih dikembangkan ketika memang dibutuhkan (ketika diminta). Jika terjadi masalah dalam pembuatan desain story pengguna, maka dalam XP akan direkomendasikan suatu solusi yang disebut sebagai spike solution. Spike solution adalah pembuatan segera suatu prototype operasional dari sebagian desain yang mengalami masalah.
Coding
Setelah story pengguna dan desain kerangka kerja wal selesai, tim XP tidak akan segera melanjutkan ke tahap coding, melainkan mengembangkan serangkaian tes unit yang akan dijalankan pada setiap story yang akan dibuat. Saat unit test telah dibuat, developer akan lebih fokus pada apa yang harus dibuat untuk melewati tes tersebut. XP merekomendasikan konsep Pair Programming atau pemrograman berpasangan, yakni dua orang bekerja bersama dalam penulisan kode atau program untuk satu story. Hal ini memberikan kesempatan lebih besar pada pemecahan masalah yang lebih cepat karena kolaborasi dari dua programmer yang menulis coding yang sama.
Testing
Setelah tahapan pengkodean selesai maka dilakukan tahapan pengujian sistem untuk mengetahui berbagai kesalahan yang timbul saat aplikasi sedang berjalan serta untuk memastikan apakah perangkat lunak yang dibangun telah sesuai dengan story kebutuhan pengguna.
Kelebihan dari model Extreme Programming (XP) :
Jika pair programming dilakukan, maka developer berpotensi untuk didampingi langsung oleh pihak klien dalam melakukan coding dan unit testing, sehingga klien terlibat langsung serta menghilangkan miskomunikasi antara klien (pengguna) dan programmer.
Karena mengutamakan kesederhanaan, maka metodologi XP akan membangun komunikasi yang lebih lancar serta menyederhanakan penjelasan-penjelasan yang dibutuhkan dalam proses pengerjaan perangkat lunak.
Memberikan banyak ide baru dan keberanian untuk mencobanya.
Kekurangan dari model Extreme Programming (XP) :
Developer harus selalu siap dengan perubahan, karena xp merupakan metodologi yang selalu menerima perubahan, termasuk perubahan yang tiba-tiba di waktu yang terbatas.
Tidak dapat membuat kode yang detail sedari awal karena prinsip simplicity memberikan anjuran untuk melakukan apa yang diperlukan pada saat itu juga, tidak boleh lebih awal atau lebih lambat.
Kesimpulan :
Pengembangan perangkat lunak adalah salah satu proses dari berbagai proses yang ada dalam rekayasa perangkat lunak. Pada proses ini, kebutuhan pemakai ditransformasi menjadi perangkat lunak.
Secara umum SDLC (siklus pengembangan, PL) yaitu tahap analisis kebutuhan, perancangan, penerapan, pengujian, dan instalasi Serta pemeriksaan. Jika memiliki rencana untuk mengembangkan sebuah produk digital baik itu aplikasi ataupun website, maka perlu diperhatikan bahwa proses pengembangan yang dilakukan harus mengikuti salah satu model Software Development Life Cycle (SDLC). Dengan mengikuti siklus dan tahapan SDLC yang tersedia di dalam kerangka kerja tersebut, maka pekerjaan lebih terorganisir, terstruktur, dan terkontrol sehingga dapat menghasilkan produk akhir yang berkualitas tinggi.
Model proses pengembangan adalah cara atau strategi bagaimana
mengembangkan perangkat lunak berdasarkan model proses, metode pengembangan, teknik, dan alat bantu tertentu sehingga produk perangkat lunak dapat diwujudkan. Berikut ini contoh model SDLC :
1. Linear Sequential Model (Waterfall)
2. Evolutionary Process Model (Prototyping, Spiral Model)
3. Incremental Process Model (Spiral Model, RAD)
4. Agile Model (Agile Model, Scrum Methodology, Extreme Programming (XP))
Sumber :
https://e-learning.untan.ac.id/learning/mod/lesson/view.php?id=29019
https://ids.ac.id/apa-itu-system-development-life-cycle-sdlc-pahami-secara-lengkap/
https://wisbays.files.wordpress.com/2016/09/incremental-step.jpg?w=474
https://katadata.co.id/intan/berita/63330115bdc5f/sdlc-adalah-sistem-perangkat-lunak-ini-fungsi-dan-jenis-modelnya
Komentar
Posting Komentar