Skip to main content

Conditional Expression

Ada cara alternatif untuk menulis conditional tanpa harus menulis if-else yang panjang, terutama jika tujuan kita hanyalah memilih satu dari dua nilai. bahasa C memungkinkan kita untuk membentuk sebuah conditional expression dengan memberikan ternary operator (?), Operator ini merupakan bentuk dari pernyataan percabangan if-else yang menghasilkan suatu nilai.

Bentuk Umum​

expr1 ? expr2 : expr3

expr1 akan di evaluasi terleebih dahulu. Jika hasilnya adalah tidak-nol atau true, kemudian expr2 yang akan di evaluasi, dan itulah yang menjadi nilai dari conditional expression tersebut, sebaliknya jika expr1 bernilai 0 atau false maka expr3 yang akan dievaluasi, dan dialah yang menjadi nilainya.

secara singkatnya

expr1 ? expr2 : expr3
^ ^ ^
[Evaluasi Ini] [Jika true pilih ini] [Jika false pilih ini]

Contoh:

int a = 6;
int b = 7;

// Pilih nilai yang lebih besar antara a atau b
int max = (a > b) ? a : b;

printf("%d", max); // Output: 7

Contoh :

bool isMember;

printf("%s", (isMember) ? "Aku admin kamu member" ? "kamu bukan member")

Ternary Operator memungkinkan kita untuk menulis kode yang lebih ringkas

Best Practice: When to use?​

Gunakan saat:

  • Logika pemilihannya sederhana (hanya 1 kondisi dengan 2 kemungkinan nilai).
  • Ingin melakukan inisialisasi variabel langsung dalam satu baris.
  • Ingin menyederhanakan kode agar lebih ringkas (succinct).

Hindari saat:

  • Nested Ternary yang Terlalu Dalam: Menumpuk conditional expression di dalam conditional expression lainnya (seperti a ? b : c ? d : e) akan membuat kode sangat sulit dibaca dan rentan memicu bug.
  • Logika di dalamnya memerlukan banyak statement atau efek samping (side-effects). Jika sudah membutuhkan banyak instruksi, kembalilah menggunakan struktur blok if-else biasa.