Selamat membaca dan semoga dapat bermanfaat bagi anda !

Search This Blog

Laman

Powered by Blogger.

CARA DOWNLOAD VIDEO DI FEMBED ATAU FEURL

Kali ini saya ingin sharing informasi mengenai cara download video di Fembed.com atau Feurl.com di HP tanpa IDM. Saat ini banyak sekali ter...

Blog Archive

Sunday 9 July 2017

MENAMPILKAN DERETAN BILANGAN PRIMA PADA BAHASA PEMROGRAMAN C++

Kali ini saya ingin sharing mengenai program menampilkan bilangan prima menggunakan bahasa pemrograman C++. Mungkin pada blog lain sudah banyak yang membahas topik ini tapi saya akan berusaha untuk membahasnya secara jelas dan detail. Sebelumnya pasti semuanya sudah tau apa itu bilangan prima. Bilangan prima merupakan bilangan yang  hanya habis dibagi oleh dirinya sendiri. Deret bilangan prima itu diantaranya mulai dari 2, 3, 5, 7, 11, 13, 17, 19,...dst. Langsung saja saya bahas mengenai algoritma  dalam menampilkan bilangan prima.

Sebelum menuju ke algoritma apakah sudah paham mengenai apa itu modulus ? Dalam algoritma menampilkan bilangan prima kita memerlukan fungsi dari modulus ini karena dari pengertian bilangan prima itu sendiri yaitu bilangan yang hanya habis dibagi oleh dirinya sendiri. Pengertian dari modulus itu sendiri yaitu sisa hasil bagi.  Contohnya yaitu bilangan 3 jika dimodulus 2 maka sisa hasil baginya yaitu 1 tetapi jika dimodulus 3 maka sisa hasil baginya yaitu 0. Contoh lainnya bilangan 5 dimodulus 2 maka sisa hasil baginya yaitu 1 jika dimodulus 3 maka sisa hasil baginya 2. Saya rasa itu cukup untuk memahami mengenai modulus.
  
Untuk algoritma menampilkan bilangan prima dan source codenya pada bahasa pemrograman C++ dapat dilihat pada coding di bawah ini :

#include <iostream>
using namespace std;
int main()
{
    int i, j, x, y, c;
    cout << "Masukkan bilangan batas awal prima : ";
    cin >> x;
    cout << "Masukkan bilangan batas akhir prima : ";
    cin >> y;
         for (i=x; i<=y; i++){
         c=2;
                  for (j=1; j<=i; j++){
                  if (i%j == 0){
                        c = c - 1;
                  }
         }
         if (c == 0){
               cout << i <<", ";
         }
         }
    return 0;
}

Penjelasan mengenai source code menampilkan bilangan prima di atas akan saya bahas mulai dari yang pertama yaitu  :

a. Pertama saya mendeklarasikan variabel-variabel yang akan saya gunakan karena semuanya variabel angka jadi saya menggunakan tipe data interger (int).

b. Saya menggunakan dua batasan pada program ini yaitu batas awal inputan bilangan prima yang akan disimpan pada variabel x dan batasan akhir inputan bilangan prima yang akan disimpan pada variabel y.

c. Disini saya menggunakan perulangan FOR bertingkat untuk tingkat pertama dengan batasan inputan awal dan akhir untuk mengecek secara satu-satu bilangan-bilangan dari batas awal sampai akhir dan tingkat kedua untuk mengecek lebih detail masing-masing bilangan dari batas awal sampai akhir satu persatu. 

d. Di dalam perulangan for tingkat pertama saya menyisipkan variabel c dengan nilai 2 yang berfungsi sebagai penentunya nantinya itu bilangan prima atau tidak. Kenapa 2 karena bilangan prima itu sendiri adalah bilangan yang habis dibagi dirinya sendiri. Misalkan bilangan 5 hanya habis dibagi 5 itu mendapat point 1 sedangkan 1 point lagi yaitu ketika bilangan itu dibagi 1 hal ini berikaitan dengan poin e. 

e. Didalam perulangan for tingkat kedua saya meletakkan kondisi dimana jika hasil modulus bilangan yang dicek satu persatu itu adalah 0 maka variabel c akan dikurangi 1. 

f. Pada poin d dinyatakan nilai variabel c adalah 2. Penjelasan 1 poin t sudah dijelaskan pada poin d sedangkan 1 lagi berkaitan dengan poin e dimana hasil modulus 1 adalah pasti 0. Jadi jika kita ambil contoh bilangan 5 maka hasil modulus yang menghasilkan 0 hanya 5 dimodulus dengan bilangan 1 dan 5 sendiri, 5 dimodulus dengan  2 hasilnya 1, dimodulus dengan 3 hasilnya 2, dimodulus 4 hasilnya 1. Dari situlah kenapa variabel c diberi nilai 2.

g. Selanjutnya saya meletakkan kondisi IF pada perulangan for tingkat pertama untuk mengecek jika nilai c sudah 0 maka bilangan yang dicek tersebut akan dicetak dan kenapa variabel c diletakkan pada perulangan for tingkat pertama yaitu untuk mereset kembali nilai variabel c setelah satu buah bilangan selesai di cek pada perulangan for tingkat kedua. Karena setiap satu buah bilangan bisa dikatakan prima jika dimodulus dengan bilangan 1 dan dirinya sendiri.

h. Sekarang bagaimana dengan bilangan 4 ? kenapa tidak prima padahal dimodulus 4 dan 1 akan menghasilkan 0. Hal ini karena 4 jika dimodulus 2 juga akan menghasilkan 0 jadi nilai c pada pengecekan bilangan 4 yaitu -1.

Untuk lebih jelasnya lagi saya akan ilustrasikan jika program dijalan dan dimasukkan inputan batas awal yaitu 1 dan batas akhir yaitu 4. Inputan batas awal 1 akan disimpan pada perint cin pada source code di atas pada variabel x dan inputan batas akhir 4 akan disimpan pada variabel y. Selanjutnya masuk pada perulangan FOR dimana pada perulangan FOR ini yang menggunakan variabel i akan berisi batas awal perulangan FOR yaitu 1 (i=x) dan batas akhir perulangan kurang dari atau sama dengan yaitu 4 (i<=y) dan jika arti dari (i++) jika perulangan sebuah bilangan dari 1 sampai 4 sudah selesai satu bilangan misal dimulai dari angka 1 maka setelah selesai angka 1 maka nilai variabel i yang awalnya 1 bertambah 1 menjadi 2 begitu seterusnya. 
Kita bayangkan tahap pertama pada perulangan for tingkat pertama dengan nilai i yaitu 1  terlebih dahulu. Kemudian masuk ke vaiabel c yang masih 2. Seteleh itu masuk ke perulangan for tingkat kedua dengan variabel j awal perulangan yaitu 1 (j=1) dan batas akhir perulangan kurang dari atau sama dengan yaitu 1 karena variabel i pada   perulangan for tingkat pertama baru mulai dari angka 1 (j<=i). Selanjutnya pengecekan pada kondisi if dimana 1 dimodulus dengan 1 yang hasilnya 0 (i%j) tanda persen merupakan modulus. Karena batas akhir perulangan for tingkat kedua tadi yaitu 1 maka tidak ada proses lagi dan nilai c menjadi 1 karena sudah dikurangi 1 tadi. 
Selanjutnya masuk ke pengecekan kondisi IF di dalam perulangan for tingkat pertama. Karena nilai c tadi menjadi 1 jadi bilangan 1 tidak dapat di cetak karena tidak sesuai dengan syarat c harus 0 untuk dapat di cetak. Selanjutnya kembali ke perulangan for tingkat pertama karena proses variabel i dengan nilai 1 sudah selesai masuk ke variabel i yaitu 2 karena (i++). Nah disini nilai variabel c direset kembali menjadi 2. Masuk ke perulangan for tingkat kedua disini nilai batas perulangan for tetap 1 dan batas akhir perulangan for yaitu 2 (j<=i). Karena batas pertama yaitu bilangan 1 jadi dicek pada kondisi if batas akhir yaitu variabel i yang sekarang yaitu 2 dimodulus dengan batas awal perulangan for tingkat kedua saat ini yaitu 1. Jadi 2 dimodulus 1 hasilnya 0 maka nilai variabel c dikurangi 1 menjadi 1. 
Karena batas akhir perulangan for tingkat kedua yaitu 2 maka terdapat proses perulangan kembali dimana nilai batas awal perulangan j menjadi 2 karena (j++). Masuk ke kondisi if dimana variabel i yang saat ini 2 dimodulus dengan variabel j batas awal perulangan for tingkat kedua saat ini yaitu 2. Jadi 2 dimodulus 2 hasilnya yaitu 0. Maka nilai variabel c dikurangi lagi 1 menjadi 0. Karena batas akhir perulangan for tingkat kedua tadi yaitu 2 jadi sudah tidak ada proses perulangan kembali jadi masuk ke kondisi IF didalam perulangan for tingkat pertama karena nilai c sudah 0 tadi maka memenuhi syarat selanjutnya nilai i saat ini yaitu 2 maka akan dicetak sebagai bilangan prima. Tahap selanjutnya kembali ke perulangan for tingkat pertama dimana variabel i batas awal perulangan sekarang menjadi 3 karena (i++). Begitu pun seterusnya sampai batas akhir perulangan for tingkat pertama sampai batas akhir yaitu 4.

Sekian yang dapat saya share, semoga dapat membantu...



No comments:

Post a Comment