Bahasa pemrograman
Bahasa pemrograman atau bahasa penataolahan (bahasa Inggris: programming language) adalah sistem notasi untuk menulis program komputer. Sebagian besar bahasa pemrograman adalah bahasa formal berdasarkan teks, tetapi juga dapat berupa grafis.[1]

| Artikel ini adalah bagian dari seri: |
| Matematika |
|---|
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.
Hubungan dengan bahasa alami
Bahasa pemrograman memiliki beberapa kesamaan dengan bahasa alami dalam hal memungkinkan komunikasi ide antarmanusia; program umumnya dapat dibaca oleh manusia dan dapat mengekspresikan ide-ide yang kompleks. Namun, jenis ide yang dapat diekspresikan oleh bahasa pemrograman pada akhirnya terbatas pada domain komputasi.[2]
Istilah computer language (bahasa komputer) terkadang digunakan secara bergantian dengan bahasa pemrograman,[3] tetapi beberapa pihak berpendapat bahwa keduanya adalah konsep yang berbeda. Ada yang menilai bahwa bahasa pemrograman adalah subset dari bahasa komputer.[4] Beberapa menggunakan istilah bahasa komputer untuk mengklasifikasikan bahasa yang digunakan dalam komputasi tetapi tidak dianggap sebagai bahasa pemrograman. Sebagian lainnya menganggap bahasa pemrograman sebagai konstruk teoritis untuk memprogram mesin abstrak, dan bahasa komputer sebagai subset darinya yang berjalan pada komputer fisik yang memiliki sumber daya perangkat keras terbatas.[5]
John C. Reynolds menekankan bahwa bahasa spesifikasi formal merupakan bahasa pemrograman, sama halnya dengan bahasa apa pun yang dimaksudkan untuk eksekusi. Ia berargumen bahwa format masukan tekstual dan bahkan grafis yang memengaruhi perilaku komputer adalah bahasa pemrograman, meskipun mereka umumnya tidak bersifat Turing-complete, dan menyatakan bahwa ketidaktahuan tentang konsep bahasa pemrograman adalah alasan di balik banyak cacat pada format masukan.[6]
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. Kebutuhan bahasa ini harus disesuaikan dengan fungsi dan perangkat yang menggunakannya. Bahasa pemrograman berbeda dari kebanyakan bentuk ekspresi manusia lainnya karena memerlukan tingkat presisi dan kelengkapan yang lebih tinggi. Komputer "melakukan persis apa yang diperintahkan", dan tidak dapat "mengerti" apa kode yang dimaksudkan untuk ditulis oleh programmer jika terjadi kesalahan.
Sejarah
Perkembangan awal
Komputer pertama yang dapat diprogram ditemukan pada tahun 1940-an, dan bersamanya, bahasa pemrograman pertama juga lahir.[7][8] Pada awalnya, sumber daya perangkat keras sangat langka dan mahal, sehingga bahasa yang rumit dan memakan waktu tetapi dekat dengan perangkat keras demi efisiensi yang tinggi lebih disukai.[9]
Pengenalan bahasa pemrograman tingkat tinggi merevolusi pemrograman dengan mengabstraksikan detail perangkat keras untuk mengekspresikan algoritme agar lebih mudah dipahami oleh manusia.[10] Pada tahun 1957, Fortran (FORmula TRANslation) diciptakan sebagai bahasa tingkat tinggi terkompilasi pertama,[10][11] yang tetap bertahan hingga abad ke-21.[12]
Abad 1960-an dan 1970s

Sekitar tahun 1960, komputer mainframe tujuan umum mulai dikembangkan. Karena input menggunakan kartu berlubang, bahasa masa ini dirancang untuk interaksi minimal.[14] Setelah penemuan mikroprosesor pada tahun 1970-an, komputer menjadi jauh lebih murah dan memungkinkan interaksi pengguna yang lebih intensif.[15]
Lisp, diimplementasikan pada tahun 1958, adalah bahasa pemrograman fungsional pertama,[16] yang mendukung rekursi, ekspresi kondisional,[17] manajemen memori dinamis, dan pengumpulan sampah otomatis.[18] Pada tahun 1978, bahasa fungsional lainnya, ML, memperkenalkan inferensi tipe dan parameter polimorfik.[19][20]
Setelah ALGOL dirilis, bahasa ini menjadi standar dalam literatur komputasi untuk menjelaskan algoritme. Meskipun keberhasilan komersialnya terbatas, sebagian besar bahasa imperatif populer—termasuk C, Pascal, Ada, C++, Java, dan C#—diturunkan secara langsung atau tidak langsung dari ALGOL 60.[21][12] Simula, bahasa pertama yang mendukung pemrograman berorientasi objek (termasuk subtipe, dynamic dispatch, dan pewarisan), juga merupakan keturunan ALGOL.[22] Prolog, yang dirancang pada tahun 1972, menjadi bahasa pemrograman logika pertama yang berkomunikasi menggunakan notasi logika formal.[23][24]
Abad 1980-an hingga 2000-an

Penemuan komputer pribadi (PC) pada tahun 1980-an mengubah lanskap penggunaan bahasa pemrograman.[25] Bahasa baru seperti C++ memperkenalkan dukungan kelas dan pewarisan ke dalam basis kode C.[26] Ada dan bahasa baru lainnya memperkenalkan dukungan untuk konkurensi.[27]
Pertumbuhan pesat Internet pada tahun 1990-an mendorong lahirnya Java demi peningkatan portabilitas lintas sistem dan keamanan.[28][29] Era ini juga mempopulerkan bahasa skrip diketik dinamis—Python, JavaScript, PHP, dan Ruby—yang dirancang untuk mengembangkan program kecil dengan cepat dan berintegrasi dengan HTML di sisi server.[30][31]
Abad 2000-an hingga sekarang
Terjadi perlambatan pengembangan bahasa baru yang mencapai popularitas luas pada era 2000-an.[32] Inovasi yang menonjol adalah pemrograman berbasis layanan (service-oriented programming) untuk komputasi terdistribusi.[33] C# dan F# melakukan silang ide antara paradigma imperatif dan fungsional.[34] Setelah tahun 2010, bahasa seperti Rust, Go, Swift, Zig, dan Carbon bersaing dalam ranah perangkat lunak kritis-performa yang sebelumnya didominasi oleh C.[35] Mayoritas menggunakan pengetikan statis, sementara beberapa seperti Julia mengadopsi pengetikan dinamis.[36]
Bahasa pemrograman visual seperti Scratch dan LabVIEW juga berkembang pesat,[37][38] termasuk hibrida teks-visual seperti Ballerina.[39] Google ikut mengembangkan proyek bahasa visual lewat Blockly.[40] Banyak mesin permainan (game engines) seperti Unreal dan Unity yang kini mendukung visual scripting secara bawaan.[41][42]
Tingkatan
Bahasa tingkat tinggi (high-level programming language)
Bahasa pemrograman tingkat tinggi adalah bahasa pemrograman yang menjauh dari instruksi perangkat keras dan lebih mendekati bahasa manusia, sehingga meningkatkan keterbacaan dan kemudahan penulisan kode.[43]
Daftar bahasa pemrograman tingkat tinggi:
Bahasa tingkat menengah (intermediate-level programming language)
Bahasa pemrograman tingkat menengah adalah bahasa pemrograman yang menyediakan tingkat abstraksi tingkat tinggi namun tetap mempertahankan kemampuan manipulasi tingkat rendah (seperti manajemen memori manual dan operasi pointer).
Contoh bahasa pemrograman tingkat menengah:
Bahasa tingkat rendah (low-level programming language)
Bahasa pemrograman tingkat rendah adalah bahasa pemrograman yang sepenuhnya berorientasi pada arsitektur perangkat keras dan bahasa mesin sehingga sangat sulit untuk dipelajari manusia, tetapi memiliki efisiensi eksekusi yang sangat tinggi.
Contoh bahasa pemrograman tingkat rendah:
Generasi
Berdasarkan perkembangannya, bahasa pemrograman digolongkan menjadi 5 generasi:
- **Generasi ke-1**: Machine language (kode biner yang dieksekusi langsung oleh prosesor).
- **Generasi ke-2**: Assembly language (penggunaan mnemonik/kode singkat sebagai pengganti biner melalui Assembler).
- **Generasi ke-3**: High-level programming language (bahasa prosedural dan terstruktur seperti C, Fortran, dan Pascal).
- **Generasi ke-4**: 4 GL (fourth-generation language yang bersifat non-prosedural untuk pengelolaan basis data, contoh: SQL).
- **Generasi ke-5**: Programming Language Based Object Oriented & Web Development, serta bahasa yang berfokus pada kecerdasan buatan dan pemecahan masalah berbasis kendala.
Komponen Utama: Sintaksis dan Semantik
Sintaksis


Sintaksis mengacu pada bentuk permukaan dan kombinasi simbol yang membentuk program yang benar secara struktural. Aturan sintaksis biasanya didefinisikan menggunakan ekspresi reguler (untuk analisis leksikal) dan Bentuk Backus–Naur (BNF) untuk tata bahasa bebas konteks.[44]
Sebagai contoh, tata bahasa sederhana berbasis Lisp dapat dituliskan sebagai berikut:
expression ::= atom | list
atom ::= number | symbol
number ::= [+-]?['0'-'9']+
symbol ::= ['A'-'Z''a'-'z'].*
list ::= '(' expression* ')'
Program yang benar secara sintaksis belum tentu benar secara semantik. Banyak program lolos tahap analisis struktural tetapi memicu kesalahan fatal saat dieksekusi atau menunjukkan perilaku tak terdefinisi (undefined behavior). Tata bahasa sebagian besar bahasa pemrograman masuk dalam Tata Bahasa Tipe-2 (bebas konteks) dalam Hierarki Chomsky. Beberapa bahasa seperti Perl dan Lisp mengaburkan batasan parsing dan eksekusi karena memungkinkan modifikasi parser di tengah proses pembacaan kode.[45] Sebaliknya, makro pada bahasa C hanyalah berupa penggantian string teks dan tidak memerlukan kompilasi kode dinamis selama parsing.[46]
Semantik
Templat:Logical connectives sidebar Semantik mengacu pada arti atau interpretasi dari kode sumber yang valid. Semantik dibagi menjadi dua ragam:
Semantik statis
Mendefinisikan pembatasan tekstual yang sulit diekspresikan oleh sintaksis formal formal biasa, tetapi dapat diperiksa pada saat kompilasi (compile-time).[47] Contohnya termasuk aturan bahwa setiap variabel harus dideklarasikan sebelum digunakan, pemastian label pernyataan `case` bersifat unik,[48] serta penegakan sistem tipe (type system) pada parameter fungsi. Analisis aliran data seperti analisis penugasan pasti (definite assignment analysis) di Java dan C# juga merupakan bagian dari semantik statis.[49]
Semantik dinamis
Mendefinisikan bagaimana perilaku program berjalan saat runtime (semantik eksekusi), seperti strategi evaluasi ekspresi aritmatika atau bagaimana struktur kontrol mengeksekusi pernyataan kondisional. Spesifikasi praktis umumnya menggunakan deskripsi bahasa alami, sementara penelitian akademik sering menggunakan metode formal untuk memetakan perilaku eksekusi ini secara matematis.[49]
Karakteristik dan Fitur Pendukung
Sistem tipe (Type system)
Sistem tipe mendefinisikan bagaimana bahasa mengelompokkan nilai ke dalam tipe data, bagaimana ekspresi dievaluasi, dan bagaimana ekivalensi tipe ditegakkan.[50] Sebuah bahasa dikatakan *fully typed* jika setiap operasi mendefinisikan tipe data yang berlaku secara ketat.[51] Sebaliknya, bahasa *untyped* (seperti bahasa assembly) membolehkan operasi apa pun dilakukan pada bit memori apa pun.[51]
- **Pengetikan Kuat (Strong Typing) vs Lemah (Weak Typing)**: Pengetikan kuat mendeteksi kesalahan tipe secara ketat kecuali dikonversi secara eksplisit (*casting*). Pengetikan lemah membolehkan konversi implisit (*type coercion*), yang mempermudah penulisan tetapi rawan menyembunyikan kesalahan logika.[52]
- **Pengetikan Statis vs Dinamis**: Pada pengetikan statis, tipe ditentukan sebelum program berjalan (saat kompilasi), baik secara eksplisit maupun melalui inferensi tipe otomatis (seperti pada Haskell dan ML).[53] Pada pengetikan dinamis, tipe melekat pada nilai di dalam objek, bukan pada variabelnya, sehingga variabel dapat menampung tipe apa pun secara bergantian.[54]
Tipe data yang umum didukung
Tipe primitif bawaan meliputi numerik seperti bilangan bulat (integer), bilangan pecahan (floating point), Boolean (true/false), dan karakter (ASCII/Unicode).[55] Bahasa modern juga mendukung tipe data terstruktur seperti array, string, list, array asosiatif (map/dictionary), record/struct, tuple, serta pointer yang menyimpan alamat memori fisik.[56] Sejak era 1980-an, dukungan terhadap tipe data abstrak (ADT) semakin meluas untuk mengimplementasikan penyembunyian informasi (information hiding).[57]
Penanganan pengecualian (Exception handling)
Mekanisme ini menangani kesalahan runtime melalui dua pendekatan utama:[58]
- **Terminasi**: Menghentikan program seketika dan menyerahkan kendali kembali ke sistem operasi.
- **Resumsi**: Memperbaiki keadaan galat di dalam blok penanganan kesalahan (*exception handler*) dan melanjutkan eksekusi program di dekat lokasi kegagalan.
Beberapa bahasa mendukung blok finalisasi (`finally`) yang menjamin kode pembersihan sumber daya tetap berjalan baik saat galat terjadi maupun tidak.[59] Ada timbal balik antara penegakan reliabilitas penanganan galat dan performa kecepatan eksekusi kode.[60]
Proses Pembuatan dan Implementasi Program
Proses pengubahan kode sumber (source code) menjadi bahasa mesin (machine language) terdiri dari beberapa pendekatan utama:
Kompilasi
Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu oleh perangkat lunak bernama compiler. Jika tidak ada kesalahan penulisan, compiler menghasilkan berkas biner mandiri berformat executable yang bisa dieksekusi langsung oleh CPU dibantu sistem operasi.[61] Metode ini memberikan kecepatan eksekusi maksimal karena kode dioptimalkan sebelum disebarkan, namun membutuhkan waktu kompilasi yang lebih lama.[62]
Interpretasi
Bahasa yang menggunakan teknik interpretasi membaca kode sumber per baris dan langsung mengeksekusinya menggunakan perangkat lunak bernama interpreter. Jika ditemukan kesalahan, eksekusi program dihentikan saat itu juga. Pendekatan ini mempermudah proses debugging, tetapi memiliki kelemahan performa eksekusi yang 10 hingga 100 kali lebih lambat dibandingkan hasil kompilasi asli.[63]
Kompilasi hibrida (Just-In-Time)
Pendekatan hibrida menggabungkan efisiensi kompilasi dan fleksibilitas interpretasi. Kode sumber dikompilasi terlebih dahulu ke dalam bahasa antara (seperti *bytecode* pada Java atau CLI pada .NET).[64] Saat program dijalankan, lingkungan runtime (seperti Java Runtime Environment) bertindak sebagai interpreter sekaligus melakukan kompilasi *Just-In-Time* (JIT) ke dalam kode mesin fisik tepat sebelum instruksi tersebut dieksekusi oleh komputer.
Bahasa Pemrograman Hak Milik (Proprietary) vs Terbuka (Open Source)
Meskipun sebagian besar bahasa populer memiliki spesifikasi terbuka, banyak bahasa berstatus proprietary (hak milik vendor tunggal), umumnya berupa bahasa khusus domain (DSL) atau bahasa skrip internal produk komersial.
Beberapa bahasa berada di batas antara keduanya; contohnya Oracle Corporation yang memegang hak paten atas beberapa aspek komersial Java,[65] serta Microsoft C# yang memiliki implementasi compiler terbuka namun berjalan di atas spesifikasi lingkungan tertutup Common Language Runtime (CLR).[66] Bahasa komersial populer yang berstatus proprietary meliputi MATLAB, VBScript, dan Wolfram Language. Sebaliknya, bahasa pemrograman sumber terbuka (*open source*) sangat krusial bagi ekosistem sains terbuka (open science) demi mendukung replikasi penelitian dan pembagian basis kode ilmiah secara bebas.[67]
Bahasa Pemrograman yang Umum Digunakan

Bahasa yang sangat populer untuk menambahkan fitur interaktif pada 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 bagi pemula.
Bahasa pemrograman sisi server yang digunakan terutama untuk mengembangkan halaman web dinamis dengan kemampuan mengakses dan menampilkan informasi dari basis data secara dinamis tanpa perlu membuat file HTML terpisah untuk setiap halaman situs.
Bahasa berorientasi objek turunan dari bahasa C, dengan penambahan fitur kelas, *templates*, dan penanganan memori tingkat rendah. C++ sering digunakan untuk sistem dengan kebutuhan performa tinggi, pengembangan mesin permainan, kecerdasan buatan, dan aplikasi sistem besar.
Diciptakan oleh Microsoft dalam kerangka kerja .NET. C# banyak digunakan untuk menulis aplikasi desktop Windows (WinForms, WPF, WinUI), pengembangan backend web, pengembangan game lintas platform (menggunakan Unity), dan kecerdasan buatan.
Bahasa pemrograman sistem legendaris yang dikembangkan oleh Dennis Ritchie pada tahun 1970-an di Bell Laboratories untuk sistem operasi UNIX.[68] Bahasa C memberikan efisiensi tinggi, kontrol perangkat keras yang intim via pointer, dan menjadi fondasi bagi banyak bahasa modern (C++, C#, Java, PHP).
Python sangat populer dalam komunitas ilmiah, akademik, analisis data, komputasi awan, dan kecerdasan buatan (Machine Learning). Python terkenal memiliki sintaksis yang sangat bersih, minimalis, dan mudah dipelajari dibandingkan keluarga bahasa C.
Mengusung pendekatan "tulis sekali, jalankan di mana saja" (WORA atau Write Once, Run Anywhere) melalui arsitektur mesin virtual Java (JVM). Java digunakan secara masif di infrastruktur enterprise backend, aplikasi Android, dan sistem transaksional perbankan.
Bahasa pemrograman berorientasi objek murni dari Jepang. Ruby berfokus pada produktivitas penulisan kode dengan sintaksis yang elegan, natural, serta mudah dibaca.
Berasal dari bahasa pemrograman 'BASIC' yang populer pada masa awal komputasi pribadi. Di bawah ekosistem Microsoft, bahasa ini memungkinkan pembuatan prototipe aplikasi Windows berbasis grafis (GUI) secara cepat dan mudah.
Pengukuran penggunaan bahasa
Menentukan bahasa apa yang paling populer sangat bergantung pada bias indikator pengukuran yang digunakan (apakah dihitung dari baris kode di web, jam kerja programmer, jumlah iklan lowongan, atau volume pencarian).
- **Metode Stackify**: Menggabungkan berbagai aktivitas internet dan menempatkan Java, C, C++, Python, dan C# di jajaran teratas.[69]
- **Indeks TIOBE**: Secara berkala menempatkan Python, C++, C, Java, dan C# sebagai lima besar bahasa dengan ekosistem paling aktif di dunia.[70]
- **Pengaruh AI**: Berdasarkan analisis staf IEEE Spectrum, tren pengembangan asisten pengkodean berbasis kecerdasan buatan berpotensi mengunci dominasi bahasa-bahasa populer yang sudah mapan saat ini, karena model AI dilatih menggunakan volume kode historis dari bahasa-bahasa besar tersebut, sehingga mempersulit bahasa baru untuk mendapatkan traksi.[71]
Klasifikasi Paradigma
Secara umum, paradigma bahasa pemrograman dapat dikelompokkan ke dalam kategori berikut:[72]
- Imperatif
Mengeksekusi logika program sebagai rangkaian urutan instruksi perintah yang mengubah status data secara berurutan. Mayoritas bahasa populer masuk ke dalam rumpun ini.[73]
- Fungsional
Menyusun komputasi sebagai evaluasi fungsi matematika murni dan menghindari perubahan status data atau mutasi objek (*side effects*).[74]
- Logika
Pemrograman deklaratif di mana penata olah menetapkan sekumpulan fakta dan aturan logika, lalu mesin inferensi yang akan menentukan metode eksekusi untuk menjawab kueri (contoh: Prolog).[75]
- Berorientasi objek
Mengemas data dan fungsi ke dalam unit kesatuan yang disebut objek. Paradigma ini mendukung pewarisan (*inheritance*), enkapsulasi, pembentukan kelas, dan fungsi dinamis (*dynamic dispatch*).[73]
Lihat pula
- Daftar bahasa pemrograman
- Bahasa pemrograman pendidikan
- Bahasa pemrograman tujuan umum (GPL)
- Bahasa pemrograman tujuan khusus (DSL)
Referensi
- ^ Simarmata, Janner. Rekayasa Perangkat Lunak. Penerbit Andi. ISBN 978-979-29-1347-7.
- ^ Chauhan, Sharad (2013). "10". Programming Languages - Design and Constructs (dalam bahasa English). University Science Press. hlm. 235. ISBN 978-93-81159-41-5. Diakses tanggal 10 September 2025.
Like our natural languages, programming languages facilitate the expression and communication between people. However, programming languages differ from natural languages in two ways. First, programming languages also enables communication of ideas between people and computing machines. Second, programming languages have a narrower expressive domain than our natural languages. That is, they facilitate only the communication of computational ideas.
Pemeliharaan CS1: Bahasa yang tidak diketahui (link) - ^ Robert A. Edmunds, The Prentice-Hall standard glossary of computer terminology, Prentice-Hall, 1985, p. 91
- ^ Pascal Lando, Anne Lapujade, Gilles Kassel, and Frédéric Fürst, Towards a General Ontology of Computer Programs Diarsipkan 7 July 2015 di Wayback Machine., ICSOFT 2007 Diarsipkan 27 April 2010 di Wayback Machine., pp. 163–170
- ^ R. Narasimhan, Programming Languages and Computers: A Unified Metatheory, pp. 189–247 in Franz Alt, Morris Rubinoff (eds.) Advances in computers, Volume 8, Academic Press, 1994, ISBN 0-12-012108-5, p.215: "[...] the model [...] for computer languages differs from that [...] for programming languages in only two respects. In a computer language, there are only finitely many names—or registers—which can assume only finitely many values—or states—and these states are not further distinguished in terms of any other attributes. [author's footnote:] This may sound like a truism but its implications are far-reaching. For example, it would imply that any model for programming languages, by fixing certain of its parameters or features, should be reducible in a natural way to a model for computer languages."
- ^ John C. Reynolds, "Some thoughts on teaching programming and programming languages", SIGPLAN Notices, Volume 43, Issue 11, November 2008, p.109
- ^ Hierso, Severine (June 10, 2022). "Coding From 1849 to 2022: a Guide to The Timeline of Programming Languages". IEEE Computer Society. Diakses tanggal March 1, 2026.
- ^ Gabbrielli & Martini 2023, hlm. 519.
- ^ Gabbrielli & Martini 2023, hlm. 522.
- ^ a b Gabbrielli & Martini 2023, hlm. 521.
- ^ Sebesta 2012, hlm. 42.
- ^ a b c Gabbrielli & Martini 2023, hlm. 524.
- ^ Sebesta 2012, hlm. 42–44.
- ^ Gabbrielli & Martini 2023, hlm. 523–524.
- ^ Gabbrielli & Martini 2023, hlm. 527–528.
- ^ "How Lisp Became God's Own Programming Language". twobithistory.org. Diarsipkan dari versi aslinya tanggal 10 April 2024. Diakses tanggal 10 April 2024.
- ^ Sebesta 2012, hlm. 47–48.
- ^ Gabbrielli & Martini 2023, hlm. 526.
- ^ Gabbrielli & Martini 2023, hlm. 528.
- ^ Sebesta 2012, hlm. 701–703.
- ^ Sebesta 2012, hlm. 56–57.
- ^ Gabbrielli & Martini 2023, hlm. 526–527.
- ^ Gabbrielli & Martini 2023, hlm. 531.
- ^ Sebesta 2012, hlm. 79.
- ^ Gabbrielli & Martini 2023, hlm. 532–533.
- ^ Gabbrielli & Martini 2023, hlm. 534.
- ^ Gabbrielli & Martini 2023, hlm. 534–535.
- ^ Gabbrielli & Martini 2023, hlm. 536–537.
- ^ Sebesta 2012, hlm. 91–92.
- ^ Gabbrielli & Martini 2023, hlm. 538–539.
- ^ Sebesta 2012, hlm. 97–99.
- ^ Gabbrielli & Martini 2023, hlm. 542.
- ^ Gabbrielli & Martini 2023, hlm. 474–475, 477, 542.
- ^ Gabbrielli & Martini 2023, hlm. 542–543.
- ^ Gabbrielli & Martini 2023, hlm. 544.
- ^ Bezanson, Jeff; Karpinski, Stefan; Shah, Viral B.; Edelman, Alan (2012). "Julia: A Fast Dynamic Language for Technical Computing". arΧiv:1209.5145 [cs.PL].
- ^ Sáez-López, J.M., Román-González, M. and Vázquez-Cano, E., 2016. Visual programming languages integrated across the curriculum in elementary school: A two year case study using "Scratch" in five schools. Computers & Education, 97, pp.129-141.
- ^ Kodosky, J., 2020. LabVIEW. Proceedings of the ACM on Programming Languages, 4(HOPL), pp.1-54.
- ^ Fernando, A. and Warusawithana, L., 2020. Beginning Ballerina Programming: From Novice to Professional. Apress.
- ^ Baluprithviraj, K.N., Bharathi, K.R., Chendhuran, S. and Lokeshwaran, P., 2021, March. Artificial intelligence based smart door with face mask detection. In 2021 International Conference on Artificial Intelligence and Smart Systems (ICAIS) (pp. 543-548). IEEE.
- ^ Sewell, B., 2015. Blueprints visual scripting for unreal engine. Packt Publishing Ltd.
- ^ Bertolini, L., 2018. Hands-On Game Development without Coding: Create 2D and 3D games with Visual Scripting in Unity. Packt Publishing Ltd.
- ^ Sobri, Muhammad. Pengantar Teknologi Informasi - Konsep dan Teori. ISBN 9789792963120.
- ^ Michael Sipser (1996). Introduction to the Theory of Computation. PWS Publishing. ISBN 978-0-534-94728-6.
- ^ Jeffrey Kegler, "Perl and Undecidability Diarsipkan 17 August 2009 di Wayback Machine.", The Perl Review.
- ^ Marty Hall, 1995, Lecture Notes: Macros Diarsipkan 6 August 2013 di Wayback Machine.
- ^ Aaby, Anthony (2004). Introduction to Programming Languages. Diarsipkan dari asli tanggal 8 November 2012. Diakses tanggal 29 September 2012.
- ^ Michael Lee Scott, Programming language pragmatics, Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-1, p. 18–19
- ^ a b Winskel, Glynn (5 February 1993). The Formal Semantics of Programming Languages: An Introduction (dalam bahasa Inggris). MIT Press. ISBN 978-0-262-73103-4.
- ^ Sebesta 2012, hlm. 245.
- ^ a b Kesalahan pengutipan: Tanda
<ref>tidak sah; tidak ditemukan teks untuk ref bernamatyping - ^ Sebesta 2012, hlm. 303–304.
- ^ Leivant, Daniel (1983). Polymorphic type inference. ACM SIGACT-SIGPLAN symposium on Principles of programming languages. ACM Press. hlm. 88–98. doi:10.1145/567067.567077.
- ^ Sebesta 2012, hlm. 212–213.
- ^ Sebesta 2012, hlm. 246–249.
- ^ Sebesta 2012, hlm. 250–290.
- ^ Sebesta 2012, hlm. 244–245.
- ^ Sebesta 2012, hlm. 630, 634.
- ^ Sebesta 2012, hlm. 635.
- ^ Sebesta 2012, hlm. 631.
- ^ Sebesta 2012, hlm. 23–24.
- ^ Sebesta 2012, hlm. 25–27.
- ^ Sebesta 2012, hlm. 28.
- ^ Sebesta 2012, hlm. 29–30.
- ^ Lihat kasus hukum: Oracle America, Inc. v. Google, Inc.
- ^ "Guide to Programming Languages | ComputerScience.org". ComputerScience.org (dalam bahasa American English). Diakses tanggal 2018-05-13.
- ^ Abdelaziz, Abdullah I.; Hanson, Kent A.; Gaber, Charles E.; Lee, Todd A. (2023). "Optimizing large real-world data analysis with parquet files in R: A step-by-step tutorial". Pharmacoepidemiology and Drug Safety. 33 (3) e5728. doi:10.1002/pds.5728.
- ^ Hartono, Jogiyanto (2000). Konsep Dasar Pemrograman Bahasa C. Yogyakarta: Penerbit Andi Yogyakarta. hlm. 1. ISBN 99795333429.
- ^ "Most Popular and Influential Programming Languages of 2018". stackify.com. 2017-12-18. Diakses tanggal 2018-08-29.
- ^ "TIOBE Index". Diakses tanggal 24 June 2024.
- ^ "IEEE Spectrum". Diakses tanggal 25 September 2025.
- ^ Sebesta 2012, hlm. 21.
- ^ a b Sebesta 2012, hlm. 21–22.
- ^ Sebesta 2012, hlm. 12.
- ^ Sebesta 2012, hlm. 22.
Bacaan lanjutan
- Abelson, Harold; Sussman, Gerald Jay (1996). Structure and Interpretation of Computer Programs (Edisi 2nd). MIT Press.
- Gabbrielli, Maurizio; Martini, Simone (2023). Programming Languages: Principles and Paradigms (dalam bahasa Inggris) (Edisi 2nd). Springer. ISBN 978-3-031-34144-1.
- Nofre, David; Priestley, Mark; Alberts, Gerard (2014). "When Technology Became Language: The Origins of the Linguistic Conception of Computer Programming, 1950–1960". Technology and Culture. 55 (1): 40–75. doi:10.1353/tech.2014.0031.
- Sebesta, Robert W. (2012). Concepts of Programming Languages (dalam bahasa Inggris) (Edisi 10). Addison-Wesley. ISBN 978-0-13-139531-2.
Pranala luar
Bahan belajar tentang Bahasa pemrograman di Wikiversitas
Media terkait Bahasa pemrograman di Wikimedia Commons
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.