Perangkat lunak
sistem (perangkat lunak pendukung/
support software) adalah program yang digunakan untuk mengontrol sumber
daya komputer, baik yang bersifat internal (contoh: RAM) maupun eksternal
(contoh: printer) ataupun untuk melayani program-program lain. Program ini
umumnya sebagai perantara antara program aplikasi dan perangkat keras komputer.
Itulah sebabnya peran program sistem kadangkala tidak terlihat secara langsung.
Adapun yang terlihat secara langsung seperti perrangkat lunak aplikasi yaitu
utilitas. Utilitas adalah Program yang dipakai secara langsung oleh pemakai
untuk melakukan kegiatan yang berhubungan dengan pengendalian atau
pengalokasian sumber daya dalam sistem komputer. Contoh : ScanDisk pada
Windows.
1.
Perangkat lunak sistem dapat berupa sistem operasi,
utilitas, device driver, dan penerjemah bahasa.Sistem Operasi adalah sekumpulan
rutin perangkat lunak yang berada diantara rogram aplikasi dan perangkat keras.
Semua perangkat lunak berjalan dibawah kendali sistem oprasi, mengakses
perangkat keras lewat sistem operasi, dan mengikuti aturan-aturan yang dijalankan
oleh sistem operasi. Contoh : Windows, UNIX, dan Linux.
2.
Utilitas adalah Program yang dipakai secara langsung oleh
pemakai untuk melakukan kegiatan yang berhubungan dengan pengendalian atau
pengalokasian sumber daya dalam sistem komputer. Contoh : ScanDisk pada
Windows.
3.
Device Driver adalah Program yang berfungsi untuk
membantu komputer mengendalikan peranti-peranti peripheral. Contoh : Jika kita
menghubungkan printer dengan komputer, biasanya kita perlu menginstal program
bawaan printer tersebut agar komputer mengenali printer tersebut. Program
seperti itulah yang disebut dengan Device Driver.
4.
Penerjemah Bahasa (language translator) adalah program
yang menerjemahkan program yang dibuat oleh pemrogram menjadi bentuk yang
dijalankan oleh komputer secara langsung.
Sistem Operasi
SistemOperasi adalah perangkat lunak yang
bertugas mengendalikan perangkat keras secara langsung. Sistem Operasi
menyediakan lingkungan perangkat lunak yang efektif dan nyaman untuk program
aplikasi dan pemakai. Beberapa program tergolong sebagai utilitas.Sistem
Operasi adalah sekumpulan rutin perangkat lunak yang berada diantara program
aplikasi dan perangkat keras. Semua perangkat lunak berjalan dibawah kendali
sistem oprasi, mengakses perangkat keras lewat sistem operasi, dan mengikuti
aturan-aturan yang dijalankan oleh sistem operasi. Contoh : Windows, UNIX, dan
Linux.
A. Fungsi Sistem Operasi
Sistem Operasi yaitu program yang berfungsi untuk mengendalikan sistem
kerja yang mendasar sehingga mengatur kerja media input, output, tabel
pengkodean, memori, penjadwalan prosesor, dan lain-lain. Sistem operasi
berfungsi sebagai penghubung antara manusia dengan perangkat keras dan
perangkat lunak yang akan digunakan. Adapun fungsi utama sistem operasi adalah
:
a)
Menyimpan program dan aksesnya
b)
Membagi tugas di dalam CPU
c)
Mengalokasikan tugas-tugas penting
d)
Merekam sumber-sumber data
e)
Mengatur memori sistem termasuk penyimpanan, menghapus dan mendapatkan data
f)
Memeriksa kesalahan sistem
g)
Multitugas pada OS/2″, Windows ’95″, Windows ’98″, Windows NT”, /2000/XP
h)
Memelihara keamanan sistem, khusus pada jaringan yang
membutuhkan kata sandi (password) dan penggunaan ID
Contoh Sistem Operasi, misalnya : Disk operating System (DOS), Microsoft
Windows, Linux, dan Unix.
B. Macam Sistem Operasi
Sistem operasi
amat beragam dan biasanya berbede antara satu platfrom dengan platfrom yang
lain. Dilingkungan PC, Windows, dan Linux merupakan sistem operasi yang sangat
populer. Sistem operasi yang paling umum digunakan adalah MVS (Multiple Virtual
System).Dilingkungan minikomputer memiliki sistem operasi tersendiri. Contoh
minikomputerData General memakai AOS dan DG. Sementara, komputer genggan(palmot
dan hand-held computer) memiliki sistem operasi tersendiri, yaitu : Palms OS
dan Windows CE/Pocket PC. Mac OS adalah sistem operasi yang hanya bisa berjalan
pada komputer Apple Macintosh dan UNIX adalah salah satu kelompok sistem
operasi yang dapat berjalan pada pelbagai platfrom. Istilah platfrom menyatakan
jenis komputer (PC, Minikomputer, dan mainframe).
C. Sejarah Sistem Operasi
Menurut
Tanenbaum, sistem operasi mengalami perkembangan yang sangat pesat, yang dapat
dibagi kedalam empat generasi:
• Generasi
Pertama (1945-1955)
Generasi pertama
merupakan awal perkembangan sistem komputasi elektronik sebagai pengganti
sistem komputasi mekanik, hal itu disebabkan kecepatan manusia untuk menghitung
terbatas dan manusia sangat mudah untuk membuat kecerobohan, kekeliruan bahkan
kesalahan. Pada generasi ini belum ada sistem operasi, maka sistem komputer diberi
instruksi yang harus dikerjakan secara langsung.
• Generasi Kedua
(1955-1965)
Generasi kedua
memperkenalkan Batch Processing System, yaitu Job yang dikerjakan dalam satu
rangkaian, lalu dieksekusi secara berurutan.Pada generasi ini sistem komputer
belum dilengkapi sistem operasi, tetapi beberapa fungsi sistem operasi telah
ada, contohnya fungsi sistem operasi ialah FMS dan IBSYS.
• Generasi
Ketiga (1965-1980)
Pada generasi
ini perkembangan sistem operasi dikembangkan untuk melayani banyak pemakai
sekaligus, dimana para pemakai interaktif berkomunikasi lewat terminal secara
on-line ke komputer, maka sistem operasi menjadi multi-user (di gunakan banyak
pengguna sekali gus) dan multi-programming (melayani banyak program sekali
gus).
• Generasi Keempat (Pasca 1980-an)
Dewasa ini,
sistem operasi dipergunakan untuk jaringan komputer dimana pemakai menyadari
keberadaan komputer-komputer yang saling terhubung satu sama lainnya. Pada masa
ini para pengguna juga telah dinyamankan dengan Graphical User Interface yaitu
antar-muka komputer yang berbasis grafis yang sangat nyaman, pada masa ini juga
dimulai era komputasi tersebar dimana komputasi-komputasi tidak lagi berpusat
di satu titik, tetapi dipecah dibanyak komputer sehingga tercapai kinerja yang
lebih baik.
D. Penanganan Proses Dalam Sistem Operasi
Berkaitan dengan
penanganan proses, dikenal beberapa istilah seperti multiprogramming, multitasking,
penyimpanan virtual, time sharing,
dan multiprocesing.
a)
Multiprogramming
adalah suatu metode yang memungkinkan dua buah program atau lebih
dijalankan secara serentak dalam sebuah komputer dan berbagai sumber daya dalam
waktu yang berlainan.Dengan multiprogramming, beberapa tugas disimpan dalam
memori dalam satu waktu; CPU digunakan secara bergantian sehingga menambah utilisasi
CPU dan mengurangi total waktu yang dibutuhkan untuk menyelesaikan tugas-tugas
tersebut. Multiprogramming, yang dibuat untuk meningkatkan kemampuan, juga
mengizinkan time sharing. Sistem operasi yang bersifat time-shared
memperbolehkan banyak pengguna untuk menggunakan komputer secara interaktif
pada saat yang bersamaan. Kelemahan multiprogramming adalah tidak memungkinkan
pemakai berinteraksi dengan proses.
b)
Time-sharing adalah suatu
metode yang dipakai sistem operasi yang memungkinkan sejumlah pemakai dapat
berinteraksi dengan proses yang dibuatnya karena setiap proses akan ditangani
oleh CPU secara bergantian dalam jumlah waktu yang sama.
c)
Penyimpanan Virtual adalah suatu metode yang menangani
sejumlah program dengan menbagi program-program tersebut kedalam bagian-bagian
yang lebih kecil dan berukuran sama dengan hanya sebuah bagian dari setiap
proses yang ditaruh dalam memori utama per satuan waktu.
d)
Multitasking adalah suatu
kemampuan yang memungkinkan seseorang pemakai menjalankan sejumlah program
dalam waktu yang sama.
e)
Multiprocessing adalah suatu
kemampuan sistem operasi yang menjalankan dua atau lebih intruksi secara
serentak dengan menggunakan sejumlah CPU dalam sebuah komputer.
Pada
kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Namun
menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem
operasi modern mempunyai komponen sebagai berikut:
a.
Managemen Proses
Proses adalah keadaan ketika
sebuah program sedang di eksekusi. Sebuah proses membutuhkan beberapa sumber
daya untuk menyelesaikan tugasnya. sumber daya tersebut dapat berupa CPU time,
memori, berkas-berkas, dan perangkat-perangkat I/O.
Sistem operasi bertanggung jawab
atas aktivitas-aktivitas yang berkaitan dengan managemen proses seperti:
• Pembuatan dan penghapusan proses pengguna dan sistem
proses.
• Menunda atau melanjutkan proses.
• Menyediakan mekanisme untuk proses sinkronisasi.
• Menyediakan mekanisme untuk proses komunikasi.
• Menyediakan mekanisme untuk penanganan deadlock.
b.
Managemen Memori Utama
Memori utama
atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau
byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word
atau byte mempunyai alamat tersendiri. Memori Utama berfungsi sebagai tempat
penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O. Memori
utama termasuk tempat penyimpanan data yang sementara (volatile), artinya data
dapat hilang begitu sistem dimatikan.
Sistem operasi
bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan managemen
memori seperti:
• Menjaga track
dari memori yang sedang digunakan dan siapa yang menggunakannya.
• Memilih program yang akan di-load ke memori.
• Mengalokasikan dan meng-dealokasikan ruang memori
sesuai kebutuhan.
c.
Managemen Secondary-Storage
Data yang
disimpan dalam memori utama bersifat sementara dan jumlahnya sangat kecil. Oleh
karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan
secondary-storage yang bersifat permanen dan mampu menampung banyak data.
Contoh dari secondary-storage adalah harddisk, disket, dll.
Sistem operasi
bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan
disk-management seperti: free-space management, alokasi penyimpanan,
penjadualan disk.
d.
Managemen Sistem I/O
Sering disebut
device manager. Menyediakan "device driver" yang umum sehingga
operasi I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh:
pengguna menggunakan operasi yang sama untuk membaca berkas pada hard-disk,
CD-ROM dan floppy disk.
Komponen Sistem Operasi untuk sistem I/O:
• Buffer: menampung sementara data dari/ ke perangkat
I/O.
• Spooling:
melakukan penjadualan pemakaian I/O sistem supaya lebih efisien (antrian dsb.).
• Menyediakan
driver untuk dapat melakukan operasi "rinci" untuk perangkat keras
I/O tertentu.
e.
Managemen Berkas
Berkas adalah
kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas
tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori,
volume, dll.). Sistem operasi bertanggung-jawab:
• Pembuatan dan penghapusan berkas.
• Pembuatan dan penghapusan direktori.
• Mendukung manipulasi berkas dan direktori.
• Memetakan berkas ke secondary storage.
• Mem-backup berkas ke media penyimpanan yang permanen
(non-volatile).
f.
.Sistem Proteksi
Proteksi mengacu
pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor,
atau pengguna ke sistem sumber daya. Mekanisme proteksi harus:
• membedakan antara penggunaan yang sudah diberi izin dan
yang belum.
• specify the controls to be imposed.
• provide a means of enforcement.
g.
Jaringan
Sistem
terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock.
Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung
melalui jaringan komunikasi Sistem terdistribusi menyediakan akses pengguna ke
bermacam sumber-daya sistem. Akses tersebut menyebabkan:
• Computation speed-up.
• Increased data availability.
• Enhanced reliability.
h.
Command-Interpreter System
Sistem Operasi
menunggu instruksi dari pengguna (command driven). Program yang membaca
instruksi dan mengartikan control statements umumnya disebut: control-card
interpreter, command-line
interpreter, dan
UNIX shell. Command-Interpreter System sangat bervariasi dari satu sistem
operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi
I/O devices yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan
lain-lain.
i.
Layanan Sistem Operasi
Eksekusi program
adalah kemampuan sistem untuk "load" program ke memori dan
menjalankan program. Operasi I/O: pengguna tidak dapat secara langsung
mengakses sumber daya perangkat keras, sistem operasi harus menyediakan
mekanisme untuk melakukan operasi I/O atas nama pengguna. Sistem manipulasi
berkas dalah kemampuan program untuk operasi pada berkas (membaca, menulis,
membuat, and menghapus berkas). Komunikasi adalah pertukaran data/ informasi
antar dua atau lebih proses yang berada pada satu komputer (atau lebih).
Deteksi error adalah menjaga kestabilan sistem dengan mendeteksi
"error", perangkat keras mau pun operasi.
Efesisensi penggunaan sistem:
• Resource
allocator adalah mengalokasikan sumber-daya ke beberapa pengguna atau job yang
jalan pada saat yang bersamaan.
• Proteksi
menjamin akses ke sistem sumber daya dikendalikan (pengguna dikontrol aksesnya
ke sistem).
• Accounting
adalah merekam kegiatan pengguna, jatah pemakaian sumber daya (keadilan atau
kebijaksanaan).
j.
System Calls
System call
menyediakan interface antara program (program pengguna yang berjalan) dan
bagian OS. System call menjadi jembatan antara proses dan sistem operasi.
System call ditulis dalam bahasa assembly atau bahasa tingkat tinggi yang dapat
mengendalikan mesin (C). Contoh: UNIX menyediakan system call: read, write
=> operasi I/O untuk berkas.
Sering pengguna
program harus memberikan data (parameter) ke OS yang akan dipanggil. Contoh
pada UNIX: read(buffer, max_size, file_id);
Tiga cara memberikan parameter dari program ke sistem
operasi:
• Melalui registers (sumber daya di CPU).
• Menyimpan
parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk
oleh pointer yang disimpan di register.
• Push (store)
melalui "stack" pada memori dan OS mengambilnya melalui pop pada
stack tsb.
k.
Mesin Virtual
Sebuah mesin
virtual (Virtual Machine) menggunakan misalkan terdapat sistem program =>
control program yang mengatur pemakaian sumber daya perangkat keras. Control
program = trap System call + akses ke perangkat keras. Control program
memberikan fasilitas ke proses pengguna. Mendapatkan jatah
CPU dan memori.
Menyediakan interface "identik" dengan apa yang disediakan oleh perangkat
keras : sharing devices untuk berbagai proses.
Mesin Virtual
(MV) (MV) : control program yang minimal MV memberikan ilusi multitasking:
seolah-olah terdapat prosesor dan memori ekslusif digunakan MV. MV memilah
fungsi multitasking dan implementasi extended machine (tergantung proses
pengguna) => flexible dan lebih mudah untuk pengaturan. Jika setiap pengguna
diberikan satu MV => bebas untuk menjalankan OS (kernel) yang diinginkan
pada MV tersebut. Potensi lebih dari satu OS dalam satu komputer. Contoh: IBM
VM370: menyediakan MV untuk berbagai OS: CMS (interaktif), MVS, CICS, dll.
Masalah: Sharing disk => OS mempunyai sistem berkas yang mungkin berbeda.
IBM: virtual disk (minidisk) yang dialokasikan untuk pengguna melalui MV.
Konsep MV
menyediakan proteksi yang lengkap untuk sumberdaya sistem, dikarenakan tiap MV
terpisah dari MV yang lain. Namun, hal tersebut menyebabkan tidak adanya
sharing sumberdaya secara langsung. MV merupakan alat yang tepat untuk
penelitian dan pengembangan sistem operasi. Konsep MV susah untuk
diimplementasi sehubungan dengan usaha yang diperlukan untuk menyediakan
duplikasi dari mesin utama.
l.
Perancangan
Sistem dan Implementasi
Target untuk
pengguna: sistem operasi harus nyaman digunakan, mudah dipelajari, dapat
diandalkan, aman dan cepat. Target untuk sistem: sistem operasi harus gampang
dirancang, diimplementasi, dan dipelihara, sebagaimana fleksibel, error, dan
efisien.
Mekanisme dan Kebijaksanaan:
• Mekanisme
menjelaskan bagaimana melakukan sesuatu kebijaksanaan memutuskan apa yang akan
dilakukan. Pemisahan kebijaksanaan dari mekanisme merupakan hal yang sangat
penting; ini mengizinkan fleksibilitas yang tinggi bila kebijaksanaan akan
diubah nanti.
• Kebijaksanaan memutuskan apa yang akan dilakukan.
Pemisahan
kebijaksanaan dari mekanisme merupakan hal yang sangat penting; ini mengizinkan
fleksibilitas yang tinggi bila kebijaksanaan akan diubah nanti.
Implementasi
Sistem biasanya menggunakan bahas assembly, sistem operasi sekarang dapat
ditulis dengan menggunakan bahasa tingkat tinggi. Kode yang ditulis dalam
bahasa tingkat tinggi: dapat dibuat dengan cepat, lebih ringkas, lebih mudah
dimengerti dan didebug. Sistem operasi lebih mudah dipindahkan ke perangkat
keras yang lain bila ditulis dengan bahasa tingkat tinggi.
m.
System Generation (SYSGEN)
Sistem operasi
dirancang untuk dapat dijalankan di berbagai jenis mesin; sistemnya harus di
konfigurasi untuk tiap komputer. Program SYSGEN mendapatkan informasi mengenai
konfigurasi khusus dari sistem perangkat keras.
• Booting: memulai komputer dengan me-load kernel.
• Bootstrap
program: kode yang disimpan di code ROM yang dapat menempatkan kernel,
memasukkannya kedalam memori, dan memulai eksekusinya.
Utilitas
Perangkat
lunak utilitas merupakan
perangkat lunak komputer yang didisain untuk membantu proses analisis,
konfigurasi, optimasi, dan membantu pengelolaan sebuah komputer ataupun sistem.
Perangkat lunak utilitas harus dibedakan dengan perangkat lunak aplikasi yang
memungkinkan pengguna melakukan berbagai hal dengan komputer seperti mengetik,
melakukan permainan, merancang gambar, dan lain-lain. Perangkat lunak utilitas
lebih memfokuskan penggunaannya pada pengoptimasian fungsi dari infrastruktur
yang terdapat dalam sebuah komputer. Karena fungsinya, perangkat lunak utilitas
umumnya tidak ditujukan untuk pengguna secara umum, melainkan ditujukan untuk
pengguna yang memiliki pemahaman atas cara kerja sistem komputer yang cukup
baik.
Kebanyakan
perangkat keras utilitas ini dibuat secara khsus untuk melakukan fungsi
tertentu pada suatu area komputasi secara spesifik, seperti memformat harddisk,
atau melakukan pengecekan konektifitas jaringan. Namun dalam perkembangannya
sejumlah perangkat lunak utilitas terkadang pula dipaketkan dalam satu paket
utilitas yang ditujukan untuk beragam kebutuhan.
A. Program Untuk Pencadangan
Backup,
utilitas untuk melakukan backup data yang ditujukan untuk membuat duplikat arsip untuk menghindari terjadinya kehilangan data bila
perangkat penyimpanan tidak dapat berfungsi. Contoh utilitas backup yang cukup
popiler adalah Norton Backup (dari Symantec) dan Colorado Scheduler. Di
lingkungan UNIX dan Linux terdapat utilitas bernama tar, cpio, dan ddl.
B. Program Pemulih Data
Pemulihan Data,
utilitas pemulihan data digunakan untuk mengembalikan data yang secara fisik
telah rusak atau berubah. Data dapat dirusak oleh virus, perangkat lunak yang
buruk, kegagalan perangkat keras, dan fluktuasi daya listrik yang terjadi
ketika data sedang ditulisi/diubah. Perangkat lunak ini berisi kumpulan program
yang berguna untuk membetulkan kerusakan data pada hard disk.
C. Program Untuk Anti Virus
Virus berupa penggalan kode yang dapat menggandakan
dirinya sendiri dengan cara menyalin kode dan menempelkan ke berkas program
yang dapat dieksekusi. Selanjutnya, salinan virus akan akan menjadi aktif
manakala program yang terinfensi dijalankan.
Anti virus,
perangkat lunak antivirus men-scan semua disk dan memori untuk mendeteksi
kehadiran virus, dan mengisolasinya untuk mencegah kerusakan lebih lanjut.
Program anti virus berguna untuk menangani penularan virus dalam komputer.
Beberapa diantaranya dapat melakukan pencegahan terhadap penularan virus, serta
dapat melakukan pemulihan berkas yang terkena virus. . Contoh : Norton Anti
Virus dan Mc Affee VirusScan.
D. Program Kompresi Data
Kompresi data, utilitas kompresi berfungsi untuk
memperkecil ukuran sebuah dokumen sehingga dapat menghemat pemanfaatan ruang
penyimpanan, serta mempermudah pendistribusian. Contoh : Program WinZip dan PK
Zip.
E. Program Untuk Melakukan Defragmentasi
Defragmentasi adalah upaya untuk menghilangkan fragmentasi, yaitu keadaan yang membuat
bagian dari berkas-berkas pada hard disk tidak berada pada lokasi yang
berselahan melainkan berserakan pada berbagai sektor yang berjauhan.
Berpengaruh pada pengaksesan yang menjadi lambat.
Program yang digunakan untuk
melakukan defragmentasi disebut defragger atau defragmenter. Disk Defragmenter
merupakan contoh utilitas pada Microsoft Windows.
F. Pemformat Disk
Memformatdisk
adalah tindakan yang dilakukan untuk menyiapkan disket atau hard disk agar bisa
digunakan untuk menyimpan data atau program. Untuk melakukannya bisa
menggunakan program pemformat disk.
Device Driver
Device
driver adalah program yang berfungsi untuk membantu komputer mengendalikan
peranti-peranti peripheral. Perangkat lunak ini biasanya disediakan vendor yang
berfungsi erangkat keras. Contoh saat memasang perangkat keras seperti modem
atau scaner, Anda juga perlumenginstal devic driver supaya perangkat keras
tersebutdapat berfungsi dengan baik.
Penerjemah Bahasa
Umumnya program dibuat dengan menggunakan bahasa pemrograman yang
dipahami oleh manusia.Biasanya menggunakan kata-kata bahasa inggris.
Penerjemah bahasa dibedakan menjadi assembler, compiler, dan
interpreter.
·
Assembler adalah program yang
digunakan untuk menerjemahkan kode sumber dalam bahasa rakitan ( Assembly)
kedalam bahasa mesin.
·
Kompiler adalah program
penerjemah yang mengonversi semua kode sumber selain bahasa rakitan menjadi
kode objek. Hasil inilah yang nantinya bias dijalankan oleh computer. Proses
untuk melakukan penerjemah ini bias disebut kompilasi. Bahasa seperti COBOL dan
C menggunakan compiler.
·
Interpeter adalah program yang
menerjemahkan per satu intruksi dalam kode sumber dan kemudian segera
menjalankan interuksi yang telah diterjemahkan tersebut.
A. Klarifikasi Bahasa Pemrograman
Bahasa pemrograman telah diklasifikasikan ke
dalam generasi bahasa pemrograman . Secara historis, klasifikasi ini
digunakan untuk menunjukkan kekuasaan meningkatnya gaya pemrograman. Perkembangan
bahasa pemrograman ini terus bergerak demikian pesat hingga saat ini.Hal ini
ditandai dengan semakin banyaknya bahasa pemrograman yang bermunculan. Adapun
per kembangan bahasa pemrograman tersebut terbagi kedalam beberapa generasi
sebagai berikut :
a. Generasi I :
machine language
b. Generasi II :
assembly language: Asssembler
c. Generasi III : high-level
programming language : C, PASCAL, dsb.
d. Generasi IV : 4 GL
(fourth-generation language): Prolog, SQL, Visual tool, dsb
JENIS BAHASA PEMROGRAMAN
Berdasarkan jenisnya, bahasa pe mrograman dapat dibedakan menjadi beberapa
jenis sebagai berikut : 1. Bahasa tingkat rendah (low level language)
1. Bahasa pemrograman yang
berorientasi pada bahasa mesin
Contoh : Assembler
2. Bahasa tingkat menengah
(middle level language)
Bahasa pemrograman yang
beorientasi pada aturan gramatikal
Contoh : C
3. Bahasa tingk at tinggi (high level language)
Bahasa pemrograman yang
berorientasi pada bahasa manusia
Contoh : BASIC, PASCAL
4. Bahasa berorientasi objek (object oriented
language)
Bahasa pemrograman yang
berorientasi pada objek
Contoh : Delphi, VB, SQL
Generasi Pertama
Dalam kategorisasi ini, generasi
pertama bahasa pemrograman mengacu pada
angka kode
mesin , yaitu petunjuk numerik secara langsung sesuai dengan
petunjuk perangkat keras individu.
Awalnya, tidak ada penerjemah yang
digunakan untuk mengkompilasi
atau merakit sumber assembler untuk menghasilkan
kode mesin numerik. Generasi pertama instruksi pemrograman yang masuk melalui
switch panel depan dari sistem komputer.
Manfaat utama dari pemrograman dalam
kode mesin adalah bahwa kode pengguna menulis dapat berjalan sangat cepat dan
efisien, karena secara langsung dieksekusi oleh CPU . Namun, kode mesin adalah jauh lebih
sulit untuk belajar dari yang lebih tinggi bahasa pemrograman generasi, dan itu
jauh lebih sulit untuk mengedit jika terjadi kesalahan. Selain itu, jika
instruksi perlu ditambahkan ke dalam memori di lokasi tertentu, maka semua
instruksi setelah titik penyisipan perlu dipindahkan ke membuat ruang dalam
memori untuk menampung instruksi baru. Melakukannya pada panel depan dengan
switch bisa sangat sulit.
Generasi Kedua
Generasi kedua bahasa pemrograman mengacu pada
(simbolis) bahasa assembly . Istilah ini diciptakan untuk
memberikan perbedaan dari sebelumnya bahasa kode mesin dan tingkat yang lebih tinggi bahasa pemrograman generasi ketiga
(3GL) seperti Fortran
, COBOL
dan Algol
. Generasi kedua bahasa pemrograman memiliki sifat sebagai berikut:
- Kode assembly simbolis dapat dibaca dan ditulis oleh seorang programmer. Untuk menjalankan pada komputer harus dikonversi ke dalam bentuk mesin yang dapat dibaca, proses yang disebut perakitan.
- Bahasa adalah satu-ke-satu korespondensi dengan instruksi mesin dari keluarga prosesor tertentu dan lingkungan.
Majelis bahasa kadang-kadang digunakan
dalam kernel dan driver perangkat (meskipun C umumnya digunakan untuk ini di kernel
modern), tetapi lebih sering menemukan penggunaan dalam pengolahan yang sangat
intensif seperti game, video editing, grafis manipulasi / render.
Salah satu metode untuk membuat kode
seperti ini dengan memungkinkan compiler untuk menghasilkan mesin-dioptimalkan
perakitan versi bahasa fungsi tertentu. Sumber perakitan kemudian tangan-tuned,
memperoleh wawasan baik brute-force dari algoritma mesin mengoptimalkan dan
kemampuan intuitif optimizer manusia.
Generasi ketiga
Generasi ketiga bahasa pemrograman
(3GL) awalnya disebut semua bahasa pemrograman pada tingkat yang
lebih tinggi dari perakitan. Sedangkan instruksi individu dari bahasa generasi
kedua dalam satu-ke-satu korespondensi dengan instruksi mesin individu (yaitu
mereka yang dekat dengan domain mesin), bahasa generasi ketiga bertujuan untuk
menjadi lebih dekat ke domain manusia. Instruksi beroperasi pada tingkat, lebih
tinggi abstrak, lebih dekat dengan cara berpikir manusia, dan setiap instruksi
individu dapat diterjemahkan ke dalam sejumlah (besar kemungkinan)
mesin-tingkat instruksi. Bahasa generasi ketiga dimaksudkan untuk lebih mudah
digunakan daripada bahasa generasi kedua. Dalam rangka untuk menjalankan pada
komputer yang sebenarnya, kode yang ditulis dalam bahasa generasi ketiga harus
dikompilasi baik secara langsung ke dalam kode mesin, atau ke perakitan, dan
kemudian dirakit. Kode yang ditulis dalam bahasa generasi ketiga umumnya dapat
dikompilasi untuk dijalankan pada komputer yang berbeda menggunakan berbagai
arsitektur perangkat keras.
Pertama kali diperkenalkan pada akhir
1950-an, FORTRAN
, ALGOL
dan COBOL
adalah contoh awal dari bahasa generasi ketiga.
Bahasa generasi ketiga cenderung baik
seluruhnya (atau hampir seluruhnya) independen dari hardware, seperti untuk
keperluan umum bahasa seperti Pascal , Java , FORTRAN
, dll, meskipun beberapa telah ditargetkan pada prosesor tertentu atau
arsitektur keluarga prosesor, seperti , misalnya PL
/ M yang ditargetkan pada prosesor Intel, atau bahkan C
, yang sebagian auto-increment dan auto-decrement idiom seperti * (c + +)
berasal dari hardware PDP-11 ini yang mendukung auto-increment dan
auto-decrement mode pengalamatan tidak langsung, dan di mana C
pertama kali dikembangkan.
Kebanyakan "modern" bahasa ( BASIC
, C , C
+ + , C # , Pascal , Ada , dan Jawa ) juga generasi ketiga bahasa.
Generasi Keempat
Awalnya, bahasa pemrograman semua pada
tingkat yang lebih tinggi dari perakitan yang disebut "generasi
ketiga", tetapi kemudian, istilah "generasi keempat"
diperkenalkan untuk mencoba membedakan (kemudian) bahasa deklaratif baru (seperti
Prolog dan domain- spesifik bahasa) yang diklaim beroperasi pada tingkat yang
lebih tinggi, dan dalam domain bahkan lebih dekat ke pengguna (misalnya pada
tingkat bahasa alami) daripada asli, bahasa tingkat tinggi seperti imperatif Pascal , C
, Algol
, Fortran
, BASIC
, dan lain-lain
Bahasa pemrograman generasi keempat
biasa disebut sebagai bahasa beraras sangat tinggi ( very hisht level language)
karena memungkinkan para pemkai menyelesaikan masalah dengan sedikit penulisan
kode dibandingkan pada bahasa procedural.
Bahasa
pemrograman generas keempat dikenal dengan sebutan 4 GL.
Beberapa contoh
bahasa generasi keempat :
·
Oracle
·
Informix
·
Sybase
·
PowerHouse
·
Access
·
FOCUS
Generasi Kelima
Bahasa pemrograman generasi kelima merupakan kelompok
bahasa-bahasa pemrograman yang ditunjukan untuk menangani kecerdasan buatan.
Kecerdasan buatan adalah disiplin dalam ilmu computer yang mempelajari cara
computer meniru kecerdasan manusia.
PROLOG dan LISP mwerupakan dua
contoh bahasa pemrograman yang ditunjukan untuk menangani kecerdasan buatan.
B. Sejarah Bahasa Pemrograman
Sejarah pemrograman komputer tidak seperti yang
dibayangkan oleh kebanyakan orang.Kebanyakan orang mengira bahwa pemrograman
komputer ini mulai berkembang atau ditemukan pada akhir abad duapuluhan.Namun
dalam kenyataannya, sejarah pemrograman modern dan bahasa pemrograman mulai
berkembang sejak 1940-an, yaitu sekitar 68 tahun yang lalu.
Pada tahun 1922. Charles Babbage. Ketika belajar di
Universitas Cambridge Inggris, ia melihat bahwa pada saat itu banyak terdapat
berbagai macam tabel perhitungan seperti tabel yang terkait dengan astronomi,
kelautan, navigasi dan sebagainya. Meskipun tabel-tabel perhitungan ini
tersedia, namun yang terjadi adalah banyak sekali kejadian musibah seperti
kapal tenggelam, kecelakaan dan kapal hilang.Dalam hal ini, Charles Babbage
mengira bahwa musibah ini disebabkan oleh faktor kesalahan manusia yaitu
keterbatasan kemampuan dalam mengimplementasikan tabel perhitungan yang ada.
Hal inilah yang memicunya untuk memikirkan bagaimana cara mengelola data-data yang
ada dalam tabel perhitungan tersebut supaya mudah digunakan. Bagaimana
caranya?yaitu menggunakan sebuah ‘mesin’. Mesin ini ia beri nama ‘Difference
Engine’.
Setelah bekerja selama 10 tahun pada mesinnya, Charles
Babbage menyadari bahwa mesin yang dia ciptakan ini merupakan sebuah mesin yang
hanya punya satu tujuan (single-purpose machine) artinya hanya bisa
menghasilkan satu jenis keluaran (output). Selanjutnya ia ingin mengembangkan
mesin lain yang bersifat multi-purpose. Mesin ini diberi nama ‘Analytical
Engine’. Pekerjaan untuk membuat ‘Analytical Engine’ ini ia lakukan sampai
dengan tahun 1942. Pada tahun 1947, Charles Babbage kembali menyempurnakan
‘Difference Engine’ dan akhirnya pada tahun 1949 ia berhasil membuat versi
keduanya. Pekerjaan untuk terus menyempurnakan hasil-hasil karyanya terus ia
lakukan, bahkan diteruskan oleh anaknya, Henry Prevost. Charles Babbage sendiri
meninggal pada tahun 1871.Untuk melindungi karya-karya ayahnya, Henry Prevost
membuat beberapa kopian unit perhitungan aritmatika sederhana dari mesin yang
dihasilkan ayahnya dan mengirimkannya ke beberapa institusi di dunia, termasuk
ke Universitas Harvard.
Perkembangan dunia komputasi berlanjut pada tahun
1980-an tepatnya pada tahun 1854, yaitu ketika seseorang bernama Charles Boole
telah mampu menciptakan sebuah sistem logika simbolik yang diberinama Logika
Boole. Sistem ini mencakup pula logika untuk menyatakan hubungan lebih besar,
lebih kecil, sama dengan dan tidak sama dengan. Sistem logika ini masih
digunakan sampai dengan saat ini.
Sebuah penemuan dapat dikatakan berawal dari sebuah
‘kebutuhan’.Begitu pula dengan pemrograman komputer ini.Pada tahun 1890,
Amerika Serikat ingin melakukan sensus penduduk.Namun kendala yang muncul
adalah keterbatasan alat yang ada pada waktu itu, mengingat jumlah penduduk
yang semakin meningkat tahun demi tahun.Akhirnya diadakanlah sebuah kompetisi
komputasi untuk mencari solusinya. Kompetisi ini dimenangkan oleh Herman
Hollerith, yang akhirnya ia mendirikan sebuah perusahaan Hollerith Tabulating,
Co. yang akhirnya berubah nama menjadi CTR (Calculating Tabulating Recording
Company) setelah 3 perusahan lain ikut bergabung. Sepuluh tahun berikutnya
perusahaan ini berganti nama lagi menjadi IBM (International Business Machine)
hingga saat ini.
Perkembangan komputasi digital selanjutnya mulai
berjalan pelan dan jarang digunakan dalam dunia bisnis sampai dengan
pertengahan tahun 1920 an. Hingga akhirnya pada tahun 1925 MIT (Massachusette
Institute of Technology) telah mengembangkan sebuah mesin yang mampu
menganalisis perhitungan differensiasi dan integrasi.Mesin yang didanai oleh
Yayasan Rockefeller ini dapat dikatakan sebuah komputer terbesar di dunia pada
tahun 1930.
Pemain berikutnya yang memiliki andil dalam
perkembangan komputasi komputer digital ini adalah seorang ilmuan Jerman
bernama Konrad Zuse.Pada tahun 1935, Zuse telah mengembangkan komputer Z-1
nya.Apa keistimewaan Z- 1 ini? Komputer ini adalah awal mula diterapkannya
sistem biner dalam kinerjanya. Selain itu, Zuse juga berjasa dalam komputasi
komputer digital ketika ia menciptakan bahasa pemrograman komputer pertama
‘Plankalkul’.
Pada tahun 1945, terjadi pula peristiwa penting dalam
sejarah perkembangan komputasi komputer digital yaitu ketika mesin Mark II yang
ada di Universitas Harvard terjadi kerusakan.Seseorang yang bernama Grace
Murray Hopper yang mengetahui hal ini langsung menyelidiki sebab
kerusakannya.Akhirnya dia menemukan sebuah ngengat yang terjebak dalam mesin
tersebut. Dalam catatan hariannya, Hopper menuliskan: “First actual case of bug
being found”. Dia menyebut ngengat ini sebagai sebuah kutu busuk (bug), mungkin
karena jengkel. Kata ‘bug’ inilah yang selanjutnya sering dikaitkan dengan
adanya ketidakberesan dalam program. Dari kata ‘bug’ ini muncul pula istilah
‘debugging’ yang artinya proses pembetulan kesalahan program.
Pada tahun 1954, IBM mulai mengembangkan bahasa
pemrograman FORTRAN (FORmula TRANslator) yang akhirnya dipublikasikan pada
tahun 1959. Bahasa FORTRAN merupakan bahasa pemrograman level tinggi pertama yang
dikomersialkan. Pemrograman level tinggi maksudnya adalah perintah atau kodenya
mudah dibaca dan dipahami oleh manusia.
Pada tahun 1958, FORTRAN II dan ALGOL dipublikasikan
bersamaan dengan diluncurkannya LISP.Sedangkan pada tahun 1959, bahasa pemrograman
COBOL juga diluncurkan.Sejak saat itu perkembangan bahasa pemrograman sangat
cepat.Pada tahun 1970, bahasa PASCAL mulai dipublikasikan dan saat ini masih
banyak digunakan untuk keperluan pendidikan.
Pada tahun 1970 muncul pula dua bahasa pemrograman yang
dapat dikatakan sangat penting yaitu SMALLTALK dan B-Languange.SMALLTALK
penting karena merupakan bahasa pemrograman berbasis obyek yang pertama.
Sedangkan B-Languange dikatakan penting karena merupakan cikal bakal munculnya
bahasa C. Dengan bahasa C, pemrograman akan lebih mudah, efisien, dan
fleksibel.
Pada tahun 1975, Dr. Wong merilis bahasa pemrograman
hasil ciptaannya bernama TinyBASIC. TinyBASIC merupakan bahasa pemrograman
pertama yang bersifat free alias tidak membayar dalam penggunaannya.
Sedangkan pada saat yang bersamaan pada tahun 1975,
Bill Gates dan Paul Allen membuat bahasa pemrograman yang diberi nama BASIC.
BASIC ini selanjutnya mereka jual ke MIT.
Perkembangan bahasa pemrograman ini terus bergerak
demikian pesat hingga saat ini. Hal ini ditandai dengan semakin banyaknya
bahasa pemrograman yang bermunculan
C. Berbagai Bahasa Pemrograman
Bahasa
pemrograman sangatlah banyak. Beberapa yang terkenal dan sering digunakan
antara lain : FORTRAN, COBOL, PL/I, RPG, BASIC, Logo, APL, FORTH, Pascal, Ada,
C, C++, dan Java. Bahasa-bahasa berikut adalah bahasa yang mewarnai sejarah
komputasi manusia yang memberi fitur-fitur penting dimasanya, titik-titik
sejarah komputasi.
Tidak ada komentar:
Posting Komentar