Bahasa
C# adalah sebuah
bahasa pemrograman modern yang bersifat
general-purpose,
berorientasi objek, yang dapat digunakan untuk membuat
program di atas arsitektur
Microsoft .NET Framework. Bahasa C# ini memiliki kemiripan dengan bahasa
Java,
C dan
C++ (selengkapnya dapat dilihat pada Sejarah Bahasa C#).
Bahasa pemrograman ini dikembangkan oleh sebuah tim pengembang di
Microsoft yang dipimpin oleh
Anders Hejlsberg, seorang yang telah lama malang melintang di dunia pengembangan bahasa pemrograman karena memang ialah yang membuat
Borland Turbo Pascal,
Borland Delphi, dan juga
Microsoft J++.
Kini, C# telah distandarisasi oleh
European Computer Manufacturer Association (ECMA) dan juga
International Organization for Standardization (ISO) dan telah menginjak versi 3.0 yang mendukung beberapa fitur baru semacam
Language Integrated Query (LINQ) dan lain-lainnya.
[sunting] Sejarah perkembangan bahasa pemrograman C#
Sebelum tahun
1970-an (atau lebih lama), menggunakan komputer seperti saat ini—dari mulai mengetik hingga main
game komputer—merupakan sesuatu hal yang mustahil. Revolusi yang terjadi di dalam dunia komputer membutuhkan dua tahap agar dapat sampai kepada zaman seperti sekarang, yakni:
- saat komputer dibangun untuk membantu para ilmuwan untuk menyelesaikan tugas-tugas ilmiahnya, dan
- turunnya harga komputer secara signifikan dan dapat digunakan oleh para pengguna yang bukan programmer, yang berlangsung beberapa dekade setelah tahap pertama selesai.
Pengguna awam komputer pun akhirnya "dilahirkan", dan sejak itu
programmer dan pengguna merupakan dua buah entitas yang sama sekali berbeda, dan kurang begitu dapat berkomunikasi satu dengan lainnya.
[sunting] Awal-awal pemrograman komputer digital
Komputer digital yang dapat diprogram pertama kali dibuat pada tahun 1930-an. Maksud dari "
komputer digital" di sini adalah bahwa komputer-komputer tersebut bekerja dengan menggunakan angka-angka diskrit (yang memiliki batasan yang jelas), seperti halnya 0, 1, nilai π (3.14159) dan nilai-nilai angka lainnya. Sementara itu, maksud dari "
komputer yang dapat diprogram" adalah komputer dapat melakukan operasi-operasi matematika dengan berdasarkan instruksi-instruksi yang disebut dengan
program. Untuk beberapa tahun semenjak itu, program-program komputer ditulis di atas kertas yang dilubangi (disebut sebagai
punched-card) atau medium-medium lainnya. Akhirnya, perangkat fisik komputer pun disebut sebagai
perangkat keras (
hardware), sementara instruksi-instruksi yang ditulis di atas
punched card atau medium lainnya dikenal dengan
perangkat lunak (
software). Dinamai "
perangkat lunak", karena memang memiliki sifat mudah diubah. Kita tidak harus membangun komputer secara keseluruhan untuk melakukan jenis perhitungan yang berbeda. Sementara itu, perangkat keras didesain untuk melakukan beberapa jenis operasi aritmetika dan logika. Operasi mana yang dapat dilakukan oleh perangkat keras dan bagaimana urutan operasi tersebut, diatur oleh kode-kode program. Pada saat program dijalankan, komputer juga disebut sedang "mengeksekusi program", yakni saat komputer membaca kode dan melakukan instruksi yang disuruhkan kepadanya.
Untuk dekade-dekade awal perkembangan komputer digital, hubungan antara perangkat keras dan perangkat lunak sangatlah erat. Setiap mesin memiliki instruksinya sendiri-sendiri yang kadang tidak cocok dengan mesin lainnya. Untuk mentransfer sebuah program dari satu mesin ke mesin lainnya yang lebih baru dan tentunya lebih cepat, program tersebut harus ditulis ulang dengan semua kode-kodenya yang baru.
Nah, kode-kode yang hanya dimiliki oleh mesin tertentu ini dinamakan dengan kode mesin (
machine code) atau bahasa mesin (
machine language). Untuk lebih cepat mengingat instruksi-instruksi dalam kode mesin, para desainer pun kemudian membentuk sebuah cara dengan menyamakannya dengan sebuah kata tertentu (umumnya berupa singkatan dalam bahasa Inggris), yang kemudian berevolusi menjadi
bahasa rakitan atau
assembly language.
[sunting] Munculnya bahasa pemrograman tingkat tinggi
Pada awal tahun 1950-an, para desainer pun mencoba untuk mendesain bahasa komputer yang umum yang program hasilnya tidak hanya dapat berjalan di mesin-mesin tertentu saja. Muncullah
bahasa pemrograman tingkat tinggi atau
high-level programming language. Disebut demikian untuk membedakannya dengan kode mesin yang disebut sebagai
bahasa pemrograman tingkat rendah atau
low-level programming language. Tren yang ada adalah kemunculan beberapa bahasa pemrogram
Teks tebalan seperti
FORTRAN,
COBOL,
BASIC, dan masih banyak lagi yang lainnya. Beberapa bahasa pemrograman tersebut masih terus-terusan digunakan hingga saat ini. Sebagai contoh, FORTRAN (akronim dari
Formula Translator) masih sering digunakan oleh para ilmuwan dan para insinyur bidang teknik; COBOL (akronim dari
Common Business-Oriented Language) juga sering digunakan dalam institusi-institusi finansial; dan bahasa BASIC (akronim dari
Beginner’s All-purpose Symbolic Instruction Code) juga masih banyak digunakan hingga saat ini, meskipun terjadi perubahan yang sangat signifikan dari ketika bahasa tersebut dipublikasikan pertama kali pada tahun
1963.
Program-program komputer yang dibangun dengan menggunakan bahasa FORTRAN, COBOL, BASIC, atau bahasa tingkat tinggi lainnya pada dasarnya adalah berisi
berkas teks yang terdiri atas sekumpulan pernyataan yang ditulis di dalam bahasa pemrograman tertentu, dengan beberapa peraturan
sintaksis,
semantik dan
gramatika yang didefinisikan di dalam bahasa pemrograman. Karena komputer hanya dapat menjalankan
machine code, maka program yang ditulis di dalam bahasa pemrograman tingkat tinggi harus terlebih dahulu diterjemahkan ke dalam
machine code sebelum dieksekusi. Proses penerjemahan ini dapat dilakukan baik itu dengan menggunakan
teknik translasi (alat bantunya disebut dengan
translator),
teknik interpretasi (alat bantunya disebut
interpreter), atau dengan menggunakan
teknik kompilasi (alat bantunya disebut dengan
compiler). Teknik translasi merupakan teknik kuno yang menerjemahkan keseluruhan kode bahasa pemrograman menjadi
machine code; teknik kompilasi merupakan evolusi dari teknik translasi di mana kode dalam bahasa pemrograman dipisah-pisah ke dalam beberapa berkas untuk kemudian diterjemahkan dan dijadikan
machine code, sementara teknik interpretasi merupakan sebuah teknik di mana eksekusi dan translasi dilakukan secara berbarengan (bersama-sama).
Bahasa pemrograman lainnya yang dikembangkan selama tahun 1950-an tapi sudah tidak digunakan lagi adalah
ALGOL (akronim dari
Algorithmic Programming Language). ALGOL memang sudah tidak digunakan lagi, tapi memberikan dampak yang signifikan untuk beberapa bahasa pemrograman lainnya di dalam sejarah perkembangan bahasa pemrograman komputer. ALGOL didesain pertama kali pada akhir tahun 1950-an oleh sebuah komite internasional, untuk kemudian diperbaiki pada tahun 1960 dan 1968. Meskipun saat ini bahasa tersebut mati seolah lenyap ditelan bumi, jiwanya masih hidup di dalam bahasa pemrograman tingkat tinggi yang sekarang banyak digunakan, seperti
Pascal,
PL/1, dan Bahasa C.
Bahasa C dilahirkan di
Bell Telephone Laboratories (atau sering disebut sebagai
Bell Labs saja). Sulit membayangkan dunia modern saat ini jika tidak ada pengaruh dari Bell Labs. Pada tahun 1947, transistor ditemukan di Bell Labs, dan juga sistem operasi yang sekarang banyak digunakan di dalam komputer korporat (
UNIX) juga dibuat di sana. Untuk beberapa tahun, ada sebuah bahasa pemrograman yang sangat dekat dengan sistem operasi UNIX, yang disebut dengan bahasa C, yang didesain oleh
Dennis Ritchie dan
Brian Kernighan. Mengapa disebut hanya C saja? Bahasa C disebut demikian mengingat bahasa tersebut adalah turunan dari bahasa B, dan bahasa B merupakan pemendekan dari
Basic CPL, sementara
CPL sendiri adalah sebuah bahasa pemrograman yang merupakan singkatan dari
Combined Programming Language.
Meskipun populer, bahasa C terkesan lebih rumit jika dibandingkan dengan bahasa pemrograman lainnya, khususnya jika digunakan oleh para pemrogram pemula. Ketika ALGOL dan banyak turunan ALGOL menggunakan kata-kata yang mudah diingat seperti
BEGIN
dan
END
untuk membatasi sebuah seksi dalam instruksi program, bahasa C malah menggunakan tanda kurung keriting (
{
dan
}
). Beberapa operasi juga disederhanakan, bahkan banyak singkatannya yang cukup membingungkan para programmer pemula. Contoh yang sering digunakan adalah
printf
, dan
scanf
. Meskipun demikian, program-program yang ditulis dalam bahasa C seringnya lebih efisien dibandingkan dengan bahasa pemrograman lainnya, yang artinya program-program dalam bahasa C diterjemahkan ke dalam
machine code dalam jumlah yang relatif lebih sedikit jika dibandingkan dengan program yang ditulis dalam bahasa pemrograman lainnya. Salah satu bagian yang paling canggih dari bahasa C adalah bahwa bahasa C memiliki "
pointer", selain tentunya "variabel" dan "konstanta". Istilah
Pointer dalam bahasa pemrograman merujuk kepada
alamat-alamat memori yang mengizinkan para programmer untuk melakukan beberapa tugas secara jauh lebih efisien, dengan melibatkan bit, byte, dan word memori. Karenanya, banyak orang menyebut bahasa C sebagai "
High-level Assembly language, atau bahasa rakitan tingkat tinggi.
Meskipun bahasa C masih merupakan bahasa pemrograman yang populer, bahasa tersebut saat ini dapat dikatakan telah "kadaluwarsa". Saat ini, bahasa tersebut diklasifikasikan ke dalam "bahasa pemrograman prosedural tradisional" (
traditional procedural programming language), sebuah istilah yang merujuk kepada struktur program-program dalam bahasa C. Umumnya sebuah program bahasa C terdiri atas banyak
prosedur (juga sering disebut sebagai
fungsi/
function atau
subrutin/
subroutine), yang setiap prosedur tersebut merupakan bagian dari kode yang melakukan beberapa tugas tertentu atau merupakan implementasi dari algoritma tertentu. Prosedur-prosedur tersebut dapat bekerja dengan data dalam beberapa cara. Data adalah kumpulan angka atau teks atau bahkan gabungan antara keduanya. Dalam bahasa pemrograman prosedural tradisional, kodelah yang memproses data menjadi output.