Senin, 29 Maret 2010

BILANGAN PRIMA ALA VB

Apasih bilangan prima itu?
Kata mbah google bilangan prima itu adalah bilangan yang hanya bisa dibagi sama angka 1 dan bilangan itu sendiri dan sisa hasil baginya 0. Jadi kalau kita pengen tau 5 itu bilangan prima atau bukan kita tinggal di coba ajah 5/1 dan 5/5.
Tapi kalau kita pake metode itu kita bakal nyangka kalau semua bilangan itu bilangan prima, karena semua bilangan pasti akan punya hasil 0 jika Cuma dibagi sama angka satu dan bilangan itu sendiri.
Nah cara ane itu begini :

5 itu bilangan prima ato bukan sih????
5/1 hasil baginya = 0
5/2 hasil baginya = 1
5/3 hasil baginya = 2
5/4 hasil baginya = 1
5/5 hasil baginya = 0

Contoh diatas itu dapat disimpulkan jika 5 adalah bilangan prima, tapi kembali lagi seperti yang sudah ane curhatin tadi diatas, kalau kita Cuma berpatokan ama angka 1 dan bilangan yang dibagi itu nggak jadi kalau kita pake di VB.
Jadi kita hanya mengacu dari angka 2. Begini gambarannya.
5/5 hasil baginya = 0(kita acuhkan)
5/4 hasil baginya = 1
5/3 hasil baginya = 2
5/2 hasil baginya = 1
5/1 hasil baginya = 0(kita acuhkan)
Nah kita hilangkan pembagi yang namanya angka 1 sama angka 5 (dalam kasus ini kita pake angka 5 sebagai contoh).
Nah dari angka 2 sampe angka 4 ini kita akan pake sebagai pembukti jika angka 5 dan angka yang laen itu prima ato bukan. Kalau sisa hasil baginya bukan nol entah 1 ato 3 berarti angka itu “PRIMA”, kalau hasil baginya nol berarti itu angka “BUKAN PRIMA”.
Masih bingung?? Gini deh, ane kasih contoh satu lagi ya.

Angka 6 prima bukan ya?
Kite coba nyok…
6/4 hasil baginya = 2
6/3 hasil baginya = 0
6/2 hasil baginya = 0
Dari hasil diatas kira-kira hasilnya apa ya, PRIMA atau BUKAN?
Jelas BUKAN PRIMA donk…
Nah kira-kira udah rada dong(mudeng) kan?
Kalau udah kita langsung masuk ke sintaknya….yuuk mari…

Private Sub Cmdhitung_Click()
For i = 2 To txt_angka.Text
If txt_angka.Text Mod i = 0 Then
txt_hasil.Text = "BUKAN PRIMA"
Exit for
Else
txt_hasil.Text = "PRIMA"
End If
Next
End sub
(For i adalah perulangan untuk angka pembaginya jadi kalau for i nya mulai dari 2 maka pembagi untuk angka/nominal yang kita masukan adalah mulai dari 2 seperti di contoh tadi. Sedang txt_angka.Text adala text box untuk memasukan nominal/angka)
(MOD I adalah sisa hasil bagi antara bilangan txt_angka.text dengan bilangan ke i)

Apa yang terjadi pada saat hasilnya adalah semua angka yang dimasukan akan bernominal prima. Kenapa? Kita bandingkan dengan sintak berikut.
Private Sub Cmdhitung_Click()
For i = 2 To txtangka.Text - 1
If txtangka.Text Mod i = 0 Then
txthasil.Text = "BUKAN PRIMA"
Exit for
Else
txthasil.Text = "PRIMA"
End If
Next
End sub
Yupz…kesalahan hanya pada kurangnya angka -1 di rumus perulangannya, kenapa begitu.
Pada rumusan sintak yang pertama, kita bisa contohkan logikanya seperti ini.
5/5 hasil baginya = 0
5/4 hasil baginya = 1
5/3 hasil baginya = 2
5/2 hasil baginya = 1
5/1 hasil baginya = 0(kita acuhkan)
Aha, benar sekali, ada nol pada hasil bagi karena kita melakukan perulangan itu sampai bilangan yang kita masukan, pada kasus ini kita masukan angka 5 dan perulanganpun terjadi hingga angka 5 yang membuat hasil akhir menjadi prima, begitu pula dengan angka-angka yang lain, akan sama hasilnya jika kita menggunakan sintak yang pertama.
Lain halnya jika kita memakai sintak yang ke dua. Alur logikanya..
5/5 hasil baginya = 0(kita acuhkan)
5/4 hasil baginya = 1
5/3 hasil baginya = 2
5/2 hasil baginya = 1
5/1 hasil baginya = 0(kita acuhkan)
So….sodara2 sudah taukan maksud tulisan yang ane tulis ini, paling enggak sedikit taulah, hehe…map-maap kalau bahasa ane agak susah di tangkep….
Anyway selamat mencoba…..

0 komentar:

Posting Komentar