Saat ini tentu kita sudah tidak asing lagi dengan alat elektronik komputer
ataupun laptop kan ya? Setiap hari mungkin kita sering mengoperasikan
alat ini. Hanya pernahkan kita berfikir bagaimana sih alat ini bekerja?
Komputer atau laptop itu perangkat listrik kan ya? Yang namanya listrik, itu
hanya ada 2 (dua) kemungkinan yaitu hidup atau mati. Hidup itu berarti ada
arus listrk yang mengalir, sebaliknya kalau mati berarti tidak ada arus
yang mengalir. Perumpamaannya seperti saklar lampu itu, kalau
saklarnya disambungkan berarti ada arus listrik dan lampu menyala.
Sebaliknya kalau saklar diputus, berarti arus listrik putus, dan lampu mati.
Komputer, secara garis besar cara kerjanya juga begitu. Mirip seperti
saklar lampu gitu sih, jadi ada rangkaian elektronik yang diatur posisi
hidup/matinya listrik atau bahasa Inggrisnya On/Off. Dimana agar mudah
ditulis, listrik tersambung (On) itu dilambangkan dengan angka 1, dan
listrik diputus (Off) itu dilambangkan dengan angka 0. Makanya dalam
dunia komputer, akhirnya kita mengenal angka biner yaitu angka 0 dan 1
itu tadi. Dimana angka biner 0 itu artinya sirkuit saklar OFF atau arus
listrik diputus, kalau 1 berarti ON atau arus listrik disambung.
Kembali ke pertanyaan awal, kok bisa ketika kita ketik huruf "A", lalu di
monitor muncul huruf "A" juga? Sebenarnya komputer tidak pernah
menuliskan huruf, angka atau gambar ke monitor. Atau bahkan ke media
penyimpanan data (hard disk, flask disk, compact disk dsb), komputer
itu tidak menyimpan karakter sebagai karakter. Juga tidak ada huruf,
gambar dan angka di hard disk komputer kita. Namun yang ada adalah
setiap karakter itu dikodekan sebagai rangkaian bit biner 0 dan 1. Misalkan
huruf "A" itu dikodekan menjadi "01000001". Tapi bagaimana komputer
bisa mengetahui bahwa 01000001 berarti huruf “A”?
Kalau kita melihat daftar ASCII, maka kita biasanya menemui ada juga
angka desimalnya. Apa fungsi angka desimal itu? kita sebagai manusia
sudah terbiasa dengan angka desimal yaitu angka 0 - 9. Makanya
serangkaian angka-angka biner tadi kita konversikan ke angka desimal
agar lebih mudah dihafalkan. Contoh kode biner 01000001 kalau
didesimalkan akan menjadi angka 65. Cara gampang untuk
mengkonversikannya adalah seperti ini 0+26+0+0+0+0+0+20 =
0+64+0+0+0+0+0+1 = 65. Berarti kode biner 01000010 desimalnya
adalah 66. Kode biner 01000011 desimalnya adalah 67 dan
seterusnya, sampai kode 01011010 desimalnya adalah 90. Berarti
kalau kita punya kode ASCII desimal 65, maka itu adalah kode untuk huruf
A kapital. Desimal 66 adalah kode B, desimal 67 adalah C dan seterusnya
sampai desimal 90 adalah kode Z. Huruf a kecil sampai z kecil kode
ASCII-nya adalah 97 - 122, atau bit binernya adalah 01100001 sampai
01111010. Biar mudah dipahami, ilustrasi konversi dari biner ke
desimal ini bisa dilihat pada gambar berikut.
Serangkaian kode bit biner itulah yang diproses oleh komputer. Jadi
kalau ada huruf "A" yang diketik di keyboard, kemudian di monitor
muncul huruf "A" juga, maka sebenarnya ada kode arus listrik 01000001
yang dikirimkan dari keyboard menuju ke monitor. Namun proses
sebenarnya masih melibatkan beberapa jenis device (peralatan) ya, jadi
tidak cukup hanya keyboard dan monitor saja. Masih ada motherboard,
processor, Random
Access Memory (RAM), Basic Input Output System (BIOS), Hard disk dan
lain sebagainya. Bahkan saat ini komputer atau laptop kita sudah
dilengkapi dengan device untuk menghubungkan ke jaringan baik itu
kabel ataupun wireless fidelity (Wify).
Sumber : ENIAC:https://www.computerhistory.org
Oke, kita kembali ke bagaimana kode ASCII itu dikirimkan dari keyboard
ke sampai pada akhirnya muncul di monitor ya? Untuk itu kita perlu
mengenal beberapa komponen yang ada di komputer, sekaligus kita
perlu mengenal bagaimana komponen itu bekerja. Agar lebih mudah
dipahami ini saya sertakan gambar beberapa device yang ada di
komputer.
Ketika huruf "A" diketikkan dari keyboard, maka arus listrik dialirkan ke
keyboard controller. Di keyboard controller inilah proses pengkodean dari A
ke 01000001 itu terjadi. Selanjutnya karena ada data di keyboard controller,
maka interrupt controller akan bekerja untuk memberitahu kepada
processor. Setelah itu, processor akan mengambil data dari keyboard
controller tadi, untuk selanjutnya disimpan sementara di Random Access
Memory (RAM). Nah serangkaian perpindahan arus listrik dari keyboard,
keyboard controller, processor sampai RAM inilah yang disebut input atau
masukan. Sampai disini huruf A tadi belum muncul di monitor lho ya? kode
huruf A tadi masih tersimpan di RAM. Ini masih input saja.
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
software itu tadi, dibangun menggunakan instruksi-instruksi tertentu, yang
dinamakan programming language (bahasa pemrograman). Dimana
orang yang sering membuat software atau perangkat lunak, biasanya
dinamakan programmer.
Sumber : ENIAC:https://www.computerhistory.org
Bagaimana dengan device-nya itu sendiri? Tentu bagaiamana membuat
device (peralatan) komputer butuh disiplin ilmu tersendiri. Makanya khusus
untuk mempelajarai serta memproduksi komponen-komponen komputer
akan banyak ditangani pada disiplin ilmu Electric and Electronic
Engineer, atau kalau di Indonesia adalah Teknik Elektronika. Dimana
pada jurusan Teknik Elektronika ini, akan banyak mempelajari dan
memproduksi hardware (perangkat keras). Device Processor, RAM,
Keyboard, Hard disk dan sebagainya, adalah produk-produk dari teknik
elektronika. Sedangkan sistem operasi, program pengolah kata, pengolah
gambar, pengolah video dan sebagainya, adalah produk-produk software
(perangkat lunak) dari ilmu komputer atau informatika.
B. BAHASA PEMROGRAMAN
Instruksi Ke Mesin
Khusus untuk register, 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 lainnya, nanti kita akan banyak
mengoperasikan Extended Base Extension (EBX), register EDX dan ECX.
Jaman komputer masih bekerja dengan 8 bit, dulu regiter masih A, B, C dan
D saja. Namun seiring perkembangan jaman, processor komputer sudah
ditingkatkan menjadi 16 bit. Makanya register processornya akhirnya
harus diperluas. Nah perluasan itu kan bahasa inggrisnya Extend kan ya?
Makanya di komputer 16 bit kita mengenal istilah register AX
(Acumulator Extended), BX (Base Extended), CX (Counter Extended) dan
DX (Data Exetended).
Lalu ketika processor komputer saat ini sudah bekerja di 32 bit dan bahkan
64 bit, maka register-nya ditambahi lagi. Tambahan itu kan bahasa
Inggrisnya Exetension atau disingkat X. Makanya registernya jadi EAX,
EBX, ECX dan EDX. Kepanjangannya Extension Acumulator Exetended
dst.
Agar mudah dipahami, maka ketiga langkah itu secara detail terlihat seperti
pada gambar berikut ini.
Skema detail pemrogramannya adalah seperti ini :
Masih sulit membayangkan? oke ini saya kasih analogi sederhana, saya
umpamakan serangkaian instruksi tadi seakan-akan seperti mengalirkan
air dari tandon ke bak kamar mandi.
Jadi dari gambar diatas, bisa anda bayangkan RAM itu seakan-akan
tandon air yang ada diatas genteng, sedangkan VGA card dibayangkan
sebagai bak
kamar mandinya. Diantara tandon dan bak kamar mandi ada pipa
(dibayangkan register ECX dan EBX), ada bak kontrol dimana bak ini
berfungsi penampung air sementara sebelum mengalir ke kamar mandi.
Bak kontrol ini dibayangkan seperti register EDX. Dan ada kran yang
dibayangkan EAX. Sampai disini sudah bisa membayangkan to?
Atau ke-9 langkah algoritma tadi, bisa kita tuliskan dalam bentuk tiruan
kode (pseudo code) seperti ini :
Sampai disini kan baru proses OUTPUT ya. Bagaimana dengan INPUT?
Jadi misalkan kita mengentikkan sesuai dari keyboard? Analoginya
seperti gambar ini.
O iya yang menarik diisini, antara input dengan output itu register yang
digunakan hanya 1 (satu) ya. Jadi register EAX, EBX, ECX dan EDX tadi ya
cuman satu saja, tapi gimana caranya hanya dengan satu register, tapi bisa
digunakan untuk INPUT sekaligus OUTPUT. Berarti register tadi kita
operasikan secara bergantian.
Jadi kalau dianalogikan dengan aliran air tadi, gimana caranya air dari
sumber air sampai ke kamar mandi itu hanya menggunakan 2 pipa, 1
kran, 1 bak kontrol dan 1 tandon. Brarti kan tinggal digunakan gantian
saja to?
Kalau INPUT sekaligus OUTPUT bagaimana? Ini analoginya.
1. DATA :
2. pesan <-- 'Hello World!'
3. START :
4. Print (pesan)
5. STOP
Atau bisa juga kita singkat menjadi 1 baris program seperti berikut ini:
Dimana, hasil dari 1 baris program tadi terlihat seperti gambar berikut
ini. Gimana sobat kompasiana? bahasa tingkat tinggei berbeda jauh
dengan assembler kan? Kalau di assembler kita membutuhkan 13 baris
instruksi, kalau di Python kita hanya membutuhkan 1 baris saja, untuk
menampilkan hasil yang sama di monitor.
Oke, sampai kita bisa menampilkan kalimat "Hello World!" tadi, kita
masih bermain output saja ya. Coba sekarang kita bikin bahasa
pemrograman untuk menangani input dari keyboard, dilanjutkan proses
aritmatika dan sekaligus menampilkan (output) ke monitor. Targetnya
adalah kita bisa mengisikan dua buah angka, lalu dari dua angka itu
dilakukan proses perkalian. Dan hasil perkaliannya akhirnya bisa
ditampilkan ke monitor.
1.DATA:
2. angka : angka bulat (integer)
3. mod_dua : angka bulat (integer)
4.START:
5. print ('Isikan angka bulat :')
6. angka <-- input integer
7. mod_dua <-- angka modulus 2
8. JIKA mod_dua SAMA DENGAN 0
9. print('Ini angka GENAP')
10. LAINNYA
11. print('Ini angka GANJIL')
Contoh misalkan kita membuat jadwal aktifitas sehari-hari ya. Kalau dengan
perulangan FOR diatas kan proses perulangan sudah jelas dimulai dari 0
dan berakhir ketika jam sampai diangka 24 to? Jika kita ulangi aktifitas itu
keesokan harinya sampai waktu yang tidak terbatas bagaimana? Misal
perulangan tadi tidak akan berhenti ketika status kelanjutannya kita isi
'Y'. kecuali kelanjutan aktifitas ini kita isi selain 'Y', maka proses
perulangan akan berhenti. Nah untuk memahami bagaimana itu WHILE,
sobat pembaca yang budiman bisa melihat contoh program dan hasil
eksekusi seperti gambar berikut ini.