Menyambung string dengan operator + bekerja dengan baik, tetapi makin banyak potongan yang disambung, makin sulit kalimatnya dibaca. C# menyediakan string interpolation: menanamkan nilai variabel langsung ke dalam teks di posisinya masing-masing. Hasilnya, string terbaca seperti kalimat yang akan tampil di layar.
Sintaks Dasar #
Awali string dengan tanda $, lalu tulis variabel di dalam kurung kurawal:
string nama = "Siti";
int umur = 21;
Console.WriteLine($"Nama saya {nama}, umur saya {umur} tahun.");
Console.WriteLine($"Tahun depan umur saya {umur + 1}.");Output yang Dihasilkan:
Nama saya Siti, umur saya 21 tahun.
Tahun depan umur saya 22.Mari kita telaah baris demi baris:
- Baris 1-2: Dua variabel disiapkan seperti biasa; interpolation tidak mengubah cara variabel dibuat.
- Baris 4 (
$"Nama saya {nama}, ..."): Tanda$sebelum tanda petik memberi tahu compiler bahwa kurung kurawal di dalam string adalah placeholder yang harus dievaluasi. - Baris 5 (
{umur + 1}): Placeholder tidak terbatas pada variabel; expression aritmetika dievaluasi compiler dan hasilnya,22, menempati posisi tersebut di output.
Perataan dengan Alignment #
Angka di dalam placeholder setelah tanda koma mengatur lebar minimum kolom. Nilai positif membuat konten rata kanan, nilai negatif membuatnya rata kiri:
int stok = 45;
Console.WriteLine($"[{stok,10}]");
Console.WriteLine($"[{stok,-10}]");Output yang Dihasilkan:
[ 45]
[45 ]Placeholder {stok,10} menyiapkan lebar sepuluh karakter; karena 45 hanya dua karakter, delapan spasi mengisinya sehingga angka menempel di sisi kanan. Bentuk {stok,-10} melakukan sebaliknya. Fitur ini berguna ketika beberapa baris output perlu tampak seperti kolom tabel.
Kurung Kurawal Literal #
Karena kurung kurawal punya makna khusus, kurung kurawal literal perlu ditulis ganda:
Console.WriteLine($"{{nilai}} ditampilkan apa adanya");Output yang Dihasilkan:
{nilai} ditampilkan apa adanyaJebakan yang Sering Terjadi: Lupa Tanda $ #
Tanpa tanda $, compiler memperlakukan seluruh isi string sebagai teks biasa:
Console.WriteLine("Nama saya {nama}");Output yang Dihasilkan:
Nama saya {nama}String di atas valid dan tidak menimbulkan error, tetapi {nama} tampil apa adanya karena compiler tidak memperlakukannya sebagai placeholder. Ketika output memperlihatkan kurung kurawal beserta nama variabel, periksa dulu apakah tanda $ sudah tertempel di depan string.