Pemrograman sudah ada semenjak adanya komputer pertama diciptakan. Tapi pada awalnya programmer bekerja dengan bahasa komputer yang sangat sulit untuk di pahami oleh manusia, bahasa itu adalah bahasa mesin.
Karena sangat sulit untuk bekerja dengan bahasa mesin, maka dari itu dibuatlah bahasa Assembly yang merupakan bahasa rakitan, kumpulan dari singkatan kode-kode.
Bahasa tingkat rendah Assembly pun masih sulit untuk manusia, maka manusia menciptakan bahasa pemrograman tingkat tinggi yang mudah untuk dipahami oleh manusia. Waktu ke waktu semakin banyak pengembang yang berusaha untuk mengembangkan bahasa pemrograman, banyak bahasa tingkat tinggi yang bermunculan dengan fasilitas yang mereka tawarkan, salah satunya adalah C++.
Sejarah Bahasa Pemrograman C
Bahasa C dikembangken di Bell lab pada tahun 1972 ditulis pertama kali oleh Brian W. Kernighan dan Denies M. Ricthie merupakan bahasa turunan atau pengembangan dari bahasa B yang ditulis oleh Ken Thompson pada tahun 1970, yang juga merupakan bahasa yang diturunkan oleh bahasa sebelumnya, yaitu BCL.
Bahasa C pada awalnya dirancang sebagai bahasa pemrograman yang dioperasikan pada sistem operasi UNIX. Bahasa C merupakan bahasa pemrograman yang tergolong di antara bahasa tinggat rendah dan tingkat tinggi yang biasa disebut dengan Bahasa Tingkat Menengah. Bahasa C mempunyai banyak kemampuan yang sering digunakan diantaranya kemampuan untuk membuat perangkat lunak, misalnya dBASE, Word Star dan lain-lain.
Sejarah Bahasa Pemrograman C++
Bahasa C++ lahir pada tahun 1980, yang dibuat oleh
Bjarne Stroustrup di AT&T Bell
Laboratories awal tahun 1980-an berdasarkan
C ANSI (American National Standard Institute). Pertama kali,
prototype C++ muncul sebagai C yang dipercanggih dengan fasilitas kelas, bahasa tersebut disebut “C dengan kelas” (
C with Class).
Pada tahun 1983-1984, C dengan kelas disempurnakan dengan menambahkan fasilitas overloading operator, yang mulanya disebut “a better C” kemudian berganti nama pada tahun 1983 menjadi C++. Simbol ++
merupakan operator penaikan pada C, digunakan untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.
Borland International merilis kompiler Borland C++ dan Turbo C++. Kedua kompiler ini sama-sama dapat digunakan untuk mengkompilasi kode C++. Bedanya, Borland C++ selain dapat digunakan dibawah lingkungan DOS, juga dapat digunakan untuk pemrograman Windows. Selain Borland International beberapa perusahaan lain juga merilis kompiler C++, seperti Topspeed C++ dan Zortech C++.
Awal mula Bjarne Stroustrup membuat membuat C++ adalah ketika Bjarne Stroustrup melakukan pekerjaan untuk gelar Ph.D. tesis pada salah satu bahasa pemrograman dan Stroustrup memiliki kesempatan untuk bekerja dengan bahasa tersebut yang disebut Simula,
Simula merupakan bahasa untuk simulasi. The Simula 67 bahasa yang merupakan varian bekerja dengan Stroustrup. bahasa tersebut dianggap sebagai bahasa pertama untuk mendukung paradigma
pemrograman berorientasi obyek. Stroustrup menyadari bahwa paradigma ini sangat berguna untuk pengembangan perangkat lunak, dengan kelebihan bahasa Simula tersebut tetapi bahasa Simula memiliki kekurangan yaitu, bahasa Simula terlalu lambat untuk penggunaan praktis.
Tak Lama kemudian, ia memulai untuk mengerjakan bahasa pemrograman berdasarkan ide yang telah ia dapatkan. Stroustrup mengerjakan C++ dengan nama awalnya yaitu C With Class. yang dimaksudkan untuk menjadi superset dari bahasa C, dengan menambahkan pemrograman berorientasi obyek ke dalam bahasa C.
Alasan Kenapa Stroustrup lebih memilih untuk mengembangkan C adalah, karena bahasa pemrograman C merupakan bahasa pemrograman yang sangat popular karena kecepatan, kinerja yang bagus, memungkinkan untuk melakukan pengkodean bahasa tingkat rendah dan lain sebagainya.
Kompiler Pertama C with class disebut Cfront, yang berasal dari kompiler C disebut CPRE. CFront adalah program yang dirancang untuk menerjemahkan C dengan Kelas ke C. hal menarik yang patut untuk diketahui adalah bahwa Cfront sebagian besar ditulis dalam C with Class, membuatnya menjadi kompiler self hosting(Kompiler yang dapat mengkompilasi diri sendiri).
Cfront kemudian ditinggalkan pada tahun 1993 setelah dianggap sulit untuk mengintegrasikan fitur baru ke dalamnya. Meskipun demikian, Cfront membuat dampak besar pada implementasi kompiler masa depan dan pada sistem operasi Unix.
Pada tahun 1985, Stroustrup membuat buku referensi berjudul The C ++ Programming Language diterbitkan. Pada tahun yang sama, C ++ dilaksanakan sebagai produk komersial. Bahasa ini belum secara resmi distandarkan. Bahasa ini diperbarui lagi pada tahun 1989 dan menambahkan fasilitas Protected member, Static member, serta Inheritance.
Pada tahun 1990, buku The Annotated C ++ Reference dirilis. Pada tahun yang sama Borland dan Turbo C ++ kompiler dirilis sebagai produk komersial. Turbo C ++ menambahkan banyak library tambahan yang akan memiliki dampak yang besar terhadap pengembangan C ++. Meskipun rilis stabil terakhir Turbo C ++ pada tahun 2006, tapi kompiler tersebut sampai saat ini masih banyak digunakan.
Pada tahun 1998, panitia standar C ++ menerbitkan Standar Internasional pertama untuk C ++ ISO / IEC 14882: 1998. Pada tahun 2003, panitia mendapati beberapa masalah yang dilaporkan dengan C++ Standar mereka pada tahun 1998, karena itu bahasa diperbaharui yang merupakan revisi masalah sebelumnya dan dijuluki C ++ 03.
Pada tahun 2005, panitia Standarisasi C ++ merilis laporan teknis yang dijuluki TR1, merinci berbagai fitur mereka berencana untuk menambah C ++ standar terbaru. Standar baru itu secara informal dijuluki C ++ 0x seperti yang diharapkan akan dirilis sebelum akhir dekade pertama. Namun, ironisnya, standar baru tidak dirilis sampai pertengahan 2011.
Pada pertengahan 2011, C ++ 11 selesai dan merupakan C++ standar baru. The Library Project Meningkat, membuat dampak yang besar terhadap standar baru, dan beberapa modul baru berasal langsung dari Boost perpustakaan. Beberapa fitur baru termasuk dukungan ekspresi regular merupakan sebuah perpustakaan pengacakan komprehensif, perpustakaan threading standar , fungsi baru untuk pengulangan, Foreach Loop, kata kunci Auto, Class New Container, dukungan yang lebih baik untuk daftar inisialisasi Array, dan Variadic Template.
C++ Standardization
Tahun | C++ Standar | Nama Informal |
1998 | ISO/IEC 14882:1998 | C++98 |
2003 | ISO/IEC 14882:2003 | C++03 |
2011 | ISO/IEC 14882:2011 | C++11, C++0x |
2014 | ISO/IEC 14882:2014 | C++14, C++1y |
2017 | ISO/IEC 14882:2017 | C++17, C++1z |
2020 | Akan Ditentukan | C++20 |
Kisah dimulai dari sistem operasi UNIX, yang mana inilah tujuan awal dari pengembangan bahasa C.
Sekitar tahun 1960, Massachusetts Institute of Technology, Bell Labs, dan General Electric bekerjasama mengembangkan sebuah sistem operasi untuk komputer GE-645 mainframe. Pada era tersebut sebuah komputer bisa sebesar satu ruangan.
Sistem operasi ini dinamakan Multics (Multiplexed Information and Computer Services). Kemunculan Multics membawa banyak inovasi, namun bahasa pemrograman yang dipakai cukup kompleks.
Tidak ingin membuang banyak waktu dengan pengembangan Multics, peneliti dari Bell Labs lambat laun meninggalkan project tersebut, diantaranya adalah Ken Thompson, Dennis Ritchie, M. D. McIlroy, dan J. F. Ossanna.
Bell Labs sendiri merupakan sebuah laboratorium multi disiplin ilmu yang berlokasi di Murray Hill, New Jersey, Amerika Serikat. Saat itu Bell Labs berada di bawah perusahaan AT&T Corporation (sekarang Bell Labs sudah berada di bawah Nokia: www.bell-labs.com)
Peneliti di Bell Labs mencoba mengembangkan ulang sistem operasi yang lebih sederhana dibandingkan Multics. Sistem operasi ini diberi nama Unics (Uniplexed Information and Computing Service), yang kemudian berubah nama menjadi UNIX.
Bell Labs - Sumber: wikipedia.org
Bell Labs – Sumber: wikipedia.org
Bahasa C untuk Mengembangkan UNIX
Pada awalnya, sistem operasi UNIX dibuat menggunakan bahasa assembly. Sistem operasi ini pertama kali diimplementasikan ke dalam komputer PDP-7 dan berikutnya ke dalam PDP-11 oleh Dennis Ritchie and Ken Thompson.
Agar lebih sederhana, pengembangan UNIX kemudian diubah menggunakan bahasa pemrograman B, yakni sebuah bahasa yang dibuat oleh Ken Thompson. Akan tetapi bahasa B memiliki keterbatasan sehingga beberapa fitur di PDP-11 tidak bisa diprogram. Oleh karena itu dikembangkanlah bahasa pemrograman C. Nama bahasa C dipilih sebagai huruf abjad selanjutnya setelah B.
Ken Thompson (kiri) with Dennis Ritchie (kanan)
Ken Thompson (kiri) with Dennis Ritchie (kanan) – Sumber: wikipedia.org
Bahasa pemrograman C ini dikembangkan antara tahun 1969 – 1972 oleh Dennis Ritchie. Yang kemudian dipakai untuk menulis ulang sistem operasi UNIX. Selain untuk mengembangkan UNIX, bahasa C juga dirilis sebagai bahasa pemrograman umum.
Pada tahun 1978, Brian Kernighan dan Dennis Ritchie merilis buku “The C Programming Language”, yang juga sering disebut sebagai “K&R” (singkatan dari nama penulisnya: Kernighan dan Ritchie). Buku “The C Programming Language” menjadi standar untuk buku programming modern, dan masih sering dijadikan bahan referensi bahasa C di kalangan akademisi.
Perkembangan UNIX dan Bahasa C
Sistem Operasi UNIX yang dibuat oleh Bell Labs ternyata cukup populer. Pada era tersebut sebuah komputer berharga sangat mahal dan berukuran besar (butuh satu ruangan khusus). Oleh karena itu komputer UNIX hanya terdapat di kantor pemerintah dan beberapa Universitas besar di Amerika Serikat.
Masuknya UNIX ke Universitas inilah yang turut mempopulerkan penggunaan bahasa pemrograman C. Mau tidak mau mahasiswa yang ingin mengembangkan aplikasi UNIX juga harus menguasai bahasa pemrograman C. Ini pula yang menjadi alasan berkurangnya penggunaan bahasa pemrograman Pascal (yang juga cukup populer pada saat itu).
Perkembangan UNIX tidak berhenti sampai disini. Pada tahun 1983, Richard Stallman membuat sebuah project open source: GNU (singkatan dari GNU’s Not Unix). Project ini ingin membuat sebuah sistem operasi gratis yang mirip seperti UNIX dan bisa diinstall di komputer pribadi, tidak hanya di komputer-komputer besar.
Pada tahun 1991, Linus Torvalds merilis kernel (otak pemrosesan sebuah sistem operasi) yang dinamakan Linux. Linux juga dirilis dengan lisensi GNU, yang mana boleh digunakan, dipelajari, dimodifikasi dan disebarkan oleh siapa saja. Linux sendiri terinspirasi dari UNIX dan juga dikembangkan menggunakan bahasa pemrograman C.
Apple juga tidak ketinggalan menggunakan UNIX. Pada tahun 1997 – 2001, sistem operasi MacOS dikembangkan ulang dari NeXTSTEP, sebuah sistem Unix. MacOS kemudian dijadikan sebagai basis untuk seluruh sistem operasi Apple, mulai dari sistem operasi MacOS untuk Komputer dan Laptop, sistem operasi iOS untuk smartphone, serta sistem operasi watchOS dan tvOS .
Sistem operasi Android juga tidak lepas dari UNIX. Android sendiri menggunakan kernel Linux yang telah di modifikasi.
Seluruh sistem operasi ini menjadi keluarga yang dikenal sebagai UNIX-like, dan hampir semuanya ditulis menggunakan bahasa pemrograman C.
Penggunaan Bahasa Pemrograman C
Melihat banyaknya implementasi dari bahasa C dalam sistem UNIX dan “keluarganya” (UNIX-like), maka otomatis jika anda ingin mempelajari “daleman” dari berbagai sistem operasi seperti UNIX, Linux, MacOS hingga Android, akan butuh bahasa pemrograman C.
Berbagai compiler bahasa pemrograman juga dikembangkan menggunakan bahasa C. Sebagai contoh, compiler untuk bahasa pemrograman PHP dibuat menggunakan bahasa C. Aplikasi MySQL juga dibuat dari bahasa C. Apabila anda ingin berkontribusi sebagai pengembang dari aplikasi MySQL, PHP, dan sebagian besar project open-source, mayoritas juga menggunakan bahasa C.
Tapi bukan berarti jika kita ingin membuat aplikasi di UNIX, Linux, MacOS dan Android, harus menggunakan bahasa C. Bahasa C baru perlu untuk memodifikasi sistem tersebut.
Bahasa C adalah sebuah bahasa pemrograman yang sangat powerful. Hampir semua aplikasi bisa dibuat menggunakan bahasa pemrograman C. Bahkan, jika anda ingin membuat sebuah bahasa pemrograman baru, bahasa C merupakan pilihan yang pas untuk mengembangkannya.
Bahasa PHP dikembangkan dari C
Bahasa PHP dikembangkan dari C – sumber: wikipedia.org
Versi Bahasa Pemrograman C
Seperti layaknya berbagai aplikasi komputer, bahasa C juga memiliki beberapa versi atau tahap pengembangan. Versi bahasa C ini dikenal sebagai ANSI C.
ANSI adalah singkatan dari American National Standards Institute. Sebuah badan standarisasi yang berkantor pusat di Amerika Serikat. Kalau di Indonesia, bisa disamakan dengan SNI (Standar Nasional Indonesia). Selain ANSI, badan standarisasi lain yang cukup terkenal adalah ISO, IEEE dan W3C.
Standarisasi diperlukan agar terdapat “patokan” baku dari sebuah bahasa C. Karena bisa saja sebuah perusahaan mengembangkan bahasa C kemudian menambah beberapa fitur yang belum tentu tersedia di aplikasi lain.
Terdapat beberapa versi ANSI C yang ditandai dengan tahun saat standar tersebut dirilis:
C89: Standar bahasa C pertama yang dirilis oleh ANSI pada tahun 1989. Versi ini dikenal sebagai C89.
C99: Pada tahun 1999, ANSI menambahkan beberapa fitur baru ke dalam bahasa C, seperti inline functions, beberapa tipe data baru dan flexible array-members. Versi ini dikenal sebagai C99.
C11: Sesuai dengan namanya, standar C11 diperbaharui pada tahun 2011. Terdapat penambahan fitur-fitur baru, seperti macros, atomic operations, dan anonymous structures yang tidak terdapat di C99.
C18: Standar ini dirilis pada bulan Juni 2018. Tidak ada penambahan fitur baru jika dibandingkan C11, namun berisi perbaikan bug dan error yang ada di standar C18.
ANSI C18 merupakan versi paling baru, namun karena masih sangat baru (hanya beda beberapa bulan sejak update artikel ini di Agustus 2018), akan butuh waktu agar semua compiler C mendukungnya. Karena itu jika anda mencari compiler C, boleh memilih yang menggunakan standar C11 sambil menunggu update ke C18.v
Referensi
https://www.duniailkom.com/tutorial-belajar-c-sejarah-bahasa-pemrograman-c/
https://www.belajarcpp.com/tutorial/cpp/sejarah-cpp/