Serba Serbi Komputer dan Bahasa Pemrograman
Computer berasal dari bahasa dasarnya "Compute" yang berarti perhitungan, memang komputer yang ada saat ini merupakan pengembangan dari sistem komputasi/perhitungan. Komputer sendiri merupakan serangkaian komponen elektronika yang kita ketahui elektronika berhubungan erat dengan listrik. Ya, didalam komputer terdapat banyak komponen elektronika yang saling bekerja sama dalam mengolah arus listrik, contoh saja ada CPU, GPU, RAM, BUS, dan sebagainya.
Perkembangan komputer tidak lepas dari perkembangan elektronika, zaman awal komputer dibuat dengan menggunakan tabung.
Gambar tabung transistor awal:
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQgaviGBKM9s_OZk_zmhyyTksRIV4C9mMzctm9RRuS5xuhhU8AbMS-UhOoVJ9ys8Nx8PjQ&usqp=CAU
Komputer bisa menghitung dengan komponen utamanya yakni CPU (Central Processing Unit), yang didesain memiliki alur ALU (Aritmathic unit logic) suatu sistem yang mengendalikan arus listrik untuk menjalankan logika, semacam kecerdasan buatan dasar yang dibuat manusia untuk melakukan suatu proses logika, seperti manusia mendesain Rube Goldberg machine. Secara sederhana ALU akan memproses aliran listrik yang ada untuk dapat diproses menjadi komputasi.
Nah karena komponen komputer merupakan alat elektronika yang mana elektronika berkaitan dengan listrik, kenapa kita bisa memerintahkan komputer untuk melakukan suatu instruksi? seperti menampilkan gambar, memproses input dan sebagainya?.
Saya belum tahu pasti kisah awal manusia berinteraksi dengan komputer yang menggunakan bahasa komputer awal 1 dan 0, tetapi konsep dasar yang kita pegang sampai saat ini adalah translator. Artinya bahasa pemrograman yang ada sekarang seperti Java, C++, C, PHP dan sebagainya tidak benar benar diketahui oleh komputer, tetapi ada penerjemahnya. Silahkan kalian cari komputer ENIAC, semoga saja menemukan bagaimana mereka berkomunikasi.
Bahasa pemrograman yang kita gunakan sekarang umumnya adalah bahasa tingkat tinggi, karena sudah mudah dipahami manusia atau sudah menggunakan bahasa yang bisa dipahami manusia. Berbeda dengan bahasa tingkat rendah seperti C atau Assembly, bahasa tingkat tinggi relatif lebih lambat. Biasanya bahasa tingkat rendah dapat mengakses komponen komputer lebih dekat ketimbang bahasa pemrograman tingkat tinggi, seperti c dan c++ yang memiliki fitur manajemen memori. Sedangkan bahasa pemrograman tingkat tinggi umumnya sudah memiliki fitur manajemen dari compiler atau intepreternya.
Instruksi bahasa pemrograman yang kalian buat akan diterjemahkan atau bahkan akan langsung dibuatkan native app (instruksi program dekat dengan OS), nah proses menterjemahkan memerlukan waktu yang cukup ketimbang menjalankan native app, tetapi native app itu bergantung pada OS. Semisalnya kalian membuat kode program A dan dibuat native appnya di OS AB maka native app tersebut tidak bisa dibaca atau error ketika dijalankan di OS CB. Sebetulnya tidak semua bahasa pemrograman seperti itu, ada yang membuat solusi dengan menggunakan virtualisasi, dimana virtualisasi ini yang akan berbicara dengan OS jadi, kode program kalian dapat dijalankan dimana saja asal virtualisasi ini ada di OS tersebut, contohnya JVM pada lingkungan java.
Maksudnya ketika kalian menggunakan bahasa A maka kalian buat native app di OS AB, untuk menjalankan di OS BC maka kalian harus bawa kode program kalian ke OS BC beserta penerjemahnya, dan melakukan proses build native kembali di OS BC dan terkadang ada beberapa fitur yang berbeda di masing masing OS. Tetapi dengan lingkungan virtual, kalian akan membawa komponen virtualisasi beserta aplikasi seperti jar ke OS BC dan jalankan.
Maka dari itu kita mendengar bahasa pemrograman cross platform, dan jika kalian suka mendownload aplikasi desktop pasti sering diminta memilih antara download aplikasi untuk OS A,B atau C.