Sabtu, 19 Februari 2011

membuat program kalender manual menggunakan combobox dengan visual basic 2008

biasanya dalam sebuah program pengisian form biasanya terdapat tanggal lahir yang terdiri dari tanggal-bulan-tahun. sebenarnya pada visual studio 2008 telah tersedia menu date pada toolboxnya. namun ini saya buat secara manual. Memang agak panjang, namun dapat menambah pengetahuan kita melalui cara manual ini.berikut caranya:
- siapkan tool yang digunakan: combobox 3 buah dan sebuah label, seperti gambar berikut:

- kemudian double klik pada form maka akan masuk ke codenya.

- Public Class Form1
          ' deklarasikan variabel a, b, c sebagai integer karena nilai angka integer
    Dim a, b, c As Integer
         ' deklarasikan d sebagai string karena ingin memasukan karakter "-"
    Dim d As String = " - "
           ' double klik pada form maka secara otomatis aka muncul source code berikut:yang fungsinya fungsi yang ditulis dalam sub ini akan berjalan bila program diexecute
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                    ' memberikan nilai a sebagai tahun misal dibatasi a = 2011
        a = 2011
                    ' merupakan fungsi perulangan menggunakan while
        ' Dengan pola :
                   ' while syarat >> apa yang ditimbulkan >> end while
        While a >= 1989 ' misal syaratnya jika a lebih dari 1989 maka
                             ' memasukkan input hasil perulangan pada combobox 1
            ComboBox1.Items.Add(a)
            a = a - 1
        End While
        b = 1
        While b <= 12
            ComboBox2.Items.Add(b)
            b = b + 1
        End While
    End Sub
    Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
        c = 1
                    'jika combobox 2 diseleksi lebih dari satu kali maka isi dari combobox3 akan dihapus,hal ini bertujuan untuk menghindari penumpukan nilai inputan.
        If ComboBox2.SelectedItem > 1 Then
            ComboBox3.Items.Clear()
        End If
        ' jika nilai dari combobox2 mod 2 = 0 berati merupakan bilangan genap berarti bulan genap akan memiliki jumlah hari 30 kecuali bulan 2 ato februari
        If Val(ComboBox2.Text) Mod 2 = 0 And Val(ComboBox2.Text) <> 2 Then
            While c <= 30
                ComboBox3.Items.Add(c)
                c = c + 1
            End While
        End If
        ' jika nilai dari combobox2 mod 2 = 1 berati merupakan bilangan ganjil berarti bulan ganjil akan memiliki jumlah hari 31
        If Val(ComboBox2.Text) Mod 2 = 1 And Val(ComboBox2.Text) <> 2 Then
            While c <= 31
                ComboBox3.Items.Add(c)
                c = c + 1
            End While
        End If
        ' jika nilai dari combobox2 adalah 2 atau bulan februari berati maka akan memiliki jumlah hari 29 apabila combobox1(tahun) habis dibagi 4 dan 28 hari bila tidak habis dibagi 4.
        If Val(ComboBox2.Text) = 2 Then
            If Val(ComboBox1.Text) Mod 4 = 0 Then
                While c <= 29
                    ComboBox3.Items.Add(c)
                    c = c + 1
                End While
            Else
                While c <= 28
                    ComboBox3.Items.Add(c)
                    c = c + 1
                End While
            End If
        End If 
                     ' untuk menampilkan tahun dengan menggunakan label
        Label1.Text = ComboBox3.Text + d + ComboBox2.Text + d + ComboBox1.Text
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
                    ' source code ini digunakan untuk mengantisipasi apabila pemakai program memilih bulan dulu baru tahun, sehingga jumlah hari tetap akurat. fungsinya sama dengan sebelumnya
        If Val(ComboBox2.Text) = 2 Then
            If Val(ComboBox1.Text) Mod 4 = 0 Then
                While c <= 29
                    ComboBox3.Items.Add(c)
                    c = c + 1
                End While
            Else
                While c <= 28
                    ComboBox3.Items.Add(c)
                    c = c + 1
                End While
            End If
        End If
                    ' untuk menampilkan bulan dengan menggunakan label 
        Label1.Text = ComboBox3.Text + d + ComboBox2.Text + d + ComboBox1.Text
    End Sub

    Private Sub ComboBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged
                      ' untuk menampilkan tanggal dengan menggunakan label
        Label1.Text = ComboBox3.Text + d + ComboBox2.Text + d + ComboBox1.Text
    End Sub
End Class

Semoga bermanfaat ^^ GBU

3 komentar:

  1. bulan yg di mod 2 = 1 memiliki tanggal 31
    sedangkan september dan november hanya sampai tanggal 30

    BalasHapus
  2. ' jika nilai dari combobox2 mod 2 = 1 berati merupakan bilangan ganjil berarti bulan ganjil akan memiliki jumlah hari 31
    If Val(ComboBox2.Text) Mod 2 = 1 And Val(ComboBox2.Text) <> 2 Then
    While c <= 31
    ComboBox3.Items.Add(c)
    c = c + 1
    End While
    End If


    bulan september(9) dan november(11) hanya sampai tanggal 30 saja

    BalasHapus
  3. makasih gan sharingnya,,saya coba dulu

    BalasHapus