Author Topic: [Beginner] Bilangan ganjil atau genap ? - 2  (Read 3789 times)

0 Members and 1 Guest are viewing this topic.

Offline 1nf0rm4t1c5

  • Administrator
  • *
  • Posts: 1147
  • Reputasi: 15
  • Informatics Developer
    • Forum Informatika
  • Lokasi: Indonesia
  • Jenis Kelamin: Laki-laki
[Beginner] Bilangan ganjil atau genap ? - 2
« on: 11 March 2009, 14:05:59 »
Lanjutan dari versi 1 sebelumnya di:
http://if.web.id/visual-basic-vb/beginner-bilangan-ganjil-atau-genap-t826.0.html

Sekarang kita buat versi GUI (Graphic User Interface) yang lebih bagus.

1. Ambil satu form
2. Masukkan minimal 3 komponen:
  • Text1 - textbox ini digunakan untuk input data
  • Command1 - Button atau tombol untuk membangkitkan pemeriksaan bilangan yang diinputkan
  • Label1 - Label atau tulisan yang digunakan sebagai keterangan atau output hasil eksekusi

Tampilan awal:



Pada jendela / form Code, masukkan kode berikut:

Code: (vb) [Select]
Private Sub Command1_Click()
    Dim bilangan As Integer
    bilangan = Val(Text1.Text)
   
    If bilangan Mod 2 = 0 Then
        Label1.Caption = bilangan & " adalah Genap."
    Else
        Label1.Caption = bilangan & " adalah Ganjil."
    End If
End Sub

Perhatikan potongan kode bilangan = Val(Text1.Text)

Val digunakan untuk memastikan bahwa data input akan dijadikan data numerik, jadi kalau diisi huruf secara paksa akan otomatis diisi angkan 0 (nol).

Sebagai tambahan masukkan potongan berikut di bawahkode sebelumnya:

Code: (vb) [Select]
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0
End Sub

Yaitu digunakan untuk memastikan bahwa karakter yang diketikkan dalam textbox Text1 adalah numerik.
Namun kekurangannya masih bisa copy/paste data huruf. Nanti kita sampaikan solusi lainnya.  ;)

Tampilan awal program.



Setelah dieksekusi dan diisi angka, akan muncul form seperti tampilan berikut:



Source code terlampir.
« Last Edit: 24 March 2010, 13:41:59 by 1nf0rm4t1c5 »
Full access for guest [REGISTER]
Please read the rule [RULES]
Promosi?  [STEP-BY-STEP]

RAR PASSWORD : http://if.web.id --> buat buka file rar

Forum Informatika

[Beginner] Bilangan ganjil atau genap ? - 2
« on: 11 March 2009, 14:05:59 »
Sponsored Links:


Offline 1nf0rm4t1c5

  • Administrator
  • *
  • Posts: 1147
  • Reputasi: 15
  • Informatics Developer
    • Forum Informatika
  • Lokasi: Indonesia
  • Jenis Kelamin: Laki-laki
[Beginner] Bilangan ganjil atau genap - Looping
« Reply #1 on: 11 March 2009, 14:10:13 »
Bilangan ganjil atau genap - Looping

Lanjutan tulisan sebelumnya, sekarang kita lanjutkan ke lebih berbentuk GUI, dan menggunakan pengulangan (looping)

Tampilan awal:



Di sini kita bisa memasukkan angka mulai dari batas bawah sampai batas atas yang kita kehendaki, sementara ini hanya bilangan bulat positif saja. Sebagai nilai default kita pilih angka 1 - 50, selanjutnya silakan diubah.



Tampilan di atas menunjukkan kita tidak memilih pilihan ganjil atau genap dan juga pilihan habis dibagi angka tertentu, sehingga sama juga kita hanya ingin menampilkan bilangan dari angka 1 sampai 50.



Tampilan di atas contoh kita memilih opsi tampilan bilangan genap saja.

Anda lihat di sebelah kanan form juga ada informasi jumlah bilangan yang ditemukan, total jumlah bilangan, dan rata2 dari deret yang ditemukan.

Gambar berikutnya, lebih ditingkatkan lagi penyaringannya:



Yaitu bilangan genap saja sekaligus yang habis di bagi 5 (dalam contoh), silakan Anda ganti dengan angka bulat positif berapapun.

Contoh terakhir:



Dari deret angka, disaring bilangan yang habis dibagi oleh bilangan yang Anda masukkan, contoh 5, tidak disyaratkan harus ganjil atau genap.

Source Code lengkap:

Code: (vb) [Select]
Option Explicit
'----------------------------------
' Genap Ganjil 2
' Developed for Forum Informatika
' http://if.web.id
' Visit us for more tutorial
'-----------------------------------

' bb : batas bawah
' ba : batas atas
Dim bb As Integer
Dim ba As Integer

' hb : variabel habis dibagi
Dim hb As Integer

' flag pemilihan ganjil atau genap dan habis dibagi
' tidak dipilih:0, ganjil:1, genap:2, ganjil/genap + habis dibagi:3
' habis dibagi saja:4
Dim gg As Integer

Private Sub Check1_Click()
    If Check1.Value = 1 Then
        Frame1.Enabled = True
        Option1.Enabled = True
        Option2.Enabled = True
    Else
        Frame1.Enabled = False
        Option1.Enabled = False
        Option2.Enabled = False
        gg = 0
    End If
End Sub

Private Sub Check2_Click()
    If Check2.Value = 1 Then
        Text3.Enabled = True
    Else
        Text3.Enabled = False
    End If
End Sub

Private Sub Command1_Click()
    bb = Val(Text1)
    ba = Val(Text2)
    hb = Val(Text3)
    If bb >= ba Then
        MsgBox "Batas atas harus lebih besar ketimbang batas bawah", vbCritical, "Kesalahan!"
        Text1.SetFocus
        Exit Sub
    End If
    If Check2.Value = 1 Then
        If hb <= 0 Then
            MsgBox "Pembagi harus lebih dari 0 (nol)", vbCritical, "Kesalahan!"
            If Text3.Enabled = True Then Text3.SetFocus
            Exit Sub
        End If
        If Check1.Value = 1 Then
            If Option1.Value = True Then gg = 1 Else gg = 2
            Call KELUARAN(bb, ba, hb, gg, True)
        Else
            gg = 4
            Call KELUARAN(bb, ba, hb, 0)
        End If
    Else
        hb = 0
        If Check1.Value = 1 Then
            If Option1.Value = True Then
                gg = 1
                Call KELUARAN(bb, ba, 2, 1)
            Else
                gg = 2
                Call KELUARAN(bb, ba, 2, 0)
            End If
        Else
            gg = 0
            Call KELUARAN(bb, ba, 1, 0)
        End If
    End If
   
End Sub

Private Sub Option1_Click()
    gg = 1
End Sub

Private Sub Option2_Click()
    gg = 2
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
    If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0
End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)
    If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0
End Sub
   
Private Function Habis_DiBagi(a, p, h As Integer) As Boolean
    If a Mod p = h Then Habis_DiBagi = True
End Function

Private Sub KELUARAN(a, b, p, h As Integer, Optional semua As Boolean)
' Optional semua : untuk menangani kasus pemilihan semua opsi
    Dim i As Integer
    Dim jml As Integer
    Dim total As Long
    Dim rata As Double
   
    Text4 = vbNullChar
    jml = 0
   
    If Not semua Then
        For i = a To b
            If Habis_DiBagi(i, p, h) Then
                Text4 = Text4 & i & " "
                jml = jml + 1
                total = total + i
            End If
        Next
    Else ' kalau semua dipilih
        Dim z As Integer
       
        z = p
        p = 2
        If h = 2 Then h = 0
       
        For i = a To b
            If Habis_DiBagi(i, p, h) Then
                If Habis_DiBagi(i, z, 0) Then
                    Text4 = Text4 & i & " "
                    jml = jml + 1
                    total = total + i
                End If
            End If
        Next
    End If
    rata = Round(total / jml, 2)
    Label6.Caption = "Ada " & jml & " bilangan."
    Label7.Caption = "Total : " & total
    Label8.Caption = "Rata2 : " & rata
End Sub

Terlampir di attachment.
« Last Edit: 24 March 2010, 13:47:25 by 1nf0rm4t1c5 »
Full access for guest [REGISTER]
Please read the rule [RULES]
Promosi?  [STEP-BY-STEP]

RAR PASSWORD : http://if.web.id --> buat buka file rar

Offline dedi_alnas

  • Newbie
  • *
  • Posts: 9
  • Reputasi: 0
Re: [Beginner] Bilangan ganjil atau genap ? - 2
« Reply #2 on: 14 September 2009, 13:50:35 »
mana attachment source terlampirnya nih  :(

Offline macfamous

  • Bibit IF
  • *
  • Posts: 20
  • Reputasi: 0
    • Mainan Anak
  • Lokasi: Manchester
Re: [Beginner] Bilangan ganjil atau genap ? - 2
« Reply #3 on: 17 October 2009, 20:51:44 »
wow thx buangeet .. nih pas ma tugas kuliah saya .. hebaat euy :canadian: