Dua istilah yang paling sering muncul saat membaca dokumentasi C# adalah statement dan expression. Keduanya kerap tertukar karena saling berkelindan: setiap program tersusun dari statement, sementara di dalam statement hidup expression. Kita perlu membedakan keduanya agar pesan error compiler yang menyebut salah satu istilah itu mudah dipahami.

Statement: Perintah Utuh #

Statement adalah satu perintah lengkap yang memberi tahu compiler untuk melakukan sesuatu. Compiler mengeksekusi statement secara berurutan, satu demi satu, dari atas ke bawah. Contoh statement yang sudah kita pakai sejauh ini:

  • Deklarasi variabel: int panjang = 8;
  • Pemanggilan method: Console.WriteLine(luas);
  • Statement kosong yang hanya berisi ;

Setiap statement diakhiri tanda titik koma (;). Tanda ini menjadi batas tegas antara satu perintah dan perintah berikutnya.

Expression: Kombinasi yang Menghasilkan Nilai #

Expression adalah susunan nilai, variabel, dan operator yang saat dievaluasi menghasilkan satu nilai baru. Expression tidak berdiri sebagai perintah; expression menjadi bagian dari statement. Contohnya: 2 + 3, panjang * lebar, "Halo, " + nama, dan umur >= 17.

Menggabungkan Keduanya dalam Satu Program #

csharp
int panjang = 8;               // statement deklarasi
int lebar = 5;                 // statement deklarasi lain
int luas = panjang * lebar;    // panjang * lebar adalah expression

Console.WriteLine(luas);       // statement pemanggilan method

Output yang Dihasilkan:

text
40

Mari kita telaah baris demi baris:

  1. Baris 1 (int panjang = 8;): Statement deklarasi membuat variabel panjang; angka 8 di sisi kanan adalah expression paling sederhana, yaitu sebuah nilai tunggal.
  2. Baris 2 (int lebar = 5;): Variabel lebar dibuat dengan cara yang sama.
  3. Baris 3 (int luas = panjang * lebar;): Compiler mengevaluasi expression panjang * lebar terlebih dahulu, memperoleh 40, lalu mengikat hasilnya ke variabel luas.
  4. Baris 5 (Console.WriteLine(luas);): Statement pemanggilan method mengambil nilai luas dan menampilkannya ke console.

Expression juga boleh ditulis langsung di dalam pemanggilan method tanpa variabel perantara:

csharp
Console.WriteLine(panjang * lebar + 10);

Output yang Dihasilkan:

text
50

Compiler mengevaluasi expression panjang * lebar + 10 terlebih dahulu hingga menghasilkan 50, kemudian hasil itu diteruskan sebagai argumen ke WriteLine. Pola ini memperlihatkan hubungan keduanya: expression menyediakan nilai, statement mengatur apa yang harus dilakukan terhadap nilai tersebut.