KEMUNCULAN SISTEM OPERASI UNIX
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.
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.
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.
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.