Apa Saja Metode dan Langkah-Langkah Dalam Mengembangkan Perangkat Lunak?

Software Developer - Source : www.vecteezy.com

Perangkat lunak atau biasa disebut aplikasi adalah program komputer yang berisi kode-kode perintah, yang telah dirancang oleh seorang programer untuk suatu tujuan tertentu. Sebuah aplikasi, dinilai harus dapat mengerjakan tugas dan fungsinya dengan sempurna sesuai dengan kebutuhan manusia, serta tidak boleh ada kekurangan atau cacat selama prosesnya.

Namun, secanggih apapun teknologi yang dibuat, termasuk aplikasi komputer, masih tetap ada kekurangan dan kesalahan yang kerap ditemukan. Seperti error dan bug. Oleh karena itu, sering ditemukan pembaruan-pembaruan perangkat lunak yang bertujuan untuk memperbaiki kesalahan-kesalahan yang terjadi sebelumnya.

Pada prosesnya, pengembangan dan perbaikan sebuah perangkat lunak membutuhkan metode-metode serta langkah-langkah dalam pengerjaannya, yang membuat pengembangan dan perbaikan sebuah software menjadi terstruktur dan sistematis, walaupun dilakukan berulang kali. Inilah yang disebut sebagai sebuah Siklus Hidup Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC).

Terdapat beberapa metode yang umum dilakukan untuk melakukan pengembangan dan perbaikan pada aplikasi. Seperti metode waterfall, RAD, V-Model, Star Life Cycle, dan Simple Interaction Design.


1.
Metode Waterfall

Waterfall Method Image - Source : lp2m.uma.ac.id

Pengertian

Metode waterfall adalah metode yang diperkenalkan pertama kali oleh Herbert D. Bennington pada 29 Juli 1956. Metode ini digunakan dalam pengembangan perangkat lunak (Software Development Life Cycle) yang menekankan urutan proses sistematis dan bertahap. Mulai dari tahap Requirement Analisys atau Analisis Kebutuhan, sampai Maintenance atau Pemeliharaan. Dimana alur proses metode pengembangan perangkat lunak ini menyerupai air terjun, yang mengalir dari atas, hingga ke bawah.

Menurut Roggers S. Pressman (1992:24), metode waterfall, setidaknya memiliki 5 tahapan yang berurutan. Yaitu, Requirement Analysis, Design, Code, Testing, dan Maintenance.


Tahapan-Tahapan

1. Requirement Analysis

Sebelum melakukan pengembangan perangkat lunak, seorang pengembang harus mengetahui dan memahami bagaimana informasi kebutuhan penggguna terhadap sebuah perangkat lunak. Metode pengumpulan informasi ini dapat diperoleh dengan berbagai macam cara diantaranya, diskusi, observasi, survei, wawancara, dan sebagainya. Informasi yang diperoleh kemudian diolah dan dianalisa sehingga didapatkan data atau informasi yang lengkap mengenai spesifikasi kebutuhan pengguna akan perangkat lunak yang akan dikembangkan.

2. System and Software Design

Informasi mengenai spesifikasi kebutuhan dari tahap Requirement Analysis selanjutnya di analisa pada tahap ini untuk kemudian diimplementasikan pada desain pengembangan. Perancangan desain dilakukan dengan tujuan membantu memberikan gambaran lengkap mengenai apa yang harus dikerjakan. Tahap ini juga akan membantu pengembang untuk menyiapkan kebutuhan hardware dalam pembuatan arsitektur sistem perangkat lunak yang akan dibuat secara keseluruhan.

3. Implementation and Unit Testing

Tahap implementation and unit testing merupakan tahap pemrograman. Pembuatan perangkat lunak dibagi menjadi modul-modul kecil yang nantinya akan digabungkan dalam tahap berikutnya. Disamping itu, pada fase ini juga dilakukan pengujian dan pemeriksaan terhadap fungsionalitas modul yang sudah dibuat, apakah sudah memenuhi kriteria yang diinginkan atau belum.

4. Integration and System Testing

Setelah seluruh unit atau modul yang dikembangkan dan diuji di tahap implementasi selanjutnya diintegrasikan dalam sistem secara keseluruhan. Setelah proses integrasi selesai, selanjutnya dilakukan pemeriksaan dan pengujian sistem secara keseluruhan untuk mengidentifikasi kemungkinan adanya kegagalan dan kesalahan sistem.

5. Operation and Maintenance

Pada tahap terakhir dalam Metode Waterfall, perangkat lunak yang sudah jadi dioperasikan pengguna dan dilakukan pemeliharaan. Pemeliharaan memungkinkan pengembang untuk melakukan perbaikan atas kesalahan yang tidak terdeteksi pada tahap-tahap sebelumnya. Pemeliharaan meliputi perbaikan kesalaha, perabikan implementasi unit sistem, dan peningkatan dan penyesuaian sistem sesuai dengan kebutuhan.


Kelebihan dan Kekurangan Metode Waterfall

1. Keunggulan
  • Mudah dimengerti, sehingga baik digunakan oleh pemula.
  • Mudah untuk di-manage karena setiap fase memiliki deliverablesnya masing-masing dan proses review.
  • Cepat untuk diimplementasi untuk proyek dengan skala kecil dimana requirement dapat dimengerti dengan baik.
  • Desain yang sederhana membuatnya mudah untuk ditesting dan dianalisis.

2. Kelemahan
  • Metode ini hanya cocok untuk proyek dengan requirement yang sudah sangat jelas dengan detail requirement yang bisa di-deliver diawal.
  • Metode ini tidak cocok untuk proyek maintenance atau proyek jangka panjang.
  • Tidak fleksibel: ketika aplikasi di launch, tidak memungkinkan untuk memodifikasi atau merubah sistem yang dibuat.
  • Tidak bisa membuat software yang lain sampai seluruh proses waterfall selesai.


2. Metode RAD (Rapid Application Development)

Rapid Application Development Method - Source : bitlabs.id

Pengertian

Rapid Application Development atau RAD adalah salah satu metode pengembangan aplikasi yang kerap dipakai saat ini dan merupakan model proses pengembangan perangkat lunak yang bersifat incremental terutama untuk waktu pengerjaan yang pendek.. Metode ini menekankan pada proses pembuatan aplikasi berdasarkan pembuatan prototype, iterasi, dan feedback yang berulang-ulang. Dengan begitu, aplikasi yang dibuat bisa dikembangkan dan diperbaiki dengan cepat. Sangat cocok dengan kebutuhan dan perkembangan dunia digital yang super cepat.

Terdapat 4 tahapan pada metode ini, yaitu Requirement Planning, User Design, Construction dan Cutover.


Tahapan-Tahapan

1. Requirement Planning (Menentukan Kebutuhan Rencana)

RAD dimulai dengan menentukan kebutuhan sebuah proyek (project requirements). Pada tahap ini, tim perlu menentukan kebutuhan yang ingin dipenuhi dari sebuah proyek. Kebutuhan ini tidak perlu spesifik. Tapi, sifatnya benar-benar umum dan jumlahnya bisa banyak. Baru dari situ, tim akan menentukan mana kebutuhan yang perlu diprioritaskan.

Setelah mendapatkan kebutuhan yang jelas, barulah tim menentukan hal-hal yang lebih detail. Misalkan seperti tujuan, timeline, dan budget yang diperlukan.

2. User Design
User Design, adalah salah satu bagian penting dari metode pengembangan aplikasi RAD, yang sekaligus membedakannya dari model waterfall. Pada tahap ini, pengembang mulai mengerjakan prototipe yang tujuannya adalah untuk memvisualisasikan sesuatu kepada klien.

Setelah prototipe siap disajikan kepada pengguna, tim pengembang selanjutnya mengumpulkan semua umpan balik. Proses umpan balik ini akan terus dilakukan hingga pengguna puas dengan hasilnya. Sehingga proses pengembangan dapat berjalan ke tahap berikutnya.

3. Construction
Setelah pengembang memutuskan aplikasi seperti apa yang ingin mereka buat, mereka mengubah prototipe menjadi versi final dalam bentuk aplikasi beta. Oleh karena itu, pengembang terus-menerus memprogram aplikasi, menguji sistem, dan mengintegrasikannya dengan bagian yang lain dengan menggunakan tool serta framework yang mendukung proses RAD.

Selanjutnya, proses ini akan diulang karena terus mempertimbangkan umpan balik dari pelanggan. Baik itu fitur, fungsi, antarmuka, semua aspek produk yang diproduksi. Jika prosesnya berjalan lancar, pengembang melanjutkan ke langkah berikutnya. Jika tidak, prosesnya dapat berulang atau bahkan kembali ke proses pembuatan prototipe.

4. Cutover
Tugas utama pengembang pada tahap ini, adalah memperbaiki segala kekurangan yang mungkin timbul selama proses pengembangan aplikasi. Tugas ini termasuk mengoptimalkan stabilitas aplikasi, meningkatkan interface, melakukan pemeliharaan, dan membuat dokumentasi. Bagaimanapun, langkah terakhir ini dilakukan sebelum aplikasi dikirim ke klien.


Kelebihan dan Kekurangan RAD

1. Kelebihan
  • Peningkatan Produktivitas: Metode RAD memungkinkan pengembang untuk mengembangkan aplikasi dengan cepat dan efisien. 
  • Kolaborasi Tim: Dalam metode RAD, pengembang, pengguna, dan manajer proyek bekerja sama dalam satu tim. Hal ini dapat meminimalkan kesalahan dan mempercepat proses pengembangan.
  • Mengurangi Risiko: Dalam metode RAD, pengembang membuat prototipe aplikasi terlebih dahulu dan menguji fungsionalitasnya sebelum diluncurkan. 
  • Meningkatkan Kualitas: Dalam metode RAD, pengguna aktif terlibat dalam proses pengembangan, sehingga dapat meningkatkan kualitas aplikasi dan memastikan kepuasan pengguna.
2. Kekurangan
  • Ketergantungan pada Tim
  • Tidak Cocok untuk Proyek Besar
  • Ketergantungan pada Pengguna


3. V-Model

V-Model SDLC - Source : www.geeksforgeeks.org


Pengertian

V-Model adalah proses yang terjadi secara berurutan dalam bentuk-V. Dikenal juga sebagai model Verifikasi dan Validasi. V-Model merupakan perluasan dari model waterfall dan didasarkan pada asosiasi dari fase pengujian untuk setiap tahap pengembangan. Ini berarti bahwa untuk setiap fase tunggal dalam siklus pengembangan, ada tahap pengujian terkait langsung.


Tahapan-Tahapan

1. Requirement Analysis
Requirement Analysis adalah fase pertama di mana semua informasi kebutuhan pengembangan informasi digali dari customer. Di dalam fase ini, melibatkan proses komunikasi yang intensif dengan customer untuk memahami kebutuhan sistem, karena sebagian besar customer tidak yakin tentang apa yang sebenarnya mereka butuhkan. Perencanaan Acceptance Test Design dilakukan pada tahap ini karena requirement dapat digunakan sebagai input untuk pengujian accepatence.

2. System Design
Setelah memiliki requirement produk yang jelas dan terperinci, pengembang dapat merancang sistem dengan lengkap. Desain sistem yang lengkap akan memiliki perincian perangkat keras dan pengaturan komunikasi yang lengkap untuk sistem yang sedang dikembangkan. Kemudian rencana system test dikembangkan berdasarkan desain dari sistemnya.

3. Architectural Design
Spesifikasi arsitektur dipahami dan dirancang pada tahap ini. Biasanya, lebih dari satu pendekatan teknis diusulkan dan keputusan akhir diambil berdasarkan kelayakan teknis dan finansial. Desain sistem dipecah menjadi lebih kecil untuk menjadi modul yang memiliki fungsi yang berbeda – beda.

Transfer data dan komunikasi antara modul secara internal dan secara eksternal (dengan sistem lain) dipahami dengan jelas dan didefinisikan dalam fase ini. Berdasarkan informasi tersebut, integration test dapat dirancang dan didokumentasikan selama tahap ini.

4. Module Design
Dalam tahap ini, desain internal terperinci untuk semua modul sistem dapat dispesifikasikan. Hal ini penting bahwa desain harus kompatibel dengan modul lain dalam arsitektur sistem dan sistem eksternal.

5. Unit Test
Merupakan bagian penting dari setiap proses pengembangan, dan membantu memperbaiki kesalahan-kesalahan pada tahap awal. Unit test ini dapat dirancang pada tahap ini berdasarkan pada desain modul internal.
 
6. Proses Coding
Proses coding untuk membuat modul sistem yang telah dirancang pada tahap desain dilakukan pada tahap coding, dengan bahasa pemrograman yang paling cocok berdasarkan kebutuhan sistem dan arsitektur. Proses coding dilakukan berdasarkan pedoman dan standar coding. Baris kode yang ditulis melewati banyak code review dan dioptimalkan untuk kinerja terbaik sebelum final version.

7. Proses Validation
Pada proses validation terdapat beberapa fase yang antara lain :
  • Unit Testing, adalah pengujian pada tingkat kode dan membantu menghilangkan bug pada tahap awal, meskipun semua bug tidak dapat diungkap oleh unit testing.
  • Integration Testing, dilakukan untuk menguji dan mengkomunikasikan modul secara internal dalam sistem. 
  • System Testing, adalah tahap untuk memeriksa seluruh fungsionalitas sistem dan komunikasi sistem yang sedang dikembangkan dengan sistem luar. Sebagian besar masalah kompatibilitas perangkat lunak dan perangkat keras dapat diungkap selama pelaksanaan system testing ini. 
  • Acceptance Testing, pada tahap ini mengungkap masalah kompatibilitas dengan sistem lain yang tersedia di lingkungan pengguna. Selain itu, pada tahap ini juga mampu mengungkap masalah non-fungsional seperti load dan performance kinerja sistem di lingkungan pengguna yang sebenarnya.


Kelebihan V-Model SDLC
  • Bekerja dengan baik untuk proyek-proyek yang lebih kecil dimana persyaratan dipahami dengan baik.
  • Sederhana dan mudah dimengerti dan digunakan.
  • Mudah dikelola karena setiap fase memiliki spesifik kiriman dan proses review.
Kekurangan V-Model SDLC
  • Berisiko tinggi akan ketidakpastian.
  • Tidak cocok untuk proyek yang kompleks dan berorientasi objek.
  • Tidak cocok untuk proyek dengan persyaratan beresiko tinggi.
  • Tidak cocok untuk proyek yang lama dan berkelanjutan.
  • Setelah dalam tahap pengujian, sulit untuk kembali dan mengubah fungsionalitasnya.


4. Star Lifecycle Model (Hartson & Hix, 1989)

Star Lifecycle Model - Source : www.researchgate.net

Pengertian

Metode Star Life Cycle adalah pengujian yang dilakukan terus menerus, dan tidak harus diakhir tahapan. Contohnya, dimulai dari menentukan kosep desain. Dalam proses ini akan langsung terjadi evaluasi dan penilaian oleh user, hingga user benar-benar dinyatakan pas.

Pada tahap selanjutnya, pun demikian. Dikarenakan pusat dari metode ini adalah evaluasi, yang artinya setiap tahap yang sedang berjalan akan dilakukan evaluasi sebelum masuk ke tahap-tahap berikutnya.

Tahapan-Tahapan

1. Task Analysis/Functional Analysis
Pada tahap ini, akan dilakukan functional analysis dari input yang di berikan yang kemudian akan dilakukan evaluation.
 
2. Requrements/Specification
Tahapan ini, akan mengumpulkan informasi yang berkaitan dengan kebutuhan dan segala sesuatu yang bersangkutan dengan software yang akan dikembangkan, lalu dilakukan tahapan evaluation.

3. Conceptual Design/Formal Design Representation
Pada fase ini akan dilakukan sebuah desain konseptual dari software yang akan dikembangkan bersadarkan semua masukkan yang masuk ketahap ini. Kemudian dilakukan evaluation.

4. Prototyping
Serupa dengan tahap pada Simple interaction design model, dimana prototype merupakan desain interaktif yang memiliki fungsi terbatas yang akan di ujicobakan kepada pengguna lalu melakukan tahap evaluation.

5. Implementation
Tahap ini merupakan tahap dimana software diimplementasikan dan digunakan oleh pengguna, yang kemudian akan dilakukan evaluasi kembali.

6. Evaluation
Tahapan ini adalah melakukan evaluasi terhadap setiap tahapan yang menggunakan tahapan ini untuk melihat apakah hal yang dilakukan pada tahapan sebelumnya telah sesuai dengan kebutuhan terbaru dari pengguna lalu memberikanfeedback terhadap tahapan sebelumnya.



5. Simple Interaction Design Model (Winograd, 1997)

Simple Interaction Design Model - Source : mirna46.blogspot.com



Pengertian

Simple Interaction Design adalah sebuah model pengembangan software yang sederhana. Dimana model ini memiliki karakteristik proses desain interaktif secara eksplisit, yang menggabungkan keterlibatan pengguna, iterasi dan kriteria kegunaan (usability) tertentu.


Tahapan-Tahapan

1. Identify Needs/Establish Requirements
Pada tahap ini, pengembang menerima masukkan dari satu titik, lalu diidentifikasi apa saja  kebutuhannya dan apakah sesuai dengan kebutuhannya. Sebelum menetapkan Establish Requirement ada beberapa  hal yang harus dipahami. Yaitu siapa penggunanya, dan apa tujuan yang mereka inginkan ketika menggunakan software yang akan dirancang atau dikembangkan ini.

2. Design and Redesign
Pada tahap ini dilakukan desain dan alternatif desain software dari kebutuhan yang diperlukan dan sesuai dengan persyaratan yang ditetapkan (dapat dengan meilhat desain orang lain sebagai referensi yang berguna). Sedangkan Redesign adalah melakukan desain ulang dikarenakan hasil sebelumnya tidak sesuai dengan kebutuhan atau tidak sesuai dengan hasil evaluasi akhir.

3. Build Interactive Version (Prototypes)
Tahapan ini membuat sebuah prototype desain interaktif yang mana dapat memiliki fungsi terbatas. Sehingga penggembang dapat berkomunikasi dengan pengguna dengan mengujicobakannya. Jika terdapat kesalahan/kekurangan/belum pada desain, maka proses akan kembali ketahapan Redesign.

4. Evaluate
Tahapan ini adalah tahap dimana pengguna mengevaluasi terhadap software yang telah dibuat. Jika terdapat kekeliruan dari segi design maka tahapan akan kembali kepada tahap Redesign. Jika kesalahan terjadi karena kesalahan identifikasi kebutuhan maka akan kembali ketahapan Identify Needs/Establish Requirements. Jika telah sesuai kebutuhan pengguna maka ini akan menjadi final project.


Referensi :

Komentar