Program yang mampu menyapa pengguna secara spesifik jauh lebih menarik daripada program yang menampilkan teks tetap. Untuk itu, program perlu membaca masukan dari keyboard. Di console application, peran itu dipegang oleh method Console.ReadLine(), yang menunggu pengguna mengetik lalu menekan Enter.

Membaca Satu Baris dengan Console.ReadLine #

csharp
Console.Write("Siapa nama kamu? ");
string? nama = Console.ReadLine();

Console.WriteLine("Halo, " + nama + "! Selamat belajar C#.");

Perhatikan bahwa prompt memakai Write, bukan WriteLine, agar kursor berhenti di samping pertanyaan. Contoh interaksi ketika pengguna mengetik Budi lalu menekan Enter:

text
Siapa nama kamu? Budi
Halo, Budi! Selamat belajar C#.

Output nyata bergantung pada input pengguna: jika kita mengetik nama lain, baris kedua menyapa nama tersebut. Mari kita telaah baris demi baris:

  1. Baris 1 (Console.Write(...)): Method Write menampilkan pertanyaan tanpa baris baru sehingga ketikan pengguna muncul tepat setelah tanda tanya.
  2. Baris 2 (string? nama = Console.ReadLine();): Program berhenti sejenak, menunggu pengguna menekan Enter, lalu seluruh teks yang diketik disimpan ke variabel nama.
  3. Baris 4 (Console.WriteLine(...)): Operator + menyambung string sapaan, isi variabel nama, dan penutup menjadi satu baris output.

Makna Tanda ? pada string? #

Tipe kembalian Console.ReadLine() adalah string?, dibaca nullable string. Tanda ? menyatakan bahwa variabel boleh berisi null, yaitu tidak menunjuk teks apa pun. Kondisi itu terjadi ketika aliran input berakhir sebelum pengguna mengetik apa pun, misalnya saat pengguna menekan Ctrl+D di Linux atau macOS, atau Ctrl+Z lalu Enter di Windows.

Membaca Dua Input Berurutan #

Setiap pemanggilan ReadLine membaca satu baris, jadi dua pertanyaan butuh dua pemanggilan:

csharp
Console.Write("Makanan favorit: ");
string? makanan = Console.ReadLine();

Console.Write("Minuman favorit: ");
string? minuman = Console.ReadLine();

Console.WriteLine("Menu favorit kita: " + makanan + " dan " + minuman);

Contoh interaksi ketika pengguna mengetik Bakso lalu Es teh:

text
Makanan favorit: Bakso
Minuman favorit: Es teh
Menu favorit kita: Bakso dan Es teh