Anda di halaman 1dari 25

MAKALAH

REKAYASA PERANGKAT LUNAK FUNDAMENTAL

DISUSUN OLEH

RICKY CANDRA NAUE


NIM : 1521423003

FAKULTAS PROGRAM VOKASI


JURUSAN TEKNOLOGI REKAYASA PERANGKAT LUNAK
KATA PENGANTAR

Puji syukur kami panjatkan Kepada allah SWT atas anugrah-Nya sehingga
kami dapat menyelesaikan penulisan makalah tentang Rekayasa Perangkat
Lunak Fundamental . Adapun maksud dan tujuan dari penyusunan Makalah
ini selain untuk menyelesaikan tugas yang diberikan oleh Dosen pengajar,
juga untuk lebih memperluas pengetahuan para mahasiswa khususnya
bagi penulis.

Penulis telah berusaha untuk dapat menyusun Makalah ini dengan baik,
namun penulis pun menyadari bahwa kami memiliki akan adanya
keterbatasan kami sebagai manusia biasa. Oleh karena itu jika didapati
adanya kesalahan-kesalahan baik dari segi teknik penulisan, maupun dari
isi, maka kami memohon maaf dan kritik serta saran dari dosen pengajar
bahkan semua pembaca sangat diharapkan oleh kami untuk dapat
menyempurnakan makalah ini terlebih juga dalam pengetahuan kita
bersama.

i
DAFTAR ISI

KATA PENGANTAR i
DAFTAR ISI ii
PEMBAHASAN
1.1 Proses Pengembangan
1.2 Prinsip-prinsip Rekayasa Perangkat Lunak
1.3 Pengujian dan Verifikasi
1.4 Manajemen Proyek Perangkat Lunak
1.5 Metodologi pengembangan
1.6 Kualitas Perangkat Lunak
1.7 Pemeliharaan Dan Evolusi
1.8 Etika Dalam Rekayasa Perangkat Lunak
1.9 Studi Khusus
KESIMPULAN
DAFTAR PUSTAKA

ii
PEMBAHASAN
1.1Proses Pengembangan

Metode Rekayasa Perangkat Lunak

Membahas tentang metode dalam rekayasa perangkat lunak setidaknya


ada sekitar 6 metode yang sangat populer dan banyak digunakan oleh para
pengembang, seperti berikut;

1. Metode Waterfall

Metode pertama adalah Waterfall merupakan metode pengembangan


tradisional. Sekalipun metode tersebut dianggap kuno, tetapi banyak sekali
pelajaran yang bisa didapatkan melalui metode dasar. Metode Waterfall
tersebut memiliki beberapa tahapan proses, seperti berikut;

Menganalisa persyaratan

Membuat desain

Penerapan

Pengujian

Menggunakan pada proyek

Pemeliharaan

Konsep dari metode Waterfall ini merupakan pekerjaan yang dilakukan


secara tertata, berurutan, dan secara linear. Sederhananya apabila langkah
1 belum dikerjakan, maka langkah selanjutnya tidak bisa dikerjakan.

Namun banyak yang menganggap bahwa langkah tersebut kurang fleksibel


ketika pembuatan proyek terjadi dan sering adanya perubahan maupun
kesalahan sehingga proses dan tahapan yang harus dimulai dari awal.

2. Metode Agile

Selanjutnya ada metode Agile yang dikembangkan melalui pembaruan


metode tradisional atau Waterfall yang kurang fleksibel. Sekalipun metode
Agile termasuk salah satu metode modern namun alur kerjanya masih
menerapkan pola tradisional. Proyek yang menggunakan metode Agile ini
cenderung tidak memakan waktu yang panjang dan bertahap. Hal tersebut
dikarenakan metode ini dilakukan secara kolaboratif, terstruktur, dan
terorganisir.

Dalam pengembangan perangkat lunak metode agile memiliki beberapa


prinsip utama yang sering digunakan sebagai pedoman. Misalnya,
mengutamakan kepuasan pengguna dengan menghadirkan berbagai
macam fitur bagus dan teruji, menyediakan lingkungan yang mendukung
untuk memberikan motivasi kepada para pengembang, para pengguna dan
pengembang mampu bekerja sama setiap hari dalam keseluruhan proyek,
dan masih banyak lagi lainnya.

3. Metode Scrum

Selanjutnya metode rekayasa perangkat lunak ada scrum, merupakan


kerangka kerja yang digunakan untuk mengimplementasikan
pengembangan pada metode agile. Jadi scrum merupakan metode turunan
dari Agile dan digunakan untuk memecahkan masalah dan menghasilkan
kerjasama menjadi lebih efektif.

Cara kerja scrum bisa membagi pengembangan menjadi target kecil,


sehingga jumlah target dikerjakan terlebih dahulu dan harus selesai dalam
waktu singkat untuk tujuan akhir yang lebih besar.

4. Metode RAD

Metode RAD atau Rapid Application Development Merupakan proses


pengembangan yang singkat untuk bisa menghasilkan sistem berkualitas
tinggi dengan biaya rendah. Tahapan dari metode RAD yaitu merencanakan
kebutuhan, desain pengguna, konstruksi, dan peralihan sistem lama
menuju sistem baru.

5. Metode Prototype

Selanjutnya ada metode prototype yang merupakan metode dengan


pendekatan untuk membuat program dengan cepat dan bertahap, sehingga
mampu dievaluasi oleh para pengguna. Perubahan yang dilakukan oleh
pengembang bisa dikerjakan sesuai dengan permintaan para pengguna.

Setelah pengguna setuju dengan menggunakan sampel yang diberikan,


maka Para pengembang baru akan membuat produk asli sebagai

6. Metode DevOps

Pernah dengar metode DevOps? Metode tersebut merupakan seperangkat


prosedur yang bisa mengkombinasikan antara proses pengembangan dan
operasi. Metode satu ini merupakan metode studi konseptual
pengembangan dan pengiriman perangkat lunak infrastruktur dengan
menggunakan pendekatan kolaboratif dan integratif.

Metode ini juga fokus pada perubahan dan peningkatan kerjasama antar
departemen dengan segmen yang berbeda, sehingga pengembangan
siklus hidup organisasi.

1.2 Prinsip-prinsip Rekayasa Perangkat Lunak


Modularitas: Modularitas adalah konsep memecah perangkat lunak
menjadi modul-modul terpisah yang memiliki tanggung jawab khusus.
Modul-modul ini dapat dianggap sebagai "blok bangunan" dari perangkat
lunak, di mana setiap modul memiliki fungsi atau fitur tertentu. Keuntungan
dari modularitas adalah mempermudah pengembangan, perawatan, dan
pembaruan, karena perubahan pada satu modul tidak harus mempengaruhi
modul lainnya. Ini juga memungkinkan untuk pemakaian ulang kode yang
lebih baik.

Abstraksi: Abstraksi adalah penyederhanaan kompleksitas dengan


menyembunyikan detail yang tidak diperlukan pada saat tertentu. Dalam
pengembangan perangkat lunak, abstraksi memungkinkan programmer
untuk fokus pada aspek-aspek yang penting tanpa harus terjebak dalam
detail teknis yang rumit. Misalnya, dalam pemrograman berorientasi objek,
kelas-kelas menyediakan abstraksi untuk objek-objek dalam dunia nyata.

Hierarki: Hierarki adalah struktur bertingkat yang mengorganisasi


komponen-komponen perangkat lunak dari level yang paling tinggi hingga
level yang paling rendah. Dalam konteks pengembangan perangkat lunak,
hierarki sering kali mencerminkan struktur sistem atau arsitektur. Ini
memungkinkan pengembang untuk mengatur dan mengelompokkan
komponen-komponen berdasarkan tingkat kompleksitas dan tanggung
jawabnya.

Pengelolaan Kompleksitas: Pengembangan perangkat lunak sering


kali melibatkan kompleksitas yang tinggi. Konsep-konsep seperti
modularitas, abstraksi, dan hierarki membantu mengelola kompleksitas
tersebut. Dengan memecah perangkat lunak menjadi modul-modul terpisah,
menyembunyikan detail dengan abstraksi, dan mengatur komponen dalam
hierarki, kompleksitas dapat dikurangi dan lebih mudah dikelola. Ini
mempermudah pemahaman, pemeliharaan, dan pengembangan lebih
lanjut dari perangkat lunak.

Penerapan konsep-konsep ini dalam pengembangan perangkat lunak


membantu menciptakan struktur yang lebih terorganisir, mudah dimengerti,
dan mudah dikelola, serta memungkinkan pengembang untuk fokus pada
tujuan utama perangkat lunak yang sedang dikembangkan.

1.3 Pengujian Dan Verifikasi

Pengujian perangkat lunak sangat penting karena membantu memastikan bahwa


perangkat lunak berfungsi sesuai dengan harapan dan memenuhi kebutuhan pengguna.
Pengujian mengidentifikasi kesalahan, cacat, atau masalah potensial dalam perangkat
lunak sebelum diperkenalkan ke lingkungan produksi atau digunakan oleh pengguna
akhir. Dengan melakukan pengujian yang tepat, risiko kegagalan perangkat lunak dapat
dikurangi, kualitas produk ditingkatkan, dan biaya perbaikan di masa depan dapat
diminimalkan.

Jenis-jenis pengujian perangkat lunak yang umum dilakukan meliputi:

1. **Pengujian Unit**: Pengujian unit fokus pada pengujian komponen-komponen


perangkat lunak secara terisolasi, seperti fungsi atau metode tertentu. Tujuannya
adalah untuk memastikan bahwa setiap unit berfungsi dengan benar dan memenuhi
spesifikasi yang ditetapkan.
2. **Pengujian Integrasi**: Pengujian integrasi melibatkan pengujian interaksi antara
berbagai modul atau komponen perangkat lunak setelah mereka digabungkan.
Tujuannya adalah untuk mengidentifikasi masalah yang mungkin muncul ketika modul-
modul berinteraksi satu sama lain.

3. **Pengujian Validasi**: Pengujian validasi bertujuan untuk memastikan bahwa


perangkat lunak memenuhi kebutuhan pengguna yang sebenarnya dan beroperasi
sesuai dengan ekspektasi. Ini adalah tahap akhir sebelum perangkat lunak
diperkenalkan ke lingkungan produksi atau kepada pengguna akhir.

4. **Pengujian Sistem**: Pengujian sistem melibatkan pengujian keseluruhan sistem


perangkat lunak, termasuk interaksi antara berbagai komponen dan modul. Tujuannya
adalah untuk memverifikasi bahwa keseluruhan sistem berfungsi dengan benar dan
memenuhi tujuan bisnis.

5. **Pengujian Fungsional**: Pengujian fungsional menguji apakah perangkat lunak


melakukan fungsi-fungsi yang telah ditetapkan dalam spesifikasi. Ini berfokus pada
aspek-aspek seperti input, output, dan interaksi pengguna.

6. **Pengujian Performa**: Pengujian performa mengukur respons dan kinerja


perangkat lunak dalam berbagai kondisi beban kerja. Ini melibatkan pengujian stabilitas,
kecepatan, skalabilitas, dan efisiensi.

7. **Pengujian Keamanan**: Pengujian keamanan menilai sejauh mana perangkat lunak


tahan terhadap ancaman keamanan dan potensi kerentanannya. Ini melibatkan
identifikasi potensi celah keamanan dan upaya untuk memitigasi risiko.

8. **Pengujian Pengguna (User Acceptance Testing)**: Pengujian ini dilakukan oleh


pengguna akhir untuk memastikan bahwa perangkat lunak memenuhi harapan dan
kebutuhan mereka. Hasil pengujian ini memberikan umpan balik penting tentang
kelayakan perangkat lunak.

Pengujian ini membantu mengurangi risiko kesalahan dan masalah, meningkatkan


kepercayaan pada perangkat lunak, dan memastikan bahwa produk yang dikembangkan
berkualitas tinggi sebelum dirilis kepada pengguna akhir.

1.4 Manajemen Proyek Perangkat Lunak


Manajemen waktu, biaya, risiko, dan sumber daya adalah aspek kritis
dalam proyek pengembangan perangkat lunak yang mempengaruhi
keberhasilan proyek secara keseluruhan:

1. **Manajemen Waktu**: Manajemen waktu melibatkan perencanaan,


penjadwalan, dan pengendalian waktu yang diperlukan untuk
menyelesaikan setiap tahap pengembangan perangkat lunak. Penjadwalan
yang efektif membantu menghindari keterlambatan dalam proyek dan
memastikan bahwa target waktu dapat tercapai.

2. **Manajemen Biaya**: Manajemen biaya melibatkan perkiraan,


penganggaran, dan pengawasan biaya yang diperlukan untuk
mengembangkan perangkat lunak. Memantau biaya proyek membantu
mencegah melebihi anggaran yang telah ditetapkan dan meminimalkan
risiko keuangan.

3. **Manajemen Risiko**: Manajemen risiko melibatkan identifikasi,


evaluasi, dan pengelolaan risiko-risiko yang mungkin muncul selama
pengembangan perangkat lunak. Risiko bisa berupa perubahan kebutuhan,
kegagalan teknis, atau permasalahan tim. Upaya dilakukan untuk
merencanakan tindakan mitigasi dan respons jika risiko-risiko tersebut
terjadi.
4. **Manajemen Sumber Daya**: Manajemen sumber daya melibatkan
alokasi dan pengaturan tenaga kerja, perangkat keras, perangkat lunak, dan
sumber daya lain yang diperlukan dalam proyek. Pengelolaan sumber daya
yang efisien membantu memastikan bahwa semua kebutuhan proyek
dapat dipenuhi dengan tepat.

Keempat aspek ini saling terkait dan harus dikelola dengan hati-hati agar
proyek pengembangan perangkat lunak dapat berjalan dengan sukses.
Kurangnya pengelolaan yang baik dalam salah satu aspek ini dapat
menyebabkan masalah dalam proyek, seperti keterlambatan, biaya
berlebihan, kualitas rendah, atau bahkan kegagalan proyek secara
keseluruhan.

Untuk mengatasi tantangan ini, manajemen proyek yang baik dan metode
pengembangan yang terstruktur sangat penting. Proses perencanaan yang
teliti, pemantauan yang berkelanjutan, dan fleksibilitas dalam merespons
perubahan dapat membantu memitigasi risiko dan mengoptimalkan
penggunaan sumber daya.

1.5 Metodologi pengembangan

1. **Model Air Terjun (Waterfall Model)**:


Pendekatan ini adalah salah satu yang paling tradisional. Pengembangan
dilakukan dalam tahapan linier dan berurutan, mulai dari analisis kebutuhan,
perencanaan, desain, implementasi, pengujian, hingga implementasi.
Setiap tahap harus selesai sebelum memasuki tahap berikutnya. Model ini
cocok untuk proyek dengan kebutuhan yang stabil dan jelas, tetapi kurang
fleksibilitas untuk perubahan.

2. **Model Spiral**:

Model ini menggabungkan aspek dari pendekatan linear dan iteratif.


Proses dilakukan dalam siklus-siklus iterasi, dengan masing-masing iterasi
melibatkan analisis risiko, perencanaan, pengembangan, dan evaluasi.
Setiap iterasi menghasilkan versi perangkat lunak yang semakin matang
dan lebih lengkap. Model Spiral cocok untuk proyek dengan tingkat
kompleksitas tinggi dan risiko yang signifikan.

3. **Pendekatan Agile**:

Agile adalah pendekatan iteratif dan kolaboratif yang menekankan


fleksibilitas, interaksi tim, dan tanggapan cepat terhadap perubahan.
Pendekatan ini mencakup kerangka kerja seperti Scrum, Kanban, dan XP
(eXtreme Programming). Tim bekerja dalam sprints pendek, menghasilkan
perangkat lunak yang dapat diuji dan disampaikan secara berkala kepada
klien atau pengguna.
4. **DevOps**:

DevOps adalah filosofi yang menggabungkan pengembangan perangkat


lunak (Dev) dengan operasi IT (Ops). Pendekatan ini bertujuan untuk
mengurangi hambatan antara tim pengembang dan tim operasional,
dengan fokus pada otomatisasi, kontinuitas, dan penerapan yang lebih
cepat.

Setiap pendekatan memiliki kelebihan dan tantangan masing-masing, dan


pilihan pendekatan tergantung pada karakteristik proyek, kebutuhan bisnis,
dan preferensi tim. Misalnya, Model Air Terjun cocok untuk proyek dengan
kebutuhan yang sudah pasti, sedangkan Agile lebih cocok untuk proyek
dengan lingkungan yang berubah-ubah dan kompleksitas tinggi. DevOps, di
sisi lain, fokus pada efisiensi dan kolaborasi antara pengembangan dan
operasi untuk mempercepat proses pengiriman dan perbaikan perangkat
lunak.

1.6 Kualitas Perangkat Lunak

Penerapan standar kualitas dalam pengembangan perangkat lunak sangat


penting untuk memastikan bahwa produk akhir memenuhi harapan
pengguna, kebutuhan bisnis, dan standar industri. Berikut adalah langkah-
langkah umum dalam menerapkan standar kualitas:
1. **Definisi Standar Kualitas**: Tentukan standar kualitas yang relevan
untuk proyek perangkat lunak Anda. Ini bisa mencakup standar keamanan,
performa, reliabilitas, kompatibilitas, dan lain-lain. Pastikan untuk
memahami persyaratan dan harapan pengguna serta regulasi yang
mungkin berlaku.

2. **Perencanaan Kualitas**: Buat rencana kualitas yang merinci


bagaimana standar kualitas akan diterapkan dalam seluruh siklus hidup
pengembangan. Rencana ini harus mencakup strategi pengujian, metrik
evaluasi, alat-alat yang akan digunakan, serta peran dan tanggung jawab
tim.

3. **Pengujian Kualitas**: Lakukan pengujian sesuai dengan rencana


kualitas yang telah dibuat. Ini melibatkan pengujian fungsional, pengujian
non-fungsional (seperti pengujian performa dan keamanan), serta
pengujian pengguna. Hasil pengujian akan memberikan wawasan tentang
sejauh mana perangkat lunak memenuhi standar yang ditetapkan.

4. **Review dan Inspeksi**: Lakukan review dan inspeksi terhadap kode,


desain, dan dokumentasi. Ini membantu mengidentifikasi cacat dan
kesalahan potensial sejak dini. Penerapan standar dalam kode dan desain
adalah bagian penting dari langkah ini.
5. **Pengukuran Kualitas**: Gunakan metrik yang relevan untuk mengukur
kualitas perangkat lunak. Ini dapat mencakup jumlah cacat per baris kode,
waktu respon aplikasi, atau tingkat kepuasan pengguna. Pengukuran ini
membantu mengevaluasi sejauh mana perangkat lunak memenuhi standar
yang ditetapkan.

6. **Pemantauan dan Pengendalian**: Lakukan pemantauan berkelanjutan


terhadap kualitas perangkat lunak selama pengembangan. Jika ada
perubahan atau peningkatan yang diperlukan, pastikan untuk menerapkan
tindakan perbaikan dengan cepat.

7. **Verifikasi dan Validasi**: Lakukan verifikasi untuk memastikan bahwa


perangkat lunak telah dikembangkan sesuai dengan spesifikasi yang
ditetapkan. Validasi dilakukan untuk memastikan bahwa perangkat lunak
memenuhi kebutuhan pengguna dan konteks bisnis.

8. **Dokumentasi Kualitas**: Pastikan untuk mendokumentasikan langkah-


langkah yang diambil dalam penerapan standar kualitas, hasil pengujian,
metrik, serta langkah-langkah perbaikan yang telah diambil.

Dengan mengikuti langkah-langkah di atas, tim pengembangan dapat


memastikan bahwa perangkat lunak yang dihasilkan memenuhi standar
kualitas yang ditetapkan. Ini berkontribusi pada kepuasan pengguna,
kehandalan produk, dan reputasi bisnis yang baik.

1.7 Pemeliharaan Dan Evolusi

Pemeliharaan perangkat lunak setelah peluncuran awal sangat penting


karena perangkat lunak tidaklah statis. Kebutuhan pengguna bisa berubah
seiring waktu, lingkungan operasional dapat berkembang, dan masalah
yang tidak terduga dapat muncul. Pemeliharaan yang efektif memastikan
bahwa perangkat lunak tetap relevan, berkinerja baik, dan memenuhi
harapan pengguna. Berikut adalah alasan pentingnya pemeliharaan
perangkat lunak:

1. **Pemenuhan Kebutuhan**: Kebutuhan pengguna bisa berubah seiring


waktu. Pemeliharaan perangkat lunak memungkinkan penyesuaian fitur
dan fungsionalitas agar tetap sesuai dengan kebutuhan yang berkembang.

2. **Perbaikan Cacat**: Terkadang, cacat atau bug baru dapat muncul


setelah peluncuran awal. Pemeliharaan diperlukan untuk mengidentifikasi,
memahami, dan memperbaiki masalah tersebut.

3. **Peningkatan Kinerja**: Dalam beberapa kasus, perangkat lunak


mungkin mengalami penurunan kinerja seiring pertambahan data atau
kompleksitas. Pemeliharaan diperlukan untuk memastikan kinerja yang
baik.

4. **Pengamanan dan Keamanan**: Ancaman keamanan terus


berkembang. Pemeliharaan membantu memastikan bahwa perangkat
lunak tetap tahan terhadap serangan dan dilindungi dari celah-celah
keamanan baru.

5. **Peningkatan Teknologi**: Kemajuan teknologi baru memungkinkan


penggunaan alat dan pendekatan yang lebih baik. Pemeliharaan
memungkinkan integrasi teknologi baru yang dapat meningkatkan
perangkat lunak.Untuk mengatasi perubahan dan peningkatan yang
diperlukan, berikut adalah beberapa langkah yang dapat diambil:

1. **Membentuk Tim Pemeliharaan**: Bentuk tim yang bertanggung jawab


khusus untuk pemeliharaan. Tim ini akan mengelola pemeliharaan rutin,
perbaikan bug, dan pengembangan fitur baru.

2. **Prioritaskan Permintaan**: Terima masukan dari pengguna dan


pemangku kepentingan untuk menentukan prioritas perubahan dan
peningkatan. Ini membantu memastikan bahwa upaya pemeliharaan fokus
pada hal-hal yang paling penting.
3. **Gunakan Proses Pengembangan yang Terstruktur**: Terapkan metode
pengembangan yang mendukung pemeliharaan, seperti Agile atau DevOps.
Pendekatan ini memungkinkan penyesuaian cepat terhadap perubahan dan
peningkatan.

4. **Uji Kembali**: Setelah perubahan dilakukan, pastikan untuk melakukan


pengujian ulang untuk memastikan bahwa tidak ada efek samping atau
masalah baru yang muncul.

5. **Dokumentasikan Perubahan**: Catat semua perubahan dan


peningkatan yang dilakukan dalam dokumentasi perangkat lunak. Ini
membantu memahami sejarah pemeliharaan dan memudahkan kolaborasi
di masa depan.Pemeliharaan yang efektif memastikan bahwa perangkat
lunak tetap relevan, dapat diandalkan, dan terus memberikan nilai kepada
pengguna dan bisnis.

1.8 Etika Dalam Rekayasa Perangkat Lunak

Tanggung jawab etis pengembang perangkat lunak sangat penting dalam


menghadapi masalah privasi data dan keamanan. Pengembang memiliki
peran kunci dalam memastikan bahwa perangkat lunak yang
dikembangkan melindungi data pribadi pengguna dan menjaga keamanan
informasi. Berikut adalah beberapa aspek tanggung jawab etis
pengembang perangkat lunak terkait dengan masalah ini:

1. **Perlindungan Privasi Data Pengguna**: Pengembang harus


memastikan bahwa data pribadi pengguna diperlakukan dengan keamanan
dan rahasia yang tepat. Ini termasuk mengimplementasikan mekanisme
enkripsi dan proteksi data, serta mematuhi peraturan privasi yang berlaku,
seperti GDPR (General Data Protection Regulation) di Uni Eropa.

2. **Pengelolaan Kebocoran Data**: Jika terjadi pelanggaran keamanan


yang mengakibatkan kebocoran data, pengembang harus segera
mengambil tindakan untuk menghentikan pelanggaran, memberi tahu pihak
yang terpengaruh, dan memperbaiki kerentanannya.

3. **Desain Keamanan**: Pengembang harus mempertimbangkan aspek


keamanan dalam desain perangkat lunak. Ini mencakup menerapkan
pengujian keamanan secara berkala dan menerapkan praktik terbaik dalam
mengatasi risiko yang mungkin muncul.

4. **Transparansi Pengguna**: Pengembang memiliki tanggung jawab


untuk memberi tahu pengguna tentang bagaimana data mereka akan
digunakan dan diproses oleh perangkat lunak. Ini memastikan bahwa
pengguna memiliki pemahaman yang jelas tentang konsekuensi dari
penggunaan perangkat lunak.

5. **Kode Etik dan Prinsip Kerja**: Pengembang harus mengikuti kode etik
dan prinsip kerja yang relevan, seperti ACM Code of Ethics and
Professional Conduct. Ini membantu memandu tindakan mereka dalam
situasi yang melibatkan masalah etis.

6. **Pelatihan dan Kesadaran**: Pengembang perlu terus meningkatkan


kesadaran mereka tentang isu-isu privasi dan keamanan. Pelatihan reguler
dapat membantu mereka mengikuti perkembangan terbaru dalam bidang
ini.

7. **Kolaborasi dengan Tim Lain**: Pengembang perlu bekerja sama


dengan tim keamanan, pengacara, dan profesional lain yang relevan untuk
memastikan bahwa aspek privasi dan keamanan diakomodasi dalam
pengembangan perangkat lunak.

Tanggung jawab etis pengembang perangkat lunak dalam privasi data dan
keamanan adalah bagian integral dari pembangunan teknologi yang
bertanggung jawab dan aman bagi semua pengguna. Dengan mematuhi
standar-standar etika ini, pengembang dapat membantu mencegah
pelanggaran privasi, meminimalkan risiko keamanan, dan membangun
kepercayaan pengguna yang kuat terhadap produk yang mereka
kembangkan.

1.9 Studi Khusus

**Studi Kasus: Pengembangan Aplikasi E-Commerce "ShopEase"**

**Latar Belakang**: Sebuah perusahaan e-commerce bernama "ShopEase"


ingin mengembangkan aplikasi berbasis web untuk memfasilitasi
penjualan produk secara online. Mereka ingin membangun platform yang
mudah digunakan, aman, dan memiliki fitur-fitur yang mengikuti tren terkini
dalam industri e-commerce.

**Konsep Rekayasa Perangkat Lunak yang Diterapkan**:

1. **Pemahaman Kebutuhan**: Tim pengembang dan perwakilan dari


"ShopEase" bekerja sama untuk mendefinisikan kebutuhan fungsional dan
non-fungsional aplikasi. Ini melibatkan wawancara dengan pemangku
kepentingan dan analisis mendalam tentang persyaratan bisnis.
2. **Desain Modular dan Arsitektur**: Tim pengembang merancang
arsitektur aplikasi dengan pendekatan berorientasi objek yang modular.
Mereka merencanakan modul untuk manajemen produk, pemesanan,
pembayaran, dan otentikasi pengguna.

3. **Pengembangan Iteratif**: Tim pengembang memutuskan untuk


menerapkan pendekatan Agile dengan sprint dua mingguan. Setiap sprint
menghasilkan fitur-fitur yang dapat diuji oleh klien, memungkinkan
penggunaan cepat umpan balik untuk perbaikan.

4. **Pengujian dan Pemantauan Kualitas**: Pengujian dilakukan di seluruh


siklus pengembangan, termasuk pengujian unit, integrasi, dan pengujian
fungsional. Selain itu, sistem diberikan pengujian beban untuk mengukur
kinerja dalam situasi yang berbeda.

5. **Keamanan dan Privasi Data**: Tim pengembang


mengimplementasikan protokol keamanan seperti HTTPS untuk enkripsi
data, dan sistem otentikasi yang kuat untuk melindungi data pengguna.
Mereka juga memastikan kepatuhan aplikasi dengan regulasi privasi data
yang berlaku.

6. **Pengiriman Secara Bertahap**: Setelah iterasi selesai dan diuji dengan


baik, aplikasi "ShopEase" diperkenalkan kepada pengguna dalam fase
pengiriman bertahap. Ini memungkinkan tim untuk merespons masukan
pengguna dan memperbaiki masalah sebelum peluncuran penuh.

7. **Pemeliharaan dan Peningkatan**: Setelah peluncuran, tim terus


memantau kinerja aplikasi dan merespons umpan balik dari pengguna.
Perbaikan bug, peningkatan fungsionalitas, dan penambahan fitur baru
dilakukan dalam siklus pemeliharaan.

**Hasil**: Dengan menerapkan konsep rekayasa perangkat lunak, aplikasi


"ShopEase" berhasil dikembangkan dengan sukses. Aplikasi ini memenuhi
kebutuhan pengguna dan bisnis, serta mampu menjaga tingkat keamanan
dan privasi data yang tinggi. Pendekatan pengembangan iteratif
memungkinkan adaptasi cepat terhadap perubahan dan meningkatkan
kualitas produk.

Studi kasus ini menggambarkan bagaimana penerapan konsep rekayasa


perangkat lunak seperti analisis kebutuhan, desain modular,
pengembangan iteratif, pengujian kualitas, dan pemeliharaan dapat
membantu menciptakan solusi perangkat lunak yang berhasil dan
bermanfaat bagi pengguna dan bisnis.
KESIMPULAN

Rekayasa kebutuhan memiliki peran sangat fundamental dalam


proses pengembangan perangkat lunak. Setiap kali akan
mengembangkan perangkat lunak, langkah awal yang dilakukan
pasti mengidentifikasi kebutuhan. Jika tujuan pengembangan
sistem tidak jelas, hampir dipastikan kebutuhan yang akan
diidentifikasi juga akan tidak jelas. Dampaknya sangat tidak
mungkin bisa mengembangkan sistem yang akan memenuhi dan
memuaskan penggunanya.

Mata kuliah ini hadir untuk membekali mahasiswa dengan


kemampuan dari sisi konseptual dan praktik dalam perekayasaan
kebutuhan sistem.
DAFTAR PUSTAKA

- https://chat.openai.com/

- https://chat.openai.com/?model=text-davinci-002-render-sha

https://www.universitas123.com/news/metode-rekayasa-perangkat-lunak

Anda mungkin juga menyukai