Rekayasa Perangkat Lunak

1. REKAYASA
* berasal dari Bahasa Inggris (Engineering) atau biasa dikenal dengan nama teknik adalah penerapan ilmu dan teknologi untuk menyelesaikan permasalahan manusia. Hal ini diselesaikan lewat pengetahuan, matematika dan pengalaman praktis yang diterapkan untuk mendesain objek atau proses yang berguna.
* Penerapan kaidah – kaidah ilmu dalam pelaksanaan sesuatu.

2. PERANGKAT LUNAK
* berasal dari Bahasa Inggris (Software) atau sering disebut juga piranti lunak adalah program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras. Perangkat lunak dapat juga dikatakan sebagai ‘penterjemah’ perintah-perintah yang dijalankan pengguna komputer untuk diteruskan ke atau diproses oleh perangkat keras.
* program komputer yang isi instruksinya dapat diubah dengan mudah. Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras (yang sering disebut sebagai device driver), melakukan proses perhitungan, berinteraksi dengan perangkat lunak yang lebih mendasar lainnya (seperti sistem operasi dan bahasa pemrograman), dan lain-lain.
* Perangkat lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan, yang diperlukan untuk membuat agar program beroperasi dengan benar.

KLASIFIKASI PERANGKAT LUNAK
* PERANGKAT LUNAK SISTEM (SYSTEM SOFTWARE)
1. Perangkat Lunak Sistem Operasi (Operating System)
Perangkat Lunak Sistem Operasi (Operating System), yaitu program yang ditulis untuk mengendalikan dan mengkoordinasi operasi dari sistem komputer. Contoh : MS – DOS, Windows
2. Perangkat Lunak Sistem Bantuan (Utility)
Perangkat Lunak Sistem Bantuan (Utility), yaitu program yang ditulis untuk bantuan yang berhubungan dengan sistem komputer, misalnya memformat disk, menyalin disk dsb. Contoh : notepad
3. Perangkat Lunak Bahasa (Language Software)
Perangkat Lunak Bahasa (Language Software), yaitu program yang digunakan untuk menterjemahkan instruksi – instruksi yang ditulis dalam bahasa pemrograman ke dalam bahasa mesin supaya dapat dimengerti oleh komputer. Contoh : Basic, Pascal, Cobol dsb.

* PERANGKAT LUNAK APLIKASI (APPLICATION SOFTWARE)
1. Perangkat Lunak Aplikasi Tujuan Umum (General Purpose Application Software)
Perangkat Lunak Aplikasi Tujuan Umum (General Purpose Application Software), yaitu program yang ditulis untuk keperluan kebanyakan pemakai komputer secara umum. Contoh : MS – Word, Excel dsb
2. Perangkat Lunak Aplikasi Tujuan Khusus (Special Purpose Application Software)
Perangkat Lunak Aplikasi Tujuan Khusus (Special Purpose Application Software), yaitu program yang ditulis untuk keperluan khusus. Contoh : SPSS, DacEasyAccounting, Autocad, SEM, dsb.

3. REKAYASA PERANGKAT LUNAK (SOFTWARE ENGINEERING)
* satu bidang ilmu yang mendalami cara-cara pengembangan perangkat lunak termasuk manajemen pembuatan, pemeliharaan, pengembangan perangkat lunak dan sebagainya.
* Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan.

ISTILAH KUNCI
* “disiplin ilmu” –> Perekayasa membuat suatu alat bekerja dengan menerapkan teori, metode, dan alat bantu yang sesuai. Selain itu mereka menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap permasalahan.

* “semua aspek produksi perangkat lunak” –> RPL tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak, tetapi juga berhubungan dengan kegiatan seperti manajemen proyek perangkat lunak, pengembangan alat bantu, metode, dan teori untuk mendukung produksi perangkat lunak.

TUJUAN RPL
* Biaya Produksi Rendah
* Kinerja Tinggi
* Biaya Perawatan Rendah
* Keandalan Sistem
* Output Berdaya Guna dan Tepat Waktu

TAHAPAN UMUM RPL
1. Analisis (Analysis)
* Studi Pendahuluan
* Studi Feasibilitas
* Mengidentifikasi Permasalahan dan Kebutuhan Pemakai
* Memahami Sistem Yang Ada
* Menganalisis Hasil Penelitian
2. Perancangan (Design)
* Perancangan Awal
* Perancangan Rinci
3. Implementasi (Implementation)
4. Perawatan (Maintenance)

Dalam rekayasa ataupun pengembangan perangkat lunak terdapat :
* Metode-Metode (Methods)
Metode dapat diartikan sebagai menyediakan cara bagaimana secara teknis membangun perangkat lunak. Metode ini menyangkut serangkaian tugas yaitu :
* Perencanaan proyek dan estimasi. Contoh : PERT (Program Evaliation and Review Technique) dan CPM (Critical Path Method)
* Analisis kebutuhan sistem dan software
* Rancangan struktur data
* Arsitektur program
* Algoritma prosedur
* Pengkodean (Coding)
* Testing
* Pemeliharaan

* Alat-Alat Bantu (Tools)
Tools rekayasa perangkat lunak memberikan topangan yang otomatis ataupun semi-otomatis pada proses-proses dan metode-metode yang ada seperti Computer Aided Software Engineering (CASE) yang terdiri dari :
* Data Flow Diagram (DFD)
* Entity Relationship Diagram (ERD)
Fungsi dari CASE yaitu mengkombinasikan / menggabungkan perangkat lunak, perangkat keras dan database rekayasa perangkat lunak untuk menciptakan suatu lingkungan sistem rekayasa perangkat lunak.

* Prosedur-Prosedur (Procedures)
Prosedur merupakan penggabungan antara metode dengan alat bantu. Prosedur mendefinisikan urutan (sequence) metode yang akan digunakan oleh seorang engineer.
Ada 5 (lima) sifat kunci RPL yang berkualitas baik :
1. Perangkat Lunak harus terpelihara dalam jangka waktu yang panjang
2. Perangkat Lunak harus terpercaya
3. Perangkat Lunak harus efektif & efisien
4. Perangkat Lunak harus memberikan kemudahan
5. Perangkat Lunak harus mempunyai keamanan

METODE RPL
Metode Pembuatan/Pengembangan Software/Sistem dapat berupa :
1. Package Method
2. End User Development Method
3. Outsourcing Method

PACKAGE METHOD
Pembuat/Pengembang : Pihak Ketiga
Operator : Pemakai Software/Sistem
Faktor – faktor yang harus diperhatikan dalam memilih paket :
1. Spesifikasi kebutuhan
2. Ketersediaan paket
3. Mengevaluasi kemampuan paket

Paket yang baik adalah paket yang mampu memenuhi kebutuhan pemakai software/sistem.

Kelebihan Metode Paket :
* Biasanya kualitas paket cukup baik.
* Dapat digunakan seketika / segera.
* Harga paket biasanya relatif murah.
Kelemahan Metode Paket :
* Tidak sesuai untuk aplikasi yang unik.
* Perbaikan, modifikasi & pengembangan paket sulit dikerjakan sendiri.
* Tidak memberikan keuntungan kompetisi.

END USER DEVELOPMENT METHOD
Pembuat/Pengembang : Pemakai Software/Sistem atau Analis Sistem
Operator : Pemakai Software/Sistem

Kelebihan Metode Pengembangan oleh Pemakai :
* Menghindari permasalahan kemacetan.
* Kebutuhan akan sistem/software dapat terpenuhi dengan baik.
* Meningkatkan keterlibatan pemakai.
* Kualitas pemahaman pemakai sistem/software terhadap teknologi informasi akan meningkat.
Kelemahan Metode Pengembangan oleh Pemakai :
* Lamanya waktu pengembangan sistem/software.
* Kelemahan teknis yang dimiliki oleh pemakai sistem/software.
* Pengembangan sistem/software dapat terganggu dengan kebijakan/aturan yang sering berubah.

OUTSOURCING METHOD
Pembuat/Pengembang : Pihak Ketiga
Operator : Pemakai Software/Sistem atau Pihak Ketiga

Kelebihan :
* Biaya teknologi akan lebih murah.
* Mengurangi waktu proses.
* Jasa yang diberikan lebih berkualitas.
* Mengurangi resiko kegagalan investasi
* Perusahaan dapat fokus pada pekerjaan lain.
Kelemahan :
* Sistem/software dapat ditiru pesaing yang menjadi klien outsourcer yang sama.
* Perusahaan akan kehilangan kendali akan sistem/software.
* Perusahaan akan kehilangan keahlian akan teknologi informasi.

MANAJEMEN PROYEK
Pengertian Proyek :
* Tugas yang perlu dirumuskan untuk mencapai sasaran yang dinyatakan secara konkrit serta harus diselesaikan dalam suatu periode tertentu dengan menggunakan tenaga manusia dan alat–alat bantu yang begitu kompleks sehingga dibutuhkan pengelolaan dan kerjasama.
* Kumpulan kegiatan termasuk sumber daya dan waktu yang diperlukan, yang diorganisasikan dan bersifat sementara untuk mencapai tujuan yang telah ditetapkan.

Manajemen Proyek dilaksanakan dengan tujuan :
“ Mengoptimalkan / memaksimalkan penggunaan sumber daya guna mencapai tujuan yang telah ditetapkan “

Untuk mencapai tujuan tersebut, Manajemen Proyek harus dilaksanakan dengan cara :
* Adanya koordinasi horisontal antar pelaksana yang tidak terlalu birokratis.
* Adanya penanggub jawab tunggal yang berfungsi sebagai pusat informasi, integrator antar komponen yang terlibat dan sekaligus sebagai pelaksana koordinasi dengan pihak di luar proyek.
* Keterpaduan rencana dan pengendalian dengan cara pemantauan terus menerus.
* Proyek dapat diuraikan menjadi rincian kegiatan yang terstruktur.

FOKUS MANAJEMEN PROYEK
Manajemen Proyek perangkat lunak yang efektif berfokus pada 3 (tiga) P, yaitu :
* PEOPLE (manusia)
* PROBLEM (masalah)
* PROCESS (proses)