Pernyataan Bersyarat dalam C: If, Else, If Bersarang dengan Contoh

⚡ Ringkasan Cerdas

Pernyataan kondisional dalam bahasa C mengontrol alur program dengan mengeksekusi blok kode hanya ketika kondisi yang diuji bernilai benar, memungkinkan pengambilan keputusan melalui konstruksi if, if-else, bersarang, dan else-if bertingkat.

  • 🔤 Pernyataan if: Pernyataan if hanya akan menjalankan blok kodenya ketika kondisi bernilai benar dan bukan nol, sedangkan nol berarti salah.
  • 🔀 Jika-lainnya: Konstruksi if-else menambahkan cabang false, menjalankan satu blok ketika kondisinya benar dan blok lain ketika kondisinya salah.
  • Operator relasional: Enam operator (<, <=, >, >=, ==, !=) membentuk ekspresi Boolean yang diuji oleh setiap kondisi.
  • 🪜 Tangga else-if: Struktur else-if bertingkat memeriksa beberapa ekspresi dari atas ke bawah dan menjalankan cabang pertama yang bernilai benar, atau else default.
  • Operator ternary: Ekspresi kondisional ?: menuliskan pernyataan if-else yang ringkas dan mengembalikan salah satu dari dua nilai dalam satu baris.
  • 🤖 Bantuan AI: GitHub Copilot membuat draf dan meninjau logika if-else, menandai tanda kurung kurawal yang hilang, dan menyarankan kondisi yang lebih rapi.

Pernyataan Bersyarat C: IF, IF Else dan Nested IF Else

Apa itu Pernyataan Bersyarat di C?

Pernyataan bersyarat dalam pemrograman C digunakan untuk mengambil keputusan berdasarkan kondisi. Pernyataan bersyarat dieksekusi secara berurutan ketika tidak ada kondisi di sekitar pernyataan tersebut. Jika Anda memberikan beberapa kondisi untuk blok pernyataan, alur eksekusi dapat berubah berdasarkan hasil yang dievaluasi oleh kondisi tersebut. Proses ini disebut pengambilan keputusan dalam 'C'.

Berbeda perulangan dalam bahasa C Kode yang berulang, pernyataan kondisional memilih satu jalur.

Dalam pemrograman 'C' pernyataan kondisional dimungkinkan dengan bantuan dua konstruksi berikut:

  1. Jika pernyataan
  2. Pernyataan if-else

Ini juga disebut percabangan karena program memutuskan pernyataan mana yang akan dieksekusi berdasarkan hasil dari kondisi yang dievaluasi.

Jika pernyataan

Ini adalah salah satu pernyataan kondisional yang kuat. Pernyataan If bertanggung jawab untuk mengubah aliran eksekusi suatu program. Pernyataan if selalu digunakan dengan suatu kondisi. Kondisi ini dievaluasi terlebih dahulu sebelum mengeksekusi pernyataan apa pun di dalam tubuh If. Sintaks pernyataan if adalah sebagai berikut:

 if (condition) 
     instruction;

Kondisi tersebut bernilai benar atau salah. Benar selalu merupakan nilai bukan nol, dan salah adalah nilai yang mengandung nol. Instruksi dapat berupa instruksi tunggal atau blok kode yang diapit kurung kurawal {}.

Program berikut mengilustrasikan penggunaan konstruksi if dalam pemrograman 'C':

#include<stdio.h>
int main()
{
	int num1=1;
	int num2=2;
	if(num1<num2)		//test-condition
	{
		printf("num1 is smaller than num2");
	}
	return 0;
}

Keluaran:

num1 is smaller than num2

Program di atas mengilustrasikan penggunaan konstruk if untuk memeriksa persamaan dua bilangan.

Diagram alur pernyataan If dalam bahasa C.

  1. Pada program di atas, kita telah menginisialisasi dua variabel dengan num1, num2 dengan nilai masing-masing 1, 2.
  2. Kemudian, kita menggunakan if dengan ekspresi uji untuk memeriksa bilangan mana yang terkecil dan bilangan mana yang terbesar. Kami telah menggunakan ekspresi relasional dalam konstruksi if. Karena nilai num1 lebih kecil dari num2, kondisi akan bernilai benar.
  3. Dengan demikian ia akan mencetak pernyataan di dalam blok If. Setelah itu, kontrol akan keluar dari blok dan program akan dihentikan dengan hasil yang sukses.

Relasional Operatorso

Bahasa C memiliki enam operator relasional yang dapat digunakan untuk merumuskan ekspresi Boolean untuk membuat keputusan dan menguji kondisi, yang mengembalikan nilai benar atau salah:

  • < — kurang dari
  • <= — kurang dari atau sama dengan
  • > — lebih besar dari
  • >= — lebih besar dari atau sama dengan
  • == — sama dengan
  • != - tidak sama dengan

Perhatikan bahwa tes kesetaraan (==) berbeda dari operator penugasan (=) karena ini adalah salah satu masalah paling umum yang dihadapi programmer saat mencampurkannya.

Sebagai contoh:

int x = 41;
x =x+ 1;
if (x == 42) {
   printf("You succeed!");}

Output:

 You succeed

Ingatlah bahwa kondisi yang bernilai bukan nol dianggap benar.

Sebagai contoh:

int present = 1;
if (present)
  printf("There is someone present in the classroom \n");

Keluaran:

There is someone present in the classroom

Pernyataan If-Else

Diagram alur pernyataan If-Else C

Pernyataan if-else adalah versi lanjutan dari If. Bentuk umum dari if-else adalah sebagai berikut:

if (test-expression)
{
    True block of statements
}
Else
{
    False block of statements
}
Statements;

Dalam konstruksi jenis ini, jika nilai ekspresi uji adalah benar, maka blok pernyataan yang benar akan dieksekusi. Jika nilai ekspresi uji adalah salah, maka blok pernyataan yang salah akan dieksekusi. Dalam hal apa pun, setelah eksekusi, kontrol akan secara otomatis dialihkan ke pernyataan yang muncul di luar blok If.

Program berikut mengilustrasikan penggunaan konstruksi if-else:

Kami akan menginisialisasi variabel dengan nilai tertentu dan menulis program untuk menentukan apakah nilainya kurang dari sepuluh atau lebih besar dari sepuluh.

Ayo mulai.

#include<stdio.h>
int main()
{
	int num=19;
	if(num<10)
	{
		printf("The value is less than 10");
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Keluaran:

The value is greater than 10

Contoh output pernyataan If-Else dalam bahasa C.

  1. Kita telah menginisialisasi variabel dengan nilai 19. Kita harus mencari tahu apakah bilangan tersebut lebih besar atau lebih kecil dari 10 menggunakan program 'C'. Untuk melakukan ini, kami telah menggunakan konstruksi if-else.
  2. Di sini kami telah memberikan kondisi num<10 karena kami harus membandingkan nilai kami dengan 10.
  3. Seperti yang Anda lihat, blok pertama selalu merupakan blok benar yang berarti, jika nilai ekspresi pengujian benar maka blok pertama yaitu If, akan dieksekusi.
  4. Blok kedua adalah blok lain. Blok ini berisi pernyataan yang akan dieksekusi jika nilai ekspresi pengujian menjadi salah. Dalam program kita, nilai num lebih besar dari sepuluh maka kondisi pengujian menjadi salah dan blok else dijalankan. Jadi, keluaran kita akan berasal dari blok lain yang “Nilainya lebih besar dari 10”. Setelah if-else, program akan berakhir dengan hasil yang sukses.

Dalam pemrograman 'C' kita dapat menggunakan beberapa konstruksi if-else di dalam satu sama lain yang disebut sebagai pernyataan if-else yang bertumpuk.

Ekspresi Bersyarat

Cara lain untuk menyatakan pernyataan if-else adalah dengan memperkenalkan operator ?:. Dalam ekspresi kondisional, operator ?: hanya memiliki satu pernyataan yang terkait dengan if dan else.

Sebagai contoh:

#include <stdio.h>
int main() {
  int y;
  int x = 2;
   y = (x >= 6) ?  6 : x;/* This is equivalent to:  if (x >= 5)    y = 5;  else    y = x; */
   printf("y =%d ",y);
  return 0;}

Keluaran:

y =2

Pernyataan If-else Bersarang

Ketika serangkaian keputusan diperlukan, if-else bertingkat digunakan. Bersarang berarti menggunakan satu konstruksi if-else di dalam konstruksi lainnya.

Mari kita menulis sebuah program untuk mengilustrasikan penggunaan if-else yang disarangkan.

#include<stdio.h>
int main()
{
	int num=1;
	if(num<10)
	{
		if(num==1)
		{
			printf("The value is:%d\n",num);
		}
		else
		{
			printf("The value is greater than 1");
		}
	}
	else
	{
		printf("The value is greater than 10");
	}
	return 0;
}

Keluaran:

The value is:1

Program di atas memeriksa apakah suatu angka kurang atau lebih besar dari 10 dan mencetak hasilnya menggunakan konstruksi if-else yang disarangkan.

Pernyataan if-else bersarang dalam bahasa C

  1. Pertama, kita mendeklarasikan variabel num dengan nilai 1. Kemudian kita menggunakan konstruksi if-else.
  2. Pada blok if-else terluar, kondisi yang diberikan memeriksa apakah suatu angka kurang dari 10. Jika kondisi tersebut benar, maka blok bagian dalam akan dieksekusi. Dalam hal ini, kondisinya benar sehingga blok bagian dalam diproses.
  3. Di dalam blok bagian dalam, kita kembali memiliki kondisi yang memeriksa apakah variabel kita berisi nilai 1 atau tidak. Jika suatu kondisi benar, maka blok If akan diproses, jika tidak maka blok else akan diproses. Dalam kasus ini, kondisinya benar sehingga blok If dieksekusi dan nilainya dicetak pada layar output.
  4. Program di atas akan mencetak nilai suatu variabel dan keluar dengan sukses.

Cobalah mengubah nilai variabel lihat bagaimana program tersebut berperilaku.

CATATAN: Dalam if-else bersarang, kita harus berhati-hati dengan indentasi karena beberapa konstruksi if-else terlibat dalam proses ini, sehingga menjadi sulit untuk memahami konstruksi individual. Indentasi yang tepat memudahkan pembacaan program.

Pernyataan Else-if yang disarangkan

Tangga Else-if bersarang dalam C

Else-if bersarang digunakan ketika keputusan multipath diperlukan.

Sintaks umum bagaimana tangga lain-jika dibangun dalam pemrograman 'C' adalah sebagai berikut:

 if (test - expression 1) {
    statement1;
} else if (test - expression 2) {
    Statement2;
} else if (test - expression 3) {
    Statement3;
} else if (test - expression n) {
    Statement n;
} else {
    default;
}
Statement x;

Struktur jenis ini dikenal sebagai tangga else-if. Rantai ini umumnya terlihat seperti tangga, oleh karena itu disebut juga sebagai tangga else-if. Ekspresi uji dievaluasi dari atas ke bawah. Setiap kali ekspresi uji yang benar ditemukan, pernyataan yang terkait dengannya akan dieksekusi. Ketika semua n ekspresi uji menjadi salah, maka pernyataan else default akan dieksekusi.

Mari kita lihat cara kerja sebenarnya dengan bantuan sebuah program.

#include<stdio.h>
int main()
{
	int marks=83;
	if(marks>75){
		printf("First class");
	}
	else if(marks>65){
		printf("Second class");
	}
	else if(marks>55){
		printf("Third class");
	}
	else{
		printf("Fourth class");
	}
	return 0;
}

Keluaran:

First class

Program di atas mencetak nilai sesuai nilai yang diperoleh dalam ujian. Kita telah menggunakan konstruksi tangga else-if pada program di atas.

  1. Kami telah menginisialisasi variabel dengan tanda. Pada struktur tangga else-if, kami telah menyediakan berbagai kondisi.
  2. Nilai dari tanda variabel akan dibandingkan dengan kondisi pertama karena benar pernyataan yang terkait dengannya akan dicetak pada layar keluaran.
  3. Apabila kondisi pengujian pertama ternyata salah, maka dibandingkan dengan kondisi pengujian kedua.
  4. Proses ini akan berlanjut hingga semua ekspresi dievaluasi, jika tidak, kendali akan keluar dari rangkaian else-if, dan pernyataan default akan dicetak.

Coba ubah nilainya dan perhatikan perubahan pada outputnya.

Pertanyaan Umum Demo Slot

Pernyataan if-else menguji ekspresi Boolean apa pun, termasuk rentang dan pemeriksaan relasional. ganti…kasus membandingkan satu variabel dengan nilai konstanta tetap dan sering kali menghasilkan tabel lompatan yang lebih cepat untuk banyak kasus.

Masalah "else yang menggantung" adalah ambiguitas mengenai "if" mana yang menjadi milik "else" ketika pernyataan "if" bersarang tanpa tanda kurung kurawal. Dalam bahasa C, "else" selalu berpasangan dengan "if" terdekat yang tidak cocok. Menambahkan tanda kurung kurawal menghilangkan kebingungan tersebut.

Ya. Operator logika menggabungkan kondisi: && mengharuskan kedua sisi bernilai benar, || membutuhkan setidaknya satu sisi bernilai benar, dan ! membalikkan hasilnya. Misalnya, jika (usia > 18 && warga negara) menguji dua kondisi sekaligus dalam satu pernyataan if.

Tanda kurung kurawal bersifat opsional ketika isi kalimat berupa satu pernyataan tunggal, sehingga C hanya menjalankan baris berikutnya. Untuk dua pernyataan atau lebih, tanda kurung kurawal diperlukan untuk mengelompokkannya. Selalu menggunakan tanda kurung kurawal adalah kebiasaan aman yang mencegah kesalahan logika.

Evaluasi sirkuit pendek berhenti segera setelah hasilnya diketahui. Dengan &&, sisi kiri yang salah akan melewati sisi kanan. Dengan ||, sisi kiri yang benar akan melewati sisi kanan. Ini menghindari pekerjaan yang tidak perlu dan operasi yang tidak aman.

Ya. Rangkaian else-if dievaluasi dari atas ke bawah dan berhenti pada kondisi benar pertama. Menempatkan kondisi umum sebelum kondisi yang lebih spesifik dapat menyembunyikan kasus-kasus yang lebih spesifik, jadi urutkan pengujian dari yang paling spesifik hingga yang paling umum.

Ya. Asisten pengkodean AI menyusun blok kondisional dari komentar, mengubah rangkaian if-else yang panjang menjadi struktur yang lebih rapi, dan menandai kemungkinan bug seperti penggunaan = alih-alih ==. Selalu uji logika yang dihasilkan sebelum mempercayainya.

Kopilot GitHub Fitur ini melengkapi secara otomatis kondisi if, else-if, dan kondisi bersarang dari komentar atau kode di sekitarnya. Fitur ini menyarankan ekspresi relasional dan logis serta dapat menambahkan tanda kurung yang hilang, meskipun Anda harus meninjau setiap saran.

Ringkaslah postingan ini dengan: