METODE PADA PENGEMBANGAN SOFTWARE
1. Model Waterfall
Waterfall Model adalah sebuah metode pengembangan software yang bersifat sekuensial atau suatu pengembangan sistem yang sederhana. Metode ini dikenalkan oleh Royce pada tahun 1970. Model Waterfall ini mendeskripsikan alur proses pengembangan sistem informasi seperti tampak pada gambar di bawah ini:
Model ini merupakan model yang paling banyak dipakai oleh para pengembang software. Inti dari metode waterfall adalah pengerjaan dari suatu system dilakukan secara berurutan atau secara linear.Jadi jika langkah satu belum dikerjakan maka 3 tidak akan bisa melakukan pengerjaan langkah berikutnya.
STUDI KASUS MODEL WATERFALL:
Di dalam sebuah perusahaan, infromasi merupakan sebuah sumberdaya utama untuk meningkatkan kinerja sebuah perusahaan. Setiap informasi yang dibutuhkan oleh semua pihak yang ada dalam perusahaan, baik pihak intern dan ekstern.
Pihak intern perusahaan meliputi manager dan karyawan sedangkan pihak ekstern meliputi pembeli atau pengguna jasa, investor,pemasok, pesaing dan pemerintah (dalam hal ini kantor perpajakan). Perkembangan teknologi yang kian maju membuat informasi makin mudah diakses. Informasi bisa diakses secara cepat, tepat dan akurat. Informasi terkini pun bisa didapatkan dalam hitungan detik didukung dengan teknologi canggih seperti smartphone
dan tablet.
Perkembangan dunia teknologi informasi dan komunikasi membuat berbagai perusahaan berlomba-lomba untuk pengembangan sistem sesuai dengan teknologi di zaman sekarang. Setiap perusahaan tentunya mengalami permasalahan. Setiap perusahaan tentunya memiliki solusi sendiri untuk menyelesaiakan atau meminimalisir masalah yang dihadapi. Sebagai contoh penulis mengambil studi kasus pada perusahaan asuransi. Perusahan tersebut adalah perusahaan Asuransi Jiwa Bersama Bumiputera 1912 (AJB Bumiputera 1912). AJB Bumiputera merupakan perusahaan asuransi pertama dan tertua milik Indonesia. Penulis memfokuskan studi kasus pada aktivitas pengelolahan penjualan premi perusahaan AJB Bumiputeran 1912.
Penjualan premi merupakan sumber pendapatan material (premi) bagi perusahan AJB Bumiputera karena penjualan premi tersebut merupakan sumber pendanaan operasional perusahaan.
Permasalahan yang dihadapi oleh perusahaan berhubungan dengan keterlambatan informasi mengenai pembayaran premi yang disampaikan kepada setiap nasabah yang
memegang polis. Keterlambatan tersebut dikarenakan petugas memberikan kuitansi premi kepada nasabah yang berisikan jumlah premi yang harus dibayarkan dengan cara door to door.
Agar informasi yang didapatkan bisa diperoleh dengan cepat maka penulis melakukan pembuatan sebuah website untuk perusahaan AJB bumiputera sebagai media optimalisasi dalam pembayaran premi asuransi. Pembuatan website ini membuat informasi pembayaran premi pada AJB Bumiputera menjadi mudah diakses dengan menggunakan bahasa pemrograman PHP dan MySQL.
Pada website tersebut, informasi mengenai pembayaran premi yang ditampilkan adalah pembayaran premi Asuransi Beasiswa Berencana dan pembayaran yang dilakukan melaui Bank sama sekali tidak dibahas dalam website tersebut. Website ini dibangun dengan menggunakan metode Waterfall
atau SDLC Tradisional.
Hal ini dimaksudkan agar sistem yang dibangun menjadi lebih mudah dirancang dan memerlukan proses yang berkelanjutan dan terus-menerus.
TAHAPAN PADA METODE WATERFALL:
1. System / Information Engineering and Modeling.
Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Tahap ini sering disebut dengan Project Definition.
Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. 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.
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.
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 fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
6. Maintenance
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
KEUNTUNGAN MENGGUNAKAN TEKNIK
WATERFALL :
1. Proses menjadi teratur
2. Estimasi proses menjadi lebih baik 3. Jadwal menjadi lebih menentu
KEKURANGAN MENGGUNAKAN TEKNIK
WATERFALL :
1. Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses.
2. Membutuhkan daftar kebutuhan yang lengkap di awal
WATERFALL :
1. Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses.
2. Membutuhkan daftar kebutuhan yang lengkap di awal
2. Model 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 :
1. Reusable prototype : Prototype yang akan ditransformasikan menjadi produk final.
2. Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan.
3. Input/output prototype : Prototype yang terbatas pada antar muka pengguna 4. Processing prototype : Prototype yang meliputi perawatan file dasar dan proses- proses transaksi
5. System prototype : Prototype yang berupa model lengkap dari perangkat lunak.
Beberapa model prototype adalah sebagai berikut :
1. Reusable prototype : Prototype yang akan ditransformasikan menjadi produk final.
2. Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan.
3. Input/output prototype : Prototype yang terbatas pada antar muka pengguna 4. Processing prototype : Prototype yang meliputi perawatan file dasar dan proses- proses transaksi
5. System prototype : Prototype yang berupa model lengkap dari perangkat lunak.
TAHAP-TAHAP PADA MODEL PROTOTYPE :
1. Pengumpulan Kebutuhan
Developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya.
Developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya.
2. Perancangan
Perancangan dilakukan cepat dan rancangan mewakili semua aspek software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype.
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.
Klien mengevaluasi prototype yang dibuat dan digunakan untuk memperjelas kebutuhan software.
Prototype-prototype 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.
STUDI KASUS MODEL PROTOTYPE :
Pada saat ini perkembangan telepon selular yang mendukung koneksi GPRS (General Packet Radio Service) dan teknologi Java semakin berkembang pesat. Aplikasi Java telah banyak digunakan pada telepon selular sebagai penunjang aktifitas sehari-hari. Salah satu contoh aplikasi yang bisa dikembangkan lebih lanjut ialah Mobile Ticketing yang dapat digunakan sebagai sarana reservasi online.
Pada tugas akhir ini dikembangkan aplikasi Mobile Ticketing yang memungkinkan pengguna telepon selular untuk melakukan reservasi tiket kereta api tanpa harus melakukan antri di stasiun kereta. Aplikasi Mobile Ticketing melakukan koneksi GPRS dari telepon selular ke komputer server untuk melakukan reservasi. Aplikasi Mobile Ticketing dibuat dengan menggunakan bahasa pemrograman Java.
Platform Java yang digunakan adalah Java 2 Platform Micro Edition (J2ME). Berdasarkan hasil pengujian sistem dapat disimpulkan bahwa aplikasi Mobile Ticketing dapat membantu pengguna Java-enabled mobile phone dalam melakukan reservasi tiket. Aplikasi Mobile Ticketing hanya membutuhkan memori yang kecil karena database tempat menyimpan history reservasi tidak disimpan pada telepon selular, melainkan disimpan pada database server.
KEUNTUNGAN MENGGUNAKAN TEKNIK
PROTOTYPE :
PROTOTYPE :
1. 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.
2. 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.
3. Prototyping adalah model aktif, tidak pasif, sehingga end user dapat melihat, merasakan, dan mengalaminya.
4. Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini
5. Prototyping dapat meningkatkan kreatifitas karena membolehkan adanya feedback dari end user. Hal ini akan memberikan solusi yang lebih baik.
6. Prototyping mempercepat beberapa fase hidup dari programmer.
2. 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.
3. Prototyping adalah model aktif, tidak pasif, sehingga end user dapat melihat, merasakan, dan mengalaminya.
4. Kesalahan yang terjadi dalam prototyping dapat dideteksi lebih dini
5. Prototyping dapat meningkatkan kreatifitas karena membolehkan adanya feedback dari end user. Hal ini akan memberikan solusi yang lebih baik.
6. Prototyping mempercepat beberapa fase hidup dari programmer.
KERUGIAN MENGGUNAKAN TEKNIK
PROTOTYPE :
1. Prototyping memungkinkan terjadinya pengembalian terhadap kode, implementasi, dan perbaikan siklus hidup yang dugunakan untuk mendominasi sistem informasi.
2. Prototyping tidak menolak kebutuhan dari fase analisis sistem.
3. Prototype hanya dapat memecahkan masalah yang salah dan memberi kesempatan sebagai sistem pengembangan konvensional.
4. Prototyping dapat mengurangi kreatifitas perancangan.
3. Model EVOLUTIONARY
Terdapat 2 macam pendekatan :
1. Exploratory development (Pengembangan dengan penyelidikan. Bertujuan untuk bekerja sama dengan klien untuk membangun sebuah sistem dari spesifikasi awal.
2. Throw-away prototyping
Bertujuan untuk mengerti akan kebutuhan sistem. Dimulai dengan pemahanan kebutuhan yang sangat minim, karena pada umumnya konsumen mendefinisikan sekumpulan tujuan secara umum untuk software, tetapi tidak mengidentifikasikan secara detail mengenai input, proses dan output yang diperlukan.
Masalah yang mungkin muncul diantaranya :
1. Ketidakjelasan dari alur proses
2. Struktur sistem yang amat buruk
3. Dibutuhkan kemampuan khusus (misalnya : penguasaan pemrograman untuk rapid prototyping)
Model ini dapat diterapkan pada :
1. Sistem interaktif berukuran kecil/sedang
2. Untuk bagian/subsistem dari sebuah sistem yang besar (misalnya User interface)
3. Untuk sistem dengan siklus hidup/penggunaan yang pendek.
4. Model INCREMENT
Tahapan Incremental Model :
1. Requirement
2. Specification
3. Architecture
4. Design
Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas. Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan.
Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya.
Evolutionary development
1. Exploratory development (Pengembangan dengan penyelidikan. Bertujuan untuk bekerja sama dengan klien untuk membangun sebuah sistem dari spesifikasi awal.
2. Throw-away prototyping
Bertujuan untuk mengerti akan kebutuhan sistem. Dimulai dengan pemahanan kebutuhan yang sangat minim, karena pada umumnya konsumen mendefinisikan sekumpulan tujuan secara umum untuk software, tetapi tidak mengidentifikasikan secara detail mengenai input, proses dan output yang diperlukan.
Masalah yang mungkin muncul diantaranya :
1. Ketidakjelasan dari alur proses
2. Struktur sistem yang amat buruk
3. Dibutuhkan kemampuan khusus (misalnya : penguasaan pemrograman untuk rapid prototyping)
Model ini dapat diterapkan pada :
1. Sistem interaktif berukuran kecil/sedang
2. Untuk bagian/subsistem dari sebuah sistem yang besar (misalnya User interface)
3. Untuk sistem dengan siklus hidup/penggunaan yang pendek.
4. Model INCREMENT
Model ini merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.
1. Requirement
2. Specification
3. Architecture
4. Design
Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas. Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan.
Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya.
KEUNTUNGAN MENGGUNAKAN MODEL INCREMENTAL :
1. Penambahan kemampuan fungsional akan lebih mudah diuji, diverifikasi, dan divalidasi dan dapat menurunkan biaya yang dikeluarkan untuk memperbaiki system
2. Nilai penggunaan dapat ditentukan pada setiap increament sehingga fungsionalitas sistem disediakan lebih awal.
3. Increment awal berupa prototype untuk membantu memahami kebutuhan pada increment berikutnya.
4. Memiliki risiko lebih rendah terhadap keseluruhan pengembaNgan sistem.
5. Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.
2. Nilai penggunaan dapat ditentukan pada setiap increament sehingga fungsionalitas sistem disediakan lebih awal.
3. Increment awal berupa prototype untuk membantu memahami kebutuhan pada increment berikutnya.
4. Memiliki risiko lebih rendah terhadap keseluruhan pengembaNgan sistem.
5. Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.
KEKURANGAN MENGGUNAKAN MODEL INCREMENTAL :
1. Tiap bagian tidak dapat diintegrasikan
2. Setiap tambahan yang dibangun harus dimasukkan kedalam struktur yang ada
3. Penambahan staf dilakukan jika hasil Incremental akan dikembangkan lebih lanjut
1. Tiap bagian tidak dapat diintegrasikan
2. Setiap tambahan yang dibangun harus dimasukkan kedalam struktur yang ada
3. Penambahan staf dilakukan jika hasil Incremental akan dikembangkan lebih lanjut
5. MODEL SPIRAL
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya. Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.
PENJELASAN TAHAP-TAHAP PADA MODEL SPIRAL :
Tahap Planning (perencanaan): pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
Tahap Analisis Resiko: mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
Tahap Rekayasa (engineering): pembuatan prototipe
Tahap Konstruksi dan Pelepasan (release): pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
Tahap Evaluasi: Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
KELEBIHAN MODEL SPIRAL :
2. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya.
3. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
KEKURANGAN MODEL SPIRAL :
1. Waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang.
2. Biaya yang besar.
3. Sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko.
4. Kesulitan untuk mengontrol proses.