Jumat, 20 Januari 2017

Pengembangan Aplikasi



Pengembangan Aplikasi








       Rekayasa perangkat lunak sendiri sebenarnya suatu disiplin ilmu yang menjadi bagian dari ilmu komputer dan sampai sekarang masih terus dikembangkan.
 

           Ilmu rekayasa perangkat lunak berbeda dari ilmu rekayasa produk nyata yang dibuat secara massal dan seragam, misalnya produk pabrikan seperti mobil, televisi, biscuit kaleng, sepatu, dan produk produk lain yang semacam. Perbedaan ini muncul karena adanya perbedaan karakteristik perangkat lunak dibanding produk lainnya. Karakteristik khusus dari perangkat lunak adalah sebagai berikut.
1. Perangkat lunak tidak pernah usang, meskipun sudah digunakan selama bertahun-tahun. Pengguna perangkat lunak mungkin mengalami kebosanan tetapi sebenarnya kondisi perangkat lunak akan tetap sama seperti awal asalkan kondisi hardware tidak mengalami perubahan.
2. Perangkat lunak bukan produk pabrikan massal (manufactured product), tetapi hasil pengembangan dan rekayasa (developed and engineered product).
3. Meski industri pada umumnya mengarah pada perakitan berbasis komponen, kebanyakan perangkat lunak masih dibuat berdasar keinginan pemesan (custom built).
 

            Saat membuat perangkat lunak, demi menghasilkan perangkat lunak yang berkualitas baik, sangat penting untuk menerapkan sederetan tahap pengembangan perangkat lunak. Sederetan tahap ini disebut dengan proses perangkat lunak. Proses perangkat lunak bertindak sebagai kerangka utama.
 

           Untuk menerapkan kerangka utama ini diperlukan suatu strategi yang disebut dengan model proses. Model proses adalah sebuah paradigma atau konsep teknis yang menjadi acuan saat membuat sebuah perangkat lunak. Ada banyak model proses tetapi ada model proses yang menjadi induk dari semua model proses yang ada. Diantara model proses yang menjadi induk anatara lain adalah model air terjun (waterfall model) dan model purwarupa (prototyping model). 



Metode Waterfall
 

       Model pengembangan software yang diperkenalkan oleh Winston Royce pada tahun 70-an ini merupakan model klasik yang sederhana dengan aliran sistem yang linier —keluaran dari tahap sebelumnya merupakan masukan untuk tahap berikutnya. Metode waterfall adalah suatu proses pengembangan perangkat lunak berurutan, di mana kemajuan dipandangsebagai terus mengalir ke bawah (seperti air terjun) melewati fase-fase perencanaan, pemodelan, implementasi(konstruksi), dan pengujian. Tahapan Metode Waterfall Dalam pengembangannya metode waterfall memiliki beberapa tahapan yang runtut:
 
Tahap requirement atau spesifikasi kebutuhan sistem adalah analisa kebutuhan sistem yang dibuat dalam bentuk yang dapat dimengerti oleh klien dan staf pengembang. Dalam tahap ini klien atau pengguna menjelaskan segala kendala dan tujuan serta mendefinisikan apa yang diinginkan dari sistem. Setelah dokumen spesifikasi disetujui maka dokumen tersebut menjadi kontrak kerja antara klien dan pihak pengembang.
Tahap selanjutnya adalah desain, dalam tahap ini pengembang akan menghasilkan sebuah arsitektur sistem secara keseluruhan, dalam tahap ini menentukan alur perangkat lunak hingga pada tahapalgoritma yang detil.
Selanjutnya tahap implementasi, yaitu tahapan dimana keseluruhan desain diubah menjadi kode-kode program. kode program yang dihasilkan masih berupa modul-modul yang selanjutnya akan di integrasikanmenjadi sistem yang lengkap untuk meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi.
Tahap selanjutnya adalah verifikasi oleh klien, klien menguji apakah sistem tersebut telah sesuai dengan kontrak yang telah disetujui.
Tahap akhir adalah pemeliharaan yang termasuk diantaranya instalasi dan proses perbaikan sistem sesuai kontrak.



Manfaat Metode Waterfall
 

    Keunggulan model pendekatan pengembangan software dengan metode waterfall adalah pencerminan kepraktisan rekayasa, yang membuat kualitas software tetap terjaga karena pengembangannya yang terstruktur dan terawasi.Disisi lain model ini merupakan jenis model yang bersifat dokumen lengkap, sehingga proses pemeliharaan dapat dilakukan dengan mudah. Akan tetapi dikarenakan dokumentasi yang lengkap dan sangat teknis, membuat pihak klien sulit membaca dokumen yang berujung pada sulitnya komunikasi antar pengembang dan klien. Dokumentasi kode program yang lengkap juga secara tak langsung menghapus ketergantungan pengembang terhadap pemrogram yang keluar dari tim pengembang. Hal ini sangat menguntungkan bagi pihak pengembang dikarenakan proses pengembangan perangkat lunak tetap dapat dilanjutkan tanpa bergantung pada pemrogram tertentu. 
 


Kelemahan Metode Waterfall 
 

      Kelemahan pengembangan software dengan metode waterfall yang utama adalah lambatnya proses pengembangan perangkat lunak. Dikarenakan prosesnya yang satu persatu dan tidak bisa diloncat-loncatmenjadikan model klasik ini sangat memakan waktu dalam pengembangannya. Disisi lain, pihak klien tidak dapatmencoba sistem sebelum sistem benar-benar selesai pembuatannya. Kelemahan yang lain adalah kinerja personil yang tidak optimal dan efisien karena terdapat proses menunggu suatu tahapan selesai terlebih dahulu.
 

       Secara keseluruhan model pendekatan pengembangan software dengan metode waterfall cocok untuk pengembangan software / perangkat lunak dengan tingkat resiko yang kecil, dan memiliki ukuran yang kecil serta waktu pengembangan yang cukup panjang. Model ini tidak disarankan untuk ukuran perangkat lunak yang besar dantingkat resiko yang besar.



Metode PROTOTYPING
 

       
       Prototyping adalah proses pembuatan model sederhana software yang mengijinkan pengguna memiliki gambaran dasar tentang program serta melakukan pengujian awal.
 

  Prototyping memberikan fasilitas bagi pengembang dan pemakai untuk saling berinteraksi selama proses pembuatan, sehingga pengembang dapat dengan mudah memodelkan perangkat lunak yang akan dibuat. Prototyping merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Model tersebut dapat berupa tiga bentuk :

 Prototipe kertas atau model berbasis komputer yang menjelaskan bagaimana interaksi antara pemakai dan komputer.
Prototipe yang mengimplementasikan beberapa bagian fungsi dari perangkat lunak yang sesungguhnya. Dengan cara ini pemakai akan lebih mendapatkan gambaran tentang program yang akan dihasilkan, sehingga dapat menjabarkan lebih rinci kebutuhannya.
Menggunakan perangkat lunak yang sudah ada. Seringkali pembuat software memiliki beberapa program yang sebagian dari program tersebut mirip dengan program yang akan dibuat.




Terdapat tiga pendekatan utama prototyping, yaitu:

1. THROW-AWAY
Prototype dibuat dan dites. Pengalaman yang diperoleh dari pembuatan prototype digunakan untuk membuat produk akhir (final), kemudian prototype tersebut dibuang (tak dipakai).
2. INCREMENTAL
Produk finalnya dibuat sebagai komponen-komponen yang terpisah. Desain produk finalnya secara keseluruhan haya ada satu tetapi dibagi dalam komonen-komponen lebih kecil yang terpisah (independent).
3. EVOLUTIONARY
Pada metode ini, prototipenya tidak dibuang tetapi digunakan untuk iterasi desain berikutnya. Dalam hal ini, sistem atau produk yang sebenarnya dipandang sebagai evolusi dari versi awal yang sangat terbatas menuju produk final atau produk
akhir.
 


Kelunggulan Metode Protoryping
 

   Keunggulan Prototyping adalah Adanya komunikasi yang baik antara pengembang dan pelanggan. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan agar dapat berperan aktif dalam pengembangan system dan juga Lebih menghemat waktu dalam pengembangan sistem. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya

Kelemahan Metode Protyping
   Sedangkan kelemahan prototyping adalah Pelanggan tidak melihat bahwa perangkat lunak belum mencerminkan kualitas perangkat lunak secara keseluruhan dan belum memikirkan peneliharaan dalam jangka waktu yang lama. Pengembang biasanya ingin cepat menyelesaikan proyek sehingga menggunakan algoritma dan bahasa pemrograman sederhana. Hubungan pelanggan dengan komputer mungkin tidak menggambarkan teknik perancangan yang baik.