- Memahami struktur pengambilan keputusan dalam bahasa C
- Belajar menggunakan pernyataan if, else if, dan else
- Mengenal operator logika dalam C
- Memahami cara membuat keputusan dalam program
- Mengenal shorthand conditional operator
**Prerequisites:**
- Pemahaman tentang variabel dan tipe data
- Pemahaman dasar tentang program C
---END_LESSON_INFO---
# Kondisi dalam C
**Kondisi dalam bahasa C** memungkinkan program membuat keputusan berdasarkan nilai-nilai yang dievaluasi. Dengan kondisi, program bisa mengeksekusi blok kode yang berbeda tergantung pada apakah ekspresi tertentu bernilai benar atau salah.
## Pernyataan `if`
**Pernyataan `if`** digunakan untuk mengeksekusi blok kode hanya jika kondisi tertentu terpenuhi (bernilai benar).
```c
int score = 85;
if (score > 80) {
printf("Nilai Anda sangat baik!");
}
```
## Pernyataan `else`
**Pernyataan `else`** digunakan untuk mengeksekusi blok kode jika kondisi dalam `if` tidak terpenuhi (bernilai salah).
```c
int score = 75;
if (score > 80) {
printf("Nilai Anda sangat baik!");
} else {
printf("Nilai Anda perlu ditingkatkan.");
}
```
## Pernyataan `else if`
**Pernyataan `else if`** digunakan untuk mengecek kondisi tambahan jika kondisi pertama dalam `if` tidak terpenuhi.
```c
int score = 95;
if (score >= 90) {
printf("Nilai Anda A");
} else if (score >= 80) {
printf("Nilai Anda B");
} else if (score >= 70) {
printf("Nilai Anda C");
} else {
printf("Nilai Anda perlu ditingkatkan.");
}
```
## Shorthand Conditional (Ternary Operator)
C juga menyediakan **shorthand conditional operator** (ternary operator) yang merupakan cara singkat untuk menulis pernyataan `if-else` dalam satu baris:
Anda bisa **menyarangkan pernyataan kondisional** di dalam pernyataan kondisional lainnya:
```c
int age = 25;
int has_license = 1;
if (age >= 18) {
if (has_license == 1) {
printf("Anda bisa mengemudi.");
} else {
printf("Anda cukup umur tapi belum punya SIM.");
}
} else {
printf("Anda belum cukup umur untuk mengemudi.");
}
```
## Operator Logika
**Operator logika** digunakan untuk menggabungkan kondisi:
### AND (&&)
Mengembalikan benar jika **kedua kondisi** benar:
```c
int age = 25;
int has_license = 1;
if (age >= 18 && has_license == 1) {
printf("Anda bisa mengemudi secara legal.");
}
```
### OR (||)
Mengembalikan benar jika **salah satu kondisi** benar:
```c
int has_license = 0;
int has_passenger = 1;
if (has_license == 1 || has_passenger == 1) {
printf("Anda bisa berkendara (sendiri atau dengan penumpang).");
}
```
### NOT (!)
Mengembalikan kebalikan dari kondisi:
```c
int has_license = 0;
if (!has_license) {
printf("Anda belum punya SIM.");
}
```
## Switch Statement
**Switch statement** adalah alternatif untuk pernyataan `if-else if-else` ketika Anda perlu membandingkan nilai variabel dengan beberapa kemungkinan nilai. Switch sangat berguna ketika Anda memiliki banyak kondisi yang bergantung pada nilai tunggal.
```c
int day = 3;
switch (day) {
case 1:
printf("Senin");
break;
case 2:
printf("Selasa");
break;
case 3:
printf("Rabu");
break;
case 4:
printf("Kamis");
break;
case 5:
printf("Jumat");
break;
default:
printf("Akhir pekan");
break;
}
```
### Keyword dalam Switch:
- **`switch`**: Memulai pernyataan switch
- **`case`**: Menentukan nilai yang akan dibandingkan
- **`break`**: Menghentikan eksekusi switch (penting untuk mencegah fall-through)
- **`default`**: Menyediakan blok kode yang akan dieksekusi jika tidak ada case yang cocok
### Fall-through
Jika Anda **tidak menggunakan `break;`**, program akan melanjutkan mengeksekusi semua case berikutnya:
```c
int num = 1;
switch (num) {
case 1:
printf("Nomor 1\\n");
case 2:
printf("Nomor 2\\n");
case 3:
printf("Nomor 3\\n");
default:
printf("Nomor lain\\n");
}
```
Output:
```
Nomor 1
Nomor 2
Nomor 3
Nomor lain
```
## Contoh Nyata Penggunaan Kondisi
Berikut adalah contoh penggunaan kondisi dalam situasi nyata:
```c
#include <stdio.h>
int main() {
float temperature = 25.0;
int is_weekend = 1;
printf("Suhu saat ini: %.1f°C\n", temperature);
if (temperature > 30) {
printf("Cuaca sangat panas! ");
if (is_weekend) {
printf("Bagus untuk liburan pantai.\n");
} else {
printf("Minumlah air yang cukup.\n");
}
} else if (temperature > 20) {
printf("Cuaca hangat dan nyaman.\n");
if (is_weekend) {
printf("Sempurna untuk aktivitas luar ruangan.\n");
} else {
printf("Saat yang baik untuk bekerja produktif.\n");