Lompat ke konten Lompat ke sidebar Lompat ke footer

Widget HTML #1

Rekayasa perangkat lunak (RPL)

Rekayasa Perangkat Lunak (RPL) atau biasa dikenal dengan software engineering adalah sebuah disiplin ilmu dalam pembangunan atau pengembangan perangkat lunak yang bernilai ekonomi dari tahap perancangan sampai tahap implementasi sehingga menghasilkan perangkat lunak yang bisa dipercaya dan dapat bekerja secara efektif, efisien dan terukur.

Rekayasa perangkat lunak (RPL)

Rekayasa perangkat lunak atau software engineering mulai dikenal dan digunakan pertama kali pada tahun 1950-an dan awal tahun 1960-an. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak yang memberikan dampak kuat terhadap perkembangan rekayasa perangkat lunak. Proyek pengembangan perangkat merupakan pekerjaan yang memakan biaya dan waktu karena pengembangan perangkat lunak ini difokuskan pada perencanaan dan pengendalian.

Rekayasa perangkat lunak dikembangkan berdasarkan pendekatan sistematis berdasar atas ilmu pengetahuan dan matematis serta aplikasi tentang produksi terhadap struktur, mesin, produk, proses atau sistem. Perangkat lunak yang baik adalah perangkat lunak yang dapat memenuhi kebutuhan pelanggan (customer) atau user (pemakai perangkat lunak) atau berorientasi pada pelanggan atau pemakai perangkat lunak, bukan berorientasi pada pembuat atau pengembang perangkat lunak.

Pengertian Rekayasa Perangkat Lunak 

Berikut definisi dan pengertian rekayasa perangkat lunak (software engineering) dari beberapa sumber buku dan referensi: 

  • Menurut Rosa dan Salahuddin (2011), rekayasa perangkat lunak adalah pembangunan dengan menggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekonomi yang bisa dipercaya dan bekerja secara efisien menggunakan mesin. 
  • Menurut Pressman (2005), rekayasa perangkat lunak adalah sebuah disiplin ilmu yang mencakup segala hal yang berhubungan dengan proses pengembangan perangkat lunak sejak dari tahap perancangan hingga pada tahapan implementasi serta pasca implementasi, sehingga siklus hidup perangkat lunak dapat berlangsung secara efisien dan terukur.

Tujuan Rekayasa Perangkat Lunak 

Menurut Pressman (2005), rekayasa perangkat lunak memiliki beberapa tujuan, antara lain yaitu sebagai berikut: 

  1. Biaya produksi rendah. Adanya perangkat lunak yang dijalankan dalam sebuah sistem pekerjaan diharapkan meningkatkan efisiensi dan mengurasi losis yang berdampak pada biaya produksi yang dapat semakin ditekan.
  2. Kinerja program yang tinggi. Kinerja program akan dipengaruhi oleh keandalan perangkat keras, dan kebutuhan penggunanya yang ingin lebih baik. 
  3. Portabilitas yang tinggi. Portabilitas suatu perangkat lunak dipengaruhi oleh kemampuan transfer perangkat lunak dari suatu jenis komputer ke komputer lainnya dengan biaya usaha yang minimum, mengurangi ketergantungan hanya pada suatu pemasok saja, dan lebih bersifat nonteknis atau politis dari pada teknis. 
  4. Biaya perawatan yang rendah. Perbaikan terhadap suatu perangkat lunak membutuhkan waktu. Perubahan perangkat lunak juga membutuhkan waktu. Perawatan terhadap suatu perangkat lunak membutuhkan usaha yang butuh perhatian yang cukup besar, sehingga dapat mengurangi biaya perawatan pertahapan pengembangan perangkat lunak. 
  5. Keandalan sistem dan penyerahan tepat waktu. Dalam merekayasa perangkat lunak dibutuhkan suatu kegiatan sistem yang berkelanjutan. Aplikasi yang berbeda membutuhkan tingkat keandalan yang berbeda pula. Target akhir dari seluruh pekerjaan tersebut adalah dapat menghasilkan keluaran yang berdaya guna bagi pemakai dan tepat waktu.

Komponen Pengembangan Rekayasa Perangkat Lunak 

Komponen atau aspek-aspek dalam pengembangan perangkat lunak dikenal dengan istilah System Development Life Cycle (SDLC). Adapun bagian-bagiannya dapat digambarkan dan dijelaskan sebagai berikut:

Komponen Rekayasa Perangkat Lunak

  1. Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah. 
  2. Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis - design - coding - testing - maintenance. 
  3. Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut. 
  4. Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak. Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan. 
  5. Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah dirupiahkan. Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan biaya operasi, efisiensi penggunaan sumber daya, peningkatan keuntungan organisasi, peningkatan image organisasi dan lain-lain.

Model Pengembangan Perangkat Lunak 

Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan. Terdapat dua jenis model pengembangan perangkat lunak, yaitu model air terjun (waterfall model) dan model prototipe. Adapun penjelasan dari ke dua model pengembangan perangkat lunak tersebut adalah sebagai berikut:

a. Model Air Terjun (Waterfall Model) 

Nama model ini sebenarnya adalah Linear Sequential Model. Model ini sering disebut dengan classic life cycle atau model waterfall. Model ini muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai di dalam Software Engineering (SE). Disebut juga dengan waterfall (air terjun) karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Misal desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement.

Waterfall Model sering juga disebut juga alur hidup klasik (Classic life cycle). Model ini menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis hingga pendukung (support). Model ini juga melakukan beberapa pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing atau verification, dan maintenance.

Ilustrasi model waterfall rekayasa perangkat lunak

Adapun penjelasan dari masing-masing tahapan dalam pengembangan perangkat lunak menggunakan metode waterfall adalah sebagai berikut: 

  1. Analisis Kebutuhan perangkat lunak. Proses pengumpulan kebutuhan dilakukan secara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi perangkat lunak pada tahap ini perlu untuk didokumentasikan. 
  2. Desain. Desain perangkat lunak adalah proses multi langkah yang fokus desain pembuatan program perangkat lunak termasuk struktur dan arsitektur perangkat lunak, representasi antar muka, dan proses pengkodean. 
  3. Pembuatan kode program. Desain harus ditranslasikan ke dalam program perangkat lunak. Hasil dari tahapan ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain.
  4. Pengujian. Pengujian fokus kepada perangkat lunak secara lojik dan fungsional dan memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk meminimalisir (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan. 
  5. Pendukung (support) atau pemeliharaan(maintenance). Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke user. Perubahan bias terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat lunak beradaptasi terhadap lingkungan baru.

b. Model Prototipe 

Prototyping Paradigma dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari perangkat lunak, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan keharusan kemudian dilakukan perancangan.

Model ini dapat digunakan untuk menyambungkan ketidakpahaman pelanggan mengenai hal teknis dan menjelaskan spesifikasi kebutuhan yang diinginkan pelanggan kepada pengembang perangkat lunak. Konsumen potensial menggunakan prototipe dan menyediakan masukan untuk tim pengembang sebelum pengembangan skala besar dimulai.

Model Prototipe Rekayasa Perangkat Lunak

Model prototipe cocok digunakan untuk menjabarkan kebutuhan pelanggan secara lebih detail karena pelanggan sering kali kesulitan dalam menyampaikan kebutuhannya secara detail tanpa melihat gambaran yang jelas. Untuk mengantisipasi agar proyek dapat berjalan sesuai dengan target waktu dan biaya dari awal, maka sebaiknya spesifikasi kebutuhan sistem harus sudah disepakati oleh pengembang dengan pelanggan secara tertulis. Model prototipe ini kurang cocok untuk aplikasi dengan skala besar karna membuat prototipe untuk aplikasi skala besar akan sangat memakan waktu dan tenaga.

Selain ke dua model pengembangan perangkat lunak di atas, terdapat beberapa model pengembangan yang lain, yaitu sebagai berikut: 

  1. Pengembangan secara evolusi. Pengembangan sistem berdasarkan model sistem yang dipecah sehingga model pengembangannya secara bertahap. Kebutuhan pengguna diprioritaskan dan prioritas tertinggi dimasukkan dalam awal increment. Setelah pengembangan suatu increment dimulai, kebutuhan dibekukan dulu hingga increment berikutnya dimulai. 
  2. Transformasi formal. Berbasiskan pada transformasi spesifikasi secara matematik melalui representasi yang berbeda untuk suatu program yang dapat dieksekusi, transformasi menyatakan spesifikasi program Menggunakan pendekatan Cleanroom untuk pengembangan PL.
  3. Model SPiral. Proses direpresentasikan sebagai model spiral (bukan berupa barisan aktfitas yang dapat ditrack mundur). Setiap loop dalam model spiral menyatakan fase proses. Tidak terdapat fase tertentu seperti spesifikasi atau perancangan, tetapi loop dalam spiral ditentukan pada apa yang dibutuhkan. 
  4. Integrasi dari komponen yang reusable. Pengembangan yang berdasarkan penyidikan. Tujuannya untuk mengaktifkan pengguna dan memperolah model final berasal dari initial spesifikasi awal. Seharusnya diawali dengan kebutuhan yang sudah dimengerti.

Tahapan Pengembangan Perangkat Lunak 

Menurut Tegarden (2013), SDLC (Software Development Life Cycle) adalah siklus pengembangan software yang terdiri dari empat fase fundamental, yaitu; Perencanaan, Analisis, Desain, dan Implementasi. Pada setiap fase ini, dihasilkan deliverables, atau hasil pekerjaan berupa dokumen atau sistem. Deliverables dari satu fase digunakan sebagai masukan pada fase berikutnya, dan akan diperkaya dengan detail tambahan setiap berpindah fase.

Dalam sebuah siklus pokok SDLC terdapat empat langkah. Jumlah langkah SDLC pada referensi lain mungkin berbeda, namun secara umum adalah sama. Langkah tersebut adalah sebagai berikut:

SDLC (Software Development Life Cycle)

a. Planning (Perencanaan) 

Fase ini penting untuk mendefinisikan kenapa software harus dibuat dan menentukan bagaimana tim akan mengerjakan proyek tersebut. 

  1. Software, atau dalam konteks perusahaan biasanya berupa sistem informasi dibuat/ dibeli bukan semata-mata agar punya software, tapi bagaimana software itu bisa memberikan nilai tambah bagi perusahaan. 
  2. Jika request software berasal dari divisi non IT, biasanya mereka akan membuat sistem request yang berisi ringkasan kebutuhan bisnis, dan bagaimana software yang diinginkan bisa menciptakan bussiness value. Kemudian dilakukan feasibility analysis. 
  3. Feasibility analysis terdiri dari technical feasibility, economic feasibility, dan organizational feasibility, setelah itu ditentukan software jadi dibuat atau tidak.

b. Analysis (Analisis) 

Fase ini menjawab pertanyaan siapa yang akan menggunakan sistem, apa yang akan dilakukan sistem, dan kapan serta dimana sistem akan digunakan. Terdapat tiga langkah dalam fase ini: 

  1. Analysis Strategy: menjelaskan strategi untuk menganalisis sistem, termasuk menganalisis sistem yang sudah ada, dan cara-cara untuk mendesain sistem baru.
  2. Requirement Gathering: mengumpulkan informasi terkait kebutuhan sistem dengan wawancara atau kuisioner. 
  3. System Proposal: dokumen hasil analisis, konsep, dan model sistem.

c. Design (Perancangan) 

Pada fase ini ditentukan bagaimana sistem akan beroperasi, berkenaan dengan software, hardware, infrastruktur jaringan, user interface, form, report, database dll.

  1. Dibuat desain strategi, yaitu bagaimana sistem akan didapatkan, dikembangkan sendiri oleh programmer atau outsource, atau membeli software jadi. 
  2. Membuat dokumen desain: desain arsitektur (hardware, software, infrastruktur jaringan), desain interface (navigasi, menu dll), spesifikasi database dan file, serta desain program. 
  3. Dokumen desain ini disebut system specification.

e. Implementation (Implementasi) 

Fase terakhir adalah implementasi, dimana sistem akhirnya dibuat. Fase ini terdiri dari tiga tahapan sebagai berikut:

  1. System Construction: implementasi sistem berikut pengujiannya (testing).
  2. Installation: instalasi sistem di tempat pengguna, jika diperlukan termasuk trainning pengguna. 
  3. Support: pendampingan pasca sistem digunakan oleh perusahaan.

Daftar Pustaka

  • Rosa, A.S., dan Salahuddin M. 2011. Modul Pembelajaran Rekayasa Perangkat Lunak. (Terstruktur dan Berorientasi Objek). Bandung: Modula.
  • Pressman, Roger. 2005. Software Engineering: A Practicioner's Approach. New York: McGraw-Hill.
PERHATIAN
Jika ingin mengcopy-paste referensi dari KajianPustaka.com, mohon untuk menambahkan sumber rujukan di daftar pustaka dengan format berikut:
Riadi, Muchlisin. (). Rekayasa perangkat lunak (RPL). Diakses pada , dari https://www.kajianpustaka.com/2022/08/rekayasa-perangkat-lunak-rpl.html