Literal adalah nilai yang ditulis apa adanya di dalam kode, tanpa variabel perantara. Angka 42, teks "Belajar C#", dan karakter 'A' semuanya literal. Compiler membaca bentuk penulisannya untuk menentukan tipe data yang mewakilinya, sehingga cara kita menulis literal menentukan bagaimana nilai itu diperlakukan.

Literal Integer #

csharp
Console.WriteLine(42);          // literal integer biasa
Console.WriteLine(1_000_000);   // digit separator, nilainya tetap 1000000
Console.WriteLine(0x2A);        // heksadesimal
Console.WriteLine(0b101010);    // biner

Output yang Dihasilkan:

text
42
1000000
42
42

Mari kita telaah baris demi baris:

  1. Baris 1 (42): Literal integer desimal paling umum; compiler menempatkannya pada tipe int.
  2. Baris 2 (1_000_000): Garis bawah hanya alat bantu keterbacaan dan diabaikan compiler, sehingga nilainya identik dengan 1000000.
  3. Baris 3 (0x2A): Awalan 0x menandai heksadesimal; 2A bernilai 42 dalam desimal.
  4. Baris 4 (0b101010): Awalan 0b menandai biner; 101010 juga bernilai 42.

Literal Real #

csharp
Console.WriteLine(3.14);        // real dengan tipe double
Console.WriteLine(1.5e3);       // notasi ilmiah, sama dengan 1500
Console.WriteLine(2.75f);       // suffix f untuk float
Console.WriteLine(2.75m);       // suffix m untuk decimal

Output yang Dihasilkan:

text
3.14
1500
2.75
2.75

Angka bertitik desimal secara bawaan bertipe double. Suffix f mengubahnya menjadi float, sedangkan m menjadi decimal yang cocok untuk nilai uang. Notasi 1.5e3 berarti 1,5 dikali 10 pangkat 3.

Literal Char dan String #

csharp
Console.WriteLine('A');                   // literal char, satu tanda petik
Console.WriteLine('\u0041');              // char via kode Unicode, tetap huruf A
Console.WriteLine("Belajar C#");          // literal string, dua tanda petik
Console.WriteLine(@"C:\Latihan\Csharp");  // verbatim: backslash apa adanya

string konfigurasi = """
{
    "judul": "Belajar C#",
    "tingkat": "dasar"
}
""";
Console.WriteLine(konfigurasi);

Output yang Dihasilkan:

text
A
A
Belajar C#
C:\Latihan\Csharp
{
    "judul": "Belajar C#",
    "tingkat": "dasar"
}

Literal char memakai satu tanda petik dan hanya memuat satu karakter, termasuk escape sequence seperti '\n'. Literal string memakai dua tanda petik. Awalan @ membuat string verbatim: backslash tidak perlu ditulis ganda, sehingga jalur folder ditulis apa adanya. Sejak C# 11, raw string literal dengan tiga tanda petik (""") menampung teks berbaris-baris tanpa perlu meng-escape tanda petik di dalamnya.

Literal Boolean dan null #

csharp
bool aktif = true;
bool tertutup = false;

Console.WriteLine(aktif);
Console.WriteLine(tertutup);

Output yang Dihasilkan:

text
True
False

Hanya ada dua literal boolean: true dan false. Satu literal lagi yang perlu dikenal adalah null, yang berarti tidak menunjuk nilai apa pun. Literal null akan kita jumpai secara nyata pada section berikutnya saat membaca input pengguna.