SIKLUS HIDUP SISTEM
SIKLUS
HIDUP SISTEM
Dasar
Perencanaan Sistem Informasi Berbasis Komputer
Implementasi sistem
informasi berbasis komputer merupakan aktivitas yang berskala luas yang
melibatkan orang dan fasilitas yang banyak, uang dan peralatan dalam jumlah
yang besar, dan waktu yang panjang.
Perencanaan Sistem
Informasi Berbasis Komputer juga mempunyai manfaat, yaitu:
- Memberikan dasar pengontrolan.
- Mendefinisikan lingkup proyek;
- Mengatur urutan tugas;
- Mengetahui bidang masalah yang potensial;
Siklus
Hidup Sistem
PENGERTIAN
SIKLUS HIDUP SISTEM
Metodologi adalah
suatu cara yang disarankan untuk melakukan suatu hal. Pendekatan sistem adalah
metodologi dasar untuk memecahkan masalah.
SIKLUS
HIDUP SISTEM (System Life Cycle-SLC)
System Life Cycle
(SLC) adalah proses evolusi yang diikuti oleh pelaksanaan system informasi
dasar-dasar atau subsistem. Telah ada pendekatan implementasi tradisional
sepanjang era komputer, dan ada perjanjian umum antara ahli-ahli komputer
sehubungan dengan tugas-tugas yang dilaksanakan.
Adalah penerapan
pendekatan sistem untuk pengembangan sistem atau subsistem informasi berbasis
komputer. Sering disebut sebagai pendekatan air terjun (waterfall approach)
bagi pengembangan dan penggunaan sistem.
Berbagai metodologi
SLC telah dikembangkan untuk memandu proses yang terlibat termasuk model air
terjun (asli metode SLC), pengembangan aplikasi cepat (RAD), pengembangan
aplikasi bersama (JAD), maka air mancur model dan spiral model.Umumnya,
beberapa model digabungkan ke dalam beberapa jenis hibrida metodologi.
Dokumentasi sangat penting berapapun jenis model dipilih atau dibuat untuk
setiap aplikasi, dan biasanya dilakukan bersamaan dengan proses pembangunan.
Beberapa metode kerja lebih spesifik untuk jenis proyek, tetapi dalam analisis
terakhir, faktor yang paling penting bagi keberhasilan suatu proyek dapat
seberapa dekat rencana tertentu diikuti.
Beberapa SLC terdapat
dalam perusahaan yang menggunakan komputer, mungkin ada seratus atau lebih.
Pada kenyataannya SLC adalah sarana yang digunakan oleh manajemen untuk
melaksanakan rencana strategis. Konsep life cycle menjadikan segala sesuatu
yang tumbuh, menjadi dewasa setiap waktu dan akhirnya mati. Pola ini digunakan
untuk sistem dasar komputer seperti subsistem pemrosesan data atau SSD.
System Life Cycle
terdiri dari lima fase yaitu :
1.
Fase Perencanaan
Fase ini dimulai
dengan mendefinisikan masalah dan dilanjutkan dengan sistem penunjukan objektif
dan paksaan. Di sini sistem analis memimpin studi yang mungkin terjadi dan
mengemukakan pelaksanaannya pada manajer.
2.
Fase Analisis
Fase ini mempunyai
tugas penting yaitu menunjukkan kebutuhan pemakai informasi dan menentukan
tingkat penampilan sistem yang diperlukan untuk memuaskan kebutuhan tersebut.
Fase ini meliputi penetapan jangkauan proyek, mengenal resiko, mengatur
rangkaian tugas, dan menyediakan dasar untuk kontrol. Analisis mengumpulkan
persyaratan untuk sistem. Tahap ini meliputi rinci kajian terhadap kebutuhan
bisnis organisasi.Pilihan untuk mengubah proses bisnis dapat dianggap. Berfokus
pada desain tingkat tinggi seperti desain, program apa yang diperlukan dan
bagaimana mereka akan berinteraksi, desain tingkat rendah (bagaimana setiap
program akan bekerja), desain interface (antarmuka apa saja yang akan terlihat
seperti) dan data desain (data yang akan diperlukan). Selama tahap ini,
perangkat lunak dari keseluruhan struktur yang ditetapkan. Analisis dan Desain
sangat krusial dalam pembangunan seluruh siklus. Any glitch dalam tahap
desain dapat menjadi sangat mahal untuk memecahkan di kemudian tahap
pengembangan perangkat lunak. Banyak perawatan dilakukan selama tahap ini. Yang
logis sistem produk dikembangkan di tahap ini.
3.
Fase Desain
Fase Desain ini
meliputi penentuan pemrosesan dan data yang dibutuhkan oleh sistem yang baru,
dan pemilihan konfigurasi terbaik dari hardware yang menyediakan desain. Desain
system adalah ketentuan mengenal proses dan data yang dibutuhkan oleh sistem
yang baru. Proses desain akan menerjemahkan syarat kebutuhan ke sebuah
perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding.
Proses ini berfokus pada : struktur data, arsitektur perangkat lunak,
representasi interface, dan detail (algoritma) prosedural. Merancang alir kerja
(workflow) dari sistem dalam bentuk diagram alir (flowchart) atau Data Flow
Diagram (DFD). Merancang basis data (database) dalam bentuk Entity Relationship
Diagram (ERD) bisa juga sekalian membuat basis data secara fisik. Merancang
input ouput aplikasi (interface) dan menentukan form-form dari setiap modul
yang ada. Merancang arsitektur aplikasi dan jika diperlukan menentukan juga
kerangka kerja (framework) aplikasi. Pada tahapan ini atau sebelumnya sudah
ditentukan teknologi dan tools yang akan digunakan baik selama tahap pengembangan
(development) maupun pada saat implementasi (deployment).
4.
Fase Pelaksanaan / Implementasi
Fase ini melibatkan
beberapa spesialis informasi tambahan yang mengubah desain dari bentuk kertas
menjadi satu dalam hardware, software, dan data. Pelaksanaan adalah penambahan
dan penggabungan antara sumber-sumber secara fisik dan konseptual yang
menghasilkan pekerjaan sistem. Dalam tahap ini, desain yang sudah diterjemahkan
ke dalam kode.Program komputer yang ditulis menggunakan bahasa pemrograman
konvensional atau aplikasi generator. Alat pemrograman seperti kompiler, Juru,
Debuggers digunakan untuk menghasilkan kode. Berbagai bahasa pemrograman
tingkat tinggi seperti C, C ++, Pascal, Java digunakan untuk coding. Sehubungan
dengan jenis aplikasi, hak bahasa pemrograman yang dipilih.
5.
Fase Pemakaian / Penggunaan
Selama fase
penggunaan, audit memimpin pelaksanaannya untuk menjamin bahwa sistem
benar-benar dikerjakan, dan pemeliharaannya pun dilakukan sehingga sistem dapat
menyediakan kebutuhan yang diinginkan.
Pada fase 1-3 adalah
siklus hidup pengembangan system. Tahap 4 adalah tahap penggunaan
(implementasi) yang berlangsung hingga tiba waktunya untuk merancang system itu
kembali jika diperlukan. Proses merancang kembali akan mengakibatkan
berulangnya siklus hidup sistem secara keseluruhan.
Macam-macam
metode siklus hidup sistem .
PROTOTYPING
Prototipe memberikan
ide bagi pembuat maupun pemakai potensial tentang cara sistem akan berfungsi
dalam bentuk lengkapnya. Proses menghasilkan prototipe disebut dengan Prototyping.
Jenis-Jenis Prototipe
sistem operasional®Prototipe jenis I
Prototipe jenis II sbg ceak biru bagi sistem operasional®
PENGEMBANGAN PROTOTIPE JENIS I
1. Mengidentifikasikan kebutuhan pemakai
2. Mengembangkan prototipe
3. Menentukan apakah prototipe dapat diterima
4. Menggunakan prototipe
Jenis-Jenis Prototipe
sistem operasional®Prototipe jenis I
Prototipe jenis II sbg ceak biru bagi sistem operasional®
PENGEMBANGAN PROTOTIPE JENIS I
1. Mengidentifikasikan kebutuhan pemakai
2. Mengembangkan prototipe
3. Menentukan apakah prototipe dapat diterima
4. Menggunakan prototipe
MENGEMBANGKAN
PROTOTIPE JENIS II
4. Mengkodekan sistem operasional
5. Menguji sistem operasional
6. Menentukan jika sistem operasional dapat diterima
7. Menggunakan sistem operasional
4. Mengkodekan sistem operasional
5. Menguji sistem operasional
6. Menentukan jika sistem operasional dapat diterima
7. Menggunakan sistem operasional
Daya Tarik Prototyping
• Komunikasi ant. Analis sistem dan pemakai baik
• Analis dpt bekerja lebih baik
• Pamakai berperan aktif
• Spesialis informasi dan pemakai efisien dlm waktu
• Penerapan menjadi mudah
• Komunikasi ant. Analis sistem dan pemakai baik
• Analis dpt bekerja lebih baik
• Pamakai berperan aktif
• Spesialis informasi dan pemakai efisien dlm waktu
• Penerapan menjadi mudah
Potensi Kegagalan
Prototyping
• Tergesa-gesa dlm mendefinisikan mslh, evaluasi alternatif dokumentasi
• Mengharapkan sesuatu yg tdk realistis dr sistem operasional
• Prototipe jenis I tdk seefisiensi sistem yg dikodekan dlm bhs program
• Hubungan komp-manusia tdk mencerminkan tek.perancangan yg baik
• Tergesa-gesa dlm mendefinisikan mslh, evaluasi alternatif dokumentasi
• Mengharapkan sesuatu yg tdk realistis dr sistem operasional
• Prototipe jenis I tdk seefisiensi sistem yg dikodekan dlm bhs program
• Hubungan komp-manusia tdk mencerminkan tek.perancangan yg baik
Penerapan yg
Berprospek Baik untuk Prototyping
• Risiko tinggi
• Interaksi pemakai penting
• Jumlah pemakai banyak
• Penyelesaian yg cepat diperlukan
• Perkiraan tahap penggunaan sistem yg pendek
• Sistem yg inovatif
• Perilaku pemakai yg sukar ditebak
• Risiko tinggi
• Interaksi pemakai penting
• Jumlah pemakai banyak
• Penyelesaian yg cepat diperlukan
• Perkiraan tahap penggunaan sistem yg pendek
• Sistem yg inovatif
• Perilaku pemakai yg sukar ditebak
Tahap – tahap Siklus Hidup Sistem :
Perencanaan.
Analisis.
Perancangan. Penerapan / Implementasi. Penggunaan.
EKSEKUTIF
menetapkan kebijakan dan membuat rencana yang mengatur pemakaian komputer. KOMITE PENGARAH SIM
mengelola siklus hidup pengembangan sistem dalam perusahaan.
Fungsi Komite Pengarah SIM adalah Menetapkan kebijakan yang memastikan dukungan komputer untuk mencapai tujuan strategis perusahaan.
Menjadi Pengendali Keuangan; berwenang memberi persetujuan bagi semua permintaan dana yang berhubungan dengan penggunaan komputer.
Menyelesaikan pertentangan yang timbul sehubungan dengan prioritas penggunaan komputer.
Langkah – langkah dalam Tahap Perencanaan
1. Menyadari masalah.
2. Mendefinisikan masalah.
3. Menentukan tujuan sistem.
4. Mengidentifikasi kendala – kendala sistem.
5. Membuat studi kelayakan ; tinjauan sekilas pada faktor – faktor utama yang akan mempengaruhi kemampuan sistem untuk mencapai tujuan – tujuan yang diinginkan. 6.Mempersiapkan usulan penelitian sistem. Menyetujui atau menolak penelitian proyek. 7. Menetapkan mekanisme pengendalian.
Langkah – langkah dalam Tahap Analisis:
1. Penelitian sistem.
2. Mengorganisasikan tim proyek.
3. Mendefinisikan kebutuhan informasi.
4. Mendefinisikan kriteria kinerja sistem.
5. Menyiapkan usulan rancangan.
6. Menyetujui / menolak rancangan proyek.
Langkah – langkah dalam Tahap Rancangan
1. Menyiapkan rancangan sistem yang terinci.
2. Mengidentifikasikan berbagai alternatif konfigurasi sistem.
3. Mengevaluasi berbagai alternatif konfigurasi sistem.
4. Memilih konfigurasi yang terbaik.
5. Menyiapkan usulan penerapan.
6. Menyetujui / menolak penerapan sistem.
Langkah – langkah dalam Tahap Implementasi :
1. Merencanakan penerapan. Mengumumkan penerapan.
2. Mendapatkan sumber daya hardware.
3. Mendapatkan sumber daya software.
4. Menyiapkan database.
5. Menyiapkan fasilitas fisik.
6. Mendidik peserta dan user.
7. Masuk ke sistem baru.
Langkah – langkah dalam Tahapan Penggunaan :
1. Menggunakan sistem. Audit sistem.
2. Memelihara sistem, dilakukan untuk 3 alasan :
- Memperbaiki kesalahan.
- Menjaga kemutakhiran sistem.
- Meningkatkan kinerja system .
Prototipe memberikan ide bagi pembuat maupun pemakai
potensial tentang cara sistem akan berfungsi dalam bentuk lengkapnya. Prosesnya
disebut prototyping.Perencanaan.
Analisis.
Perancangan. Penerapan / Implementasi. Penggunaan.
EKSEKUTIF
menetapkan kebijakan dan membuat rencana yang mengatur pemakaian komputer. KOMITE PENGARAH SIM
mengelola siklus hidup pengembangan sistem dalam perusahaan.
Fungsi Komite Pengarah SIM adalah Menetapkan kebijakan yang memastikan dukungan komputer untuk mencapai tujuan strategis perusahaan.
Menjadi Pengendali Keuangan; berwenang memberi persetujuan bagi semua permintaan dana yang berhubungan dengan penggunaan komputer.
Menyelesaikan pertentangan yang timbul sehubungan dengan prioritas penggunaan komputer.
Langkah – langkah dalam Tahap Perencanaan
1. Menyadari masalah.
2. Mendefinisikan masalah.
3. Menentukan tujuan sistem.
4. Mengidentifikasi kendala – kendala sistem.
5. Membuat studi kelayakan ; tinjauan sekilas pada faktor – faktor utama yang akan mempengaruhi kemampuan sistem untuk mencapai tujuan – tujuan yang diinginkan. 6.Mempersiapkan usulan penelitian sistem. Menyetujui atau menolak penelitian proyek. 7. Menetapkan mekanisme pengendalian.
Langkah – langkah dalam Tahap Analisis:
1. Penelitian sistem.
2. Mengorganisasikan tim proyek.
3. Mendefinisikan kebutuhan informasi.
4. Mendefinisikan kriteria kinerja sistem.
5. Menyiapkan usulan rancangan.
6. Menyetujui / menolak rancangan proyek.
Langkah – langkah dalam Tahap Rancangan
1. Menyiapkan rancangan sistem yang terinci.
2. Mengidentifikasikan berbagai alternatif konfigurasi sistem.
3. Mengevaluasi berbagai alternatif konfigurasi sistem.
4. Memilih konfigurasi yang terbaik.
5. Menyiapkan usulan penerapan.
6. Menyetujui / menolak penerapan sistem.
Langkah – langkah dalam Tahap Implementasi :
1. Merencanakan penerapan. Mengumumkan penerapan.
2. Mendapatkan sumber daya hardware.
3. Mendapatkan sumber daya software.
4. Menyiapkan database.
5. Menyiapkan fasilitas fisik.
6. Mendidik peserta dan user.
7. Masuk ke sistem baru.
Langkah – langkah dalam Tahapan Penggunaan :
1. Menggunakan sistem. Audit sistem.
2. Memelihara sistem, dilakukan untuk 3 alasan :
- Memperbaiki kesalahan.
- Menjaga kemutakhiran sistem.
- Meningkatkan kinerja system .
Ada 2 jenis prototype:
Prototipe jenis I sesungguhnya menjadi sistem operasional;
Prototipe jenis II merupakan suatu model yang dapat berfungsi sebagai cetak biru bagi sistem operasional.
Potensi Kegagalan Prototyping :
· Ketergesaan membuat prototype mungkin menghasilkan jalan pintas dalam definisi permasalahan, evaluasi alternatif dan dokumentasi.
· Pemakai mungkin begitu tertarik dengan prototype sehingga mereka mengharapkan sesuatu yang tidak realistic dari sistem operasional.
· Prototipe Jenis I mungkin tidak seefisien sistem yang dikodekan dalam bahasa programming.
· Hubungan komputer-manusia yang disediakan oleh peralatan prototyping tertentu mungkin tidak mencerminkan teknik perancangan yang baik.
Prototyping bekerja paling baik pada penerapan-penerapan yang
berciri:
· Risiko tinggi
· Interaksi pemakai penting
· Jumlah pemakai banyak
· Penyelesaian yang cepat diperlukan
· Perkiraan tahap penggunaan sistem yang pendek
· Sistem yang inovatif
· Perilaku pemakai yang sukar ditebak.
Rapid Application Development (RAD)
RAD adalah istilah yang dibuat oleh James Martin, seorang konsultan komputer dan pengarang, untuk suatu siklus hidup pengembangan yang dimaksudkan untuk menghasilkan sistem secara cepat tanpa mengorbankan kualitas. RAD merupakan seperangkat strategi, metodologi dan peralatan yang terintegrasi yang ada dalam
satu kerangka kerja menyeluruh yang disebut information engineering. Information Engineering (EI), pendekatan menyeluruh dalam pengembangan sistem, yang memperlakukannya sebagai kegiatan seluruh perusahaan.
Unsur-unsur penting dari RAD : manajemen, manusia, metodologi, dan peralatan. Siklus hidup RAD : (a) perencanaan kebutuhan, (b) rancangan pemakai, (c) konstruksi, (d) cut over.
Evolusi sistem berbasis komputer mengikuti suatu pola yang disebut siklus hidup sistem, yang terdiri dari tahap perencanaan, analisis, rancangan, dan penerapan serta penggunaan.
Tahap analisis dimulai dengan pengumuman kepada para pegawai dan dibentuknya tim proyek. Kegiatan yang dilakukan yaitu pemakai mendefinisikan kebutuhan informasi, menentukan kriteria kinerja, menyiapkan usulan rancangan untuk merancang sistem baru.
Tahap rancangan mulai saat analis terlibat dalam rancangan sistem yang terinci, dengan menggunakan teknik-teknik dan peralatan terstruktur yang mendokumentasikan proses dan data.
Tahap penerapan melibatkan para spesialis informasi lainnya, pemakai tambahan dan mungkin orang luar seperti konsultan dan kontraktor.
Setelah tahap penggunaan dimulai, analis sistem dan auditor internal melaksanakan penelaahan pasca penerapan, yang diulang secara berkala sepanjang umur hidup sistem. Spesialis informasi juga melakukan pemeliharaan sistem.
Meskipun siklus hidup sistem mewakili bentuk dasar dari kerja sistem, siklus hidup sistem terpengaruh perubahan metodologi lain yang menekankan penggunaan peralatan pengembangan berbasis komputer. Salah satunya yaitu rapid application development – RAD yang menyatukan baik CASE maupun prototyping.
KEUNTUNGAN DAN KERUGIAN .
metode yang bisa kita gunakan dalam pengembangan
sistem seperti Waterfall, spiral,
prototyping, RAD (Rapid Application Development),
Scrum,Extreme Programming (XP), Bandung Bondowoso serta masih banyak lagi yang
lainnya. Masing-masing metode ini memiliki kelebihan dan kekurangan
sendiri-sendiri. Sehingga terkadang membutuhkan studi khusus untuk
menentukan metode mana yang sebaiknya akan
kita gunakan dalam mengembangkan sebuah perangkat lunak, terlebih
sebuah sistem
informasi.
Banyak aspek yang bisa dijadikan
acuan dalam penentuan ini, misalkan seperti ukuran
sistem, jumlah tim (SDM), resiko pengembangan,
budget (dana), schedule (waktu) serta beberapa aspek lainnya.
Ketepatan pemilihan metode tentunya akan sangat menguntungkan bagi developer,
terutama untuk penghematan cost baik cost waktu, cost resource maupun SDM.
Dalam paper ini, kami akan mencoba untuk membandingkan dua metode pengembangan
perangkat lunak yang cukup populer yakni metode Wa-
terfall dan metode
Agile dari beberapa aspek yang telah kami jabarkan di atas.
2. Metode Klasik
2. Metode Klasik
Metode pengembangan perangkat lunak (Software Development
Methodology) atau metode pengembangan sistem mengacu pada kerangka yang
digunakan untuk membuat struktur, rencana, dan kontrol dari proses pengembangan
sebuah sistem (khususnya sistem informasi)[2]. Dalam kata lain dapat dikatakan
juga sebagai sebuah pendekatan yang digunakan oleh
organisasi atau sebuah tim dalam mengembangkan
perangkat lunak.
Ada banyak metode-metode pengembangan perangkat lunak yang ada
saat ini. Beberapa diantaranya merupakan metode dasar (klasik) yakni
seperti metode Waterfall, Spiral dan Prototyping. Selain ketiga metode
tersebut, telah banyak juga pengembangan metode-metode klasik lainnya seperti
RAD, Incremental, V-Shaped model serta beberapa metode lainnya.
2.1. Waterfall Model
Yakni sebuah desain proses yang sequensial (berurutan) yang dalam progressnya terlihat seperti aliran air ter-jun (waterfall) dari proses perancangan konsep, inisialisasi project, alanisis, desain, pembuatan system (coding), testing, produksi/implementasi dan perawatan (maintenance).
Beberapa prinsip utama dari model ini yakni[2]:
• Project dibagi-bagi dalam beberapa fase yang saling berurutan.
• Penekanan pada perencanaan, jadwal (schedule), deadline, budget, dan implementasi keseluruhan sis-
tem sekaligus.
• Kontrol yang ketat dalam siklus hidup project dengan menggunakan bantuan dokumentasi tertulis.
Kelebihan dari metode ini yakni:
• Mudah dimengerti, mudah digunakan,
• Requirement dari sistem bersifat stabil,
• Baik dalam manajemen kontrol,
• Bekerja dengan baik ketika kualitas lebih diutamakan dibandingkan dengan biaya dan jadwal (deadline).
Yakni sebuah desain proses yang sequensial (berurutan) yang dalam progressnya terlihat seperti aliran air ter-jun (waterfall) dari proses perancangan konsep, inisialisasi project, alanisis, desain, pembuatan system (coding), testing, produksi/implementasi dan perawatan (maintenance).
Beberapa prinsip utama dari model ini yakni[2]:
• Project dibagi-bagi dalam beberapa fase yang saling berurutan.
• Penekanan pada perencanaan, jadwal (schedule), deadline, budget, dan implementasi keseluruhan sis-
tem sekaligus.
• Kontrol yang ketat dalam siklus hidup project dengan menggunakan bantuan dokumentasi tertulis.
Kelebihan dari metode ini yakni:
• Mudah dimengerti, mudah digunakan,
• Requirement dari sistem bersifat stabil,
• Baik dalam manajemen kontrol,
• Bekerja dengan baik ketika kualitas lebih diutamakan dibandingkan dengan biaya dan jadwal (deadline).
Gambar 1. Tiga metode klasik dalam pengembangan perangkat lunak
(Waterfall, Prototyping dan Spiral)
Selain
kelebihan-kelebihan di atas, model Waterfall ini memiliki kekurangan yang
sangat banyak. Dikarenakan sangat banyak tim yang telah
mengimplementasikan projectnya dengan menggunakan model ini. Beberapa diantara
kekurangannya itu yakni:
• Semua kebutuhan sistem harus diketahui terlebih dahulu,
• Penenyahan dari setiap fase ke fase lainnya dapat dikatakan statis (tidak fleksible)
• Dapat memberikan kesan palsu dari progresnya.
• Semua kebutuhan sistem harus diketahui terlebih dahulu,
• Penenyahan dari setiap fase ke fase lainnya dapat dikatakan statis (tidak fleksible)
• Dapat memberikan kesan palsu dari progresnya.
• Tidak menunjukkan menunjukkan prinsif ”ProblemSolving”
dalam Pengembangan Perangkat Lunak
dikarenakan fase yang
harus berurut.
• Integrasi sekaligus di akhir sistem.
• Customer hanya memiliki sedikit kesempatan untuk melihat dan mereview sistem (yakni di akhir project).
• Integrasi sekaligus di akhir sistem.
• Customer hanya memiliki sedikit kesempatan untuk melihat dan mereview sistem (yakni di akhir project).
• Resiko sangat tinggi, karena testing hanya dilakukan
pada setiap akhir fase, bahkan tidak
jarang testing hanya dilakukan di akhir-akhir project.
• Membutuhkan waktu
yang cukup lama (walaupun projectnya tidak terlalu besar).
• Perubahan requirement dapat merubah keseluruhan proses yang telah dilaksanakan.
2.2. Prototyping
• Perubahan requirement dapat merubah keseluruhan proses yang telah dilaksanakan.
2.2. Prototyping
Yakni sebuah pendekatan pengembangan dalam sebuah aktifitas
pengembangan perangkat lunak untuk pembuatan prototype, misalnya berupa
produk belum jadi dari peragkat lunak yang dikembangkan. Beberapa
prinsip utamanya yakni[2]:
• Tidak
berdiri sendiri, serig digabungkan dengan metode
lainnya seperti Incremental, Spiral atau RAD.
• Berusaha untuk mengurangi resiko
project dengan memecahkannya kedalam sub-sub project yang lebih
kecil yang memungkinkan untuk memudahkan
perubahan.
• User terlibat dalam
proses, sehingga memungkinkan sistem yang sesuai dengan permintaan user.
• Mock-ups berukuran kecil dari sistem dengan perubahan
berlanjut hingga sesuai dengan kebutuhan dari
user.
• Pengembangan lebih
lanjut dengan mengembangkan prototype.
Metode ini memiliki banyak keuntungan bagi developer, karena
pada metode ini customer dan user system terlibat secara langsung dalam
pengembangan. Kelebihan dari metode ini yakni:• User dapat
melihat secara langsung perkembangan system seiring dengan
permintaannya,
• Developer belajar
langsung mengenai kebutuhan sistem dari customer/user,
• Hasil produk yang lebih akurat (lebih sesuai dengan permintaan user),
• Desain sistem lebih fleksibel,
• Iteraktif dengan adanya simulasi prototype,
• Untuk pengembangan lebih lanjut (jika terjadi perubahan), developer hanya perlu mengubah prototype,
• Jika customer sudah ”puas”, prototype dibuat menjadi system secara sempurna untuk dijadikan ’Final Product’.
Sedangkan kekurangan-kekurangannya yakni:
• Proses bisa jadi berlanjut terus menerus tanpa henti (mengikuti keinginan customer),
• Bisa jadi customer malah menginginkan prototype system dikirim,
• Reputasi yang buruk sebagai sebuah metode yang bersifat ”Quick-and-Dirty”.
• Kemungkinan perawatan secara keseluruhan bisa saja terabaikan.
• Pengembangan yang berlebihan untuk prototype.
2.3. Spiral
• Hasil produk yang lebih akurat (lebih sesuai dengan permintaan user),
• Desain sistem lebih fleksibel,
• Iteraktif dengan adanya simulasi prototype,
• Untuk pengembangan lebih lanjut (jika terjadi perubahan), developer hanya perlu mengubah prototype,
• Jika customer sudah ”puas”, prototype dibuat menjadi system secara sempurna untuk dijadikan ’Final Product’.
Sedangkan kekurangan-kekurangannya yakni:
• Proses bisa jadi berlanjut terus menerus tanpa henti (mengikuti keinginan customer),
• Bisa jadi customer malah menginginkan prototype system dikirim,
• Reputasi yang buruk sebagai sebuah metode yang bersifat ”Quick-and-Dirty”.
• Kemungkinan perawatan secara keseluruhan bisa saja terabaikan.
• Pengembangan yang berlebihan untuk prototype.
2.3. Spiral
Model Spiral adalah proses pengembangan perangkat lunak yang
menggabungkan antara elemen waterfall model dengan prototyping dalam setiap
tahap, dalam upaya untuk menggabungkan keuntungan dari konsep top-down dan
bottom-up. Model ini pertama kali dikenalkan pada tahun 1988 oleh Barry
Boehm. Beberapa prinsip utama model ini yakni:
• Fokus pada penilaian
resiko dan minimalisasi resiko project dengan memecah
project menjadi beberapa bagian
• Setiap perjalanan siklus spiral selalu melalui empat kuadran utama yakni: (1) menentukan objective atau
• Setiap perjalanan siklus spiral selalu melalui empat kuadran utama yakni: (1) menentukan objective atau
tujuan, alternative-alternative dan batasan
dalam iterasi tersebut; (2) evaluasi alternative-alternative, iden-
tifikasi resiko dan
penyelesaiannya; (3) pengembangan (develop) dan persiapan untuk pengajuan dari
iterasi
tersebut; dan (4) perencanaan untuk iterasi berikutnya.
• Permulaan setiap siklus identifikasi stakeholder dan kondisi akhir, serta review dari setiap siklus.
Kelebihan dari model ini yakni:
• User dapat melihat sistem lebih awal dengan adanya rapid prototyping tools,
• Fungsi-fungsi yang memiliki resiko tinggi diprioritaskan lebih utama,
• Desain sistem tidak perlu perfect,
• Mendapat respon yang lebih cepat dari user,
• Perhitungan biaya dilakukan setiap saat.
Sedangkan kelemahan dari model Spiral ini yakni:
• Rumit, membutuhkan manajemen yang penuh perhatian dan berpengalaman untuk bisa melakukannya.
• Beresiko besar jika tidak sesuai dengan budget atau schedule.
• Penggunaan waktu untuk melakukan evaluasi resiko terlalu besar.
• Spiral (siklus) munkin bisa berlanjut tanpa batas.
• Bisa sangat sulit untuk mendefinisikan tujuan dan pencapaian yang menujjukkan kesiapan untuk melan-
tersebut; dan (4) perencanaan untuk iterasi berikutnya.
• Permulaan setiap siklus identifikasi stakeholder dan kondisi akhir, serta review dari setiap siklus.
Kelebihan dari model ini yakni:
• User dapat melihat sistem lebih awal dengan adanya rapid prototyping tools,
• Fungsi-fungsi yang memiliki resiko tinggi diprioritaskan lebih utama,
• Desain sistem tidak perlu perfect,
• Mendapat respon yang lebih cepat dari user,
• Perhitungan biaya dilakukan setiap saat.
Sedangkan kelemahan dari model Spiral ini yakni:
• Rumit, membutuhkan manajemen yang penuh perhatian dan berpengalaman untuk bisa melakukannya.
• Beresiko besar jika tidak sesuai dengan budget atau schedule.
• Penggunaan waktu untuk melakukan evaluasi resiko terlalu besar.
• Spiral (siklus) munkin bisa berlanjut tanpa batas.
• Bisa sangat sulit untuk mendefinisikan tujuan dan pencapaian yang menujjukkan kesiapan untuk melan-
jutkan menuju ke iterasi berikutnya.
• Model ini hanya
bekerja dengan baik pada project yang berukuran besar dan memiliki waktu
pengerjaan yang panjang juga.[3]
2.4. Iterative dan Incremental Model
2.4. Iterative dan Incremental Model
Selain ketiga metode basic
tersebut, ada beberapa metode lainnya yang merupakan
pengembangan dari ketiga metode tersebut. salah satunya yakni metode
Iterative dan Incremental Model. Iterative dan Incremental Model adalah sebuah
model yang dibuat untuk menanggulangi kelemahan dari metode waterfall.
Model ini dimulai dengan inisialisasi perencanaan dan diakhiri dengan
deployment atau produksi dengan sebuah lingkaran iterasi diantara perencanaan
dan deployment. Gambar 2 berikut dapat menjelaskan bagaimana siklus dari
model ini.
3. Agile SDLC
Agile software development
(sering disebut ”agile”)adalah kumpulan dari
metode-metode pengembangan perangkat lunak yang
berbasis pada Iterative dan Incremental
Model. Agile membawakan perubahan
dari model metode-metode kelas berat seperti
waterfall dan Spiral
Gambar 2. Iterative dan Incremental.
Agile adalah metode pengembangan
perangkat lunak yang ringan, yang memungkinkan
tim untuk mengembangkan perangkat lunak yang memiliki reequirement
yang samar-samar dan mudah berubah dengan cepat.
Gambar 3. Agile
Development
Agile memiliki beberapa prinsip utama yang membedakannya dengan
metode-metode klasik yang telah dijelaskan di atas. Prinsip-prinsip ini
telah dikenalkan dalam Agile manifesto1 sejak tahun 2001 lalu. Prinsip-prinsip
ini yakni:
1
www.agilemanifesto.org
• Lebih cepat dalam
merilis perangkat lunak secara terus menerus,
• Pengiriman perangkat lunak sesering mungkin,
• Dapat dengan mudah menerima perubahan requirement,
• Kebutuhan komunikasi harian antara customer dengan pengembang,
• Pengiriman perangkat lunak sesering mungkin,
• Dapat dengan mudah menerima perubahan requirement,
• Kebutuhan komunikasi harian antara customer dengan pengembang,
• Kebutuhan komunikasi secara langsung
antara customer dengan pengembang,
• Project dibangun
antar tim,
• Kepercayaan dan support terhadap tim,
• Tim bebas mengorganisasikan dirinya sendiri,
• Tim bebas bekerja dalam kecepatan yang bisa dipertahankan,
• Tim bebas mereview tingkat keberhasilan dan kegagalan mereka,
• Sesederhana mungkin dalam desain dan implementasi,
• Berusaha untuk keunggulan dalam desain teknis dan implementasinya.
3.1. Kelebihan dan Kekurangan Agile (Scrum dan XP)
• Kepercayaan dan support terhadap tim,
• Tim bebas mengorganisasikan dirinya sendiri,
• Tim bebas bekerja dalam kecepatan yang bisa dipertahankan,
• Tim bebas mereview tingkat keberhasilan dan kegagalan mereka,
• Sesederhana mungkin dalam desain dan implementasi,
• Berusaha untuk keunggulan dalam desain teknis dan implementasinya.
3.1. Kelebihan dan Kekurangan Agile (Scrum dan XP)
Sebelum kita membahas tentang kelebihan Agile, mari kita coba
list beberapa alasan utama kenapa sebuah project sering mengalami kegagalan.
Alasan pertama yakni sedikitnya keterlibatan user atau customer dalam proyek.
Dalam beberapa kasus yang menggunakan metode pengembangan waterfall, user hanya
terlibat pada fase analisis dan testing saja. Sehingga, kebanyaka user
terkadang menerima begitu saja hasil yang diberikan oleh developer dengan
sedikit sekali testing terhadap perangkat lunaknya.
Alasan kedua yakni requirement
yang ’buruk’. Beberapa hal yang munkin perlu kita jadikan catatan
bahwasanya mustahil untuk mengumpulkan
requirement di awal-awal project dan semua
requirement yang telah berhasil dikumpulkan tidak
bisa dijamin untuk tidak berubah. Alasan lain yang
menyebabkan buruknya requirement adalah karena user atau customer kadang tidak
tahu apa yang mereka butuhkan. Alasan ketiga yakni schedule atau jadwal yang
tidak realistis.Kadang jadwal tidak disepakati dari pihak-pihak yang terlibat
dalam pengembangan, seperti tim yang menganalisa project
terkadang memutuskan schedul project akan selesai dalam waktu
tertentu yang terkadang menjadi beban bagi tim yang mengembangkan perangkat
lunaknya(tim developer). Tim developer terkadang tidak memiliki cukup
waktu untuk mengembangkan perangkat lunak sehingga kadang membuat keterlambatan
dalam penyerahan perangkat lunak yang jadi.
Alasan keempat yakni sedikitnya testing. Pada banyak
metode klasik, testing dilakukan di akhir-akhir fase, sehingga
sangat sedikit testing yang dilakukan. Sedikitnya testing ini bisa
mngakibatkan kemungkinan ditemukannya bug dan perbaikan dalam system sangatlah
kecil. Hal ini mungkin menguntungkan bagi Developer, akan tetapi bisa
berakibat buruk pada masa perawatan system setelah system diproduksi.
Alasan kelima yakni minimnya adaptasi dengan perubahan
requirement. Terkadang rencana bisa berubah di tengah jalan, rencana yang
tadinya seharusnya lurus bisa jadi berliku-liku seiring
dengan berubahnya permintaan customer. Apa yang
seharunya dikerjakan nanti belakangan, terkadang ditemukan penyelesaiannya
terlebih dahulu.
Serta masih banyak lagi alasan-alasan lainnya yang sering
membuat sebuah project mengalami kegagalan. Apa hubungannya
dengan Agile? Secara teori
Agile dapat menanggulangi masalah-masalah ini berdasarkan dari
prinsip-prinsip agile di atas.
Beberapa
keunggulan agile 2 dengan metode-metode lainnya yakni:
• Proses Iterative dan Incremental,
• Requirement dapat berubah sewaktu-waktu,
• Pelacakan requirement dengan melihat Backlog produk,
• Keterlibatan user secara aktif,
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat, Seperti metode-metode lainnya, Agile bukanlah metode yang sempurna.
• Proses Iterative dan Incremental,
• Requirement dapat berubah sewaktu-waktu,
• Pelacakan requirement dengan melihat Backlog produk,
• Keterlibatan user secara aktif,
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat, Seperti metode-metode lainnya, Agile bukanlah metode yang sempurna.
Agile memiliki kelemahan-kelemahan yang tidak kalah
banyaknya dengan metode-metode klasik yang telah kami jelaskan di atas.
Beberapa kelemahannya ini antara lain[1]:
• Agile jarang dipraktekkan secara
langsung,• Interksi dengan customers yang berlebihan,
• Agile sulid diimplementasikan dalam proyek yang berskala besar,
• Membutuhkan manajemen tim yang terlatih,
• Lemah dalam perencanaan arsitektur,2 Scrum dan Extreme Programming
• Keterbatasan waktu dalam perencanaan Proyek,
• Serta beberapa kelemahan lainnya.
3.2. Beberapa Metode Agile
Seperti telah dijelaskan di atas, Agile merupakan sekumpulan metode-metode pengembangan perangkat lunak yang dikembangkan untuk menyelesaikan permasalahan-permasalahan yang ditemukan pada metodemetode klasik. Beberapa metode yang termasuk ke dalam metode agile yakni:
• Crystal (Light, Clear, Orange, dll)
• DSDM,
• Lean,
• Kanban,
• Rational Unifield Process (RUP),
• Scrum,
• Extreme Programming (XP) dan lainnya
DOWNLOAD PDF
http://www.4shared.com/office/CVa1viLu/Softskill.html
KESIMPULAN :
Bahwa siklus hidup
system tidaklah luput dari perencanaan yang matang karena tanpa
perencanaan tersebut maka suatu system tidaklah dapat berjalan sesuai rencana.
DAFTAR PUSAKA :
(http://maiasari.blogspot.com/2010/05/siklus-hidup-sistem.html
(http://juventus4ever.wordpress.com/2011/11/25/metodologi-siklus-hidup-sistem/