Sabtu, 13 Februari 2010

Asuma 1.2, Pencari Pembagi dan Bilangan Prima


Satu lagi software kecil buatan saya, Asuma 1.2 adalah kependekan dari Asuma:Software Untuk Manipulasi Angka, sengaja saya memberi singkatan rekursif agar terdengar unik, meskipun terkesan sedikit maksa. Asuma 1.2 sebenarnya adalah pengembangan software pembagi yang pernah saya post. Disitu saya menambahkan fitur-fitur baru, seperti menu terintegerasi, help, kustomisasi nama file output dan satu fitur baru bernama Prime Generator. Pembagi masih memiliki fungsi yang sama, Prime Generator berfungsi untuk mencari bilangan prima di rentang angka yang kita masukan. Misalnya kita memasukan angka antara 1 hingga 100, maka dia akan menghasilkan bilangan prima antara 1 hingga 100.

Menu Utama Asuma

Saat ini memang Asuma hanya bisa melakukan 2 fungsi itu, tapi tidak tertutup kemungkinan nantinya Asuma akan terus di kembangkan. Seperti Software 'Pembagi', Asuma saya tulis dengan bahasa pascal dan berjalan di interface yang tidak terlalu indah, hanya kumpulan teks saja. Sebenarnya Asuma sudah di selesaikan sejak Januari lalu, tapi baru saya publish sekarang untuk memastikan Asuma tidak memiliki Bug.
Awalnya Asuma memang memiliki banyak bug, kebanyakan berkisar di kesalahan perhitungan saja. Seperti output yang tidak sesuai, kesalahan logika program dsb. Kesalahan kebanyakan ada pada rutin Prime Generator, karena memang benar-benar baru, berbeda dengan rutin pembagi yang sudah saya rilis sebelumnya, tentunya sudah stabil.
Mungkin banyak yang bertanya-tanya, kok sekali rilis langsung versi 1.2, Versi 1.0 dan 1.1nya mana?
Di Versi 1.0 dan 1.1 saya masih menggunakan algoritma Brute Force untuk Rutin Prime Generator. Bila di versi 1.0 saya masih menggunakan Brute Force murni (mencoba semua angka tanpa pandang bulu) di versi 1.1, saya membuat agar software tidak ikut menghitung angka yang tidak mungkin bilangan prima, seperti angka genap dan angka yang habis di bagi 3. Pembaginya (pembagi untuk menguji bilangan prima atau bukan) juga di seleksi agar hanya bilangan ganjil saja,dan perhitungan hanya sampai di titik setengah dari angka yang dihitung. di Asuma 1.0, semua angka di gunakan untuk menguji. Hasilnya, Asuma versi 1.1 jauh lebih cepat dari 1.0.
Tapi versi 1.1 masih menyisakan masalah, khususnya untuk prime generator, untuk rentang bilangan yang terlalu besar, perhitungan akan menjadi sangat lambat(angka diatas 10.000.000). Akhirnya keluarlah Versi 1.2 ini, dengan algoritma yang benar-benar baru dan kecepatannya tidak tergantung banyaknya angka. Mau angka kecil-maupun besar, semuanya dihitung dengan sangat cepat. Untuk menghitung pada rentang 1 hingga 1 juta, hanya dibutuhkan waktu kurang dari satu detik. Berbeda jauh dengan versi 1.1 yang membutuhkan waktu puluhan detik.
Karena itulah bisa dikatakan, Asuma 1.2 adalah penghitung bilangan Prima tercepat!
Namun, saya tidak tahu apa ada yang lebih cepat lagi.

Asuma Prime Generator, penghitung bilangan prima tercepat?


Lalu apa kegunaan Asuma ini?

Memang tidak ada kegunaan yang umum untuk software ini. Kecuali kalau memang anda setiap hari berhubungan dengan bilangan prima dan pembagi bilangan. Kalau bukan itu, begitu Asuma 1.2 mengeluarkan output, lalu apa untuk apa? Kalau untuk saya pribadi sih, mengoprek source code Asuma agar bisa berjalan lebih cepat lagi memang asik. Tapi orang lain?

Oke, supaya Asuma ini terlihat berguna saya tampilkan contoh kasus, misalnya kita mengikuti kuis di acara televisi, di situ ada soal

'232131 adalah bilangan prima. Betul atau salah?
'78.498 adalah jumlah bilangan prima antara 1 hingga 1000000. Benar atau salah?'
'bilangan prima pertama yang ditemukan di angka dibawah 10.000.0000 adalah 9.999.973. Betulkah?'
Atau yang lebih ekstrim lagi :
'berapa jumlah bilangan prima antara 100.000.000 hingga 120.000.001?'






Semua pertanyaan itu akan bisa di jawab dengan mudah bila menggunakan Asuma, dan kita akan mendapat uang puluhan juta karena menjawabnya. Memang fantastis  Asuma ini....

Oke, kembali kedunia nyata. Untuk manual penggunaan Asuma, sudah ada di menu bantuan asuma, tinggal masukan angka 4 dan enter.
Selain itu, karena output perhitungan asuma akan di tampilkan dalam file teks, di Asuma kita bisa bebas menentukan nama file teksnya. Dengan ketik angka 3 di menu utama dan tekan enter, ketik 'y' lalu tuliskan nama yang diinginkan. Apabila mengabaikan seting ini, nama akan di set ke nama default.
Download Asuma di sini





Disitu saya juga menyertakan Asuma versi 1.0 dan 1.1 untuk melihat perbandingan kecepatan keduanya.
Oya, saya tidak menyertakan source code asuma disini, memang sengaja saya tidak mendistribusikannya secara bebas. Namun bila ada yang ini mempelajari Asuma, bisa menghubungi saya dan sertakan alamat email. Nanti source codenya akan saya kirim. (AHP 14 februari 2010 10:16)

11 komentar:

  1. mas, izin copy ke blog saya. trims

    BalasHapus
  2. minta sourcenya dong

    BalasHapus
  3. Kalau interface-nya dipercantik pasti akan lebih menarik. Mungkin bisa pakai GTK untuk GUI-nya.

    BalasHapus
  4. @Haris: Silahkan-silahkan....
    @Muqtafi: Cantumkan email mas, ntar saya kirimkan....

    @Muji: Detailnya gimana mas, GTK itu semacam IDE bukan?

    BalasHapus
  5. nan, minta sourcenya donk..

    kirim ke email ini ya :
    cak2_zuper@yahoo.co.id

    BalasHapus
  6. rangga ganteng23 April 2010 21.42

    bagus nan,
    eh masih pake pascal? di kampus pake bahasa apa aja?

    BalasHapus
  7. @rangganteng: Buat semester 1 pake bahasa pascal, tapi ntar semester 3 kayaknya bahasa C

    BalasHapus
  8. om saya minta SC nya donk ...(buat belajar)
    kirim kesini ya oopz.tac@gmail.com
    terimakasih..

    BalasHapus
  9. Om, Tolong kirimkan saya SCnya dong (buat belajar)
    email: cahyanugraha12@gmail.com
    NB: ini pake pascal kan buatnya?

    BalasHapus

Kirim Komentar