SIKLUS HIDUP PERANGKAT LUNAK Untuk Memenuhi Tugas Mata Kuliah Rekayasa Perangkat Lunak Dosen Pembimbing : Wachyu Hari Haji, S.Kom, MM Disusun Oleh : Fadhilla Eka Hentino / 41813120051 UNIVERSITAS MERCU BUANA JAKARTA FAKULTAS ILMU KOMPUTER JURUSAN SISTEM INFORMASI Maret 2015
SIKLUS HIDUP PERANGKAT LUNAK I. DEFINISI SIKLUS HIDUP PERANGKAT LUNAK Siklus Hidup Perangkat Lunak atau Software Development Life Cycle (SWDLC) adalah suatu siklus atau tahapan dalam suatu projek pembuatan perangkat lunak atau sistem dimana siklus ini terdiri dari fase menemukan masalah,menganalisa kebutuhan, pembuatan hingga tahap pemeliharaan perangkat lunak atau sistem. Siklus Hidup Perangkat Lunak merupakan kerangka terstandar sesuai ISO/IEC 12207 atau Standar Internasional dalam proses pembangunan perangkat lunak. Tujuan dari Siklus Hidup Perangkat Lunak ini adalah untuk standarisasi dalam mendefinisikan seluruh kebutuhan dalam membangun perangkat lunak agar produk yang dibangun memiliki kualitas yang baik, mempermudah perencanaan projek dan meningkatkan efisiensi kerja dalam membangun perangkat lunak. II. TAHAPAN DALAM SIKLUS HIDUP PERANGKAT LUNAK
1. Requirement Analysis and Planning Requirement Analysis and Planning atau Analisa Kebutuhan dan Perencanaan adalah salah satu fase penting dalam siklus hidup perangkat lunak karena pada fase ini, seluruh masalah dan kebutuhan yang diperlukan oleh pengguna perangkat lunak ditemukan agar tujuan serta manfaat dari perangkat lunak benar benar tercapai dan bisa memecahkan masalah para pengguna. Pada umumnya di fase ini manajer projek dan beberapa dari tim IT akan melakukan pertemuan dengan pengguna, tim divisi penjualan, tim divisi pemasaran, serta tim analis sistem atau bisnis pada perusahaan pengguna untuk membicarakan tentang apa saja masalah dan kebutuhan yang sekiranya bisa di pecahkan oleh sistem yang akan dibangun selain itu pertemuan ini untuk melakukan studi akan batasan - batasan pada sisi ekonomi, operasional dan teknis termasuk budget dan durasi waktu projek agar ketika projek tersebut dijalankan setiap tim yang nantinya bekerja bisa mempunyai tanggung jawab serta tugas yang jelas. Pertemuan ini pada akhirnya akan menciptakan dokumen yang berisi apa saja kebutuhan yang akan didesain dan dibangun pada saat projek berlangsung. Pada umumnya dokumen tersebut bernama Software Requirement Specification (SRS ) atau Business Requirement Document (BRD) 2. Design Pada fase ini, arsitek sistem akan memikirkan desain terbaik untuk perangkat lunak yang akan dibangun agar terintegrasi dengan sistem yang telah ada.pada tahap ini juga dibahas tentang teknologi informasi apa yang paling sesuai dengan kebutuhan perusahaan yang bersangkutan, serta mempelajari fungsi-fungsi manajemen dan aspek-aspek bisnis terkait yang akan berpengaruh.dalam mendesain, para arsitek/analis sistem akan menggunakan dokumen SRS atau BRD sebagai acuan dalam proses desain sistem. Pada umumnya fase ini terdapat 2 bagian besar yang akan di rancang yaitu : a. Perangkat Lunak Pada desain perangkat lunak, akan dirancang mengenai metode, bahasa pemrogramman, tampilan, workflow serta fitur apa yang akan terdapat pada perangkat lunak
nanti.pada bagian ini pula arsitek/analis sistem akan mencari metode agar tim development perangkat lunak bisa bekerja secara efektif tetapi tetap menghasilkan perangkat lunak yang baik. b. Basis Data Pada desain basis data, akan dirancang mengenai alur pemrosesan data, Permodelan data yang mencakup Entity Relationship Diagram (ERD), Conceptual Data Model (CDM), dan Physical Data Model (PDM), serta Permodelan proses dengan Unified Modeling Language. Selain mendesain 2 hal diatas, pada fase ini juga akan ditentukan pembagian durasi waktu pada fase fase setelah desain, sumber daya serta kebutuhan kebutuhan tambahan agar projek bisa selesai dengan budget yang sesuai dan waktu yang tepat sesuai kesepakatan pada fase sebelumnya.pada fase ini akan menghasilkan dokumen Design Document Specification (DDS). 3. Development Pada fase inilah pembangunan sistem sebenarnya dimulai.modul modul aplikasi dibuat berdasarkan DDS yang dihasilkan pada fase sebelumnya.para pengembang aplikasi atau developer akan menggunakan bahasa pemrogramman, metode dan workflow yang telah didesain sebelumnya.tahap ini juga biasa disebut pengkodean atau coding karena desain pada DDS akan diubah kedalam kode bahasa pemrogramman tingkat tinggi lalu di definisikan oleh tool pemrogramman seperti compiler,interpreter, debbuger dll agar bisa dibaca oleh bahasa mesin. Selain itu pada sisi basis data juga akan dibangun basis data yang sesuai dengan DDS agar bisa saling mendukung dengan aplikasi.membangun sistem pada basis data adalah salah satu bagian yang penting apalagi jika aplikasi yang dibuat merupakan Data Oriented Application atau aplikasi yang berorientasi pada data. 4. Testing Testing atau pengujian adalah tahap dimana sistem yang telah didevelopment akan diuji apakah sistem sudah sesuai kebutuhan dan tidak ada masalah atau error ketika dioperasikan serta mengevaluasi sistem apakah sudah memenuhi syarat syarat tertentu agar sistem yang telah dibangun dapat bekerja dengan baik.
Secara umum, tahapan pada fase testing terdapat 2 tahap yaitu System Integration Testing (SIT) dan User Acceptances System (UAT). a. System Integration Testing (SIT) System Integration Testing merupakan tahapan testing yang bersifat teknis.pada tahap ini sistem atau aplikasi akan di test berdasarkan sudut pandang teknis seperti apakah fungsi atau fitur pada sistem telah berjalan tanpa error.pada umumnya tester pada tahap ini merupakan orang orang yang berlatar belakang IT karena tujuan SIT adalah menemukan masalah pada sisi teknis aplikasi yang meliputi fitur,fungsi,penulisan kode/koding maupun prosedur. Bagian umum pada SIT bisa dibagi 3 bagian, Yaitu : Unit Testing adalah bagian terkecil dari tahapan testing yang berupa testing pada fungsi dasar atau fitur terkecil dari aplikasi seperti fungsi dari button yang ada atau sudah sesuaikah jika membuka suatu menu.pada unit testing juga dilakukan pengecekan terhadap kode dan prosedur yang telah dibuat apakah terdapat error atau tidak. Integration Testing adalah tahapan testing setelah dilakukannya Unit Testing. Integration Testing adalah tahap untuk memeriksa bagaimana fungsi fungsi yang telah melalui unit testing bisa bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individual. Sebagai contoh, jika memiliki sebuah proses yang dikerjakan oleh dua fungsi, di mana satu fungsi menggunakan hasil output dari fungsi yang lainnya,apakah kedua function ini telah berjalan dengan baik dan menghasilkan output yang diinginkan. System Testing adalah tahapan testing sistem atau aplikasi yang bersifat keseluruhan setelah sistem selesai didevelop. Karena itu,setiap fungsi atau fitur pada sistem secara keseluruhan harus berfungsi sebagaimana mestinya. b. User Acceptances testing (UAT) User Acceptances testing (UAT) adalah tahapan testing setelah semua tahapan SIT selesai dilakukan.uat merupakan testing yang lebih bersifat kepada fungsionalitas sistem bukan lagi testing yang bersifat teknis seperti SIT.Pada UAT, tester yang melakukan testing umumnya adalah pengguna akhir atau End-User yang nantinya akan menggunakan sistem untuk kegiatan operasional. Testing pada tahap ini merupakan simulasi penggunaan nyata dari sistem pada
lingkungan yang sebenarnya. Proses ini merupakan salah satu tahap final sebelum end-user menyetujui dan menerima penerapan sistem aplikasi yang baru oleh sebab itu UAT sudah berorientasi pada kevalidan data atau hasil dari sistem. 5. Implementaion Implementation atau Implementasi adalah tahapan dimana sistem yang telah didesain, dibangun dan ditesting telah siap untuk dirilis pada environment produksi untuk digunakan secara nyata oleh End-user untuk membantu mengatasi masalah sesuai tujuan utama pembuatan sistem.tahapan ini juga biasa disebut Deployment. 6. Maintenance Setelah tahap Implementasi selesai dan sistem telah digunakan pada penggunaan nyata maka tahapan selanjutnya adalah maintenance atau perawatan sistem. Tujuannya adalah untuk menjaga agar sistem akan terus berjalan sesuai fungsi nya hingga sistem tersebut sudah tidak relevan lagi untuk mengatasi masalah-masalah baru. III. MODEL MODEL PADA SIKLUS HIDUP PERANGKAT LUNAK Dalam implementasinya, terdapat berbagai model penerapan SLDC dalam pengembangan suatu sistem. Masing-masing model tersebut memiliki keunggulan dan kelemahan masing-masing sesuai dengan kebutuhan yang diperlukan. Model-model SLDC yang ada diantaranya : a. Waterfall model Kelebihan waterfall model adalah kemudahan serta kejelasan interpretasinya. Model ini terstruktur serta cocok diadaptasi untuk management control. Model ini cocok untuk sistem yang mengedepankan kualitas dibandingkan biaya pengembangan atau waktu pengembangan. Kelemahan model ini terletak pada sifatnya yang tidak fleksibel, dimana semua persyaratan harusdiketahui sejak awal serta hanya sedikit peluang bagi end user untuk meninjau sistem ini sampai akhir pengembangan.model ini tepat digunakan ketika semua persyaratan sudah diketahui di awal,definsi dari produk jelas dan tidak berubah-ubah, teknologinya dapat
dimengerti, ketika mengembangkan suatu software yang merupakan versi upgrade dari model yang sudah ada atau merubah sebuah model yang sudah ada ke dalam platform baru. b. V-Shaped SDLC model Kelebihan model ini adalah pada kemudahan penggunaannya, serta menekankan pada dilakukannya verifikasi dan validasi pada tahap-tahap awal pengembangannya,sehingga user dapat lebih terlibat dalam pembuatannya. Setiap output mampu di test pada tahap awal, serta mudah dimonitor karena memiliki milestones yang jelas. Kelemahan dari model ini adalah tidak dapat digunakan untuk permasalahan yang terjadi secara bersamaan, iterasi, tidak dapat digunakan untuk perubahan-perubahan besar dalam persyaratan, dan tidak bisa menganalisis resiko. Model ini cocok digunakan pada sistem yang menuntut kehandalan tinggi, pada sistem yang semua persyaratannya diketahui, dan bisa dimodifikasi untuk menyesuaikan dengan perubahan setelah fase analisis, serta solusi dan teknologinya telah jelas diketahui.
c. Structured Evolutionary Prototyping Model Kelebihan model ini terletak pada keterbukaannya. User dapat melihat persyaratan sistemnya selagi dikumpulkan. Model ini juga memungkinkan developer untuk belajar dari user,sehingga mendapatkan produk akhir yang lebih tepat bagi user. Model ini juga fleksibel dalam pembuatannya. Kelemahannya adalah metode ini dapat sulit di maintain, memiliki reputasi metode - metodeyang mengutamakan kecepatan pengerjaan. Model ini cocok untuk kondisi ketika persyaratan tidak stabil, persyaratan berada pada tahap klarifikasi pada model waterfall, ketika mengembangkan antarmuka pengguna, merupakan pengembangan yang orisinil, serta ketika desain dan analisisnya bersifat objective oriented.
d. Rapid Application Model Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan : Component based construction ( pemrograman berbasis komponen bukan prosedural). Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada. Pembangkitan kode program otomatis/semi otomatis. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun. Kelebihan metode ini adalah pada waktunya. Metode ini dapat mengurangi waktu siklus serta meningkatkan produktifitas dengan lebih efisien. Model ini juga lebih berorientasi pada user, dimana user berperan serta dalam keseluruhan tahap pengembangan. Kelemahannya adalah menuntut user yang dapat bereaksi dengan cepat terhadap perubahan, terdapat resiko tidak bisa closure, serta sulit digunakan dengan sistem legacy. Model ini digunakan ketika persyaratannya sudah jelas diketahui, user terlibat selama proses pembuatan, tidak memerlukan performa yang terlalu tinggi, serta memiliki resiko teknis yang rendah.
e. Spiral model Spiral model adalah model proses yang pendekatannya bersifat realistis pada sistem besar karena proses dari awal sampai proses pengiriman dan perbaikan dapat dipahami dnegan baik oleh user dan developer. Model ini mempunyai rangkaian kerja yang iterasi (peningkatan pada model) awal yang berbentuk prototype dan kemudian iterasi selanjutnya akan menjadi perkembangan dari model sebelumnya. Model ini dapat terus digunakan meskipun sistem sudah dikirimkan karena proses (siklus)dapat berputar lagi jika ada perubahan pada sistem sampai tidak ada permintaan perubahan pada sistem oleh user. Kelebihan model Spiral : Setiap tahap pengerjaan dibuat prototyping sehingga kekurangan dan apa yang diharapkan oleh client dapat diperjelas dan juga dapat menjadi acuan untuk client dalam mencari kekurangan kebutuhan. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses. Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk. Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif. Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius. Kekurangan model Spiral : Banyak konsumen (Client) tidak percaya bahwa pendekatan secara evolusioner dapat dikontrol oleh kedua pihak. Model spiral mempunyai resiko yang harus dipertimbangkan ulang oleh konsumen dan developer.
Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses. Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.
DAFTAR PUSTAKA www.tutorialspoint.com/sdlc/sdlc_tutorial.pdf http://anindito38e.blogstudent.mb.ipb.ac.id/files/2012/01/tugas-uat-sim-sldc1.pdf http://id.wikipedia.org/wiki/rapid_application_development http://www.ss.pku.edu.cn/mscourse/lecture/02.pdf