Senin, 14 Oktober 2019

Model-model Perangkat Lunak


Nim     : 1730511028
Nama   : Saprudin 5A

1. Model Waterfall (Tabrani & Pudjianti,2017)Waterfall Model adalah model klasik yang bersifat        sistematis, berurutan dalam membangun software. Waterfall Model terdiri dari 6 tahapan untuk            pengembangan.



-       Requirement Gathering and analysis - Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.
-       System Design - Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap
-      Implementation - Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.
-    Integration and Testing - Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing)
-  Deployment of system -  Mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.
-        Maintenance - Proses pemeliharaan sistem yang sudah dibangun.

           a.      Kelebihan

-       Karena struktur logis dari model, kesalahan konseptual seringkali dapat dihindari.
-     Model ini mengarah pada dokumentasi teknis yang luas, yang merupakan kelegaan bagi programmer dan pengembang baru dan juga berguna dalam tahap pengujian.
-  Kemajuan proyek dapat dipantau menggunakan tonggak sejarah.Total biaya dapat diperkirakan dengan akurasi relatif jika tidak ada konflik.

           b.     Kekurangan

-      Konflik, bug, dan kesalahan program terkadang menyebabkan kenaikan biaya dan waktu yang cukup lama. Hal yang sama berlaku jika klien tidak puas.
-     Spesifikasi yang awalnya dibuat seringkali sulit untuk dipahami oleh klien karena lebih abstrak daripada apa yang seharusnya dilakukan oleh perangkat lunak. Terutama dalam proyek-proyek outsourcing, ini bisa menjadi kerugian yang menentukan, karena tanggal rilis harus ditunda dan pasar mungkin telah berubah selama waktu ini.
-    Pengiriman perangkat lunak membutuhkan waktu lebih lama karena departemen tidak bekerja secara bersamaan dan setiap fase hanya dapat dimulai ketika fase sebelumnya selesai.

           c.       Contoh Implementasi

                 Penggunaan metode waterfall  untuk  pengembangan sistem monitoring dan  evaluasi                           pembangunan pedesaan

          -        Tersedianya informasi untuk melakukan identifikasi kebutuhan dari keseluruhan sistem                         yang diaplikasikan ke dalam bentuk perangkat lunak.
          -        Tersedianya sarana pemasukan data yang memadai untuk menghasilkan laporan yang                           akurat.
          -          Pembuatan laporan secara tepat dan akurat dapat menunjang proses dari perencanaan.

2.   Model Prototyping – (Pradipta, Prasetyo, Ambarsari, 2009)
      Proses pengembangan sistem seringkali menggunakan pendekatan prototipe (prototyping).                  Metode ini sangat baik digunakan untuk menyelesesaikan masalahkesalahpahaman antara user            dan     analis yang timbul akibat user  tidak mampumendefinisikan secara jelas kebutuhannya              (Mulyanto, 2009).
      Prototyping  adalah pengembangan yang cepat dan pengujian terhadap model kerja (prototipe)            dari aplikasi baru melalui proses interaksi dan berulang-ulang yangbiasa digunakan ahli sistem            informasi dan ahli bisnis.




-        Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
-        Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
-        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.
-        Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
-        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.
-        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.
-        Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.

a           a.      Kelebihan

-        Dapat menjalin komunikasi yang baik antar user dan pengembang sistem
-    Setiap perbaikan yang dilakukan pada prototype merupakan hasil masukan dari user yang akan menggunakan sistem tersebut, sehingga lebih reliabel
-        User akan memberikan masukan terhadap sistem sesuai dengan kemauannya
-        Menghemat waktu dalam mengembangkan sebuah sistem
-     Menghemat biaya, terutama pada bagian analisa, karena hanya mencatat poin – point penting saja
-     Cocok digunakan pada sebuah sistem kecil, yang digunakan pada ruang lingkup        tertentu, seperti sistem di dalam sebuah kantor
-        Penerapan dari sistem yang menjadi lebih mudah untuk dilakukan.

b          b.      Kekurangan

-  Untuk menghemat waktu, biasanya pengembang hanya menggunakan bahasa    pemrograman sederhana, yang mungkin rentan dari segi keamanannya
-     Tidak cocok untuk diimplementasikan pada sebuah sistem yang sangat besar dan      global, seperti sistem operasi komputer.

            c.       Contoh Implementasi
             Pengembangan web e-commerce  bojana sari menggunakan metode  prototype

-       Web     e-commerce     Bojana     Sari     yang     telah dikembangkan  memiliki  fitur  pengelolaan  produk, sistem     pemesanan,     sistem     pembayaran,     dan pelacakan  status.  Dalam  fitur  pengelolaan produk, perusahaan  dapat   dengan   mudah   menyampaikan informasi   mengenai   produk   perusahaan   kepada pelanggan.  Pelanggan  juga  dapat  dengan  mudah memperoleh informasi tersebut tanpa terhalang oleh jarak  dan  waktu.  Proses  pemesanan  dan  validasi pembayaran dapat dilakukan dengan mudah dengan adanya  fitur  sistem  pemesanan  dan  fitur  sistem pembayaran  dalam  web  e-commerce  Bojana  Sari. Fitur   pelacakan   status   mempermudah   pelanggan dalam   mendapatkan   informasi   mengenai   status pemesanan,     status     pembayaran,     dan     status pengiriman yang disampaikan oleh perusahaan.


3. V Model (Shofa,2018)
    Model ini merupakan perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-            tahapnya mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall proses          dijalankan secara linear, maka dalam model V proses dilakukan bercabang. Dalam model V ini            digambarkan hubungan antara tahap pengembangan software dengan tahap pengujiannya.


-        Requirement Analysis & Acceptance Testing
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.
-        System Design & System Testing
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.
-        Architecture Design & Integration Testing
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.
-        Module Design & Unit Testing
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.
-        Coding
Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah dibentuk.

a.     Kelebihan
-    Bahasa yang digunakan untuk merepresentasikan konsep V model menggunakan bahasa formal. Contoh : dengan menggunakan objek model ataupun frame-frame • Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap prosesnya
-        Penyesuaian yang cepat pada projek yang baru
-        Memudahkan dalam pembuatan dokumen projek
-        Biaya yang murah dalam perawatan dan modifikasinya
-    V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.
-    V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model.

b.      Kekurangan
-   Aktifitas V-Model hanya difokuskan pada projectnya saja, bukan pada keseluruhan   organisasi. V-Model adalah proses model yang hanya dikerjakan sekali selama project     saja, bukan keseluruhan organisasi.
-      Prosesnya hanya secara sementara. Ketika project selesai, jalannya proses model           dihentikan. Tidak berlangsung untuk keseluruhan organisasi.
-          Metode yang ditawarkan terbatas. Sehingga kita tidak memiliki cara pandang dari metode   yang lain. Kita tidak memiliki kesempatan untuk mempertimbangkan jika ada tools lain   yang lebih baik.
-   Toolnya tidak selengkap yang dibicarakan. SDE (Software Development           Environment).Tidak ada tools untuk hardware di V-Model. Tool yang dimaksud adalah “software yang mendukung pengembangan atau pemeliharaan / modifikasi dari system IT.
-        V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam   suatu proyek.
-    V Model terlalu fleksibel dalam arti ada beberapa activity dalam V Model yang       digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk   dalam activity tersebut dan apa yang tidak.

c.     Contoh Implementasi
Model v untuk perangkat lunak management pendaftaran anggota  di perpustakaan
Untuk mengatasi permasalahan tersebut adalah memberikan pengetahuan kepada admistratif untuk memudahan pengarsipan secara terkomputerisasi yang dapat mempermudah atau mempercepat proses pendaftaran anggota dengan mengunakan model V
4.   Fountain Model - (Brar and Sandhu,2011)
          Model Fountain merupakan perbaikan logis dari model waterfall, langkah langkah dan urutan              prosedurnya pun masih sama. Namun pada model Fountain ini kita dapat mendahulukan                      sebuah steptaupun melewati step tersebut, akan tetapi ada yang tidak bisa anda lewati stepnya              seperti kita          memerlukan design sebelum melakukan coding jika itu di lewati maka akan              ada tumpang tindih          dalam siklus SDLC.


-   User requirements analysis ( Analisis Kebutuhan Pengguna), disini kita sebagai programmer dalam mengembangkan sistem harus menganalisa kebutuhan terhadap pengguna baik itu dalam cara penggunaan yang mudah maupun efisiensi terhadap sistem yang pengguna butuhkan.
-      User requirements specifications (Spesifikasi kebutuhan pengguna), dalam tahap ini kita harus tahu apa saja yang dibutuhkan pengguna dalam sistem yang sedang kita kembangkan.
-     Software requirements specifications (Spesifikasi persyaratan perangkat lunak), dalam tahap ini kita harus menyesuaikan software yang kita buat jika di lihat dari sisi pengguna. Jika pengguna awam tentunya kita harus menciptakan Software yang mudah digunakan.
-       Systems/broad design (logical design), sebelum pengimplementasi dalam coding kita harus mendesain sistem yang akan kita buat atau kembangkan.
-     Program/detailed design (physical design), dalam tahap ini kita membuat desain yang  mendekati fisik atau secara deail.
-    Implementation/coding, setelah tahap de barulah kita mengimplementasikan dalam coding
-    Program testing: units, dalam tahap ini kita testing / cek kembali unit nit yang dibutuhkan dalam sistem yang sedang kita kembangkan .
-      Program testing: system, dalam tahap ini kita test kembali sistem yang telah kita buat.
-      Program use, dalam tahap ini kita ajarkan ke pengguna program yang telah kita buat.

-  Software maintenance, setelah sistem di pasang maka tentunya kita harus rutin mengupdate software / sistem yang telah kita buat agar terhindar dari kesalaha / bugs.

     

a.      Contoh Implementasi
Desain dan Implementasi Peningkatan Model Kode Air Mancur untuk Transmisi Unicast
The Fountain memformat format paling canggih, kode Raptor diimplementasikan dengan menggunakan matriks generator mengurangi kerumitan, karena menghilangkan prasyarat untuk mempelajari pendekatan grafis untuk implementasi dan pembelajaran. Kode Raptor diimplementasikan oleh pre coding dengan kode Reed-Solomon meningkatkan kemampuan koreksi kesalahan dan kode air mancur memberikan nilai BER lebih sedikit untuk nilai SNR yang lebih besar. Peningkatan kinerja ini juga dalam kasus saluran penghapusan biner serta saluran AWGN. Implementasi kode-kode ini telah meningkatkan penerapan ke lingkungan luas lainnya seperti fading, atau burst packet failure dalam jaringan

5.    Spiral Model – (Jurnal Ani binti fitriah)
Spiral Model adalah suatu model tentang tahapan pembuatan suatu perangkat lunak, spiral model ini adalah salah satu dari model revolusioner, model spiral merangkai sifat interatif yaitu sifat yang ditandai yang memungkinkan untuk mengembangkan versi dari suatu perangkat lunak secara bertahap untuk menghasilkan perangkat lunak yang lebih lengkap atau lebih sempurna dan terkontrol. Perangkat lunak dikembangkan dalam deretan pertambahan. Selama awal iterasi, rilis ikremantal bisa berupa model/prototype kertas, kemudian sedikit demi sedikit dihasilkan versi sistem yang lebih lengkap.



-        Tahap Liason
Tahap ini berhubungan dengan komunikasi antara orang yang akan mengembangkan software (system analyst) dengan pelanggan. Tujuannya adalah agar dapat memuaskan pelanggan dengan memperbaiki dan mengembangkan software sesuai dengan kebutuhan, kepentingan dan keinginannya.
-        Tahap Planning
Tahap perencanaan meliputi estimasi biaya yang digunakan, batas waktu, pengaturan jadwal, identifikasi lingkungan kerja, sumber-sumber infomasi untuk melakukan iterasi. Hasilnya adalah dokumen spesifikasi kebutuhan sistem dan bisnis.



-        Tahap Analisis Risiko
Tahap ini berfungsi untuk mengidentifikasi risiko yang berpotensial untuk terjadi dan menghasilkan suatu solusi alternatif secara teknis dan manajemen saat strategi mitigasi risiko direncanakan dan diselesaikan.
-        Tahap Rekayasa (engineering)
Pada tahap ini, yang dilakukan adalah sebagai berikut :
-        Menguji, coding dan mengembangkan software
-        Menginstal software
-        Membuat prototipe
-        Mendesain dokumen
-        Meringkas suatu pengujian software
-        Membuat laporan atas kekurangan dari software agar segera diperbaiki
-        Tahap Evaluasi
Peran pelanggan sangat diperlukan pada tahap ini. Mereka dapat memberikan masukan dan tanggapan, mengevaluasi produk kerja dan memastikan bahwa produk yang dibutuhkan sesuai dengan semua ketentuan. Jika terdapat perubahan, semua tahapan akan diperbaiki sesuai dengan kepuasan pelanggan. Namun, mengidentifkasi dan memantau risiko yang terjadi juga diperlukan, seperti cost overrun.

a.       Kelebihan
-      Perubahan-perubahan yang terjadi dapat diselesaikan secara sistematis
-  Estimasi biaya menjadi mudah karena pembuatan prototipe telah selesai dalam fragmen yang kecil
-      Manajemen dan analisis risiko yang lebih baik
-      Pembangunan yang cepat dan mudah secara sistematis
-      Manajemen waktu yang lebih baik
-  Mudah dalam melakukan perubahan kebutuhan dan dokumentasi jika perubahan terjadi di tengah-tengah perubahan
-      Produksi software terjadi lebih cepat

b.      Kekurangan

-      Tidak cocok ketika digunakan dalam proyek-proyek kecil
-      Tidak terlalu berguna dalam proyek-proyek kecil
-       Sulit dalam mengikuti strategi proyek kecil
-       Kurang efisien dalam penerapan model spiral karena waktu yang digunakan
-       Membutuhkan sumber pengalaman sebagai proses sehingga sangat kompleks
-       Dalam melakukan proyek kecil, estimasi biaya akan sangat tinggi
-     Risiko dalam tahap planning, jika terjadi perbedaan dalam jadwal pengembangan     atau dalam anggaran belanja.


c.       Contoh Implementasi

Sistem informasi penggajian pegawai menggunakan metode spiral
Dengan adanya aplikasi penggajian ini, user dapat dengan mudah mendapatkan informasi penggajian dan juga data pegawai dengan cepat, serta dapat lengsung mendapatkan printout hasilnya. User dapat meng-iput atau mengupdate database  secara cepat dan tepat, sehingga data-data dan informasi yagn terdapat dalam sistem tetap up-todate
6.  Extreme Programming ( Azdy& Rini, 2018)
Extreme Programming (berikutnya akan disingkat sebagai XP) 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


-        Whole Team
Seluruh kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai suatu tim. Tim ini terdiri beberapa peran, antara lain programmer, penguji,orang yang mengerti bisnis, analis, manajer, dan lain-lain. Setiap peran yang ada 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 kontribusi dengan cara apapun yang mereka dapat lakukan.
-          Planning game
Perencanaan dalam XP mengemukakan dua pertanyaan kunci dalam pengembangan perangkat lunak, yaitu  memprediksi apa yang akan dicapai pada waktu tertentu, dan menentukan apa yang harus dilakukan
-            Small Release
Pada setiap Iterasi, tim mengerjakan sebuah unit atau bagian dari perangkat lunak, melakukan tes terhadap unit perangkat lunak yang dibangun, kemudian di akhir iterasi perangkat lunak yang dibangun diberikan kepada Customer. Oleh customer, perangkat lunak ini bisa dijadikan bahan evaluasi maupun langsung dirilis kepada end user. Bisa juga tim XP langsung merilis ke end user secara rutin.
-            Simple Design
Tim XP membangun perangkat lunak dengan desain yang sederhana. Dimulai dengan desain yang sederhana, kemudian melalui pengujian program dan perbaikan desain. Desain yang dibuat harus benar-benar cocok untuk fungsi saat ini dari sistem sehingga tidak ada yang sia-sia dan perangkat lunak siap dikembangkan lagi selanjutnya. Namun, pembuatan desain dalam XP tidak dilakukan hanya sekali. Tahapan desain dalam Extreme Programming yang menghasilkan desain yang bagus dianggap sangat penting, sehingga selama proses development banyak difokuskan ke tahapan desain.
-            Pair Programming
Semua perangkat lunak yang dibangun dengan pendekatan XP dibangun oleh dua orang programmer. Keduanya duduk berdampingan di satu komputer yang sama. Seorang programmer akan membuat code dan programmer yang lainnya akan mengoreksinya. Praktik seperti ini mungkin kelihatan tidak efisien. Namun dari segi hasil dari pair programming, desain akan lebih baik, pengujian lebih baik, dan code yang dihasilkan pun akan lebih baik.
-           Test-Driven Development
XP begitu terobsesi dengan umpan balik, dan dalam pengembangan perangkat lunak, umpan balik yang baik mensyaratkan pengujian yang baik pula. Test-Driven Development bergantung pada pengulangan siklus development yang sangat pendek. Pertama tim XP akan menuliskan automated test case yang mendefinisikan perbaikan yang diinginkan atau fungsi baru. Kemudian dari test case tersebut dihasilkan jumlah minimal code yang harus dituliskan untuk lulus tes tersebut. Setelah itu melakukan refactoring code baru agar memenuhi standar baru.
-           Design Improvement
XP berfokus pada memberikan nilai bisnis dalam setiap perulangan. Agar dapat mencapai tujuan tersebut selama proyek berlangsung, perangkat lunak harus dirancang dengan baik. XP menggunakan proses perbaikan desain secara terus menerus dengan Refactoring. Proses refactoring berfokus pada penghapusan duplikasi dari code yang telah dibuat. Disamping itu, proses refactoring didukung dengan pengujian yang komprehensif utnuk memastikan bahwa desain yang dibuat berkembang dan tiidak ada yang rusak.
-           Continuous Integration
Beberapa kali dalam sehari, tim XP akan menggabungkan seluruh salinan pekerjaan tim menjadi satu dalam jaringan utama. Sehingga tim XP harus menjaga tim agar terintegrasi setiap saat.
-         Collective Code Ownership
Pada proyek XP, setiap pasang programmer dapat meningkatkan code apapun setiap saat. Semua code yang ada dimiliki secara kolektif oleh tim. Manfaatnya setiap code akan mendapat perhatian dari banyak orang, sehingga dapat meningkatkan kualitas code dan mengurangi cacat. Selain itu dapat mengurangi duplikasi code yang sama walaupun dibuat oleh pasangan programmer yang berbeda.
-         Coding Standard
Setiap anggota tim XP harus mengikuti standar coding yang umum, sehingga semua code dalam sistem seolah-olah tampak dibuat oleh satu orang yang sangat kompeten. Selain itu hal ini sangat mendukung Collective Code Ownership.
-           Metaphor
Tim XP akan membuat suatu deskripsi umum bagaimana program yang mereka kembangkan bekerja dengan benar.
-           Sustainable Pace
Tim XP akan bekerjasama dalam jangka waktu lama. Mereka bekerja keras dengan kecepatan tertentu tanpa batas waktu. Tim XP akan bekerja lembur pada hari efektif dan memaksimalkan produktivitas setiap minggunya.  Hal ini perlu diperhatikan dengan baik, karena akan mengurangi produktivitas atau sebaliknya menghasilkan perangkat lunak yang berkualitas.
a.    Kelebihan model Extreme Programming 
  
-  Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer. Selain itu perkiraan beban tugas juga diperhitungkan.
-      Menekankan pada kesederhanaan dalam pengkodean: “What is the simplest thing that          could possibly work?” Lebih baik melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan. Komunikasi yang lebih banyak mempermudah, dan rancangan yang sederhana mengurangi penjelasan.
-   Setiap feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
-   Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.
b.    Kekurangan model Extreme Programming

-        Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
-        Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga)

c.    Contoh implementasi
       Dalam perancangan aplikasi perhitungan kuota sks mengajar dosen
      
      aplikasi perhitungan sks mengajar yang dibangun dengan menggunakan Microsoft Visual Basic 6.0  mampu  memberikan kemudahan dalam melakukan proses perhitungan sks mengajar dosen   dengan   cepat   dan   akurat.   Hasil keluaran aplikasi ini digunakan sebagai dasar proses pengambilan keputusan. Saran  untuk  pengembangan  aplikasi ini  dapat  dilakukan  secara  realtime  agar datanya dapat digunakan kapan saja saat dibutuhkan. 

7. Agile model (Dewi, Ciptayani, Wijaya, 2018)
    Agile Modeling adalah suatu metodologi yang praktis untuk proses dokumentasi dan pemodelan sistem perangkat lunak. Agile Modeling sendiri adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan perangkat lunak agar dapat diaplikasian pada proyek pengembangan perangkat lunak secara efektif dan efisien.


-           Pengumpulan persyaratan: Dalam fase ini, Anda harus menentukan persyaratan. Anda harus menjelaskan peluang bisnis dan merencanakan waktu dan upaya yang diperlukan untuk membangun proyek. Berdasarkan informasi ini, Anda dapat mengevaluasi kelayakan teknis dan ekonomi.

          Rancang persyaratan: Ketika Anda telah mengidentifikasi proyek, bekerja dengan pemangku kepentingan untuk menentukan persyaratan. Anda dapat menggunakan diagram alir pengguna atau diagram UML tingkat tinggi untuk menunjukkan pekerjaan fitur baru dan menunjukkan bagaimana itu akan diterapkan pada sistem Anda yang ada.

-         Konstruksi / iterasi: Ketika tim mendefinisikan persyaratan, pekerjaan dimulai. Desainer dan pengembang mulai mengerjakan proyek mereka, yang bertujuan untuk menyebarkan produk yang berfungsi. Produk ini akan mengalami berbagai tahap peningkatan, sehingga mencakup fungsionalitas yang sederhana dan minimal.

-          Pengujian: Dalam fase ini, tim Quality Assurance memeriksa kinerja produk dan mencari bug.
-          Penempatan: Dalam fase ini, tim mengeluarkan produk untuk lingkungan kerja pengguna.

-         Umpan Balik: Setelah merilis produk, langkah terakhir adalah umpan balik. Dalam hal ini, tim menerima umpan balik tentang produk dan bekerja melalui umpan balik.

a.   Kelebihan dari agile
-          Meningkatkan kepuasan kepada klien.
-          Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
-          Pembangunan system dibuat lebih cepat.
-          Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
-          Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif   kecil.
b.  Kekurangan dari agile
-         Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima
c.  Contoh implementasi
       Penerapan Agile Model pada Sistem Persewaan Mobil
Proses pada agile modeling sangat tepat diaplikasikan untuk perusahaan yang akan mengembangkan sistem perangkat lunak yang komplek, sehingga bisa dilihat dari berbagai sudut pandang. Paper ini secara detail memaparkan definisi, langkah kerja, kelebihan, kekurangan pada Agile Modeling dan studi kasus penerapannya pada pembangunan sistem pencatat transaksi persewaan mobil.


Model-model Perangkat Lunak

Nim      : 1730511028 Nama    : Saprudin 5A 1. Model Waterfall ( Tabrani & Pudjianti,2017) Waterfall Model adalah model klasik y...