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 + 2menghasilkan 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.
 






.jpg) 
 
.jpg) 
.jpg) 
 
.jpg) 
.jpg) 
.jpg) 
 
0 komentar:
Posting Komentar