Program komputer
![](https://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Object-Oriented-Programming-Methods-And-Classes-with-Inheritance.png/220px-Object-Oriented-Programming-Methods-And-Classes-with-Inheritance.png)
Program komputer[a]atautata olah[1]adalah serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik padakomputer.[2]Komputer pada dasarnya membutuhkan keberadaan program agar bisa menjalankan fungsinya sebagai komputer, biasanya hal ini dilakukan dengan cara mengeksekusi serangkaian instruksi program tersebut padaprosesor.[3]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 sebagaikode sumber,bentuk program yang memungkinkanpenata olahmenganalisis serta melakukan penelaahan algoritme yang digunakan pada program tersebut. Kode sumber tersebut pada akhirnyadikompilasioleh utilitas bahasa pemrograman tertentu sehingga membentuk sebuah program. bentuk alternatif lain model pengeksekusian sebuah program adalah dengan menggunakan bantuanpenerjemah,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 sistematauperangkat lunak aplikasi.
Pemrograman komputer
[sunting|sunting sumber]#include <stdio.h>
int main()
{
printf( "Hello world!\n" );
return 0;
}
Kode sumber sebuah program yang ditulis dengan bahasa pemrogramanC
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 algoritme, 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 sebagaiprogrammerkomputer atau programmer, pengembang perangkat lunak, atau koder. Istilahrekayasa perangkat lunak(bahasa Inggris:Software engineering) sering kali digunakan karena proses penulisan program tersebut dipandang sebagai suatu disiplin ilmu perekayasaan.
Paradigma
[sunting|sunting sumber]Program komputer dapat dikategorikan menurut paradigma bahasa pemrograman yang digunakannya. Dua paradigma utama yang umum digunakan adalahimperatifdandeklaratif.
Program yang ditulis dalam bahasa pemrograman imperatif biasanya memiliki algoritme yang ditulis dalam serangkaian klausal pendeklarasian, ekspresi aritmatis, dan sejumlah perintah.[4]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 nilai4
.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 di luar cakupan dari fungsi tersebut atau lebih dikenal sebagainon-local variable.[5]
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 adalahbahasa pemrograman fungsionaldanbahasa 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.[5]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.[6]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
[sunting|sunting sumber]Program komputer dalam bentuk yang dapat dibaca oleh manusia biasanya disebuat sebagaikode 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 sebagaikompiler.Pada beberapa bahasa pemrograman tertentu, kode sumber dapat langsung dieksekusi sebagai sebuah program dengan menggunakan bantuan utilitas yang disebut sebagaiinterpreter.
Baik melalui proses kompilasi ataupun interpretatif, eksekusi program dapat dilakukan dalam sebuah prosesbatchtanpa 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 sebagaibahasa skrip.
Kompiler digunakan untuk menerjemahkan kode sumber dari suatu bahasa pemrograman menjadikode objekataupunkode 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 secarabatchataupun 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 berkasP-Codeterpisah untuk dieksekusi kemudian oleh interpreter.BASIC,Perl,danPythonmerupakan beberapa contoh dari bahasa pemrograman yang menyediakan fasilitas penerjemahaan langsung. Alternatif lainnya, program komputer yang ditulis dalam bahasa pemrogramanJavamerupakan hasil kompilasi kode sumber ke dalambytcodeyang 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 bentukkode 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
[sunting|sunting sumber]Sebuah program komputer biasanya akan disimpan terlebih dahulu dalam memori utama (RAM) komputer sebelum dijalankan yang biasanya dilakukan olehsistem operasi.Prosesor kemudian akan mengeksekusi program tersebut, instruksi demi instruksi sampai program tersebut diterminasi. Sebuah program yang tengah dieksekusi oleh prosesor dinamakan sebagaiproses.[7]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
[sunting|sunting sumber]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.[8]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.[9]
Pemrograman manual
[sunting|sunting sumber]![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Dg-nova3.jpg/230px-Dg-nova3.jpg)
Program komputer awalnya diinput secara manual keprosesorutama 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 melaluipaper tape' ataupunched cards.Setelah dimasukkan dan alamat awal eksekusi telah dimasukkan, tombol eksekusi akan ditekan.[10]
Pembuatan program otomatis
[sunting|sunting sumber]Pemrograman generatifmerupakan sebuah tipikial dari pemrograman komputer yang akan membuat kode sumber melalui kelas-kelas generik, prototipe, aspek, templat, dan pembuat kode (code generator) untuk meningkatkan produktivitas programmer. Kode sumber yang dibuat oleh utilitas pemrograman tersebut misalnya pemroses templat pada sebuahIDE.Bentuk yang paling sederhana adalah pemroses makro yang terdapat padabahasa pemrogramanC.
Eksekusi simultan
[sunting|sunting sumber]Umumnyasistem operasiyang ada saat ini sudah mendukung pemanfaatanmultitaskingyang 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.[11]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.[12]
Sebuah program komputer dapat melakukan kalkulasi secara simultan pada beberapa jenis operasi pada saat yang bersamaan dengan memanfaatkanthreadatau sebagai proses terpisah. Umumnya prosesor yang ada saat ini sudah mendukung arsitekturmultithreadingyang teroptimasi untuk menjalankan beberapa thread secara efisien.
Lihat pula
[sunting|sunting sumber]Pustaka
[sunting|sunting sumber]- Knuth, Donald E. (1997).The Art of Computer Programming, Volume 1, 3rd Edition.Boston: Addison-Wesley.ISBN0-201-89683-4.
- Knuth, Donald E. (1997).The Art of Computer Programming, Volume 2, 3rd Edition.Boston: Addison-Wesley.ISBN0-201-89684-2.
- Knuth, Donald E. (1997).The Art of Computer Programming, Volume 3, 3rd Edition.Boston: Addison-Wesley.ISBN0-201-89685-0.
Referensi
[sunting|sunting sumber]- ^"Hasil Pencarian - KBBI Daring".kbbi.kemdikbud.go.id.Diakses tanggal 1-12-2022.
- ^Stair, Ralph M.; et al. (2003).Principles of Information Systems, Sixth Edition.Thomson Learning, Inc. hlm.132.ISBN0-619-06489-7.
- ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. hlm. 58.ISBN0-201-50480-4.
- ^Wilson, Leslie B. (1993).Comparative Programming Languages, Second Edition.Addison-Wesley. hlm.75.ISBN0-201-56885-3.
- ^abWilson, Leslie B. (1993).Comparative Programming Languages, Second Edition.Addison-Wesley. hlm.213.ISBN0-201-56885-3.
- ^Wilson, Leslie B. (1993).Comparative Programming Languages, Second Edition.Addison-Wesley. hlm.244.ISBN0-201-56885-3.
- ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. hlm. 97.ISBN0-201-50480-4.
- ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. hlm. 30.ISBN0-201-50480-4.
- ^Tanenbaum, Andrew S. (1990).Structured Computer Organization, Third Edition.Prentice Hall. hlm.11.ISBN0-13-854662-2.
- ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. hlm. 6.ISBN0-201-50480-4.
- ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. hlm. 100.ISBN0-201-50480-4.
- ^Akhter, Shameem (2006).Multi-Core Programming.Richard Bowles (Intel Press). hlm.11–13.ISBN0-9764832-4-6.
Catatan kaki
[sunting|sunting sumber]- ^Kataprogram komputersering kali disingkat atau disebut sebagaiprogramsaja.