DEV Community

loading...

The programming languages

rehre profile image Akmal Maulana Azzam ・4 min read

Hello kawan - kawan hehe di artikel saya yang pertama ini, saya ingin sharing sedikit soal bagaimana perjalanan bahasa pemrograman dimengerti oleh komputer kita, oke langsung aja kalo gitu.

DISCLAIMER: disini saya hanya memberitahu High Level Abstraction dari prosesnya, semua ilmu yang saya share disini juga berasal dari The Basics You Won't Learn in the Basics. kalian bisa kok langsung cek artikel-artikelnya disitu.

The Programming Languages

Oke mungkin beberapa dari kalian sudah pernah denger nih yang namanya High Level Languages dan Low Level Languages, sebenernya dari dua itu masih ada dua tipe lagi yang mesti kalian tau yaitu Assembly dan Machine Language.

Machine Language

Oke simpelnya machine language ini adalah instruksi - instruksi yang dapat dimengerti oleh processor kalian seperti ADD, SUBTRACT, MULTIPLY, STORE dan masih banyak lagi hanya saja dalam bentuk bit (contoh ada di bawah).

Ini adalah dasar dari dasar bahasa pemrograman yang bisa dimengerti komputer, gak peduli tuh kalian mau buat program dengan Java atau C# semuanya pasti akan turun ke machine language ini.

Instruksi - instruksi ini langsung ditanam di sirkuit yang ada di processor kalian, dan biasanya di panggil dengan nama Instruction Set Architecture(ISA)

Ada banyak macam-macam ISA yang digunakan processor-processor salah satunya ialah x86

Kalian bisa mengakses instruksi - instruksi ini dengan menginputkan bit ke processor tersebut, contohnya jika kita memberikan 1100 ke processor maka processor akan membaca itu sebagai instruksi ADD dan akan memulai proses addition/pertambahan (ini bukan real example ya cuman ingin memberitau ke kalian gimana cara kerjanya)

Untuk lebih detailnya lagi mungkin kalian bisa lihat video ini nih

Assembly

Selanjutnya ada yang namanya Assembly. Nah assembly ini mungkin bisa dibilang sebagai versi textnya atau versi bahasa manusianya machine language, seperti halnya buku telepon yang menunjukan nomor telepon dan nama pemilik nomor teleponnya. (contoh: ADD = 1100)

Bahasa assembly juga ada banyak, contohnya seperti x86 Assembly

Assembly ini nanti akan di terjemahkan ke machine language oleh suatu tools bernama Assembler. Fun fact: sebenernya di tahun-tahun awal perkembangan komputer, assembler ini merupakan operator manusia yang bertugas untuk menterjemahkan bahasa-bahasa manusia machine language ke machine language nya. (sumber dari: The Basics You Won't Learn in the Basics)

Untuk lebih detailnya kalian bisa lihat video ini

Low Level Languages

Jika kalian melihat video soal assembly diatas kalian pasti akan berpikir kalau Assembly itu masih sangat sulit dimengerti dan dimanage oleh manusia, nah inilah alasan kenapa low level languages seperti C dan lainnya dibuat.

Dengan ini manusia bisa menggunakan banyak fitur seperti variabel, control flow seperti if-else, looping, fungsi dll. ditambah dengan betapa lebih mudah nya dibaca dibandingkan assembly diharapkan jika menggunakan ini, pengembangan aplikasi bisa semakin cepat.

Tetapi meskipun sudah semakin mudah dibaca, bahasa low level ini masih memerlukan manusia untuk menghandle hardware secara manual, contohnya jika kalian membuat variabel kalian harus juga menghapus variabel itu jika tidak digunakan lagi, hal macam inilah yang High Level Languange perbaiki.

Dan biasanya bahasa pemrograman low level ini akan langsung di compile ke Assembly sebelum digunakan agar komputer kita dapat mengerti intruksi yang ada di programnya.

High Level Languages

Disini, kita hampir tidak sama sekali bersentuhan dengan internal hardware process seperti menghapus variabel yang tidak digunakan sama sekali dll, itu semua sudah di handle oleh bahasa pemrograman secara otomatis. jadi manusia bisa selalu fokus ke real problem yang ingin di selesaikan.

Dan seharusnya juga bahasa pemrograman high level ini jauh lebih simpel daripada low level.

Contoh bahasa pemrogramannya adalah Java, C#, JavaScript, Python dll. Kalian bisa membuat berbagai macam hal dengan ini mulai dari mobile application hingga video game atau bahkan AI.

Biasanya bahasa high level ini dijalankan menggunakan yang namanya virtual machine, atau bisa dibilang mesin buatan yang berjalan diatas low level languages seperti C atau C++, jadi mungkin bisa dibilang kalau program yang dibuat menggunakan high level language merupakan program yang berjalan diatas program.

Jadi sebelum di jalankan programnya harus di compile dulu ke bahasa yang bisa dimengerti virtual machine tersebut. contohnya program Java yang harus di compile ke Java ByteCode yang merupakan bahasa yang bisa dimengerti Java Virtual Machine atau C# yang mesti dicompile ke Intermediate Language(IL) sebelum dijalankan ke CLR(Common Language Runtime)nya dll.

Selain itu ada juga yang namanya Interpreted Languages, yaitu bahasa yang tidak memerlukan proses compile dan langsung dijalankan di virtual machinenya. contohnya Python, Javascript dll

Conclusion

Dari poin diatas kita bisa melihat bagaimana bahasa pemrograman yang kompleks di translate ke bahasa pemrograman yang lebih mudah dimengerti oleh manusia, kita bisa melihat betapa sulitnya jika kita membuat program menggunakan sesuatu seperti assembly dan betapa mudahnya kita membuat program menggunakan high level language.

Sebenarnya dari berbagai macam bahasa pemrograman yang ada, semuanya hanya akan dibaca oleh komputer dalam bentuk machine language, karena hanya machine language lah yang bisa di mengerti oleh komputer kalian.

Discussion (0)

pic
Editor guide