Selasa, 26 Agustus 2014

STUDI KASUS PENGEMBANGAN SOFTWARE

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.

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

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.

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. 
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.
      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 : 
  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.
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
         Evolutionary development
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
         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.






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.


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.
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
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 :

      1. Kelebihan model ini adalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. 
  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. 










1 komentar: