Lompat ke isi

Sejarah bahasa pemrograman: Perbedaan antara revisi

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Maintenance script (bicara | kontrib)
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 29308902; atribusi sumber disertakan.
 
Maintenance script (bicara | kontrib)
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi
Baris 1: Baris 1:
'''Sejarah bahasa pemrograman''' bermula dari dokumentasi komputer mekanis awal hingga alat modern untuk [[pengembangan perangkat lunak]]. Bahasa pemrograman awal sangat terspesialisasi, mengandalkan [[notasi matematika]] dan [[Sintaksis (bahasa pemrograman)|sintaksis]] yang serupa dan cenderung sulit dipahami. Sepanjang abad ke-20, penelitian dalam teori [[kompilator]] menghasilkan penciptaan [[bahasa pemrograman tingkat tinggi]], yang menggunakan sintaksis yang lebih mudah diakses untuk menyampaikan instruksi.
'''Sejarah bahasa pemrograman''' bermula dari dokumentasi komputer mekanis awal hingga alat modern untuk [[pengembangan perangkat lunak]]. Bahasa pemrograman awal sangat terspesialisasi, mengandalkan [[notasi matematika]] dan [[Sintaksis (bahasa pemrograman)|sintaksis]] yang serupa dan cenderung sulit dipahami.<ref>Hopper (1978) p. 16.</ref> Sepanjang abad ke-20, penelitian dalam teori [[kompilator]] menghasilkan penciptaan [[bahasa pemrograman tingkat tinggi]], yang menggunakan sintaksis yang lebih mudah diakses untuk menyampaikan instruksi.


Bahasa pemrograman tingkat tinggi pertama adalah [[Plankalkül]], yang diciptakan oleh [[Konrad Zuse]] antara tahun 1942 dan 1945. Bahasa tingkat tinggi pertama yang memiliki [[kompilator]] terkait diciptakan oleh [[Corrado Böhm]] pada tahun 1951, untuk tesis [[Doktor Filosofi|PhD]]-nya. Bahasa pertama yang tersedia secara komersial adalah [[FORTRAN]] (FORmula TRANslation), yang dikembangkan pada tahun 1956 (manual pertama muncul tahun 1956, tetapi mulai dikembangkan sejak 1954) oleh tim yang dipimpin oleh [[John Backus]] di [[IBM]].
Bahasa pemrograman tingkat tinggi pertama adalah [[Plankalkül]], yang diciptakan oleh [[Konrad Zuse]] antara tahun 1942 dan 1945.<ref>Donald E. Knuth. ''Early development of programming languages''. ''Encyclopedia of Computer Science and Technology''. Marcel Dekker. Vol. 7. hlm. 419–493.</ref> Bahasa tingkat tinggi pertama yang memiliki [[kompilator]] terkait diciptakan oleh [[Corrado Böhm]] pada tahun 1951, untuk tesis [[Doktor Filosofi|PhD]]-nya.<ref>[http://e-collection.library.ethz.ch/eserv/eth:32719/eth-32719-02.pdf Tesis PhD Corrado Böhm]</ref> Bahasa pertama yang tersedia secara komersial adalah [[FORTRAN]] (FORmula TRANslation), yang dikembangkan pada tahun 1956 (manual pertama muncul tahun 1956, tetapi mulai dikembangkan sejak 1954) oleh tim yang dipimpin oleh [[John Backus]] di [[IBM]].


== Sejarah awal ==
== Sejarah awal ==
Selama tahun 1842–1849, [[Ada Lovelace]] menerjemahkan memoar matematikawan Italia [[Luigi Menabrea]] tentang mesin terbaru yang diusulkan oleh [[Charles Babbage]]: [[Mesin Analitikal]] (''Analytical Engine''); ia melengkapi memoar tersebut dengan catatan yang merinci metode penghitungan [[bilangan Bernoulli]] dengan mesin tersebut, yang diakui oleh sebagian besar sejarawan sebagai program komputer pertama yang dipublikasikan di dunia.
Selama tahun 1842–1849, [[Ada Lovelace]] menerjemahkan memoar matematikawan Italia [[Luigi Menabrea]] tentang mesin terbaru yang diusulkan oleh [[Charles Babbage]]: [[Mesin Analitikal]] (''Analytical Engine''); ia melengkapi memoar tersebut dengan catatan yang merinci metode penghitungan [[bilangan Bernoulli]] dengan mesin tersebut, yang diakui oleh sebagian besar sejarawan sebagai program komputer pertama yang dipublikasikan di dunia.<ref>J. Fuegi. ''Lovelace & Babbage and the creation of the 1843 'notes'''. ''Annals of the History of Computing''. October–December 2003. Vol. 25 (4). hlm. 16–26. doi:10.1109/MAHC.2003.1253887.</ref>


Alat Tenun Jacquard ([[Jacquard Loom]]) dan [[Mesin Diferensial]] (''Difference Engine'') buatan Charles Babbage keduanya dirancang untuk menggunakan [[kartu berlubang]] (''punched cards''), yang berfungsi mendeskripsikan urutan operasi yang harus dijalankan oleh mesin yang dapat diprogram tersebut.
Alat Tenun Jacquard ([[Jacquard Loom]]) dan [[Mesin Diferensial]] (''Difference Engine'') buatan Charles Babbage keduanya dirancang untuk menggunakan [[kartu berlubang]] (''punched cards''),<ref>Rebecca Bales. [https://history-computer.com/charles-babbage-analytical-engine/ Charles Babbage Analytical Engine Explained]. ''history-computer.com''. 24 July 2023.</ref><ref>Doron Swade. [https://www.computerhistory.org/babbage/engines/ The Engines]. ''computerhistory.org''.</ref> yang berfungsi mendeskripsikan urutan operasi yang harus dijalankan oleh mesin yang dapat diprogram tersebut.


[[Kode sumber]] komputer pertama sangat terspesialisasi untuk aplikasinya masing-masing: misalnya, [[Alonzo Church]] mampu mengekspresikan [[kalkulus lambda]] dalam bentuk rumus matematika, dan [[Mesin Turing]] merupakan abstraksi dari pengoperasian mesin penanda pita.
[[Kode sumber]] komputer pertama sangat terspesialisasi untuk aplikasinya masing-masing: misalnya, [[Alonzo Church]] mampu mengekspresikan [[kalkulus lambda]] dalam bentuk rumus matematika, dan [[Mesin Turing]] merupakan abstraksi dari pengoperasian mesin penanda pita.
Baris 13: Baris 13:
Pada tahun 1940-an, komputer bertenaga listrik modern yang pertama kali dapat dikenali mulai diciptakan. Keterbatasan kecepatan dan [[Penyimpanan data komputer|kapasitas memori]] memaksa para pemrogram untuk menulis program [[bahasa rakitan]] (''assembly'') yang disesuaikan secara manual. Pada akhirnya disadari bahwa pemrograman dalam bahasa rakitan membutuhkan upaya intelektual yang sangat besar.
Pada tahun 1940-an, komputer bertenaga listrik modern yang pertama kali dapat dikenali mulai diciptakan. Keterbatasan kecepatan dan [[Penyimpanan data komputer|kapasitas memori]] memaksa para pemrogram untuk menulis program [[bahasa rakitan]] (''assembly'') yang disesuaikan secara manual. Pada akhirnya disadari bahwa pemrograman dalam bahasa rakitan membutuhkan upaya intelektual yang sangat besar.


Proposal awal untuk sebuah [[bahasa pemrograman tingkat tinggi]] adalah [[Plankalkül]], yang dikembangkan oleh [[Konrad Zuse]] untuk komputer [[Z1 (komputer)|Z1]] miliknya antara tahun 1942 dan 1945, tetapi tidak diimplementasikan pada saat itu.
Proposal awal untuk sebuah [[bahasa pemrograman tingkat tinggi]] adalah [[Plankalkül]], yang dikembangkan oleh [[Konrad Zuse]] untuk komputer [[Z1 (komputer)|Z1]] miliknya antara tahun 1942 dan 1945, tetapi tidak diimplementasikan pada saat itu.<ref>Pada tahun 1998 dan 2000, kompilator dibuat untuk bahasa tersebut sebagai eksperimen sejarah. Rojas, Raúl, et al. (2000). "Plankalkül: The First High-Level Programming Language and its Implementation". Institut frame Informatik, Freie Universität Berlin, Technical Report B-3/2000. [http://ftp.mi.fu-berlin.de/pub/reports/TR-B-00-03.pdf (teks lengkap)]</ref>
 
Bahasa pemrograman berfungsi pertama yang dirancang untuk menyampaikan instruksi ke komputer ditulis pada awal tahun 1950-an. [[Short Code (bahasa komputer)|Short Code]] milik [[John Mauchly]], yang diusulkan pada tahun 1949, adalah salah satu bahasa tingkat tinggi pertama yang pernah dikembangkan untuk [[komputer elektronik]]. Berbeda dengan [[kode mesin]], pernyataan dalam Short Code mewakili [[Ekspresi (matematika)|ekspresi matematika]] dalam bentuk yang dapat dipahami. Namun, program tersebut harus [[Interpreter (komputasi)|diinterpretasikan]] ke dalam kode mesin setiap kali dijalankan, membuat prosesnya jauh lebih lambat daripada menjalankan kode mesin yang setara.


Bahasa pemrograman berfungsi pertama yang dirancang untuk menyampaikan instruksi ke komputer ditulis pada awal tahun 1950-an. [[Short Code (bahasa komputer)|Short Code]] milik [[John Mauchly]], yang diusulkan pada tahun 1949, adalah salah satu bahasa tingkat tinggi pertama yang pernah dikembangkan untuk [[komputer elektronik]].<ref>W.S. Sebesta. ''Concepts of Programming Languages''. Pearson/Addison-Wesley. 2006. hlm. 44. ISBN 978-0-321-33025-3.</ref> Berbeda dengan [[kode mesin]], pernyataan dalam Short Code mewakili [[Ekspresi (matematika)|ekspresi matematika]] dalam bentuk yang dapat dipahami. Namun, program tersebut harus [[Interpreter (komputasi)|diinterpretasikan]] ke dalam kode mesin setiap kali dijalankan, membuat prosesnya jauh lebih lambat daripada menjalankan kode mesin yang setara.


Pada awal tahun 1950-an, [[Alick Glennie]] mengembangkan [[Autocode]], yang kemungkinan merupakan bahasa pemrograman terkompilasi pertama, di [[Universitas Manchester]]. Pada tahun 1954, iterasi kedua dari bahasa tersebut, yang dikenal sebagai "Mark 1 Autocode", dikembangkan untuk [[Harvard Mark I|Mark 1]] oleh [[Tony Brooker|R. A. Brooker]]. Brooker, bersama Universitas Manchester, juga mengembangkan autocode untuk [[Ferranti Mercury]] pada tahun 1950-an. Versi untuk [[EDSAC]] 2 dirancang oleh [[Douglas Hartree]] dari [[Laboratorium Matematika Universitas Cambridge]] pada tahun 1961. Dikenal sebagai EDSAC 2 Autocode, bahasa ini merupakan pengembangan langsung dari Mercury Autocode yang disesuaikan dengan kondisi lokal, dan terkenal karena optimalisasi [[kode objek]] serta diagnosis bahasa sumbernya yang tergolong maju pada masa itu. Jalur pengembangan yang sezaman tetapi terpisah, [[Atlas Autocode]], dikembangkan untuk mesin [[Atlas Computer (Manchester)|Atlas 1]] di [[Universitas Manchester]].
Pada awal tahun 1950-an, [[Alick Glennie]] mengembangkan [[Autocode]], yang kemungkinan merupakan bahasa pemrograman terkompilasi pertama, di [[Universitas Manchester]]. Pada tahun 1954, iterasi kedua dari bahasa tersebut, yang dikenal sebagai "Mark 1 Autocode", dikembangkan untuk [[Harvard Mark I|Mark 1]] oleh [[Tony Brooker|R. A. Brooker]]. Brooker, bersama Universitas Manchester, juga mengembangkan autocode untuk [[Ferranti Mercury]] pada tahun 1950-an. Versi untuk [[EDSAC]] 2 dirancang oleh [[Douglas Hartree]] dari [[Laboratorium Matematika Universitas Cambridge]] pada tahun 1961. Dikenal sebagai EDSAC 2 Autocode, bahasa ini merupakan pengembangan langsung dari Mercury Autocode yang disesuaikan dengan kondisi lokal, dan terkenal karena optimalisasi [[kode objek]] serta diagnosis bahasa sumbernya yang tergolong maju pada masa itu. Jalur pengembangan yang sezaman tetapi terpisah, [[Atlas Autocode]], dikembangkan untuk mesin [[Atlas Computer (Manchester)|Atlas 1]] di [[Universitas Manchester]].


Pada tahun 1954, [[FORTRAN]] diciptakan di IBM oleh tim yang dipimpin oleh [[John Backus]]; ini adalah bahasa tingkat tinggi serbaguna pertama yang digunakan secara luas dan memiliki implementasi fungsional, kontras dengan bahasa lain yang hanya berupa rancangan di atas kertas. Ketika FORTRAN pertama kali diperkenalkan, bahasa ini dipandang dengan skeptis karena adanya kutu (''bugs''), penundaan dalam pengembangan, dan efisiensi yang dianggap kalah dibanding program tulisan tangan dalam bahasa rakitan. Namun, dalam pasar perangkat keras yang berkembang pesat, bahasa ini akhirnya dikenal karena efisiensinya. FORTRAN masih menjadi bahasa yang populer untuk [[komputasi kinerja tinggi]] dan digunakan untuk program yang menguji serta memeringkat superkomputer tercepat di dunia dalam daftar [[TOP500]].
Pada tahun 1954, [[FORTRAN]] diciptakan di IBM oleh tim yang dipimpin oleh [[John Backus]]; ini adalah bahasa tingkat tinggi serbaguna pertama yang digunakan secara luas dan memiliki implementasi fungsional, kontras dengan bahasa lain yang hanya berupa rancangan di atas kertas.<ref>[https://www.nbcnews.com/id/wbna17704662 Fortran creator John Backus dies – Tech and gadgets]. NBC News. 2007-03-20.</ref><ref>[http://www.math.grin.edu/~rebelsky/Courses/CS302/99S/Outlines/outline.02.html CSC-302 99S : Class 02: A Brief History of Programming Languages]. Math.grin.edu.</ref> Ketika FORTRAN pertama kali diperkenalkan, bahasa ini dipandang dengan skeptis karena adanya kutu (''bugs''), penundaan dalam pengembangan, dan efisiensi yang dianggap kalah dibanding program tulisan tangan dalam bahasa rakitan.<ref>David Padua. [http://www.cs.fsu.edu/~lacher/courses/COT4401/notes/cise_v2_i1/fortran.pdf The FORTRAN I Compiler]. ''Computing in Science and Engineering''. Feb 2000. Vol. 2 (1). hlm. 70–75. doi:10.1109/5992.814661.</ref> Namun, dalam pasar perangkat keras yang berkembang pesat, bahasa ini akhirnya dikenal karena efisiensinya. FORTRAN masih menjadi bahasa yang populer untuk [[komputasi kinerja tinggi]]<ref>Eugene Loh. [http://queue.acm.org/detail.cfm?id=1820518 The Ideal HPC Programming Language]. ''ACM Queue''. Association of Computing Machines. 18 June 2010. Vol. 8 (6).</ref> dan digunakan untuk program yang menguji serta memeringkat superkomputer tercepat di dunia dalam daftar [[TOP500]].<ref>[http://www.netlib.org/benchmark/hpl HPL – A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers].</ref>


Bahasa pemrograman awal lainnya dirancang oleh [[Grace Hopper]] di AS, dengan nama [[FLOW-MATIC]]. Bahasa ini dikembangkan untuk [[UNIVAC I]] di [[Remington Rand]] selama periode 1955 hingga 1959. Hopper menemukan bahwa pelanggan bisnis [[pemrosesan data]] merasa kurang nyaman dengan [[notasi matematika]]. Pada awal tahun 1955, ia dan timnya menulis spesifikasi untuk bahasa pemrograman berbasis [[Bahasa Inggris]] dan menerapkan prototipenya. Kompilator FLOW-MATIC tersedia untuk umum pada awal tahun 1958 dan selesai secara substansial pada tahun 1959. FLOW-MATIC memberikan pengaruh besar dalam perancangan [[COBOL]], karena hanya bahasa ini dan keturunan langsungnya, [[AIMACO]], yang digunakan pada saat itu.
Bahasa pemrograman awal lainnya dirancang oleh [[Grace Hopper]] di AS, dengan nama [[FLOW-MATIC]]. Bahasa ini dikembangkan untuk [[UNIVAC I]] di [[Remington Rand]] selama periode 1955 hingga 1959. Hopper menemukan bahwa pelanggan bisnis [[pemrosesan data]] merasa kurang nyaman dengan [[notasi matematika]]. Pada awal tahun 1955, ia dan timnya menulis spesifikasi untuk bahasa pemrograman berbasis [[Bahasa Inggris]] dan menerapkan prototipenya.<ref>Hopper (1978) p. 16.</ref> Kompilator FLOW-MATIC tersedia untuk umum pada awal tahun 1958 dan selesai secara substansial pada tahun 1959.<ref>Sammet (1969) p. 316</ref> FLOW-MATIC memberikan pengaruh besar dalam perancangan [[COBOL]], karena hanya bahasa ini dan keturunan langsungnya, [[AIMACO]], yang digunakan pada saat itu.<ref>Sammet (1978) p. 204.</ref>


Bahasa-bahasa lain yang masih digunakan saat ini termasuk [[Lisp (bahasa pemrograman)|LISP]] (1958), yang diciptakan oleh [[John McCarthy (ilmuwan komputer)|John McCarthy]], dan [[COBOL]] (1960), yang dibuat oleh Short Range Committee. Tonggak sejarah lain pada akhir tahun 1950-an adalah publikasi "bahasa baru untuk algoritma" oleh komite ilmuwan komputer Amerika dan Eropa; yaitu ''Laporan [[ALGOL]] 60'' ("'''ALGO'''rithmic '''L'''anguage"). Laporan ini mengonsolidasikan banyak ide yang beredar pada saat itu dan menampilkan tiga inovasi utama dalam bahasa pemrograman:
Bahasa-bahasa lain yang masih digunakan saat ini termasuk [[Lisp (bahasa pemrograman)|LISP]] (1958), yang diciptakan oleh [[John McCarthy (ilmuwan komputer)|John McCarthy]], dan [[COBOL]] (1960), yang dibuat oleh Short Range Committee. Tonggak sejarah lain pada akhir tahun 1950-an adalah publikasi "bahasa baru untuk algoritma" oleh komite ilmuwan komputer Amerika dan Eropa; yaitu ''Laporan [[ALGOL]] 60'' ("'''ALGO'''rithmic '''L'''anguage"). Laporan ini mengonsolidasikan banyak ide yang beredar pada saat itu dan menampilkan tiga inovasi utama dalam bahasa pemrograman:
Baris 38: Baris 37:
* tidak hanya bagian bebas konteks, tetapi seluruh sintaksis dan semantik bahasa didefinisikan secara formal menggunakan [[Tata bahasa Van Wijngaarden]], sebuah formalisme yang dirancang khusus untuk tujuan ini.
* tidak hanya bagian bebas konteks, tetapi seluruh sintaksis dan semantik bahasa didefinisikan secara formal menggunakan [[Tata bahasa Van Wijngaarden]], sebuah formalisme yang dirancang khusus untuk tujuan ini.
Banyaknya fitur bahasa ALGOL 68 yang jarang digunakan (misalnya, blok konkuren dan paralel) serta sistem pintasan sintaksis dan pemaksaan tipe otomatis (''automatic type coercions'') yang kompleks membuatnya kurang populer di kalangan implementor dan mendapat reputasi sebagai bahasa yang sulit. [[Niklaus Wirth]] bahkan keluar dari komite perancangan untuk menciptakan bahasa [[Pascal (bahasa pemrograman)|Pascal]] yang lebih sederhana.
Banyaknya fitur bahasa ALGOL 68 yang jarang digunakan (misalnya, blok konkuren dan paralel) serta sistem pintasan sintaksis dan pemaksaan tipe otomatis (''automatic type coercions'') yang kompleks membuatnya kurang populer di kalangan implementor dan mendapat reputasi sebagai bahasa yang sulit. [[Niklaus Wirth]] bahkan keluar dari komite perancangan untuk menciptakan bahasa [[Pascal (bahasa pemrograman)|Pascal]] yang lebih sederhana.


Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:
Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:


* 1951 – [[Bahasa rakitan|Regional Assembly Language]]
* 1951 – [[Bahasa rakitan|Regional Assembly Language]]
Baris 67: Baris 64:
* 1967 – [[Logo (bahasa pemrograman)|Logo]] (bahasa edukasi yang kemudian memengaruhi [[Smalltalk]] dan [[Scratch (bahasa pemrograman)|Scratch]]).
* 1967 – [[Logo (bahasa pemrograman)|Logo]] (bahasa edukasi yang kemudian memengaruhi [[Smalltalk]] dan [[Scratch (bahasa pemrograman)|Scratch]]).
* 1968 – [[Algol 68]]
* 1968 – [[Algol 68]]


== Memantapkan paradigma fundamental ==
== Memantapkan paradigma fundamental ==
Periode dari akhir 1960-an hingga akhir 1970-an membawa perkembangan besar bagi bahasa pemrograman. Sebagian besar [[Paradigma pemrograman|paradigma pemrograman]] utama yang digunakan saat ini diciptakan pada periode ini:
Periode dari akhir 1960-an hingga akhir 1970-an membawa perkembangan besar bagi bahasa pemrograman. Sebagian besar [[Paradigma pemrograman|paradigma pemrograman]] utama yang digunakan saat ini diciptakan pada periode ini:


Baris 79: Baris 74:
* '''[[Smalltalk]]''' (pertengahan 1970-an) menyediakan desain dasar yang lengkap untuk bahasa berorientasi objek.
* '''[[Smalltalk]]''' (pertengahan 1970-an) menyediakan desain dasar yang lengkap untuk bahasa berorientasi objek.
* '''[[Prolog]]''', dirancang pada tahun 1972 oleh [[Alain Colmerauer]], Phillipe Roussel, dan [[Robert Kowalski]], merupakan bahasa [[pemrograman logika]] pertama.
* '''[[Prolog]]''', dirancang pada tahun 1972 oleh [[Alain Colmerauer]], Phillipe Roussel, dan [[Robert Kowalski]], merupakan bahasa [[pemrograman logika]] pertama.
* '''[[ML (bahasa pemrograman)|ML]]''' membangun sistem tipe polimorfik (diciptakan oleh [[Robin Milner]] pada tahun 1973) di atas Lisp, memelopori bahasa [[pemrograman fungsional]] Berpengetikan statis (''statically typed'').
* '''[[ML (bahasa pemrograman)|ML]]''' membangun sistem tipe polimorfik (diciptakan oleh [[Robin Milner]] pada tahun 1973) di atas Lisp,<ref>Michael J. C. Gordon. [http://www.cl.cam.ac.uk/~mjcg/papers/HolHistory.pdf From LCF to HOL: a short history]. 1996. hlm. 3.</ref> memelopori bahasa [[pemrograman fungsional]] Berpengetikan statis (''statically typed'').


Masing-masing dari bahasa ini melahirkan seluruh rumpun keturunan, dan sebagian besar bahasa modern melacak silsilah mereka ke setidaknya salah satu bahasa di atas.
Masing-masing dari bahasa ini melahirkan seluruh rumpun keturunan, dan sebagian besar bahasa modern melacak silsilah mereka ke setidaknya salah satu bahasa di atas.
Baris 94: Baris 89:
* 1970 – [[Pascal (bahasa pemrograman)|Pascal]]
* 1970 – [[Pascal (bahasa pemrograman)|Pascal]]
* 1970 – [[Forth (bahasa pemrograman)|Forth]]
* 1970 – [[Forth (bahasa pemrograman)|Forth]]
* 1972 – [[C (bahasa pemrograman)|C]]
* 1972 – [[C (bahasa pemrograman)|C]]  
* 1972 – [[Smalltalk]]
* 1972 – [[Smalltalk]]
* 1972 – [[Prolog]]
* 1972 – [[Prolog]]
Baris 100: Baris 95:
* 1975 – [[Scheme (bahasa pemrograman)|Scheme]]
* 1975 – [[Scheme (bahasa pemrograman)|Scheme]]
* 1978 – [[SQL]] (bahasa kueri, yang kemudian diperluas)
* 1978 – [[SQL]] (bahasa kueri, yang kemudian diperluas)


== 1980-an: konsolidasi, modul, performa ==
== 1980-an: konsolidasi, modul, performa ==
Tahun 1980-an merupakan tahun-tahun konsolidasi relatif bagi [[bahasa imperatif]]. Alih-alih menciptakan paradigma baru, gerakan-gerakan ini memperluas ide-ide yang ditemukan pada dekade sebelumnya. [[C++]] menggabungkan pemrograman berorientasi objek dan pemrograman sistem. Pemerintah Amerika Serikat menstandardisasi [[Ada (bahasa pemrograman)|Ada]], bahasa pemrograman sistem yang ditujukan untuk digunakan oleh kontraktor pertahanan. Di Jepang dan tempat lain, dana besar dihabiskan untuk meneliti apa yang disebut [[bahasa pemrograman generasi kelima]] yang menggabungkan konstruksi pemrograman logika. Komunitas bahasa fungsional bergerak untuk menstandardisasi ML dan Lisp. Penelitian di [[Miranda (bahasa pemrograman)|Miranda]], sebuah bahasa fungsional dengan [[evaluasi malas]] (''lazy evaluation''), mulai berkembang pada dekade ini.
Tahun 1980-an merupakan tahun-tahun konsolidasi relatif bagi [[bahasa imperatif]]. Alih-alih menciptakan paradigma baru, gerakan-gerakan ini memperluas ide-ide yang ditemukan pada dekade sebelumnya. [[C++]] menggabungkan pemrograman berorientasi objek dan pemrograman sistem. Pemerintah Amerika Serikat menstandardisasi [[Ada (bahasa pemrograman)|Ada]], bahasa pemrograman sistem yang ditujukan untuk digunakan oleh kontraktor pertahanan. Di Jepang dan tempat lain, dana besar dihabiskan untuk meneliti apa yang disebut [[bahasa pemrograman generasi kelima]] yang menggabungkan konstruksi pemrograman logika. Komunitas bahasa fungsional bergerak untuk menstandardisasi ML dan Lisp. Penelitian di [[Miranda (bahasa pemrograman)|Miranda]], sebuah bahasa fungsional dengan [[evaluasi malas]] (''lazy evaluation''), mulai berkembang pada dekade ini.


Baris 112: Baris 105:
Tahun 1980-an juga membawa kemajuan dalam implementasi bahasa pemrograman. Gerakan [[komputer set instruksi terreduksi]] (RISC) dalam [[arsitektur komputer]] merumuskan bahwa perangkat keras harus dirancang untuk [[kompilator]] daripada untuk pemrogram bahasa rakitan manusia. Dibantu oleh peningkatan kecepatan [[unit pemroses sentral]] (CPU) yang memungkinkan metode kompilasi yang makin agresif, gerakan RISC memicu minat yang lebih besar pada teknologi kompilator untuk bahasa tingkat tinggi.
Tahun 1980-an juga membawa kemajuan dalam implementasi bahasa pemrograman. Gerakan [[komputer set instruksi terreduksi]] (RISC) dalam [[arsitektur komputer]] merumuskan bahwa perangkat keras harus dirancang untuk [[kompilator]] daripada untuk pemrogram bahasa rakitan manusia. Dibantu oleh peningkatan kecepatan [[unit pemroses sentral]] (CPU) yang memungkinkan metode kompilasi yang makin agresif, gerakan RISC memicu minat yang lebih besar pada teknologi kompilator untuk bahasa tingkat tinggi.


Teknologi bahasa terus berlanjut di jalur ini hingga memasuki tahun 1990-an.
Teknologi bahasa terus berlanjut di jalur ini hingga memasuki tahun 1990-an.  


Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:
Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:
Baris 129: Baris 122:
* 1988 – [[Tcl (bahasa pemrograman)|Tcl]]
* 1988 – [[Tcl (bahasa pemrograman)|Tcl]]
* 1988 – [[Wolfram Language]] (sebagai bagian dari [[Mathematica]], baru mendapatkan nama terpisah pada Juni 2013)
* 1988 – [[Wolfram Language]] (sebagai bagian dari [[Mathematica]], baru mendapatkan nama terpisah pada Juni 2013)
*
*  
 


== 1990-an: era Internet ==
== 1990-an: era Internet ==
Pertumbuhan pesat Internet pada pertengahan 1990-an menjadi peristiwa bersejarah besar berikutnya bagi bahasa pemrograman. Dengan membuka platform yang radikal bagi sistem komputer, Internet menciptakan peluang bagi diadopsinya bahasa-bahasa baru. Bahasa [[JavaScript]] naik daun dengan cepat karena integrasi awalnya dengan peramban web Netscape Navigator. Berbagai [[bahasa skrip]] lainnya memperoleh penggunaan luas dalam mengembangkan aplikasi khusus untuk server web seperti PHP. Tahun 1990-an tidak melihat adanya hal baru yang mendasar dalam [[pemrograman imperatif]], melainkan banyak penggabungan kembali dan pematangan ide-ide lama. Era ini memulai penyebaran bahasa [[pemrograman fungsional]]. Filosofi pendorong utamanya adalah produktivitas pemrogram. Banyak bahasa [[pengembangan aplikasi cepat]] (RAD) bermunculan, yang biasanya dilengkapi dengan [[lingkungan pengembangan terpadu]] (IDE), [[Pengumpulan sampah (ilmu komputer)|pengumpulan sampah]] (''garbage collection''), dan merupakan keturunan dari bahasa yang lebih tua. Semua bahasa tersebut berbasis [[Pemrograman berorientasi objek|berorientasi objek]]. Ini termasuk [[Object Pascal]], Objective Caml (diganti namanya menjadi [[OCaml]]), [[Visual Basic (klasik)|Visual Basic]], dan [[Java (bahasa pemrograman)|Java]]. Java menerima banyak perhatian pada masa ini.
Pertumbuhan pesat Internet pada pertengahan 1990-an menjadi peristiwa bersejarah besar berikutnya bagi bahasa pemrograman. Dengan membuka platform yang radikal bagi sistem komputer, Internet menciptakan peluang bagi diadopsinya bahasa-bahasa baru. Bahasa [[JavaScript]] naik daun dengan cepat karena integrasi awalnya dengan peramban web Netscape Navigator. Berbagai [[bahasa skrip]] lainnya memperoleh penggunaan luas dalam mengembangkan aplikasi khusus untuk server web seperti PHP. Tahun 1990-an tidak melihat adanya hal baru yang mendasar dalam [[pemrograman imperatif]], melainkan banyak penggabungan kembali dan pematangan ide-ide lama. Era ini memulai penyebaran bahasa [[pemrograman fungsional]]. Filosofi pendorong utamanya adalah produktivitas pemrogram. Banyak bahasa [[pengembangan aplikasi cepat]] (RAD) bermunculan, yang biasanya dilengkapi dengan [[lingkungan pengembangan terpadu]] (IDE), [[Pengumpulan sampah (ilmu komputer)|pengumpulan sampah]] (''garbage collection''), dan merupakan keturunan dari bahasa yang lebih tua. Semua bahasa tersebut berbasis [[Pemrograman berorientasi objek|berorientasi objek]]. Ini termasuk [[Object Pascal]], Objective Caml (diganti namanya menjadi [[OCaml]]), [[Visual Basic (klasik)|Visual Basic]], dan [[Java (bahasa pemrograman)|Java]]. Java menerima banyak perhatian pada masa ini.


Baris 151: Baris 142:
* 1995 – [[Ada 95]]
* 1995 – [[Ada 95]]
* 1995 – [[Java (bahasa pemrograman)|Java]]
* 1995 – [[Java (bahasa pemrograman)|Java]]
*
*  
* 1995 – [[Visual FoxPro]]
* 1995 – [[Visual FoxPro]]
* 1995 – [[JavaScript]]
* 1995 – [[JavaScript]]
Baris 157: Baris 148:
* 1996 – [[OCaml]]
* 1996 – [[OCaml]]
* 1997 – [[Rebol]]
* 1997 – [[Rebol]]


== 2000-an: paradigma pemrograman ==
== 2000-an: paradigma pemrograman ==
Evolusi bahasa pemrograman terus berlanjut, dan lebih banyak paradigma pemrograman yang mulai digunakan dalam tahap produksi.
Evolusi bahasa pemrograman terus berlanjut, dan lebih banyak paradigma pemrograman yang mulai digunakan dalam tahap produksi.


Baris 181: Baris 169:


Beberapa bahasa terkemuka yang dikembangkan selama periode ini meliputi:
Beberapa bahasa terkemuka yang dikembangkan selama periode ini meliputi:


* 2000 – [[ActionScript]]
* 2000 – [[ActionScript]]
Baris 195: Baris 182:
* 2008 – [[Nim (bahasa pemrograman)|Nim]]
* 2008 – [[Nim (bahasa pemrograman)|Nim]]
* 2009 – [[Go (bahasa pemrograman)|Go]]
* 2009 – [[Go (bahasa pemrograman)|Go]]


== 2010-an: era Seluler ==
== 2010-an: era Seluler ==
Evolusi bahasa pemrograman terus berlanjut seiring dengan bangkitnya domain pemrograman baru.
Evolusi bahasa pemrograman terus berlanjut seiring dengan bangkitnya domain pemrograman baru.


Baris 217: Baris 201:
* [[Meta Platforms|Meta]] memperkenalkan [[Hack (bahasa pemrograman)|Hack]].
* [[Meta Platforms|Meta]] memperkenalkan [[Hack (bahasa pemrograman)|Hack]].


Beberapa bahasa terkemuka yang dikembangkan selama periode ini meliputi:
Beberapa bahasa terkemuka yang dikembangkan selama periode ini meliputi:<ref>[https://www.tiobe.com/tiobe-index/ TIOBE Index, Top 100 programming languages according to TIOBE Index]. ''www.tiobe.com''. Indeks TIOBE. 22 February 2024.</ref><ref>[https://octoverse.github.com/projects GitHub's Octoverse 2018].</ref>
 


* 2011 – [[Dart (bahasa pemrograman)|Dart]]
* 2011 – [[Dart (bahasa pemrograman)|Dart]]
* 2011 – [[Kotlin]]
* 2011 – [[Kotlin]]
* 2012 – [[Julia (bahasa pemrograman)|Julia]]
* 2012 – [[Julia (bahasa pemrograman)|Julia]]
* 2012 – [[TypeScript]]
* 2012 – [[TypeScript]]  
* 2012 – [[Elixir (bahasa pemrograman)|Elixir]]
* 2012 – [[Elixir (bahasa pemrograman)|Elixir]]
* 2014 – [[Swift (bahasa pemrograman)|Swift]]
* 2014 – [[Swift (bahasa pemrograman)|Swift]]
Baris 230: Baris 213:
* 2015 – [[Raku (bahasa pemrograman)|Raku]]
* 2015 – [[Raku (bahasa pemrograman)|Raku]]
* 2016 – [[Zig (bahasa pemrograman)|Zig]]
* 2016 – [[Zig (bahasa pemrograman)|Zig]]


Bahasa pemrograman baru lainnya termasuk [[Elm (bahasa pemrograman)|Elm]], [[Ballerina (bahasa pemrograman)|Ballerina]], [[Red (bahasa pemrograman)|Red]], [[Crystal (bahasa pemrograman)|Crystal]], [[V (bahasa pemrograman)|V (Vlang)]], dan [[Reason (bahasa pemrograman)|Reason]].
Bahasa pemrograman baru lainnya termasuk [[Elm (bahasa pemrograman)|Elm]], [[Ballerina (bahasa pemrograman)|Ballerina]], [[Red (bahasa pemrograman)|Red]], [[Crystal (bahasa pemrograman)|Crystal]], [[V (bahasa pemrograman)|V (Vlang)]], dan [[Reason (bahasa pemrograman)|Reason]].


== 2020-an: Tren saat ini ==
== 2020-an: Tren saat ini ==
Pengembangan bahasa pemrograman baru terus berlanjut. Beberapa bahasa baru mencoba memberikan keuntungan dari bahasa yang sudah dikenal seperti C++ (serbaguna dan cepat) sambil menambahkan keamanan atau mengurangi kompleksitas. Bahasa baru lainnya mencoba menghadirkan kemudahan penggunaan seperti yang disediakan oleh Python dengan menambahkan performa sebagai prioritas utama.
Pengembangan bahasa pemrograman baru terus berlanjut. Beberapa bahasa baru mencoba memberikan keuntungan dari bahasa yang sudah dikenal seperti C++ (serbaguna dan cepat) sambil menambahkan keamanan atau mengurangi kompleksitas. Bahasa baru lainnya mencoba menghadirkan kemudahan penggunaan seperti yang disediakan oleh Python dengan menambahkan performa sebagai prioritas utama.


Beberapa bahasa pemrograman baru yang terkemuka meliputi:
Beberapa bahasa pemrograman baru yang terkemuka meliputi:


* 2021 – [[Microsoft Power Fx|Power Fx]]
* 2021 – [[Microsoft Power Fx|Power Fx]]  
* 2022 – [[Carbon (bahasa pemrograman)|Carbon]]
* 2022 – [[Carbon (bahasa pemrograman)|Carbon]]  
* 2023 – [[Mojo (bahasa pemrograman)|Mojo]]
* 2023 – [[Mojo (bahasa pemrograman)|Mojo]]


== Tokoh kunci ==
== Tokoh kunci ==
Beberapa tokoh penting yang membantu mengembangkan bahasa pemrograman:
Beberapa tokoh penting yang membantu mengembangkan bahasa pemrograman:
* [[Ada Lovelace]], menerbitkan program komputer pertama.
* [[Ada Lovelace]], menerbitkan program komputer pertama.
Baris 278: Baris 257:
* [[Ken Thompson]], penemu [[B (bahasa pemrograman)|B]] dan [[Go (bahasa pemrograman)|Go]].
* [[Ken Thompson]], penemu [[B (bahasa pemrograman)|B]] dan [[Go (bahasa pemrograman)|Go]].
* [[Kenneth E. Iverson]], pengembang [[APL (bahasa pemrograman)|APL]], salah satu pengembang [[J (bahasa pemrograman)|J]] bersama [[Roger Hui]].
* [[Kenneth E. Iverson]], pengembang [[APL (bahasa pemrograman)|APL]], salah satu pengembang [[J (bahasa pemrograman)|J]] bersama [[Roger Hui]].
* [[Konrad Zuse]], merancang bahasa pemrograman tingkat tinggi pertama, [[Plankalkül]] (yang memengaruhi [[ALGOL 58]]).
* [[Konrad Zuse]], merancang bahasa pemrograman tingkat tinggi pertama, [[Plankalkül]] (yang memengaruhi [[ALGOL 58]]<ref>Raúl Rojas. [https://books.google.com/books?id=nDWPW9uwZPAC&q=algol-68+konrad+zuse&pg=PA292 The First Computers: History and Architectures]. MIT Press. 2002. hlm. 292. ISBN 978-0262681377.</ref>).
* [[Kristen Nygaard]], memelopori pemrograman berorientasi objek, salah satu penemu [[Simula]].
* [[Kristen Nygaard]], memelopori pemrograman berorientasi objek, salah satu penemu [[Simula]].
* [[Larry Wall]], pencipta bahasa pemrograman Perl (lihat [[Perl]] dan [[Raku (bahasa pemrograman)|Raku]]).
* [[Larry Wall]], pencipta bahasa pemrograman Perl (lihat [[Perl]] dan [[Raku (bahasa pemrograman)|Raku]]).
Baris 299: Baris 278:


== Lihat pula ==
== Lihat pula ==
* [[Association for Computing Machinery]] (ACM)
* [[Association for Computing Machinery]] (ACM)
* [[SIGPLAN]]
* [[SIGPLAN]]
Baris 310: Baris 288:
* [[Daftar bahasa pemrograman]]
* [[Daftar bahasa pemrograman]]
* [[Daftar pemrogram]]
* [[Daftar pemrogram]]
== Referensi ==


== Bacaan lanjutan ==
== Bacaan lanjutan ==
* [[Saul Rosen|Rosen, Saul]], (editor), ''Programming Systems and Languages'', McGraw-Hill, 1967.
* [[Saul Rosen|Rosen, Saul]], (editor), ''Programming Systems and Languages'', McGraw-Hill, 1967.
* [[Jean E. Sammet|Sammet, Jean E.]], ''Programming Languages: History and Fundamentals'', Prentice-Hall, 1969.
* [[Jean E. Sammet|Sammet, Jean E.]], ''Programming Languages: History and Fundamentals'', Prentice-Hall, 1969.
*
*  
* [[Richard L. Wexelblat]] (ed.): ''History of Programming Languages'', [[Academic Press]] 1981.
* [[Richard L. Wexelblat]] (ed.): ''History of Programming Languages'', [[Academic Press]] 1981.
* Thomas J. Bergin and Richard G. Gibson (eds.): ''History of Programming Languages'', Addison Wesley, 1996.
* Thomas J. Bergin and Richard G. Gibson (eds.): ''History of Programming Languages'', Addison Wesley, 1996.
Baris 328: Baris 302:
* [http://hopl.info/ Online Historical Encyclopaedia of Programming Languages]
* [http://hopl.info/ Online Historical Encyclopaedia of Programming Languages]


 
== Referensi ==
<references />


== Sumber dan atribusi ==
== Sumber dan atribusi ==


Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Sejarah+bahasa+pemrograman&oldid=29308902 Wikipedia bahasa Indonesia], revisi 29308902 (2026-06-03T06:59:16Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Sejarah+bahasa+pemrograman&oldid=29308902 Wikipedia bahasa Indonesia], revisi 29308902 (2026-06-03T06:59:16Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
<!-- WIKI_UNISSULA_PRESENTATION_V4 -->

Revisi per 23 Agustus 2026 04.17

Sejarah bahasa pemrograman bermula dari dokumentasi komputer mekanis awal hingga alat modern untuk pengembangan perangkat lunak. Bahasa pemrograman awal sangat terspesialisasi, mengandalkan notasi matematika dan sintaksis yang serupa dan cenderung sulit dipahami.[1] Sepanjang abad ke-20, penelitian dalam teori kompilator menghasilkan penciptaan bahasa pemrograman tingkat tinggi, yang menggunakan sintaksis yang lebih mudah diakses untuk menyampaikan instruksi.

Bahasa pemrograman tingkat tinggi pertama adalah Plankalkül, yang diciptakan oleh Konrad Zuse antara tahun 1942 dan 1945.[2] Bahasa tingkat tinggi pertama yang memiliki kompilator terkait diciptakan oleh Corrado Böhm pada tahun 1951, untuk tesis PhD-nya.[3] Bahasa pertama yang tersedia secara komersial adalah FORTRAN (FORmula TRANslation), yang dikembangkan pada tahun 1956 (manual pertama muncul tahun 1956, tetapi mulai dikembangkan sejak 1954) oleh tim yang dipimpin oleh John Backus di IBM.

Sejarah awal

Selama tahun 1842–1849, Ada Lovelace menerjemahkan memoar matematikawan Italia Luigi Menabrea tentang mesin terbaru yang diusulkan oleh Charles Babbage: Mesin Analitikal (Analytical Engine); ia melengkapi memoar tersebut dengan catatan yang merinci metode penghitungan bilangan Bernoulli dengan mesin tersebut, yang diakui oleh sebagian besar sejarawan sebagai program komputer pertama yang dipublikasikan di dunia.[4]

Alat Tenun Jacquard (Jacquard Loom) dan Mesin Diferensial (Difference Engine) buatan Charles Babbage keduanya dirancang untuk menggunakan kartu berlubang (punched cards),[5][6] yang berfungsi mendeskripsikan urutan operasi yang harus dijalankan oleh mesin yang dapat diprogram tersebut.

Kode sumber komputer pertama sangat terspesialisasi untuk aplikasinya masing-masing: misalnya, Alonzo Church mampu mengekspresikan kalkulus lambda dalam bentuk rumus matematika, dan Mesin Turing merupakan abstraksi dari pengoperasian mesin penanda pita.

Bahasa pemrograman pertama

Pada tahun 1940-an, komputer bertenaga listrik modern yang pertama kali dapat dikenali mulai diciptakan. Keterbatasan kecepatan dan kapasitas memori memaksa para pemrogram untuk menulis program bahasa rakitan (assembly) yang disesuaikan secara manual. Pada akhirnya disadari bahwa pemrograman dalam bahasa rakitan membutuhkan upaya intelektual yang sangat besar.

Proposal awal untuk sebuah bahasa pemrograman tingkat tinggi adalah Plankalkül, yang dikembangkan oleh Konrad Zuse untuk komputer Z1 miliknya antara tahun 1942 dan 1945, tetapi tidak diimplementasikan pada saat itu.[7]

Bahasa pemrograman berfungsi pertama yang dirancang untuk menyampaikan instruksi ke komputer ditulis pada awal tahun 1950-an. Short Code milik John Mauchly, yang diusulkan pada tahun 1949, adalah salah satu bahasa tingkat tinggi pertama yang pernah dikembangkan untuk komputer elektronik.[8] Berbeda dengan kode mesin, pernyataan dalam Short Code mewakili ekspresi matematika dalam bentuk yang dapat dipahami. Namun, program tersebut harus diinterpretasikan ke dalam kode mesin setiap kali dijalankan, membuat prosesnya jauh lebih lambat daripada menjalankan kode mesin yang setara.

Pada awal tahun 1950-an, Alick Glennie mengembangkan Autocode, yang kemungkinan merupakan bahasa pemrograman terkompilasi pertama, di Universitas Manchester. Pada tahun 1954, iterasi kedua dari bahasa tersebut, yang dikenal sebagai "Mark 1 Autocode", dikembangkan untuk Mark 1 oleh R. A. Brooker. Brooker, bersama Universitas Manchester, juga mengembangkan autocode untuk Ferranti Mercury pada tahun 1950-an. Versi untuk EDSAC 2 dirancang oleh Douglas Hartree dari Laboratorium Matematika Universitas Cambridge pada tahun 1961. Dikenal sebagai EDSAC 2 Autocode, bahasa ini merupakan pengembangan langsung dari Mercury Autocode yang disesuaikan dengan kondisi lokal, dan terkenal karena optimalisasi kode objek serta diagnosis bahasa sumbernya yang tergolong maju pada masa itu. Jalur pengembangan yang sezaman tetapi terpisah, Atlas Autocode, dikembangkan untuk mesin Atlas 1 di Universitas Manchester.

Pada tahun 1954, FORTRAN diciptakan di IBM oleh tim yang dipimpin oleh John Backus; ini adalah bahasa tingkat tinggi serbaguna pertama yang digunakan secara luas dan memiliki implementasi fungsional, kontras dengan bahasa lain yang hanya berupa rancangan di atas kertas.[9][10] Ketika FORTRAN pertama kali diperkenalkan, bahasa ini dipandang dengan skeptis karena adanya kutu (bugs), penundaan dalam pengembangan, dan efisiensi yang dianggap kalah dibanding program tulisan tangan dalam bahasa rakitan.[11] Namun, dalam pasar perangkat keras yang berkembang pesat, bahasa ini akhirnya dikenal karena efisiensinya. FORTRAN masih menjadi bahasa yang populer untuk komputasi kinerja tinggi[12] dan digunakan untuk program yang menguji serta memeringkat superkomputer tercepat di dunia dalam daftar TOP500.[13]

Bahasa pemrograman awal lainnya dirancang oleh Grace Hopper di AS, dengan nama FLOW-MATIC. Bahasa ini dikembangkan untuk UNIVAC I di Remington Rand selama periode 1955 hingga 1959. Hopper menemukan bahwa pelanggan bisnis pemrosesan data merasa kurang nyaman dengan notasi matematika. Pada awal tahun 1955, ia dan timnya menulis spesifikasi untuk bahasa pemrograman berbasis Bahasa Inggris dan menerapkan prototipenya.[14] Kompilator FLOW-MATIC tersedia untuk umum pada awal tahun 1958 dan selesai secara substansial pada tahun 1959.[15] FLOW-MATIC memberikan pengaruh besar dalam perancangan COBOL, karena hanya bahasa ini dan keturunan langsungnya, AIMACO, yang digunakan pada saat itu.[16]

Bahasa-bahasa lain yang masih digunakan saat ini termasuk LISP (1958), yang diciptakan oleh John McCarthy, dan COBOL (1960), yang dibuat oleh Short Range Committee. Tonggak sejarah lain pada akhir tahun 1950-an adalah publikasi "bahasa baru untuk algoritma" oleh komite ilmuwan komputer Amerika dan Eropa; yaitu Laporan ALGOL 60 ("ALGOrithmic Language"). Laporan ini mengonsolidasikan banyak ide yang beredar pada saat itu dan menampilkan tiga inovasi utama dalam bahasa pemrograman:

  • struktur blok bersarang (nested block structure): urutan kode dan deklarasi terkait dapat dikelompokkan ke dalam blok tanpa harus diubah menjadi prosedur terpisah yang dinamai secara eksplisit;
  • cakupan leksikal (lexical scoping): sebuah blok dapat memiliki variabel, prosedur, dan fungsi privatnya sendiri yang tidak terlihat oleh kode di luar blok tersebut, yang dikenal dengan prinsip penyembunyian informasi.

Inovasi lainnya, yang terkait dengan hal ini, adalah cara bahasa tersebut dideskripsikan:

  • notasi yang tepat secara matematis, Bentuk Backus–Naur (BNF), digunakan untuk mendeskripsikan sintaksis bahasa tersebut. Hampir semua bahasa pemrograman berikutnya menggunakan varian BNF untuk mendeskripsikan bagian tata bahasa bebas konteks dari sintaksis mereka.

ALGOL 60 sangat berpengaruh dalam perancangan bahasa-bahasa generasi berikutnya, beberapa di antaranya segera menjadi lebih populer. Sistem Burroughs Large Systems dirancang untuk diprogram menggunakan subset ALGOL yang diperluas.

Ide-ide kunci ALGOL dilanjutkan hingga menghasilkan ALGOL 68:

  • sintaksis dan semantik menjadi lebih ortogonal, dengan adanya rutinitas anonim, sistem pengetikan rekursif dengan fungsi tingkat tinggi, dsb.;
  • tidak hanya bagian bebas konteks, tetapi seluruh sintaksis dan semantik bahasa didefinisikan secara formal menggunakan Tata bahasa Van Wijngaarden, sebuah formalisme yang dirancang khusus untuk tujuan ini.

Banyaknya fitur bahasa ALGOL 68 yang jarang digunakan (misalnya, blok konkuren dan paralel) serta sistem pintasan sintaksis dan pemaksaan tipe otomatis (automatic type coercions) yang kompleks membuatnya kurang populer di kalangan implementor dan mendapat reputasi sebagai bahasa yang sulit. Niklaus Wirth bahkan keluar dari komite perancangan untuk menciptakan bahasa Pascal yang lebih sederhana.

Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:

Memantapkan paradigma fundamental

Periode dari akhir 1960-an hingga akhir 1970-an membawa perkembangan besar bagi bahasa pemrograman. Sebagian besar paradigma pemrograman utama yang digunakan saat ini diciptakan pada periode ini:

Masing-masing dari bahasa ini melahirkan seluruh rumpun keturunan, dan sebagian besar bahasa modern melacak silsilah mereka ke setidaknya salah satu bahasa di atas.

Tahun 1960-an dan 1970-an juga diwarnai perdebatan sengit mengenai keunggulan "pemrograman terstruktur", yang pada dasarnya berarti pemrograman tanpa menggunakan perintah goto. Sebagian besar pemrogram percaya bahwa, bahkan dalam bahasa yang menyediakan goto, menggunakannya adalah gaya pemrograman yang buruk kecuali dalam situasi yang sangat jarang. Perdebatan ini sangat terkait dengan desain bahasa: beberapa bahasa tidak memiliki goto, sehingga memaksa penerapan pemrograman terstruktur.

Untuk menyediakan waktu kompilasi yang lebih cepat, beberapa bahasa disusun untuk "kompilator satu-pass" (one-pass compilers) yang mengharuskan rutinitas bawahan didefinisikan terlebih dahulu, seperti pada Pascal, di mana rutinitas utama atau fungsi penggerak berada di bagian akhir program.

Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:

  • 1967 – BCPL (pendahulu bahasa B)
  • 1967 – Logo
  • 1969 – B (pendahulu bahasa C)
  • 1970 – Pascal
  • 1970 – Forth
  • 1972 – C
  • 1972 – Smalltalk
  • 1972 – Prolog
  • 1973 – ML
  • 1975 – Scheme
  • 1978 – SQL (bahasa kueri, yang kemudian diperluas)

1980-an: konsolidasi, modul, performa

Tahun 1980-an merupakan tahun-tahun konsolidasi relatif bagi bahasa imperatif. Alih-alih menciptakan paradigma baru, gerakan-gerakan ini memperluas ide-ide yang ditemukan pada dekade sebelumnya. C++ menggabungkan pemrograman berorientasi objek dan pemrograman sistem. Pemerintah Amerika Serikat menstandardisasi Ada, bahasa pemrograman sistem yang ditujukan untuk digunakan oleh kontraktor pertahanan. Di Jepang dan tempat lain, dana besar dihabiskan untuk meneliti apa yang disebut bahasa pemrograman generasi kelima yang menggabungkan konstruksi pemrograman logika. Komunitas bahasa fungsional bergerak untuk menstandardisasi ML dan Lisp. Penelitian di Miranda, sebuah bahasa fungsional dengan evaluasi malas (lazy evaluation), mulai berkembang pada dekade ini.

Satu tren baru yang penting dalam desain bahasa adalah peningkatan fokus pada pemrograman untuk sistem skala besar melalui penggunaan modul, atau unit organisasi kode skala besar. Modula, Ada, dan ML semuanya mengembangkan sistem modul yang menonjol pada tahun 1980-an. Sistem modul sering kali dipadukan dengan konstruksi pemrograman generik: generik pada dasarnya adalah modul yang diparameterisasi (lihat juga Polimorfisme (ilmu komputer)).

Meskipun paradigma baru yang besar untuk bahasa pemrograman imperatif tidak muncul, banyak peneliti memperluas ide-ide dari bahasa sebelumnya dan menerapkannya pada konteks baru. Sebagai contoh, bahasa dari sistem Argus dan Emerald mengadaptasi pemrograman berorientasi objek untuk sistem komputasi terdistribusi.

Tahun 1980-an juga membawa kemajuan dalam implementasi bahasa pemrograman. Gerakan komputer set instruksi terreduksi (RISC) dalam arsitektur komputer merumuskan bahwa perangkat keras harus dirancang untuk kompilator daripada untuk pemrogram bahasa rakitan manusia. Dibantu oleh peningkatan kecepatan unit pemroses sentral (CPU) yang memungkinkan metode kompilasi yang makin agresif, gerakan RISC memicu minat yang lebih besar pada teknologi kompilator untuk bahasa tingkat tinggi.

Teknologi bahasa terus berlanjut di jalur ini hingga memasuki tahun 1990-an.

Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:

1990-an: era Internet

Pertumbuhan pesat Internet pada pertengahan 1990-an menjadi peristiwa bersejarah besar berikutnya bagi bahasa pemrograman. Dengan membuka platform yang radikal bagi sistem komputer, Internet menciptakan peluang bagi diadopsinya bahasa-bahasa baru. Bahasa JavaScript naik daun dengan cepat karena integrasi awalnya dengan peramban web Netscape Navigator. Berbagai bahasa skrip lainnya memperoleh penggunaan luas dalam mengembangkan aplikasi khusus untuk server web seperti PHP. Tahun 1990-an tidak melihat adanya hal baru yang mendasar dalam pemrograman imperatif, melainkan banyak penggabungan kembali dan pematangan ide-ide lama. Era ini memulai penyebaran bahasa pemrograman fungsional. Filosofi pendorong utamanya adalah produktivitas pemrogram. Banyak bahasa pengembangan aplikasi cepat (RAD) bermunculan, yang biasanya dilengkapi dengan lingkungan pengembangan terpadu (IDE), pengumpulan sampah (garbage collection), dan merupakan keturunan dari bahasa yang lebih tua. Semua bahasa tersebut berbasis berorientasi objek. Ini termasuk Object Pascal, Objective Caml (diganti namanya menjadi OCaml), Visual Basic, dan Java. Java menerima banyak perhatian pada masa ini.

Lebih radikal dan inovatif daripada bahasa RAD adalah bahasa skrip baru. Bahasa-bahasa ini tidak diturunkan secara langsung dari bahasa lain dan menampilkan sintaksis baru serta penggabungan fitur yang lebih bebas. Banyak yang menganggap bahasa skrip ini lebih produktif daripada bahasa RAD, tetapi sering kali karena pilihan yang membuat program kecil menjadi lebih sederhana tetapi program besar menjadi lebih sulit untuk ditulis dan dipelihara. Meskipun demikian, bahasa skrip menjadi bahasa yang paling menonjol digunakan terkait dengan Web.

Beberapa bahasa pemrograman menyertakan bahasa lain dalam distribusinya untuk menghemat waktu pengembangan. Sebagai contoh, Python dan Ruby menyertakan Tcl untuk mendukung pemrograman antarmuka pengguna grafis (GUI) melalui pustaka seperti Tkinter.

Beberapa bahasa terkemuka yang dikembangkan pada periode ini meliputi:

2000-an: paradigma pemrograman

Evolusi bahasa pemrograman terus berlanjut, dan lebih banyak paradigma pemrograman yang mulai digunakan dalam tahap produksi.

Beberapa tren tersebut meliputi:

Perusahaan Big Tech memperkenalkan beberapa bahasa pemrograman baru yang dirancang untuk melayani kebutuhan mereka sendiri, sebagai contoh:

Beberapa bahasa terkemuka yang dikembangkan selama periode ini meliputi:

2010-an: era Seluler

Evolusi bahasa pemrograman terus berlanjut seiring dengan bangkitnya domain pemrograman baru.

  • Peningkatan minat pada aspek distribusi dan mobilitas (mobility).
  • Integrasi dengan basis data, termasuk XML dan basis data relasional.
  • Sumber terbuka sebagai filosofi pengembangan untuk bahasa, termasuk GNU Compiler Collection (GCC) dan bahasa-bahasa seperti PHP, Python, Ruby, dan Scala.
  • Bahasa paralel masif untuk unit pemroses grafis (GPU) dan larik superkomputer, termasuk OpenCL.
  • Penelitian awal tentang komputasi kuantum dan bahasa pemrograman kuantum.
  • Beberapa bahasa pemrograman baru mencoba menyediakan pengganti modern untuk bahasa pemrograman C.
  • Banyak bahasa pemrograman baru dipengaruhi oleh bahasa dinamis yang populer dan menjanjikan penambahan keamanan tipe tanpa menurunkan produktivitas.
  • Banyak bahasa pemrograman baru menggunakan LLVM dalam implementasinya.

Banyak perusahaan Big Tech terus memperkenalkan bahasa pemrograman baru yang dirancang untuk memenuhi kebutuhan internal mereka dan menyediakan dukungan kelas satu untuk platform mereka. Sebagai contoh:

Beberapa bahasa terkemuka yang dikembangkan selama periode ini meliputi:[18][19]

Bahasa pemrograman baru lainnya termasuk Elm, Ballerina, Red, Crystal, V (Vlang), dan Reason.

2020-an: Tren saat ini

Pengembangan bahasa pemrograman baru terus berlanjut. Beberapa bahasa baru mencoba memberikan keuntungan dari bahasa yang sudah dikenal seperti C++ (serbaguna dan cepat) sambil menambahkan keamanan atau mengurangi kompleksitas. Bahasa baru lainnya mencoba menghadirkan kemudahan penggunaan seperti yang disediakan oleh Python dengan menambahkan performa sebagai prioritas utama.

Beberapa bahasa pemrograman baru yang terkemuka meliputi:

Tokoh kunci

Beberapa tokoh penting yang membantu mengembangkan bahasa pemrograman:

Lihat pula

Bacaan lanjutan

  • Rosen, Saul, (editor), Programming Systems and Languages, McGraw-Hill, 1967.
  • Sammet, Jean E., Programming Languages: History and Fundamentals, Prentice-Hall, 1969.
  • Richard L. Wexelblat (ed.): History of Programming Languages, Academic Press 1981.
  • Thomas J. Bergin and Richard G. Gibson (eds.): History of Programming Languages, Addison Wesley, 1996.
  • Sebesta, Robert W. Concepts of programming languages. Pearson Education India, 2004.

Pranala luar

Referensi

  1. Hopper (1978) p. 16.
  2. Donald E. Knuth. Early development of programming languages. Encyclopedia of Computer Science and Technology. Marcel Dekker. Vol. 7. hlm. 419–493.
  3. Tesis PhD Corrado Böhm
  4. J. Fuegi. Lovelace & Babbage and the creation of the 1843 'notes'. Annals of the History of Computing. October–December 2003. Vol. 25 (4). hlm. 16–26. doi:10.1109/MAHC.2003.1253887.
  5. Rebecca Bales. Charles Babbage Analytical Engine Explained. history-computer.com. 24 July 2023.
  6. Doron Swade. The Engines. computerhistory.org.
  7. Pada tahun 1998 dan 2000, kompilator dibuat untuk bahasa tersebut sebagai eksperimen sejarah. Rojas, Raúl, et al. (2000). "Plankalkül: The First High-Level Programming Language and its Implementation". Institut frame Informatik, Freie Universität Berlin, Technical Report B-3/2000. (teks lengkap)
  8. W.S. Sebesta. Concepts of Programming Languages. Pearson/Addison-Wesley. 2006. hlm. 44. ISBN 978-0-321-33025-3.
  9. Fortran creator John Backus dies – Tech and gadgets. NBC News. 2007-03-20.
  10. CSC-302 99S : Class 02: A Brief History of Programming Languages. Math.grin.edu.
  11. David Padua. The FORTRAN I Compiler. Computing in Science and Engineering. Feb 2000. Vol. 2 (1). hlm. 70–75. doi:10.1109/5992.814661.
  12. Eugene Loh. The Ideal HPC Programming Language. ACM Queue. Association of Computing Machines. 18 June 2010. Vol. 8 (6).
  13. HPL – A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers.
  14. Hopper (1978) p. 16.
  15. Sammet (1969) p. 316
  16. Sammet (1978) p. 204.
  17. Michael J. C. Gordon. From LCF to HOL: a short history. 1996. hlm. 3.
  18. TIOBE Index, Top 100 programming languages according to TIOBE Index. www.tiobe.com. Indeks TIOBE. 22 February 2024.
  19. GitHub's Octoverse 2018.
  20. Raúl Rojas. The First Computers: History and Architectures. MIT Press. 2002. hlm. 292. ISBN 978-0262681377.

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 29308902 (2026-06-03T06:59:16Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.