Bab 4
Metodologi Pengembagan Sistem(Perangkat Lunak) 4.1 Pendahuluan
Proses pengembangan sistem atau pengembangan perangkat lunak secara umum merupakan serangkaian kegiatan yang meliputi kegiatan dalam siklus hidup sistem (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 sistem 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 sistem 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 sistem. 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 sistem. 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
Penjelasan Garis besar
Spesifikasi
Versi Awal
Pengembangan
Versi Penjelasan Penjelasan Menengah Garis Garisbesar 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 sistem formal adalah sebagai berikut :
Definisi Persyaratan
Sfesifikasi Formal
Transformasi Formal
Integrasi & peng ujian system
Gambar 4.3 proses pengembangan sistem formal Sedangkan proses transformasi secara diagram dapat dilihat pada gambar berikut : T1
Spesifikasi Formal
T2
R1
P1
T3
R2
P2
T4
Program yang dapat dijalankan
R3
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 sistematik dan sekuensial yang dimulai pada tingkat dan kemajuan sistem 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
Pengembangan Teknis
Status Quo
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 sistem 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
Kembangkan pembagian sistem
Terapkan persyaratan ke inkremental
Validasi inkremen
Rancangan Arsitektur sistem
Integrasikan inkremen
Vlidasi sistem
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 sistem 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
Arsitektur sistem
Spesifikasi abstrak
Sprsifiksi perangkat Lunak
Perancangan interface
Spesifikasi
Perancangan komponen
Perancangan struktur data
Perancangan algoritma
Arsitektur sistem
Spesifikasi struktur data
Spesifikasi Algoritma
Gambar 4.11 Model Umum Proses Perancangan
4.5 Proses Pengujian
Pengujian Unit Pengujian Modul Pengujian subsistem Pengujian sistem
Pengujian Komponen
Pengujian Integrasi
Pengujian penerimaan
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 subsistem, merupakan pengujian pada level sekumpulan modul yang membentuk subsistem. 4. Pengujian system, yaitu merupakan pengujian yang dilakukan pada sekumpulan subsistem 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 sistem Pengembangan perangkat lunak dianggap merupakan kegiatan kreatif karena sistem 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 sistem
Nilai sistem yang ada
Ajukan perubahan sistem
Sistem yang ada
Gambar : 4.15 Proses evolusioner Sistem
Modifikasi sistem
Sistem baru