C# adalah bahasa pemrograman modern yang mendukung banyak paradigma, dikembangkan oleh Microsoft dalam kerangka kerja .NET. Ditujukan terutama untuk pengembangan perangkat lunak untuk aplikasi Windows dan web, C# menggabungkan pengetikan yang kuat, fitur pemrograman imperatif dan berorientasi objek (OOP) dengan kemampuan pemrograman fungsional. Bahasa ini diakui luas karena keterbacaan, fleksibilitas, dan dukungan pengembangan yang kuat, menjadikannya favorit di kalangan pengembang perusahaan dan programmer game, terutama dalam kombinasi dengan mesin game Unity.
C# diciptakan pada awal 2000-an oleh Anders Hejlsberg dan timnya di Microsoft sebagai bagian dari inisiatif .NET. Bahasa ini dirancang untuk meningkatkan produktivitas dengan menyediakan bahasa pemrograman yang sederhana, modern, dan berorientasi objek yang terintegrasi dengan baik dalam ekosistem Microsoft. Pengaruh bahasa sebelumnya, seperti Java dan C++, terlihat dalam strukturnya.
Versi awal C# sangat terkait dengan kerangka kerja .NET, yang bertujuan untuk memberikan pengembang seperangkat pustaka dan alat yang komprehensif untuk membangun aplikasi. Versi C# 1.0 diluncurkan bersamaan dengan .NET Framework pada tahun 2002. Selama bertahun-tahun, fitur dan peningkatan tambahan telah diterapkan, dengan C# berkembang secara signifikan melalui berbagai iterasi.
Peluncuran .NET Core pada tahun 2016 menandai tonggak penting, menjadikan C# lintas platform dan meningkatkan fleksibilitasnya. Versi selanjutnya, termasuk C# 7.0 dan seterusnya, memperkenalkan fitur seperti tuple, pencocokan pola, dan aliran async, yang lebih meningkatkan bahasa ini. Saat ini, C# berada di garis depan pengembangan perangkat lunak modern, didukung oleh komunitas yang dinamis dan pembaruan berkelanjutan dalam ekosistem .NET.
C# adalah bahasa yang diketik secara statis, yang berarti bahwa tipe variabel diketahui pada waktu kompilasi. Fitur ini meningkatkan kinerja dan mencegah jenis kesalahan runtime tertentu.
int number = 10;
string text = "Halo, C#";
C# sepenuhnya mendukung konsep OOP, memungkinkan pengembang untuk membuat kelas dan objek, mengenkapsulasi data, serta menggunakan pewarisan dan polimorfisme.
class Animal {
public void Speak() {
Console.WriteLine("Hewan berbicara");
}
}
class Dog : Animal {
public void Speak() {
Console.WriteLine("Anjing menggonggong");
}
}
C# memungkinkan penggunaan properti, yang memungkinkan pengenkapsulasian data kelas yang lebih baik sambil mempertahankan akses yang mudah untuk mendapatkan dan menetapkan nilai.
class Person {
private string name;
public string Name {
get { return name; }
set { name = value; }
}
}
C# mendukung delegasi, yang merupakan pointer fungsi yang aman tipe, dan acara untuk menerapkan pemrograman berbasis acara.
public delegate void Notify(); // Delegasi
public class Process {
public event Notify ProcessCompleted; // Acara
public void StartProcess() {
// Logika proses
ProcessCompleted?.Invoke(); // Mengangkat acara
}
}
C# menawarkan LINQ, fitur kuat yang memungkinkan kueri koleksi dengan cara yang ringkas dan mudah dibaca.
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = from n in numbers where n % 2 == 0 select n;
C# menyederhanakan pemrograman asinkron menggunakan kata kunci async dan await, meningkatkan kinerja untuk tugas yang terikat I/O.
public async Task<string> GetDataAsync() {
using (var client = new HttpClient()) {
return await client.GetStringAsync("http://example.com");
}
}
Metode ekstensi memungkinkan pengembang untuk "menambahkan" metode baru ke tipe yang ada tanpa memodifikasi kode sumbernya.
public static class MyExtensions {
public static int WordCount(this string str) {
return str.Split(' ').Length;
}
}
C# mendukung tipe nilai nullable, memungkinkan representasi data yang mungkin tidak ada.
int? nullableInt = null;
C# menyediakan dukungan bawaan untuk tuple, memungkinkan pengenkapsulasian beberapa nilai.
var person = (Name: "John", Age: 30);
Console.WriteLine($"{person.Name} berusia {person.Age} tahun.");
.NET SDK adalah seperangkat alat inti untuk mengembangkan aplikasi dalam C#. Ini mencakup CLR (Common Language Runtime), pustaka, dan kompiler yang diperlukan untuk menjalankan dan mengompilasi kode C#.
Visual Studio adalah IDE utama untuk pengembangan C#, menyediakan debugging yang canggih, IntelliSense, dan lingkungan terpadu untuk membangun dan menerapkan aplikasi. Opsi populer lainnya termasuk JetBrains Rider dan Visual Studio Code, yang, dengan ekstensi yang tepat, dapat disesuaikan untuk pengembangan C#.
Untuk membangun proyek C# menggunakan .NET CLI, seseorang dapat menggunakan perintah seperti dotnet new
untuk membuat proyek baru, dotnet build
untuk mengompilasi kode, dan dotnet run
untuk mengeksekusi aplikasi. Proses pembuatan aplikasi konsol akan terlihat seperti ini:
dotnet new console -n MyConsoleApp
cd MyConsoleApp
dotnet run
C# digunakan dalam berbagai aplikasi, termasuk:
C# merupakan bahasa yang kuat dibandingkan dengan yang lain. Berikut adalah beberapa kesamaan dan perbedaan yang mencolok:
Menerjemahkan kode antara C# dan bahasa lain sering kali dapat difasilitasi oleh alat sumber-ke-sumber, yang biasa dikenal sebagai transpiler. Misalnya, alat seperti SharpKit dapat mengonversi kode C# menjadi JavaScript untuk aplikasi web, sementara Bridge.NET memungkinkan C# dikompilasi menjadi aplikasi JavaScript atau HTML5.
Dalam skenario yang lebih khusus, pustaka dan alat yang mengonversi C# ke bahasa lain seperti Java atau Python ada, sering kali berfokus pada fitur dan paradigma bahasa tertentu untuk memastikan proses konversi yang efektif.
Sebagai contoh, saat menerjemahkan dari C# ke Python, pengembang harus berhati-hati untuk menyesuaikan sistem tipe dan praktik manajemen memori, karena pengetikan dinamis dan prinsip pengumpulan sampah Python berbeda dari pengetikan statis dan runtime terkelola C#.
Alat yang ada yang memfasilitasi berbagai terjemahan kode termasuk CodePorting untuk mengonversi aplikasi .NET ke Java dan Jitterbit untuk solusi integrasi yang lebih luas. Setiap alat memiliki keunggulannya, dan pilihan tergantung pada spesifikasi proyek dan hasil yang diinginkan.