Menentukan Bilangan Prima dengan Bahasa C#


Beberapa waktu yang lalu, saya dapat pertanyaan: Bagaiaman membuat program (dengan bahasa pemograman apa saja) untuk menentukan suatu bilangan itu merupakan bilangan prima atau bukan? *garuk-garuk mata* Dengan susah payah mengingat macam mana membuat program tersebut? Corat-coret untuk mencoba menjawabnya dan seadanya lah itu jawaban.

Sesampainya di depan PC, langsung lah blusukan sana-sini akhirnya sudah dipastikan jawaban tadi itu sangat lah ngaco. Jumlah variable-nya pun beda apalagi code selanjutnya. Kemudian ketemu lah blog ini, yang ngebahas secara lengkap dan mudah dipahami. Berikut adalah penampakannya:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BilanganPrima
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("\n\n");
Console.WriteLine("Bilangan Prima");
Console.WriteLine("================");

int bilangan;
int x, y;
bool prima = true;
Console.WriteLine("Masukan batas bilangan : ");
bilangan = Convert.ToInt16(Console.ReadLine());
for (x = 2; x <= bilangan; x++)
{
for (y = 2; y < x; y++)
{
if (x % y == 0)
{
prima = false;
break;
}
}
if (prima)
Console.WriteLine(x + "merupakan bilangan prima");
prima = true;
}
Console.ReadLine();
}
}
}

Langsung saja saya jelaskan arti code di atas. Pertama kita deklarasikan dulu variabel bilangan untuk menyimpan bilangan yang akan diinputkan oleh user nanti, yang di mana variabel tersebut nantinya akan berperan sebagai batas bilangan. Ada juga variabel prima yang sudah kita set ke true. Pada line 20, itu berarti kita meminta inputan dari user. Inputan dari user itu bertipe string, oleh karena itulah kita perlu mengubahnya dulu ke dalam bentuk integer.

Nah dari line 21 sampai line 35 itulah code yang sangat penting pada program kita. Akan saya jelaskan satu persatu. Pada baris 21 kita tentukan dulu variabel x bernilai 2, kenapa ? Karena bilangan 1 tidak bisa dimasukkan sebagai bilangan prima (setidaknya begitulah yang saya lihat-lihat di blog-blog orang lain :p). Lalu ada yang namanya syarat agar code di atas dapat berulang terus, di mana x <= bilangan, yang di mana artinya selama x lebih kecil dan sama dengan bilangan. Lalu ada x++ yang berarti x akan ditambah 1. Di dalam for, kita tambahkan lagi for yang lain. Penjelasannya sama dengan sebelumnya.

Sampai sini kita bisa melihat bahwa x mempunyai nilai 2 dan y juga mempunyai nilai 2. Lalu kita akan masuk ke if, if ((x % y) == 0) yang artinya jika x modulus y sama dengan 0 (sisa bagi dari x dan y sama dengan 0), variabel prima yang tadi kita set true akan kita ubah false, kenapa? Misalkan di sini x = 4, y = 2, itu berarti x masih bisa dibagi dengan y (4%2=0 atau tidak ada sisa baginya), sedangkan syarat bilangan prima itu hanya bisa dibagi 1 dan dirinya sendiri, selain itu tidak bisa disebut bilangan prima. Maka kita set variabel prima tadi menjadi false. Break itu sendiri artinya berhenti/selesaikan alur coding-nya, artinya looping-nya kita hentikan. Jika dia tidak dihentikan/di-break, dia loncat lagi ke atas (ke for yang di dalam). Variabel y akan ditambah 1, lalu dicek apakah y < x, jika tidak dia akan langsung loncat ke for yang bagian luar. Variabel x akan ditambah 1, cek apakah x <= bilangan, jika iya masuk lagi ke for yang di dalam.

Nah di sini y kembali di-set menjadi 2. Lalu seterusnya sampai x tidak lebih kecil dan sama dengan bilangan. Pada line 31, itu berarti dia mengecek apakah variabel prima bernilai true, jika iya tampilkan pesan bahwa variabel x tadi merupakan bilangan prima. Lalu set lagi variabel prima menjadi true. Jadi intinya, coding di atas itu akan mengecek apakah selama looping for bagian dalam dia masuk ke dalam rumus if (x % y == 0) dan jika menghasilkan nilai true, itu berarti dia sudah bukan bilangan prima (prima = false). Berikut adalah penampakan program setelah dijalankan dan dimasukan angka 10.Hasil Bilangan Prima

Nah, mudah-mudahan dengan membaca dan memahami tulisan di atas kita semua bisa memahaminya.

Advertisements

One thought on “Menentukan Bilangan Prima dengan Bahasa C#

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s