Sejarah Software
Software Komputer adalah kumpulan
dari pada intruksi atau statement yang di susun secara logis dan berbentuk kode
yang hanya dapat di mengerti oleh komputer. Software Komputer
ini berangsur-angsur mengalami peningkatan atau perubahan dari tahun ke tahun
dalam perkembangannya. Berdasarkan perkembangannya, Sejarah Perkembangan
Software Komputer dibagi dalam beberapa era yaitu Era Pioneer, Stabil, Mikro,
dan Modern.
1. Era Pioneer.
Pada
Era Pioneer ini bentuk software komputer 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
digunakan untuk sebuah mesin tertentu dan untuk tujuan tertentu. Di era ini
software komputer merupakan satu kesatuan dengan sebuah hardware komputer.
2.
Era Stabil.
Pada Era Stabil ini
baris-baris perintah software komputer yang dijalankan oleh komputer bukan lagi
satu-satu, melainkan sudah banyak proses yang di lakukan secara bersamaan (multi
tasking). Software Komputer pada era ini juga mampu menyelesaikan banyak
pengguna (multi user) dan secara cepat/langsung (real time). Pada era ini pula
mulai di kenal sistem basis data, yang memisahkan antara program dan data.
3.
Era Mikro.
Pada Era Mikro, software komputer dapat
dibedakan menjadi beberapa bagian yaitu Software Sistem (Windows, Linux,
Machintos, dll), Software Aplikasi (Ms.Office, OpenOffice, dll) dan Language
Software/Bahasa Pemograman (Assembler, Visual Basic, Delphi, dll).
4. Era Modern.
Pada
Era Modern, software komputer tidak hanya untuk sebuah komputer tetapi
sebuah handphone pun telah di lengkapi dengan software sistem seperti
Android, Symbian, dll. Tingkat kecerdasan yang ditunjukkan oleh software
komputer pun semakin meningkat, selain permasalahan teknis, software komputer
sekarang juga mulai bisa mengenal suara dan gambar.
Tahun-Tahun Penemuan Software Komputer
Istilah software
engineering digunakan pertama kali pada akhir 1950-an dan awal
1960-an. Saat itu, masih ada perdebatan mengenai aspek engineering dari
pengembangan perangkat lunak.
Pada
tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang
rekayasa perangkat lunak, yang memberikan dampak kuat terhadap perkembangan
rekayasa perangkat lunak. Banyak yang menganggap bahwa dua konferensi inilah
yang menandai awal resmi profesi rekayasa perangkat lunak.
Pada
tahun 1960-an sampai dengan 1980-an, banyak masalah yang ditemukan para praktisi
pengembangan perangkat lunak. Banyak projek yang gagal, hingga masa ini disebut
sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak
terjadi mulai dari projek yang melebihi anggaran, hingga kasus yang
mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal
antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak.
Selama
bertahun-tahun, para peneliti memfokuskan usahanya untuk memecahkan masalah krisis perangkat lunak.
Berbagai macam
teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas
untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman
berorientasi object, perangkat pembantu pengembangan perangkat lunak (CASE
tools), berbagai standar, UML hingga metode formal dijadikan sebagai
senjata pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan
tepat waktu.
Pada
tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi
atau praktik yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas
pengembangan perangkat lunak dalam tempo 10 tahun.
Sebagian
berpendapat, no silver bullet berarti profesi rekayasa perangkat
lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal
ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup
matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas
yang dapat digunakan dalam berbagai kondisi.
Structured Programming
Sturctured
programming berurusan dengan penggunaan
blok sturktur, state procedure call, dan beragam konstruksi loop yang
sesuai. Ide yang cukup jelas untuk memberikan pengetahuan/pengertian
terhadap flow kontrol program dengan mudah, agar program disusun secara
terstruktur dan transparan.
Object Oriented Programming
Metodologi Object
Oriented Programming (OOP) berkembang dari ide structrured programming. OOP mengatur komplesitas software dengan memaketkan
kode dan data yang biasa digunakan bersama. Biasanya kita samakan dengan object
pada dunia nyata. pada OOP, kita kadang kadang memodelkan object dunia
nyata (ex: menulis program simulasi, ketika pertama kalinya konsep OOP dikembangkan)
sebagai object software dan juga sebagai model benda non-material seperti
prosess, cara mengorganisasi informasi dan lain sebagainya sebagai object
software.
Design Patterns
Pada pengembangan software, penggunaan
design patern didasarkan pada observasi bahwa beberapa proyek software gagal
sementara proyek yang mirip berhasil (hal ini dapat berupa pola managemen, pole
penjadwalan, pola testing dll). pada desain software, penggunaan pola
didasarkan pada observasi lebih lanjut pada pola desain umum untuk tugas yang
hampir sama digunakan berulangkali untuk proyek yang berhasil.
Extreme Programming
Extreme programming merupakan pendekatan
yang berbeda dengan skenario tradisional yang memerlukan waktu baik pengembang
maupun pelanggan untuk mencoba (biasanya dengan tingkat kesuksesan yang
terbatas) mendokumentasikan secara detail software yang telah dikembangkan
selama beberapa lama waktu yang dihabiskan. pengembang yang berpengalaman
mengerti bahwa implementasi yang ter-stag secara positif berpengaruh pada
proses desain. extreme programming secara special efektif ketika kebutuhan kompleks
dan tidak memerlukan hal seperti sebelumnya.
Ketika kita belajar UML, kita akan melihat
beberapa detail kasus-kasus user yang secara lengkap menerangkan aspek individu
bagaimana orang akan menggunakan sistem software. extreme programming
menggunakan suatu hal yang dinamakan dengan “Cerita User”(user stories) yang
dibuat oleh pelanggan untuk menjelaskan persepsinya terhadap sistem yang akan
dibangun. cerita user kemudian digunakan untuk mendefinisikan perkiraan waktu
pengembangannya, dan membantu mendefinisikan test yang terotomasi yang akan
digunakan serta digunakan baik untuk pengembangan maupun untuk test penerimaan
pelanggan (acceptance test).
Extreme programming biasanya
dideskripsikan sebagai sebuah phrase yang cukup berarti bagi penulis: test
driven programming. menulis kode test sebelum menulis kode aplikasi. kemudian
menulis software cukup untuk memenuhi unit test. tidak diijinkan untuk mengubah
kode software sebelum seluruh test unit dilalui. gunakan tools seperti JUnit
(www.junit.org) untuk menulis test yang terotomasi.
Aspect oriented Programming
Ide utama dibalik aspect oriented
programming (AOP) adalah pemisahan konsentrasi sistem software pada bagian yang
berbeda. pada prinsipnya, filosofi ini mengijinkan pengembangan sistem yang
lebih modular, dengan modularitasnya terkontrol oleh konsentrasi pengembangan
yang berbeda.
Bagian
dari Perangkat Software Komputer
Perangkat lunak aplikasi
Sistem operasi dengan perangkat lunak
bahasa tidak di tunjukkan untuk menyelesaikan permasalahan dalam aplikasi
tertentu yang dihadapi oleh pemakai komputer. Program yang ditunjukan untuk
menyelesaikan suatu permasalahan dalam aplikasi tertentu di sebut program
aplikasi atau program paket. Ada dua cara untuk bisa mendapatkan program
aplikasi yang di butuhkan yaitu dengan mengembangkan sendiri (sangat sulit dan
perlu keahlian khusus) atau membelinya (mudah).
Saat ini banyak sekali program-program
aplikasi yang tersedia di pasaran. Program-program ini dapat diandalkan, dapat
memenuhi kebutuhan pemakai, dirancang dengan baik, relatif bebas dari
kesalahan, mudah digunakan (user friendly), mempunyai dokumen yang memadai dan
didukung oleh purna jual yang baik. Program-program paket ini di gunakan untuk
menyelesaikan masalah-masalah umum seperti membuat dokumen (word star,
microsoft word), membuat slide presentasi (ms power point), penerbitan (adobe
page maker), mengelola gambar (adobe photoshop) dsb. Akan tetapi bila kita
mempunyai permasalahan yang sifatnya khusus dan unik sehingga tidak ada
paket-paket program yang sesuai untuk digunakan, maka dengan terpaksa harus
dikembangkan program aplikasi sendiri, misalnya program sistem SKS universitas,
program sistem keuangan perusahaan, dll.
System perangkat lunak
Perangkat keras computer tidak dapat
berbuat apa-apa tanpa adanya perangkat lunak. Teknologi yang canggih dari
perangkat keras akan berfungsi bila instruksi-instruksi tertentu telah di
berikan kepadanya. Intruksi-instruksi tersebut disebut dengan perangkat lunak
(software). Intruksi-instruksi perangkat lunak di tulis oleh manusia untuk
mengaktifkan fungsi dari perangkat keras computer.
Perangkat keras computer mempunyai
beberapa kegunaan yang sudah di bentuk dan di pasang di dalamnya untuk dapat
menanggapi instruksi-instruksi yang diberikan. Apabila seseorang harus menyusun
perangkat lunak yang langsung berhubungan dengan perangkat keras terlebih
dahulu, akan sangat sulit karena harus di ketahui secara persis cara kerja
perangkat keras yang bersangkutan. Kesulitan akan semakin bertambah karena
peralatan yang berbeda mempunyai karakteristik dan cara operasi yang berbeda
pula sehingga memerlukan perangkat lunak yang juga berbeda . Untuk mengatasi
hal ini,maka di buatlah suatu perangkat lunak yang di sebut dengan system
operasi (operating system/OS)
Klasifikasi perangkat lunak
Perangkat lunak secara umum dapat dibagi
menjadi 2 yaitu perangkat lunak system dan perangkat lunak aplikasi. Perangkat lunak system dapat dibagi lagi menjadi
3 macam yaitu:
1. Bahasa Pemrograman: merupakan perangkat lunak yang bertugas
mengkonversikan arsitektur&algoritma yang di rancang manusia ke dalam
format yang dapat dijalankan computer,contoh bahasa pemprograman: BASIC, COBOL,
Pascal, C++, FORTRAN.
2. System Operasi: saat computer pertama kali dihidupkan ,sistem
operasilah yang pertama kali dijalankan, sistem operasi yang mengatur seluruh
proses, menterjemahkan masukan, mengatur proses internal, memanajemen
penggunaan memory dan memberikan keluaran ke peralatan yang bersesuaian, contoh
system operasi: DOS, UNIX, Windows 95, IBM OS/2, Apple’s system.
3. Utility: system operasi merupakan perangkat lunak system dengan fungsi tertentu,
misalnya pemerikasaan perangkat keras(hardware troubleshooting), memeriksa
disket yang rusak (bukan rusak fisik), mengatur ulang isi harddisk
(partisi,defrag), contoh utility adalah Norton utility.
Hubungan antar perangkat keras dan perangkat lunak
User – Aplication software
– Language software – Operating system – Hardware
System operasi
System operasi merupakan system perangkat
lunak yang sudah ditulis oleh pabrik yang berfungsi sebagai antarmuka
(interface) antara perangkat keras dan instruksi yang ditulis oleh
pemakai(user). Sistem operasi akan mengatur semua system operasi dari perangkat
keras computer. Sebagai contoh pemakai computer hanya menuliskan perintah DIR
untuk menampilkan isi direktori ke layar tanpa harus mengetahui bagaimana
perangkat keras tersebut melakukannya, karena tugas tersebut dilakukan oleh
system operasi.
System operasi sangat berkaitan dengan
prosesor yang digunakan. Jenis prosesor pada PC yang umum adalah kompatibel
dengan produk awal IBM dan Manchitos. PC Manchitos perangkat lunaknya
dikembangkan oleh perusahaan yang sama sehingga perkembangannya tidak sepesat
clonnig IBM PC. Sistem operasi dari cloning IBM saat ini secara umum terbagi 2
aliran yaitu komersil yang di buat oleh Microsoft dan bersifat freeware, yang
dikembangkan oleh peneliti seluruh dunia karena bersifat open source yaitu
bahan baku pembuatnya dapat dibaca, sehingga hasilnya dapat ditambah atau di
modifikasi setiap orang.
Sementara interaksi antara pengguna dan
computer di kenal melalui 2 cara, cara yang pertama adalah pemberian instruksi
melalui penulisan perintah atau dengan cara ke dua yaitu tunjuk (pointer)
dengan tampilan grafis.
Interpreter menterjemahkan instruksi satu
persatu dan langsung di proses sebelum komputer membaca instruksi selanjutnya,
sehingga tidak dihasilkan program obyek maupun file exe. Contoh untuk ini
adalah: basic versi baku, dbase, dan sebagainya.
Perangkat lunak bahasa merupakan program
khusus yang sudah dibuat oleh pabrik computer atau perusahaan perangkat lunak
yang digunakan untuk mengembangkan program aplikasi. Program ini berfungsi
sebgagai penterjemah program yang ditulis dengan bahasa pemprograman computer
menjadi bahasa mesin yang dapat di mengerti oleh computer. Bila perangkat lunak
bahasa ini tidak tersedia, maka pembuat program harus menuliskan programnya
langsung dalam bahasa mesin yang berbentuk bilangan biner, dan hal ini sangat
sulit dan rumit.
Perangkat lunak dapat dikategorikan menjadi tiga bagian
1. Assembler(perakit)
Merupakan program yang digunakan untuk
menterjemahkan program aplikasi yang ditulis dengan bahasa rakitan (assembly
language) atau bahasa pemprogaman simbolik menjadi bahasa mesin.
Dengan bahasa simbolik, masing-masing kode
operasi mesin tidak ditulis dengan bentuk bilangan biner, tetapi dengan suatu
kode simbolik tertentu yang disebut dengan mnemonic. Program yang ditulis
dengan bahasa simbolik disebut dengan program sumber (source program) dan hasil
terjemahannya dalam bentuk bahasa mesin disebut dengan program objek (object
program=OBJ). Proses pembuatan program obyek dari program sumber juga akan
menapilkan daftar keslahan-kesalahan sintaks (jika ada) yang dibuat oleh
pemprogram. Kesalahan ini harus dibetulkan terlebih dahulu sebelum di proses
lebih lanjut.
Walau penulisan program dengan bahasa
simbolik lebih mudah dibanding dengan bahasa mesin, tetapi harus dirasakan
kesulitan karena penulis program harus:
- Mengetahui susunan serta fungsi dari masing-masing
register di dalam cpu.
- Mengetahui dengan persis cara alokasi memori
komputer yang di gunakan
- Mengetahui fungsi-fungsi yang di sediakan oleh OS.
Untuk mengatasi hal ini telah dikembangkan
suatu bahasa yang lebih dekat dengan pemakai komputer yang di sebut bahasa
tingkat tinggi (high level language), misalnya basic, fortran, pascal c, dsb. Program
yang di tulis dengan bahasa tingkat tinggi ini harus di terjemahkan ke dalam
bahasa mesin agar dapat di mengerti oleh komputer. Penerjemah ini dapat berupa
kompilator atau interpreter.
2. Compiler
Menterjemahkan setiap instruksi didalam
suatu program sekaligus sama dengan assembler dan menghasilkan dengan program
objek yang selanjutnya di link sehingga menghasilkan file exe. Contoh perangkat
lunak bahasa seperti ini adalah pascal, c, dan masih banyak lagi.
3. Interpreter
Menterjemahkan instruksi satu persatu dan
langsung di proses sebelum komputer membaca instruksi selanjutnya,sehingga
tidak dihasilkan program obyek maupun file exe. Contoh untuk ini adalah:basic
versi baku, dbase, dan sebagainya.
Sumber : http://dedexcalan-lisalatif.blogspot.com/2012/01/bab-1-pembahasan-sejarah-software.html
PERBEDAAN SISTEM OPERASI DAN SOFTWARE APLIKASI
Sistem operasi
Sistem operasi Komputer adalah
perangkat lunak komputer atau software yang bertugas untuk melakukan
kontrol dan manajemen perangkat keras dan juga operasi-operasi dasar
sistem, termasuk menjalankan software aplikasi seperti program-program
pengolah data yang bisa digunakan untuk mempermudah kegiatan manusia. Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.
Sistem Operasi komputer
merupakan software pada lapisan pertama yang diletakkan pada memori
komputer, (memori komputer dalam hal ini ada Hardisk, bukan memory ram)
pada saat komputer dinyalakan. Sedangkan software-software lainnya
dijalankan setelah Sistem Operasi Komputer berjalan, dan Sistem Operasi
akan melakukan layanan inti umum untuk software-software itu. Layanan
inti umum tersebut seperti akses ke disk, manajemen memori, skeduling
task, dan antar-muka user. Sehingga masing-masing software tidak perlu
lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan
dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas
inti dan umum tersebut dinamakan dengan kernel suatu Sistem Operasi.
Sistem Operasi
berfungsi sebagai penghubung antara lapisan hardware dan lapisan
software. selain itu, Sistem Operasi komputer juga melakukan semua
perintah perintah penting dalam komputer, serta menjamin
aplikasi-aplikasi yang berbeda fungsinya dapat berjalan lancar secara
bersamaan tanpa hambatan. Sistem Operasi Komputer menjamin
aplikasi perangkat lunak lainnya bisa memakai memori, melakukan input
serta output terhadap peralatan lain, dan mempunya akses kepada sistem
file. Jika beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi Komputer
akan mengatur jadwal yang tepat, sehingga sebisa mungkin semua proses
pada komputer yang berjalan mendapatkan waktu yang cukup untuk
menggunakan CPU dan tidak saling mengganggu dengan perangkat yang lain.
Contoh-contoh dari Sistem operasi Komputer misalnya adalah Windows, Linux, MacOS, dan lain lain
Software aplikasi
Software aplikasi atau software aplikasi
adalah software program yang memiliki aktivitas pemrosesan perintah
yang diperlukan untuk melaksanakan permintaan pengguna dengan tujuan
tertentu. Software aplikasi terdiri dari :
1. Bahasa pemrograman (programming language)
2. Program aplikasi (Application Program)
3. Program paket / paket aplikasi (packet program)
4. Program utilitas (utility program)
5. Games dan entertainment dan lain-lain
Untuk mendukung operasi software aplikasi di atas tugas pengguna komputer dibagi menjadi:
a. analis system
b. programmer
c. operator
d. administrator database, yaitu orang yang bertugas melakukan definisi
dan manipulasi software database. Ini dibutuhkan jika software yang
dioperasikan akan menggunakan aplikasi database.
e. administrator jaringan, yaitu orang yang bertugas mengelola software
system operasi, software aplikasi yang digunakan dalam sebuah jaringan
komputer
Sumber : http://arifinunal-unul.blogspot.com/2011/11/perbedaan-sistem-operasi-software_18.html
Contoh Software Aplikasi :
1. Software Pengolah Kata : Ms. Word, WordStar, WordPerfect, Open Office Writer.
2. Software Pengolah Lembar Kerja (SpreadSheet) : Ms Excel, Lotus 123, OpenOffice Calc, Quattro Pro.
3. Software Presentasi : Ms. PowerPoint, Presentation, Impress, Macromedia Flash.
4. Software Pengolah Publikasi : Ms. Publishe.
5. Software Pengolah Halaman Web : Ms. FrontPage.
6. Software Pengolah Database : Ms. Access, Base, SQL Server.
7. Software Internet Browser : Internet Explorer, Mozilla Firefox, Opera, Google Chrome, Safari, Netscape Navigator.
8. Software Design Grafis : Adobe Photoshop, Corel Draw, ACDSee, Paint, PhotoPaint.
9. Software Design Animasi : Macromedia Flash.
10. Software Antivirus : Norton Internet Security, AVG Free, Kaspersky, PCMAV, Norton 360, Nod32, Norton Antivirus, Avira, McAfee.
11. Software Extractor/Pengolah Archive : WinZip, WinRAR, KGB Archiver, WinACE.
12. Software Video Editing : Pinnacle Studio Plus, Ulead Movie Studio, Adobe After Effect, Adobe Premiere.
13. Software Programming : Ms. Visual Basic, Ms. Visual FoxPro, FileMaker Pro, Turbo Pascal. Delphi.
14. Software Burning CD/DVD : Nero Burning Room/Nero StartSmart, WinISO, Daemon Tools, UltraISO, CloneCD CloneDVD, Alcohl 120%
15. Software Download Manager : DAP, IDM, FDM, FlashGet, Kazaa Download Accelerator.
16. Software Pengolah E-mail : Ms. Outlook, Outlook Express 17, Software Music/Video Player : Windows Media Player, ITunes, Real Player, Winamp.
17. Software Pengolah/Pembaca PDF : Photoshop (bisa untuk mengedit PDF), Adobe Reader, PDF Creator.
18. Software Game : Warcraft III, Feeding Frenzy 2, AngryBirds, dll.
Sumber : http://softwareapp.wordpress.com/category/contoh-aplikasi-software/