Tutorial Belajar C Part 35: Percabangan Kondisi IF ELSE IF Bahasa C

Dalam tutorial sebelumnya kita telah membahas tentang perulangan IF ELSE, yakni sebuah percabangan kode program dimana jika kondisi IF bernilai true, maka jalankan perintah yang ada di dalam blok IF tersebut. Namun jika kondisi bernilai false, maka jalankan kode program di dalam blok ELSE.

Kali ini kita akan lanjut membahas percabangan IF ELSE IF, yang boleh disamakan dengan "menyambung" beberapa kondisi IF ELSE sekaligus.


Pengertian Kondisi IF ELSE IF bahasa C

Pada dasarnya, kondisi IF ELSE IF adalah sebuah struktur logika program yang di dapat dengan cara menyambung beberapa kondisi IF ELSE menjadi sebuah kesatuan.

Jika kondisi pertama tidak terpenuhi atau bernilai false, maka kode program akan lanjut ke kondisi IF di bawahnya. Jika ternyata tidak juga terpenuhi, akan lanjut lagi ke kondisi IF di bawahnya, dst hingga blok ELSE terakhir atau terdapat kondisi IF yang bernilai true.

Berikut format dasar penulisan kondisi IF ELSE IF dalam bahasa C:

if (condition_1) {
  // Kode program yang dijalankan jika condition_1 berisi nilai True
}
else if (condition_2) {
  // Kode program yang dijalankan jika condition_2 berisi nilai True
}
else if (condition_3) { 
  // Kode program yang dijalankan jika condition_3 berisi nilai True 
}
else  { 
  // Kode program yang dijalankan jika semua kondisi tidak terpenuhi
}

Mari kita lihat contoh prakteknya.


Contoh Kode Program Percabangan IF ELSE IF Bahasa C

Sebagai contoh pertama, saya ingin membuat sebuah kode program untuk menampilkan nilai. User diminta menginput sebuah huruf antara 'A' – 'E'. Kemudian kode program akan menampilkan hasil tampilan yang berbeda-beda untuk setiap huruf yang diinput, termasuk jika huruf tersebut di luar 'A' – 'E'.

Berikut contoh kode programnya:

#include <stdio.h>
int main(void)
{
  char nilai;

  printf("Input Nilai Anda (A - E): ");
  scanf("%c",&nilai);

  if (nilai == 'A' ) {
    printf("Pertahankan! \n");
  }
  else if (nilai == 'B' ) {
    printf("Harus lebih baik lagi \n");
  }
  else if (nilai == 'C' ) {
    printf("Perbanyak belajar \n");
  }
  else if (nilai == 'D' ) {
    printf("Jangan keseringan main \n");
  }
  else if (nilai == 'E' ) {
    printf("Kebanyakan bolos... \n");
  }
  else {
    printf("Maaf, format nilai tidak sesuai \n");
  }
  return 0;
}

Hasil kode program:

Input Nilai Anda (A - E): A
Pertahankan!

Input Nilai Anda (A - E): D
Jangan keseringan main

Input Nilai Anda (A - E): E
Kebanyakan bolos...

Input Nilai Anda (A - E): F
Maaf, format nilai tidak sesuai

Di baris 5 saya mendefinisikan sebuah variabel nilai sebagai char. Variabel nilai ini kemudian dipakai untuk menampung input dari perintah scanf di baris 8.

Mulai dari baris 10 hingga 27, terdapat 5 buah pemeriksaan kondisi, yakni satu untuk setiap block IF ELSE. Dalam setiap kondisi, isi variabel nilai akan di diperiksa, apakah itu berupa karakter 'A', 'B', hingga 'E'. Jika salah satu kondisi ini terpenuhi, maka block kode program yang sesuai akan di eksekusi.

Jika ternyata nilai inputan bukan salah satu dari karakter 'A' – 'E', maka block ELSE di baris 25 lah yang akan dijalankan.

Setiap kondisi dari block IF ELSE IF ini bisa diisi dengan perbandingan yang lebih kompleks, seperti contoh berikut:

#include <stdio.h>

int main(void)
{
  int nilai;

  printf("Input Nilai Anda (0 - 100): ");
  scanf("%i",&nilai);

  if (nilai >= 90 ) {
    printf("Pertahankan! \n");
  }
  else if (nilai >= 80 && nilai < 90) {
    printf("Harus lebih baik lagi \n");
  }
  else if (nilai >= 60 && nilai < 80) {
    printf("Perbanyak belajar \n");
  }
  else if (nilai >= 40 && nilai < 60) {
    printf("Jangan keseringan main \n");
  }
  else if (nilai < 40) {
    printf("Kebanyakan bolos... \n");
  }
  else {
    printf("Maaf, format nilai tidak sesuai \n");
  }
  return 0;
}

Di sini saya memodifikasi sedikit kode program kita sebelumnya. Sekarang nilai inputan berupa angka antara 0 hingga 100. Angka inputan ini ditampung ke dalam variabel nilai yang sekarang di set sebagai tipe data integer di baris 5.

Di baris 10, isi dari variabel nilai di periksa apakah berisi angka yang lebih dari 90. Jika iya, tampilkan teks "Pertahankan!".

Jika kondisi di baris 10 tidak terpenuhi (yang artinya isi variabel nilai kurang dari 90), maka kode program akan lanjut ke kondisi ELSE IF berikutnya di baris 13. Di sini saya menggabungkan dua buah kondisi menggunakan operator logika && (yakni operator AND). Kondisi if(nilai >= 80 && nilai < 90) hanya akan terpenuhi jika isi variabel nilai berada dalam rentang 80 sampai 89.

Ketika membuat kondisi perbandingan, kita harus hati-hati dengan penggunaan tanda, apakah ingin menggunakan tanda lebih besar saja (>) atau tanda lebih besar sama dengan (>=) karena bisa mempengaruhi hasil akhir.

Jika ternyata kondisi ini tidak dipenuhi juga (artinya isi variabel nilai kurang dari 80), program akan lanjut ke kondisi if(nilai >= 60 && nilai < 80) di baris 16, yakni apakah nilai berada dalam rentang 60 – 79. Demikian seterusnya hingga kondisi terakhir if(nilai < 40) di baris 22.

Jika semua kondisi tidak terpenuhi, jalankan block ELSE di baris 26.

Berikut hasil percobaan dari kode program di atas:

Input Nilai Anda (0 - 100): 95
Pertahankan!

Input Nilai Anda (0 - 100): 60
Perbanyak belajar

Input Nilai Anda (0 - 100): 30
Kebanyakan bolos...

Yang cukup unik adalah, jika kita memberikan nilai di luar rentang 0 – 100, akan tetap ditangkap oleh kondisi IF di baris 10 atau di baris 22:

Input Nilai Anda (0 - 100): 200
Pertahankan!

Input Nilai Anda (0 - 100): -1000
Kebanyakan bolos...

Ini terjadi karena nilai 200 tetap memenuhi syarat if (nilai >= 90), dan nilai -1000 juga tetap memenuhi syarat if (nilai < 40). Silahkan anda modifikasi kode program di atas agar jika diinput angka di luar dari rentang 0 -100, akan tampil teks "Maaf, format nilai tidak sesuai". Untuk hal ini kita cuma perlu mengubah / menambah 2 kondisi saja.

Contoh kode program IF ELSE IF bahasa pemrograman C


Dalam tutorial kali ini kita telah membahas tentang konsep struktur logika IF ELSE IF, yang tidak lain berupa kondisi IF yang saling bersambung. Berikutnya kita akan masuk ke struktur kondisi SWITCH, yang dalam banyak hal mirip seperti IF ELSE IF.

19 Comments

  1. Suwa
    01 May 19
    • Andre
      03 May 19
      • Hendry
        11 Sep 19
        • Andre
          04 Oct 19
      • Unknown
        03 Oct 19
        • Andre
          04 Oct 19
  2. Arrizki
    02 Sep 19
    • Andre
      03 Sep 19
  3. nofan Kurniawan
    27 Nov 19
    • Andre
      27 Nov 19
  4. Anonymous
    10 Apr 20
    • Anonymous
      27 Aug 20
  5. Anonymous
    14 Apr 21
    • Andre
      14 Apr 21
  6. cepy hafiz
    27 Jul 21
  7. Lalapo
    20 Oct 22
  8. andika
    03 Dec 23
  9. rama
    08 Feb 24
  10. Anonymous
    27 Feb 24

Add Comment