Hello World & struktur program
Top-level statement (sejak .NET 6) membuatmu tidak perlu menulis class boilerplate.
| Elemen | Kode |
|---|
| Program top-level | Console.WriteLine("Hello, World!"); |
| Mengimpor namespace | using System; |
| Titik masuk klasik | static void Main(string[] args) { ... } |
| Mencetak satu baris | Console.WriteLine("text"); |
| Membaca satu baris | string s = Console.ReadLine(); |
| Interpolasi string | Console.WriteLine($"Hi {name}"); |
| Komentar | // line dan /* block */ |
Tipe data
| Tipe | Keterangan |
|---|
int | Bilangan bulat bertanda 32 bit |
long | Bilangan bulat bertanda 64 bit |
double / float | Bilangan floating point |
decimal | Desimal presisi tinggi (uang) |
bool | true atau false |
char | Satu karakter Unicode |
string | Teks yang tidak bisa diubah |
var | Compiler menyimpulkan tipenya |
int? | Value type nullable |
Variabel
| Operasi | Sintaks |
|---|
| Mendeklarasikan & menginisialisasi | int x = 5; |
| Inferensi tipe | var name = "Ada"; |
| Konstanta | const double Pi = 3.14159; |
| Field read-only | readonly int id; |
| Reference nullable | string? maybe = null; |
| Null-coalescing | var y = maybe ?? "default"; |
| Null-conditional | int? len = text?.Length; |
Alur kontrol
| Pernyataan | Sintaks |
|---|
| If / else | if (x > 0) { ... } else { ... } |
| Pernyataan switch | switch (n) { case 1: ...; break; default: ...; } |
| Ekspresi switch | var s = n switch { 1 => "one", _ => "other" }; |
| While loop | while (i < n) { ... } |
| Do-while loop | do { ... } while (i < n); |
| For loop | for (int i = 0; i < n; i++) { ... } |
| Foreach loop | foreach (var item in list) { ... } |
| Break / continue | break; keluar dari loop, continue; lompat ke iterasi berikutnya |
Method
| Operasi | Sintaks |
|---|
| Mendefinisikan method | int Add(int a, int b) { return a + b; } |
| Expression-bodied | int Add(int a, int b) => a + b; |
| Tanpa nilai kembalian | void Greet() { ... } |
| Parameter opsional | int Pow(int b, int e = 2) { ... } |
| Argumen bernama | Pow(b: 2, e: 3); |
| Parameter out | bool TryParse(string s, out int n) { ... } |
| Method static | static int Square(int x) => x * x; |
| Ekspresi lambda | Func<int, int> f = x => x * 2; |
Class & OOP
| Operasi | Sintaks |
|---|
| Mendefinisikan class | class Dog { ... } |
| Auto property | public string Name { get; set; } |
| Property read-only | public int Id { get; } |
| Constructor | public Dog(string name) { Name = name; } |
| Membuat object | var d = new Dog("Rex"); |
| Inheritance | class Puppy : Dog { ... } |
| Interface | interface IRunnable { void Run(); } |
| Override method | public override void Speak() { ... } |
| Record (tidak bisa diubah) | record Point(int X, int Y); |
Collection
Collection generik dari System.Collections.Generic.
| Tipe | Kegunaan & contoh |
|---|
List<T> | Array dinamis: list.Add(1); list.Count; |
Dictionary<K, V> | Key-value: dict["a"] = 1; dict.ContainsKey("a"); |
HashSet<T> | Nilai unik: set.Add(5); set.Contains(5); |
Queue<T> | FIFO: q.Enqueue(x); q.Dequeue(); |
Stack<T> | LIFO: s.Push(x); s.Pop(); |
| Array | int[] nums = { 1, 2, 3 }; |
| Collection initializer | var l = new List<int> { 1, 2, 3 }; |
| Iterasi dictionary | foreach (var kv in dict) { kv.Key; kv.Value; } |
LINQ
Query collection dengan gaya berantai; dari System.Linq.
| Operasi | Sintaks |
|---|
| Menyaring | nums.Where(n => n > 0) |
| Proyeksi / map | nums.Select(n => n * 2) |
| Mengurutkan | nums.OrderBy(n => n) / OrderByDescending(...) |
| Kecocokan pertama | nums.First(n => n > 5) / FirstOrDefault(...) |
| Any / all | nums.Any(n => n < 0) / nums.All(n => n > 0) |
| Menghitung yang cocok | nums.Count(n => n > 0) |
| Agregat | nums.Sum(), nums.Max(), nums.Average() |
| Group by | items.GroupBy(i => i.Category) |
| Mewujudkan hasil (materialize) | .ToList() / .ToArray() |
Pola umum (property, async)
| Pola | Sintaks |
|---|
| Method async | async Task<int> GetAsync() { ... } |
| Menunggu task dengan await | var result = await GetAsync(); |
| Try / catch | try { ... } catch (Exception e) { ... } |
| Finally | finally { ... } selalu dijalankan |
| Using (dispose) | using var file = File.OpenRead(path); |
| Format string | $"Total: {amount:C}" |
| Class generik | class Box<T> { public T Value; } |
| Pattern matching | if (obj is Dog d) { d.Bark(); } |
Sintaks C#, collection, dan query LINQ yang paling sering kamu pakai, dalam satu halaman. Cheat sheet C# ini adalah referensi cepat untuk menulis C#: tipe data, alur kontrol, class, collection List/Dictionary, LINQ, serta pola property dan async yang menjadi ciri kode .NET yang idiomatis.
Semua yang ada di sini adalah C# standar di .NET dan berjalan dengan CLI dotnet. Salin yang kamu butuhkan, atau coba potongan kode apa pun langsung di playground C#, tanpa perlu menginstal SDK.