Sabtu, 28 September 2013

Resume TDA Part 2 :)



SDLC, Prototype dan Waterfall

SDLC
System Development Lyfe Cycle (SDLC) adalah keseluruhan proses dalam membangun sistem melalui beberapa langkah. Metode pengembangan perangkat lunak dikenal dengan istilah SDLC (Software Development Life Cycle). Metodologi ini menjadi perhatian sangat istimewa pada proses rekayasa perangkat lunak. Karena dengan metodologi SDLC yang digunakan akan sangat menentukan sukses tidaknya proyek software.
Perbandingan tentang kelebihan dan kekurangan model Waterfall dan Prototype pada Software Development Life Cycle (SDLC) ini dijelaskan berikut ini:

1.  Waterfall
Waterfall, merupakan SDLC tertua karena sifatnya yang natural. Urutan SDLC waterfall ini bersifat serial dari proses perencanaan, analisa, desain, dan implementasi pada sistem. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan.
Kelebihan :
-   Merupakan model pengembangan paling handal dan paling lama digunakan.
-   Cocok untuk system software berskala besar.
-   Cocok untuk system software yang bersifat generic.
-   Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
Kekurangan :
-   Persyaratan system harus digambarkan dengan jelas.
-   Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
-  Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan


Model rekayasa piranti lunak yang diuraikan oleh Roger S. Pressman (1992: 24) salah satunya adalah waterfall model. Model ini memberikan pendekatan-pendekatan sistematis dan berurutan bagi pengembangan piranti lunak.
Berikut adalah gambar pengembangan sistem perangkat lunak dengan proses SDLC (System Development Life Cycle) dengan model waterfall.
Penjelasan dari tahap-tahap waterfall model adalah sebagai berikut:

• Perancangan Sistem (System Enginering)
Perancangan sistem sangat diperlukan, karena piranti lunak biasanya merupakan bagian dari suatu sistem yang lebih besar. Pembuatan sebuah piranti lunak dapat dimulai dengan melihat dan mencari apa yang dibutuhkan oleh sistem. Dari kebutuhan sistem tersebut akan diterapkan kedalam piranti lunak yang dibuat.

• Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis)
Merupakan proses pengumpulan kebutuhan piranti lunak. Untuk memahami dasar dari program yang akan dibuat, seorang analisis harus mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan, kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka pemakai piranti lunak tersebut.

• Perancangan (Design)
Perancangan piranti lunak merupakan proses bertahap yang memfokuskan pada empat bagian penting, yaitu: Struktur data, arsitektur piranti lunak, detil prosedur, dan karakteristik antar muka pemakai.

• Pengkodean (Coding)
Pengkodean piranti lunak merupakan proses penulisan bahasa program agar piranti lunak tersebut dapat dijalankan oleh mesin.

• Pengujian (Testing)
Proses ini akan menguji kode program yang telah dibuat dengan memfokuskan pada bagian dalam piranti lunak. Tujuannya untuk memastikan bahwa semua pernyataan telah diuji dan memastikan juga bahwa input yang digunakan akan menghasilkan output yang sesuai.
Pada tahap ini pengujian ini dibagi menjadi dua bagian, pengujian internal dan pengujian eksternal. Pengujian internal bertujuan menggambarkan bahwa semua statement sudah dilakukan pengujian, sedangkan pengujian eksternal bertujuan untuk menemukan kesalahan serta memastikan output yang dihasilkan sesuai dengan yang diharapkan.

• Pemeliharaan (Maintenance)
Proses ini dilakukan setelah piranti lunak telah digunakan oleh pemakai atau konsumen. Perubahan akan dilakukan jika terdapat kesalahan, oleh karena itu piranti lunak harus disesuaikan lagi untuk menampung perubahan kebutuhan yang diinginkan konsumen.

Contoh Proyek menggunakan Metode Waterfall:

Sebagai contoh sebuah perusahaan yang ingin meramalkan dan mengelola pertumbuhan bisnisnya. Jika perusahaan memprediksi bahwa akanmengatasi sistem akuntansi internal dan memutuskan untuk mengembangkan program akuntansi baru, ini adalah beberapa tingkat yang berbeda dari banyak proyek yaitu :
  1. Pada tahap analysis dan definisi kebutuhan, programmer mengumpulkan
    kebutuhan system secara lengkap, karena akan dibutuhkan pada tahap
    selanjutnya.
  2. Pada tahap perancangan, programmer harus mendesain interface program
    dan juga database yang akan digunakan. Pada tahap ini seorang programmer
    haruslah teliti, karena hasil system secara umum akan terlihat dari hasil
    rancangan.
  3. Pada tahap implementasi dan pengetesan, desain system akan dibuat
    menggunakan bahasa pemrograman yang telah ditentukan, kemudian diuji
    coba apakah telah berjalan atau masih ada kesalahan.
  4. Integrasi dan Sistem Testing, program yang sudah jadi lalu di tes secara
    keseluruhan, apakah program yang di buat sudah sesuai dengan yang di
    inginkan perusahaan tersebut atau belum.
  5. Pada tahap operasi dan perawatan, seorang programmer akan mengoperasikan
    hasil system kedalam perusahaan. Jika pada tahap pengoperasian system sudah
    berjalan tanpa ada kesalahan system, maka proyek bisa dikatakan berhasil,
    selanjutnya adalah tahap perawatan yang akan mengadaptasi system dengan
    situasi sebenarnya
2.  Model prototyping
Prototype merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem. Prototyping, dimulai dengan pengumpulan kebutuhan, mendefinisikan objektif keseluruhan dari software, mengidentifikasikan segala kebutuhan, kemudian dilakukan “perangcangan kilat” yang difokuskan pada penyajian aspek yang diperlukan.
Kelebihan :
-     Prototype melibatkan user dalam analisa dan desain.
-     Punya kemampuan menangkap requirement secara konkret daripada secara abstrak.
-     Untuk digunakan secara standalone.
-     Digunakan untuk memperluas SDLC.
-    Mempersingkat waktu pengembangan Sistem Informasi
Kekurangan :
-   Proses analisis dan perancangan terlalu singkat.
-   Mengesampingkan alternatif pemecahan masalah.
-   Bisanya kurang fleksible dalam mengahdapi perubahan.
-   Protitype yang dihasilkan tidak selamanya mudah dirubah
-  Protype terlalu cepat selesai

 SDLC – Agile Development
Produk Sistem Informasi juga membutuhkan tahapan-tahapan terlebih dahulu dalam proses pembangunannya, dan dalam bahasa kerennya disebut SDLC – System Development Life Cycle. SDLC sendiri secara mendasar terdiri dari empat tahapan, yaitu perencanaan, analisis, desain, dan implementasi. Setiap tahapan akan mendapatkan input dan menghasilkan output yang juga akan menjadi input dalam tahapan selanjutnya. Sedikit penjelasan soal tahapan tersebut :
1. Perencanaan. Output : rencana product/project
  • Inisialisasi dan analisa keuntungan (ROI)
  • Management project, terkait sumber daya, sumber dana dan rencana-rencana kerja
2. Analisis. Output : blue print / FSD Dokumen
  • Pengumpulan data
  • Strategi pengerjaan
  • Detail kebutuhan yang harus dipenuhi
3. Desain. Output : spesifikasi teknis sistem
  • Desain architecture teknologi yang digunakan
  • Desain User Interface
  • Desain data storage
  • Desain flow chart system
  • dll
4. Implementasi. Output : produk sistem informasi
  • Pembangunan System
  • Data Conversion
  • Data Migration
  • System Convertion
  • Maintenance & Support system
SDLC, secara umum dapat dikategorikan menjadi 3 jenis :

1. Terstrukur :   dalam jenis ini, sebuah tahapan akan dijalankan setelah tahapan sebelumnya selesai. Beberapa SDLC yang termasuk jenis ini adalah SDLC Waterfall dan Pararel ( Waterfall dengan membagi-bagi project menjadi sub-sub project yang lebih kecil)

2. Rapid Application Programming : bagian produk yang mampu dikerjakan dengan cepat akan dibangun terlebih dahulu untuk disampaikan ke pengguna/user. Phased Development (pengembangan bertahap) dan model Prototype adalah beberapa SDLC yang masuk dalam jenis ini

3. Agile : membuang beberapa tahapan yang tidak mempunyai nilai/value dan menekankan pada pengembangan sederhana dan iterative/berulang. Beberapa jenis Agile SDLC antara lain Extreme Programming, Kanban, Scrum, DSDM, FDD, OpenUP, dll.

Dari berbagai jenis SDLC tersebut tentunya tidak mudah untuk menentukan methode SDLC mana yang akan dipakai dalam sebuah pengembangan product system informasi. Banyak faktor yang akan mempengaruhi dalam penentuan tersebut, antara lain:
1. kejelasan kebutuhan pengguna
2. pengetahuan user terhadapa teknologi
3. kompleksitas system
4. waktu
5. kejelasan jadwal
6. sering nya perubahan terhadap product

Mengapa Agile ???

Karena Agile lebih menawarkan fleksibilitas dalam menangani perubahan, dan dalam era sekarang ini, dimana perubahan adalah sebuah keharusan maka mau tidak mau kita harus “agile” terhadap perubahan tersebut. Organisasi/team yang tanggap terhadap perubahan akan menjadi juara sedangkan yang tetap lambat (penuh procedural) menghadapinya akan tertindas dengan sendirinya.

Sumber ::