Anda di halaman 1dari 19

MODUL MATA KULIAH

REKAYASA
PERANGKAT
LUNAK
KP146 - 3 SKS

TIM PENYUSUN
Noni Juliasari, M.Kom
FAKULTAS TEKNOLOGI INFORMASI Gunawan Pria Utama, M.Kom
UNI VE R SI T AS BUDI LUHUR Hestya Patrie, MSSE, M.Kom
JAKARTA VERSI 1.0
N
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI

PERTEMUAN 2
PENGANTAR RPL
Capaian : Memahami sejarah dan konsep dasar rekayasa
Pembelajaran perangkat lunak
Sub Pokok : 1.1. Permasalahan seputar pengembangan
Bahasan perangkat lunak
1.2. Urgensi dan konsep rekayasa perangkat lunak
1.3. 7 Aktifitas dasar rekayasa perangkat lunak :
 Requirements
 Specification
 Design
 Code
 Verification & Validation
 Debug
 Maintenance
Daftar Pustaka : 1. Bruegge, Bernd & Allen H. Dutoit. 2000. Object
Oriented Software Engineering: Conquering
Complex and Changing Systems, London,Prentice
Hall
2. Pressman, Roger S. 2010. Software Engineering : A
Practitioner's Approach,7th, McGraw-Hill
3. Schach, Stephen R. 2010. Object Oriented and
Classical Software Engineering, 8th, McGraw-Hill
4. Sommerville, Ian. 2010. Software Engineering,
9th, Pearson Education
5. Software Engineering Body of Knowledge
(SWEBOK). 2004
6. Andri Kristianto, Rekayasa Perangkat Lunak
(Konsep Dasar), Gava Media Yogyakarta, 2004
7. https://www.iso.org/committee/45086/x/catalogue/
Maiocchi, M. (1991). Software Engineering. Future
Generation Computer Systems, 7, 23-29.
SEJARAH DAN KONSEP RPL

1.1. Permasalahan seputar pengembangan Perangkat Lunak


Dalam proses pengembangan perangkat lunak yang ada, sebagian besarnya
dinyatakan mengalami kegagalan. Beberapa permasalahan yang menjadi faktor
penyebab kegagalan proyek pengembangan perangkat lunak antara lain :
1) Produk akhir tidak mampu memenuhi kebutuhan pelanggan secara penuh
Tujuan utama dalam pengembangan perangkat lunak adalah menjadikan produk
yang akan menyelesaikan permasalahan serta memenuhi kebutuhan pelanggan.
Namun seringkali kegagalan pengembangan perangkat lunak terjadi karena
kedangkalan dalam menganalisa masalah yang akan dituntaskan serta kebutuhan
yang diinginkan. Sehingga muncul kekecewaan dari pelanggan saat produk akhir
perangkat lunak mereka terima, fungsionalitas yang ada tidak sesuai dengan
harapan mereka.
2) Sulit untuk dikembangkan atau diimprovisasi
Keberhasilan dari produk perangkat lunak tidak hanya dilihat dari program yang
bisa “jalan” saja, namun juga dari bagaimana produk tersebut memiliki
kemampuan untuk dapat dikembangkan atau diubah di kemudian hari sesuai
tuntutan perubahan kebutuhan. Fleksibilitas kemampuan perangkat lunak untuk
dimodifikasi ini sangatlah ditunjang dengan rancangan yang baik pula.
3) Dokumentasi yang tidak lengkap
Keberadaan dokumentasi dalam pengembangan perangkat lunak sangat penting.
Dokumentasi akan menjadi catatan rekam jejak yang memudahkan
pengembangan perangkat lunak di kemudian hari, entah karena perubahan
kebutuhan pengguna atau perkembangan teknologi. Tanpa dokumentasi yang
baik, penerus pengembangan sistem tersebut akan mengalami kesulitan untuk
menelusuri history kebutuhan pengguna yang telah lalu. Dokumentasi juga dapat
menjadi alat pertanggungjawaban bagi pengembang untuk menghadapi tuntutan
fungsionalitas produk dari pengguna yang tidak sesuai dengan apa yang telah
disepakati di awal.
4) Kualitas yang buruk
Keterbatasan waktu pengembangan serta resiko yang mungkin dihadapi selama
pengembangan perangkat lunak dapat mengakibatkan produk akhir yang di
deliver kepada pengguna masih memiliki kekurangan/cacat. Selain itu, analisa
masalah serta penelusuran kebutuhan yang tidak sesuai dengan harapan
pengguna juga dapat mengakibatkan ketidaklengkapan atau ketidakbenaran
fungsionalitas, sehingga kualitas dari produk akhirnya dinilai buruk oleh
pelanggan.
5) Melebihi alokasi waktu dan biaya yang direncanakan
Estimasi kebutuhan sumber daya waktu dan biaya yang dialokasikan untuk
pengembangan seringkali tidak terkelola dengan baik sehingga penyelesaian
produk seringkali terlambat dan juga melebihi anggaran yang sudah ditetapkan.

Beberapa permasalahan yang seringkali menjadi faktor kegagalan pengembangan


perangkat lunak kemudian dikenal dengan software crisis. Tanda-tanda yang paling
terlihat dari software crisis ini adalah keterlambatan pengiriman perangkat lunak ke
pelanggan, over budget/melebihi anggaran, perangkat lunak tidak memenuhi
persyaratan yang ditentukan/tidak sesuai kebutuhan pelanggan hingga sampai
membahayakan, dan dokumentasi yang tidak memadai.

Beberapa penyebab terjadinya Software Crisis diantaranya adalah komputer/hardware


yang semakin canggih, kebutuhan perangkat lunak yang semakin besar dan kompleks,
sehingga cara- cara konvensional tidak cukup efektif (secara biaya, waktu, dan
kualitas). Oleh karena itu, diperlukan ilmu Rekayasa Perangkat Lunak ( Software
Engineering) yang membahas semua aspek produksi perangkat lunak, mulai dari
tahap awal spesifikasi, desain, konstruksi, testing sampai pemeliharaan setelah
digunakan.

1.2. Sejarah Rekayasa Perangkat Lunak


Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun
1940-an hingga kini. Fokus utama pengembangannya adalah untuk mengembangkan
praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang
perangkat lunak dan kualitas aplikasi yang dapat digunakan oleh pemakai.
1945 - 1965: Awal
Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal
1960-an. Saat itu, masih terdapat debat tajam mengenai aspek engineering dari
pengembangan perangkat lunak.
Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang
rekayasa perangkat lunak, yang memberikan dampak kuat terhadap perkembangan
rekayasa perangkat lunak. Banyak yang menganggap bahwa dua konferensi inilah
yang menandai awal resmi profesi rekayasa perangkat lunak.

1965 - 1985: krisis perangkat lunak


Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi
pengembangan perangkat lunak. Banyak projek yang gagal, hingga masa ini disebut
sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak
terjadi mulai dari projek yang melebihi anggaran, hingga kasus yang mengakibatkan
kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya
roket Ariane akibat kegagalan perangkat lunak.

1985 - kini: tidak ada senjata pamungkas


Selama bertahun-tahun, para peneliti memfokuskan usahanya untuk menemukan
teknik jitu untuk memecahkan masalah krisis perangkat lunak. Berbagai teknik,
metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk
memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman
berorientasi object, perangkat pembantu pengembangan perangkat lunak (CASE
tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai
senjata pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan
tepat waktu.

Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi
bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat
perbaikan dalam produktivitas pengembangan perangkat lunak dalam tempo 10
tahun. Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak
dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini
menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang,
karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat
digunakan dalam berbagai kondisi

1.3. Definisi Rekayasa Perangkat Lunak


Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal
1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari
pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO
mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan
dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang
menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa
perangkat lunak.

Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi
pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut
sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak
terjadi mulai dari project yang melebihi anggaran, hingga kasus yang mengakibatkan
kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya
roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti
memfokuskan usahanya untuk menemukan teknik jitu untuk memecahkan masalah
krisis perangkat lunak.

Pada tahun 1969 Fritz Bauer memberikan definisi rekayasa perangkat lunak
adalah sebagai berikut :
“The establishment and use of sound engineering principles in order to obtain
economically software that is reliable and work efficiently on real machines.”
Hampir setiap pembaca tergoda untuk menambah sendiri definisi tersebut,
karena definisi tersebut hanya menyinggung sedikit saja tentang aspek teknis
dan kualitas perangkat lunak, dan tidak secara langsung menyinggung kebutuhan
dan kepuasan pelanggan, mengabaikan pencamtuman pentingnya pengukuran
dan matriks, tidak menyinggung pentingnya sebuah proses. Apakah sound
enginnering application yang dapat diaplikasikan kepada pengembangan
komputer? Bagaimana kita secara ekonomis membangun perangkat lunak
sehingga menjadi dapat diandalkan dan reliable? Apakah yang dibutuhkan untuk
menciptakan program komputer yang bekerja secara efisien pada lebih dari satu mesin
riril yang berbeda? Pertanyaan-pertanyaan ini masih terus menjadi tantangan bagi
pengembangan perangkat lunak.

Pada tahun 1985 Richard Fairly mendefinisikan rekayasa perangkat lunak sebagai
berikut :
“The technological and managerial dicipline concernment with
systematic production and maintenance of software products that are
developed and modified on time and within cost estimates.”
Definisi ini sudah menyinggung aspek teknis pengembangan perangkat lunak,
pengelolaan tim yang terlibat dalam pengembangan tersebut, pemeliharaan
perangkat lunak yang telah dikembangkan, serta waktu serta biaya pengembangan.
Kemudian pada tahun 1993, IEEE mengembangkan definisi yang lebih
komprehensif yaitu sebagai berikut : (1) Aplikasi dari sebuah pendekatan kuantifiabel,
disiplin, dan sistematis terhadap pengembangan, operasi, dan pemeliharaan
perangkat lunak; yaitu aplikasi dan rekayasa perangkat lunak.

Definisi lain dari perangkat lunak adalah suatu disiplin yang mengintegrasikan
proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak
komputer (Pressman, 97).

1.4. Tujuan Rekayasa Perangkat Lunak


Tujuan dari rekayasa perangkat lunak dapat diuraikan sebagai berikut :
1) Menghasilkan sebuah perangkat lunak yang berkualitas.
Yang dimaksud dengan berkualitas dapat dilihat dari tiga sisi, sisi sponsor (individu
atau organisasi yang telah mengeluarkan biaya dalam pembangunan perangkat
lunak), sisi pemakai (siapapun yang menggunakan perangkat lunak tersebut), sisi
maintainer / modifier (yang memelihara dan memodifikasi perangkat lunak
tersebut).
 Sisi Sponsor :
Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang.
Sponsor ingin menggunakan perangkat lunak tersebut untuk meningkatkan
produktivitas organisasi. Sponsor mengharapkan untuk dapat menghasilkan
sebuah layanan dengan biaya yang rendah tetapi masuk akal. Karena itu sistem
yang dibuat harus handal, fleksibel dan efisien. Selain itu biaya dari
pemeliharaan, modifikasi dan peningkatan dari sistem tersebut harus serendah
mungkin.
 Sisi Pemakai :
Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan
tugas-tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi
yang dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien,
perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu
pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari,
mudah digunakan dan mudah untuk diingat.
 Sisi Maintainer/modifier :
Yang diinginkan oleh maintainer/modifier adalah perangkat lunak tersebut
memiliki sangat sedikit error pada saat penginstallan pertama (catatan :
sangat kecil kemungkinannya untuk menghasilkan perangkat lunak yang 100
% bebas dari bug). Selain itu perangkat lunak tersebut harus terdokumentasi
dengan baik. Source code juga harus mudah dibaca, terstruktur dan dirancang
dengan baik dan bersifat modular.
2) Menghasilkan perangkat lunak dengan biaya yang efisien dan mampu di deliver ke
pengguna tepat waktu.
Dengan mempelajari prinsip rekayasa dalam pengembangan perangkat lunak,
diharapkan pengembang mampu mengelola sumber daya waktu dan biaya dengan
baik sehingga realisasi pengembangan sesuai dengan estimasi yang sudah
ditetapkan.
3) Menghasilkan perangkat lunak yang benar dan tepat serta bermanfaat bagi
pengguna
Dengan mempelajari rekayasa perangkat lunak ini diharapkan mampu
mengembangkan sebuah perangkat lunak yang berguna dan juga bermanfaat bagi
usernya. Sebuah perangkat lunak tentu saja tidak akan digunakan oleh user apabila
tidak memiliki fungsi yang spesifik. Karena itu dengan mempelajari rekayasa
perangkat lunak, akan membuat seseorang menjadi lebih paham mengenai
pengembangan perangkat lunak yang fungsional.
4) Agar mampu melakukan perawatan terhadap produk perangkat lunak serta mampu
menjadikan perangkat lunak yang sudah ada menjadi lebih baik lagi
Fungsi dari mereka yang mempelajari rekayasa perangkat lunak tidak hanya
terpaku pada pembuatan dan juga pengembangan dari sistem perangkat lunak
yang ada, namun juga berada pada level maintenance atau perawatan dari sebuah
perangkat lunak yang ada. Setiap perangkat lunak tentu saja membutuhkan
maintenance, terutam aketika perangkat lunak tersebut mengalami suatu
gangguan atau kendala. Ada kalanya juga perangkat lunak yang sudah ada
terkadang membutuhkan pembaruan, karena fungsinya yang mungkin sudah
berkurang. Karena itu, dengan mempelajari rekayasa perangkat lunak seseorang
akan mampu mengembangkan perangkat lunak yang sudah ada sebelumnya agar
kemudian menjadi sebuah sistem perangkat lunak yang dapat berguna dan menjadi
lebih baik lagi di kalangan user.

Marco Maiocchi dari University of Milan dalam jurnal Future Generation Computer
Systems volume 7, menjelaskan bahwa setidaknya terdapat beberapa alasan
mengapa software engineering itu sangat penting, diantaranya adalah:
1) Mengurangi Kompleksitas
Software dengan skala besar dan kompleks sangat sulit untuk dikembangkan.
Untuk mengatasi hal ini, Software Engineering dapat diterapkan sebagai sebuah
solusi untuk mengurangi kompleksitas dari setiap projek dengan cara membagi
sekumpulan masalah besar menjadi beberapa masalah yang lebih kecil. Dengan
demikian, masalah-masalah dapat diselesaikan dengan solusi-solusi yang
dikerjakan satu persatu. Dengan teknik ini setiap permasalahan kecil dapat
diselesaikan secara independen satu sama lain. Pada akhirnya, setiap masalah
yang telah berhasil diselesaikan akan dikombinasikan satu sama lain untuk
menghasilkan sebuah solusi akhir. Teknik ini disebut Problem Decomposition.
Fokus dari teknik ini adalah memfokuskan penyelesaian masalah pada masalah
yang paling relevan untuk diselesaikan saat ini dengan cara mengabaikan
masalah-masalah yang dianggap tidak relevan. Dengan pola pikir ini, diharapkan
masalah-masalah besar dapat diselesaikan dengan lebih mudah.
2) Untuk meminimalisir biaya perangkat lunak
Perangkat lunak membutuhkan banyak sekali kerja keras dan disisi lain seorang
software engineer merupakan tenaga ahli dengan biaya yang mahal. Kebanyakan
orang berfokus untuk membangun perangkat lunak dengan jutaan baris kode
program. Namun di dalam software engineering, programmer harus
merencanakan semuanya dan mereduksi segala hal yang dianggap tidak penting.
Hasilnya, biaya produksi dari pengembangan perangkat lunak menjadi dapat
dikurangi dibandingkan pengembangan perangkat lunak lainnya yang tidak
menggunakan pendekatan software engineering.
3) Untuk mengurangi waktu
Segala yang tidak dibuat berdasarkan “Perencanaan” selalu menghabiskan waktu
lebih banyak. Dan jika kita membuat sebuah software yang memiliki lingkup besar
maka anda harus menjalankan banyak kode program untuk membuat kode dapat
berjalan dengan maksimal. Hal ini sangat menghabiskan waktu. Jika tidak
ditangani dengan manajemen yang baik maka hal ini malah akan menghabiskan
banyak waktu.
4) Mampu Menangani Proyek Besar
Projek besar tidak dibuat hanya dalam beberapa hari, dibutuhkan kesabaran,
perencanaan dan manajemen untuk menjamin tercapainya tujuan. Andaikata
terdapat sebuah projek yang harus diselesaikan dalam jangka waktu 5 tahun, dan
terdapat 40 tugas yang harus dikerjakan dan dalam satu semester perusahaan
harus menyelesaikan setidaknya 4 tugas. Maka perusahaan juga harus memiliki
komitmen agar jangan sampai dalam satu semester ternyata tugas yang hanya
bisa diselesaikan 1 dari 4 tugas yang harusnya selesai. Oleh sebab itu untuk dapat
sesuai dengan waktu yang ditentukan dibutuhkan perencanaan, arahan,
pengujian dan proses maintenance yang dijalankan dengan disiplin.
5) Menjamin Kehandalan Perangkat Lunak
Software harus handal, handal berarti software yang dibangun haruslah bekerja
sesuai dengan waktu yang telah ditetapkan. Dan jika terdapat kesalahan dalam
pembuatan software maka perusahaan harus menyelesaikan permasalahan-
permasalahan tersebut. Di dalam software engineering, terdapat teknik testing
dan maintenance yang harus dilakukan untuk menjamin kehandalan perangkat
lunak.
6) Menjamin Efektifitas
Efektifitas akan terjadi jika perangkat lunak telah berhasil dibangun berdasarkan
sebuah standar yang berlaku. Di dalam software engineering terdapat berbagai
standar yang dapat dijadikan acuan dalam pembangunan sebuah software yang
efektif seperti ISO 3535:1977 tentang desain formulir dan bagan, ISO 5806/1984
tentang tabel dan information processing, ISO 5807:1985 tentang dokumentasi
dan konvensi data, dan lain-lain.
7) Produktivitas
Dengan bantuan software engineering, setiap perusahaan dapat meningkatkan
produktivitas. Setiap projek dapat dikurangi biayanya dan menghabiskan waktu
pengerjaan yang lebih sedikit. Di dalam software engineering, produktivitas
software dapat dihasilkan karena adanya sistem pengujian di dalam setiap bagian
terkecil suatu proses. Jika tidak lolos uji, maka seorang developer harus
memperbaikinya hingga akhirnya mencapai suatu standar yang berlaku.

1.5. Ruang Lingkup Rekayasa Perangkat Lunak


Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL
dapat digambarkan sebagai berikut:

Gambar 1. Ruang lingkup Rekayasa Perangkat Lunak


 Software Requirements berhubungan dengan spesifikasi kebutuhan dan
persyaratan perangkat lunak
 Software Design mencakup proses penampilan arsitektur, komponen, antar muka,
dan karakteristik lain dari perangkat lunak
 Software Construction berhubungan dengan detail pengembangan perangkat
lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
 Software Testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
 Software Maintenance mencakup upaya-upaya perawatan ketika perangkat lunak
telah dioperasikan
 Software Configuration Management berhubungan dengan usaha perubahan
konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
 Software Engineering management berkaitan dengan pengelolaan dan
pengukuran RPL, termasuk perencanaan proyek perangkat lunak
 Software Engineering Tools And Methods mencakup kajian teoritis tentang alat
bantu dan metode RPL
 Software Engineering Process berhubungan dengan definisi, implementasi
pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
 Software Quality menitik beratkan pada kualitas dan daur hidup perangkat lunak

Rekayasa perangkat lunak merupakan suatu kegiatan untuk menghasilkan suatu


produk, sehingga harus berada pada satu komitmen dasar menuju kualitas,
seperti diperlihatkan pada gambar 2. Untuk itu fokus kualitas menjadi batu
landasanya. Lingkup kedua adalah proses. Proses-proses rekayasa perangkat lunak
adalah perekat yang menjaga bentangan teknologi secara bersama-sama dan
memungkinkan perkembangan perangkat lunak yang tepat waktu dan rasional.
Proses-proses tersebut membatasi kerangka kerja untuk serangkaian area proses
kunci yang harus dibangun demi keefektifan penyampaian teknologi pengembangan
perangkat lunak. Area proses kunci ini membentuk dasar bagi kontrol manajemen
proyek pengembangan perangkat lunak serta membangun kontek dimana metode
teknis diaplikasikan sehingga sebuah produk yang berkualitas bisa dihasilkan.
Gambar 2. Ruang Lingkup Rekayasa Perangkat Lunak

Lingkup berikutnya adalah metodologi, yaitu sekumpulan metode untuk


melaksanakan setiap tahap pengembangan perangkat lunak, yang meliputi :
perencanaan dan estimasi proyek, analisa kebutuhan, prosedur algoritma dan
arsitektur program, menulis program ( coding), pengujian (testing), dan pemeli-
haraan (maintenance). Terakhir adalah perangkat bantu (tools). Perangkat bantu
yang dimaksus adalah suatu perangkat, baik lunak atau keras, otomatis maupun
semi-otomatis yang bisa digunakan untuk proses pengembangan perangkat lunak.
Tools untuk rekayasa perangkat lunak disebut computer-aided sofware
engineering (CASE). CASE ini terus dikembangkan untuk menciptakan lingkungan
rekayasa perangkat lunak sehingga analog dengan CAD/CAE ( computer-aided
design/engineering) pada pengembangan perangkat keras.

1.6. Rekayasa Perangkat Lunak vs Rekayasa Sistem


Rekayasa sistem adalah kumpulan konsep, pendekatan dan metodologi, serta alat-
alat bantu (tools) untuk merancang dan menginstalasi sebuah kompleks sistem.
Kompleksitas sistem bisa diakibatkan karena 2 hal yaitu kompleksitas dinamis dan
kompleksitas detail. Kompleksitas detail ketika komponen atau sub-sistem yang
dirancang tidak hanya banyak tetapi ditambah pula dengan multi-sourcing (multi
suplier), multi standard, multi criteria dan lainnya.

Dalam lingkup pengembangan perangkat lunak, rekayasa Sistem adalah kegiatan


untuk menentukan spesifikasi, perancangan, pengimplementasian, penyebaran, dan
pemeliharaan sistem sebagai satu kesatuan. Sehingga, rekayasa sistem atau lebih
tepatnya, rekayasa sistem berbasis komputer berhubungan dengan semua aspek
pengembangan dan evolusi sistem kompleks dimana perangkat lunak memainkan
peran utama. Rekayasa sistem merupakan disiplin yang lebih tua dibandingkan
dengan rekayasa perangkat lunak. Orang telah melakukan spesifikasi dan perakitan
sistem industri secara kompleks seperti kereta api dan pabrik kimia selama lebih dari
100 tahun. Akan tetapi, seiring dengan bertambahnya persentase perangkat lunak
pada sistem, maka teknik rekayasa perangkat lunak seperti pemodelan use – case,
manajemen konfigurasi, dan lain sebagainya sering dipergunakan dalam proses
rekayasa sistem

Sommerville mendefinisikan sistem sebagai sekumpulan komponen yang saling


berhubungan dan bekerja sama untuk mencapai tujuan. Definisi umum ini mencakup
banyak jenis sistem. Sebagai contoh, sistem yang sederhana seperti sistem
pencatatan skor mungkin hanya terdiri dari 2 atau 3 modul perangkat lunak.
Sebaliknya, sistem kontrol lalu lintas dapat terdiri dari ratusan perangkat lunak dan
keran, ditambah manusia sebagai pemakainya, yang membuat keputusan
berdasarkan informasi dari sistem

Rekayasa sistem berkaitan dengan semua aspek dalam pembangunan sistem berbasis
komputer termasuk hardware, rekayasa PL dan proses. RPL adalah bagian dari
rekayasa sistem yang meliputi pembangunan PL, infrastruktur, kontrol, aplikasi dan
database pada sistem.

1.7. Rekayasa Perangkat Lunak vs Ilmu Komputer


Software engineering adalah bagaimana merancang dan membangun sebuah
perangkat lunak serta perawatan dan pengembangannya sesuai kebutuhan manusia,
Computer Science adalah bagaimana ilmu dan teknologi komputer itu dieksplorasi
pemanfaatannya untuk kebutuhan manusia sedangkan systen engineering bertujuan
untuk menghasilkan sistem yang memenuhi kebutuhan pelanggan, meningkatkan
probabilitas keberhasilan sistem, mengurangi risiko dan mengurangi total biaya siklus-
hidup.
Rangkuman
Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun
1940-an hingga kini. Focus utama pengembangannya adalah untuk mengembangkan
praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang
perangkat lunak dan kualitas aplikasi yang dapat digunakan oleh pemakai.

Latihan
Pilihlah jawaban yang menurut Anda benar dari pilihan jawaban yang diberikan
1. Apa yang dimaksud dengan perangkat lunak (software)?
a. Program untuk aplikasi atau produk tertentu
b. Dokumentasi yang dibutuhkan untuk memasang(install) program
c. Dokumentasi yang dibutuhkan untuk mengembangkan dan memelihara
program
d. Jawaban a, b dan c benar
2. Apa yang dimaksud dengan perangkat lunak (software)?
a. Program untuk aplikasi atau produk tertentu
b. Program tertentu lengkap dengan dokumentasi yang diperlukan
c. Dokumentasi yang dibutuhkan untuk memasang(install) program
d. Jawaban a, b, dan c salah
3. Apa yang dimaksud dengan rekayasa perangkat lunak/software engineering?
a. Pengembangan perangkat lunak secara tim(kelompok)
b. Pengembangan perangkat lunak secara perorangan
c. Pengambangan perangkat lunak dengan menggunakan CASE
d. Pengembangan perangkat lunak secara cepat
4. Apa yang dimaksud dengan rekayasa perangkat lunak/software engineering?
a. Pengembangan PL dengan memanfaatkan metode daur hidup
pengembangan sistem
b. Pengembangan PL dengan memanfaatkan prinspi-prinsip rekayasa dalam
pengembangan sistem
c. Pengembangan PL dengan memanfaatkan CASE
d. Pengembangan PL secara cepat
5. Apa yang dimaksud dengan rekayasa perangkat lunak/software engineering?
a. Pengembangan PL dengan memanfaatkan prinsip-prinsip rekayasa
b. Pengembangan PL dengan memanfaatkan prinsip-prinsip PL
c. Pengembangan PL dengan memanfaatkan prinsip-prinsip prototipe
d. Pengembangan sistem dengan memanfaatkan prinsip-prinsip prototipe
6. Apa tujuan rekayasa perangkat lunak?
a. Menghasilkan PL yang baik walaupun mahal
b. Menghasilkan PL yang efektif
c. Menghasilkan PL yang baik dan murah
d. Menghasilkan PL yang efisien
7. Diantara berikut ini, mana yang tidak termasuk dalam ruang lingkup atau
tujuan rekayasa perangkat lunak?
a. Menghasilkan PL yang bebas dari kesalahan dan sesuai kebutuhan user
b. Menghasilkan PL yang dapat dibuat tepat waktu
c. Menghasilkan PL on budget (tepat dengan anggaran biaya yang sudah
direncanakan)
d. Menghasilkan PL yang kompleks dan memiliki fitur-fitur menarik
8. Aplikasi perangkat lunak yang sering digunakan dalam sistem penggajian,
penjualan dan persediaan barang
a. Personal computer software
b. Embedded software
c. Business software
d. Artificial intelligent software
9. Termasuk didalam bidang pemanfaatan Artificial Intelligence
a. Sistem penggajian
b. Inventory sistem
c. Pattern recognition
d. SMS Gateway
10. Dokumentasi yang harus dibuat untuk melengkapi sebuah perangkat lunak
harus mencakup, kecuali:
a. Petunjuk pemakaian
b. Petunjuk pengembangan
c. Petunjuk perawatan
d. Petunjuk complain
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BUDI LUHUR
Jl. Raya Ciledug, Petukangan Utara, Pesanggrahan
Jakarta Selatan, 12260
Telp: 021-5853753 Fax : 021-5853752
http://fti.budiluhur.ac.id

Anda mungkin juga menyukai