Sejarah Software, Beserta Jenisnya

www.computer-training-software.comSejarah Software, Beserta Jenisnya. Perangkat lunak adalah kumpulan instruksi dan data yang memberi tahu komputer cara kerja. Ini berbeda dengan perangkat keras fisik, tempat sistem dibangun dan benar-benar melakukan pekerjaan tersebut.

Dalam ilmu komputer dan rekayasa perangkat lunak, perangkat lunak komputer adalah semua informasi yang diproses oleh sistem komputer, termasuk program dan data. Perangkat lunak komputer mencakup program komputer, perpustakaan, dan data terkait yang tidak dapat dijalankan, seperti dokumentasi online atau media digital. Perangkat keras dan perangkat lunak komputer saling membutuhkan dan keduanya tidak dapat digunakan sendiri secara realistis.

Pada tingkat pemrograman terendah, kode yang dapat dieksekusi terdiri dari instruksi bahasa mesin yang didukung oleh prosesor individual — biasanya unit pemrosesan pusat (CPU) atau unit pemrosesan grafis (GPU). Bahasa mesin terdiri dari grup nilai biner yang menunjukkan instruksi prosesor yang mengubah status komputer dari status sebelumnya. Misalnya, instruksi dapat mengubah nilai yang disimpan di lokasi penyimpanan tertentu di komputer — efek yang tidak dapat diamati secara langsung oleh pengguna.

Sebuah instruksi juga dapat memanggil salah satu dari banyak operasi input atau output, misalnya menampilkan beberapa teks pada layar komputer; menyebabkan perubahan status yang seharusnya dapat dilihat oleh pengguna. Prosesor menjalankan instruksi dalam urutan yang disediakan, kecuali jika diinstruksikan untuk “melompat” ke instruksi yang berbeda, atau diinterupsi oleh sistem operasi.

Pada 2015, sebagian besar komputer pribadi, perangkat ponsel cerdas, dan server memiliki prosesor dengan beberapa unit eksekusi atau beberapa prosesor yang melakukan komputasi secara bersamaan, dan komputasi telah menjadi aktivitas yang jauh lebih bersamaan daripada sebelumnya.

Mayoritas perangkat lunak ditulis dalam bahasa pemrograman tingkat tinggi. Mereka lebih mudah dan lebih efisien untuk pemrogram karena mereka lebih dekat dengan bahasa alami daripada bahasa mesin. Bahasa tingkat tinggi diterjemahkan ke dalam bahasa mesin menggunakan kompilator atau juru bahasa atau kombinasi keduanya.

Baca Juga: Tutorial Cara Mendesain Dan Mencetak Spanduk Yang Sempurna

Perangkat lunak juga dapat ditulis dalam bahasa rakitan tingkat rendah, yang memiliki korespondensi yang kuat dengan instruksi bahasa mesin komputer dan diterjemahkan ke dalam bahasa mesin menggunakan assembler.

Sejarah

Garis besar (algoritme) untuk perangkat lunak pertama ditulis oleh Ada Lovelace pada abad ke-19, untuk Mesin Analitik yang direncanakan. Dia membuat bukti untuk menunjukkan bagaimana mesin akan menghitung Angka Bernoulli. Karena bukti dan algoritmanya, dia dianggap sebagai pemrogram komputer pertama.

Teori pertama tentang perangkat lunak — sebelum penciptaan komputer seperti yang kita kenal sekarang — dikemukakan oleh Alan Turing dalam esainya tahun 1935 Tentang Bilangan yang Dapat Dihitung, dengan Aplikasi untuk Masalah Entscheidung (masalah keputusan).

Hal ini akhirnya mengarah pada penciptaan bidang akademik ilmu komputer dan rekayasa perangkat lunak; Kedua bidang tersebut mempelajari perangkat lunak dan pembuatannya. Ilmu komputer adalah studi teoritis tentang komputer dan perangkat lunak (esai Turing adalah contoh ilmu komputer), sedangkan rekayasa perangkat lunak adalah penerapan rekayasa dan pengembangan perangkat lunak.

Namun, sebelum tahun 1946, perangkat lunak belum menjadi program yang disimpan dalam memori komputer digital program tersimpan, seperti yang sekarang kita pahami. Perangkat komputasi elektronik pertama malah dipasang kembali untuk “memprogram ulang” mereka.

Pada tahun 2000, Fred Shapiro, seorang pustakawan di Yale Law School, menerbitkan sebuah surat yang mengungkapkan bahwa makalah John Wilder Tukey tahun 1958 “The Teaching of Concrete Mathematics” berisi penggunaan istilah “perangkat lunak” yang paling awal diketahui yang ditemukan dalam pencarian arsip elektronik JSTOR. , dua tahun sebelum kutipan OED.

Hal ini membuat banyak orang memuji Tukey yang menciptakan istilah tersebut, terutama dalam berita kematian yang diterbitkan pada tahun yang sama, meskipun Tukey tidak pernah mengklaim kredit untuk koin semacam itu.

Pada tahun 1995, Paul Niquette mengklaim bahwa dia pertama kali menciptakan istilah tersebut pada bulan Oktober 1953, meskipun dia tidak dapat menemukan dokumen yang mendukung klaimnya. Publikasi paling awal dari istilah “perangkat lunak” dalam konteks teknik adalah pada Agustus 1953 oleh Richard R. Carhart, dalam Memorandum Riset Rand Corporation.

Jenis Software

Pada hampir semua platform komputer, perangkat lunak dapat dikelompokkan ke dalam beberapa kategori besar.
Tujuan, atau domain penggunaan

Berdasarkan tujuannya, software komputer dibedakan menjadi:

1. Aplikasi piranti lunak

yaitu perangkat lunak yang menggunakan sistem komputer untuk menjalankan fungsi khusus atau menyediakan fungsi hiburan di luar operasi dasar komputer itu sendiri. Ada banyak jenis perangkat lunak aplikasi, karena cakupan tugas yang dapat dilakukan dengan komputer modern sangat besar — lihat daftar perangkat lunak.

2. Perangkat lunak sistem

yang merupakan perangkat lunak untuk mengelola perilaku perangkat keras komputer, untuk menyediakan fungsionalitas dasar yang dibutuhkan oleh pengguna, atau agar perangkat lunak lain dapat berjalan dengan baik, jika ada. Perangkat lunak sistem juga dirancang untuk menyediakan platform untuk menjalankan perangkat lunak aplikasi, dan mencakup yang berikut ini:

A. Sistem operasi

Yang merupakan kumpulan penting dari perangkat lunak yang mengelola sumber daya dan menyediakan layanan umum untuk perangkat lunak lain yang berjalan “di atasnya”. Program pengawasan, pemuat boot, kerangka, dan sistem jendela adalah bagian inti dari sistem operasi. Dalam praktiknya, sistem operasi dilengkapi dengan perangkat lunak tambahan (termasuk perangkat lunak aplikasi) sehingga pengguna berpotensi melakukan beberapa pekerjaan dengan komputer yang hanya memiliki satu sistem operasi.

B. Driver perangkat

Yang mengoperasikan atau mengontrol jenis perangkat tertentu yang terpasang ke komputer itu juga. Setiap sebuah perangkat juga membutuhkan beberapa setidaknya satu perangkat driver yang sesuai; karena komputer biasanya memiliki setidaknya satu perangkat input dan setidaknya satu perangkat output, komputer biasanya membutuhkan lebih dari satu driver perangkat.

C. Keperluan

Yang merupakan sebuah program komputer dimana dirancang agar membantu pengguna dalam sebuah pemeliharaan maupun perawatan komputer mereka.

3. Perangkat lunak berbahaya atau malware

Yang merupakan perangkat lunak yang dikembangkan untuk merusak dan mengganggu komputer. Karena itu, malware tidak diinginkan. Perangkat lunak perusak sangat erat kaitannya dengan kejahatan terkait komputer, meskipun beberapa program berbahaya mungkin telah dirancang sebagai lelucon praktis.

4. Sifat atau domain eksekusi

Aplikasi desktop seperti browser web dan Microsoft Office, serta aplikasi ponsel cerdas dan tablet (disebut “aplikasi”). (Ada dorongan di beberapa bagian industri perangkat lunak untuk menggabungkan aplikasi desktop dengan aplikasi seluler, sampai batas tertentu. Windows 8, dan kemudian Ubuntu Touch, mencoba mengizinkan gaya antarmuka pengguna aplikasi yang sama untuk digunakan pada desktop, laptop dan ponsel.)

Skrip JavaScript adalah perangkat lunak yang secara tradisional tertanam di halaman web yang dijalankan langsung di dalam browser web saat halaman web dimuat tanpa memerlukan plugin browser web. Perangkat lunak yang ditulis dalam bahasa pemrograman lain juga dapat dijalankan dalam browser web jika perangkat lunak tersebut diterjemahkan ke dalam JavaScript, atau jika plugin browser web yang mendukung bahasa tersebut diinstal; contoh paling umum dari yang terakhir adalah skrip ActionScript, yang didukung oleh plugin Adobe Flash.

Perangkat lunak server, termasuk:

Aplikasi web, yang biasanya berjalan di server web dan menampilkan halaman web yang dihasilkan secara dinamis ke browser web, menggunakan mis. PHP, Java, ASP.NET, atau bahkan JavaScript yang berjalan di server. Di zaman modern ini biasanya menyertakan beberapa JavaScript untuk dijalankan di browser web juga, dalam hal ini biasanya dijalankan sebagian di server, sebagian di browser web.

Plugin dan ekstensi adalah perangkat lunak yang memperluas atau memodifikasi fungsionalitas perangkat lunak lain, dan mengharuskan perangkat lunak tersebut digunakan agar dapat berfungsi;

Perangkat lunak tertanam berada sebagai firmware dalam sistem tertanam, perangkat yang didedikasikan untuk penggunaan tunggal atau beberapa penggunaan seperti mobil dan televisi (meskipun beberapa perangkat tertanam seperti chipset nirkabel sendiri dapat menjadi bagian dari sistem komputer non-tertanam biasa seperti PC atau smartphone). Dalam konteks sistem tertanam terkadang tidak ada perbedaan yang jelas antara perangkat lunak sistem dan perangkat lunak aplikasi. Namun, beberapa sistem tertanam menjalankan sistem operasi tertanam, dan sistem ini mempertahankan perbedaan antara perangkat lunak sistem dan perangkat lunak aplikasi (walaupun biasanya hanya akan ada satu, aplikasi tetap yang selalu berjalan).

Microcode adalah jenis perangkat lunak tertanam khusus yang relatif tidak jelas yang memberi tahu prosesor itu sendiri bagaimana menjalankan kode mesin, jadi sebenarnya tingkatnya lebih rendah daripada kode mesin. Biasanya ini adalah hak milik produsen prosesor, dan pembaruan perangkat lunak mikrokode pemasyarakatan yang diperlukan disediakan oleh mereka kepada pengguna (yang jauh lebih murah daripada pengiriman perangkat keras prosesor pengganti). Jadi seorang programmer biasa tidak akan pernah berharap harus menghadapinya.

Alat pemrograman

Alat pemrograman juga merupakan perangkat lunak dalam bentuk program atau aplikasi yang digunakan oleh pengembang perangkat lunak (juga dikenal sebagai pemrogram, pembuat kode, peretas, atau insinyur perangkat lunak) untuk membuat, men-debug, memelihara (yaitu meningkatkan atau memperbaiki), atau mendukung perangkat lunak.

Perangkat lunak ditulis dalam satu atau lebih bahasa pemrograman; ada banyak bahasa pemrograman yang ada, dan masing-masing memiliki setidaknya satu implementasi, yang masing-masing terdiri dari perangkat alat pemrogramannya sendiri.

Alat ini mungkin merupakan program yang berdiri sendiri seperti kompiler, debugger, juru bahasa, penaut, dan editor teks, yang dapat digabungkan bersama untuk menyelesaikan tugas; atau mereka mungkin membentuk lingkungan pengembangan terintegrasi (IDE), yang menggabungkan banyak atau semua fungsi alat mandiri tersebut. IDE dapat melakukan ini dengan menggunakan alat individu yang relevan atau dengan mengimplementasikan kembali fungsinya dengan cara baru.

IDE dapat mempermudah untuk melakukan tugas tertentu, seperti mencari file dalam proyek tertentu. Banyak implementasi bahasa pemrograman menyediakan opsi untuk menggunakan alat individu atau IDE.

Topik

Arsitektur

Pengguna sering kali melihat sesuatu secara berbeda dari pemrogram. Orang yang menggunakan komputer tujuan umum modern (sebagai lawan dari sistem tertanam, komputer analog, dan superkomputer) biasanya melihat tiga lapisan perangkat lunak yang melakukan berbagai tugas: platform, aplikasi, dan perangkat lunak pengguna.

Perangkat lunak platform

Platform mencakup firmware, driver perangkat, sistem operasi, dan biasanya antarmuka pengguna grafis yang, secara total, memungkinkan pengguna untuk berinteraksi dengan komputer dan periferalnya (peralatan terkait). Perangkat lunak platform sering kali disertakan bersama komputer. Di PC, seseorang biasanya memiliki kemampuan untuk mengubah perangkat lunak platform.

Aplikasi piranti lunak

Perangkat lunak aplikasi atau Aplikasi adalah apa yang kebanyakan orang pikirkan ketika mereka memikirkan perangkat lunak. Contoh umum termasuk office suite dan video game.

Baca Juga: Asisten digital pribadi Palm OS

Perangkat lunak aplikasi sering kali dibeli terpisah dari perangkat keras komputer. Kadang-kadang aplikasi digabungkan dengan komputer, tetapi itu tidak mengubah fakta bahwa mereka berjalan sebagai aplikasi independen. Aplikasi biasanya merupakan program independen dari sistem operasi, meskipun sering kali disesuaikan untuk platform tertentu. Sebagian besar pengguna menganggap compiler, database, dan “perangkat lunak sistem” lainnya sebagai aplikasi.

Perangkat lunak yang ditulis pengguna

Sistem penjahit pengembangan pengguna akhir untuk memenuhi kebutuhan spesifik pengguna. Perangkat lunak pengguna mencakup template spreadsheet dan template pengolah kata. Bahkan filter email adalah sejenis perangkat lunak pengguna.

Pengguna membuat perangkat lunak ini sendiri dan sering kali mengabaikan betapa pentingnya itu. Bergantung pada seberapa kompeten perangkat lunak yang ditulis pengguna telah diintegrasikan ke dalam paket aplikasi default, banyak pengguna mungkin tidak menyadari perbedaan antara paket asli, dan apa yang telah ditambahkan oleh rekan kerja.

Eksekusi

Perangkat lunak komputer harus “dimuat” ke dalam penyimpanan komputer (seperti hard drive atau memori). Setelah perangkat lunak dimuat, komputer dapat menjalankan perangkat lunak tersebut. Ini melibatkan penerusan instruksi dari perangkat lunak aplikasi, melalui perangkat lunak sistem, ke perangkat keras yang pada akhirnya menerima instruksi sebagai kode mesin. Setiap instruksi menyebabkan komputer melakukan operasi — memindahkan data, melakukan penghitungan, atau mengubah aliran kendali instruksi.

Perpindahan data biasanya dari satu tempat dalam memori ke tempat lain. Terkadang ini melibatkan pemindahan data antara memori dan register yang memungkinkan akses data berkecepatan tinggi di CPU. Memindahkan data, terutama dalam jumlah besar, bisa jadi mahal. Jadi, hal ini terkadang dihindari dengan menggunakan “pointer” ke data. Perhitungan mencakup operasi sederhana seperti menaikkan nilai elemen data variabel. Perhitungan yang lebih kompleks mungkin melibatkan banyak operasi dan elemen data secara bersamaan.

Kualitas dan kehandalan

Kualitas perangkat lunak sangat penting, terutama untuk perangkat lunak komersial dan sistem seperti Microsoft Office, Microsoft Windows dan Linux. Jika perangkat lunak rusak (buggy), itu dapat menghapus pekerjaan seseorang, merusak komputer dan melakukan hal-hal tak terduga lainnya. Kesalahan dan kesalahan disebut “bug” yang sering ditemukan selama pengujian alfa dan beta. Perangkat lunak sering juga menjadi korban dari apa yang dikenal sebagai penuaan perangkat lunak, penurunan kinerja progresif akibat kombinasi bug yang tidak terlihat.

Banyak bug ditemukan dan dihilangkan (debug) melalui pengujian perangkat lunak. Namun, pengujian perangkat lunak jarang — jika pernah — menghilangkan setiap bug; beberapa programmer mengatakan bahwa “setiap program memiliki setidaknya satu bug lagi” (Hukum Lubarsky).

Dalam metode pengembangan perangkat lunak waterfall, tim pengujian terpisah biasanya digunakan, tetapi dalam pendekatan yang lebih baru, secara kolektif disebut pengembangan perangkat lunak tangkas, pengembang sering melakukan semua pengujian mereka sendiri, dan mendemonstrasikan perangkat lunak kepada pengguna / klien secara teratur untuk mendapatkan umpan balik.

Perangkat lunak dapat diuji melalui pengujian unit, pengujian regresi, dan metode lain, yang dilakukan secara manual, atau paling umum, secara otomatis, karena jumlah kode yang akan diuji bisa sangat besar. Misalnya, NASA memiliki prosedur pengujian perangkat lunak yang sangat ketat untuk banyak sistem operasi dan fungsi komunikasi. Banyak operasi berbasis NASA berinteraksi dan mengidentifikasi satu sama lain melalui program perintah.

Hal ini memungkinkan banyak orang yang bekerja di NASA untuk memeriksa dan mengevaluasi sistem fungsional secara keseluruhan. Program yang berisi perangkat lunak perintah memungkinkan rekayasa perangkat keras dan operasi sistem berfungsi lebih mudah bersama-sama.

Lisensi

Lisensi perangkat lunak memberi pengguna hak untuk menggunakan perangkat lunak dalam lingkungan berlisensi, dan dalam kasus lisensi perangkat lunak bebas, juga memberikan hak lain seperti hak untuk membuat salinan.

Perangkat lunak berpemilik dapat dibagi menjadi dua jenis:

1. freeware, yang termasuk kategori software “free trial” atau “freemium” (dulu istilah shareware sering digunakan untuk software trial / freemium gratis). Seperti namanya, freeware dapat digunakan secara gratis, meskipun dalam kasus uji coba gratis atau perangkat lunak freemium, terkadang ini hanya berlaku untuk jangka waktu terbatas atau dengan fungsionalitas terbatas.

2. perangkat lunak tersedia dengan biaya tertentu, sering kali secara tidak akurat disebut “perangkat lunak komersial”, yang hanya dapat digunakan secara legal saat membeli lisensi.

Di sisi lain, perangkat lunak sumber terbuka dilengkapi dengan lisensi perangkat lunak gratis, yang memberikan hak kepada penerima untuk mengubah dan mendistribusikan ulang perangkat lunak.