Bahasa pemrograman

**Bahasa pemrograman** atau **bahasa penataolahan** () adalah sistem notasi untuk menulis program komputer. Sebagian besar bahasa pemrograman adalah bahasa formal berdasarkan teks, tetapi juga dapat berupa grafis.

Deskripsi bahasa pemrograman dibagi menjadi dua komponen; yaitu sintaksis (bentuk) dan semantik (makna), yang biasanya didefinisikan oleh bahasa formal. Beberapa bahasa ditentukan oleh dokumen spesifikasi (misalnya, bahasa pemrograman C ditentukan oleh Standar ISO) sementara bahasa lain (seperti Perl) memiliki implementasi dominan yang diperlakukan sebagai rujukan. Beberapa bahasa memiliki keduanya, dengan bahasa dasar yang ditentukan oleh standar dan ekstensi diambil dari implementasi dominan yang umum.

## Pengertian
Bahasa pemrograman adalah sebuah instruksi standar untuk memerintah komputer agar menjalankan fungsi tertentu. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaksis dan semantik yang dipakai untuk mendefinisikan tata olah (*program*). Bahasa ini memungkinkan seorang penata olah (*programmer*) dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa yang secara persis akan diambil dalam berbagai situasi.

## Fungsi
Fungsi bahasa pemrograman itu sendiri yaitu memerintah komputer untuk mengolah data sesuai dengan alur berpikir yang *programmer* inginkan. Keluaran (*output*) dari bahasa pemrograman tersebut dapat berupa tata olah, konsol atau aplikasi. Contohnya adalah tata olah yang digunakan oleh kasir di mal-mal atau pasar raya, penggunaan lampu lalu lintas di jalan raya, dan lain-lain.

Perkembangannya mengikuti tingginya inovasi yang dilakukan dalam dunia teknologi. Contoh aplikasi yang dapat ditulis dengan bahasa pemrograman antara lain aplikasi permainan, antivirus, web, penyunting, dan teknologi lainnya.

Bahasa pemrograman yang populer antara lain seperti Java, Visual Basic, C++, C, Cobol, PHP, .NET dan ratusan bahasa lainnya. Namun tentu saja kebutuhan bahasa ini harus disesuaikan dengan fungsi dan perangkat yang menggunakannya.

## Tingkatan
### Bahasa tingkat tinggi (''high-level programming language'')
Bahasa pemrograman tingkat tinggi adalah bahasa pemrograman yang mendekati bahasa manusia. 

Daftar bahasa pemrograman tingkat tinggi:
* Python
* Pascal
* Java
* JavaScript
* C#
* Ruby
* Visual Basic
* Perl
* PHP
* Swift

### Bahasa tingkat menengah (''intermediate-level programming language'')
Bahasa pemrograman tingkat menengah adalah bahasa pemrograman yang dapat berperan sebagai tingkat tinggi maupun rendah.

Contoh bahasa pemrograman tingkat menengah: 
* Rust
* Go
* C
* C++

### Bahasa tingkat rendah (''low-level programming language'')
Bahasa pemrograman tingkat rendah adalah bahasa pemrograman yang sepenuhnya berorientasi pada bahasa mesin sehingga sangat sulit untuk dipelajari manusia.

Contoh bahasa pemrograman tingkat rendah: 
* Assembly

## Generasi
Sedangkan menurut generasinya, bahasa pemrograman digolongkan menjadi 5 generasi:
* Generasi ke-1: *machine language*
* Generasi ke-2: *assembly language*: *Assembler*
* Generasi ke-3: *high level programming language*, contoh: C dan Pascal
* Generasi ke-4: 4 GL (*fourth-generation language*), contoh: SQL
* Generasi ke-5: *Programming Language Based Object Oriented & Web Development*

## Proses pembuatan program
Proses pembuatan program yaitu kita menulis kode sumber pada teks editor kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh CPU. Proses pengubahan kode sumber (*source code*) menjadi bahasa mesin (*machine language*) ini terdiri dari dua macam yaitu kompilasi dan interpretasi.

### Kompilasi
Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan. Program yang melakukan tugas ini disebut *compiler*. Program hasil kompilasi akan berbentuk *executable*. Program bisa langsung dijalankan tanpa harus memiliki compiler di komputer yang menjalankan program tersebut

### Interpretasi
Bahasa yang menggunakan teknik interpretasi akan membaca kode sumber per baris dan dieksekusi per baris. Jika ditemukan kesalahan dalam penulisan program maka program akan dihentikan. Program yang melakukan tugas ini disebut *interpreter*. Pada teknik interpretasi tidak ada akan dihasilkan program *standalone* (berdiri sendiri), artinya untuk menjalankan program penata olah harus mempunyai kode sumbernya sekaligus interpreter program tersebut.

### Kompilasi sekaligus interpretasi
Ada juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi sekaligus interpretasi, contohnya Java. Dalam pembuatan program Java, kode sumber diubah menjadi *bytecode*. Meskipun tampak seperti bahasa mesin tetapi ini bukanlah bahasa mesin dan tidak secara *executable*. Untuk menjalankan *bytecode* tersebut penata olah membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai *interpreter* sehingga menghasilkan program dari *bytecode* tersebut.

Meskipun setiap bahasa pemrograman dibuat untuk membuat program namun setiap bahasa dibuat dengan tujuan dan fungsi yang berbeda-beda, contohnya untuk membuat *driver hardware*, penata olah tidak bisa menggunakan bahasa Visual Basic.

## Bahasa pemrograman yang umum digunakan

;JavaScript: bahasa yang sangat populer untuk menambahkan fitur interaktif untuk halaman web dan aplikasi, memvalidasi data formulir, memanggil API (*Application Programming Interface*), pengembangan game web, dan lain-lain. Ini adalah salah satu bahasa yang paling mudah untuk dipelajari,menjadikan bahasa pemrograman pilihan yang sangat populer untuk pemula.

;PHP:bahasa program yang digunakan terutama untuk mengembangkan halaman web dinamis. PHP dapat menulis seperangkat aturan untuk mengakses dan menampilkan informasi dari database yang kemudian dapat membuat halaman dan memanggil mereka ketika dibutuhkan, dibandingkan menciptakan sebuah file terpisah penuh kode untuk setiap halaman situs.

;C++: Bahasa berorientasi objek yang turunan dari bahasa C, dengan penambahan kelas dan fitur lainnya. C++ sering digunakan oleh pengembang untuk melakukan *maintenance* performa, AI, dan sebagian besar aplikasi. C++ juga memiliki keuntungan yaitu lebih mudah untuk mempelajari bahasa C lainnya yaitu C# dan C. Semua bahasa C umumnya dipandang sebagai bahasa pemrograman tingkat menengah.

;C#: Diucapkan C Sharp, bahasa ini diciptakan oleh Microsoft dalam kerangka NET. C# banyak digunakan untuk menulis aplikasi Windows (dalam bentuk Windows Forms atau WinForms, WPF atau Windows Presentation Foundation, UWP atau Universal Windows Platform di Windows 10, dan WinUI), pengembangan game, dan [AI]]. Ini adalah tujuan OOP umum yang berbagi banyak kesamaan dengan bahasa C tua.

;C: Akar dari bahasa C adalah dari bahasa **BCPL** yang dikembangkan oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut dengan **B** pada tahun 1970. Perkembangan selanjutnya dari bahasa **B** adalah bahasa **C** oleh Dennis Ritchie sekitar tahun 1970-an di Bell Telephone Laboratories Inc (*sekarang*: AT&T Bell Laboratories). Bahasa C pertama kali digunakan di komputer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX.

:Ini adalah versi C yang digunakan oleh sistem operasi Apple serta sejumlah kecil aplikasi lain.

;Python: Python sangat populer dalam komunitas ilmiah dan akademik. Bahasa ini telah digunakan untuk membuat situs web populer seperti Pinterest dan Instagram. Python adalah bahasa pemrograman yang paling mudah untuk dipelajari dibandingkan dengan bahasa pemrograman C atau turunannya, karena Python memiliki sintaksis yang tidak terlalu kompleks.

;Java: Digunakan oleh Google sebagai bagian integral dari sistem operasi Android, dan oleh pengembang independen untuk membuat aplikasi Android (serta kegunaan lain). Java diciptakan dengan "tulis sekali, jalankan di mana saja" (WORA atau *Write Once, Run Anywhere*) pendekatan untuk memudahkan kode yang ditulis pada satu mesin untuk berjalan di mesin lain.

;Ruby: Bahasa OOP dan *open source* murni yang populer dari Jepang. Sintaks Ruby elegan, natural, mudah dibaca dan ditulis.

;Visual Basic: Berasal dari bahasa pemrograman 'BASIC', yang sangat populer pada hari-hari awal komputasi pribadi. Bahasa ini dapat membuat program sederhana yang akan dibuat dengan cepat dan mudah, serta memungkinkan untuk *coding* yang lebih kompleks.

## Daftar

## Lihat pula
* Daftar bahasa pemrograman
* Bahasa pemrograman pendidikan
* Bahasa pemrograman tujuan umum (GPL)
* Bahasa pemrograman tujuan khusus (DSL)

## Referensi


## Pranala luar
* 
*