Jumat, 18 Maret 2022

 EXTREME PROGRAMMING


Di zaman yang berkembang ini, teknologi sebagai kebutuhan yang harus di penuhi dan sangat berpengaruh pada kehidupan manusia saat ini. Perkembangan teknologi informasi sebagai motor utama perkembangan ilmu pengetahuan. Perkembangan ilmu pengatahuan yang tinggi membuat para pembuat perangkat lunak menciptakan berbagai macam variasi perangkat lunak, dikarenakan permintaan para pengguna yang tinggi, Untuk menjamin terpenuhinya kebutuhan para pengguna, pengembang perangkat lunak memerlukan langkah-langkah yang tepat, efektif, dan efisien. Untuk itulah berkembang berbagai metodologi perkembangan perangkat lunak. Salah satunya.[2] Pada pembahasan ini adalah metode Extreme Programming (XP). Bagai teman-teman yang belum tau tentang Extreme Programming itu apa ? kelebihan dan kekurangan dari metode yang lain ? maka dari mari kita mulai !!!

11. APA ITU EXTREME PROGRAMMING (XP) ?
Simpelnya Extreme Programming adalah metodologi pengembangan perangkat lunak untuk meningkatkan kualitas perangkat lunak dan responsive terhadap perubahan kebutuhan pelanggan.[3]
Dan dari sumber yang terpercaya Extreme Programming adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative development.[3]
Dari pengertian di atas teman-teman sudah sangat betul-betul paham kan …!!!

  2. SEJARAH
asal mula XP digunakan karena pada saat itu permintaan dari customer yang sering berubah dengan cepat sehingga mengakibatkan putaran kehidupan metode pengembangan perangkat lunak tradisional menjadi lebih pendek dan tidak selaras dengan metode tradisional karena pada umumnya memerlukan desain yang luas dan itu mengakibatkan perubahan desain yang terjadi dan tentu saja memerlukan biaya yang lebih tinggi.[3] Tujuan utama dari XP adalah Meminimalisir biaya yang di perlukan jika ada perubahan dalam pengembangan Perangkat lunak.
Dari tujuan di atas maka Kent Beck dan Ward Cunningham mengusulkan metode baru yang bernama Extreme Programming pada bulan maret 1997.

  3. TAHAPAN DALAM EXTREME PROGRAMMING
XP membantu pengembang membuat code berkualitas dan cepat. Mendefinisikan kualitas sebagai sebuah basis code yang sesuai dengan desain sprsifikasi dan Ekspektasi pelanggan.
Sasaran XP adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu sampai menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang sangat cepat.[1]
Seluruh kontributor dalam proyek yang mengguanakan pendekatan XP duduk Bersama sebagai suatu tim. Tim ini terdiri beberapa peran, antara lain :
-          Programmer
-          Penguji
-          Orang yang mengerti bisnis
-          Analis
-          Manajer
-          Dan lain-lainnya.
Setiap peran tidak mutlak menjadi peran dari satu orang saja. Tim terbaik dalam XP tidak harus memiliki pakar, hanya kontributor umum dengan keterampilan khusus saja. Semua orang di tim XP memberikan kontributor dengan cara apapun yang mereka dapat lakukan.[3]

XP fokus pada:
-          Implentasi desain sederhana
-          Komunikasi antara pengembang dan pelanggan
-          Secara terus menerus menguji basis code
-          Refaktorisasi untuk mengakomodasi perubahan spesifikasi
-          Mencari timbal bailk pelanggan

XP memiliki empat kegiatan dasar mengenai XP untuk proses pengembangan parangkat lunak :
a.      Planning
Dasar XP adalah mekanisme berkelanjutan keterlibatan client melalui umpan balik dalam tahap pengembangan. Terlepas dari pelanggan, pengembang juga menerima umpan balik dari manajer proyek.
Dasar dari umpan balik adalah tes penerimaan pelanggan. Setiap umpan balik dari pelanggan yang menentukan persyaratan revisi menjadi dasar dari desain baru, dan proses desain-coding-tes-planning. Jika pelanggan tetap puas dengan hasl tes iterasi berakhir disana, dan desain untuk iterasi baru dimulai, yang lagi-lagi mengikuti siklus desain-coding-testing-planning.[2]
b.      Design
Iterasi pemrograman XP dimulai dengan merancang. Prinsip-Prinsip dari tahap ini adalah :
·         Dorongan pada kesederhanan dengan mengekspresikan hal yang hanya seklai dan tidak menambahkan fungsi antisipasi.
·         Menggunakan system metafora atau standar pada nama, nama kelas dan metode, dan menyepakati gaya seragam dan format untuk memastikan kompatibilitas antara kerja anggota tim yang berbeda.
·         Menggunakan tanggung jawab software class dan kolaborasi (CRC) kartu yang memungkinkan untuk keberangkatan dari pola pikir prosedural tradisional dan membuat teknologi berorientasi objek. Kartu tersebut memungkinkan semua anggota tim proyek untuk menyumbangkan ide-ide, dan menyusun ide-ide terbaik dalam desain.
·         Menciptakan solusi lanjutan atau program sederhana yang mengeksplorasi solusi protensi untuk masalah tertentu, mengabaikan semua masalah lain, untuk mengurangi resiko.[2]
c.       Coding
Coding merupakan fase paling penting dalam siklus hidup programming Extreme. Pemrograman XP memberikan Prioritas kepada coding yang sebenarnya atas semua tugas-tugas lain seperti dokumentasi untuk memastikan bahwa pelanggan menerima sesuatu yang substansial dalam nilai pada akhir hari. Standar terkait dengan coding meliputi:
·         Mengembangkan kode berdasarkan metofora dan standar yang telah disepakati, dan mengadopsi kebijakan kepemilikan kode kolektif.
·         Pasangan pemrograman atau kode berkembang oleh dua programmer bekerja sama pada satu mesin, yang bertujuan untuk menghasilkan kode berkualitas tinggi dengan biaya yang sama atau kurang.
·         Kepatuhan yang ketat untuk 40 jam workweeks tanpa lembur. Hal ini memastikan para pengembang bekerja di puncak kemampuan mental dan fisik meraka.
·         Integrasi sering kode ke repositori khusus, hanya dengan satu pasangan mengintegrasikan pada suatu waktu untuk mencegah konflik, dan optimasi di akhir.[2]
d.      Testing
Program ekstrim terintegrasi pengujian dengan tahap pengembang dari pada di akhir tahap pengembangan. Semua kode memiliki unit test untuk menghilangkan bug, dan kode melewati semua tes unit tersebut sebelum rilis.
Tes kunci lain adalah tes penerima client, berdasarkan spesifikasi pelanggan. Tas penerimaan dijalankan pada penyelesaian coding, dan pengembang menyediakan pelanggan dengan hasil tes penerimaan bersamaan dengan hasil tes penerimaan Bersama dengan demonstrasi.[2]

  4. KELEBIHAN DAN KEKURANGAN
Extreme Programming tepat untuk dipergunakan untuk pembuatan program yang:
·         Membutuhkan perubahan yang cepat (misalnya:game mobile)
·         Proyek beresiko tinggi dengan tantangan yang berat
·         Tim programmer sedikit, yaitu sekitar 2-10
·         Adanya permintaan dari pelanggan secara langsung
a)      Kelebihan Extreme Programming, yaitu:
·         Meningkatkan kepuasan kepada client.
·         Pembangunan system dibuat lebih cepat
·         Menjalin komunikasi yang baik dengan client.
·         Meningkatkan komunikasi dan sifat saling menghargai antara developer
b)      Kelemahan Extreme Programming, yaitu:
·         Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima
·         Tidak bias membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
·         XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

- Contoh kasus proyek XP

Dalam pembangunan sistem informasi atau aplikasi terdapat beberapa pendekatan atau metodologi yang dapat digunakan antara lain System Development Life Cycle (SDLC), Rapid Application Development (RAD), Extreme Programming (XP) dan lain sebagainya. Pada penelitian ini metologi yang digunakan dalam pembangunan aplikasi perhitungan sks mengajar kuota sks mengajar dosen adalah metode Extreme Programming(XP).  Terdapat empat tahapan yang harus dikerjakan pada metode extreme programmin (XP) yaitu:

1. Planning (Perencanaan).
Menganalisis permasalahan dan mengumpulkan segala kebutuhan yang diperlukan dalam pembuatan sistem.
2. Design (Perancangan).
Mendesain atau membuat rancangan sistem berupa gambar atau UI.
3. Coding (Pengkodean).
Pembuatan sistem yang dibangun menggunakan bahasa pemrograman.
4. Testing (Pengujian).
Pengujian sistem untuk mengetahui apakah sistem dapat beroperasi sesuai harapan.

Hasil Dan Pembahasan :
Planning (Perencanaan)
a. Identifikasi Masalah.
Berdasarkan hasil observasi dan wawancara yang telah dilakukan, maka dapat diidentifikasikan permasalahan yang saat ini dihadapi adalah sebagai berikut:

1. Membutuhkan waktu yang lama untuk melakukan rekapitulasi perhitungan sks mengajar dosen.
2. Masih sering terjadinya kesalahan dalam perhitungan yang menimbulkan keluhan dari dosen.
3. Pimpinan mendapatkan kesulitan dalam pengambilan keputusan.

b. Analisa Kebutuhan.
Berdasarkan permasalahan tersebut maka dapat didefinisikan kebutuhan fungsional dan non fungsional dari aplikasi perhitungan sks mengajar dosen. 

Kebutuhan fungsional.
1. Sistem menyediakan form untuk memasukkan data master seperti dosen, data jabatan, mata kuliah, kampus dan jadwal mengajar.
2. Sistem mampu menghitung rekap sks mengajar dosen sesuai dengan data yang tersedia
3. Waktu yang dibutuhkan sistem untuk melakukan penyimpanan data maksimal 2 detik per input.
4. Waktu yang dibutuhkan sistem untuk melakukan proses perhitungan sks mengajar maksimal 3 menit per proses. 

Kebutuhan non-fungsional.
1. Seluruh pengguna aplikasi dapat melakukan pengaksesan data tanpa harus melakukan login berulang kali, pengguna hanya harus melakukan satu kali login untuk sistem operasi.
2. Aplikasi hanya bisa diakses dari dalam jaringan perusahaan.
3. Aplikasi harus tersedia dalam 24 jam perhari, 7 hari perminggu.
4. Jika pada saat proses penarikan data dilakukan terjadi kegagalan yang dikarenakan beberapa hal di pusat data, maka data yang terdapat dipusat data tidak boleh rusak, hilang dan dapat dipulihkan

 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 

  1. Adanya komunikasi yang baik anatar pengembang dan pelanggan
  2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
  3. Pelanggan berperan aktif dalam pengembangan sistem
  4. Lebih menghemat waktu dalam pengembangan sistem
  5. Penerapan menjadi lebih mudah karena pemakai mengetahui yang diharapkannya.
Kelemahan Prototyping 
  1. 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.
  2. 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.
  3. Hubungan pelangga dengan komputer yang disediakan mungkin tidak mencerminkan teknik perancangan yang baik.
  4. 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.
  5. 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.

Contoh Kasus Prototyping

   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...