Latihan Kode Program C++: Cek Bilangan Prima

Latihan kode program 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 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.


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. 7 juga bilangan prima karena hanya bisa dibagi dengan angka 7 saja. Sedangkan 12 bukan bilangan prima karena bisa dibagi dengan angka 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 19, cek apakah 19 habis dibagi 2. Jika tidak, lanjut apakah 19 habis dibagi 3, jika tidak cek lagi apakah 19 habis dibagi 4, dst.

Silahkan anda coba sebentar membuat kode program ini.


Kode Program C++ Cek Bilangan Prima

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

#include <iostream>

using namespace std;

int main()
{
  cout << "##  Program C++ Angka Prima  ##" << endl;
  cout << "===============================" << endl;
  cout << endl;

  int n,i;
  bool angka_prima = true;

  cout << "Input satu angka bulat: ";
  cin >> n;

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

  cout << endl;
  if (angka_prima)
    cout << n << " adalah angka prima";
  else
    cout << n << " bukan angka prima";

 cout << endl;
 return 0;
}

Hasil kode program (1):

##  Program C++ Angka Prima  ##
===============================

Input satu angka bulat: 23

23 adalah angka prima

Hasil kode program (2):

##  Program C++ Angka Prima  ##
===============================

Input satu angka bulat: 35

35 bukan angka prima

Dalam kode program ini variabel n akan menampung angka yang diinput oleh user. Proses pembacaan dilakukan di baris 15 dengan perintah cin >> n.

Selain itu saya membuat sebuah flag atau penanda yang disimpan di dalam variabel angka_prima. Variabel angka_prima bertipe boolean sehingga hanya bisa diisi dengan nilai true atau false.

Pada saat proses deklarasi, variabel angka_prima langsung diisi boolean true. Variabel ini akan jadi penentu apakah sebuah angka merupakan bilangan prima atau tidak.

Proses pemeriksaan pertama ada di baris 18, yakni jika angka yang diinput user adalah 0 atau 1, maka langsung isi angka_prima dengan false. 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 22 – 27.

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 false 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 boolean true, yakni if (angka_prima), maka n adalah angka prima. Jika tidak, maka n bukanlah angka prima.


Kode Program Cek Bilangan Prima 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 <iostream>

using namespace std;

int main()
{
  cout << "##  Program C++ Angka Prima  ##" << endl;
  cout << "===============================" << endl;
  cout << endl;

  int n,i, pembagi;
  bool angka_prima = true;

  cout << "Input satu angka bulat: ";
  cin >> n;

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

  cout << endl;
  if (angka_prima)
    cout << n << " adalah angka prima";
  else
    cout << n << " bukan angka prima, karena bisa dibagi " << pembagi;

 cout << endl;
 return 0;
}

Penambahan ada di baris 11, 24 dan 35. Variabel pembagi dipakai untuk menampung angka i saat perulangan berhenti.

Hasil kode program:

Contoh kode program cek bilangan primaContoh kode program cek bilangan primaContoh kode program cek bilangan prima


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

Add Comment