Program Komputer, Pemrograman Komputer Dan Compiler

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 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  (Software engineering) seringkali digunakan karena proses penulisan program tersebut dipandang sebagai suatu disiplin ilmu perekayasaan.

Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain.

Terlepas dari pengertiannya yang demikian relatif luas, istilah kompilator biasa digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual C#, Java, xBase, atau COBOL) menjadi bahasa mesin, biasanya dengan bahasa Assembly sebagai perantara.

Arsitektur kompilator modern biasanya bukan lagi merupakan program tunggal namun merupakan rangkaian komunikasi antar program dengan tugas spesifik masing-masing. Program-program tersebut beserta tugasnya secara umum terdiri dari:

  • Kompilator itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah (assembly)
  • Assembler, yang menerima keluaran kompilator dan menghasilkan berkas objek dalam bahasa mesin
  • Linker, yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (executable)

Kompilator yang menggunakan arsitektur ini misalnya GCC, Clang dan FreeBASIC.

Beberapa kompilator tidak menggunakan arsitektur di atas secara gamblang, dikarenakan komunikasi antar program jauh lebih lambat dibandingkan jika komunikasi dilakukan secara internal di dalam satu program. Sehingga kompilator-kompilator tersebut mengintegrasikan assembler dan linker di dalam kompilator. Namun demikian, biasanya arsitektur yang digunakan pun tidak kaku dan mengizinkan penggunaan assembler maupun linker eksternal (berguna jika assembler dan linker internal bermasalah atau memiliki galat). Kompilator yang menggunakan arsitektur ini salah satunya adalah Free Pascal.

Profesor Niklaus Wirth dalam bukunya Compiler Construction [1] menyatakan bahwa penggunaan assembler sebagai bahasa perantara seringkali tidak memberikan keuntungan yang signifikan, sehingga beliau menyarankan agar kompilator langsung menghasilkan bahasa mesin. Kompilator dengan arsitektur seperti ini dapat berjalan dengan sangat cepat, seperti yang ditunjukkan pada kompilator orisinil Pascal, Modula-2 dan Oberon yang dibuat oleh sang profesor.

Kompilator melakukan proses kompilasi dengan cara menganalisis kode sumber secara keseluruhan, sehingga waktu yang dibutuhkan untuk melakukan kompilasi lebih lama, namun hasilnya lebih cepat dalam proses eksekusi daripada program yang dibuat dengan menggunakan teknik interpretasi dengan interpreter.

Leave a comment