Apa Itu C# (C-Sharp)?

C#, dibaca “C-sharp,” adalah bahasa pemrograman berorientasi objek dari Microsoft yang memungkinkan developer membangun aplikasi yang berjalan di atas platform .NET. Bahasa ini berasal dari keluarga bahasa C, jadi punya banyak kemiripan dengan C, C++, Java, dan JavaScript.

C# dikembangkan oleh tim Microsoft, terutama oleh Anders Hejlsberg, Scott Wiltamuth, dan Peter Golde. Versi pertamanya dirilis secara luas pada Juli 2000 sebagai bagian dari inisiatif .NET framework. Tujuannya waktu itu adalah menciptakan bahasa pemrograman yang sederhana, modern, dan serbaguna untuk membangun komponen perangkat lunak di lingkungan terdistribusi.

C# fokus pada portabilitas kode sumber, dengan dukungan untuk sistem yang hosted maupun embedded.

C# code example screenshot.
Contoh kode C# untuk aplikasi konsol sederhana.

C# menyajikan bahasa yang simpel dan mudah dibaca untuk menuliskan logika aplikasi, tanpa harus berurusan langsung dengan kompleksitas yang ada di balik layar. Saat ini, C# distandarkan dalam spesifikasi ISO/IEC 23270, dan versi terbarunya dirilis tahun 2018.

Sejak awal rilis, C# jadi bahasa utama untuk pengembangan berbasis Windows. Meskipun begitu, bahasa ini juga bisa digunakan untuk membuat aplikasi di sistem operasi Linux, macOS, iOS, dan Android — meski tetap paling banyak dipakai di Windows.

C# dikenal sebagai bahasa yang strongly typed, artinya setiap variabel atau konstanta punya tipe data yang jelas. Tipe ini menentukan struktur dan perilaku data. Dalam C#, tipe data dibagi dua:

  • Value types. Menyimpan data secara langsung. Setiap variabel punya salinan data sendiri, jadi tidak saling memengaruhi. Subkategori value types: simple types, struct types, enum types, nullable types, dan tuple types.
  • Reference types. Menyimpan referensi ke objek, bukan data-nya langsung. Dua variabel bisa menunjuk ke objek yang sama, sehingga perubahan pada satu variabel bisa memengaruhi yang lain. Subkategori reference types: class types, interface types, array types, dan delegate types.

Dalam pengembangan aplikasi C#, kita bisa bikin tipe baru sendiri melalui deklarasi tipe, seperti struct, enum, tuple, class, interface, dan delegate.

C# dan .NET Framework

C# didesain untuk bekerja erat dengan platform .NET dari Microsoft — sebuah ekosistem untuk mengembangkan, meng-compile, dan menjalankan kode aplikasi. Di dalamnya ada Common Language Runtime (CLR) dan berbagai class library.

CLR menjalankan kode dan menyediakan layanan seperti pengelolaan memori, keamanan, dan exception handling. CLR juga mendukung beberapa bahasa lain seperti F# dan Visual Basic.

Diagram of the .NET framework.
C# diperkenalkan sebagai bagian dari inisiatif .NET Microsoft.

Saat developer membuat aplikasi C#, kode sumber dikompilasi ke intermediate language (IL) yang mengikuti standar Common Language Infrastructure. Kode IL dan resource lain disimpan dalam satu assembly yang dimuat ke CLR ketika aplikasi dijalankan. CLR lalu mengubah IL menjadi instruksi mesin lewat proses just-in-time compilation.

Selain itu, .NET framework juga menyediakan berbagai fitur tambahan untuk pengembangan aplikasi:

  • Asynchronous code. Mempermudah penulisan program asinkron.
  • Attributes. Memberi informasi tambahan dalam bentuk metadata.
  • Code analyzers. Mengecek kualitas dan gaya penulisan kode.
  • Delegates. Menyimpan referensi ke metode dengan parameter dan tipe return tertentu.
  • Events. Memberi notifikasi ketika ada aksi dalam objek.
  • Garbage collection. Mengelola memori otomatis tanpa perlu menulis kode khusus.
  • Generic types. Menyusun struktur data tanpa menentukan tipe data sejak awal.
  • Parallel programming. Menjalankan thread secara paralel untuk memaksimalkan performa prosesor.
  • Reflection. Mengakses dan memanipulasi informasi tipe secara dinamis saat runtime.
  • Type system. Sistem tipe yang konsisten dan fleksibel.
  • Unsafe code. Menyediakan konteks untuk menulis kode yang tidak bisa diverifikasi CLR (tidak selalu berbahaya, hanya tidak diverifikasi).

.NET juga mendukung LINQ (Language-Integrated Query), teknologi untuk query langsung dari dalam C#. Ini bikin akses data dari objek, database relasional, maupun XML jadi lebih gampang dan konsisten.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *