Bab 4 Metodologi Pengembagan Sistem(Perangkat Lunak) 4.1 Pendahuluan Proses pengembangan atau pengembangan perangkat lunak secara umum merupakan serangkaian kegiatan yang meliputi kegiatan dalam siklus hidup (perangkat lunak) yang terdiri dari kegiatan seperti : definisi persyaratan, perancangan perangkat lunak, implementasi dan pengujian, integrasi dan pengujian system, dan operasi dan pemeliharaan) yang bertujuan untuk menghasilkan produk system (perangkat lunak) yang berkualitas. Ketepatan memilih dan menentukan metodologi dalam pengembangan atau pengembangan perankat lunak akan berpengaruh terhadap kualitas output. Oleh kerena itu dalam proses pemilihan metodologi harus ekstra hati-hati agar tidak salah pilih. 4.2 Metodologi Pengembangan Sistem atau Perangkat Lunak Sebagai upaya untuk dapat memilih metodologi yang tepat dalam pengembangan atau pengembangan perangkat lunak, berikut disajikan beberapa model metodologi yang dapat dipergunakan sebagai pendekatan dalam proses pengembangan system atau pengembangan perangkat lunak, diantaranya: 1. Model Air Terjun (waterfall), terdiri dari : spesifikasi, pengembangan, validasi, dan evolusi, dan mepresentasikannya sebagai fase-fase proses yang berbeda seperti : (1) Analisis dan definisi persyaratan, akan menghasilkan sprsifikasi persyaratan, (2)Perancangan system dan perangkat lunak, dapat digolongkan sebagai perancangan perangkat lunak, (3)Implementasi dan pengujian unit, dapat dikategorikan dalam rumpun implementasi, (4)Integrasi dan Pengujian system, dapat dikategorikan sebagai pengujian dan (5) operasi dan pemeliharaan yang merupakan siklus hidup perangkat lunak yang paling
lama. Pemeiharaan mencakup koreksi berbagai error, perbaikan implementasi dan pengembangan pelayanan. Secara diagram siklu hidup perangkat lunak dengan metode waterfall adalah sebagai berikut : Definisi Persyaratan Perancangan system dan perangkat lunak Implementasi dan pengujian unit Integrasi dan Pengujian Sistem Operasi dan Pemeliharaan Gambar : 4.1 siklus hidup Sistem (perangkat lunak) 2. Pengembangan Evolusioner, yaitu suatu system dikembangkan dengan cepat dari pendekatan abstrak, kemudian dikembangkan lagi untuk lebih baik berdasarkan adanya masukan-masukan. Atau dapat katakana bahwa pendekatan ini berhimpitan dengan kegiatan : spesifikasi, pengembangan dan validasi. Pengembangan evolusioner dibedakan menjadi dua jenis yaitu : a. Pengembangan Ekploratori, yaitu proses pengembangan perangkat lunak dengan cara mengadakan kerjasama dengan pelanggan atau pemakai untuk mengekplor persyaratan yang diinginkan pemakai. Pengembangan dimulai dari bagian-bagian. b. Prototype yang dapat dibuang (throw away), yaitu dengan pengembangan evolusioner, maka persyaratan pelanggan dapat didefinisikan dan persyaratan
yang kurang jelas untuk didefinisikan dengan sendirinya dalam prototype dapat dibuang. Secara diagramik pengembangan evolusioner dapat dilihat berikut ini : Kegitatan-kegiatan Yang bersamaan Spesifikasi Versi Awal Penjelasan Garis besar Pengembangan Penjelasan Versi Menengah Garis besar Validasi Versi Akhir Gambar 4.2 Pengembangan secara Evolusioner Jika dibandingkan dengan konsep air terjun, proses evolusioner lebih efektif, karena pada evolusioner spesifikasi dapat dikembangkan secara incremental. Namun demikian menurut sudut pandang rekayasa dan manajemen, pada pengembangan evolusiner terdapat 3 (tiga) masalah, yaitu : a. Proses tidak bisa dilihat b. System seringkali memiliki struktur yang buruk c. Mungkin diperlukan alat Bantu dan teknis khusus 3. Pengembangan Sistem Formal, yaitu pendekatan yang mendasarkan pada pembuatan spesifikasi system matematis dan pentranformasian spesifikasi ini menggunakan metode matematis serta verifikasi dengan membuat argumen matematis. Perbedaan kritis antara pendekatan system formal dengan pendekatan air terjuan adalah : - spesifikasi persyaratan perangkat lunak diperbaiki menjadi spesifikasi formal yang rinci dan dinyatakan dalam notasi matematika
- Proses pengembangan perancangan, implementasi, dan pengujian unit di gantikan oleh proses pengembangan transformasional menjadi program. Secara diagramik, proses formal adalah sebagai berikut : Definisi Persyaratan Sfesifikasi Formal Transformasi Formal Integrasi & peng ujian system Gambar 4.3 proses pengembangan formal Sedangkan proses transformasi secara diagram dapat dilihat pada gambar berikut : T1 T2 T3 T4 Spesifikasi Formal R1 R2 R3 Program yang dapat dijalankan P1 P2 P3 P4 Gambar 4.4 proses transformasi 4. Pengembangan Berdasarkan Pemakaian Ulang, yaitu pendekatan difokuskan pada adanya komponen yang signfikan dapat dipakai ulang dan integrasi komponen tersebut ke dalam system. Tahapan dalam model proses pengembangan berdasar pemakaian ulang, itu meliputi pentahapan sebagai berikut : (1) Analisis komponen, pada tahap ini komponen yang ada dianalisa untuk memastikan bahwa komponen dapat dimanfaatkan atau di daur ulang. (2) Modifikasi persyaratan, maksudnya bahwa dengam memperhatikan komponen yang tersedia, jika tidak memungkinkan pengembangan secara sempurna, maka pengembangan terhadap persyaratan merupakan solusi alternatif. (3) Perancangan system dengan pemakaian ulang, setelah persyaratan disesuaikan dengan keberadaan komponen yang tersedia, maka perlu dibuatkan perancangan
system yang menyesuaikan dengan kondisi komponen yang merupakan daur ulang. (4) Pengembangan dan integrasi. Karena menggunakan komponen seadanya, maka untuk terciptanya pengembangan perangkat lunak sesuai dengan kebutuhan pelanggan diperlukan pengembangan dan pengintegrasian system yang dikembangkan tersebut. Secara diagram, proses pengembangan dengan daur ulang : spesifikasi Persyaratan Analisis Komponen Modifikasi Persyaratan Perancangan system dengan pemakaian ulang Pengembangan & Integrasi Validasi Sistem Gambar 4.5 Diagram proses pengembangan dengan daur ulang 5. Model Sekuensial Linier Proses ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang atik dan sekuensial yang dimulai pada tingkat dan kemajuan pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Model ini melingkupi aktivitas-aktivitas sebagai berikut : - Rekayasa dan pemodelan system/informasi - Analisis kebutuhan perangkat lunak - Desain - Generasi kode - Pengujian - Pemeliharaan
Sedangkan masalah-masalah yang kadang-kadang terjadi ketika model sekuensial di aplikasikan adalah : - Jarang sekali proyek nyata mengikuti aliran sekuensial - Kadang-kadang sulit bagi pelanggan untuk menyatakan semua kebutuhannya secara ekplisit - Pelanggan harus bersikap sabar - Pengembangan sering melakukan penundaan yang tidak perlu. Untuk jelasnya model pemecahan masalah pada sekuensial linier, berikut diberikan diagram : Definisi Masalah Status Quo Pengembangan Teknis Penyatuan Solusi Gambar : 4.6 Fase Lingkaran Pemecahan Masalah Pada Model Sekuensial Linier Sedangkan model sekuensial linier adalah paradigma rekyasa perangkat lunak yang paling luas dipakai dan paling tua. Dalam kerangka pengembangan rekayasa perangkat lunak pemodelan sekuensial linier dapat dilihat pada diagram sebagai berikut : Pemodelan informasi Analisis Desain Kode Tes
Gambar 4.7 Model Sekuensial Linier 6. Model Prototype Prototype paradigma dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu mendefinisikan obyektif keseluruhan dari perangkat lunak, mengidentifikasi segala kebutuhan yang diketahui dan area garis besar yang mendefinisikan lebih jauh sehingga mengharuskan adanya perancangan kilat. Perancangan kilat ini berfokus pada penyajian dari aspek-aspek perangkat lunak tersebut yang akan nampak bagi pelanggan/pemakai (cotohnya pendekatan input dan format output). Perancangan singkat akan memberikan inspirasi pada konstruksi sebuah prototype. Prototipe di evaluasi oleh pelanggan atau pemakai untuk menjaring kebutuhan-kebutuhannya, sehingga memungkinkan akan terjadinya iterasi prototipe pada level pemakai untuk kesempurnaan proses pengembangan perangkat lunak yang sesuai dengan kebutuhan pemakai atau pelanggan. Atau untuk tujuan kesempurnaan pengembangan perangkat lunak dalam mendefinisikan kebutuhan perangkat lunak pemakai. Mendengarkan Pelanggan Membangun Memperbaiki Market Uji Pelanggan Mengendalikan Market Gambar : 4.8 Model Prototipe Paradigma Menurut Mc.Leod dalam bukunya Information Management System membagi model prototype menjadi dua type, yaitu prototype type 1 dan prototype type 2. Adapun protype jeni 1 mempunyai pentahapan sebagai berikut : 1. Mengidentifikasi kebutuhan user 2. Mengembangkan Prototype 3. Menguji prototype (memastikan terima atau ditolaknya protype)
4. Menggunakan Prototype 7. Model RAD (Rapid Application Development) Adalah sebuah proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Fase-fase pada RAD : - Business Modeling, aliran iformasi fungsi-fungsi binis dimodelkan agar informasi yang dihasilkan dapat relevance dengan kebutuhan informasi bisnis. - Data Modeling, setelah pemodelan bisnis dicapai penstrukturan data terhadap model bisnis yang sesui harus dibarengi dengan data modeling. - Process Modeling, setelah data dimodelkan, maka agar pengolahan data dapat sesuai dengan kebutuhan diperlukan pemodelan proses. - Application Generation, setelah model data dan model proses terbentuk, maka dilanjutkan unuk pembentukan aplikasi. - Testing dan Turnover, pengujian dan jika dimungkinkan penggantian dapat dilakukan setelah pembentukan aplikasi sudah selesai. Dasar penggantian dimaksudkan agar pengembangan perangkat lunak sesuai dengan tujuan yang hendak dicapai. Secara diagram model RAD : Pemodelan bisnis Pemodelan data Pemodelan proses Pembentukan aplikasi Pengujian dan turnover 60-90 hari
Gambar : 4.9 Model RAD 8. Pengembangan Inkremental Adalah suatu cara untuk mengurangi pengerjaan ulang pada proses pengembangan dan memberikan kesempatan pada pelanggan untuk menunga keputusan persyaratan rinci sampai mereka memperoleh pengalaman system. Definisikan persyaratan garis besar Terapkan persyaratan ke inkremental Rancangan Arsitektur Kembangkan pembagian Validasi inkremen Integrasikan inkremen Vlidasi Sistem akhir Sistem tidak lengkap Gambar: 4.10 Model Inkremental Keuntungan pada proses pengembangan Inkremental : - Pelanggan tidak perlu menunggu sampai seluruh system dikirimkan untuk mengambil keuntungan dari system. - Pelanggan dapat memakai inkremen yang pertama sebagai betuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk inkremen system berikutnya. - Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. - Layanan system mengalami pengujian yang paling ketat. 4.3 Spesifikasi Sistem (Perangkat Lunak) Spesifikasi perangkat lunak ditujukan untuk menetapkan layanan apa yang dituntut dari system dan batasan pada operasi dan pengembangan system. Ada empat fase utama pada proses rekayasa persyaratan : 1. Studi kelayakan, dibuat untuk memperkirakan apakah user yang diidentifikasi puas menggunakan perangkat lunak dan perangkat keras yang dipakai.
2. Elisitasi dan analisis persyaratan, adalah proses penurunan persyaratan melalui observasi, diskusi dengan user, atau hasil analisis pekerjaan. 3. Spesifikasi persyaratan, adalah kegiatan menerjemahkan informasi yang dikumpulkan pada kegiatan mendefinisikan serangkaian persyaratan. 4. Validasi persyaratan, kegiatan validasi ini untuk memastikan apakah persyaratan dapat direalisasikan, konsisten, dan lengkap. 4.4 Perancangan dan Implementasi Sistem (Perangkat Lunak) Implementasi merupakan proses pengubahan spesifikasi system menjadi system yang dapat dijalankan dan tahap ini melibatkan adanya proses perancangan dan pemrograman perangkat lunak. Sedangkan proses perancangan merupakan deskripsi sruktur perangkat lunak yang akan diimplementasikan, data dari system, interface system termasuk algoritmanya. Kegiatan-kegiatan proses perancangan yang spesifik : 1. Perancangan arsitektur 2. Spesifikasi abstrak 3. Perancangan interface 4. Perancangan kompponen 5. Perancangan Struktur Data 6. Perancangan Algoritma Secara diagram model umum proses perancangan adalah sebagai berikut : Spesifikasi Persyaratan Perancangan arsitektur Spesifikasi abstrak Perancangan interface Perancangan komponen Perancangan struktur data Perancangan algoritma Arsitektur Sprsifiksi perangkat Lunak Spesifikasi Arsitektur Spesifikasi struktur data Spesifikasi Algoritma Gambar 4.11 Model Umum Proses Perancangan
4.5 Proses Pengujian Pengujian Unit Pengujian Modul Pengujian sub Pengujian Pengujian penerimaan Pengujian Komponen Pengujian Integrasi Pengujian User Gambar 4.14 Proses Pengujian Tahap tahap pada proses pengujian adalah sebagai berikut : 1. Pegujian unit, adalah pengujian setiap komponen secara individual dan idependen untuk menjamin operasi yang benar. 2. Pengujian Modul, pengujian modul merupakan pengujian yang dilakukan pada kumpulan komponen yang dapat berbentuk : kelas objek, tipe data abstrak, atau sekumpulan prosedur dan fungsi. 3. Pengujian sub, merupakan pengujian pada level sekumpulan modul yang membentuk sub. 4. Pengujian system, yaitu merupakan pengujian yang dilakukan pada sekumpulan sub yang membentuk system. 5. Pengujian penerimaan, yaitu pengujian terhadap operasi suatu system dengan simulasi pengoperasian dengan data-data sample dan data actual. 4.6 Evolusi Pengembangan perangkat lunak dianggap merupakan kegiatan kreatif karena dikembangkan dari konsep awal sampai system itu dapat berjalan atau
dioperasikan sedangkan pemerliharaa perangkat lunak merupakan proses perubahan system tersebut setelah digunakan. Namun demikian pandangan tersebut diatas, hari ini sudak kurang relevan, Karena system perangkat lunak sekarang tidak sepenuhnya baru, sehingga pandangan ini memberikan pemahaman bahwa antara pengembangan perangkat lunak dan pemeliharaan perangkat lunak merupakan kegiatan yang berurutan. Proses evolusioner system dapat dilihat pada gambar berikut : Definisi Persyaratan Nilai yang ada Ajukan perubahan Modifikasi Sistem yang ada Sistem baru Gambar : 4.15 Proses evolusioner Sistem