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 padaprosesor. 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.
Pemrograman Komputer
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 programmerkomputer 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
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 Interpretasi
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 sebagaimesin 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.
Eksekusi Dan Penyimpanan
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.
Program terpancang
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.
Pemrograman manual
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.
Pembuatan program otomatis
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.
Eksekusi Simultan
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.[10] 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.[11]
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.
No comments:
Post a Comment
Terimakasih Sudah berkunjung di blog ecek-ecek ini, semoga artikel yang ada di blog ini dapat membantu anda. Silahkan tinggalkan pesan yang tidak mengandung Spam!!!