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.
ifPernyataan if digunakan untuk mengeksekusi blok kode hanya jika kondisi tertentu terpenuhi (bernilai benar).
int score = 85;
if (score > 80) {
printf("Nilai Anda sangat baik!");
}
elsePernyataan else digunakan untuk mengeksekusi blok kode jika kondisi dalam if tidak terpenuhi (bernilai salah).
int score = 75;
if (score > 80) {
printf("Nilai Anda sangat baik!");
} else {
printf("Nilai Anda perlu ditingkatkan.");
}
else ifPernyataan else if digunakan untuk mengecek kondisi tambahan jika kondisi pertama dalam if tidak terpenuhi.
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.");
}
C juga menyediakan shorthand conditional operator (ternary operator) yang merupakan cara singkat untuk menulis pernyataan if-else dalam satu baris:
int score = 85;
char *result = (score >= 75) ? "Lulus" : "Tidak Lulus";
printf("Status: %s", result);
Formatnya adalah: condition ? value_if_true : value_if_false
Anda bisa menyarangkan pernyataan kondisional di dalam pernyataan kondisional lainnya:
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 digunakan untuk menggabungkan kondisi:
Mengembalikan benar jika kedua kondisi benar:
int age = 25;
int has_license = 1;
if (age >= 18 && has_license == 1) {
printf("Anda bisa mengemudi secara legal.");
}
Mengembalikan benar jika salah satu kondisi benar:
int has_license = 0;
int has_passenger = 1;
if (has_license == 1 || has_passenger == 1) {
printf("Anda bisa berkendara (sendiri atau dengan penumpang).");
}
Mengembalikan kebalikan dari kondisi:
int has_license = 0;
if (!has_license) {
printf("Anda belum punya SIM.");
}
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.
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;
}
switch: Memulai pernyataan switchcase: Menentukan nilai yang akan dibandingkanbreak: Menghentikan eksekusi switch (penting untuk mencegah fall-through)default: Menyediakan blok kode yang akan dieksekusi jika tidak ada case yang cocokJika Anda tidak menggunakan break;, program akan melanjutkan mengeksekusi semua case berikutnya:
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
Berikut adalah contoh penggunaan kondisi dalam situasi nyata:
#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");
}
} else {
printf("Cuaca dingin, pakailah jaket.\n");
}
// Menggunakan ternary operator
char *weather_status = (temperature > 25) ? "hangat" : "dingin";
printf("Kondisi cuaca saat ini: %s\n", weather_status);
// Contoh switch statement
int day_of_week = 3;
printf("Hari ini adalah: ");
switch (day_of_week) {
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;
}
printf("\n");
return 0;
}
Output:
Suhu saat ini: 25.0°C
Cuaca hangat dan nyaman.
Saat yang baik untuk bekerja produktif.
Kondisi cuaca saat ini: hangat
Hari ini adalah: Rabu
Tips:
- Gunakan indentasi yang konsisten untuk membuat kode lebih mudah dibaca
- Gunakan komentar untuk menjelaskan kondisi yang kompleks
- Hindari nested conditions yang terlalu dalam karena bisa membuat kode sulit dipahami
- Gunakan ternary operator hanya untuk kondisi sederhana
- Gunakan switch statement ketika Anda memiliki banyak kondisi yang bergantung pada nilai tunggal
Referensi:
- https://www.w3schools.com/c/c_conditions.php
- https://www.w3schools.com/c/c_conditions_else.php
- https://www.w3schools.com/c/c_conditions_elseif.php
- https://www.w3schools.com/c/c_conditions_short_hand.php
- https://www.w3schools.com/c/c_conditions_nested.php
- https://www.w3schools.com/c/c_conditions_logical.php
- https://www.w3schools.com/c/c_conditions_reallife.php
- https://www.w3schools.com/c/c_switch.php
Dalam latihan ini, Anda akan membuat program sederhana untuk mengklasifikasikan nilai siswa menggunakan if-else dan switch statement.
Requirements:
- Gunakan if-else untuk menentukan grade berdasarkan nilai (A, B, C, D, E)
- Gunakan switch statement untuk menentukan deskripsi berdasarkan grade
- Tampilkan nilai, grade, dan deskripsi
Skala Nilai:
- A: 85-100
- B: 70-84
- C: 55-69
- D: 40-54
- E: 0-39
Deskripsi Grade:
- A: "Sangat Baik"
- B: "Baik"
- C: "Cukup"
- D: "Kurang"
- E: "Sangat Kurang"
Expected Output:
Nilai: 85
Grade: A
Deskripsi: Sangat Baik
Try writing your solution in the code editor below!
Current Lesson: Conditions
Learning Objectives:
- 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