Latihan Kode Program Bahasa C: Cek Bilangan Prima

Latihan kode program bahasa C kali ini akan membahas soal untuk memeriksa apakah sebuah angka merupakan bilangan prima atau tidak.

Materi ini berhubungan dengan logika matematika serta konsep perulangan for / while dan if else.


Soal Cek Bilangan Prima

Buatlah kode program dalam bahasa C yang menerima satu inputan angka. Kemudian kode program akan menampilkan pesan apakah angka tersebut adalah bilangan prima atau bukan bilangan prima.

Bonus: Selain menampilkan iya atau tidak, tuliskan pula alasan kenapa bilangan tersebut bukan bilangan prima.

Berikut contoh tampilan akhir yang diinginkan (1) :

Input satu angka bulat: 2673

2673 bukan angka prima

Berikut contoh tampilan akhir yang diinginkan (2) :

Input satu angka bulat: 5657

5657 adalah angka prima

Berikut contoh tampilan akhir yang diinginkan (untuk soal bonus) :

Input satu angka bulat: 2260

2260 bukan angka prima, karena bisa dibagi 2

Tips Membuat Kode Program Cek Bilangan Prima

Soal ini melatih pemahaman terkait logika matematika dan konsep perulangan (looping) serta kondisi if else. Berikut tutorial pendahuluan yang bisa diikuti:

Suatu angka disebut sebagai bilangan prima jika angka tersebut tidak bisa dibagi dengan angka lain, selain angka itu sendiri dan 1.

Sebagai contoh, 3 adalah bilangan prima karena hanya bisa dibagi dengan 3. 11 juga bilangan prima karena hanya bisa dibagi dengan angka 11 saja. Sedangkan 8 bukan bilangan prima karena bisa dibagi dengan 2.

Pemeriksaan apakah suatu angka habis dibagi dengan angka lain bisa dilakukan dengan operator modulus ( % ). Dalam bahasa C, 12 % 2 akan menghasilkan angka 0, yang berarti 12 habis dibagi dengan 2. Konsep inilah yang bisa kita pakai untuk membuat kode program pemeriksa bilangan prima.

Idenya adalah, buat sebuah perulangan untuk memeriksa setiap kemungkinan. Jika diinput angka 17, cek apakah 17 habis dibagi 2. Jika tidak, lanjut apakah 17 habis dibagi 3, jika tidak cek lagi apakah 17 habis dibagi 4, dst.

Silahkan anda coba sebentar membuat kode program ini.


Kode Program Bahasa C Cek Bilangan Prima

Berikut salah satu solusi dari soal cek bilangan prima menggunakan bahasa pemrograman C:

#include <stdio.h>

int main(void)
{
  printf("##  Program Bahasa C Angka Prima  ## \n");
  printf("==================================== \n\n");

  int n,i,angka_prima;
  angka_prima = 1;

  printf("Input satu angka bulat: ");
  scanf("%i",&n);

  // 0 dan 1 bukan angka prima
  if (n == 0 || n == 1) {
    angka_prima = 0;
  }
  else {
    for (i = 2; i <= n / 2; i++) {
      if (n % i == 0) {
        angka_prima = 0;
        break;
      }
    }
  }

  printf("\n");
  if (angka_prima == 1)
    printf("%i adalah angka prima \n",n);
  else
    printf("%i bukan angka prima \n",n);

 return 0;
}

Hasil kode program (1):

##  Program Bahasa C Angka Prima  ##
====================================

Input satu angka bulat: 17

17 adalah angka prima

Hasil kode program (2):

##  Program Bahasa C Angka Prima  ##
====================================

Input satu angka bulat: 50

50 bukan angka prima

Dalam kode program ini variabel n akan menampung angka yang diinput oleh user. Proses pembacaan dilakukan di baris 12 dengan perintah scanf("%i",&n).

Selain itu saya membuat sebuah flag atau penanda yang disimpan di dalam variabel angka_prima. Karena bahasa C tidak memiliki tipe data boolean, maka saya set angka_prima sebagai integer.

Setelah proses deklarasi, variabel angka_prima langsung diisi angka 1. Variabel ini akan jadi penentu apakah sebuah angka merupakan bilangan prima atau tidak.

Proses pemeriksaan pertama ada di baris 15, yakni jika angka yang diinput user adalah 0 atau 1, maka langsung isi angka_prima dengan 0. Karena dalam matematika, 0 dan 1 tidak dianggap sebagai angka prima.

Jika angka yang diinput bukan 0 atau 1, maka masuk ke blok else yang berisi perulangan for antara baris 19 – 24.

Perulangan for ini mulai dari 2 hingga n / 2. Dalam setiap iterasi, cek apakah n habis dibagi dengan i melalui perintah n % i == 0. Jika kondisi ini terpenuhi, update isi variabel angka_prima menjadi 0 dan langsung hentikan perulangan.

Perulangan hanya perlu dilakukan sampai n / 2 karena secara logika kita tidak perlu cek pembagian dengan setiap angka.

Setelah perulangan selesai, cek kembali isi variabel angka_prima. Jika berisi angka 1, yakni if (angka_prima == 1), maka n adalah angka prima. Jika tidak, maka n bukanlah angka prima.


Kode Program Cek Bilangan Prima Bahasa C Dengan Alasan

Untuk bonus soal, kita bisa menambah satu variabel ke dalam perulangan for untuk menampung angka yang membuat perulangan itu berhenti. Angka inilah yang menjadi alasan kenapa sebuah bilangan bukan bilangan prima.

Berikut modifikasi yang diperlukan:

#include <stdio.h>

int main(void)
{
  printf("##  Program Bahasa C Angka Prima  ## \n");
  printf("==================================== \n\n");

  int n,i,angka_prima,pembagi;
  angka_prima = 1;

  printf("Input satu angka bulat: ");
  scanf("%i",&n);

  // 0 dan 1 bukan angka prima
  if (n == 0 || n == 1) {
    angka_prima = 0;
  }
  else {
    for (i = 2; i <= n / 2; i++) {
      if (n % i == 0) {
        pembagi = i;
        angka_prima = 0;
        break;
      }
    }
  }

  printf("\n");
  if (angka_prima == 1)
    printf("%i adalah angka prima \n",n);
  else
    printf("%i bukan angka prima, karena bisa dibagi %i \n",n, pembagi);

 return 0;
}

Penambahan ada di baris 8, 21 dan 32. Variabel pembagi dipakai untuk menampung angka i saat perulangan berhenti.

Hasil kode program:

Latihan Kode Program Bahasa C - Cek Bilangan Prima

Latihan Kode Program Bahasa C - Cek Bilangan Prima


Demikian kode program cek bilangan prima menggunakan bahasa C. Seperti yang terlihat, logika dan sedikit teori matematis sangat berperan untuk mencari solusi kode program. Semoga tutorial ini bisa bermanfaat.

Add Comment