Dibuat Oleh : 1. Andrey
(41813120186)
FAKULTAS ILMU KOMPUTER PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS MERCU BUANA JAKARTA 2015
Siklus hidup rilis perangkat lunak adalah lingkaran distribusi kode, dokumentasi, dan material pendukung sebuah perangkat lunak yang tersusun atas tahap-tahap yang menggambarkan kematangan perangkat lunak mulai dari perencanaan dan pembangunan hingga tahap rilis dan dukungan. 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. Proses ini memiliki beberapa model yang masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi selama proses. Contoh model proses pengembangan perangkat lunak antara lain adalah proses iteratif, extream programming, waterfall serta agile. Pengembangan
perangkat
lunak (juga
disebut pengembangan
aplikasi, desain
perangkat
lunak, merancang perangkat lunak, pengembangan aplikasi perangkat lunak,pengembangan aplikasi perusahaan, atau pengembangan platform) adalah pengembangan suatu produk perangkat lunak. Istilah “pengembangan perangkat lunak” bisa dipakai untuk menyebut aktivitas pemrograman komputer, yaitu proses menulis dan mengelola kode sumber, namun dalam artian luas istilah ini mencakup semua hal yang terlibat antara penciptaan perangkat lunak yang diinginkan melalui pewujudan akhir perangkat lunak, idealnya dalam proses yang terencana dan terstruktur. Karena
itu,
pengembangan
perangkat
lunak
bisa
mencakup
penelitian,
pengembangan baru, purwarupa, modifikasi, pemakaian kembali, rekayasa ulang, pengelolaan, atau aktivitas lain yang menghasilkan produk perangkat lunak.
SDLC (Systems
Development
Life
Cycle, Siklus
Hidup
Pengembangan
Sistem)
atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak, adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Konsep ini umumnya merujuk pada sistem komputer atauinformasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap-tahap: rencana(planning),analisa (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance). Dalam
rekayasa
perangkat
lunak,
konsep
SDLC
mendasari
berbagai
jenis metodologi pengembangan perangkat lunak. Metodologi-metodologi ini membentuk suatu kerangka kerja untuk perencanaan dan pengendalian pembuatan sistem informasi, yaitu proses pengembangan perangkat lunak. Terdapat 3 jenis metode siklus hidup sistem yang paling banyak digunakan, yakni: siklus hidup sistem tradisional (traditional system life cycle), siklus hidup menggunakan protoyping (life cycle using prototyping), dan siklus hidup sistem orientasi objek (object-oriented system life cycle). SDLC (Software Development Life Cycle) berarti sebuah siklus hidup pemngembangan perangkat lunak yang terdiri dari beberapa tahapan-tahapan yang sangat penting dalam keberadaan perangkat lunak yang dilihat dari segi pengembangannya. Adapun kegunaan utama dari SDLC adalah mengakomodasi beberapa kebutuhan. Kebutuhankebutuhan itu biasanya berasal dari kebutuhan pengguna akhir dan juga pengadaan perbaikan sejumlah masalah yang terkait dengan pengembangan perangkat lunak. Kesemua itu dirangkum pada proses SDLC yang dapat berupa penambahan fitur baru baik itu secara modular maupun dengan proses instalasi baru. Dari proses SDLC juga berapa lama umur sebuah perangkat lunak dapat diperkirakan untuk dipergunakan yang dapat diukur atau disesuaikan dengan kebijakan dukungan (baca : software support) dari pengembang perangkat lunak terkait.
Tahapan SDLC SDLC terdiri dari beberapa tahapan-tahapan berdasarkan analisa kebutuhan yang ada . Dimulai dari analisa kebutuhan perangkat lunak akan dibuat terlebih dahulu desain dari kebutuhan tersebut untuk mempermudah dalam pengerjaannya. Kemudian segala kebutuhan tersebut di implementasikan dengan dua tahap yaitu tahap analisa dan tahap evaluasi (User Acceptance Test). Setelah melakukan implementasi, maka proses tersebut akan dikembalikan kembali ke dalam tahap desain untuk pengembangan kembali perangkat lunak ke versi yang terbaru. Tahap – tahap SDLC dalam pembangunan sistem informasi Web : 1. Plaining Plaining (perencanaan) adalah feasibility dan wawancara , observasi, Quesener. Jika pada tahap Feasibility hasilnya baik maka langsung ketahap investigasi dan diberi form kepada client untuk mencatat kebutuhan client. Dalam sistem investigasi, dapat berupa wawancara, kuosiener atau observation. Dalam tahap ini hal yang pertama dilakukan adalah memberikan form ke user yang digunakan untuk mengetahui permintaan user. 2. Analisa
Analisa TeknologiMemerlukan data penyimpanan secara informasi produk, Informasi Berita digunakan database seeprti Mysql, MSAccess. . Menganalisis teknologi apa yang digunakan pemilik desain Web seperti menggunakan desain grafis maka memerlukan teknologi seperti Adobe Photoshop, Macromedia Flash, Dreamweaver.
Analisa informasi. Mengenai informasi data yang akan menjadi data tetap dan data dinamis, kategori informasi data tetap adalah : profile perusahaan, visi dan misi, sejarah perusahaan, latar belakang perusahaan. Informasi dinamis adalah informasi yang selalu berubah dalam setiap periodik dapat setiap hari atau setiap jam. Informasi dinamis dalam sistem ini adalah :
1. Informasi persediaan ( stock ) produk 2.
Informasi Harga Produk dan diskon
3.
Informasi Artikel, tips dan trik
4.
Informasi dari masing keunggulan Produk atau produk yang sedang trend
Analisa User. Mengkatogorikan user yang digunakan dalam sistem informasiWeb. User yang sudah memahami dan yang belum memahami.
Analisa Biaya dan Resiko. Dalam tahap ini diperhitungkan biaya yang akan dikeluarkan seperti biaya maintenance ( membayar domain ke ISP) atau biaya kirim ke user. Resiko yang terjadi adalah tidak sampainya produk ke user atau penipuan dari user.
3. Desain
Desain Informasi. Dalam tahap ini dimodelkan informasi link dari setiap halaman, jika dalam sistem tersebut terdapat database maka digunakan tahap development dan database disain..
Desain Grafis. Dalam tahap ini disesuaikan dari warna, layout, gambar dan graphic.
Database Application
Model Development Database Design PHP Library Development. Tahap untuk memodelkan seluruh peruses yang ada,seperti peruses penyimpanan data,update artikel, dan menampilkan data dari database.
4. Implementasi
Penulisan Program dan Instalasi. Merupakan tahap penulisan program yang telah dianalisis dan diesain semua maka perogeram yang digunakan adalah PHP dan database yang digunakan MySql
Desain Review. Dalam tahap ini tidak hanya menguji desain yang digunakan namun menguji semua sistem yang telah diterapkan seperti tidak ada lokasi lingk, image yang salah, pengujian sistem seperti penyimpanan data, update artikel dan lain-lain.
Pemilihan Sumber daya Hardware dan Software. Dalam tahap ini software dan hardware digunakan untuk Web server.
Pengujian Web dan Dokumen Web. Menguji Web dengan berbagai teknologi browser yang ada, serta pemeriksaan dokumen Web. Dan dalam memeriksa documen terdapat beberapa hal yang diperhatikan :
Akurasi atau ketepatan dokumen
Authority Web, document yang telah diterbitkan dalam web
Objective informasi
Currency, keterangan perubahan dan update link mengenai tanggal dan informasi.
SDLC tidak hanya penting untuk proses produksi software, tetapi juga sangat penting untuk proses maintenance software itu sendiri, Terdapat 4 metodologi penting dalam pengembangan software berbasis SDLC yaitu : A. WATERFALL “Classic Life Cycle” atau model Waterfall merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Roger S. Pressman memecah model ini menjadi 6 tahapan, yaitu : 1. System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition. 2. Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan. 3.Design Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam
bentuk
“blueprint”
software
sebelum
coding
dimulai.
Desain
harus
dapat
mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
4. Coding Desain yang telah dibuat kemudian diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer. 5. Testing / Verification Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsifungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benarbenar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. 6. Maintenance Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
Keuntungan menggunakan teknik waterfall: • • •
Proses menjadi teratur Estimasi proses menjadi lebih baik Jadwal menjadi lebih menentu
Kelemahan menggunakan teknik waterfall: • •
Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang konsumen bisa memberikan kebutuhan secara lengkap diawal
B. PROTOTYPE Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997). Beberapa model prototype adalah sebagai berikut : • • • • •
Reusable prototype : Prototype yang akan ditransformasikan menjadi produk final. Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan maksudnya. Input/output prototype : Prototype yang terbatas pada antar muka pengguna (user interface). Processing prototype : Prototype yang meliputi perawatan file dasar dan proses-proses transaksi System prototype : Prototype yang berupa model lengkap dari perangkat lunak.
Proses pada model prototyping adalah sebagai berikut: 1. pengumpulan kebutuhan developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya. Detil kebutuhan mungkin tidak dibicarakan disini, pada awal pengumpulan kebutuhan 2. perancangan perancangan dilakukan cepat dan rancangan mewakili semua aspek software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype.
3. Evaluasi prototype klien mengevaluasi prototype yang dibuat dan digunakan untuk memperjelas kebutuhan software. Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan terpenuhi. Prototypeprototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhan klien lebih baik. Prototype yang dibuat dapat dimanfaatkan kembali untuk membangun software lebih cepat, namun tidak semua prototype bisa dimanfaatkan. Skema dari prototype secara umum adalah sebagai berikut :
Pendekatan prototyping memiliki beberapa keuntungan yaitu: •
•
• • • •
Pemodelan membutuhkan partisipasi aktif dari end-user. Hal ini akan meningkatkan sikap dan dukungan pengguna untuk pengerjaan proyek. Sikap moral pengguna akan meningkat karena system berhubungan nyata dengan mereka. Perubahan dan iterasi merupakan konsekuensi alami dari pengembangan system-sehingga end user memiliki keinginan untuk merubah pola pikirnya. Prototyping lebih baik menempatkan situasi alamiah ini karena mengasumsikan perubahan model melalui iterasi kedalam system yang dibutuhkan. Prototyping adalah model aktif, tidak pasif, sehingga end user dapat melihat, merasakan, dan mengalaminya. Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini Prototyping dapat meningkatkan kreatifitas karena membolehkan adanya feedback dari end user. Hal ini akan memberikan solusi yang lebih baik. Prototyping mempercepat beberapa fase hidup dari programmer.
Pendekatan prototyping memiliki beberapa kekurangan yaitu: • •
•
Prototyping memungkinkan terjadinya pengembalian terhadap kode, implementasi, dan perbaikan siklus hidup yang dugunakan untuk mendominasi sistem informasi. Prototyping tidak menolak kebutuhan dari fase analisis sistem. Prototype hanya dapat memecahkan masalah yang salah dan memberi kesempatan sebagai sistem pengembangan konvensional. Prototyping dapat mengurangi kreatifitas perancangan.
C. RAD (Rapid Application Development) Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user. RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat dicapai dengan menerapkan component based construction. Kelemahan dalam model RAD yaitu: • • • •
Model RAD membutuhkan sumber daya yang besar, terutama untuk proyek dengan skala besar. proyek bisa gagal karena waktu yang disepakati tidak dipenuhi sistem yang tidak bisa dimodularisasi tidak cocok untuk model RAD resiko teknis yang tinggi juga kurang cocok untuk model RAD
Skema dari Model RAD adalah sebagai berikut:
Konsep SDLC – RAD Secara umum fase-fase pada RAD adalah sebagai berikut • • • •
•
Bussines modeling Data modeling Proses modeling Application generation : RAD mengasumsikan pemakaian teknik 4G (generasi keempat). Selain menciptakan Perangkat Lunak dengan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program atau menciptakan komponen yang bisa dipakai lagi. Testing and Turn Over : karena menekankan pada reusability, banyak komponen program yang telah diuji sehingga mengurangi keseluruhan waktu pengujian. Tapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.
D. AGILE SOFTWARE DEVELOPMENT Agile merupakan adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun. Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Agile juga dapat diartikan sebagai sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Menurut Agile Alliance, ada 12 prinsip yang mendorong keberhasilan dalam penerapan Agile Software Development, yaitu: • • • • •
• • • • • • •
Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan. Penyerahan hasil/software dalam hitungan waktu beberapa minggu sampai beberapa bulan. Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien Software yang berfungsi adalah ukuran utama dari kemajuan proyek Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile Kesederhanaan penting Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Kelebihan dari Agile Software Development yaitu: • • • •
Meningkatkan kepuasan kepada klien Pembangunan system dibuat lebih cepat Mengurangi resiko kegagalan implementasi software dari segi non-teknis Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
Berikut beberapa model proses yang terdapat pada model Proses Agile : a. Extreme Programming (XP) Dipublikasikan oleh Kenn Beck pada tahun 1999 dengan menggunakan pendekatan OOP (Object Oriented Programming), terdiri dari aktivitas perencanaan, aktivitas desain, aktivitas pengkodean dan aktivitas pengujian. Skemanya adalah sebagai berikut :
Extreme Programming (XP)
b. Adaptive Software Development (ASD) Di usulkan oleh Jim Highsmith sebagai tehnik untuk membangun software dan sistem yang komplek, filosofi dari ASD adalah kolaborasi manusia dan tim yang mengatur diri sendiri, aktivitas pada proses ASD adalah speculation, collaboration & learning. Skemanya adalah sebagai berikut:
Konsep Agile – Adaptive Software Development (ASD)
c. Dinamic System Development Method Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan. Aktifitas pada DInamic System development method adalah Feasibility Study, Business Study, Functional Model Iteration, Desain & Build iteration, Implementation, skema dari model ini adalah sebagai berikut :
Konsep Agile – Dinamic System Development
d. SCRUM Diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990-an, Pengembangan berikutnya dilakukan oleh Schwaber dan Beedle, Scrum memiliki prinsip: • • • • • •
ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan emberdayakan satu sama lain proses dapat beradaptasi terhadap perubahan teknis dan bisnis proses menghasilkan beberapa software increment pembangunan dan orang yang membangun dibagi dalam tim yang kecil dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
pada metode SCRUM terdapat aktivitas yang dijalankan sebagai berikut: Backlog, Sprints, Scrum Meetings, Demo. Skema dari SCRUM adalah sebagai berikut:
Konsep Agile – SCRUM e. Agile Modelling AM adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan sistem software. AM adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif. Prinsip dalam Agile Modelling adalah sebagai berikut:
• • • • • •
membuat model dengan tujuan mengunakan multiple models travel light isi lebih penting dari pada penampilan memahami model dan alat yang yang digunakan untuk membuat software adaptasi secara lokal
skema dari agile modeling adalah sebagai berikut :
Konsep Agile – Agile Modelling
Penutup Pengembangan metodologi ini menganalisa sistem informasi Web secara umum, domain dengan kasus tertentu dapat disesuaikan dibagian analisa. Dengan metodologi SDLC ini diharapkan akan membangun user –user baru yang akan selalu melihat Web site, dengan selalu mengupdate informasi dan tampilan desain yang dibuat dengan baik dan cepat dalam menjalankan Web site. Kadangkala, perkembangan dan penggunaan teknologi antara perangkat keras dan perangkat lunak, dan sesama perangkat lunak tidak sejalan (baca : lebih cepat atau lebih lambat antara satu dengan lainnya, antara mendukung dan tidak mendukung satu dengan lainnya) – sehingga terkadang hasil proses SDLC yang membutuhkan aplikasi pendukung lainnya (baca : software dependencies) maupunperangkat keras (baca : hardware) yang benar-benar mendukung (baca : perangkat keras baru) agak kesulitan dalam proses penyesuaian (baca : serapan) sehingga dapat menyebabkan proses implementasi SDLC “terkesan” stagnan. Penerapan SDLC yang baik dan benar pada prinsipnya juga membutuhkan biaya baik itu finansial dan non-finansial, baik itu teknis maupun non-teknis yang tidak sedikit. Kesemua hal tersebut wajib diperhitungkan secara cermat agar proses pengembangan perangkat lunak itu sendiri (yang menjadi inti utama dari SDLC) tidak terhambat atau bahkan terbengkalai.
Sumber : 1. https://ichnurezha.wordpress.com/2011/11/10/sdlc-system-development-life-cycle/ 2. http://andgaa.web.id/4-metodologi-pengembangan-software-berbasis-sdlc-softwaredevelopment-life-cycle/