Anda di halaman 1dari 10

Kisi-Kisi UTS RPL :

Kelompok : A11.4222
Hari / Tanggal : Kamis / 04-05-2023
Waktu : 18.30-21.00
Ruang : H.3.10-H.3.11
Sifat : Close Book
1. Jelaskan apa yang dimaksud dengan Perangkat Lunak
(Software) berdasarkan definisi dari IEEE!
JAWABAN:
Perangkat lunak atau software adalah kumpulan instruksi yang
ditulis dalam bahasa pemrograman, yang dirancang untuk
menjalankan fungsi tertentu di dalam sebuah komputer atau
sistem komputasi, seperti pengolahan data, pengaturan dan
pemrosesan informasi, atau pengelolaan jaringan. Definisi ini
berasal dari organisasi teknologi terkemuka yaitu Institute of
Electrical and Electronics Engineers (IEEE) yang menjadi
otoritas dalam standardisasi teknologi informasi. Dengan kata
lain, perangkat lunak adalah sebuah komponen penting yang
berfungsi sebagai mediator antara perangkat keras (hardware)
dan pengguna, yang memungkinkan pengoperasian dan
pengontrolan penuh terhadap komputer atau sistem.
2. Jelaskan alasan mengapa kita perlu mempelajari Software Engineering
untuk mengembangkan perangkat lunak (software)?! Dan jelaskan
perbedaan Software Engineering dengan Computer Science!
JAWABAN:
Kita perlu mempelajari Software Engineering untuk
mengembangkan perangkat lunak karena dengan Software
Engineering kita dapat mengelola dan memproyeksikan
pengembangan perangkat lunak secara terstruktur dan efisien.
Jadi, kita akan dapat mengurangi kesalahan atau cacat,
meningkatkan keandalan dan keamanan, serta
memaksimalkan efisiensi penggunaan sumber daya dalam
pengembangan perangkat lunak.

Perbedaan antara Software Engineering dan Computer Science


adalah bahwa Computer Science lebih berfokus pada teori dan
konsep terkait dengan komputasi, sedangkan Software
Engineering lebih fokus pada praktik dan metodologi dalam
pengembangan perangkat lunak. Computer Science
mempelajari dasar-dasar pemrograman, algoritma, arsitektur
perangkat lunak, dan komputasi, sedangkan Software
Engineering lebih mempelajari tentang pengelolaan proyek,
analisis dan desain, pengujian, dokumentasi, kualitas dan
keamanan perangkat lunak.
3. Jelaskan perbedaan Software Engineering dan System Engineering !

Software Engineering dan System Engineering adalah dua disiplin ilmu


teknik yang berbeda namun saling terkait dalam pengembangan sistem
komputer. Software Engineering berkaitan dengan pengembangan
perangkat lunak dengan tujuan untuk memproduksi perangkat lunak
yang berkualitas tinggi, dapat diandalkan, mudah dirawat, dan efisien
dalam penggunaannya. Sedangkan System Engineering berkaitan
dengan pengembangan sistem secara keseluruhan, mencakup
perangkat lunak, perangkat keras, infrastruktur jaringan, dan elemen
lainnya yang diperlukan untuk membangun sistem yang kompleks dan
memastikan bahwa sistem yang dibangun memenuhi kebutuhan
pengguna, memenuhi standar kualitas yang ditetapkan, dan dapat
dioperasikan secara efisien. Dalam hal ini, Software Engineering lebih
berfokus pada pengembangan perangkat lunak yang berkualitas tinggi,
sedangkan System Engineering berfokus pada pengembangan sistem
secara keseluruhan.
4. Jelaskan mengenai Software Process dan jelaskan 2 Type Software
Process!

Software Process adalah serangkaian langkah atau tahapan yang


dilakukan dalam pengembangan perangkat lunak untuk menghasilkan
perangkat lunak berkualitas tinggi. Ada berbagai jenis Software Process,
tetapi yang paling umum adalah:

Waterfall Process: Proses ini melibatkan serangkaian tahapan


pengembangan perangkat lunak yang dilakukan secara berurutan dan
terpisah, dimulai dari analisis kebutuhan, desain, implementasi,
pengujian, dan pemeliharaan. Proses ini sangat terstruktur dan linier,
sehingga menghasilkan perangkat lunak yang terdokumentasi dengan
baik dan mudah dipelihara.

Agile Process: Proses ini melibatkan pengembangan perangkat lunak


yang lebih fleksibel dan adaptif, dengan fokus pada kolaborasi antara
tim pengembang dan pelanggan. Proses ini mengutamakan pengiriman
perangkat lunak dalam waktu singkat, dengan mengevaluasi kebutuhan
pelanggan secara terus-menerus dan membuat perubahan pada
perangkat lunak sepanjang pengembangan. Dalam Agile Process, tim
pengembang melakukan iterasi dan pengujian terus-menerus untuk
meningkatkan kualitas perangkat lunak.
5. Pengujian adalah proses eksekusi sebuah program dengan maksud menemukan
kesalahan. Sebutkan 2 (dua) prinsip dalam melakukan pengujian!

Dua prinsip utama dalam melakukan pengujian adalah:

Exhaustiveness: Prinsip ini mengacu pada upaya untuk mencakup


seluruh kemungkinan kondisi atau situasi dalam pengujian, baik
yang normal maupun yang abnormal. Pengujian yang lengkap
dan menyeluruh dapat membantu menemukan dan mengatasi
kesalahan atau bug yang mungkin terlewatkan jika hanya
menguji beberapa kasus saja. Namun, pengujian yang lengkap
dan menyeluruh juga membutuhkan waktu dan sumber daya
yang cukup, sehingga perlu dilakukan secara efisien dan efektif.

Early testing: Prinsip ini menekankan bahwa pengujian harus


dilakukan sejak dini dalam siklus pengembangan perangkat
lunak. Pengujian yang dilakukan sejak awal dapat membantu
menemukan kesalahan atau bug sejak dini, sehingga dapat
diperbaiki dengan lebih efisien dan efektif. Selain itu, pengujian
yang dilakukan sejak awal juga dapat membantu mengurangi
risiko pengembangan dan memastikan kualitas produk yang
lebih baik.
6. Jelaskan perbedaan antara user requirement dengan system requirement serta berikan
masing-masing contohnya!

User requirement dan system requirement adalah dua jenis kebutuhan yang berbeda dalam

rekayasa kebutuhan (requirement engineering). User requirement adalah kebutuhan yang

ditentukan oleh pengguna atau pemilik bisnis, sedangkan system requirement adalah

kebutuhan teknis yang ditentukan oleh tim pengembang. Perbedaan utama antara keduanya

adalah tujuan dan sudut pandang dalam menentukan kebutuhan.

Contoh user requirement adalah kebutuhan untuk memungkinkan pengguna melakukan

pembelian online di sebuah toko online. Kebutuhan ini diidentifikasi dan ditentukan oleh

pemilik bisnis toko online berdasarkan kebutuhan pasar dan tujuan bisnis mereka. Contoh

system requirement adalah kebutuhan untuk menggunakan teknologi enkripsi pada data

pengguna di dalam sistem toko online. Kebutuhan ini ditentukan oleh tim pengembang sebagai

cara untuk melindungi informasi pengguna dan memenuhi standar keamanan.

Perbedaan lainnya adalah bahwa user requirement berfokus pada kebutuhan pengguna dan

pemilik bisnis, sedangkan system requirement berfokus pada teknis dan spesifikasi teknologi

yang diperlukan untuk membangun sistem. User requirement lebih abstrak dan mungkin sulit

untuk diukur atau diuji, sementara system requirement lebih konkret dan dapat diuji melalui

pengujian dan verifikasi teknis.

Dalam rekayasa kebutuhan yang baik, user requirement dan system requirement harus saling

terkait dan konsisten, sehingga memastikan bahwa sistem yang dikembangkan memenuhi

kebutuhan pengguna dan memenuhi spesifikasi teknis yang diperlukan.


7. Jelaskan mengapa model analysis diperlukan pada rekayasa kebutuhan (requirement
engineering)!

Model analysis diperlukan pada rekayasa kebutuhan (requirement


engineering) karena model analysis dapat membantu memahami
dan menganalisis kebutuhan pengguna secara lebih rinci. Model
analysis memungkinkan tim pengembang untuk mengidentifikasi
kebutuhan fungsional dan non-fungsional yang dibutuhkan oleh
pengguna, serta menentukan tingkat prioritas dan keterkaitan
antara kebutuhan-kebutuhan tersebut. Dengan melakukan analisis
kebutuhan secara rinci melalui model analysis, tim pengembang
dapat memastikan bahwa kebutuhan pengguna terpenuhi dengan
baik dan sistem yang dikembangkan dapat berfungsi dengan baik
dalam lingkungan bisnis yang diinginkan. Selain itu, model
analysis juga memungkinkan tim pengembang untuk menghindari
kesalahan atau kekurangan dalam menentukan kebutuhan
pengguna yang dapat mengakibatkan kegagalan proyek atau
produk yang kurang berkualitas. Dengan demikian, penggunaan
model analysis pada rekayasa kebutuhan sangat penting untuk
memastikan kesesuaian antara kebutuhan pengguna dengan
produk yang dihasilkan dan meningkatkan keberhasilan proyek
pengembangan perangkat lunak
8. Perusahaan XYZ memiliki permintaan untuk mengembangkan perangkat lunak berbasis
web berupa toko online, dimana klien belum mengerti / memahami fitur penambahan
barang pada keranjang belanja (add to chart). Model proses apa yang paling tepat
digunakan oleh Perusahaan XYZ?! Berikan alasannya?!

JAWABAN:

Untuk mengembangkan perangkat lunak berbasis web seperti


toko online dengan fitur yang belum dimengerti oleh klien,
model proses yang paling tepat untuk digunakan oleh
Perusahaan XYZ adalah model proses prototyping. Alasan
utamanya adalah karena model proses prototyping
memungkinkan tim pengembang untuk membangun prototipe
awal dari sistem yang kemudian dapat digunakan oleh klien
untuk memahami fitur-fitur seperti penambahan barang pada
keranjang belanja. Melalui prototipe ini, klien dapat memberikan
umpan balik yang berharga sehingga tim pengembang dapat
menyesuaikan fitur-fitur pada sistem dengan kebutuhan dan
harapan klien. Selain itu, model proses prototyping juga
memungkinkan pengembangan sistem yang lebih cepat dan
efisien, karena fitur-fitur yang tidak diperlukan atau tidak sesuai
dengan kebutuhan dapat diidentifikasi dan ditinggalkan.
Dengan menggunakan model proses prototyping, Perusahaan
XYZ dapat memastikan bahwa sistem yang dikembangkan
dapat memenuhi kebutuhan klien dengan lebih baik dan
meminimalkan risiko kegagalan proyek.
9. Perusahaan XYZ ingin meningkatkan versi Sistem Informasi yang dengan kebutuhan
yang telah jelas dan waktu yang tidak terlalu singkat. Model proses apakah yang paling
tepat untuk digunakan pada Perusahaan XYZ?! Berikan alasannya?!
Dalam situasi seperti ini, model proses yang paling tepat adalah model Agile.
Model Agile merupakan salah satu model proses yang paling fleksibel dan
cocok digunakan untuk pengembangan perangkat lunak dengan kebutuhan
yang jelas dan waktu yang singkat.

Model Agile memungkinkan pengembangan perangkat lunak dilakukan secara


iteratif dan inkremental, dimana pengembangan dilakukan dalam sprints
(periode waktu tertentu) dan setiap sprint menghasilkan sebuah
inkrementasi dari perangkat lunak yang dikembangkan. Dalam model ini,
perusahaan dapat berinteraksi dengan tim pengembang untuk memberikan
masukan dan perubahan pada setiap sprint, sehingga perangkat lunak dapat
sesuai dengan kebutuhan pelanggan dengan lebih baik.

Selain itu, model Agile memperhatikan aspek kualitas perangkat lunak, karena
setiap sprint akan diuji dan diverifikasi sebelum diterapkan pada
pengembangan selanjutnya. Hal ini memungkinkan perusahaan untuk
memastikan bahwa perangkat lunak yang dikembangkan memiliki kualitas
yang baik.

Karena fleksibilitas dan fokus pada kualitas yang dimiliki oleh model Agile,
maka model ini sangat cocok digunakan oleh Perusahaan XYZ dalam
meningkatkan versi Sistem Informasi dengan kebutuhan yang jelas dan
waktu yang tidak terlalu singkat.
10. Perusahaan XYZ memiliki permintaan untuk mengembangkan
perangkat lunak berbasis web, dimana klien perusahaan XYZ belum bisa
menjelaskan secara spesifik kebutuhan perangkat lunak yang akan
dibangun. Perusahaan XYZ diberi waktu tidak lama untuk
menyelesaikan pembangunan perangkat lunak tersebut. Menurut Anda
model proses apakah yang paling tepat untuk digunakan oleh perusahaan
XYZ?! Berikan alasannya?!
JAWABAN:

Untuk kasus seperti ini, model proses pengembangan perangkat


lunak yang paling tepat digunakan adalah Agile. Agile
menawarkan fleksibilitas yang cukup besar dalam
mengadaptasi perubahan kebutuhan dan jangka waktu yang
singkat. Dalam metode Agile, tahap-tahap pengembangan
dilakukan secara iteratif dan terus-menerus dipantau dan
dinilai hasilnya. Tim pengembang dan klien terlibat secara
aktif, sehingga keselarasan antara ekspektasi klien dan
kemampuan pengembang dapat dijaga dengan baik. Dalam
situasi di mana spesifikasi proyek perangkat lunak belum jelas
dan waktu sangat terbatas, Agile adalah metode yang paling
tepat untuk menyelesaikan proyek secara efisien dan efektif.

Selamat Belajar

Anda mungkin juga menyukai