Pengantar Rekayasa Perangkat Lunak (1)

Pengantar Rekayasa Perangkat Lunak

Disusun Oleh :
Muhammad Ridwan (41814110016)
Dosen Pengampu :
Wachyu Hari Haji, S.Kom, MM

SISTEM INFORMASI
FAKULTAS ILMU KOMPUTER
UNIVERSITAS MERCU BUANA

Rekayasa Perangkat Lunak
1. Pendahuluan
Pada masa sekrang, hampir semua bidnag kehidupan memerlukan penggunaan
Perangkat Lunak atau Software. Kita mungkin sudah terbiasa melihat atau bahkan
menggunkana beberapa perangkat lunak dalam kehidupan sehari-hari, seperti; pemutar
music, pembuat dokumen, dan lain-lain. Perangkat lunak ini merupakan hasil dari
serangkaian proses kegitaan yang dikenal dengan Rekayasa Perangkat Lunak. Apakah
Rekayasa Perangkat Lunak itu?
2. Pengertian Dasar
“Rekayasa Perangkat Lunak adalah disiplin untuk memecahkan masalah dengan

merancang dan mengembangkan perangkat lunak berbasis sistem. Seperti kegiatan
rekayasa apapaun, seorang Software Engineer memulai dengan mendifinisikan masalah
dan menerapakan cara-cara untuk menyelesaikan masalah. Tetapi, tidak seperti
Engineer lain, Software Engineer membutuhkan penekanan metodologi atau metode
untuk proses development, selain keahlian dengan alat dan teknik.”
- Ivan Marsic, Software Engineering.
Sebelum membahas lebih jauh mengenai Rekayasa Perangkat Lunak, tahukah anda
apa yang dimaksud dengan Perangkat Lunak, atau Software?
“Software adalah seluruh perintah yang mengarahkan komputer untuk melakukan
suatu operasi atau memproses sebuah informasi. Berbeda dengan Hardware yang
merupakan komponen fisik komputer, Software tidak terlihat atau disentuh secara
langsung. Hardware dan Software saling membutuhkan satu sama lain, dan tidak dpaat
digunakan secara realistis tanpa yang lain.” -Wikipedia Global.

3. Jenis-Jenis Perangkat Lunak
3.1 Software berdasarkan fungsinya :
-

System Software
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk

operasional komputer.

- Application Software
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk membantu
menyelesaikan masalah-masalah yang dihadapi pemakai.
3.2 Software berdasarkan applikasinya :
- System Software
Sekumpulan program yang ditulis untuk kepentingan program lain
- Real Time Software
Suatu Perangkat Lunak yang berfungsi mengendalikan, memonitor atai
menganalisis kejadian yang terjadi pada keadaaan nyata (seketika).
-

Business Software
Perangkat lunak yang memberikan fasilitas operasi untuk bisnis atau
fasilitas pengambilan keputusan manajemen.

-

Engineering and Scientific Software

Perangkat lunak yang digunakan di dalam bidang aplikasi teknik dan
kerekayasaan. Perangkat lunak jenis ini biasanya berhubungan dengan
komputasi numeric, CAD (Computer Aided Design), simulasi sistem, dll.

-

Artificial Intelligent Software
Dibuat dengan menggunakan teknik Algoritma non-numerik untuk
memecahkan masalah yang kompleks, digunakan dalam bidang aplikasi
kecerdasan buatan

4. Tujuan Rekayasa Perangkat Lunak
Tujuan dari rekayasa perangkat lunak adalah untuk mengembangkan sistem berbasis
software yang dapat digunakan pengguna mencapai tujuan bisnis mereka. Seorang
software engineer harus mengerti tujuan dari pengguna sistem, kemudian membentuk
software yang dapat mempermudah bisnis penggunanya, untuk hal itu diperlukan :
-

Kemampuan untuk mempelajari beragam proses bisnis baru dengan cepat.
Kemampuan untuk berkomunikasi dengan para ahli domain, membentuk

sebuah model abstrak dari aliran informasi yang didapat, kemudian

-

merumuskan solusi yang masuk akal dalam konteks usaha pengguna.
Kemampuan untuk merancang suatu sistem software yang akan
mewujudkan solusi yang diinginkan dan tetap digunakan untuk kebutuhan
beberapa tahun ke depan.

Sehingga dapat disimpulkan tujuan rekayasa perangkat lunak adalah :
 Membangun perangkat lunak yang benar.
 Menghasilkan perangkat lunak dengan kinerja tinggi dan tepat sasaran.
 Menciptakan perangkat lunak yang fleksibel, dan mudah digunakan.
Rekayasa perangkat lunak sering disalah artikan sebagai pemrograman. Rekayasa
perangkat lunak adalah aktivitas kreatif untuk memahami masalah bisnis, memikirkan
ide, kemudian merancang “Cetak biru” dari solusi. Sementara, tugas pemrograman
adalah melaksanakan cetak biru yang telah diberikan. Fokus software engineer adalah
pada pemahaman interaksi antara dasar sistem, pengguna dan lingkungan, kemudian
merancang dasar software berdasarkan pada pemahaman ini. Sedangkan fokus
programmer adalah pada kode program dan memastikan bahwa kode yang

diemplementasikan mengikuti desain yang diberikan.

Gambar 1.1 Hubungan antara Software Engineer dan Programmer

Idealnya, kedua kegiatan dilakukan oleh orang yang sama untuk memastikan hasil
yang terbaik; pada kenyataannya, mengingat sifat dan tuntutan yang berbeda, rekayasa
perangkat lunak dan pemrograman dilakukan oleh orang yang berbeda.
Beberapa orang mengatakan rekayasa perangkat lunak adalah tentang menulis
banyak dokumentasi. Orang lain mengatakan rekayasa perangkat lunak adalah tentang
menulis kode berjalan. Sebenarnya bukan. Rekayasa perangkat lunak adalah tentang
memahami masalah bisnis, menciptakan solusi, mengevaluasi alternatif, dan membuat
desain sistem dan pilihannya. Hal ini membantu dokumentasi proses (tidak hanya solusi
akhir) untuk mengetahui alternatif apa yang dapat dipertimbangkan dan mengapa
pilihan tersebut dibuat. Rekayasa perangkat lunak bukan tentang menulis dokumentasi,
melainkan memberikan dokumentasi yang berharga.
5. Kenapa Rekayasa Perangkat Lunak Sangat Sulit?

Software terdiri dari beberapa bagian, dimana jika dikerjakan satu persatu akan
terlihat mudah, tetapi masalahnya adalah jumlah mereka yang terlalu banyak. Mungkin
suatu komponen mudah dikerjakan; tetapi karena jumlahnya yang sangat banyak, ada

kemungkinan anda kehilangan komponen lain yang diperlukan.
Kesalahan dapat terjadi baik dalam memahami masalah atau melaksanakan solusi.
Masalahnya adalah, untuk logika diskrit, solusi “hampir benar” tidak dapat diterima;
satu bit terbalik dapat mengubah seluruh program. Bahkan developer software masih
belum menemukan metode yang memadai untuk menangani kompleksitas tersebut, oleh
karena itu software engineer harus dapat menangani kompleksitas dalam rekayasa
perangkat lunak.
Software engineer bergantung pada kemampuan mereka untuk berpikir tentang
ruang dan waktu, proses, dan interaksi antara proses dan struktur. Kita perlu
memikirkan bagaimana unsur-unsur sistem dapat berinteraksi dan memenuhi tugas
masing-masing.
Seorang pemula biasanya hanya melihat keuntungan saat membangun produk
perangkat lunak, dan mengabaikan resikonya. Seorang ahli dapat melihat gambaran
yang lebih luas dan mengantisipasi resiko. Resiko biasanya termasuk kondisi seperto,
program tidak dapat melakukan apa yang diharapkan, kemampuan lebih yang tidak
diketahui (yang mungkin dimanfaatkan oleh orang yang bermaksud jahat).
Jika anda seornag insinyur sipil yang membangun jembatan, maka yang perlu anda
ketahui adalah tentang jembatan. Tidak seperti ini, jika anda mengembangkan sebuah
perangkat lunak anda perlu mengetahui Domain Software (ini adalah apa yang anda
bangun) dan anda perlu tahu tentang masalah domain (ini adalah masalah yang sedang

anda cari solusinya). Beberapa masalah membutuhkan penelitian berdedikasi (tahunan,
decade, atau bahkan lebih lama).
Masalah selanjutnya adalah bahwa perangkat lunak memiliki domain resmi, dimana
input dan negara tujuan sudah teratur dengan baik. Namun, tidak seperti software, dunia

nyata tidaklah formal dengan input dan Negara tujuan yang tidak jelas. Pemecahan
masalah dalam domain yang berbeda ini mengharuskan software mengikuti domain
tersebut. Ini berarti, software engineer harus mengubah software sesuai dengan desain
yang diinginkan, mengimplementasikan, dan melakukan pengujian program kembali,
yang seharusnya dapat dilakukan untuk membuat software lain.
Rekayasa perangkat lunak utamanya tenang pemodelan dunia fisik dan menemukan
abstarksi yang baik. Jika anda menemukan satu set mewakili abstraksi, pengembangan
mengalir secara alami. Namun, mengingat bahwa setiap sistem fisik memiliki banyak
bagian, yang terbaik yang bisa kita lakukan adalah untuk menjelaskan beberapa bagian
dari variabel tersebut. Bekerja dengan perkiraaan tidak masalah jika struktur dunia tidak
berubah. Tapi, kita hidup dalam dunia yang berubah : benda mulai rusak dan hancur,
organisasi bangkrut, praktetk bisnis berubah, peraturan pemerintah berubah, mode
berubah, dan lain lain.
Pengembangan perangkat lunak masih sangat bergantung pada upaya pengembang
terpilih. Lini produk dan standarisasi developer sebagian besar masih hilang, tetapi

sudah ada banyak upaya yang dilakukan untuk mencapainya.

Sumber :
-

-

Mulyanto, Aunur Rofiq, Rekayasa Perangkat Lunak Jilid I untuk SMK, Departemen
Pendidikan Nasional, 2009
https://drive.google.com/file/d/0Bxb6RimwXb5_a0doWkFCRHo2M3c/edit
Marsic, Ivan, Software Engineering, Rutgers University, 2012
http://www.ece.rutgers.edu/~marsic/books/SE/
Roger S. Pressman, Software Engineering, A Beginner’s Guide, McGraw Hill, 1998.
http://www.academia.edu/6978932/Software_Enginnering_by_Pressman