Perangkat Lunak atau peranti lunak (bahasa Inggris: software) adalah istilah khusus untuk data yang diformat, dan disimpan secara digital, termasuk program komputer, dokumentasinya, dan berbagai informasi yang bisa dibaca, dan ditulis oleh komputer. Dengan kata lain, bagian sistem komputer yang tidak berwujud. Istilah ini menonjolkan perbedaan dengan perangkat keras komputer.
Pembuatan perangkat lunak itu sendiri memerlukan "bahasa pemrograman" yang ditulis oleh seorang pemrogram untuk selanjutnya dikompilasi dengan aplikasi kompiler sehingga menjadi kode yang bisa dikenali oleh mesin hardware. Perangkat lunak seperti Windows atau Linux bisa disebut sebagai nyawa dari komputer, di mana tanpa diinstal sistem operasi tersebut maka komputer tidak dapat dijalankan. Perangkat lunak sistem operasi biasanya tersimpan di Partisi C sehingga saat komputer mengalami masalah, Partisi C yang terkena imbas. Perangkat lunak lain juga tersimpan di Partisi C yang apabila komponen tidak lagi berjalan maksimal dapat diuninstal dan diinstal ulang. Data-data lain lebih baik disimpan di partisi D sehingga saat software terkena virus atau tidak berjalan normal kembali maka dapat diinstal ulang dan data penting dapat diselamatkan.
KATEGORI PERANGKAT LUNAK
• PL Sistem (System Software)
Kelas perangkat lunak ini mengelola dan mengendalikan operasi internal sistem komputer. Ini adalah sekelompok program yang bertanggung jawab untuk menggunakan sumber daya komputer secara efisien dan efektif. Misalnya, sistem operasi adalah system software, yang mengendalikan perangkat keras, mengelola fungsi memori dan multitasking, dan bertindak sebagai antarmuka antara program aplikasi dan komputer.
• PL Aplikasi (Application Software)
Suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer, tetapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar media.
• PL Rekayasa/Ilmiah (Engineering/Scientific Software)
Kelas perangkat lunak ini telah muncul sebagai alat bantu yang ampuh dalam penelitian dan pengembangan teknologi generasi berikutnya. Aplikasi seperti studi tentang benda langit, aktivitas di bawah permukaan, dan pemrograman jalur orbit untuk angkutan luar angkasa sangat bergantung pada perangkat lunak teknik dan ilmiah. Perangkat lunak ini dirancang untuk melakukan perhitungan yang tepat terhadap data numerik kompleks yang diperoleh selama lingkungan real time.
• PL yang tertanam (Embedded Software)
Embedded system atau sistem tertanam merupakan sistem komputer khusus yang dirancang untuk menjalankan tugas tertentu dan biasanya sistem tersebut tertanam dalam satu kesatuan sistem. Sistem ini menjadi bagian dari keseluruhan sistem yang terdiri atas mekanik dan perangkat keras lainnya.
• PL Lini Produk (Product-Line Software)
Lini produk perangkat lunak ( SPL ), atau pengembangan lini produk perangkat lunak, mengacu pada metode, perangkat, dan teknik rekayasa perangkat lunak untuk membuat kumpulan sistem perangkat lunak yang serupa dari serangkaian aset perangkat lunak bersama menggunakan cara produksi yang umum.
• PL Aplikasi Web (Web/Mobile Applications)
Kelas perangkat lunak ini bertindak sebagai antarmuka antara pengguna dan Internet. Data di internet berupa teks, audio, atau format video, yang dihubungkan dengan hyperlink. Web browser adalah perangkat lunak yang mengambil halaman web dari Internet. Perangkat lunak ini menggabungkan instruksi eksekusi yang ditulis dalam bahasa script khusus seperti CGI atau ASP. Selain menyediakan navigasi di Web, perangkat lunak ini juga mendukung fitur tambahan yang berguna saat berselancar di Internet.
• PL Kecerdasan Buatan (Artificial Intelligence Software)
Kelas perangkat lunak ini digunakan dimana teknik pemecahan masalah bersifat non-algoritmik. Solusi dari masalah tersebut umumnya tidak sesuai dengan perhitungan atau analisis langsung. Sebaliknya, masalah ini memerlukan strategi pemecahan masalah spesifik yang mencakup sistem pakar (expert system), pengenalan pola (pattern recognition), dan teknik bermain game (game-playing techniques). Selain itu, mereka melibatkan berbagai jenis teknik pencarian yang mencakup penggunaan heuristik. Peran perangkat lunak kecerdasan buatan (AI software) adalah menambahkan tingkat kecerdasan tertentu ke perangkat keras mekanis agar pekerjaan yang diinginkan dilakukan dengan cara yang tangkas.
JENIS-JENIS PERANGKAT LUNAK
a. Stand-Alone Applications : Adalah contoh aplikasi seperti aplikasi office pada PC,
program CAD, software manipulasi foto, dll
b. Interactive Transaction-Based Aapplications : Adalah aplikasi yang mengeksekusi pada komputer remote dan yang diakses oleh pengguna dari PC mereka sendiri atau terminal
c. Batch Processing Systems : Adalah sistem bisnis yang dirancang untuk memproses
data input yang besar untuk membuat output yang sesuai.
Contoh: sistem penagihan telepon, dan sistem pembayaran gaji
d. Embedded Control Systems : Adalah sistem kontrol Perangkat Lunak yang mengontrol
dan mengelola perangkat keras, atau sistem yang tertanam
pada jenis sistem lain.
Contoh: Perangkat Lunak yang mengontrol pengereman anti-lock mobil, dan software dalam oven microwave untuk mengontrol proses memasak.
Contoh: Perangkat Lunak yang mengontrol pengereman anti-lock mobil, dan software dalam oven microwave untuk mengontrol proses memasak.
e. Entertainment Systems : Adalah sistem yang terutama untuk penggunaan pribadi
dan yang dimaksudkan untuk menghibur pengguna.
f. Systems for Modelling and Simulation : Adalah sistem yang dikembangkan untuk model proses fisik atau situasi, dengan banyak objek yang saling berinteraksi
g. Data Collection Systems : Adalah sistem yang mengumpulkan data dari lingkungan
mereka menggunakan satu set sensor dan mengirim data ke sistem lain untuk diproses.
h. Systems of Systems : Adalah sistem yang terdiri dari sejumlah sistem PL lain.
KEGAGALAN PERANGKAT LUNAK
Faktor-faktor penyebab kegagalan Perangkat Lunak:
• Meningkatnya tuntutan
RPL membangun sistem yang lebih besar, sistem yang lebih kompleks menyebabkan tuntutan berubah. Sistem harus dibangun dan disampaikan lebih cepat, lebih besar, dan lebih kompleks. Sistem harus memiliki kemampuan baru yang sebelumnya dianggap mustahil.
• Harapan yang rendah
Hal ini relatif mudah untuk menulis program komputer tanpa menggunakan metode dan teknik RPL. Banyak Pengusaha yang tidak menggunakan metode RPL, akibatnya PL lebih mahal dan kurang dapat diandalkan.
REKAYASA PERANGKAT LUNAK
Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas.
IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
Rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.
Kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak:
- Dapat terus dirawat dan dipelihara (Maintainability)
- Dapat mengikuti perkembangan teknologi (Dependability)
- Dapat mengikuti keinginan pengguna (Robust)
- Efektif dan efisien dalam menggunakan energi dan penggunaannya
- Dapat memenuhi kebutuhan yang diinginkan (Usability)
PROSES PERANGKAT LUNAK
• Suatu proses merupakan sekumpulan aktivitas, aksi, dan
tugas yang dijalankan ketika suatu produk kerja harus
dibuat.
• Sebuah proses PL adalah urutan kegiatan yang mengarah ke
produksi produk software.
• Empat kegiatan proses PL adalah:
a. Spesifikasi PL
b. Pengembangan PL
c. Software validasi
d. Software evolusi
• Suatu aktivitas berupaya mencapai tujuan umum dan diterapkan tanpa memperhatikan lingkungan aplikasi, tanpa memperhatikan ukuran proyek, tanpa memperhatikan kompleksitas dan usaha, dan tanpa memperhatikan kekakuan dari RPL saat diterapkan.
• Suatu tugas konsentrasi pada tujuan yang kecil tetapi terdefinisi dengan baik.
• Kerangka kerja proses membangun dasar bagi proses RPL yang lengkap dengan cara mengidentifikasikan aktivitas kerangka kerja yang cocok untuk semua proses RPL.
• Kerangka kerja proses mencakup sekumpulan akitivitas yang berperan sebagai penyangga dan cocok dengan keseluruhan proses PL.
• Aktivitas kerangka kerja proses:
a. Komunikasi
b. Perencanaan
c. Pemodelan
d. Konstruksi
e. Penyerahan PL ke pelanggan/user
• Aktivitas kerangka kerja proses RPL disempurnakan oleh aktivitas yang bertindak sebagai penyangga.
• Kegiatan-kegiatan penyangga mencakup:
a. Penelusuran dan kendali proyek PL
b. Manajemen risiko
c. Penjaminan kualilitas PL
d. Tinjauan teknis
e. Pengukuran
f. Manajemen konfigurasi PL
g. Manajemen penggunaan ulang
h. Persiapan produk kerja dan produksi
MITOS PERANGKAT LUNAK
Mitos perangkat lunak ada 3, yaitu :
1. Mitos Manajemen
a. Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis pemrograman yang kita lakukan sekarang ini sudah dilakukan 10 tahun yang lalu.
Realitasnya : Walau hasil program sama, produktivitas dan kualitas software harus ditingkatkan dengan menggunakan pendekatan software developments.
b. Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk pembentukan software.
Realitasnya : Memang buku tersebut ada, tetapi apakah buku tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman (out of date).
c. Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa progammer saja. Konsep ini sering disebut Mongolin harde concept.
2. Mitos Pelanggan
a. Pernyataan tujuan umum sudah cukup untuk memulai penulisan program. Penjelasan yang lebih rinci akan menyusul kemudian.
Realitasnya : Definisi awal yang buruk adalah penyebab utama kegagalan usaha-usaha pembentukan software. Penjelasan yang formal dan terinci tentang informasi fungsi performance interface, hambatan desain dan kriteria validasi adlaah penting. Karakteristik di atas dapat ditentukan hanya setelah adanya komunikaso antara customer dan developer.
b. Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena software itu bersifat fleksibel.
Kenyataannya memang benar bahwa kebutuhan software berubah, tetapi dampak dari perubahan berbeda dari waktu ke waktu.
3. Mitos Praktisi
a. Tidak ada metode untuk analisa dan testing terhadap suatu pekerjaan, cukup menuju ke depan terminal dan mulai coding.
Realitasnya : Metode untuk analisa desain dan testing diperlukan dalam pengembangan software.
b. Segera setelah sofware digunakan, pemeliharaan dapat diminimalisasikan dan diatasi dengan cara "CATCH AS CATCH CAM".
Realitasnya : Diperlukan budget yang besar dalam maintenance software. Pemeliharaan software harus diorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu proyek besar dalam sebuah organisasi.