Model-Model Pengembangan Perangkat lunak

Assalamu’alaikum Warahmatullahi Wabarakatuh....

Pada postingan kali ini saya akan membahas tentang"Model-model pengembangan perangkat lunak".

Apa sih pengembangan perangkat lunak itu?Pengemangan perangkat lunak adalah suatu penerapan struktur pada pengembangan suatu perangkat lunak(Software),yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu.Nah dalam prosesnya ada beberapa model pengembangan sistem perangkat lunak,diantaranya :


1. Model Waterfall
    
    Model waterfall merupakan salah satu model untuk perencanaan dari sebuah perangkat lunak.Model waterfall adalah salah satu model klasik yang bersifat sistematis,lah kok sistematis?knp di sebut sistematis?karena model ini dikerjakan secara berurutan.

                                                                               Contoh gambar model waterfall


Berikut ini adalah alur pengembangan waterfall model :

A. Rekayasa dan pemodelan sistem/informasi
    Langkah pertama dimulai dengan membangun keseluruhan elemen sistem dan memilih bagian yang akan di jadikan bahan pengembangan perangkat lunak,dengan memperhatikan hubungannya dengan hardware,user dan database.

B.Analisis kebutuhan perangkat lunak
Di dalam proses ini,dilakukan penganalisaan dan pengumpulan kebutuhan sistem yang meliputi domain informasi,fungsi yang dibutuhkan untuk kerja/informasi dan antarmuka.hasil penganalisaan dan pengumpulan tersebut didokumentasikan dan diperlihatkan kembali kepada pelanggan(user).

C.Desain
Pada proses desain,dilakukan penerjamahan syarat kebutuhan sebuah perancangan perangat lunak yang dapat diperkirakan sebelum dibuatnya proses pengkodean(coding) proses ini berfokus pada struktur data,arsitektur perangkat lunak,reprentasi interface dan detail algoritma prosedural.

D.Pengkodean
Pengkodean merupakan proses menterjemahkan perancangan desain ke bentuk yang dapat dimnegerti oleh mesin,dengan menggunakan bahasa pemrograman

E.Pengujian
Setelah proses pengkodean,lalu dilanjutkan dengan proses pengujian pada program perangkat lunak,baik pengujian logika internal dan eksternal fungsional untuk memeriksa segala kemungkinan terjadinya kesalahan dan memeriksa apakah hasil dari pengembangan tersebut sesuai dengan hasil yang diinginkan.

F.Pemeliharaan
Proses pemeliharaan atau maintenace merupakan bagian akhir dari siklus pengembangan waterfall dan di lakukan setelah perangkat lunak dipergunakan.kegiatan yang di lakukan pada proses pemeliharaan ada 3 proses antara lainnya:

  1. Corrective maintance : yaitu mengoreksi apabila terdapat kesalahan pada perangkat lunak yang baru terdeksi pada saat perangkat lunak digunakan.
  2. Adaptive maintenace : yaitu dilakukannya penyesuaian sesuai dengan lingkungan yang baru.
  3. Perfektive maintenace : Bila perangkat lunak sukses dipergunakan oleh pemakai,pemeliharaan ditunjukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan,peningkatan kinerja dan sebagainya.




  • Kelebihan model waterfall
  1. Merupakan model pengembangan paling handal dan paling lama digunakan
  2. cocok untuk sistem software yang bersifat generik
  3. pengerjaan projek sistem akan terjadwal dengan baik dan mudah dikontrol
  • Kekurangan model waterfall :
  1. Persayaratan sistem harus digambarkan dengan jelas
  2. Rincian proses harus benar-benar jelas dan tidak boleh berubah ubah
  3. Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan



  • Contoh penerapan dari pengembangan model waterfall model
Contoh dari penerapan model pengembangan ini adalah pembuatan program pendaftaran online ke suatu instansi pendidikan.program ini akan sangat membantu dalam proses pendaftaran,karena dapat meng-efektifkan waktu serta pendaftar tidak perlu tepot-repot langsung mendatangi instansi penidikan.


2. Prototyping
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunal,tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall model.
Contoh gambar model Prototyping

 Ada 4 langkah dalam proses pengembangannya yaitu :


1.Pemilihan fungsi
2.Penyusunan sistem informasi
3.Evaluasi
4.penggunaan selanjutnya

Berikut adalah Alur proses pengembangan dalam model prototype yaitu :
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 format output).

C.Evaluasi prototyping 
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya.

D.Mengkodekakan 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, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dll.

F.Evaluasi sistem
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.

G.Menggunakan sistem 
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan,model prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi dimana masalah-masalah tidak terstruktur dengan baik,model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah inovatif dan mutakhir sementara tahap penggunaaan sistemnya relatif singkat.

  • Kelebihan model prototype :
  1. Pelanggan berpartisipasi aktif dalam pengembangan sistem,sehingga hasil produk pengembangan akan semakin mudah di sesuaikan dengan keinginan dan kebutuhan pelanggan.
  2. Penentuan kebutuhan lebih mudah diwujudkan.
  3. Mempersingkat waktu pengembangan produk perangkat lunak.
  4. Adanya komunikasi yang baik antara pengembang dan pelanggan.
  5. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
  6. Lebih menghemat waktu dalam pengembangan sistem
  7. Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
  • Kekurangan model prototype
  1. Proses analisis dan perancangan terlalu singkat.
  2. Biasanya kurang fleksibel dalam mengahadapi perubahan.
  3. Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
  4. Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
  • Contoh penerapan metode prototype
Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya,seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan,dan bagaimana model kerja program tersebut.kemudian dilakukan rancangan program yang diujikan kepada pelanggan.hasil penilaian dari pelanggan devaluasi dan analisis kebutuhan pemakai kembali dilakukan.

3. V-Model
Metode V-model 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.


Contoh gambar V-Model


Berikut penjelasan masing-masing tahap beserta tahap pengujiannya :

1. Requiment Analysis dan 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.

2.  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.
3.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.
4. 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.

5.Coding
Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah dibentuk.


  • Kelebihan V-model
  1. V Model sangat fleksibel
  2. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik
  • Kekurangan V-model
  1. V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
  2. 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.
  • Dimana saja penerapan v-model di terapkan?
  1. Dalam proyek teknologi informasi di Jerman
  2. ngembangan V Model dalam bidang industri dapat dilakukan dengan mudah
4.Fouintain Model
Model Fontain merupakan perbaikan logis dari model waterfall, langkah langkah dan urutan prosedurnya pun masih sama. Namun pada model Fountain ini kita dapat mendahulukan sebuah step ataupun 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.
Contoh gambar Fouintain model
·         Tahapan Fountain Model
  •       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 / kembangkan.
  •          Program/detailed design (physical design), dalam tahap ini kita membuat desain yang mendekati fisik atau secara deail.
  •            Implementation/coding, setelah tahap desain 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.
5.Model Spiral / Model Boehm
  Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.
Contoh gambar Model spiral
Tahapan Model Spiral / Model Boehm :
1.    Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
2.    Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
3.    Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
4.    Tahap Rekayasa (engineering):pembuatan prototipe.
5.    Tahap Konstruksi dan Pelepasan (release):pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
6.    Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
·         Kelebihan model ini:
         Adalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
·         Kekurangan model ini:
         Adalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.
·            Contoh model spiral :
     Contoh penerapan dalam model ini yaitu aplikasi pemasangan layanan reguler smart pt.pln (persero)
6.    Extreme Programming
      sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. 
Contoh gambar Model Extreme Programming


 ·         Tahapan model ini :
1.      Whole Team
 Seluruh kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai suatu tim.
2.      Planning game
      Tahapan ini merupakan langkah awal dalam pembangunan sistem dimana dalam tahapan ini dilakukan beberapa kegiatan perencanaan yaitu,identifikasi permasalahan, menganalisa kebutuhan sampai dengan penetapan jadwal pelaksanaan pembangunan sistem,dalam jurnal.(Irmawati Carolina, 2019)
·         Kelebihan model Extreme Programming :  
1.      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.
2.      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.
3.      Setiap feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
4.      Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.

·         Kelemahan model Extreme Programming :
1.      Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2.      Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
·         Contoh model ini :
            Contoh model ini yaitu dengan penerapan Metode Extreme Programming Dengan Framework
7.       Agile Mode
              Adalah sekumpulan metode sebuah pengembangan perangkat lunak(software) atas dasar prinsip yang sama atau pengembangan sistem jangka pendek. Sehingga metode agile memerlukan adaptasi yang cepat dari pengembang terhadap perub ahan dalam bentuk apapun.
Contoh gambar Model Agile

·         Tahapan model ini :
          Pada siklus hidup agile sendiri, terdapat fase test. Tahap ini memastikan agar produk yang dihasilkan harus sesuai dengan desain (spesifikasi) yang telah dibuat pada tahap design. Dengan adanya tahap ini, produk yang dihasilkan akan lebih terjaga kualitasnya.
·         Kelebihan Metode Agile
Berikut ini adalah kelebihan metode agile:
1.      Pembangunan system dibuat lebih cepat
2.       Meningkatkan kepuasan kepada klien
3.      Mengurangi resiko kegagalan implementasi software dari segi non-teknis
4.      ika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
·         Kekurangan Metode Agile
  Berikut ini kekurangan metode agile:
1.      Siap menghadapi beberapa perubahan
2.       Bekerja dengan cepat, jika tim tidak dapat menyesuaikan tidak akan maksimal
3.      Rencana awal dapat berubah se waktu-waktu
4.      Jadwal tidak menentu
5.      Jika tim tidak bisa komunikasi dengan baik maka akan terjadi kemunduran
·         Contoh model ini :
      Metode Agile telah banyak digunakan untuk pengembangan produk perangkat lunak dan beberapa dari mereka menggunakan karakteristik tertentu dari perangkat lunak, seperti teknologi objek. Namun, teknik ini dapat diterapkan untuk pengembangan produk non-software, seperti komputer, motorik kendaraan, peralatan medis, makanan, dan pakaian, lihat pengembangan produk Fleksibel .

Cukup sekian artikel yang bisa saya jelaskan mohon maaf atas kesalahan penulisan dan bila ada kata-kata yang tidak berkenan mohon dimaafkan :)

Wassalamu’alaikum Warahmatullahi Wabarakatuh...


Sumber :

(Binanto, 2004)Binanto, I. (2004). Kajian metode-metode pengembangan perangkat lunak multimedia. Jurnal Penelitian., 17(1), 42–52.
Firmansyah, Y., & Udi, U. (2017). Penerapan Metode SDLC Waterfall Dalam Pembuatan Sistem Informasi Akademik Berbasis Web Studi Kasus Pondok Pesantren Al-Habib Sholeh Kabupaten Kubu Raya, Kalimantan Barat. Jurnal Teknologi Dan Manajemen Informatika, 4(1). https://doi.org/10.26905/jtmi.v4i1.1605
Syakti, F. (2019). Metode Pengembangan Perangkat Lunak Berbasis Mobile: a Review. Jurnal Bina Komputer, 1(2), 82–89. https://doi.org/10.33557/binakomputer.v1i2.440
(Syakti, 2019)(Firmansyah & Udi, 2017)


Comments

Popular posts from this blog

International Data Encryption (IDEA)