Program komputer atau sering kali disingkat
sebagai program adalah
serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada komputer.
Komputer pada dasarnya membutuhkan keberadaan program agar bisa menjalankan
fungsinya sebagai komputer, biasanya hal ini dilakukan dengan cara mengeksekusi
serangkaian instruksi program tersebut pada prosesor Sebuah
program biasanya memiliki suatu bentuk model pengeksekusian tertentu agar dapat
secara langsung dieksekusi oleh komputer. Program yang sama dalam format kode
yang dapat dibaca oleh manusia disebut sebagai kode sumber,
bentuk program yang memungkinkan programmer menganalisis
serta melakukan penelaahan algoritma yang digunakan pada program tersebut. Kode
sumber tersebut pada akhirnya dikompilasi oleh
utilitas bahasa pemrograman tertentu sehingga membentuk sebuah program. bentuk
alternatif lain model pengeksekusian sebuah program adalah dengan menggunakan
bantuan interpreter,
kode sumber tersebut langsung dijalankan oleh utilitas interpreter suatu bahasa
pemrograman yang digunakan.
Beberapa
program komputer dapat dijalankan pada sebuah komputer pada saat bersamaan,
kemampuan komputer untuk menjalankan beberapa program pada saat bersamaan
disebut sebagaimultitasking.
Program komputer dapat dikategorikan menurut fungsinya; perangkat lunak
sistem atau perangkat lunak
aplikasi.
Kode sumber sebuah program yang ditulis dengan bahasa
pemrograman
Pemrograman
komputer merupakan suatu proses iteratif penulisan dan menyuntingan kode sumber
sehingga membentuk sebuah program. Penyuntingan kode sumber meliputi proses
pengetesan, analisis, pembetulan kesalahan, pengoptimasian algoritma,
normalisasi kode, dan kadang-kadang pengkoordinasian antara satu programmer
dengan programmer lainnya jika sebuah program dikerjakan oleh beberapa orang
dalam sebuah tim. Seorang praktisi yang memiliki keahlian untuk melakukan
penulisan kode dalam bahasa pemrograman disebut sebagaiprogrammer komputer
atau programmer, pengembang perangkat lunak, atau koder. Istilah rekayasa perangkat lunak (bahasa Inggris: Software
engineering) seringkali digunakan karena proses penulisan program
tersebut dipandang sebagai suatu disiplin ilmu perekayasaan.
Program
komputer dapat dikategorikan menurut paradigma bahasa pemrograman yang
digunakannya. Dua paradigma utama yang umum digunakan adalah imperatif dan deklaratif.
Program
yang ditulis dalam bahasa pemrograman imperatif biasanya memiliki algoritma
yang ditulis dalam serangkaian klausal pendeklarasian, ekspresi aritmatis, dan
sejumlah perintah Pendeklarasian meliputi pendeklarasian variabel serta tipe
data atas variabel tersebut, contoh: var x: integer; Penggunaan
ekpresi operasi aritmatis yang menghasilkan nilai, contoh: 2 + 2 menghasilkan
nilai 4. Dan perintah yang melingkupi pendelegasian nilai atas hasil dari
operasi aritmatis tersebut ke dalam sebuah variabel, contoh: x := 2 +
2; if x = 4 then lakukan_sesuatu(); Salah satu bentuk kritik atas
implementasi imperatif ini adalah efek samping yang timbul atas pendelegasian
perintah terhadap variabel yang berada diluar cakupan dari fungsi tersebut atau
lebih dikenal sebagai non-local
variable.
Program
yang ditulis dengan bahasa deklaratif meliputi sejumlah properti yang harus
dipenuhi untuk mendapatkan suatu bentuk hasil tertentu. Properti tersebut tidak
mencerminkan suatu gambaran atas proses kerja suatu program namun merupakan
suatu bentuk deklarasi relasional matematis atas sejumlah objek melaui
properti-propertinya. Dua bagian utama atas pemrograman deklaratif adalah bahasa pemrograman
fungsional dan bahasa
pemrograman logikal. Prinsip
dasar dibalik bahasa pemrograman fungsional (Haskell)
adalah mencegah timbulnya efek samping seperti yang terdapat pada model
pemrograman imperatif sehingga membuatnya lebih mudah untuk digunakan membuat
program yang melakukan sejumlah operasi matematis. Sementara itu, prinsip dari
sebuah bahasa pemrograman logikal (Prolog) adalah mendefinisikan permasalahan yang hendak
diselesaikan, tujuan yang hendak dicapai, dan membiarkan sistem melakukan
analisis atas detail solusi terhadap permasalahan tersebut. Tujuan utama
atas sebuah program didefinisikan dengan cara membuat sejumlah tujuan-tujuan
yang lebih kecil, kemudian pada tiap-tiap tujuan tersebut secara lebih lanjut
didefinisikan tujuan-tujuan lain yang lebih kecil lagi, dan begitu seterusnya.
Jika suatu arahan tujuan yang didefinisikan gagal digunakan untuk menemukan
solusi atas suatu permasalahan, maka arahan tujuan anakan yang lebih kecil akan
di telusuri ulang, dan arahan lainnya akan diujicobakan.
Bentuk
dari cara sebuah program dibuat bisa berupa tekstual ataupun visual. Dalam
pemrograman visual, elemen-elemen program biasanya dimanipulasi secara grafis,
sementara bila dibuat secara tekstual artinya sebuah program ditulis secara
manual.
Program
komputer dalam bentuk yang dapat dibaca oleh manusia biasanya disebuat sebagai kode sumber.
Kode sumber dapat dikonversikan menjadi bentuk berkas yang dapat dieksekusi
secara langsung oleh komputer. Proses pengkonversian ini disebut sebagai proses
kompilasi dan biasanya dilakukan sebuah program utilitas dari bahasa
pemrograman yang digunakan yang disebut sebagai kompiler.
Pada beberapa bahasa pemrograman tertentu, kode sumber dapat langsung
dieksekusi sebagai sebuah program dengan menggunakan bantuan utilitas yang
disebut sebagai interpreter.
Baik
melalui proses kompilasi ataupun interpretatif, eksekusi program dapat
dilakukan dalam sebuah proses batch tanpa
membutuhkan interaksi dengan manusia, namun program interpretatif memungkinkan
pengguna untuk menulis perintah dalam suatu sesi interaktif. Pada kasus ini
sebuah program dieksekusi sebagai sebuah perintah, yang kemudian dieksekusi
baik secara serial ataupun paralel. Bahasa pemrograman yang menyediakan fitur
interaktif seperti ini dinamakan sebagai bahasa skrip.
Kompiler digunakan
untuk menerjemahkan kode sumber dari suatu bahasa pemrograman menjadi kode objek ataupun kode mesin.
Kode objek biasanya membutuhkan proses lebih lanjut sehingga dapat menjadi kode
mesin, dan kode mesin merupakan instruksi-instruksi yang dikenali dan dapat
secara langsung dieksekusi oleh prosesor. Program komputer yang telah
terkompilasi biasanya disebut sebagai berkas eksekutabel, ataupun berkas biner;
yang merujuk pada bentuk sistem biner yang digunakan untuk menyimpan kode mesin
tersebut.
Program
komputer yang diinterpretasikan -baik secara batch ataupun dalam modus interaktif- biasanya akan
diterjemahkan terlebih dulu ke dalam sejumlah token baru kemudian dieksekusi,
atau bisa juga token-token tersebut dioptimasi lebih lanjut sehingga menjadi
sejumlah instruksi yang memiliki tingkat efisiensi yang lebih baik dan disimpan
sebagai berkas P-Code terpisah untuk dieksekusi kemudian oleh interpreter. BASIC, Perl, dan Python merupakan beberapa contoh dari bahasa pemrograman yang
menyediakan fasilitas penerjemahaan langsung. Alternatif lainnya, program
komputer yang ditulis dalam bahasa pemrograman Java merupakan hasil kompilasi kode sumber ke dalam bytcode yang kemudian dieksekusi oleh interpreter yang disebut
sebagai mesin virtual java.
Kerugian
utama pemanfaatan interpreter adalah unjuk kerja program biasanya lebih lambat
dibandingkan dengan program yang dikompilasi terlebih dulu. Namun keuntungannya
proses pengembangan perangkat lunak biasanya bisa dilakukan lebih cepat karena
proses pengetesan atas berjalannya program dapat dilakukan dalam waktu yang relatif
singkat. Tanpa memerlukan tahapan-tahapan kompilasi sebelumnya. Kerugian
lainnya adalah, untuk dapat menjalankan program tersebut, utilitas interpreter
harus disertakan dalam setiap pendistribusian, berbeda halnya dengan program
terkompilasi yang dapat didistribusikan tanpa menyertakan kompiler bahasa yang
digunakan karena sifatnya yang sudah dalam bentuk kode mesin.
Umumnya
saat ini bahasa-bahasa pemrograman interpretatif telah dilengkapi pula dengan
kompiler JIT (Just in Time)
yang akan menganalisis serta menerjemahkan instruksi-instruksi yang paling
sering digunakan ke dalam bahasa mesin pada saat program dijalankan sehingga
tingkat unjuk kerjanya dapat ditingkatkan mengimbangi unjuk kerja program yang
terkompilasi.
Sebuah
program komputer biasanya akan disimpan terlebih dahulu dalam memori utama (RAM) komputer sebelum dijalankan yang biasanya dilakukan oleh sistem operasi. Prosesor kemudian akan mengeksekusi program tersebut,
instruksi demi instruksi sampai program tersebut diterminasi. Sebuah program
yang tengah dieksekusi oleh prosesor dinamakan sebagai proses Terminasi ataupun penghentian eksekusi sebuah program
biasanya terjadi baik karena permintaan dari pengguna, interupsi pengguna,
kesalahan atas program itu sendiri, ataupun kesalahan atas perangkat keras yang
digunakan.
Beberapa
program komputer tertentu dipancangkan langsung pada perangkat kerasnya sebagai
program yang dipanggil untuk kebutuhan identifikasi serta inisialisasi atas
berbagai aspek untuk memastikan perangkat keras tersebut berfungsi. Saat
proses inisialisasi tersebut, program terpancang tersebut akan dipanggil oleh
sistem operasi, program terpancang tersebut kemudian akan menjembatani
penggunaan perangkat keras tersebut sehingga sistem operasi dapat
menggunakannya dengan baik. pengalih untuk input manual pada sebuah komputer
Data General Nova 3
Program
komputer awalnya diinput secara manual ke prosesor utama
dengan memanfaatkan sejumlah pengalih sebagai representasi atas instruksi yang
atas status konfigurasi on/off. Setelah menetapkan konfigurasi tersebut, tombol
eksekusi akan ditekan. Proses ini kemudian dilakukan secara iteratif. Program
komputer dalam sejarahnya pernah juga ditulis melalui paper tape' atau punched cards. Setelah dimasukkan dan alamat awal
eksekusi telah dimasukkan, tombol eksekusi akan ditekan.
Pemrograman
generatif merupakan sebuah tipikial dari
pemrograman komputer yang akan membuat kode sumber melalui kelas-kelas generik,
prototipe, aspek, templat, dan pembuat kode (code generator) untuk meningkatkan produktifitas programmer.
Kode sumber yang dibuat oleh utilitas pemrograman tersebut misalnya pemroses
templat pada sebuah IDE. Bentuk yang paling sederhana adalah pemroses makro yang
terdapat pada bahasa pemrograman C.
Umumnya sistem operasi yang ada saat ini sudah mendukung pemanfaatan multitasking yang
memungkinkan beberapa program komputer dijalankan pada saat yang bersamaan di
sebuah komputer. Untuk dapat menjalankan beberapa program tersebut pada saat
yang bersamaan, sistem operasi memanfaatkan mekanisme penjadualan proses yang
merupakan suatu mekanisme yang akan mengatur pengalihan prosesor dalam
melakukan pemrosesan sehingga beberapa program komputer tersebut dapat
berinteraksi dengan pengguna saat dijalankan. Di sisi perangkat keras yang
digunakan, prosesor modern saat ini umumnya telah mendukung beberapa core
prosesor yang dipancangkan sebagai sebuah prosesor yang memungkinkannya
menjalankan beberapa program sekaligus
Sebuah
program komputer dapat melakukan kalkulasi secara simultan pada beberapa jenis
operasi di saat yang bersamaan dengan memanfaatkan thread atau sebagai proses terpisah. Umumnya prosesor yang
ada saat ini sudah mendukung arsitektur multithreading yang teroptimasi untuk menjalankan beberapa
thread secara efisien.
Sumber :
·
Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1,
3rd Edition. Boston: Addison-Wesley.
Tidak ada komentar:
Posting Komentar