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 sebagai multitasking. Program komputer dapat dikategorikan menurut
fungsinya; perangkat lunak sistem atau perangkat lunak
aplikasi.
Pemrograman Komputer
#include <stdio.h>
int main()
{
int main()
{
printf("Hello world!\n");
return 0;
return 0;
}
Kode sumber sebuah program yang
ditulis dengan bahasa pemrograman C
Pemrograman
komputer merupakan suatu proses iteratif penulisan dan penyuntingan 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 sebagai programmer 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.
Paradigma
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.
Kompilasi atau Interprestasi
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.
0 komentar:
Posting Komentar