1.1Definisi RPL ( REKAYASA PERANGKAT LUNAK) Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah SoItware engineering. Istilah SoItware Engineering mulai dipopulerkan pada tahun 1968 pada soItware engineering ConIerence yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (soItware) dan program komputer. Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses inIormasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses inIormasi (O`Brien, 1999). Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesiIikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan semua aspek produksi pada pengertian di atas, mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL. 1.2Latar Belakang Penggunaan RPL 1.3Evolusi Software
Pada masa awal era komputer perangkat keras dengan tujuan umum menjadi hal yang biasa, sementara perangkat lunak dirancang secara khusus untuk aplikasi tertentu saja dan hanya memiliki areal distribusi yang terbatas. Produk perangkat lunak (program yang dikembangkan untuk dijual kepada satu pelanggan atau lebih) masih langka. Kebanyakan perangkat lunak dikembangkan dan digunakan oleh orang atau organisasi yang sama. Pada era ini tidak ada pendokumentasian. Era kedua evolusi sistem komputer melingkupi dekade pertengahan tahun 1960 dan 1970-an (Gambar 1.1.). Sistem multiprogram dan multiuser memperkenalkan konsep baru interaksi manusia dengan mesin. Teknik interaktiI membuka sebuah dunia aplikasi yang baru serta tingkat kecanggihan perangkat lunak dan perangkat keras yang baru pula. Sistem real time dapat mengumpulkan, menganalisis, serta mengubah data dari banyak sumber sehingga proses pengontrolan dan penghasilan output tidak lagi berada di dalam skala menit, melainkan detik. Kemajuan dalam penyimpanan on-line membawa ke generasi pertama sistem manajemen database. Era kedua juga ditandai dengan penggunaan produk perangkat lunak serta kehadiran soItware houses. Era ketiga evolusi sistem komputer dimulai pada pertengahan tahun 1970-an dan berlangsung lebih dari satu dekade penuh. Sistem terdistribusi multi komputer, yang masing-masing melakukan Iungsi secara konkuren dan berkomunikasi satu dengan yang lain. Kesimpulan dari era ketiga ditandai dengan kehadiran dan penyebaran pemakaian mikroprosesor. Evolusi sistem komputer era keempat menjauhkan kita dari komputer individual dan program komputer dan menuju pengaruh kolektiI dari komputer dan perangkat lunak. Mesin desktop yang kuat yang dikontrol oleh sistem operasi yang canggih, jaringan lokal dan global, serta digabung dengan aplikasi perangkat lunak yang maju, menjadi sebuah aturan. Teknologi yang berorientasi pada objek dengan cepat menggantikan pendekatan pengembangan perangkat lunak yang lebih konvensional dalam berbagai area aplikasi. Perangkat lunak sistem pakar dan kecerdasan buatan pada akhirnya bergerak dari laboratorium ke penerapan praktis untuk berbagai masalah dengan dengan jangkauan luas di dunia nyata. Tetapi selama era evolusi sistem berbasis komputer, serangkaian masalah yang berhubungan dengan perangkat lunak masih muncul, dan intensitas masalah-masalah tersebut terus bertambah. 1. Kemajuan perangkat keras terus berlanjut, melampaui kemampuan kita untuk membangun perangkat lunak yang sesuai dengan perangkat keras yang ada. 2. Kemampuan kita untuk membangun program baru tidak dapat memenuhi kebutuhan akan program baru, juga tidak dapat membangun program yang cukup cepat untuk memenuhi kebutuhan bisnis dan pasar. 3. Pemakaian komputer yang tersebar luas membuat masyarakat semakin tergantung pada operasi perangkat lunak yang reliabel. Kerusakan ekonomis yang besar dan potensi penderitaan manusia dapat muncul bila terjadi kegagalan perangkat lunak. 4. Kita berjuang untuk membangun perangkat lunak komputer dengan reliabilitas dan kualitas yang sangat tinggi. 5. Kemampuan kita untuk mendukung program yang ada terhambat oleh buruknya desain serta sumber daya yang tidak memadai. 1.4Fase-fase Pembangunan Software Pembangunan soItware, sering disebut REKAYASA PERANGKAT LUNAK atau SoItware Engineering. Dalam pembangunannya, ada beberapa tahapan yang pasti dilakukan : 1. Fase Perencanaan (Planning) : a) Rencana soItware - Pengalokasian sumber / resource - Estimasi biaya - Penetapan tugas pekerjaan dan jadual. b) Analisa kebutuhan soItware Analisa kebutuhan menetapkan peranan dari setiap elemen dalam sistem berbasis komputer, terutama mengalokasikan peranan soItware. c) Analisa cost banefit (Salah satu bagian dari studi kelayakan) Penetapan lingkup untuk soItware memberikan petunjuk / arah. Namun deIinisi yang lebih rinci dari inIormasi dan Iungsi soItware diperlukan sebelum pekerjaan dimulai. 2. Fase Pengembangan (Development) : Fase pengembangan berIokus pada 'ow. Selama pengembangan, developer soItware berusaha menjelaskan : - Bagaimana struktur data dan arsitektur soItware yang didesain - Bagaimana rincian prosedur diimplementasikan ( diterapkan ) - Bagaimana desain diterjemahkan ke dalam bahasa pemrograman atau bahasa non prosedur, dan - Bagaimana pengetesan akan dilaksanakan. a) Desain soItware ( SoItware Design ) Desain menterjemahkan kebutuhan-kebutuhan soItware ke dalam sekumpulan representasi (graIik, tabel, diagram, atau bahasa yang menjelaskan struktur data, arsitektur soItware dan prosedur algoritma). b) Coding Representasi desain harus diterjemahkan ke dalam bahasa tiruan / artiIicial language yang menghasilkan perintah-perintah yang dapat dieksekusi oleh komputer. c) Testing Segera sesudah soItware diimplementasikan dalam bentuk yang dapat dieksekusi oleh mesin, soItware perlu ditest untuk menemukan kesalahan ( merupakan Iungsi logika dan implementasi ). Macam-macam test program : i. Unit test (Test per modul) ii. Integreated test (Test penggabungan dari modul-modul yang telah diuji) iii. Validated test (Diuji dengan data sebenarnya) iv. System test (Test dilakukan dengan lingkungan sebenarnya) v. Topdown test (Test gabungan dari atas ke bawah) vi. Bottom up test (Test gabungan dari bawah ke atas) 3. Fase Pemeliharaan (Maintenance) : a. Perubahan karena soItware error ( Corective Maintenance ) b. Perubahan karena soItware disesuaikan / diadaptasi dengan lingkunga external, misalnya munculnya CPU baru, sistem operasi baru ( Adaptive Maintenance ) c. Perubahan soItware yang disebabkan customer / user meminta Iungsi tambahan, misalnya Iungsi graIik,Iungsi matematik, dll ( PerIective Maintenance ).
1.5Penerapan (Aplikasi) Software 1. Sistem SoItware Adalah sekumpulan program yang ditulis untuk melayani atau menunjang program lainnya. Beberapa system soItware seperti compiler, editor, komponen-komponen sistem operasi, driver, utilitas pengatur Iile dan prosesor telekomunikasi. Memproses struktur-struktur inIormasi yang lengkap namun tetap. Perangkat lunak sistem ditandai dengan eratnya interaksi dengan perangkat keras komputer. 2. Real Time soItware Adalah soItware yang mengawasi/menganalisa/ mengatur kejadian yang sesungguhnya terjadi di dunia. Elemen-elemen real time soItware terdiri dari : a. Komponen pengumpul data Yang mengumpulkan dan menyusun inIormasi dari lingkungan external. b. Komponen analisis Yang mentransIormasikan inIormasi yang diperlukan oleh aplikasi c. Komponen kontrol Yang memberikan respon kepada lingkungan external d. Komponen monitor Yang mengkoordinasi semua komponen-komponen lainnya, sehingga respons real time yang berkisar 1 milisecond sampai 1 menit dapat dipertahankan. Perlu dicatat bahwa istilah real time berbeda dari istilah interactive atau time sharing. Sistem real time harus memberikan respons pada waktu yang ditentukan, sedangkan pada sistem interactive atau time sharing respons time biasanya melebihi batas waktu yang ditentukan tanpa merusak hasil. 3. Business soItware Setiap bisnis, besar atau kecil, memproses sejumlah data yang besar dalam operasi hariannya. Data diperoleh dari payroll, Iaktur customer dan rekening keuangan, inventaris manajemen, dan rekening biaya customer yang semuanya harus dikalkulasi, disimpan, diklasiIikasikan, disortir, diretriev, diproses kembali, dilaporkan, dikomunikasi dan disebarkan pada suatu waktu. Pemrosesan data seperti itu dikenal sebagai Business Data Processing atau Data Processing (DP). Jika pemrosesan ini dilakukan dengan komputer, hal ini dikenal dengan Electronic Data Processing (EDP). Komputer juga dapat digunakan secara eIektiv dalam bisnis management. Melalui komputerisasi data base management system (DBMS) dan SIM, seorang manajer atau eksekutive perusahaan dapat dibantu dalam membuat keputusan tentang seluruh operasi bisnisnya dan dapat memberikan bimbingan dan instruksi kepada bawahannya lainnya. Beberapa contoh system software diantaranya : compiler, editor, dan file management utilities, jenis lainnya adalah OS, component, drivers dan telecommunications processors. Dari kesemuanya, area system soItware dapat ditandai dengan interaksi yang kuat dengan hardware komputer, penggunaan yang banyak oleh banyak user, operasi konkuren yang memerlukan penjadwalan, penggunaan bersama sumberdaya yang ada, manajemen proses yang baik, struktur data yang rumit, dan interIace eksternal yang banyak. Sistem diskrit (contohnya payroll, account receivable/payable, inventory) telah mengembangkan perangkat lunak sistem inIormasi manajemen (MIS) yang mengakses satu atau lebih database besar yang berisi inIormasi bisnis. Aplikasi perangkat lunak bisnis juga meliputi penghitungan klien/server serta penghitungan interaktiI (misal pemrosesan transaksi point-of-sale). SoItware yang paling banyak digunakan dalam bidang aplikasi soItware. SoItware ini digunakan oleh manajemen untuk mengambil keputusan ( Decision Making ) dalam bidang bisnis. Contoh : 4 DAC EASY ACCOUNTING 4 FINANCE MANAJER 4. Engineering and sciencetiIic soItware Engineering and sciencetiIic soItware ditandai algoritma number crunching. Perangkat lunak ini memiliki jangkauan aplikasi mulai dari astronomi sampai vulkanologi, dari analisis otomotiI sampai dinamika orbit pesawat ruang angkasa, dan dari biologi molekuler sampai pabrik yang sudah diotomatisasi, computer-aided design, simulasi sistem, dan aplikasi interaktiI yang lain, sudah mulai memakai ciri-ciri perangkat lunak sistem genap dan real-time.
5. Emdebed SoItware mbedded software ada dalam read-only memory dan dipakai untuk mengontrol hasil serta sistem untuk keperluan konsumen dan pasar industri. mbedded software dapat melakukan Iungsi yang terbatas serta Iungsi esoterik (misal key pad control untuk microwave) atau memberikan kemampuan kontrol dan Iungsi yang penting (contohnya Iungsi digital dalam sebuah automobil seperti kontrol bahan bakar, penampilan dash- board, sistem rem, dll). 6. PC SoItware (Personal Computer) PC soItware merepresentasikan rancangan interIace manusia-komputer yang paling inovatiI. SoItware yang banyak digunakan di komputer pribadi (PC). Contoh : O ord Processing : S, P O Spreadsheet : Lotus, Supercalc O Computer Graphics : Printshop, Print Magic O Games : Paoman, Load Runner O DBMS : Dbase III, Foxbase, Clipper O Network : LAN, Novell 7. ArtiIicial Intelegence soItware Perangkat lunak kecerdasan buatan (rtificial Inteligent /AI) menggunakan algoritma non-numeris untuk memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau analisis secara langsung contohnya adalah expert system atau knowledge based system. Perangkat lunak kecerdasan buatan adalah pengenalan pola (image dan voice), pembuktian teorema, dan permainan game. Di tahun-tahun terakhir, cabang perangkat lunak kecerdasan buatan yang baru, yang disebut artificial neural network, telah berkembang. Jaringan syaraI mensimulasi struktur proses-proses otak dan kemudian membawanya kepada perangkat lunak kelas baru yang dapat mengenali pola-pola yang kompleks serta belajar dari pengalaman-pengalaman masa lalu. Perangkat lunak dapat diaplikasikan ke berbagai situasi di mana serangkaian langkah prosedural (seperti algoritma) telah dideIinisikan. Kandungan inIormasi dan determinasi merupakan Iaktor penting dalam menentukan siIat aplikasi perangkat lunak. Content mengarah kepada arti dan bentuk dari inIormasi yang masuk dan keluar. Memang sulit untuk menentukan kategori umum untuk aplikasi perangkat lunak. Ketika kompleksitas perangkat lunak mulai muncul, maka penggolongan yang rapi menjadi hilang. Area perangkat lunak berikut menunjukkan luasnya aplikasi potensial.