Sabtu, 28 Januari 2012

SEJARAH PERANGKAT LUNAK

Kita ketahui, komputer membutuhkan data atau fakta, dimana data ini pada saat diinput akan diterjemahkan menjadi bilangan biner. Mesin komputer memproses fakta atau data menjadi suatu informasi yang berguna bagi penggunanya. Dengan Komputer diharapkan dapat meningkatkan hasil kerja dan memecahkan berbagai masalah. Sebelum menjadi informasi data tersebut diproses melalui hardware yang terletak pada CPU dengan menggunakan perangkat lunak. Perangkat lunak atau software adalah program dari komputer. Perangkat lunak adalah program yang berisi instruksi untuk melakukan proses pengolahan data. Saat ini, tingkat pemrosesan yang dikerjakan perangkat lunak bersifat machine-like (keinginan mesin) mulai berubah dengan sifat human-like (keinginan manusia). Di dalam teori informasi, disusun hirarki informasi, mulai dari data/ fakta, kemudian setelah proses seleksi dan pengurutan menjadi sesuatu yang berguna menjadi informasi. Informasi yang di susun secara sistematis dengan suatu alur logika tertentu menjadi knowledge (pengetahuan). Perangkat Keras tidak akan berfungsi tanpa adanya perangkat lunak begitu pula sebaliknya perangkat lunak tidak berfungsi tanpa adanya perangkat keras. Kedua perangkat tersebut memang saling berkaitan sehingga komputer dapat berfungsi dengan baik. Perkembangan teknologi terutama dalam perangkat keras terus diimbangi oleh perangkat lunaknya sehingga penggunaan komputer lebih maksimal. Kemampuan komputer dirasakan sangat berkaitan dengan perangkat keras dan perangkat lunaknya, maka dari itu diperlukan perangkat lunak yang benar-benar mendukung perangkat kerasnya.Bentuk paling sederhana dari perangkat lunak, menggunakan aljabar Boolean, yang di representasikan sebagai binary digit (bit), yaitu 1 (benar) atau 0 (salah), cara ini sudah pasti sangat menyulitkan, sehingga orang mulai mengelompokkan bit tersebut menjadi nible (4 bit), byte (8 bit), word (16 bit), double word (32 bit). Kelompok-kelompok bit ini di susun ke dalam struktur instruksi seperti penyimpanan, transfer, operasi aritmatika, operasi logika, dan bentuk bit ini di ubah menjadi kode-kode yang di kenal sebagai assembler. Kode-kode mesin sendiri masih cukup menyulitkan karena tuntutan untuk dapat menghapal kode tersebut dan format (aturan) penulisannya yang cukup membingungkan, dari masalah ini kemudian lahir bahasa pemrograman tingkat tinggi yang seperti bahasa manusia (bahasa Inggris). Saat ini pembuatan perangkat lunak sudah menjadi suatu proses produksi yang sangat kompleks, dengan urutan proses yang panjang dengan melibatkan puluhan bahkan ratusan orang dalam pembuatannya. Berdasarkan perkembangannya perangkat lunak sampai dengan sekarang dibagi menjadi beberapa era yaitu :


  1. Era Pemula (Pioneer) Bentuk perangkat lunak pada awalnya adalah sambungan-sambungan kabel ke antar bagian dalam komputer, Cara dalam mengakses komputer adalah menggunakan punched card yaitu kartu yang di lubangi. Penggunaan komputer saat itu masih dilakukan secara langsung, sebuah program untuk sebuah mesin untuk tujuan tertentu. Pada era ini, perangkat lunak merupakan satu kesatuan dengan perangkat kerasnya. Penggunaan komputer dilakukan secara langsung dan hasil yang selesai di kerjakan komputer berupa print out. Proses yang di lakukan di dalam komputer berupa baris instruksi yang secara berurutan di proses.
  2. Era Stabil Pada era stabil penggunaan komputer sudah banyak di gunakan, tidak hanya oleh kalangan peneliti dan akademi saja, tetapi juga oleh kalangan industri / perusahaan. Perusahaan perangkat lunak bermunculan, dan sebuah perangkat lunak dapat menjalankan beberapa fungsi, dari ini perangkat lunak mulai bergeser menjadi sebuah produk. Baris-baris perintah perangkat lunak yang di jalankan oleh komputer bukan lagi satu-satu, tapi sudah seperti banyak proses yang di lakukan secara serempak (multi tasking). Sebuah perangkat lunak mampu menyelesaikan banyak pengguna (multi user) secara cepat/langsung (real time). Pada era ini mulai di kenal sistem basis data, yang memisahkan antara program (pemroses) dengan data (yang di proses).
  3. Era Mikro Sejalan dengan semakin luasnya PC dan jaringan komputer di era ini, perangkat lunak juga berkembang untuk memenuhi kebutuhan perorangan. Perangkat lunak dapat di bedakan menjadi perangkat lunak sistem yang bertugas menangani internal dan perangkat lunak aplikasi yang di gunakan secara langsung oleh penggunanya untuk keperluan tertentu. Automatisasi yang ada di dalam perangkat lunak mengarah ke suatu jenis kecerdasan buatan.
  4. Era Modern Saat ini perangkat lunak sudah terdapat di mana-mana, tidak hanya pada sebuah superkomputer dengan 25 processor-nya, sebuah komputer genggampun telah di lengkapi dengan perangkat lunak yang dapat di sinkronkan dengan PC. Tidak hanya komputer, bahkan peralatan seperti telepon, TV, hingga ke mesin cuci, AC dan microwave, telah di tanamkan perangkat lunak untuk mengatur operasi peralatan itu. Dan yang hebatnya lagi adalah setiap peralatan itu akan mengarah pada suatu saat kelak akan dapat saling terhubung. Pembuatan sebuah perangkat lunak bukan lagi pekerjaan segelentir orang, tetapi telah menjadi pekerjaan banyak orang, dengan beberapa tahapan proses yang melibatkan berbagai disiplin ilmu dalam perancangannya. Tingkat kecerdasan yang ditunjukkan oleh perangkat lunak pun semakin meningkat, selain permasalahan teknis, perangkat lunak sekarang mulai bisa mengenal suara dan gambar.


sumber: http://rudihd.wordpress.com/2007/05/09/sejarah-perkembangan-perangkat-lunak/

Jumat, 27 Januari 2012

TREND PERANGKAT LUNAK

Menurut Roger Pressman perangkat lunak adalah:
  1. Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu,
  2. Struktur data yang dapat membuat program memanipulasi informasi,
  3. Dokumen yang menjelaskan operasi dan penggunaan program.
Sedangkan menurut IEEE perangkat lunak merupakan program komputer, prosedur, aturan, dan dokumentasi yang berkaitan dengannya serta data yang berkaitan dengan operasi suatu sistem komputer


Jenis-jenis Perangkat Lunak:
  1. Perangkat lunak sistem (system software),
  2. Perangkat lunak waktu nyata (real-time software),
  3. Perangkat lunak bisnis (business software),
  4. Perangkat lunak rekayasa dan ilmu pengetahuan (engineering and scientific software),
  5. Embedded Software,
  6. Perangkat lunak pribadi (personal software),
  7. Perangkat lunak intelegensia buatan (artificial inteligent software),
  8. Perangkat lunak lainnya.
Setelah kita mengetahui arti Perangkat Lunak, kemudian kita akan membahas mengenai Rekayasa Perangkat Lunak. Menurut Roger Pressman Rekayasa Perangkat Lunak adalah:
  1. Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efisien pada komputer (dikutip dari Fritz Bauer, 1968).
  2. Suatu disiplin, kaidah yang mengintegrasikan proses, metode, dan alat bantu (tools) untuk pembangunan perangkat lunak komputer.
Pengertian lain mengenai Rekayasa Perangkat Lunak adalah Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) merupakan satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan 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 (di kutip dari : Wikipedia).


Hal-hal yang paling sering dilakukan untuk merekayasa suatu perangkat lunak adalah :
  1. Perencanaan, yaitu tahapan untuk mempelajari konsep sistem dan permasalahan yang hendak diselesaikan, apakah sistem baru tersebut realistis dalam masalah pembiayaan, waktu, serta perbedaan dengan sistem yang ada sekarang.
  2. Analisis Sistem, yaitu tahapan menganalisis konsep sistem, permasalahan dan keperluan yang hendak dibuat. 
  3. Desain, yaitu suatu tahapan untuk mendesain sistem teknologi baru untuk permasalahan yang sama.
  4. Konstruksi, merupakan perbaikan terhadap produk yang memiliki kesalahan/kerusakan.
  5. Implementasi, merupakan software yang telah diuji dan siap diimplementasikan kedalam sistem pengguna atau sudah siap diterapkan.
  6. Maintenance, yaitu tahapan untuk memelihara dan melakukan perbaikan atau peningkatan sistem informasi baru bila diperlukan penggunaannya.
Alasan mengapa kita menggunakan Rekayasa Perangkat Lunak, yaitu:
  1. Perangkat lunak dibuat supaya bisa digunakan (oleh pemakai) untuk membantu menyelesaikan masalah atau pekerjaan,
  2. Perangkat lunak digunakan oleh pemakai di lingkungan operasional dengan teknologi tertentu sebagai bagian dari sistem yang lebih besar,
  3. Perangkat lunak yang dibuat harus memenuhi apa yang diinginkan oleh pemakai (bukan yang diinginkan developer), ekonomis (memberikan keuntungan bagi developer), dan andal (dapat digunakan dalam jangka waktu yang lama),
  4. Perangkat lunak sudah diselesaikan dan diserahkan (delivered) tetapi tidak pernah digunakan (47%),
  5. Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak pernah jadi dan diserahkan (29,7%),
  6. Perangkat lunak sudah digunakan tetapi kritis atau ditinggalkan (19%),
  7. Perangkat lunak digunakan setelah dilakukan modifikasi (3%),
  8. Hanya sebagian kecil perangkat lunak yang dapat digunakan sebagaimana mestinya (2%).
Berbicara mengenai Rekayasa Perangkat Lunak, dalam perkembangannya terdapat suatu trend seiring mengikuti perkembangan teknologi informasi.
  1. Tren software enginering saat ini mengarah pada biaya yang murah, platform bersifat multiuser, dapat digunakan oleh umum, pengembangannya bersifat open source dan cara aksesnya adalah online. 
  2. Jika dilihat dari pengembangannya beralih dari program aplikasi yang berbasis desktop menjadi program aplikasi yang berbasis Web atau Internet. Aplikasi internet merupakan suatu jenis aplikasi yang menerapkan arsitektur sistem terdistribusi dengan menggunakan internet sebagai media komunikasi antar komponennya.
Jadi kesimpulannya Rekayasa Perangkat Lunak saat ini mengarah pada program yang sifatnya agar dimana saja kita berada, kita dapat menjalankan perangkat lunak tersebut (online), serta dapat dijalankan pada Sistem Operasi apapun dan tentu dengan biaya yang murah.

SOFTWARE ENGINEERING

1. Pengertian Rekayasa Perangkat Lunak (Software Engineering)

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 computer (IEEE, 1993).
a. Karakteristik Perangkat Lunak Perangkat lunak lebih dikenal sebagai elemen lojik daripada fisik, oleh karena itu perangkat lunak memiliki karakteristik yang berbeda dari perangkat keras :
1. Perangkat lunak dikembangkan atau direkayasa, jadi tidak diproduksi dalam pengertian klasik.
2. Merupakan produk yang unik (tidak ada seri produksi).
3. Perangkat lunak tidak pernah akan rusak/aus karena selalu diperbaharui
4. Tidak terlihat (invisible).
5. Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak dibentuk dari komponen yang sudah ada.
6. Fleksibel, sehingga mudah dimodifikasi.
7. Dihubungkan (linked) dengan system system


b. Jenis-jenis Perangkat Lunak
1. Berdasarkan sudut pandang
· Perangkat lunak system
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk operasional system. Diantaranya : system 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 system 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 ystem, CAD (Computer Aided Design), simulasi ystem, dan lain-lain.
· Embedded Software
Perangkat lunak yang digunakan untuk mengontrol suatu produk dan ystem 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 ystem, 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 :

1. Spesifikasi perangkat lunak : mendefinisikan fungsi dan kemampuan beroperasi
2. Pengembangan perangkat lunak : mengembangkan perangkat lunak yang sesuai dengan spesifikasi
3. Validasi perangkat lunak : menjamin perangkat lunak sesuai dengan yang diinginkan pelanggan.
4. 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.


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.