Program komputer

serangkaian instruksi yang ditulis untuk melakukan fungsi spesifik pada komputer

Program komputer atau sering kali disingkat sebagai program adalah serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada komputer.[1] 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.[2] 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 algoritme 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.

blokir ip pc komputer multimedia player 114.124.147.we balik ke androi

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.[3] 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

 
microcontroller di sebelah kanan dari USB flash drive di atas dikontrol melalui sebuah 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.[4] 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.[5]

Pemrograman manual

 
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.[6]

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 produktivitas 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.[7] 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.[8]

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.

Lihat pula

Pustaka

  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1, 3rd Edition. Boston: Addison-Wesley. ISBN 0-201-89683-4. 
  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 2, 3rd Edition. Boston: Addison-Wesley. ISBN 0-201-89684-2. 
  • Knuth, Donald E. (1997). The Art of Computer Programming, Volume 3, 3rd Edition. Boston: Addison-Wesley. ISBN 0-201-89685-0. 

Referensi

  1. ^ Stair, Ralph M.; et al. (2003). Principles of Information Systems, Sixth Edition. Thomson Learning, Inc. hlm. 132. ISBN 0-619-06489-7. 
  2. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 58. ISBN 0-201-50480-4. 
  3. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 97. ISBN 0-201-50480-4. 
  4. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 30. ISBN 0-201-50480-4. 
  5. ^ Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. hlm. 11. ISBN 0-13-854662-2. 
  6. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 6. ISBN 0-201-50480-4. 
  7. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. hlm. 100. ISBN 0-201-50480-4. 
  8. ^ Akhter, Shameem (2006). Multi-Core Programming. Richard Bowles (Intel Press). hlm. 11–13. ISBN 0-9764832-4-6.