Method Parse bersikap tegas: string yang tidak sesuai bentuk langsung melempar exception. Untuk input pengguna, sikap tegas seperti itu kurang nyaman, karena salah ketik adalah hal biasa. Method TryParse menawarkan jalur yang lebih tenang: method ini mencoba mengubah string menjadi angka dan melaporkan hasilnya sebagai nilai bool, tanpa exception sama sekali.

Cara Kerja TryParse #

csharp
string input = "17";                  // contoh hasil Console.ReadLine()

bool berhasil = int.TryParse(input, out int umur);

Console.WriteLine(berhasil);
Console.WriteLine(umur);

Output yang Dihasilkan:

text
True
17

Mari kita telaah baris demi baris:

  1. Baris 1 (string input = "17";): Variabel menyimpan teks yang akan diuji, mewakili hasil ketikan pengguna.
  2. Baris 3 (int.TryParse(input, out int umur)): Keyword out memerintahkan method mengisi variabel umur dengan hasil konversi; secara bersamaan method mengembalikan true bila konversi berhasil.
  3. Baris 5 (Console.WriteLine(berhasil);): Nilai kembalian bool dilaporkan; True berarti string berhasil dibaca sebagai angka.
  4. Baris 6 (Console.WriteLine(umur);): Variabel hasil konversi berisi 17, siap dipakai untuk perhitungan.

Saat Input Tidak Valid #

Kegagalan konversi tidak menimbulkan exception; method hanya mengembalikan false dan mengisi variabel out dengan 0:

csharp
bool berhasil = int.TryParse("delapan belas", out int angka);

Console.WriteLine(berhasil);
Console.WriteLine(angka);

Output yang Dihasilkan:

text
False
0

Perilaku ini penting: setelah setiap pemanggilan TryParse, variabel hasil selalu terisi, sehingga kita aman membacanya tanpa risiko error.

Pola Validasi Berulang dengan while #

Validasi input yang baik meminta ulang selama masukan belum benar. Loop while mengulang blok kode selama kondisinya benar, dan operator ! membalik nilai bool, sehingga kombinasi keduanya membentuk pola standar:

csharp
int angka;

Console.Write("Masukkan angka: ");
while (!int.TryParse(Console.ReadLine(), out angka))
{
    Console.Write("Input tidak valid. Masukkan angka: ");
}

Console.WriteLine("Angka yang tercatat: " + angka);

Contoh interaksi ketika pengguna salah ketik lalu berhasil:

text
Masukkan angka: dua
Input tidak valid. Masukkan angka: 42
Angka yang tercatat: 42

Mari kita telaah baris demi baris:

  1. Baris 1 (int angka;): Variabel hasil dideklarasikan di luar loop agar masih terbaca setelah loop selesai.
  2. Baris 3-4 (while (!int.TryParse(...))): Setiap putaran membaca satu baris input dan mencoba mengonversinya; selama konversi gagal, TryParse mengembalikan false, tanda ! membaliknya menjadi true, dan isi loop dieksekusi lagi.
  3. Baris 5-7 (isi loop): Program menampilkan pesan kegagalan beserta prompt baru, lalu kembali ke kondisi while untuk menguji ketikan berikutnya.
  4. Baris 9 (Console.WriteLine(...)): Loop hanya berakhir ketika TryParse berhasil, sehingga di baris ini angka dijamin berisi angka yang sah.