1.1 Definisi Rekayasa ( Engineering )
Rekayasa adalah Penerapan suatu ilmu untuk menyelesaikan ‘’masalah praktis’ dari
tidak ada menjadi ada
1.2 Definisi Perangkat Lunak
Ada beberapa definisi perangkat lunak yang pernah dikemukakan antara lain :
- Software = Perangkat lunak =Kumpulan program komputer dengan fungsi
tertentu
- Perangkat lunak adalah
- Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu,
- Struktur data yang dapat membuat program memanipulasi informasi, dan
- Dokumen yang menjelaskan operasi dan penggunaan program (Pressman,
1997).
- Perangkat lunak adalah program komputer, prosedur, aturan, dan dokumentasi
yang berkaitan serta data, yang bertalian dengan operasi suatu sistem komputer
(IEEE, 1993).
a. Karakteristik Perangkat LunakPerangkat lunak lebih dikenal sebagai elemen lojik daripada fisik, oleh karena itu
perangkat lunak memiliki karakteristik yang berbeda dari perangkat keras :
- Perangkat lunak dikembangkan atau direkayasa, jadi tidak diproduksi dalam
pengertian klasik.
- Merupakan produk yang unik (tidak ada seri produksi).
- Perangkat lunak tidak pernah akan rusak/aus karena selalu diperbaharui
- Tidak terlihat (invisible).
- Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak dibentuk
dari komponen yang sudah ada.
- Fleksibel, sehingga mudah dimodifikasi.
- Dihubungkan (linked) dengan sistem komputer.
b. Jenis-jenis Perangkat Lunak
1. Berdasarkan sudut pandang
- Perangkat lunak sistem
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk
operasional komputer. Diantaranya : sistem operasi , penerjemah bahasa
pemrograman (compiler/interpreter)
- Perangkat lunak aplikasi
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk membantu
menyelesaikan masalalah-masalah yang dihadapi oleh pemakai. Contohnya:
program paket yang sudah jadi dan program aplikasi buatan sendiri
2. Berdasarkan Aplikasinya
- Perangkat Lunak Sistem (Sistem Software)
Sekumpulan program yang ditulis untuk kepentingan program lain, contoh editor,driver dan lain-lain
- Perangkat Lunak Waktu Nyata (Real Time Software)
Perangkat lunak yang digunakan untuk mengukur/menganalisis atau
mengontrol proses pemasukan data dari lingkungan luar sampai
menghasilkan laporan yang diinginkan
- Perangkat Lunak Bisnis (Business Software)
Perangkat lunak yang memberikan fasilitas operasi untuk bisnis atau
fasilitas pengambilan keputusan manajemen, contoh sistem
akuntansi,inventory, payroll dan lain-lain
- Perangkat Lunak Rekayasa dan Sains (Engineering and Scientific Software)
Perangkat lunak yang digunakan di dalam bidang aplikasi teknik dan
kerekayasaan Perangkat lunak jenis ini biasanya berhubungan dengan
komputasi data numerik, CAD (Computer Aided Design), simulasi sistem,
dan lain-lain.
- Embedded Software
Perangkat lunak yang digunakan untuk mengontrol suatu produk dan sistem
dimana perangkat lunak tersebut disimpan. Biasanya ditempatkan di ROM,
contoh Tombol di Microwave Oven
- Perangkat Lunak Komputer Pribadi (Personal Computer Software)
Banyak digunakan pada aplikasi yang bersifat perorangan, contohnya :pengolah kata, spreadsheet, game, DBMS dan lain-lain.
- Perangkat Lunak Intelegensia Buatan (Artificial Intelligent
Software) Dibuat dengan menggunakan teknik algoritma non-numerik untuk
memecahkan masalah yang kompleks, digunakan dalam bidang aplikasi
kecerdasan buatan, contohnya : game, expert sistem, neural network,
Turbo Prolog, dan lain-lain.
c. Proses Perangkat lunak
Adalah serangkaian kegiatan yang menghasilkan perangkat lunak. Terdapat 4 kegiatan pada proses perangkat lunak,yaitu :
- Spesifikasi perangkat lunak : mendefinisikan fungsi dan kemampuan beroperasi
- Pengembangan perangkat lunak : mengembangkan perangkat lunak yang sesuai dengan spesifikasi
- Validasi perangkat lunak : menjamin perangkat lunak sesuai dengan yang
diinginkan pelanggan.
- Evolusi perangkat lunak :perangkat lunak harus terus terupdate sesuai dengan
keinginan pelanggan.
1.3 Definisi Rekayasa Perangkat Lunak
Rekayasa perangkat lunak (software engineering) adalah suatu proses rancang
bangun. Beberapa definisi tentang rekayasa perangkat lunak :
- Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan
perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efesien
pada komputer (Fritz Bauer, 1968).
- Penerapan pendekatan yang sistematis, disiplin, dan terukur untuk
pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993).
- Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat
tools untuk pembangunan perangkat lunak komputer (Pressman, 97).
- Merupakan aplikasi dari prinsip-prinsip sains untuk mengurutkan transformasi
masalah menjadi solusi yang dapat bekerja dengan baik
Jadi Rekayasa Perangkat Lunak adalah proses manipulasi, membuat atau
menciptakan sesuatu yang sifatnya khayalan logic yang di wujudkan dalam urutan-
urutan perintah (coding) beserta data-datanya sehingga menjadi suatu aplikasi yang
dapat digunakan.
a. Tujuan Rekayasa Perangkat Lunak
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) dengan biaya yang efisien
dan tepat pada waktunya.
Untuk lebih jelasnya lihat gambar 1.1.
Gambar 1.1 Paremeter Perangkat Lunak Yang Berkualitas Berdasarkan Sudut Pandang
\
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 :
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.