Nama pembeli, alamat email, pesan notifikasi — teks adalah data yang paling sering diproses program. Tipe string menampung rangkaian karakter Unicode dan menjadi contoh reference type yang paling sering kita pakai sehari-hari. Bab ini membahas operasi dasar string beserta satu sifat penting: string bersifat immutable.

Operasi Dasar String #

csharp
string namaDepan = "Budi";
string namaBelakang = "Santoso";
string namaLengkap = namaDepan + " " + namaBelakang;

Console.WriteLine(namaLengkap);
Console.WriteLine(namaLengkap.Length);
Console.WriteLine(namaLengkap.ToUpper());
Console.WriteLine(namaLengkap.Substring(0, 4));
Console.WriteLine(namaLengkap.Contains("Santoso"));

Output yang Dihasilkan:

text
Budi Santoso
12
BUDI SANTOSO
Budi
True

Mari kita telaah baris demi baris:

  1. Baris 3 (string namaLengkap = namaDepan + " " + namaBelakang;): Operator + tidak hanya untuk angka; pada string, operator tersebut menyambung teks. Hasil penyambungannya "Budi Santoso".
  2. Baris 5 (namaLengkap.Length): Properti Length melaporkan jumlah karakter; "Budi Santoso" berisi 12 karakter termasuk satu spasi.
  3. Baris 6 (namaLengkap.ToUpper()): Method mengembalikan salinan berhuruf kapital: BUDI SANTOSO.
  4. Baris 7 (namaLengkap.Substring(0, 4)): Substring mengambil bagian teks mulai indeks 0 sebanyak 4 karakter: Budi. Indeks string dimulai dari 0.
  5. Baris 8 (namaLengkap.Contains("Santoso")): Method melaporkan apakah teks memuat substring tertentu; hasilnya bertipe bool.

String Bersifat Immutable #

Isi string tidak dapat diubah setelah string dibuat (immutable). Method seperti ToUpper() tidak mengubah string asal; method tersebut mengembalikan string baru. Hasil yang tidak disimpan langsung terbuang:

csharp
string teks = "Siti";
teks.ToUpper();
Console.WriteLine(teks);

string teksBaru = teks.ToUpper();
Console.WriteLine(teksBaru);

string terformat = "  Siti  ";
Console.WriteLine(terformat.Trim());

Output yang Dihasilkan:

text
Siti
SITI
Siti

Mari kita telaah:

  1. Baris 2 (teks.ToUpper();): Method mengembalikan SITI, tetapi hasilnya tidak ditampung; string asal tetap Siti.
  2. Baris 4-5: Hasil method kini disimpan ke teksBaru, sehingga pencetakan menampilkan SITI.
  3. Baris 7-8 (terformat.Trim()): Trim mengembalikan salinan tanpa spasi di awal dan akhir; string asal tidak tersentuh.

Pola yang sama berlaku untuk Replace, ToLower, dan method string lainnya: semuanya mengembalikan string baru. Untuk mempertahankan hasil, simpan kembaliannya ke sebuah variable.

Escape Sequence di dalam String #

Sama seperti char, string mendukung escape sequence. Yang paling sering dipakai: \" untuk menyisipkan tanda petik dua tanpa menutup string, dan \\ untuk backslash:

csharp
string sapaan = "Halo, \"Budi\"!";

Console.WriteLine(sapaan);

Output yang Dihasilkan:

text
Halo, "Budi"!

Bab Literal pada section sebelumnya sudah membahas string verbatim (@"...") dan raw string ("""...""") untuk teks yang banyak memakai backslash atau tanda petik.