Pemodelan Proses Pengembangan Perangkat Lunak

1 komentar Selasa, 30 Oktober 2012 di 19.39 - Edit entry?


Pengantar
Proses pengembangan perangkat lunak (Software Process / Development Paradigm) adalah sekumpulan tahap, tugas dan aktivitas yang dibutuhkan untuk secara effisien mentransformasikan kebutuhan pemakai ke suatu solusi perangkat lunak yang efektif.  Pemodelan proses perangkat lunak (Software Process Modeling) bertujuan untuk merepresentasikan aktivitas yang terjadi selama pembuatan perangkat lunak dan perubahan-perubahannya (evolusi).  Latar belakang penggunaan model-model tersebut adalah kebutuhan untuk menghasilkan suatu sistem yang benar sedini mungkin didalam proses pengembangannya.  Alasan utama adalah biaya.  Semakin dini suatu kesalahan bisa dideteksi dalam pengembangan sistem, biaya perbaikannya semakin rendah.

Suatu model proses yang baik dan terstruktur akan (Boehm, 1988):
·        menentukan urutan tahap dalam suatu proses
·        menciptakan kriteria transisi untuk maju ke tahap selanjutnya

Suatu proses model harus bisa menangani hal-hal sebagai berikut:
·        Kualitas
·        Requirement yang berubah-ubah
·        Kompleksitas

Requirement dan karakteristik dari sistem perangkat lunak dari jenis aplikasi berbeda sangat bervariasi, sehingga tidak ada suatu model proses atau paradigma yang bisa mencakup segala jenis pengembangan sistem perangkat lunak.

Model Waterfall
Model Waterfall ini juga dikenal dengan nama model tradisional atau model klasik.  Model ini adalah model yang paling banyak dikenal dan dipakai.


 
                 Requirements
          analysis and definition



 
                                          System and
                                       software design



 
                                                             Implementation
                                                             and unit-testing


                                                                                   Integration and
                                                                                    system-testing

Gambar 2.1: Model waterfall

Keuntungan:
·        Terstruktur
·        Tiap tahap memiliki metode untuk menghasilkan suatu dokumen yang bisa diserahkan ke pemakai
·        Dokumen yang dihasilkan tiap tahap bisa di spesifikasikan secara jelas dan mendetail
Kerugian:
·        Linear, tidak ada umpan balik (feedback)
·        Sumber daya dan penjadwalan harus di perkirakan pada awal proyek
·        Tahap terisolasi, kurang terjalin transisi ke tahap berikutnya.  Akibat paling besar terasa pada tahap requirement
·        Pemakai tidak bisa melihat produk perangkat lunak sampai akhir proyek
·        Penekanan terbesar pada dokumen

Model waterfall ini cocok untuk produksi suatu aplikasi tunggal yang biayanya rendah dengan menggunakan:
·        Dekomposisi fungsi top-down
·        3GL konvensional untuk implementasinya

Model Prototyping
Prototyping adalah suatu proses yang memungkinkan pengembang aplikasi untuk menciptakan suatu model dari perangkat lunak yang harus dikembangkan.  Tujuan utama dari prototyping adalah untuk mengurangi resiko dan ketidak-pastian selama tahap-tahap awal dari life-cycle pengembangan perangkat lunak.  Prototyping meneruskan tahap analisa requirement untuk mengurangi biaya pengembangan perangkat lunak secara keseluruhan.













 
   Establish outline                  Develop                      Evaluate                         Specify
     specifications                   prototype                     prototype                       system

                        components

 



                           Design and                            Validate
                     implement system             system


 


Gambar 2.2: Model prototyping

Keuntungan:
·        Mengurangi kesalah-pahaman antara pengembang dan pemakai perangkat lunak
·        Contoh sistem bisa diperlihatkan ke pemakai dalam tempo singkat
·        Prototype dipakai sebagai dasar spesifikasi dari sistem


Kerugian:
·        Biaya pengembangan prototype sering merupakan bagian yang cukup besar dari keseluruhan biaya sistem
·        Dari contoh prototype, harapan pemakai seringkali berlebihan / tidak sesuai dengan sistem yang sesungguhnya

Selesai dipakai, prototype tidak boleh diteruskan untuk dipakai oleh sistem sesungguhnya, karena:
·        Fasilitas penting kemungkinan diabaikan untuk menyederhanakan implementasi secepatnya
·        Prototype biasanya dikembangkan secara ad-hoc tanpa kontrol

Model Exploratory
Model ini dipakai dengan awal seadanya. Pengembang sistem tidak sepenuhnya mengerti dan menguasai requirement dari sistem. Sistem dikembangkan sejalan dengan adanya requirement baru. Model ini dipakai pada konteks dimana pengembang sulit sekali untuk membuat suatu spesifikasi. Model ini banyak dipakai pada area yang memiliki budget tinggi, misalnya militer.

           Develop                                    Build                                        Use
  outline specifications       software system                      software system



                                                                                    NO               System
                                                                                                        adequate?

                                                                                                                YES

                                                                                                        Deliver
                                                                                                  software system

Gambar 2.3: Model Exploratory

Keuntungan:
·        Terkadang, model ini adalah satu-satunya pendekatan yang masuk akal (tidak ada pilihan lain)

Kerugian:
·        Manajemen
·        Perubahan yang terus-menerus bisa mengerosi struktur sistem



Model Evolutionary / Incremental
Model ini adalah pengembangan lebih lanjut dari model exploratory yang didesain untuk menjawab kritik terhadap model prototyping.  Requirement didefinisikan dan diserahkan kepada pemakai dalam bentuk incremental (bertahap).  Penyelesaian suatu tahap adalah dalam bentuk suatu unit perangkat lunak yang sudah berfungsi, bersama-sama dengan semua materi pendukungnya (misalnya dokumentasi dan user manual).  Secara keseluruhan, model incremental ini adalah gabungan dari beberapa proses waterfall mini yang saling berurutan.
      
    Define system deliverables


 


       Specify system                         Build system                              Validate
            increment                              increment                    increment




 
                                                    Deliver system             NO           System
                                                        increment                     complete?

                                                                                                                YES


 
                                                                                        Deliver complete system

Gambar 2.4: Model Incremental

Keuntungan:
·        Bisa mengantisipasi perubahan

Kerugian:
·        Hanya cocok untuk sebagian kecil dari bermacam-macam sistem, pemakai dan pengembang sistem

Model Transformational
Model ini adalah model yang berorientasi pada spesifikasi formal.  Spesifikasi ini ditransformasikan melalui beberapa tahap yang telah diuji kebenarannya sebelum menjadi suatu sistem yang seutuhnya.  Konsepnya: bila setiap tahap telah dibuktikan kebenarannya dari suatu step ke step selanjutnya, maka sistem secara keseluruhan bisa diyakini kebenarannya dan sesuai dengan spesifikasi yang diminta.

Keuntungan:
·        Sistem keseluruhan dijamin kebenarannya sesuai dengan spesifikasi yang ada
·        Setiap perubahan step terdokumentasi, termasuk alasan-alasan dalam memutuskan bentuk desain sistem
·        Pemrogram tidak bisa mengubah source-code secara langsung, tetapi harus melalui transformasi

Kerugian:
·        Masih berorientasi pada riset
·        Membutuhkan alat bantu (tool) yang cukup lengkap


Model Spiral

Planning
 
Model ini dikembangkan oleh Boehm. Model ini cocok digunakan untuk organisasi yang besar.










Risk Analysis
 


Customer
Communication
 





Customer
Evaluation
 

 













Gambar 2.5 Model Spiral

Langkah-langkah pengembangan perangkat lunak dengan menggunakan model Spiral:
  1. Costumer communication
Komunikasi effektif antara pemakai dan pengembang perangkat lunak
  1. Planning
Menentukan segala hal yang berhubungan dengan pengembangan perangkat lunak
  1. Risk Analisis
Menentukan resiko manajemen dan resiko teknik
  1. Engineering
Merekayasa perangkat lunak
  1. Construction and release
Menguji, menginstall dan memberikan segala hal yang dibutuhkan konsumen (dokumentasi, training)
  1. Customer evaluation
Mendapatkan masukan dari konsumen tentang perangkat lunak yang baru dikembangkan.

Keuntungan:
  • Dapat digunakan untuk mengembangkan proyek yang sangat besar

Kerugian:
  • Dibutuhkan biaya yang besar dalam pengembangan karena proyek yang dikembangkan biasanya proyek yang besar

Model 4GT

Pada alat bantu 4GT (Fourth Generation Technique) memungkinkan pengembangan spesifikasi perangkat lunak secara otomatis sesuai dengan yang akan diterjemahkan ke program. Dengan menggunakan 4GT, software engineering memusatkan perhatian hanya kepada spesifikasi perangkat lunak yang diinginkan. Langkah-langkah yang dilakukan pada alat bantu ini adalah:



 













Gambar 2.6 Model 4GT

Keuntungan:
  • Pengembangan dilakukan dengan cepat

Kerugian
  • Dibutuhkan skill yang tinggi untuk mengembangkan proyek karena menggunakan teknik 4GT

Model Kombinasi

Model ini merupakan gabungan dari tiga model sebelumnya yaitu: model waterfall, model prototyping dan model 4GT.



 











Gambar 2.7 Model Kombinasi

Kesimpulan
Tahap pertama dari setiap pengembangan sistem perangkat lunak adalah pemilihan model proses yang sesuai dengan kebutuhan.  Tidak ada model proses yang bisa memenuhi segala jenis kebutuhan sistem perangkat lunak yang sangat beraneka ragam.

Model proses harus mampu untuk menemukan kesalahan dan kesalah-pahaman yang mungkin terjadi sedini mungkin.  Keterlibatan pemakai sangat penting dalam hal ini.


Dalam banyak hal, model yang kaku dan tidak fleksibel sebaiknya digantikan oleh pendekatan-pendekatan yang lebih fleksibel.

·        Model Waterfall                             : berorientasi pada dokumentasi (document)
·        Model Prototyping              : berorientasi pada pemakai (user)
·        Model Exploratory             : berorientasi pada unjuk kerja (performance)
·        Model Evolutionary/Incremental      : berorientasi pada penambahan (increment)
·        Model Transformational                  : berorientasi pada spesifikasi (specification)



Referensi

·         Pressman, R.S. 1997, Software Engineering, a practitioner’s approach, 4th ed., McGraw-Hill. (chapter 2)
·        Jones, G.W. 1990, Software Engineering, John Wiley & Sons, New York ( Chapter 1)

Script Menghapus Data Sekaligus dengan ASP

0 komentar di 19.30 - Edit entry?



Program ini dibuat  mendadak,  sehubungan dengan pertanyaan dari salah seorang anggota milis master.web.id mengenai cara membuat script untuk menghapus beberapa data sekaligus.
Tampilannya kira-kira seperti ini. Anda dapat menghapus lebih dari 1 item atau beberapa item sekaligus.

--
No.Urut
Kode Barang
Nama Barang
1
AM120
Ampethamin
2
GG560
Ganja
3
H560
Heroin
4
BK123
Pil BK
5
MGD091
Magadon
6
SHB145
Shabu-shabu
7
IN450
Inex
8
MY780
Mariyuana
9
PK810
Pil Koplo
10
GG560
Gele
11
EKX450
Ekstacy


Source program ini terdiri dari 2 file yaitu
1.      view.asp
2.      barangharam.mdb

Vew.asp merupakan scirpt dan barangharam.mdb merupakan file dari database access 97.
Script ini akan menampilkan data yang didapat dari file mdb dan kemudian akan menghapus beberapa item data tergantung dari permintaan user. User dapat menghapusnya dengan men’check’ kotak pilihan yang terssedia.


<%
' Iseng-iseng...bantuin temen sesama anggota milis di master.web.id
' bikin cara hapus data sekaligus
' oleh Kukuh TW
' http://www.kukuhtw.com
' kukuhw@kukuhtw.com
'

Seperti biasa, kode dibawah ini berfungsi untuk membuka koneksi dengan database access 97

'DSNless connection to Access Database
Set Conn=Server.Createobject("ADODB.Connection")
DSNtemp = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp = DSNtemp & "DBQ=" & Server.Mappath("barangharam.mdb") & "; "
Conn.Open DSNtemp



strMode        = Request("mode")
strPrgName     = Request.ServerVariables("SCRIPT_NAME")

Select Case strMode
   case "pilih"
     pilih()
   
            case else
            tampil()
                       
end select        %>

Sub Tampl() adalah routine untuk menampilkan semua barang yang ada dalam database. Input type=hidden dengan mode yang memiliki value=”pilih” berfungsi untuk mengganti halaman menampilkan data berpindah ke halaman menghapus item barang


<% sub tampil() %>

<form action="<%=strPrgName%>" method="POST">
<input type="hidden" name="mode" value="pilih"> 
<table border=1>
  <tr>
    <td>--</td>
    <td>No.Urut</td>
    <td>Kode Barang</td>
    <td>Nama Barang</td>
  </tr>
  <%
                          sql = "select * from Table_Barang_Haram"
        set rs = Conn.Execute(sql)
           
            do while not rs.eof
            NoUrut=NoUrut+1
            Var_ID=RS("ID")
            Var_Kode=Rs("KodeBarang")
            Var_Barang=RS("namabarang")
            %>     
            <tr>
   <Td>


Gunakan Input type=”checkbox” dan nama variabel “pilihan_n”  dan value=”nama_barangnya” untuk mendeteksi, item-item apa saja yang diberi tanda check oleh user.

   <input type="checkbox" name="pilihan_<%=NoUrut%>" value="<%=var_Barang%>" >
   <input type=hidden name="Delete_<%=var_ID%>" value=<%=var_Barang%>>
  
   </td>
            <Td><%=NoUrut%></td>
            <Td><%=Var_kode%></td>
            <Td><%=Var_Barang%></td>

<% rs.movenext
Loop
%>
    </tr>
   </table><br>  
   <input type="hidden" name="NoUrut" value=<%=NoUrut%>>
   <input type="submit" value="    Hapus !   ">
   </form>        

<% end sub %>



Sub Pilih berfungsi untuk menampilkan halaman yang telah dipilih oleh user agar barang yang diberi tanda ‘check’ oleh user dapat dihapus


<% sub pilih()

AngkaTerakhir = request("NoUrut")
response.write AngkaTerakhir


gunakan command For…Next untuk menghapus item barang

For K=1 to AngkaTerakhir
IDHAPUS = request.form("Pilihan_" & K)

              sqlhapus = "Delete * FROM Table_Barang_Haram " _
     & "WHERE NamaBarang = '" & IDHAPUS & "'"
    
     set rs2 = Conn.execute(sqlhapus)
     Response.write sqlhapus   
     Response.write "<br>"

Next
     
%>

<p>

<a href="view.asp">Kembali ke halaman depan</a>

</font>

<%

conn.close
end sub %>

Program Selesai !!!..Terima Kasih banyak untuk Master.web.id !!

source

By Kukuh TW
mail:kukutw@kukuhtw.com