C# (dibaca: C Sharp) adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari kerangka .NET (.Net Framework). C# dirancang untuk menjadi bahasa yang sederhana, modern, dan fleksibel, serta dapat digunakan untuk berbagai aplikasi seperti desktop, web, mobile, game, dan aplikasi cloud.
2000: C# pertama kali diperkenalkan oleh Microsoft pada Juni 2000 bersamaan dengan .NET Framework.
Pengembang Utama: Anders Hejlsberg, yang juga terlibat dalam pengembangan Turbo Pascal dan Delphi, adalah arsitek utama dari C#.
Evolusi: Seiring perkembangan, C# telah melalui banyak versi, dengan penambahan fitur-fitur seperti LINQ, async/await, dan pattern matching.
Berorientasi Objek (Object-Oriented): Mendukung konsep OOP seperti enkapsulasi, pewarisan, dan polimorfisme.
Type-Safe: C# mengurangi risiko kesalahan runtime dengan memastikan tipe data yang digunakan dalam program sesuai dengan definisi awal.
Garbage Collection: C# secara otomatis menangani manajemen memori dengan fitur garbage collection.
Interoperabilitas: Mendukung interoperabilitas dengan aplikasi lain di lingkungan .NET.
Asynchronous Programming: Memungkinkan pengembangan aplikasi responsif dengan async/await untuk menangani tugas-tugas asynchronous.
Berikut adalah contoh program sederhana dalam C# yang mencetak "Hello, World!":
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
using System;: Mengimpor namespace System, yang menyediakan akses ke kelas dasar seperti Console.
class Program: Mendefinisikan sebuah kelas bernama Program, yang menjadi container untuk metode Main.
static void Main(string[] args): Metode utama yang akan dieksekusi pertama kali ketika program dijalankan.
a. Variabel dan Tipe Data
C# mendukung berbagai tipe data, termasuk tipe dasar seperti int, double, char, dan bool, serta tipe kompleks seperti string dan array.
Contoh deklarasi variabel:
int number = 5;
double pi = 3.14;
bool isValid = true;
string message = "Hello, C#";
b. Operator
Operator aritmatika, relasional, dan logika tersedia dalam C#.
Contoh penggunaan operator:
int x = 10;
int y = 20;
int sum = x + y; // Aritmatika
bool isEqual = x == y; // Relasional
bool result = (x > 5) && (y < 30); // Logika
c. Kontrol Aliran
C# memiliki struktur kontrol aliran yang mirip dengan bahasa pemrograman lainnya, seperti:
if/else
switch
for, while, dan do-while loops
Contoh:
if (x > y)
{
Console.WriteLine("x lebih besar dari y");
}
else
{
Console.WriteLine("x lebih kecil atau sama dengan y");
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
C# mendukung penuh konsep PBO yang terdiri dari 4 pilar utama:
a. Encapsulation (Enkapsulasi)
Pengelompokan data dan metode yang terkait dalam satu kesatuan kelas.
class Person
{
private string name;
public void SetName(string newName)
{
name = newName;
}
public string GetName()
{
return name;
}
}
b. Inheritance (Pewarisan)
Mekanisme untuk mendefinisikan kelas baru berdasarkan kelas yang sudah ada.
class Animal
{
public void Eat()
{
Console.WriteLine("Eating...");
}
}
class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Barking...");
}
}
c. Polymorphism (Polimorfisme)
Kemampuan untuk menggunakan metode atau objek dalam berbagai bentuk.
class Shape
{
public virtual void Draw()
{
Console.WriteLine("Drawing a shape");
}
}
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle");
}
}
class Square : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a square");
}
}
d. Abstraction (Abstraksi)
Menyembunyikan detail implementasi dan menampilkan fungsionalitas kepada pengguna.
abstract class Vehicle
{
public abstract void Move();
}
class Car : Vehicle
{
public override void Move()
{
Console.WriteLine("Driving a car");
}
}
Fitur async dan await dalam C# memungkinkan pemrograman asinkron dengan cara yang lebih mudah dan lebih jelas.
public async Task<string> FetchDataAsync()
{
await Task.Delay(1000); // Simulasi operasi asynchronous
return "Data fetched!";
}
LINQ memungkinkan kueri terhadap koleksi data dengan sintaks seperti SQL.
int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = from n in numbers
where n % 2 == 0
select n;
C# menggunakan blok try, catch, dan finally untuk menangani kesalahan.
try
{
int result = 10 / 0;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Error: " + ex.Message);
}
finally
{
Console.WriteLine("This will always execute.");
}
Desktop Applications: Menggunakan Windows Forms atau WPF (Windows Presentation Foundation).
Web Applications: Menggunakan ASP.NET Core untuk aplikasi berbasis web.
Mobile Applications: Menggunakan Xamarin untuk pengembangan aplikasi mobile.
Game Development: Menggunakan Unity dengan C# sebagai bahasa scripting.
Entity Framework: ORM untuk mengelola database.
XUnit/NUnit: Library untuk unit testing.
SignalR: Library untuk pengembangan aplikasi real-time.
Microsoft Learn
Microsoft Learn C# Documentation - https://learn.microsoft.com/en-us/dotnet/csharp/
Situs resmi dari Microsoft ini menyediakan dokumentasi komprehensif, tutorial, dan panduan langkah demi langkah tentang cara belajar C#, mulai dari dasar hingga fitur-fitur yang lebih lanjut.
W3Schools - C# Tutorial
W3Schools C# Tutorial - https://www.w3schools.com/cs/index.php
W3Schools menyediakan tutorial interaktif untuk belajar C# dari level pemula. Setiap konsep diikuti oleh contoh praktis yang bisa langsung dicoba.
TutorialsPoint - C# Tutorial
TutorialsPoint C# Tutorial - https://www.tutorialspoint.com/csharp/index.htm
Situs ini menawarkan tutorial C# yang mencakup dasar-dasar pemrograman, serta fitur-fitur lanjut seperti LINQ, exception handling, dan OOP.
C# adalah bahasa pemrograman yang fleksibel dan kuat, yang mendukung berbagai jenis pengembangan aplikasi. Dengan dukungan penuh dari Microsoft dan komunitas yang besar, C# terus berkembang dengan fitur-fitur terbaru yang memudahkan pengembang dalam membuat aplikasi modern.
Soal 1: Apa tipe data yang digunakan untuk menyimpan nilai true atau false di C#?
A. int
B. bool
C. char
D. string
E. double
int x = 10;
int y = 3;
Console.WriteLine(x / y);
Apa output dari kode di atas?
A. 3.33
B. 3.0
C. 3
D. 4
E. Terjadi error
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i);
}
Berapa banyak iterasi yang akan dilakukan oleh loop tersebut?
A. 4
B. 5
C. 6
D. 0
E. Terjadi error
Jawaban:
B
C
C
B
C
C
B
B
C
B