Unified Process (RUP), Extreme Programming (XP), Agile Modeling, dan Scrum.
XP merupakan suatu model yang tergolong dalam pendekatan agile yang diusulkan oleh Kent
Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme Programming (XP) is
a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop software”.
Model ini cenderung menggunakan pendekatan Object-Oriented serta tahapan-tahapan yang
harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming
adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan
sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas
maupun terjadinya perubahan-perubahan requirements yang sangat cepat. Extreme
Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah
pendekatan yang sangat terkenal.
Agile Modeling merupakan filosofi tentang bagaimana membangun model dengan beberapa
diantaranya dilakukan dengan format yang terperinci sedangkan model lain beberapa ada yang
dilakukan secara samar dan minimalis. Agile Software Development juga melihat pentingnya
komunikasi antara anggota tim, antara orang-orang teknis dan businessman, serta antara
developer dan managernya. Ciri lain dari Agile Software Development adalah klien menjadi
bagian dari tim pembangun software.
MODEL WATERFALL
Model Waterfall merupakan salah satu metode dalam SDLC (System Development Life Cycle) yang
mempunyai ciri khas pengerjaan setiap fase dalam watefall harus diselesaikan terlebih dahulu sebelum
melanjutkan ke fase selanjutnya. Artinya fokus terhadap masing-masing fase dapat dilakukan maksimal karena
tidak adanya pengerjaan yang sifatnya paralel.
c. 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.
d. Pengkodean (Coding)
Pengkodean piranti lunak merupakan proses penulisan bahasa program agar piranti lunak
tersebut dapat dijalankan oleh mesin.
e. 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.
f. 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.
2. Kapan Sebaiknya Model Water Fall Digunakan
Proses menjadi lebih teratur, urutan proses pengerjaan menggunakan metode ini menjadi lebih teratur
dari satu tahap ke tahap yang selanjutnya. Dari sisi user juga lebih menguntungkan karena dapat merencanakan
dan menyiapkan seluruh kebutuhan data dan proses yang akan diperlukan.
Jadwal menjadi lebih menentu, jadwal setiap proses dapat ditentukan secara pasti. Sehingga dapat
dilihat jelas target penyelesaian pengembangan program. Dengan adanya urutan yang pasti, dapat dilihat pula
progress untuk setiap tahap secara pasti.
Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses. Jika terdapat kekuarangan
proses atau prosedur dari tahan sebelumnya, maka tahapan pengembangan harus dilakukan mulai dari awal.
Hal ini akan memakan waktu yang cukup lama. Karena jika proses sebelumnya belum selesai sampai akhir,
maka proses selanjutnya juga tidak dapat berjalan. Maka, jika terdapat kekuarangan dalam permintaan user,
proses pengembangan harus dimulai dari awal.
Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang konsumen bisa memberikan
kebutuhan secara lengkap diawal. Untuk menghindari pengulangan tahap dari awal, user harus memberikan
seluruhh prosedur, data dan laporan yang diinginkan mulai dari tahap awal pengembangan. Tetapi di banyak
kondisi, user sering melakukan permintaan si tahap pertengahan pengembangan sistem. Dengan metode ini,
maka development harus dilakukan mulai dari tahap awal. Karena development disesuaikan dengan design
hassil user pada saat tahap awal pengembangan.
a. Sebagai akibat dari biaya pembuatan dan persetujuan dokumen, iterasi menjadi mahal dan
melibatkan pengerjaan ulang yang signifikan. Dengan demikian, setelah sejumlah iterasi
kecil, normal membekukan bagian dari pengembangan seperti spesifikasi. Masalah-masalah
dikesampingkan, diabaikan atau dihindari untuk pemecahan kemudian. Pembekuan
persyaratan dini ini bisa berarti bahwa sistem tidak dapat melakukan seperti yang diinginkan
user.
b. Sistem memiliki struktur yang buruk jika masalah perancangan dihindari dengan trik
implementasi. Dengan demikian pada fase akhir perangkat lunak digunakan, error dan
penghapusan persyaratan perangkat lunak yang asli akan ditemukan.
c. Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel. Komitmen harus
dilakukan pada tahap awal proses dan akan sulit bagi perekayasa untuk menanggapi
perubahan persyaratan pelanggan.
B. METODE PROTOTYPING
Prototyping merupakan salah satu metode pengembangan perangat lunak yang
banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat
salingberinteraksi selama proses pembuatan sistem.
Kunci agar model prototype ini berhasil dengan baik adalah dengan mendefinisikan aturan-
aturan main pada saat awal, yaitu pelanggan dan pengembang harus setuju bahwa prototype
dibangun untuk mendefinisikan kebutuhan. Prototype akan dihilangkan sebagian atau
seluruhnya dan perangkat lunak aktual aktual direkayasa dengan kualitas dan implementasi
yang sudah ditentukan.
1. Tahapan-Tahapan Prototyping
Tahapan-tahapan dalam Prototyping adalah sebagai berikut :
a. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak,
mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
b. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada
penyajian kepada pelanggan (misalnya dengan membuat input dan formatoutput).
c. Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai
dengan keinginann pelanggan. Jika sudah sesuai maka langkah d akan diambil. Jika tidak
prototyping direvisi dengan mengulangu langkah a, b , dan c.
d. Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam
bahasa pemrograman yang sesuai.
e. Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu
sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box,Basis Path,
pengujian arsitektur dan lain-lain.
f. Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan
yang diharapkan. Jika ya, langkah g dilakukan jika tidak ulangi langkah d dan e.
g. Menggunakan Sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
2. Kelebihan Prototyping
3. Kekurangan Prototyping
1. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum
mencantumkan kualitas perangkat lunak secara keseluruhan dan juga belummemikirkan
kemampuan pemeliharaan untuk jangja waktu lama.
a. Bussines Modelling
Aliran informasi diantara funsi-fungsi bisnisdimodelkan dengan suatu cara untuk
menjawab pertanyaan-pertanyaan berikut: Informasi apa yg mengendalikan proses
bisnis? Informasi apa ygdimunculkan? Siapa yg memunculkan? Ke mana
informasi itu pergi? Siapa yg memprosesnya?
b. Data Modelling
Aliran informasi yg di definisikan sebagai bagian darifase bussiness modelling di saring ke d
alamserangkaian objek data yg dibutuhkan untuk menopangbisnis tersebut. Karakteristik (dis
ebut atribut) masing-masing objek diidentifikasi dan hubungan antara objek-objek tersebut
didefinisikan.
c. ProsessModeling
Aliran informasi yg didefinisikan di dalam fase datamodelling ditransformasikan untuk menc
apai aliraninformasi yg perlu bagi implementasi sebuah fungsibisnis. Gambaran pemrosesan
digunakan untukmenambah, memodifikasi, menghapus, ataumendapatkan kembali sebuah ob
jek data.
d. Aplication generation
RAD mengasumsikan pemakaian teknik generasi ke-empat. Selain menciptakan perangkat
lunak denganmenggunakan bahasa pemrograman generasi ke-tiga ygkonvensional, RAD
lebih banyak memproses kerjauntuk memakai lagi komponen program yg ada (padasaat mem
ungkinkan) atau menciptakan komponen ygbisa dipakai lagi (bila perlu). Pada semua kasus,
alat-alat bantu otomatis dipakai untuk memfasilitasikonstruksi perangkat lunak.
e. Testing and turnover
Karena proses RAD menekankan pada pemakaiankembali, banyak komponen program telah
diuji. Hal inimengurangi keseluruhan waktu pengujian. Tetapikomponen baru harus diuji dan
semua interface harusdilatih secara penuh.
Jika keutuhan yang diinginkan pada tahap analisis kebutuhan telah lengkap dan jelas,
maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak yang
dibuat adalah berkisar 60 sampai 90 hari.
Model RAD hampir sama dengan model waterfall, bedanya siklus pengembangan
yang ditempuh model ini sangat pendek dengan penerapan teknik yang cepat.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam
waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan
banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan
pembagian modul sistem.
D. METODE SDLC
Model SDLC atau Sekuensial Linier sering disebut juga Model Air Terjun. Model ini
mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan
sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode,
pengujian, dan pemeliharaan
Model ini disusun bertingkat, setiap tahap dalam model ini dilakukan berurutan, satu
sebelum yang lainnya. Model ini biasanya digunakan untuk membuat sebuah software dalam
skala besar dan yang akan dipakai dalam waktu yang lama.
Sangat cocok untuk pengembangan sistem yang besar. Tidak sesuai atau tidak terlalu
disarankan untuk small scale projectkarena:
I. Resource intensive
II. Tidak fleksibel
III. Sulit untuk aplikasi dengan perubahan cara pengambilan keputusan yang cepat.
1. TAHAPAN-TAHAPAN (SDLC)
a. Fase Perencanaan Sistem
Dalam tahapan ini dibentuk suatu struktur kerja strategis yang luas dan pandangan sistem
informasi baru yang jelas yang akan memenuhi kebutuhan-kebutuhan pemakai informasi.
Proyek sistem dievaluasi dan dipisahkan berdasarkan prioritasnya. Proyek dengan prioritas
tertinggi akan dipilih untuk pengembangan. Penyediaan sumber daya baru dan penyediaan
dana untuk pengembangan sistem.
Rencana kerja yang matang juga disusun untuk menjalankan tahapan-tahapan lainnya.
Hasil dari tahapan ini adalah Langkah-langkah detail rencana kerja dan penugasan untuk
anggota tim.
2. Kekurangan
- Jarang sekali proyek riil mengikuti aliran sekuensial yang dianjurkan model karena model
ini bisa melakukan itersi tidak langsung.
- Pelanggan sulit untuk menyatakan kebutuhan secara eksplisit sehingga sulit untuk
megakomodasi ketidakpastian pada saat awal proyek.
- Pelanggan harus bersikap sabar karena harus menunggu sampai akhir proyrk dilalui. Sebuah
kesalahan jika tidak diketahui dari awal akan menjadi masalah besar karena harus mengulang
dari awal.
- Pengembang sering malakukan penundaan yang tidak perlu karena anggota tim proyek harus
menunggu tim lain untuk melengkapi tugas karena memiliki ketergantungan hal ini
menyebabkan penggunaan waktu tidak efesien.
E. METODE SPIRAL
Model spiral pada awalnya diusulkan oleh Boehm, adalah model proses perangkat lunak
evolusioner yang merangkai sifat iteratif dari prototype dengan cara kontrol dan aspek
sistematis model sequensial linier. Model iteratif ditandai dengan tingkah laku yang
memungkinkan pengembang mengembangkan versi perangkat lunak yang lebih lengkap
secara bertahap.
b. Kekurangan
I. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
II. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika
resiko mayor tidak ditemukan dan diatur.
III. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute
a. Model Waterfall
berikut:
Dalam pengembangannya, metode Waterfall memiliki beberapa tahapan yang
runtut: Requirement (analisis kebutuhan), Desain Sistem (system design), Coding
& Testing, penerapan program dan pemeliharaan. Tahapan tahapan dari metode
Waterfall adalah sebagai berikut :
1. Requirement Analysis
Pada tahap ini, pengembang sistem diperlukan suatu komunikasi yang bertujuan
untuk memahami software yang diharapkan pengguna dan batasan software.
Informasi ini biasanya dapat diperoleh melalui wawancara, survei atau diskusi.
Informasi tersebut dianalisis untuk mendapatkan data yang dibutuhkan oleh
pengguna.
2. System Design
Spesifikasi kebutuhan dari tahap pertama akan dipelajari dalam fase ini dan desain
sistem disiapkan. Desain Sistem membantu dalam menentukan perangkat keras
dan sistem persyaratan dan juga membantu dalam mendefinisikan arsitektur sistem
secara keseluruhan.
3. Implementation
Pada tahap ini, sistempertama kali dikembangkan di program kecil yang disebut
unit, yang terintegrasi dalam tahap berikutnya. Setiap unit dikembangkan dan diuji
untuk fungsionalitas yang disebut sebagai Unit Testing.
Ini merupakan tahap terakhir dalam model waterfall. Softwareyang sudah jadi
dijalankan serta dilakukan pemeliharaan. Pemeliharaan termasuk dalam
memperbaiki kesalahan yang tidakditemukan pada langkah sebelumnya.
Perbaikan implementasi unitsistem dan peningkatan jasa sistem sebagai kebutuhan
baru
Kelebihan Waterfall :
Kerugian Waterfall :
b. Model v
Tahap Requirement Analysis sama seperti yang terdapat dalam model waterfall.
Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna. Acceptance
Testing merupakan tahap yang akan mengkaji apakah dokumentasi yang dihasilkan
tersebut dapat diterima oleh para pengguna atau tidak.
Dalam tahap ini analis sistem mulai merancang sistem dengan mengacu pada
dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap sebelumnya.
Keluaran dari tahap ini adalah spesifikasi software yang meliputi organisasi sistem
secara umum, struktur data, dan yang lain. Selain itu tahap ini juga menghasilkan
contoh tampilan window dan juga dokumentasi teknik yang lain seperti Entity
Diagram dan Data Dictionary.
Sering juga disebut High Level Design. Dasar dari pemilihan arsitektur yang akan
digunakan berdasar kepada beberapa hal seperti: pemakaian kembali tiap modul,
ketergantungan tabel dalam basis data, hubungan antar interface, detail teknologi
yang dipakai.
Sering juga disebut sebagai Low Level Design. Perancangan dipecah menjadi
modul-modul yang lebih kecil. Setiap modul tersebut diberi penjelasan yang cukup
untuk memudahkan programmer melakukan coding. Tahap ini menghasilkan
spesifikasi program seperti: fungsi dan logika tiap modul, pesan kesalahan, proses
input-output untuk tiap modul, dan lain-lain.
5. Coding
Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah
dibentuk.
Keuntungan V Model :
Kerugian V Model :
Prototyping adalah pengembangan yang cepat dan pengujian terhadap model kerja
(prototipe) dari aplikasi baru melalui proses interaksi dan berulang ulang yang
biasa digunakan ahli sistem informasi dan ahli bisnis. Prototyping disebut juga
desain aplikasi cepat (rapid application design/RAD) karena menyederhanakan
dan mempercepat desain sistem (O’rien, 2005).
1. Dapat menjalin komunikasi yang baik antar user dan pengembang sistem
2. Setiap perbaikan yang dilakukan pada prototype merupakan hasil masukan
dari user yang akan menggunakan sistem tersebut, sehingga lebih reliabel
3. User akan memberikan masukan terhadap sistem sesuai dengan kemauannya
4. Menghemat waktu dalam mengembangkan sebuah sistem
5. Menghemat biaya, terutama pada bagian analisa, karena hanya mencatat
poin – point penting saja
6. Cocok digunakan pada sebuah sistem kecil, yang digunakan pada ruang
lingkup tertentu, seperti sistem di dalam sebuah kantor
7. Penerapan dari sistem yang menjadi lebih mudah untuk dilakukan.
Fase ini adalah fase untuk merancang dan memperbaiki yang bisa digambarkan
sebagai workshop. Penganalisis dan dan pemrogram dapat bekerja membangun
dan menunjukkan representasi visual desain dan pola kerja kepada pengguna.
Workshop desain ini dapat dilakukan selama beberapa hari tergantung dari ukuran
aplikasi yang akan dikembangkan. Selama workshop desain RAD, pengguna
merespon prototipe yang ada dan penganalisis memperbaiki modul-modul yang
dirancang berdasarkan respon pengguna. Apabila sorang pengembangnya
merupakan pengembang atau pengguna yang berpengalaman, Kendall menilai
bahwa usaha kreatif ini dapat mendorong pengembangan sampai pada tingkat
terakselerasi (Kendall, 2010).
3. Implementation (Implementasi)
Pada fase implementasi ini, penganalisis bekerja dengan para pengguna secara
intens selama workshop dan merancang aspek-aspek bisnis dan nonteknis
perusahaan. Segera setelah aspek-aspek ini disetujui dan sistem-sistem dibangun
dan disaring, sistem-sistem baru atau bagian dari sistem diujicoba dan kemudian
diperkenalkan kepada organisasi (Kendall, 2010).
Sedangkan, mengacu pada pendapat Kendall (2010), maka dapat diketahui bahwa
kekurangan penerapan metode RAD adalah sebagai berikut:
a. Incremental Model
Incremental model adalah model pengembangan sistem pada software engineering
berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau
bagian sehingga model pengembangannya secara bertahap. dilain pihak ada
mengartikan model incremental sebagai perbaikan dari model waterfall dan
sebagai standar pendekatan topdown. Layaknya Model Waterfall, model ini pun
juga memiliki tahapan tahapan untuk perancangan perangkat lunaknya, yaitu:
1. Perencanaan (Planning)
3. Perekayasaan (Engineering)
Pada model ini aktifitas kerja dilakukan secara bersamaan, setiap proses kerja
memiliki beberapa pemicu kerja dari aktifitas. Pemicu dapat berasal dari awal
proses kerja maupun dari pemicu yang lain karena setiap pemicu akan saling
berhubungan. Misalnya proses desain akan berubah atau dihentikan sementara
karena ada perubahan permintaan kebutuhan dari customer.
Kelebihan dari Model CDM : Hasil yang di dapat akan menghasilkan suatu sistem
yang sangat baik karena terdapat perancangan yang terjadi secara besar dan
terencana secara matang.
Dalam ilmu komputer, rekayasa perangkat lunak khusus, metode formal adalah
jenis tertentu dari teknik matematis berdasarkan untuk spesifikasi, pengembangan
dan verifikasi sistem perangkat lunak dan perangkat keras. Penggunaan metode
formal untuk perangkat lunak dan desain hardware dimotivasi oleh harapan
bahwa , seperti dalam disiplin ilmu teknik lainnya, melakukan analisis matematis
yang tepat dapat berkontribusi untuk keandalan dan ketahanan dari desain.
Seperti dengan semantik bahasa pemrograman, gaya metode formal dapat secara
kasar diklasifikasikan sebagai berikut:
Denotational semantik, di mana makna dari suatu sistem dinyatakan dalam teori
matematika dari domain. Pendukung metode tersebut bergantung pada sifat
dipahami dengan baik domain untuk memberi arti bagi sistem, kritikus
menunjukkan bahwa tidak setiap sistem mungkin secara intuitif atau alami
dipandang sebagai fungsi.
Operasional semantik, di mana makna dari suatu sistem dinyatakan sebagai urutan
tindakan model (mungkin) komputasi sederhana. Pendukung metode tersebut
menunjukkan kesederhanaan model mereka sebagai alat untuk kejelasan ekspresif,
kritikus kontra bahwa masalah semantik baru saja tertunda (yang mendefinisikan
sem antik dari model sederhana?).
Aksiomatis semantik, dimana arti dari sistem dinyatakan dalam prasyarat dan
postconditions yang benar sebelum dan setelah sistem melakukan tugas masing-
masing. Para pendukung perhatikan koneksi ke logika klasik, kritik mencatat
bahwa semantik seperti itu tidak pernah benar-benar menggambarkan apa yang
sistem tidak (hanya apa yang benar sebelum dan sesudahnya).
1. biaya tinggi
2. kompleks
3. Tidak Umum untuk Ptoyek software pada umumnya
Dewasa ini, 4GT tools dipakai sebagai bahasa non prosedur untuk DataBase
Query, Pembentukan laporan (Report Generation), Manipulasi data, Definisi dan
interaksi layar (screen), Pembentukan object dan source (Object and source
generation ), Kemampuan grafik yang tinggi, dan Kemampuan spreadsheet.
Tahap Merancang Strategi: tahap ini dibutuhkan untuk proyek besar yakni dengan
menterjemahkan kebutuhan menjadi prototipe operasional agar tidak timbul
masalah yang sama jika dibuat dengan model konvensional. Namun, untuk proyek
skala kecil tahap ini dapat dihilangkan dengan langsung melakukan implementasi
dengan menggunakan bahasa generasi keempat (4GT).
Tahap Implementasi Menggunakan Bahasa Keempat: untuk skala kecil tahap ini
dapat langsung dilakukan ketika kebutuhan telah jelas, dan untuk proyek besar
tahapan ini dijalankan setelah dirancang prototipe operasional. Implementasi yang
menggunakan 4GT memudahkan pengembang software untuk menjelaskan hasil
yang diharapkan yang nantinya akan diterjemahkan ke dalam bentuk kode sumber
dan kode objek.