Pages

Jumat, 03 Juni 2016

PENGERTIAN SDLC DAN FUNGSI DARI SDLC

Apa itu SDLC ?
(Systems Development Life Cycle ) merupakan siklus hidup pengembangan system. Dalam rekayasa system dan rekayasa perangkat lunak, SDLC berupa proses dalam pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem tersebut.
Dalam rekayasa perangkat lunak, konsep SDLC mendasari berbagai jenis metodologi pengembangan perangkat lunak. Metodologi ini membentuk suatu kerangka kerja untuk perencanaan dan pengendalian pembuatan sistem informasi, yaitu proses yang di pengembangan oleh perangkat lunak.
Pengembangan SDLC adalah proses yang digunakan oleh analis system untuk mengembangkan di sistem informasi, termasuk persyaratan, validasi, pelatihan, dan pengguna (stakeholder) kepemilikan. Setiap SDLC harus menghasilkan  berkualitas tinggi yang memenuhi atau melampaui harapan pelanggan, mencapai penyelesaian dalam waktu dan perkiraan dalam  biaya, bekerja secara efektif dan efisien di saat ini dan direncanakanTeknologi Informasi infrastruktur  dan mudah untuk mempertahankan dan biaya efektif.

Fungsi SDLC ?
Untuk menggambarkan tahapan-tahapan utama dan langkah-langkah dari tahapan yang secara garis besar terbagi dalam fase fase utama dalam SDLC, yaitu  :
Perencanaan :  Mengapa Digembangkan Sistem?
Analisis :  Siapa, apa, kapan dan dimana sistem diterapkan?
Perancangan :  Bagaimana kerja sistem?
Implementasi :  Bagaimana Sistem Memasang/diinstall?
Ø Perencanaan :
· Mengidentifikasikan Nilai Bisnis
· Analisis Kelayakan
· Membuat Rencana Kerja
· Merancang  Staff
· Mengontrol dan Mengarahkan Projek
Ø Analisis :
· Analisis masalah
· Mencari informasi yang tergantung dengan sistem
· Menentukan model proses
· Menentukan model data
Ø Perancangan  :
· Perancangan Proses secara Fisik
· Merancangan Arsitektur Sistem
· Perancangan Interface
· Perancangan Basis Data dan Berkas
· Perancangan Program
Ø Implementasi:
· Construction
· Instalation
Setiap kegiatan dalam SDLC dapat dijelaskan melalui tujuan (purpose) dan hasil kegiatannya (deliverable). Apabila kegiatan utama tersebut dijabarkan ke dalam langkah-langkah yang lebih rinci dapat dilihat gambarkan seperti berikut :

+---------------------------------------------------------------------+
:         ANALYSIS        :       DESIGN         :  IMPLEMENTATION    :
+---------------------------------------------------------------------
                          :                      :
     +---------------+    :                      :
 +-->:     Problem   :    :                      :
 |   :    Detection  :    :                      :
 |   +---------------+  +-----------+          +-----------+
 +---------> |          | :         |          | :         |
 |   +---------------+  | : +---------------+  | : +---------------+
 |   :    Initial    :  | : :    Output     :  | : : Programming / :
 |   : Investigation :  | : :               :  | : :     test      :
 |   +---------------+  | : +---------------+  | : +---------------+
 +---------> |          | :         |          | :         |
 |   +---------------+  | : +---------------+  | : +---------------+
 |   :  Requirements :  | : :     Input     :  | : :  Training /   :
 |   :    Analysis   :  | : :               :  | : :    Other      :
 |   +---------------+  | : +---------------+  | : +---------------+
 +---------> |          | :         |          | :         |
     +---------------+  | : +---------------+  | : +---------------+
     : Generation of :  | : :     Files     :--+ : :    System     :
     : Alternatives  :  | : :               :    : :  Change Over  :
     +---------------+  | : +---------------+    : +---------------+
             |          | :                      :
     +---------------+  | :                      :
     : Selection of  :--+ :                      :
     : Proper System :    :                      :
     +---------------+    :                      :

System Development Methodology adalah  rangkaian langkah untuk mengimplementasikan SLDC itu sendiri. Dalam dunia rekayasa perangkat lunak terdapat empat buah metodologi dalam penerapan SLDC, yakni :
Waterfall Development Methodology
Parallel Development Methodology
Rapid Application Development
Agile Development: Extreme Programming
Metodologi tersebut tidak ada yang paling bagus. Semua Metodologi mempunyai kelebihan dan kekurangan. Tergantung suatu kelompok pengembang perangkat lunak menggunakan metode apa yang paling mencocok dengan kondisi lingkungan pengembangan perangkat lunak tersebut.

Waterfall Development Methodology
Waterfall Development Methodology merupakan suatu cara berkembang software yang fase – fasenya berurutan. Sebuah fase tidak bisa dikerjakan sebelum fase sebelumnya yang telah selesai dikerjakan.
Kelebihan dari Waterfall Development Methodology adalah :
Proses pengidentifikasian sistem memerlukan waktu yang sangat lama sebelum fase programming dimulai
Meminimalisasi pengubahan sistem pada saat memproses pengembangan perangkat lunak
Kekurangan dari Waterfall Development Methodology adalah :
Fase perencanaan / design harus dilakukan pada oleh paper yang khusus sebelum fase programming dimulai
Terjadi selisih waktu yang cukup lama diantara pengajuan sistem dan pembaharuan sistem
Parallel Development Methodology
Parallel Development Methodology merupakan suatu cara pada SDLC yang melakukanpada fase design dan implementation secara paralel.
Kelebihan dari Parallel Development Methodology adalah :
1. Meminimalisasi waktu penjadwalan
2. Meminimalisasi kesempatan untuk dikerjakan dari awal
Kekurangan dari Parallel Development Methodology adalah :
1. Masih menggunakan dokument di kertas
2. Menggabungkan subproyek yang memerlukan suatu keahlian khusus. Biasanya banyak terjadi kegagalan pada saat proses penggabungannya

Rapid Application Development
Rapid Application Development merupakan suatu cara penerapan SDLC dengan membuat suatu software prototype terlebih dahulu dan kemudian dipresentasikan ke costumer. Jika costumer menyetujuinya, maka software akan dikembangkan lebih lanjut.
Kelebihan Rapid Application Development adalah :
1. Pengguna dapat memperoleh / menggunakan sistem lebih awal
2. Pengguna dapat merencanakan beberpa tambahan untuk versi setelahnya
Kekurangan Rapid Application Development adalah :
1. Pengguna bekerja dengan sistem yang sebenarnya belum selesai secara keseluruhan

Agile Development: Extreme Programming
Agile Development: Extreme Programming merupakan suatu pengerjaan perangkat lunak secara cepat. Metode ini sangat cocok untuk proyek perangkat lunak yang membutuhkan waktu lebih instan dalam pengembangannya.
Kelebihan dari Agile Development: Extreme Programming adalah :
1. Hasil bisa didapat dalam waktu yang sangat cepat
2. Bekerja lebih baik dalam projek dengan tidak ada perubahan yang tak tentu
Kekurangan dari Agile Development Extreme Programming adalah :
1. Membutuhkan kedisiplinan tinggi
2. Tepat hanya jika dilakukan di projek kecil
3. Membutuhkan lebih terbanyak inputan dari pengguna
Untuk menentukan metode mana yang lebih cocok diterapkan dalam pengembangan proyek dalam perangkat lunak, maka harus memperhatikan hal berikut :
Clear user requirements
Familiarity with technology
Complexity of system
Reliability of system
Time schedule

Schedule visibility