EXTREME PROGRAMMING
Jumat, 18 Maret 2022
PROTOTYPING DAN THROW AWAY PROTOTYPING
Sejarah Prototyping
Pada tahun 1960-an: Teknik-teknik prototyping pertama cepat menjadi diakses pada tahun delapan puluhan kemudian dan mereka digunakan untuk produksi komponen prototipe dan model. Sejarah prototipe cepat dapat ditelusuri sampai akhir tahun enam puluhan, ketika seorang profesor teknik, Herbert Voelcker, mempertanyakan dirinyasendiri tentang kemungkinan melakukan hal-hal menarik dengan alat komputer dikontroldan otomatis mesin. Alat-alat mesin baru saja mulai muncul di lantai pabrik itu. Voelcker berusaha mencari jalan di mana alat-alat mesin otomatis dapat diprogram denganmenggunakan output dari program desain komputer.Kemudian 1970: Voelcker mengembangkan alat dasar matematika yang dengan jelas menggambarkan tiga aspek dimensi dan menghasilkan teori-teori awal teorialgoritma dan matematika untuk pemodelan solid. Teori-teori ini membentuk dasar program komputer modern yang digunakan untuk merancang hampir segala hal mekanis,mulai dari mobil mainan terkecil ke gedung pencakar langit tertinggi. teori Volecker berubah metode perancangan pada tahun tujuh puluhan, namun, metode lama untuk merancang masih sangat banyak digunakan. Metode lama terlibat baik alat masinis ataumesin dikendalikan oleh komputer. Para cowok logam dipotong dan bagian yangdibutuhkan tetap sesuai kebutuhan.
Namun, pada tahun 1987, Carl Deckard, bentuk penelitian dari University Of Texas, datang dengan ide yang revosioner yang baik. Dia memelopori manufaktur yang berbasis lapisan, dimana ia memikirkan membangun lapisan model dengan lapisan. Dengan dicetak model 3D dengan menggunakan sinar laser untuk bedak sekering logam dalam prototype solid, single layar pada suatu waktu. Deckard mengembangkan ide ini menjadi sebuah teknik yang disebut “Selective Laser Sintering”.
Tahapan Prototyping :
Tahapan-tahapan dalam Prototyping adalah sebagai berikut:
1. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
3. Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulang langkah 1, 2 , dan 3.
4. Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
5. 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.
6. Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan. Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.
7. Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Kelebihan Prototyping
- Adanya komunikasi yang baik anatar pengembang dan pelanggan
- Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
- Pelanggan berperan aktif dalam pengembangan sistem
- Lebih menghemat waktu dalam pengembangan sistem
- Penerapan menjadi lebih mudah karena pemakai mengetahui yang diharapkannya.
- Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum mencantumkan kualitas perangkat lunak secara keseluruhan dan juga belum memikirkan kemampuan pemeliharaan untuk jangka waktu lama.
- Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga menggunakan algoritma dan bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai tanpa memikirkan lebih lanjut bahwa program tersebut hanya merupakan cetak biru sistem.
- Hubungan pelangga dengan komputer yang disediakan mungkin tidak mencerminkan teknik perancangan yang baik.
- Dalam membuat prototype banyak hal yang diabaikan seperti efisiensi, kualitas kemudahan dipelihara atau dikembangkan, dan kecocokan dengan lingkungan yang sebenarnya. Jika pelanggan cocok dengan prototype yang disajikan dan berkas terhadap produk tersebut, maka developer harus kerja keras untuk mewujudkan produk tersebut menjadi lebih baik, sesuai kualitas yang seharusnya.
- Developer biasanya melakukan kompromi dalam beberapa hal karena harus membuat prototype dalam waktu singkat. Mugkin sistem operasi yang tidak sesuai, bahasa pemrograman yang berbeda, atau algoritma yang sederhana. Agar model ini bisa berjalan dengan baik, perlu disepakati bersama oleh pelanggan dan developer bahwa prototype yang dibangun merupakan alat untuk mendefinisikan kebutuhan.
Perbedaan Antara Prototyping dan Throw Away Prototyping :
- Prototype digunakan saat sampai sistem final.
- Sedangkan throw away, prototype tidak digunakan atau dibuang.
Seorang pelanggan mendefinisikan serangkaian sasaran umum bagi perangkat lunak, tetapi tidak melakukan mengidentifikasi kebutuhan output, pemrosesan, atupun input detail. Pada kasus yang lain, pengembang mungkin tidak memiliki kepastian terhadap efisiensi algoritme, kemampuan penyesuaian dari sebuah sistem operasi,atau bentuk-bentuk yang harus dilakukan oleh interaksi manusia dengan mesin. Dalam hal ini, serta pada banyak situasi yang lain, prototyping paradigma mungkin menawarkan pendekatan yang terbaik. Prototyping paradigma dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari software, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar diman definisi lebih jauh merupakan keharusan kemudian dilakukan “perancangan kilat”. Perancangan kilat berfokus pada penyajian dari aspek-aspek software tersebut yang akan nampak bagi pelanggan atau pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototipe. Prototipe tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan software. Iterasi terjadi pada saat prototipe disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya.
Sejarah Throw Away Prototyping
Pada tahun 1960-an Herbert Voelcker,1970: Voelcker mengembangkan alat dasar matematika yang dengan jelas menggambarkan tiga aspek dimensi dan menghasilkan teori-teori awal seperti teori algoritma dan matematika untuk pemodelan solid.
Pada tahun 1987, Carl Deckard, membentuk tim peneliti dari University of Texas. datang dengan ide yang revolusioner yang baik
Throw Away Prototyping adalah suatu metode yang sama persis dengan metode prototyping lainnya dimana hal ini merupakan hasil perkembangan dari prototype Tetapi throw away prototype lebih mengarah pada hasil presentasi nya.
- Throw-Away prototyping menggunakan prototyping untuk tujuan yang berbeda dari prototyping sebelumnya
- Melakukan analisis secara menyeluruh, untuk mengumpulkan informasi & mengembangkan ide-ide untuk sebuah konsep sistem.
- Masalah yang muncul diujicobakan/diselesaikan dengan menganalisa, mendesign, & membangun sebuah prototype (yang dinamakan design prototype)
- Yang dibangun merupakan fitur yang blm dipahami dengan jelas
- Sebagai contoh, pengguna tidak sepenuhnya jelas tentang bagaimana sistem entry order harus bekerja.
Tim analis membangun serangkaian halaman HTML yang diperlihatkan untuk membantu klien memvisualisasikan sistem yang dibangun.. Jika menginginkan program canggih di Java, tim bisa menulis bagian dari program dengan data contoh (sample) untuk memastikan bahwa mereka bisa mendapatkan apa yang diinginkan klien dengan tepat. Namun ini hanyalah design prototype (rancangan) ini bukan bagian dari produk. Membuat design prototype untuk memahami kebutuha.Jika design prototype merupakan hal yang diinginkan & dapat mengatasi masalah, design prototype dibuang, selanjutnya memasuki tahap design, implementasi, system yang sesungguhnya.
Kelebihan Throw Away Prototyping
- Setiap prototype yang dibangun dapat meminimalkan resiko terkait isu-isu / masalah yang akan dihadapi oleh sistem.
- Menyeimbangkan fase analisis & design Kekurangan.
Kekurangan Throw Away Prototyping
- Sistem yang dikembangkan bergantung pada rancangan prototype.
Tahapan Throw-Away Prototyping :
- Tentukan kebutuhan. Tentukan apa kebutuhan user. Analis system mewawancarai user untuk mendapatkan ide tentang apa yang diinginkan oleh user dari system yang akan dikembangkan.
- Buat prototype. Analis system bekerja sama dengan ahli komputer yang lain, dengan memanfaatkan satu atau beberapa alat bantu untuk pembuatan prototype, mengembangkan prototype.
- Evaluasi. Analis system memperkenalkan prototype kepada user, menuntun user untuk mengenali karakteristik dari prototype. Dari kesempatan uji coba ini, user akan memberikan pendapatnya pada analis sistem. Kalau prototype diterima dilanjutkan ketahap selanjutnya.
- Kalau ada perbaikan maka langkah berikutnya adalah mengulangi tahap1, 2 dan 3 dengan pengertian yang lebih baik tentang apa yang diinginkan oleh user.
Contoh kasus Throw Away Prototyping
Dalam pelaksanaannya, system akademik yang berjalan di Sekolah Menengah Atas Negeri 1 Lampung dirasa belum optimal, hal ini dikarenakan sistem yang digunakan masih bersifat manual. Dengan permasalahan tersebut , maka muncul berbagai permasalahan terutama pada proses pendaftaran,registrasi, pembagian kelas, pembagian wali kelas, proses penilaian serta informasi mengenai perkembangan siswa kepada orang tua. Untuk itu, diperlukan suatu sistem informasi yang mampu mendukung pengambilan keputusan dalam memperoleh informasi kegiatan akademik. Pembuatan Sistem Informasi Akademik Sekolah Menengah Atas Negeri 1 Lampung menggunakan pendekatan terstruktur, sedangkan metode pengembangan menggunakan prototype dengan teknik pengumpulan data observasi dan wawancara, sedangkan alat yang digunakan dalam merancang sistem berupa Flow Map, Diagram Konteks, DFD dan pengembangan aplikasi berbasis desktop.Sistem yang dibangun disajikan secara client server sehingga dapat diakses beberapa komputer. Sistem yang dibangun diharapkan dapat mengatasi sebagian besar permasalahan yang ada seperti melakukan validasi kerangkapan data registrasi dan nilai siswa, pembagian kelas dan penilaian.
sumber : https://crushhsenda.blogspot.com/2021/03/prototyping-dan-throw-away- prototyping.html
Selasa, 15 Maret 2022
WATERFALL
1. Sejarah dan tahapan model waterfall
Sejarah Model Waterfall
Penggunaan metode waterfall pertama kali diperkenalkan oleh
Herbert D. Benington di Symposium on Advanced Programming Method for Digital
Computers pada tanggal 29 Juni 1956. Presentasi tersebut menjelaskan tentang
pengembangan perangkat lunak untuk SAGE (Semi Automatic Ground Environment).
Pada tahun 1983, dipresentasikan kembali oleh Benington dan
menjelaskan tentang fase – fase dalam proses pengembangannya. Dan pada tahun
1985, Departemen Pertahanan Amerika Serikat juga menggunakan metode ini dengan
beberapa tahapan yang digunakan, terdiri dari 6 fase, yaitu: Preliminary
design, Detailed design, Coding and unit testing, Integration, dan Testing.
Tahapan Model Waterfall
Setelah mengetahui apa itu metode waterfall, selanjutnya
masuk pada pembahasan mengenai tahapan metode waterfall.
1. Requirement
Tahapan metode waterfall yang pertama adalah mempersiapkan
dan menganalisa kebutuhan dari software yang akan dikerjakan. Informasi dan
insight yang diperoleh dapat berupa dari hasil wawancara, survei, studi
literatur, observasi, hingga diskusi.
Biasanya di dalam sebuah perusahaan, tim analis akan
menggali informasi sebanyak – banyaknya dari klien atau user yang menginginkan
produk beserta dengan kebutuhan sistemnya. Selain itu, juga dapat mengetahui
setiap batasan dari perangkat lunak yang akan dibuat.
2. Design
Tahap yang selanjutnya adalah pembuatan desain aplikasi
sebelum masuk pada proses coding. Tujuan dari tahap ini, supaya mempunyai
gambaran jelas mengenai tampilan dan antarmuka software yang kemudian akan
dieksekusi oleh tim programmer.
Untuk proses ini, akan berfokus pada pembangunan struktur
data, arsitektur software, perancangan interface, hingga perancangan fungsi
internal dan eksternal dari setiap algoritma prosedural. Tim yang mengerjakan
tahap ini, biasanya lebih banyak menggunakan UI/UX Designer, atau orang yang
memiliki kemampuan dalam bidang desain grafis atau Web Designer.
3. Implementation
Tahapan metode waterfall yang berikutnya adalah implementasi
kode program dengan menggunakan berbagai tools dan bahasa pemrograman sesuai
dengan kebutuhan tim dan perusahaan. Jadi, pada tahap implementasi ini lebih
berfokus pada hal teknis, dimana hasil dari desain perangkat lunak akan
diterjemahkan ke dalam bahasa pemrograman melalui tim programmer atau
developer.
Di dalam tahap pengembangan, biasanya dibagi lagi menjadi 3
tim yang memiliki tugas yang berbeda. Pertama ada front end (untuk client
side), backend (untuk server side), dan full stack (gabungan antara front end
dan backend). Selain itu, pada tahap ini juga dilakukan pemeriksaan lebih dalam
terkait dengan modul yang sudah dibuat, apakah berjalan dengan semestinya atau
tidak.
4. Integration & Testing
Tahap yang keempat, masuk dalam proses integrasi dan
pengujian sistem. Pada tahap ini, akan dilakukan penggabungan modul yang sudah
dibuat pada tahap sebelumnya. Setelah proses integrasi sistem telah selesai,
berikutnya masuk pada pengujian modul.
Yang bertujuan untuk mengetahui apakah perangkat lunak sudah
sesuai dengan desain, dan fungsionalitas dari aplikasi apakah berjalan dengan
baik atau tidak. Jadi, dengan adanya tahap pengujian, maka dapat mencegah
terjadinya kesalahan, bug, atau error pada program sebelum masuk pada tahap
produksi. Orang yang bertanggung jawab untuk melakukan testing adalah QA
(Quality Assurance) dan QC (Quality Control).
5. Operation & Maintenance
Tahapan metode waterfall yang terakhir adalah pengoperasian
dan perbaikan dari aplikasi. Setelah dilakukan pengujian sistem, maka akan
masuk pada tahap produk dan pemakaian perangkat lunak oleh pengguna (user).
Untuk proses pemeliharaan, memungkinkan pengembang untuk melakukan perbaikan
terhadap kesalahan yang ditemukan pada aplikasi setelah digunakan oleh user.
Jadi, pada intinya model waterfall ini dalam proses pemakaiannya mengikuti prinsip dari air terjun. Dimana setiap pekerjaan akan dilakukan secara berurutan mulai dari atas hingga ke bawah. Hal tersebut yang merupakan karakteristik dari SDLC ini.
2.Kelebihan dan Kekurangan Model Waterfall
Kelebihan
Salah satu kelebihan dalam metode ini adalah dengan model pengerjaannya yang linear, sehingga meminimalisir kesalahan. Selain itu, pengerjaan yang terstruktur dan terlihat jelas arahnya, membuat metode ini juga bisa menjadi pilihan yang cocok dalam pengembangan software.
Berikut ini merupakan beberapa kelebihan yang ada dalam model waterfall ini.
Sistem rangkaian jelas
Memiliki alur yang jelas, membuat pengerjaan proyek akan semakin
mendetail. Dengan begitu, kesalahan bisa dikurangi. Semakin terperinci tugas
yang akan dikerjakan, maka semakin kecil juga potensi kesalahan yang akan
dilakukan.
Gambaran akhir yang jelas
Pada
tahap awal pengembangan melalui metode ini, dibutuhkan analisa data yang jelas
dan lengkap. Hal tersebut membuat proyek memiliki tujuan akhir yang jelas.
Dengan begitu, tentu produk yang dihasilkan akan setia pada konsep awal.
Baik dalam dokumentasi
Salah satu kelebihan yang ada dalam model ini adalah baik dalam dokumentasi. Karena hal tersebut, setiap progres dan informasi bisa tercatat dan dapat diakses oleh pengembang yang lain.
Kekurangan
Dalam model ini, pengembangan software juga memiliki kekurangan. Salah satu kekurangan yang ada adalah dengan tidak fleksibelnya pengerjaan sebuah proyek. Karena pengerjaan yang linear, sulit untuk banyak melakukan perubahan dari konsep awal .Jadi jika ada informasi yang tidak terdokumentasi, maka mustahil untuk dilakukan perubahan.
Berikut ini merupakan beberapa kekurangan yang ada dalam model waterfall ini
Tidak fleksibel
Jika klien memiliki perubahan visi di tengah jalan, tentu akan sulit
bagi pengembang untuk merubahnya. Pengerjaan yang linear memaksa hasil akhir
harus setia dengan konsep di awal.
Memakan waktu yang lama
Pengerjaan
yang linear dan struktural tersebut, memaksa proses yang dilakukan menjadi
lama. Pengerjaan yang tidak bisa dilakukan secara paralel, tentu bisa lebih
memakan banyak waktu.
Potensi kenaikan biaya yang besar
Karena produk software baru bisa dilihat setelah hasil akhirnya jadi,
maka jika ada rasa tidak puas dan revisi dari klien, dibutuhkan pengerjaan
ulang. Karena pengulangan tersebut tentu biaya dan tenaga yang dikeluarkan akan
lebih besar
3.Contoh penggunaan model waterfall
Contoh Metode Waterfall Sistem Informasi
Berikut ini adalah contoh penerapan metode waterfall pada
sistem informasi alumni pada sebuah SMK
No |
Tahapan |
Uraian |
1 |
Alasan
menggunakan waterfall |
Karena
kebutuhan pihak sekolah telah jelas |
2 |
Analisis |
Analisis
kebutuhan dilakukan dengan cara mewawancarai coordinator BK SMK A. Dari
wawancara didapatkan data-data seputar alumni, seperti : total alumni yang
lulus, alumni yang bekerja, dan alumni yang melanjutkan studi |
3 |
Desain |
Perancangan
sistem menggunakan ERD seperti Use Case dan Sequence |
4 |
Implementasi |
Sistem
informasi akan dibuat menggunakan bahasa pemrograman PHP dengan Framework
CodeIgninter. |
5 |
Pengujian
Sistem |
Pengujian
dilakukan pada aspek fungsionalitas kepada ahli sistem informasi, petugas
administrator dan alumni langsung. |
6 |
Maintenance |
Pemeliharaan
akan dilakukan apabila ada update fitur atau memperbaiki kesalahan yang
ditemukan pada saat sistem digunakan langsung oleh user. |
Sumber :
1.https://badoystudio.com/metode-waterfall/
2.https://nucareer.id/article/detail/kelebihan-dan-kekurangan-metode-waterfall-begini-cara- kerjanya
3.
https://www.sekawanmedia.co.id/blog/metode-waterfall/
CONTOH CACAT SISTEM YANG TERSEMBUNYI
Kerugian Kecelakaan Kerja (Teori Gunung Es Kecelakaan Kerja) Kerugian kecelakaan kerja diilustrasikan sebagaimana gunung es di permukaan la...
-
- Latar Belakang Menurut buku (Hartono, 1989) analisis sistem (System analysis) adalah penguraian dari suatu sistem informasi yang utuh...
-
EXTREME PROGRAMMING Di zaman yang berkembang ini, teknologi sebagai kebutuhan yang harus di penuhi dan sangat berpengaruh pada kehidupan m...
-
Kerugian Kecelakaan Kerja (Teori Gunung Es Kecelakaan Kerja) Kerugian kecelakaan kerja diilustrasikan sebagaimana gunung es di permukaan la...