Tentu serangkaian input, proses dan output tadi tidak bisa berjalan dengan sendirinya. Komputer itu harus diatur kapan dan bagaimana processor-nya bekerja, serta kapan interrupt controller-nya bekerja. Untuk itu dibutuhkan serangkaian instruksi atau serangkaian pengaturan yang harus kita lakukan. Serangkaian instruksi atau pengaturan itulah yang akhirnya diistilahkan bahasa pemrograman (programming language). Seiring perkembangan jaman, bahasa pemrograman ini juga semakin kompleks, karena kebutuhan input, procces dan output juga semakin kompleks. Pada akhirnya untuk mendalami bahasa pemrograman ini, butuh disiplin ilmu tersendiri yaitu ilmu Computer Science kalau di Amerika dan Informatics kalau di Eropa. Maka setelah disiplin ilmu ini sampai ke Indonesia, maka muncullah pendidikan-pendidikan dengan jurusan Ilmu Komputer atau Informatika. Untuk selanjutnya produk dari disiplin ilmu komputer atau informatika ini, akan menghasilkan produk-produk yang terkait instruksi ke komputer atau yang lebih dikenal dengan istilah software (perangkat lunak). Dimana orang yang sering membuat software atau perangkat lunak, biasanya dinamakan programmer.
Istilah programmer ini sudah muncul sejak komputer generasi pertama ENIAC dioperasikan. Terdapat sekelompok perempuan yang secara khusus mendapat mandat sebagai programer untuk memprogram banyaknya komponen dalam ENIAC yang mencapai ribuan kabel dan sakelar. Mereka di antaranya adalah Kathleen Antonelli, Jean Bartik, Betty Holberton, Frances Spence, Ruth Teitelbaum, dan Marlyn Meltzer.
BAHASA PEMROGRAMAN
Baik, sekarang kita fokus ke bahasa pemrograman ya?
Coba sekarang kita membuat program sederhana untuk menampilkan atau output tulisan Hello World! ke monitor. Jadi untuk study kasus ini, kita langsung membidik output tanpa melalui instruksi input dan instruksi process dulu ya? Untuk keperluan menampilkan tulisan "Hello World!", yang harus kita lakukan ada 3 hal yaitu :
- Memesan tempat (alamat memory) di RAM untu menyimpan data tulisan "Hello World!". Untuk selanjutnya, tempat penyimpanan data di RAM tadi dinamakan variable.
- Melakukan pengaturan di processor, dimana untuk mengatur processor ini, kita hanya perlu mengoperasikan register Accumulator (A), Base (B), Data (D) dan Counter (C). Dikarenakan saat ini kita sudah banyak menggunakan processor 32 bit atau bahkan 64 bit, maka standar register-nya sudah memakai Extended (tambahan). Contohnya Extended Accumulator Extension atau disingkat EAX. Untuk Register Base, Counter dan Data, maka nanti kita akan banyak mengoperasikan Extended Base Extension (EBX), register EDX dan ECX.
- Memanggil interrupt controller.
Agar mudah dipahami, maka ketiga langkah itu secara detail terlihat seperti pada gambar berikut ini.
Untuk menjabarkan gambaran alur tadi, kita bisa menuliskannya dalam bentuk algoritma. Contohnya algoritmanya adalah seperti ini:
- Definisikan variabel di RAM yang diisi kata “Hello World!”, dimana panjang hurufnya adalah 12 karakter ditambah 1 karakter akhir kata (line feed). jadi total huruf di variable itu adalah 13 karakter (13 byte)
- Pindahkan data alamat variable dari RAM ke register ECX
- Pindahkan data sebanyak 13 karakter (13 byte) ke register EDX
- Pindahkan kode operasi (operation code/opcode) 4 ke register EAX. Dimana opcode 4 ini adalah konstanta standar yg menandakan perintah bagi sistem untuk menulis (sys_write)
- pindahkan kode operasi/opcode 1 ke register EBX. dimana opcode 1 ini adalah konstanta standar untuk pemanggilan sistem (syscall) untuk menampilkan ke layar monitor (stdout)
- Eksekusi system call interupsi (interrupt) 80h ke Kernel, agar kernel bisa meneruskan ke perangkat keras (hardware). 80h ini adalah konstanta standar
- Pindahkan opcode 1 ke register EAX, untuk memerintahkan system agar keluar dari serangkaian prosesnya (sys_exit)
- Pindahkan opcode 0 ke register EBX, untuk mengirimkan pesan tidak ada error (no-error).
- Panggil interrupt 80h agar program dijalankan oleh hardware melalui kernel