24 Jun 2009 @ 9:00 

Alhamdulillahi robbil ‘aalamiin. Nahmaduhu wa nusholli wa nusallimu ‘alaa rasulihil kariim.

Bilangan termasuk bilangan yang cukup unik, kita sudah mempelajari bilangan ini sejak masuk sekolah dasar.

Beberapa referensi yang penulis dapat menyatakan bahwa bilangan prima merupakan bilangan positif yang hanya bisa dibagi oleh tepat 2 pembagi, yaitu angka 1 dan angka tersebut sendiri. Ada juga yang menyatakan sebagai suatu bilangan yang hanya bisa dibagi oleh dirinya sendiri tanpa menyertakan angka 1.

Contoh: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 dan seterusnya.

Teori selanjutnya silakan baca http://en.wikipedia.org/wiki/Prime_number dan http://mathworld.wolfram.com/PrimeNumber.html.

Dalam logika , kita cuma perlu memperhatikan mulai angka 2 dan seterusnya. Angka 0 jelas tidak mungkin, karena bilangan ini dibagi angka berapapun akan menghasilkan angka 0. Dan angka 1 juga kita abaikan saja, sebab angka 1 hanya bisa dibagi oleh dirinya sendiri, padahal bilangan prima itu syarat utamanya bisa dibagi oleh 2 bilangan natural yang nyata, yaitu angka 1 dan dirinya sendiri. (Note: bisa dibagi ini dalam artian menghasilkan bilangan bulat positif, bukan bilangan pecahan.)

Berikutnya akan penulis ilustrasikan contoh pembagiannya, dimana kita sepakati bahwa angka pembagi tidak melibatkan angka 1.

2: hanya bisa dibagi 2.

3: hanya bisa dibagi 3.

4: bisa dibagi 2 dan 4 (lebih dari 1 pembagian, maka tidak termasuk bilangan prima).

5: hanya bisa dibagi 5.

6: bisa dibagi 2,3, dan 6 (bukan bilangan prima).

Dan seterusnya.

Misalkan diketahui sebuah bilangan X, bagaimana cara menentukan bahwa bilangan X itu termasuk bilangan prima atau bukan?

Asumsi: X adalah bilangan yang lebih besar dari 2

Berarti bilangan-bilangan yang akan menjadi pembagi adalah mulai angka 2 sampai X-1.

Jika bilangan X bisa dibagi oleh minimal salah satu dari bilangan-bilangan mulai 2 sampai X-1, maka dapat dikatakan bahwa bilangan X adalah bukan bilangan prima.

Contoh: 9

Bilangan sebagai pembagi adalah 2 3 4 5 6 7 8

Untuk mengetahui bahwa suatu bilangan bisa dibagi atau tidak, paling mudah kita menggunakan bantuan mod, yang menyatakan sisa hasil bagi. Jika sisa hasil bagi 0 berarti bisa dibagi.

Kembali ke contoh.

9 mod 2 = 1 (hasil bukan 0, artinya tidak habis/bisa dibagi), lanjutkan,

9 mod 3 =0 (sudah cukup untuk menyimpulkan bahwa 9 adalah bukan bilangan prima.)

Tidak perlu kita uji dengan membagi 9 dengan angka 4 dan seterusnya.

Contoh lain: 11

11 mod 2 = 1

11 mod 3 = 2

11 mod 4 = 3

11 mod 5 = 1

11 mod 6 = 5

11 mod 7 = 4

11 mod 8 = 3

11 mod 9 = 2

11 mod 10 = 1

Tidak ada yang menghasilkan angka 0, berarti 11 termasuk bilangan prima.

Sekarang kita coba dengan pemrogramannya.

KAMUS
  i     : integer
  bil   : integer
  prima : boolean
ALGORITMA
  prima ← false
  input (bil)
  if (bil=2) then
     prima ← true
  else
     for i ← 2 to bil-1 do
        if (bil mod i = 0) then
           prima ← false
           exit for // keluar dari looping
        else
           prima ← true
        endif
     endfor
  endif

  if (prima) then // prima=true
     output ("Bilangan Prima")
  else
     output ("Bukan Bilangan Prima")
  endif

Logika di atas bisa digunakan kalau kita ingin memeriksa hanya pada satu bilangan tertentu saja.

Bagaimana kalau soal kita kembangkan, menampilkan bilangan prima dari bilangan sekian sampai sekian. Maka tinggal kita kombinasikan dengan looping juga.

Source Code ++.

#include <iostream>

/* ------------------------------
    Developed by Galih Hermawan
    Website: http://galih.eu
   ------------------------------ */

using namespace std;

int main()
{
    int i, j, min, max, jum=0, total=0;
    float rata;
    bool prima;

    cout << "Masukkan nilai batas bawah: ";
    cin >> min;
    cout << "Masukkan nilai batas atas: ";
    cin >> max;

    while (min > max)
    {
        cout << "\n\nBatas atas harus lebih besar dari batas bawah.\nMasukkan nilai batas atas: ";
        cin >> max;
    }
    cout << endl;

    for (i=min;i<=max;i++)
    {
        prima=false;
        if (i==2)
            prima=true;
        else
            {
                for (j=2;j<i;j++)
                {
                    if (i % j==0)
                    {
                        prima=false;
                        break; // keluar dari looping
                    }
                    else
                        prima=true;
                }
            }
        if (prima) // prima = true
        {
            cout << i << "\t";
            jum+=1; // menghitung banyaknya bilangan prima
            total+=i; // total jumlah dari seluruh bil. prima
        }
    }
    cout << endl;

    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout.precision(2);

    rata=(float)total/jum;
    cout << "\nTerdapat " << jum << " bilangan dengan total " << total;
    cout << "\nRata-ratanya " << rata << endl;
    system ("PAUSE");
    return 0;
}

Contoh tampilan:

prima (c)

Source Code .

import java.util.Scanner;
/* ------------------------------
    Developed by Galih Hermawan
    Website: http://galih.eu
   ------------------------------ */
public class DeretPrima
{
    public static void main( String[] args )
    {
        Scanner input = new Scanner( System.in );

        int i, j, min, max, jum=0, total=0;
        float rata;
        boolean prima;

        System.out.print("Masukkan nilai batas bawah: ");
        min = input.nextInt();
        System.out.print("Masukkan nilai batas atas: ");
        max = input.nextInt();

        while (min > max)
        {
            System.out.print("\n\nBatas atas harus lebih besar dari batas bawah.\nMasukkan nilai batas atas: ");
            max = input.nextInt();
        }

        System.out.print("\n");

        for (i=min;i<=max;i++)
        {
            prima=false;
            if (i==2)
                prima=true;
            else
                {
                    for (j=2;j<i;j++)
                    {
                        if (i % j==0)
                        {
                            prima=false;
                            break; // keluar dari looping
                        }
                        else
                            prima=true;
                    }
                }
            if (prima) // prima = true
            {
                System.out.printf("%d\t",i);
                jum+=1; // menghitung banyaknya bilangan prima
                total+=i; // total jumlah dari seluruh bil. prima
            }
        }

        rata=(float)total/jum;
        System.out.printf("\n\nTerdapat %d bilangan dengan total %d.",jum,total);
        System.out.printf("\nRata-ratanya %5.2f",rata);

    }
}

Contoh tampilan:

prima (java)

Versi Visual Basic 6 bisa Anda lihat di http://if.web.id/visual-basic-vb/deret-bilangan-prima/

Mudah-mudahan Allah ta’ala jadikan tutorial ini sebagai ‘ilmu yang bermanfaat. Amiin.

Allaahu Akbar.

Posted By: Galih Hermawan
Last Edit: 30 Oct 2011 @ 23:42

EmailPermalink
Tags


 

Responses to this post » (52 Total)

 
  1. laily ayu says:

    kadang orang akn bingung dengan bilangan prima karena sudah mengakar budaya klo bil. prima yaitu-itu saja . maka sewajarnya klo qta sbgi gnrasi penerus bangsa terus belajar- dan terus belajar, apalagi q sbgi org yg masih awam tentang logika pemrograman jadi mohon bantuannya sebagai tutorial . atas perhatiannya saya ucapkan terima kasih

    • Terima kasih mbak Laily atas kunjungannya. Memang sesuai pengalaman pribadi, bilangan prima ini diajarkan kalau tidak salah pada waktu SD, berlanjut hingga kuliah. Belum pernah saya mendengar sejarah ditemukannya maupun kemanfaatan secara praktis adanya bilangan prima ini di tengah-tengah masyarakat. Namun bagi saya pribadi, adanya bilangan prima dengan berbagai syarat-syaratnya, merupakan tantangan bagi pelajar-pelajar yang menekuni dunia pemrograman untuk lebih mengasah otak.

      Mudah-mudahan sekilas penjelasan dan contoh pemrograman yang saya tulis ini memacu pembaca untuk menuangkan ide-ide kreatif di bidang matematika ke dalam logika pemrograman supaya mempertajam daya nalar kita dalam menghasilkan suatu solusi.

      Salam Kenal.

  2. yus says:

    Kalo lgsg inputannya gmn????ga ush inputin manual. mslnya lgsg dibuat bil prima 1 sampa1000,gmn???

    • Dalam Algoritma, Anda bisa mengisikan data angka pada variabel i dan bil secara langsung.

      Sedangkan dalam kode C atau Java, untuk nilai min dan max bisa langsung Anda tentukan nilainya.

      Contoh:

         . . .
         min = 1;
         max = 1000;
         for (i=min;i< =max;i++)
          . . .
      

      Terima kasih.

  3. inggri says:

    kug error sih djl kn …

    tlog dung …

    tgas na kmi jd trhambat

    • Memangnya error-nya seperti apa?

      Anyway, sebaiknya tutorial ini hanya dijadikan sebagai bahan belajar, bukan bahan mengumpulkan tugas. Akan lebih berkembang jika Anda aktif mengotak-atik kode-kode yang ada, kemudian Anda fahami cara kerjanya, dieksekusi, dan dilihat hasilnya. Insya Allah akan membantu kita dalam mengembangkan kemampuan logika dan pemrograman kita.

      Terima kasih atas kunjungannya.

  4. Yosep says:

    alo.. kalo buat bilangan prima ky gini gmn ya?

    mis input = 5
    maka output = 2, 3, 5, 7, 11

    apakah ada caranya ya? kalo bisa mohon bantuannya kirim ke email invincible_y@yahoo.com
    dalam bahasa java/php aja, biar bisa di compile di rumah. thanks

    • Halo juga Yosep 🙂

      Misalkan x adalah jumlah bilangan.
      Asumsi saya Anda ingin menampilkan x bilangan prima, bukan begitu?

      Hal ini bisa dilakukan dengan melakukan input data x tersebut dari piranti masukan, kemudian looping dimulai dari angka 2 sampai n angka dimana kalau dihitung sebanyak x bilangan.

      Logikanya seperti ini:

      input (x)
      Jika PRIMA maka
      OUTPUT(bilangan)
      jumlah=jumlah+1

      Jika jumlah = x maka
      Keluar

      null

      Code: http://pastebin.com/7Nc0hYMt ATAU http://pastebin.org/126700
      (Kelas dan lain-lain silakan disesuaikan.)

  5. jony says:

    mas galih, kasus saya sama sprti mas yosep cm bedanya dia coding java, klo saya coding c++, gmn yah kira2 klo dalam bentuk c++?

    mis input = 5
    maka output = 2, 3, 5, 7, 11

    dlm bntuk c++.

    thx.

    • Saudara Jony, kode C/C++ dan Java tentunya sangat mirip, hanya perlu modifikasi sedikit. Apabila saudara sudah terbiasa dengan C/C++, untuk beralih atau belajar Java insya Allah cukup mudah.

      Silakan periksa di sini: http://pastebin.com/AvVnxQFQ ATAU http://pastebin.org/137202

      Regards.

      • jony says:

        itu kan coding untuk MS Visual C++ , klo Borland Turbo C++ seperti apa ya codingnya.
        Maaf nih mas, di kuliah msh pake Borland..

        thanks..

      • Intinya sama saja, yang penting Anda faham logika pemrogramannya.

        Kemungkinan ada sedikit perbedaan sintaks, misal antara cout dengan printf.

        Antara cin dengan get, dan lain-lain.

        Ayo semangat kreatif.

  6. yanu says:

    asslm… template blog antum bagus, kira – kira punya scriptnya tidak…
    ana mau minta terutama yang bisa keluar menunya itu… di bawah…
    gimana caranya antum….

  7. Dimas says:

    Assalammualaikum…

    mau tanya klo nentuin bilangan bulat(negatif/positif) dan pecahan gmn ya… pake bahasa C..

    tolong bantu ya pak…

    makasih…

  8. aci says:

    assalamualaikum …
    kak bantuin saya pencerahan ide buat program java , tapi menggunakan time sharing gitu …

    SOAL :
    Time Sharing
    Jumlah proses = 4
    kuantum time = 2

    P1=10
    P2=5
    P3=12
    P4=7

    yg diminta outputnya seperti yg dbwh :
    P1:2-P2:2-P3:2-P4:2-P1:2-P2:2-P3:2-P4:2-P1:2-P2:1-P3:2-P4:2-P1:2-P3:2

    can u help me ?? thanks before sir 😀

    kalo bisa tolong kirimkan ke email saya acikita.wanju@gmail.com

  9. ramadhan says:

    KK galih kasus saya sama kaya kak yosep dan jony tapi pada Vibi saya mentok nich udah mencoba” tapi ga ketemu T_T

  10. faiz rhamday says:

    asslamualaikum…
    alhamdulillah ternyata ada orang yg religious pinter kyk kamu… saya bangga sekali bahwa ada seorang yg pinter logikanya.. dan membuat web bagus seperti ini… tolong bimbingannya mas..
    ALLAHUAKBAR……

    • Wa’alaikumussalam,

      La hawla wa laa quwwaata illa billaah, Allah ta’ala yang maha memiliki ‘ilmu dan kefahaman.

      Webnya bukan bikin, ini sebenarnya menggunakan wordpress dengan template orang lain.

      Thanks.

  11. faiz rhamday says:

    mas mau nanya.. bisa ada toolbar dibawah itu scriptnya apa mas.. mohon bimbingannnya ya mas.. makasih…

    • Ini bawaan dari theme (blog template), download saja theme-nya dari situs wordpress, saya sendiri tidak terlalu faham dengan coding atau desain theme ini.

      Selamat belajar.

  12. ALFA says:

    assalamu’alaikum
    Kalo boleh, saya juga pengen ngasih source code dari contoh deret lainnya, misalnya seperti di bawah ini: Silakan dicoba!

    import java.util.Scanner;
    public class Deret_PlusMin {
    public static void main (String[]args){
    Scanner masukan=new Scanner (System.in);
    System.out.print(“Masukkan bilangan: “);
    int jumlah=0;
    jumlah=masukan.nextInt();
    int bil=1;

    System.out.print(“1, “);
    for (int i=1;i<jumlah;i=i+1){
    bil=bil*2;// saat proses ini, yg dikalikan bil awalnya
    if (i%2!=0)
    System.out.print("-1/"+bil+", ");
    else
    System.out.print("1/"+bil+", ");
    }
    }
    }

  13. rahmat bintoro says:

    tlng minta penjelaan ttg program deret bil. prima 1-n, kl bisa secepatnya ya pak?

  14. rahmat bintoro says:

    biasanya orang mencari deret bil prima dg perulangan for,,, tp dlm tugas saya, disuruh menggunakan perulangan while,

    • Looping / Perulangan menggunakan model apapun sama saja, asalkan kita memahami dasar penggunaan dari model looping tersebut.

      Baiknya Anda coba praktek menggunakan looping-looping yang berbeda untuk kasus sederhana, kalau sudah faham coba Anda konversi kode saya di atas ke bentuk perulangan yang Anda inginkan.

      Selamat belajar.

  15. endurba says:

    pake phpnya ada gag?

    bilangan prima yang masukin inputan????

  16. armand says:

    Assalamualaikum …
    kak bantuin saya pencerahan ide buat program java untuk menghitung jumlah bilangan genap, bilangan ganjil dan bilangan prima dari hitungan mulai 0 sampai integer nim(misal nim : 108218061) yang dibagi 12

    trima kasih atas bantuannya…
    kalo bisa tolong kirimkan ke email saya arm4nd@ymail.com

  17. aini says:

    assalamualaikum,mz kalo algoritmanya mencari bilangan bulat prima gimana??
    ada gk?
    trils
    ws.

  18. Yoseva says:

    hai mas,, kodenya sip banget bisa membantu sekali,, tapi aq dapet tugas gini mas “gimana bikin bilangan prima kembar – kaya 3 dan 5, 5 dan 7, 11 dan 13” mohon bantuannya

  19. arya says:

    asalamualaikum om,
    thanks udh share ilmunya….
    gw pelajari om. izin sedot om.

  20. arya says:

    ada yang lupa om, webnya bagus!!.
    thanks.

  21. zaki says:

    Assalamualaikum om, mau nanya nih tentang yg ini..
    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout.precision(2);

    tolong jelasin fungsinya dong om, thanks 🙂

  22. agung says:

    gan..minta tolong plz kasi tau cara mecahin ini
    teks=”82/21″
    dengan cara konversi string to float…..

  23. rere says:

    kalo cari bilangan ganjil genap gmn?? tolong di bantu

  24. krewel says:

    thanks bank infonya bermanfaat buat tugas kul…
    ijijn copas… pusing kepala akhirnya dapat juga neh blog.. sekali lagi makasih banyak bang,,,

  25. aisya says:

    mas tolong donk klo bil. prima 1 smpai 1000 tuh gmn pke vb 6.0?

  26. adi says:

    haii mas aq mw tanya ni slnya da tugas kul,,, kalo membuat grade nilai menggunakan case sama if dalam vb gmn yah? tlong bls ya mas…

  27. hery says:

    Assalamuailakum mas,,,
    saya mw nanya ne,,
    bagaimana cara pake source diatas tapi ditambah menjadi penjumlahan bilangan prima?
    jadi hasil keluaran nya nanti deretan bilangan genap.

  28. Wa’alaikumussalam.

    Be creative everybody. Bismillaah. Insya Allah bisa.


 Last 50 Posts
 Back
Change Theme...
  • Users » 1
  • Posts/Pages » 46
  • Comments » 313
Change Theme...
  • VoidVoid
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater « Default
  • FireFire
  • LightLight

Ijtima’ Indonesia 2009



    No Child Pages.

Keamanan Informasi Lanjut



    No Child Pages.

About



    No Child Pages.