Penjelasan Mengnai Software Beserta Jenisnya

Siapa sih yang tidak mengenal yang namanya software. Namun, tahukah kamu apa itu sebenarnya software? Nah, disini saya akan menjelaskan mengenai software tersebut beserta jenis-jenisnya. Penasaran? Langsung saja lihat ulasan dibawah ini.

Pengertian Software

Software atau dalam bahasa Indonesianya perangkat lunak, adalah bagian dari sistem komputer yang terdiri dari data atau instruksi komputer, berbeda dengan perangkat keras fisik tempat sistem dibuat. Dalam ilmu komputer dan rekayasa perangkat lunak, perangkat lunak komputer adalah semua informasi yang diproses oleh sistem komputer, program dan data. Perangkat lunak komputer mencakup program komputer, perpustakaan dan data non-eksekusi yang terkait, seperti dokumentasi online atau media digital. Perangkat keras dan perangkat lunak komputer saling membutuhkan dan tidak dapat digunakan secara realistis.

Pada tingkat terendah, kode yang dapat dieksekusi terdiri dari instruksi bahasa mesin yang spesifik untuk prosesor individual-biasanya unit pemrosesan pusat (CPU). Bahasa mesin terdiri dari kelompok nilai biner yang menandakan instruksi prosesor yang mengubah keadaan komputer dari keadaan sebelumnya. Misalnya, instruksi dapat mengubah nilai yang tersimpan di lokasi penyimpanan tertentu di komputer-efek yang tidak dapat diamati secara langsung oleh pengguna. Instruksi juga dapat (secara tidak langsung) menyebabkan sesuatu muncul pada tampilan sistem komputer – sebuah perubahan status yang harus terlihat oleh pengguna. Prosesor melakukan instruksi sesuai urutannya, kecuali diinstruksikan untuk “melompat” ke instruksi yang berbeda, atau terganggu (sekarang prosesor multi-core dominan, di mana masing-masing inti dapat menjalankan instruksi secara berurutan; kemudian, Namun, setiap perangkat lunak aplikasi hanya berjalan pada satu inti secara default, namun beberapa perangkat lunak telah dibuat berjalan lebih banyak).

Sebagian besar perangkat lunak ditulis dalam bahasa pemrograman tingkat tinggi yang lebih mudah dan lebih efisien bagi pemrogram untuk digunakan karena mereka lebih dekat daripada bahasa mesin ke bahasa alami. Bahasa tingkat tinggi diterjemahkan ke dalam bahasa mesin menggunakan kompilator atau juru bahasa atau kombinasi keduanya. Perangkat lunak juga dapat ditulis dalam bahasa assembly tingkat rendah, yang memiliki korespondensi kuat dengan instruksi bahasa mesin komputer dan diterjemahkan ke dalam bahasa mesin menggunakan assembler.

Sejarah

Garis besar (algoritma) untuk apa yang akan menjadi bagian pertama dari perangkat lunak ditulis oleh Ada Lovelace pada abad ke-19, untuk Analytical Engine yang direncanakan. Namun, baik Analytical Engine maupun perangkat lunak apapun yang pernah dibuat.

Teori pertama tentang perangkat lunak – sebelum penciptaan komputer seperti yang kita kenal sekarang – diusulkan oleh Alan Turing dalam esainya tahun 1935 Nomor komput dengan aplikasi pada masalah Entscheidung (masalah keputusan).

Hal ini akhirnya menghasilkan penciptaan bidang akademik kembar ilmu komputer dan rekayasa perangkat lunak, yang keduanya mempelajari perangkat lunak dan ciptaannya. Ilmu komputer lebih teoritis (esai Turing adalah contoh ilmu komputer), di mana sebagai rekayasa perangkat lunak berfokus pada masalah yang lebih praktis.

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

Jenis

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

Tujuan, atau domain penggunaan

Berdasarkan tujuannya, perangkat lunak komputer dapat dibagi menjadi:

  • Aplikasi perangkat lunak yaitu perangkat lunak yang menggunakan sistem komputer untuk melakukan fungsi khusus atau memberikan fungsi hiburan di luar pengoperasian dasar komputer itu sendiri. Ada berbagai jenis perangkat lunak aplikasi, karena rentang tugas yang bisa dilakukan dengan komputer modern begitu besar-lihat daftar perangkat lunak.
  • Perangkat lunak sistem yaitu perangkat lunak yang secara langsung mengoperasikan perangkat keras komputer, untuk menyediakan fungsionalitas dasar yang dibutuhkan oleh pengguna dan perangkat lunak lainnya, dan menyediakan platform untuk menjalankan perangkat lunak aplikasi. Perangkat lunak sistem meliputi:
    • Sistem operasi
      yang merupakan koleksi penting perangkat lunak yang mengelola sumber daya dan menyediakan layanan umum untuk perangkat lunak lain yang berjalan “di atas” dari mereka. Program pengawas, pemuat boot, kerang dan sistem jendela merupakan bagian inti dari sistem operasi. Dalam prakteknya, sebuah 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.
    • Driver perangkat
      yang mengoperasikan atau mengendalikan jenis perangkat tertentu yang terpasang pada komputer. Setiap perangkat membutuhkan setidaknya satu driver perangkat yang sesuai; karena komputer biasanya memiliki minimal setidaknya satu perangkat input dan setidaknya satu perangkat output, komputer biasanya membutuhkan lebih dari satu driver perangkat.
    • Utilitas
      yaitu program komputer yang dirancang untuk membantu pengguna dalam perawatan dan perawatan komputer mereka.
  • Perangkat lunak berbahaya atau malware
    yaitu perangkat lunak yang dikembangkan untuk membahayakan dan mengganggu komputer. Dengan demikian, malware tidak diinginkan. Perangkat lunak perusak dikaitkan erat dengan kejahatan terkait komputer, meskipun beberapa program jahat mungkin dirancang sebagai lelucon praktis.

Alam atau domain eksekusi

  • Aplikasi desktop seperti web browser dan Microsoft Office, serta aplikasi smartphone dan tablet (disebut “apps”). (Ada dorongan di beberapa bagian industri perangkat lunak untuk menggabungkan aplikasi desktop dengan aplikasi mobile, sampai batas tertentu Windows 8, dan yang lebih baru Ubuntu Touch, mencoba untuk mengizinkan gaya antarmuka pengguna aplikasi yang sama untuk digunakan pada desktop, laptop dan mobiles.)
  • Skrip JavaScript adalah potongan 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 di dalam browser web jika perangkat lunak diterjemahkan ke dalam JavaScript, atau jika plugin peramban web yang mendukung bahasa tersebut terpasang; Contoh yang 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 menghasilkan 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 berfungsi.
  • Perangkat lunak tertanam berada sebagai firmware dalam sistem embedded, perangkat yang didedikasikan untuk penggunaan tunggal atau beberapa penggunaan seperti mobil dan televisi (walaupun beberapa perangkat embedded seperti chipset nirkabel dapat menjadi bagian dari sistem komputer biasa yang tidak tertanam seperti PC atau smartphone). Dalam konteks sistem embedded terkadang tidak ada perbedaan yang jelas antara perangkat lunak sistem dan perangkat lunak aplikasi. Namun, beberapa sistem embedded menjalankan sistem operasi embedded, dan sistem ini mempertahankan perbedaan antara perangkat lunak sistem dan perangkat lunak aplikasi (walaupun biasanya hanya ada satu, aplikasi tetap, yang selalu dijalankan).
  • Mikrokode adalah jenis perangkat lunak tertanam yang tidak umum dan jelas yang memberi tahu prosesor itu sendiri bagaimana mengeksekusi kode mesin, jadi sebenarnya tingkat yang lebih rendah daripada kode mesin. Ini biasanya dimiliki oleh produsen prosesor, dan pembaruan perangkat lunak microcode pemasyarakatan yang diperlukan dipasok oleh mereka kepada pengguna (yang jauh lebih murah daripada perangkat keras pengganti prosesor pengganti). Jadi programmer biasa tidak akan pernah berharap untuk mengatasinya.

Alat pemrograman

Alat pemrogram juga perangkat lunak dalam bentuk program atau aplikasi yang pengembang perangkat lunak (juga dikenal sebagai programmer, coders, hacker atau insinyur perangkat lunak) menggunakannya untuk membuat, debug, merawat (memperbaiki 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 seperangkat alat pemrogramannya sendiri. Alat-alat ini mungkin merupakan program mandiri seperti kompiler, debugger, interpreter, linker, dan editor teks, yang dapat dikombinasikan bersama untuk menyelesaikan sebuah tugas; atau mereka dapat membentuk lingkungan pengembangan terpadu (IDE), yang menggabungkan banyak atau semua fungsi alat mandiri semacam itu. IDE dapat melakukan ini dengan cara memohon alat individu yang relevan atau dengan menerapkan kembali fungsi mereka dengan cara baru. IDE dapat mempermudah mengerjakan tugas tertentu, seperti mencari file dalam proyek tertentu. Banyak implementasi bahasa pemrograman memberikan pilihan untuk menggunakan kedua alat individual atau IDE.

Topik

Arsitektur

Pengguna sering melihat hal-hal yang berbeda dari pemrogram. Orang yang menggunakan komputer tujuan umum modern (berlawanan dengan sistem embedded, komputer analog dan superkomputer) biasanya melihat tiga lapisan perangkat lunak yang melakukan berbagai tugas: platform, aplikasi, dan perangkat lunak pengguna.

  • Perangkat lunak platform (Platform software)
    Platform mencakup firmware, driver perangkat, sistem operasi, dan biasanya antarmuka pengguna grafis yang, secara total, memungkinkan pengguna untuk berinteraksi dengan komputer dan perangkatnya (peralatan terkait). Perangkat lunak platform sering kali digabungkan dengan komputer. Pada PC seseorang biasanya memiliki kemampuan untuk mengubah perangkat lunak platform.
  • Aplikasi perangkat lunak (Application software)
    Aplikasi perangkat lunak atau Aplikasi adalah apa yang kebanyakan orang pikirkan saat memikirkan perangkat lunak. Contoh tipikal termasuk office suite dan video game. Perangkat lunak aplikasi sering dibeli terpisah dari perangkat keras komputer. Terkadang aplikasi dibundel dengan komputer, tapi itu tidak mengubah fakta bahwa aplikasi tersebut dijalankan sebagai aplikasi independen. Aplikasi biasanya program independen dari sistem operasi, meski sering disesuaikan untuk platform tertentu. Sebagian besar pengguna memikirkan kompiler, database, dan “perangkat lunak sistem” lainnya sebagai aplikasi.
  • Perangkat lunak yang ditulis oleh pengguna (User-written software0)
    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 software ini sendiri dan sering mengabaikan betapa pentingnya hal tersebut. Bergantung pada seberapa kompetennya 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. Ini melibatkan instruksi yang lewat 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-data bergerak, melakukan perhitungan, atau mengubah aliran instruksi kontrol.

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

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 bisa menghapus pekerjaan seseorang, merusak komputer dan melakukan 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 perangkat lunak penuaan, degradasi kinerja progresif yang dihasilkan dari kombinasi bug yang tak terlihat.

Banyak bug ditemukan dan dihilangkan (debugged) melalui pengujian perangkat lunak. Namun, pengujian perangkat lunak jarang-jika-menghilangkan semua bug; beberapa programmer mengatakan bahwa “setiap program memiliki setidaknya satu bug lagi” (Hukum Lubarsky). Dalam metode pengembangan perangkat air terjun, tim pengujian terpisah biasanya dipekerjakan, namun dalam pendekatan yang lebih baru, secara kolektif disebut pengembangan perangkat lunak tangkas, pengembang sering melakukan semua pengujian mereka sendiri, dan menunjukkan perangkat lunak kepada pengguna/klien secara teratur untuk mendapatkan umpan balik.

Perangkat lunak dapat diuji melalui pengujian unit, pengujian regresi dan metode lainnya, 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 saling mengidentifikasi melalui program komando. Hal ini memungkinkan banyak orang yang bekerja di NASA untuk memeriksa dan mengevaluasi keseluruhan sistem fungsional. Program yang berisi perangkat lunak perintah memungkinkan rekayasa perangkat keras dan operasi sistem berfungsi lebih mudah bersama.

Lisensi

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

Perangkat lunak berpemilik dapat dibagi menjadi dua jenis:

  • freeware, yang mencakup kategori perangkat lunak “percobaan gratis” atau perangkat lunak “freemium” (di masa lalu, istilah shareware sering digunakan untuk perangkat lunak percobaan/freemium gratis). Seperti namanya, freeware bisa digunakan secara gratis, walaupun dalam kasus percobaan gratis atau perangkat lunak freemium, terkadang hal ini hanya berlaku untuk jangka waktu terbatas atau dengan fungsionalitas terbatas.
    perangkat lunak yang tersedia dengan biaya tertentu, seringkali secara tidak tepat disebut “perangkat lunak komersial”, yang hanya dapat digunakan secara legal untuk membeli lisensi.
  • Perangkat lunak open source, di sisi lain, dilengkapi dengan lisensi perangkat lunak bebas, memberi hak kepada penerima hak untuk memodifikasi dan mendistribusikan perangkat lunak tersebut.

Paten

Paten perangkat lunak, seperti jenis paten lainnya, secara teori seharusnya memberi seorang inventaris sebuah lisensi eksklusif dan terbatas waktu untuk gagasan terperinci (misalnya sebuah algoritma) tentang bagaimana menerapkan perangkat lunak, atau komponen dari perangkat lunak. Gagasan untuk hal-hal bermanfaat yang dapat dilakukan perangkat lunak, dan persyaratan pengguna, tidak seharusnya dipatenkan, dan penerapan konkret (misalnya paket perangkat lunak sebenarnya yang menerapkan paten) tidak seharusnya dipatenkan baik – yang terakhir sudah dilindungi oleh hak cipta, umumnya secara otomatis. Jadi paten perangkat lunak seharusnya mencakup area tengah, antara persyaratan dan implementasi konkrit.

Di beberapa negara, persyaratan untuk penemuan yang diklaim memiliki efek pada dunia fisik juga dapat menjadi bagian dari persyaratan untuk paten perangkat lunak yang harus dianggap valid-walaupun karena semua perangkat lunak yang berguna memiliki efek pada dunia fisik, persyaratan ini mungkin terbuka untuk debat Sementara itu, undang-undang hak cipta Amerika diterapkan pada berbagai aspek penulisan kode perangkat lunak.

Paten perangkat lunak kontroversial di industri perangkat lunak dengan banyak orang memiliki pandangan berbeda tentang mereka. Salah satu sumber kontroversi adalah bahwa pemecahan antara ide awal dan paten tersebut tampaknya tidak dihormati dalam praktik oleh pengacara paten – misalnya hak paten untuk Pemrograman Berorientasi Aspek (AOP), yang mengklaim hak atas alat pemrograman apa pun menerapkan gagasan AOP, bagaimanapun juga diterapkan. Sumber kontroversi lainnya adalah efek pada inovasi, dengan banyak pakar dan perusahaan terkemuka berpendapat bahwa perangkat lunak adalah bidang yang bergerak cepat sehingga paten perangkat lunak hanya menciptakan biaya dan risiko litigasi yang sangat besar, dan benar-benar menghambat inovasi. Dalam kasus perdebatan tentang paten perangkat lunak di luar Amerika Serikat, argumen tersebut telah diajukan bahwa perusahaan Amerika dan pengacara paten besar kemungkinan merupakan penerima manfaat utama yang mengizinkan atau terus mengizinkan hak paten perangkat lunak.

Desain dan implementasi

Desain dan implementasi perangkat lunak bervariasi tergantung dari kompleksitas perangkat lunak. Misalnya, desain dan penciptaan Microsoft Word membutuhkan lebih banyak waktu daripada merancang dan mengembangkan Microsoft Notepad karena yang terakhir memiliki fungsionalitas yang jauh lebih mendasar.

Perangkat lunak biasanya dirancang dan dibuat (alias dikodekan/ditulis/diprogram) di lingkungan pengembangan terpadu (IDE) seperti Eclipse, IntelliJ dan Microsoft Visual Studio yang dapat mempermudah proses dan mengkompilasi perangkat lunak (jika ada). Seperti disebutkan di bagian yang berbeda, perangkat lunak biasanya dibuat di atas perangkat lunak yang ada dan antarmuka pemrograman aplikasi (API) yang disediakan oleh perangkat lunak seperti GTK +, JavaBeans atau Swing. Perpustakaan (API) dapat dikategorikan berdasarkan tujuannya. Misalnya, Spring Framework digunakan untuk mengimplementasikan aplikasi enterprise, perpustakaan Windows Forms digunakan untuk merancang aplikasi antarmuka pengguna grafis (GUI) seperti Microsoft Word, dan Windows Communication Foundation digunakan untuk merancang layanan web.

Ketika sebuah program dirancang, itu bergantung pada API. Misalnya, jika pengguna merancang aplikasi desktop Microsoft Windows, dia mungkin menggunakan perpustakaan NET Windows Forms untuk merancang aplikasi desktop dan memanggil API-nya seperti Form1.Close () dan Form1.Show () ke menutup atau membuka aplikasi, dan menulis operasi tambahan yang harus dimilikinya. Tanpa API ini, programmer perlu menulis API ini sendiri. Perusahaan seperti Oracle dan Microsoft menyediakan API mereka sendiri sehingga banyak aplikasi ditulis menggunakan pustaka perangkat lunak mereka yang biasanya memiliki banyak API di dalamnya.

Struktur data seperti tabel hash, array, dan pohon biner, dan algoritma seperti quicksort, dapat berguna untuk membuat perangkat lunak.

Perangkat lunak komputer memiliki karakteristik ekonomi khusus yang membuat disain, penciptaan, dan distribusinya berbeda dari barang ekonomi lainnya.

Seseorang yang menciptakan perangkat lunak disebut programmer, insinyur perangkat lunak atau pengembang perangkat lunak, yang semuanya memiliki arti yang sama. Istilah yang lebih informal untuk programmer juga ada seperti “coder” dan “hacker” – walaupun penggunaan kata yang terakhir dapat menyebabkan kebingungan, karena ini lebih sering digunakan untuk berarti seseorang yang secara ilegal masuk ke sistem komputer.

Industri dan organisasi

Berbagai macam perusahaan perangkat lunak dan pemrogram di dunia terdiri dari industri perangkat lunak. Perangkat lunak bisa menjadi industri yang sangat menguntungkan: Bill Gates, pendiri Microsoft adalah orang terkaya di dunia pada tahun 2009, sebagian besar karena kepemilikannya atas sejumlah besar saham di Microsoft, perusahaan yang bertanggung jawab atas Microsoft Windows dan Microsoft Office produk perangkat lunak

Organisasi perangkat lunak nirlaba termasuk Free Software Foundation, GNU Project dan Mozilla Foundation. Organisasi standar perangkat lunak seperti W3C, IETF mengembangkan standar perangkat lunak yang direkomendasikan seperti XML, HTTP dan HTML, sehingga perangkat lunak dapat beroperasi melalui standar ini.

Perusahaan software besar lainnya yang terkenal termasuk Oracle, Novell, SAP, Symantec, Adobe Systems, Sidetrade dan Corel, sementara perusahaan kecil sering memberikan inovasi.

Nah, itulah penjelasan mengenai software atau perangkat lunak, jika ada kekurangan mohon dimaklumi. Terima kasih telah membaca artikel diatas dan semoga artikel diatas bisa bermanfaat atau paling tidak dapat menambah wawasan.