A.
WATERFALL
1.
Penjelasan
Waterfall atau sering
juga disebut air terjun adalah sebuah metode dalam pengembangan sistem yang
dilakukan untuk membuat pembaruan sistem yang berjalan. Metode pengembangan
sistem merupakan proses mengembangkan atau mengubah suatu sistem perangkat
lunak dengan menggunakan metode-metode atau model-model yang digunakan orang
untuk mengembangkan sitem-sistem perangkat lunak sebelumnya dengan memiliki
alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari
analisis, desain, pengodean, pengujian, dan tahap pendukung (suport).
2.
Diagram
3.
Proses/Cara Kerja
Ø Requirment
Dalam tahapan ini jasa, kendala dan tujuan dari konsultasi dengan
pengguna sistem. Kemudian semuanya dibuat dalam bentuk yang dapat
dimengerti oleh user dan staf pengembang. Dengan kata lain, dalam tahapn
ini dilakukan analisa kebutuhan, kemdian diverifikasi klien dan tim SQA
(software Quantity asuransi).
Ø Specification
Dokumentasi spesifikasi, kemudian diperiksa oleh tim SQA. Selanjutnya
jika disetujui oleh klien, maka dokumen tersebut merupakan kontrak
kerjaantaraklien dan pengembang s0ftware. Selanjutnya merencanakan jadwal
pengembangan software. Jika disetujui oleh SQA, tahap desain baru dilakukan.
Ø Design
Proses design sistem membagi kebutuhan-kebutuhan menjadi sistem perangkat
lunak atau perangkat keras. Proses tersebut menghasilkan sebuah
arsitektur keseluruhan. Desain perangkat lunak termasuk menghasilkan fungsi
sistem perangkat lunak dalam bentuk yang mungkin ditransformasi kedalam satu
atau lebih program yang dapat dijalankan. Tahapan ini telah menentukan
alur software hingga pada tahap algoritma detail. Di akhir tahap ini,
kembali diperksa tim SQA.
Ø Implementation
Selama tahap ini, desain perangkat lunak disadari sebagai sebuah program
lengkap atau unit program. Desain yang telah disetujui, diubah dalam
bentuk kode-kode program. Tahap ini, kode-kode program yang dihasilkan
masih pada tahap modul-modul. Diakhir tahap ini, tiap modul di testing tanpa
diintegrasikan.
Ø Integration
Unit program diintegrasikan dandiuji menjadi sistem yang lengkap untuk
meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi. Setelah uji
coba, sistem disampaikan ke konsumen.
Ø Operaton mode & retirement
Normalnya, ini adalah tahap yang terpanjang. Sistem dipasang dan
digunakan. Pemeliharaan termasuk pembetulan kesalahan yang tidak ditemukan pada
langkah sebelumnya. Perbaikan inmplementasi unit sistem dan peningkatan
jasa sistem sebagai kebutuhan baru ditemukan.
4.
Kelebihan
Metode pengembanganwaterfall mempunyai keunggulan dalam membangun dan
mengembangkan suatu sistem, antara lain:
1.
Kualitas dari sistem yang dihasilkan akan
baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak
terfokus pada tahapan tertentu.
2.
Dokumen pengembangan sistem sangat
terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum
melangkah ke fase berikutnya. Jadi setiap fase atau tahapan akan mempunyai
dokumen tertentu.
5.
Kekurangan
Dalam proses membangun dan mengembangkan
suatu sistem, metode waterfall mempunyai
beberapa kelemahan, antara lain:
1.
Diperlukan majemen yang baik, karena
proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya
suatu produk..
2.
Kesalahan kecil akan menjadi masalah besar
jika tidak diketahui sejak awal pengembangan.
B.
PROTOTYPING
1.
Penjelasan
Prototyping adalah proses membangun model dari suatu
sistem. Dalam hal sistem informasi, prototipe dipekerjakan untuk membantu
desainer sistem membangun suatu sistem informasi yang intuitif dan mudah untuk
memanipulasi bagi pengguna akhir. Prototyping merupakan proses iteratif yang
merupakan bagian dari tahap analisis dari siklus hidup pengembangan sistem . Pada
bagian penentuan persyaratan tahap analisis sistem, analis sistem mengumpulkan
informasi tentang prosedur saat ini organisasi dan bisnis proses yang terkait
dengan sistem informasi yang diusulkan.Selain itu, mereka mempelajari sistem
informasi saat ini, jika ada satu, dan melakukan wawancara dan mengumpulkan
dokumentasi pengguna. Ini membantu analis mengembangkan set awal persyaratan
sistem.
Prototyping dapat meningkatkan proses ini karena mengubah spesifikasi dasar, namun kadang-kadang berwujud, menjadi model kerja nyata namun terbatas dari sistem informasi yang diinginkan.Umpan balik pengguna yang diperoleh dari mengembangkan sistem fisik yang pengguna dapat menyentuh dan melihat memfasilitasi respons evaluatif bahwa analis dapat mempekerjakan untuk memodifikasi persyaratan yang ada serta mengembangkan yang baru.
Prototyping dapat meningkatkan proses ini karena mengubah spesifikasi dasar, namun kadang-kadang berwujud, menjadi model kerja nyata namun terbatas dari sistem informasi yang diinginkan.Umpan balik pengguna yang diperoleh dari mengembangkan sistem fisik yang pengguna dapat menyentuh dan melihat memfasilitasi respons evaluatif bahwa analis dapat mempekerjakan untuk memodifikasi persyaratan yang ada serta mengembangkan yang baru.
2.
Diagram
3.
Proses/Cara Kera Kerja
Proses
pembuatan prototipe merupakan proses yang interaktif dan berulang-ulang yang
menggabungkan langkah-langkah siklus pengembangan tradisional. Prototipe
dievaluasi beberapa kali sebelum pemakai akhir menyatakan protipe tersebut
diterima. Gambar di bawah ini mengilustrasikan proses pembuatan prototipe :
Langkah-Langkah
Prototyping
|
a. Analisis
Kebutuhan Sistem
Pembangunan
sistem informasi memerlukan penyelidikan dan analisis mengenai alasan timbulnya
ide atau gagasan untuk membangun dan mengembangkan sistem informasi. Analisis
dilakukan untuk melihat berbagai komponen yang dipakai sistem yang sedang
berjalan meliputi hardware, software, jaringan dan sumber daya
manusia. Analisis juga mendokumentasikan aktivitas sistem informasi
meliputi input, pemrosesan, output, penyimpanan dan
pengendalian (O'Brien, 2005).
Selanjutnya
melakukan studi kelayakan (feasibility study) untuk merumuskan
informasi yang dibutuhkan pemakai akhir, kebutuhan sumber daya, biaya, manfaat
dan kelayakan proyek yang diusulkan (Mulyanto, 2009).
Analisis
kebutuhan sistem sebagai bagian dari studi awal bertujuan mengidentifikasi
masalah dan kebutuhan spesifik sistem. Kebutuhan spesifik sistem adalah
spesifikasi mengenai hal-hal yang akan dilakukan sistem ketika
diimplementasikan (Mulyanto, 2009).
Analisis
kebutuhan sistem harus mendefinisikan kebutuhan sistem yang spesifik antara
lain :
1) Masukan
yang diperlukan sistem (input)
2) Keluaran
yang dihasilkan (output)
3) Operasi-operasi
yang dilakukan (proses)
4) Sumber
data yang ditangani
5) Pengendalian
(kontrol)
Tahap
analisis kebutuhan sistem memerlukan evaluasi untuk mengetahui kemampuan sistem
dengan mendefinisikan apa yang seharusnya dapat dilakukan oleh sistem tersebut
kemudian menentukan kriteria yang harus dipenuhi sistem. Beberapa kriteria yang
harus dipenuhi adalah pencapaian tujuan, kecepatan, biaya, kualitas informasi
yang dihasilkan, efisiensi dan produktivitas, ketelitian dan validitas dan
kehandalan atau reliabilitas (Mulyanto, 2009).
b. Desain
Sistem
Analisis
sistem (system analysis) mendeskripsikan apa yang harus dilakukan
sistem untuk memenuhi kebutuhan informasi pemakai. Desain
sistem (system design) menentukan bagaimana sistem akan
memenuhi tujuan tersebut. Desain sistem terdiri dari aktivitas desain yang
menghasilkan spesifikasi fungsional. Desain sistem dapat dipandang sebagai
desain interface, data dan proses dengan tujuan menghasilkan
spesifikasi yang sesuai dengan produk dan metodeinterface pemakai,
struktur database serta pemrosesan dan prosedur pengendalian (Ioanna et
al., 2007).
Desain
sistem akan menghasilkan paket software prototipe, produk yang baik
sebaiknya mencakup tujuh bagian :
1) Fitur
menu yang cepat dan mudah.
2) Tampilan
input dan output.
3) Laporan
yang mudah dicetak.
4) Data
dictionary yang menyimpan informasi pada
setiap field termasuk panjang field, pengeditan dalam setiap laporan
dan format field yang digunakan.
5) Database dengan
format dan kunci record yang optimal.
6) Menampilkan query
online secara tepat ke data yang tersimpan padadatabase.
7) Struktur
yang sederhana dengan bahasa pemrograman yang mengizinkan pemakai melakukan
pemrosesan khusus, waktu kejadian, prosedur otomatis dan lain-lain.
c. Pengujian
Sistem
Paket software prototipe
diuji, diimplementasikan, dievaluasi dan dimodifikasi berulang-ulang hingga
dapat diterima pemakainya (O'Brien, 2005). Pengujian sistem bertujuan
menemukan kesalahan-kesalahan yang terjadi pada sistem dan melakukan revisi
sistem. Tahap ini penting untuk memastikan bahwa sistem bebas dari kesalahan (Mulyanto,
2009).
Menurut
Sommerville (2001) pengujian sistem terdiri dari :
1) Pengujian
unit untuk menguji komponen individual secara independen tanpa komponen sistem
yang lain untuk menjamin sistem operasi yang benar.
2) Pengujian
modul yang terdiri dari komponen yang saling berhubungan.
3) Pengujian
sub sistem yang terdiri dari beberapa modul yang telah diintegrasikan.
4) Pengujian
sistem untuk menemukan kesalahan yang diakibatkan dari interaksi antara
subsistem dengan interfacenya serta memvalidasi persyaratan fungsional dan
non fungsional.
5) Pengujian
penerimaan dengan data yang dientry oleh pemakai dan bukan uji data
simulasi.
6) Dokumentasi
berupa pencatatan terhadap setiap langkah pekerjaan dari awal sampai akhir
pembuatan program.
Pengujian
sistem informasi berbasis web dapat menggunakan teknik dan metode
pengujian perangkat lunak tradisional. Pengujian
aplikasi web meliputi pengujian tautan,
pengujian browser, pengujian usabilitas, pengujian muatan, tegangan
dan pengujian malar (Simarmata, 2009).
Penerimaan
pengguna (user) terhadap sistem dapat dievaluasi dengan mengukur
kepuasan user terhadap sistem yang diujikan. Pengukuran kepuasan meliputi
tampilan sistem, kesesuaian dengan kebutuhan user, kecepatan dan
ketepatan sistem untuk menghasilkan informasi yang diinginkan user. Ada
beberapa model pengukuran kepuasan user terhadap sistem, diantaranya
adalahTechnology Acceptance Model (TAM), End User Computing (EUC) Satisfaction,
Task Technology Fit (TTF) Analysis dan Human Organizational
Technology (HOT) Fit Model.
Salah
satu model pengukuran yang telah diterjemahkan ke dalam beberapa bahasa berbeda
dan tidak menunjukkan perbedaan hasil pengukuran yang signifikan
adalah End User Computing (EUC) Satisfaction. Model ini menekankan
kepuasan user terhadap aspek teknologi meliputi aspek isi,
keakuratan, format, waktu dan kemudahan penggunaan sistem (Chin & Mathew,
2000).
d. Implementasi
Setelah
prototipe diterima maka pada tahap ini merupakan implementasi sistem yang siap
dioperasikan dan selanjutnya terjadi proses pembelajaran terhadap sistem baru
dan membandingkannya dengan sistem lama, evaluasi secara teknis dan operasional
serta interaksi pengguna, sistem dan teknologi informasi.
4.
Kelebihan
Beberapa
Keuntungan dari Prototyping:
a. Mengurangi
waktu pengembangan.
b. Mengurangi
biaya pengembangan.
c. Membutuhkan
keterlibatan pengguna.
d. Pengembang
menerima umpan balik pengguna terukur.
e. Memfasilitasi
implementasi sistem karena pengguna tahu apa yang diharapkan.
f.
Hasil di kepuasan pengguna yang lebih tinggi.
g. Menghadapkan
para pengembang untuk potensi perangkat tambahan sistem yang akan datang.
5.
Kekurangan
Beberapa
Kerugian dari Prototyping:
a. Dapat
menyebabkan analisis cukup.
b. Pengguna
mengharapkan kinerja sistem utama untuk menjadi sama dengan prototipe.
c. Pengembang
dapat menjadi terlalu melekat pada prototipe mereka
d. Dapat
menyebabkan sistem menjadi kiri belum selesai dan / atau diterapkan sebelum
mereka siap.
e. Kadang-kadang
mengarah ke dokumentasi lengkap.
f.
Jika prototipe perangkat lunak yang
canggih dipekerjakan, manfaat penghematan waktu prototipe bisa hilang.
C.
ITERATVE DEVELOPMENT
1.
Penjelasan
Metode yang merupakan pengembangan
dari prototyping model dan digunakan ketika requirement dari software akan
terus berkembang dalam tahapan-tahapan pengembangan aplikasi tersebut. Sedikit
pengertian tentang requirement software dari developer yang diterapkan pada
tahap pertama iterasi, akan mendapatkan tanggapan dari user. Ketika requirement
menjadi jelas, tahapan iterasi selanjutnya akan dilaksanakan.
2.
Diagram
3.
Proses/Cara Kera Kerja
1) Mendefinisikan
tujuan dan kebutuhan bisnis, mengembangkan desain konseptual, rancangan konsep,
rencana pengujian, dan analis terhadap resiko dengan melibatkan pemakai.
2) Mendefinisikan
kebutuhan sistem, mengembangkan desail logikal, mengkompilasi (software-build)
rancangan awal, mengevaluasi hasil dengan melibatkan pemakai.
3) Mendefinisikan
kebutuhan subsistem, menghasilkan desain fisikal, mengkompilasi rancangan
berikutnya, mengevaluasi hasil dengan melibatkan pemakai.
4) Mendefinisikan
kebutuhan setiap unit, menghasilkan desain akhir, mengkompilasi rancangan
akhir.
4.
Kelebihan
Kelebihan dari Iterative model:
a. User dapat mencoba sistem yg sudah
dikembangkan dan kemudian dapat memberikan masukkan > keterlibatan user
semakin intens dampak positif dalam pengembangan
b. Prototype relatif lebih mudah
dibangun dan tidak memerlukan waktu yang lama
c. Dengan prototype, kesalahan &
kelalaian dalam pengembangan dapat segera diketahui
5.
Kekurangan
Kelemahan dari Iterative model
a. Setiap iterasi bergantung prototype
sebelumnya solusi final umumnya terjadi apabila ada perbedaan yg nyata pada
prototype sebelumnya
b. Formal end-of-phasemungkin tidak
terjadi, karena sangat sulit menentukan scope dari suatu prototype > proyek
tidak pernah selesai
c. Dokumentasi seringkali tdk lengkap
> fokus pada pembuatan prototype
d. Isu2 mengenai system backup &
recovery, system performance dan system security, kurang/tidak diperhatikan dan
sering terlupakan
D.
RATIONAL UNFIED PROSES
1.
Penjelasan
Rational
Unified Process (RUP) adalah salah satu proses yang ada di Software Enginering
atau Rekayasa Perangkat Lunak, yang didalamnya terdapat sebuah proses dimana
Software itu dibuat dengan mengunakan metode atau cara yang terstruktur didalam
sebuah tim atau organisasi, dengan tujuan menghasilkan produk software yang
bermutu tinggi, tetntunya dalam schedule dan badget yang telah disepakati.
2.
Diagram
3.
Proses/Cara Kera Kerja
Proses
Kerja Rational Unified Process
Tahap
(phases) pelaksanaan pengembangan pada RUP meliputi:
1. Permulaan (inception)
Tahap inception fokus pada penentuan manfaat perangkat
lunak yang harus dihasilkan, penetapan proses-proses bisnis (business case), dan perencanaan proyek.
2. Pemerincian (elaboration)
Tahap untuk menentukan use case (set of activities) dari
perangkat lunak berikut rancangan arsitekturnya.
3. Konstruksi (construction)
Membangun produk perangkat lunak
secara lengkap yang siap diserahkan kepada pemakai.
4. Transisi (transition)
Menyerahkan perangkat lunak kepada
pemakai, mengujinya di tempat pemakai, dan memperbaiki
4.
Kelebihan
a. Menyediakan akses yang mudah
terhadap pengetahuan dasar bagi anggota tim.
b. Menyediakan petunjuk bagaimana
menggunakan UML secara efektif.
c. Mendukung proses pengulangan dalam
pengembangan software.
d. Memungkinkan adanya
penambahan-penambahan pada proses.
e. Memungkinkan untuk secara sistematis
mengontrol perubahan- perubahan yangterjadi pada software selama proses
pengembangannya.
f. Memungkinkan untuk menjalankan test
case dengan menggunakan Rational TestManager Tool
5.
Kekurangan
Kekurangan
rational unfied proses ini hanya dapat digunakan pada pengembangan perangkat
lunak yangberorientasi objek dengan berfokus pada UML (Unified Modeling
Language).
E.
TIME BOXING MODEL
1.
Penjelasan
Time boxing adalah proses menunda fitur
untuk versi aplikasi di masa mendatang untuk melengkapi versi saat ini sebagai
ketepatan waktu.Ketepatan waktu merupakan aspek penting dari RAD, karena tanpa
itu ruang lingkup dapat mengancam untuk memperpanjang iterasi pembangunan,
sehingga membatasi umpan balik dari klien, meminimalkan manfaat dari
pembangunan berulang, dan berpotensi mengembalikan proses kembali ke pendekatan
metodologi air terjun.
2.
Diagram
3.
Proses/Cara Kera Kerja
Timeboxing
model menentukan jangka waktu tertentu yang dialokasikan untuk menyelesaikan
berbagai macam tugas. Apabila waktu yang ditentukan tersebut selesai, maka
pembangunan sistem akan pindah ke tugas berikutnya, dengan harapan bahwa
sebagian besar dari critical work telah berhasil diselesaikan sebelum waktu
keseluruhan berakhir.
4.
Kelebihan
1.
Mempercepat proses pembangunan dan
memperpendek waktu pengiriman
2.
Nah cocok untuk mengembangkan
proyek-proyek dengan sejumlah fitur dalam periode waktu yang singkat.
5.
Kekurangan
1.
Manajemen proyek menjadi lebih
kompleks.
2.
Tidak cocok untuk proyek-proyek di
mana seluruh pekerjaan pembangunan tidak dapat dibagi menjadi beberapa iterasi
hampir, durasi yang sama.
F.
EXTREME PROGRAMING AND AGLIE PROSES
Agile Process merupakan sekelompok
aktivitas pembangunan perangkat lunak secara iteratif yang menekankan pada aktivitas
konstruksi (Desai & Koding). Agile Process mengeliminasi sebagian besar
waktu untuk melakukan perencanaan sitem dan berusaha sebisa mungkin mematuhi
jadwal deliver system yang telah dijanjikan. Requirements yang dibutuhkan
secara langsung di – drive oleh pelanggan itu sendiri, dan apabila terjadi
perubahan terhadap requirments tersebut, pengembang dituntut mampu beradaptasi
dengan perubahan yang terjadi. Extreme Programming termasuk pendekatan Agile
process.
1.
Penjelasan
Extreme Programming (XP) merupakan salah satu
metodologi dalam rekayasa perangkat lunak dan juga merupakan satu dari
beberapa agile software development methodologies yang berfokus
pada coding sebagai aktivitas utama di semua tahap pada siklus
pengembangan perangkat lunak (software development lifecycle). Metodologi ini
mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan
customer (”agile”) dibandingkan dengan metode-metode tradisional sambil
membangun suatu software dengan kualitas yang lebih baik.
Extreme Programming muncul menawarkan sebuah disiplin
baru dalam pengembangan software secara agile. Nilai dasar yang terkandung
di dalam Extreme Programming adalah: Komunikasi (Communication), Kesederhanaan
(Simplicity), Umpan balik (Feedback) Keberanian (Courage) dan menghormati
(Respect).
2.
Diagram
3.
Proses/Cara Kera Kerja
Ø Perencanaan XP: pengumpulan user stories dari klien yang
klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama
pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story
yang lebih kecil. Periksa dan pertimbangkan resiko
Ø Desain XP berprinsip: sederhana memanfaatkan kartu CRC
(Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class
di konsep OO. Jika temui kesulitan, prototype dibangun (ini namanya spike
solution). Lakukan refactoring, yaitu mengembangkan desain dari program setelah
ditulis.
Ø Pengkodean XP: siapkan unit test sebelum pengkodean dipakai
sebagai fokus pemrogram untuk membuat program. Pair programming dilakukan untuk
real time program solving dan real time quality assurance
Ø Pengujian XP: menggunakan unit test yang dipersiapkan
sebelum pengkodean.
4.
Kelebihan
Keuntungan XP:
a.
Menjalin
komunikasi yang baik dengan client.
b.
Meningkatkan
komunikasi dan sifat saling menghargai antar developer.
5.
Kekurangan
Kekurangan XP:
a.
Developer harus
selalu siap dengan perubahan karena perubahan akan selalu diterima.
b.
Tidak bisa membuat
kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan
apa yang diperlukan hari itu juga).
Tidak ada komentar:
Posting Komentar