Selasa, 19 Februari 2013

[Tutor] Penghitung Bilangan Prima dengan VB 6.0

Download SS Penghitung Bilangan disini

1. Buat dua TextBox (Text1 digunakan untuk input bilangan, Text2 digunakan untuk output hasil).
2. Buat 2 Command Button (Command1 digunakan untuk memulai menghitung, Command2 digunakan untuk berhenti).
3. Buat Label untuk Proses.
4. Susun posisi emua komponen seperti gambar di bawah atau posisi yang anda inginkan


5.  Klik Kanan Pada Form Lalu klik view code
6. Masukkan kode dibawah:

Option Explicit

Dim hentikan As Boolean

Private Sub Form_Load()
    If App.PrevInstance = True Then End
    
    hentikan = True
    Me.Caption = App.Title
    
    Text1.Text = ""
    Text1.Alignment = 2
    Text1.MaxLength = 10
    Text1.BackColor = &H0&
    Text1.ForeColor = &HFF00&
    
    Text2.Text = ""
    Text2.BackColor = &H0&
    Text2.ForeColor = &HFF00&
    
    Label1.Caption = ""
    Command1.Caption = "Analisa bilangan"
    Command2.Caption = "Hentikan"
    Command2.Visible = False
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
    hentikan = True
    Set Form1 = Nothing
    End
End Sub

Private Function BilanganPrima(ByVal n As Double) As Boolean
    BilanganPrima = False
    
    Dim i As Double, hitung As Double
    hitung = 0
    
    For i = 2 To n
        DoEvents
        If hentikan = True Then Exit For
        If ((n Mod i) = 0) Then
            If (i <> n) Then hitung = hitung + 1
        End If
    Next i
    
    If (hentikan = False) And (hitung = 0) Then BilanganPrima = True
    hitung = 0: i = 0
End Function


Private Function UrutanPrima(ByVal n As Double) As String
    UrutanPrima = ""
    
    Dim i As Double, hitung As Double, proses As Double
    Dim alasan As String
    i = 0: hitung = 0: proses = 1
    alasan = ""
    
    For i = 2 To n
        DoEvents
        If hentikan = True Then Exit For
        proses = proses + 1
        Label1.Caption = "Proses: " & CStr(n) & " / " & CStr(proses)
        If ((n Mod i) = 0) Then
            If (i <> n) Then
                hitung = hitung + 1
                alasan = alasan & CStr(hitung) & ".)  " & CStr(n) & " : " & CStr(i) & " = " & CStr((n / i)) & vbCrLf
            End If
        End If
    Next i
    
    If (Not hentikan) Then
        If (hitung > 0) Then
            UrutanPrima = CStr(n) & " adalah bilangan komposit atau bukan bilangan prima karena bisa habis dibagi " & CStr(hitung) & " faktor yaitu:" & vbCrLf & vbCrLf & alasan
            i = 0: hitung = 0: proses = 1
            alasan = ""
            Exit Function
        End If
    Else
        Exit Function
    End If
    
    i = 0: hitung = 0: proses = 1
    alasan = "": Label1.Caption = ""
    
    For i = 2 To n
        DoEvents
        If hentikan = True Then Exit For
        proses = proses + 1
        Label1.Caption = "Proses: " & CStr(n) & " / " & CStr(proses)
        If BilanganPrima(i) = True Then
            hitung = hitung + 1
            alasan = alasan & CStr(hitung) & ".)  " & CStr(i) & vbCrLf
        End If
    Next i
    
    If (Not hentikan) Then
        If (hitung > 0) Then
            UrutanPrima = CStr(n) & " adalah bilangan Prima yang berada di urutan ke" & CStr(hitung) & "." & vbCrLf & vbCrLf & alasan
        End If
    End If
    i = 0: hitung = 0: proses = 0
    alasan = ""
End Function


Private Sub Command1_Click()
On Error Resume Next
    
    Text2.Text = "": Label1.Caption = ""
    Text1.Text = Trim$(Text1.Text)
    
    If Not IsNumeric(Text1.Text) Then
        MsgBox Text1.Text & vbCrLf & "Bukan angka", vbCritical
        Text1.SetFocus
        Exit Sub
    End If
    
    Dim angka As Double
    angka = Abs(Int(Val(Text1.Text)))
    If angka > 1999999999 Then
        MsgBox CStr(angka) & " terlalu besar!" & vbCrLf & "Maksimal 1999999999", vbCritical
        Text1.SetFocus
        Exit Sub
    End If
    Text1.Text = angka
    
    If (angka < 2) Then
        MsgBox "Angka harus lebih dari 1 (satu)", vbExclamation
        Text1.SetFocus
        Exit Sub
    End If
    
    hentikan = False
    Text1.Enabled = False
    Text2.Enabled = False
    Command1.Enabled = False
    Command2.Visible = True
    Text2.Text = UrutanPrima(angka)
    angka = 0
    Text1.Enabled = True
    Text2.Enabled = True
    Command1.Enabled = True
    Command2.Visible = False
    If hentikan = True Then
        Text2.Text = ""
        Label1.Caption = ""
        Command1.SetFocus
    End If
End Sub


Private Sub Command2_Click()
    hentikan = True
End Sub


7. Selesai. Maka hasilnya seperti ini


Download Contoh Program, klik disini

0 komentar:

Poskan Komentar

Diharapkan berkomentar dengan baik dan sopan.
Admin akan menghapus komentar tanpa pemberitahuan jika terdapat komentar yang tidak baik.