Sunday, January 1, 2017

Bab 3. Soal & Penyelesaian Visual Basic .NET


Repetisi





Kasus 29: Loop Do While

Public Class Form1

    Private Sub tombolDemo_Click(sender As Object, e As EventArgs)
        Handles tombolDemo.Click
        Dim intKounter As Integer = 0

        Do While intKounter < 10
            listKeluaran.Items.Add("Teknik Elektro")
            intKounter += 1
        Loop
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
        Handles tombolBersih.Click
        listKeluaran.Items.Clear()
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
        Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class




Kasus 30: Aplikasi Penjualan dengan Loop Do While

Public Class Form1

    Private Sub tombolPenjualan_Click(sender As Object, e As EventArgs)
        Handles tombolPenjualan.Click
        Const intJUM_HARI As Integer = 5 ' Jumlah hari
        Dim intKounter As Integer = 1 ' Kounter loop
        Dim decPenjualan As Decimal = 0 ' untuk menampung penjualan harian
        Dim decTotal As Decimal = 0 ' untuk memuat penjualan total
        Dim strMasukan As String ' untuk menampung string masukan

        ' membaca penjualan tiap hari
        Do While intKounter <= intJUM_HARI
            ' membaca penjualan per hari dari pengguna
            strMasukan = InputBox("Masukkan penjualan hari ini: " &
                intKounter.ToString())

            ' Mengkonversi masukan menjadi Decimal.
            If Decimal.TryParse(strMasukan, decPenjualan) Then
                ' Menambahkan penjualan harian pada penjualan total
                decTotal += decPenjualan

                ' Menambahkan 1 pada kounter loop
                intKounter += 1
            Else
                ' Menampilkan pesan error jika masukan tak-valid
                MessageBox.Show("Masukkan angka numerik")
            End If
        Loop

        ' Menampilkan penjualan total
        teksHasil.Text = "Rp. " & decTotal.ToString("N")
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
        Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class




Kasus 31: Penjumlahan Dengan Loop Do While

Public Class tombolJumlah

    Private Sub Button1_Click(sender As Object, e As EventArgs)
    Handles Button1.Click
        Dim intA As Integer
        Dim intX As Integer
        Dim intY As Integer
        Dim intZ As Integer
        Dim strInput As String
        intX = 0
        intY = 0
        strInput = InputBox("Berapa banyak angka yang akan dijumlahkan?")
        intZ = CInt(strInput)

        Do While intX < intZ
            strInput = InputBox("Masukkan sebuah angka: ")
            intA = CInt(strInput)
            intY += intA
            intX += 1
        Loop
        MessageBox.Show("Penjumlahan atas angka-angka tersebut adalah " &
            intY.ToString())
    End Sub
End Class





Kasus 32: Tahun Leap Dengan Loop Do While

Public Class Form1

    Private Sub tombolPeriksa_Click(sender As Object, e As EventArgs)
    Handles tombolPeriksa.Click
        Dim tahun As Integer = CInt(teksTahun.Text)
        Dim i As Integer = 1

        'Do while i kurang dari atau sama dengan 10
        Do While i <= 10
            If tahun Mod 4 = 0 And (tahun Mod 100 <> 0 Or tahun Mod 400 = 0) Then
                kotakList.Items.Add(tahun & " adalah tahun Leap")
                i += 1
            Else
                kotakList.Items.Add(tahun & " bukan tahun Leap")
            End If
            tahun += 1
        Loop
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub
End Class




Kasus 33: Tahun Leap Dengan Loop Do While: Bagian 2
Program ini akan menambahkan Try Catch pada kode sebelumnya untuk pemeriksaan error.

Public Class Form1

    Private Sub tombolPeriksa_Click(sender As Object, e As EventArgs)
    Handles tombolPeriksa.Click
        Try
            Dim tahun As Integer = CInt(teksTahun.Text)
            Dim i As Integer = 1

            'Do while i kurang dari atau sama dengan 10
            Do While i <= 10
                If tahun < 0 Then
                    kotakList.Items.Add(tahun & "Tahun tidak valid!")
                    Exit Do
                End If

                If tahun Mod 4 = 0 And (tahun Mod 100 <> 0 Or tahun Mod 400 = 0) Then
                    kotakList.Items.Add(tahun & " adalah tahun Leap")
                    i += 1
                Else
                    kotakList.Items.Add(tahun & " bukan tahun Leap")
                End If
                tahun += 1
            Loop

        Catch
            MsgBox("Masukkan sedikitnya satu dijit")
        End Try
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub
End Class




Kasus 34: Runtun Fibonacci Dengan Loop Do While


Public Class Form1

    Private Sub tombolJalankan_Click(sender As Object, e As EventArgs)
    Handles tombolJalankan.Click
        Dim angka1 As Integer = 0 'angka pertama
        Dim angka2 As Integer = 1 'angka kedua
        Dim jumAngka As Integer = 0 'penjumlahan atas angka pertama dan angka kedua

        Dim angkaFib As Integer = CInt(teksAngka.Text)

        Do While jumAngka <= angkaFib
            'menambahkan dua angka pertama (0 dan 1)
            jumAngka = angka1 + angka2

            'melewatkan angka2 kepada angka1
            angka1 = angka2

            'melewatkan total (jumAngka) kepada angka2
            angka2 = jumAngka

            kotakList.Items.Add(jumAngka.ToString)
        Loop
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub
End Class



Kasus 35: Menghitung Rerata dengan Loop Do Until

Public Class Form1

    Private Sub tombolSkor_Click(sender As Object, e As EventArgs)
    Handles tombolSkor.Click
        ' Prosedur ini membaca skor, kemudian menghitung dan
        ' menampilkan rerata
        Dim intBanyakSkor As Integer ' Banyaknya skor
        Dim dblSkorUji As Double ' menampung skor uji
        Dim dblTotal As Double = 0 ' akumulator, diinisialisasi dengan 0
        Dim dblRerata As Double ' Rerata dari skor-skor uji
        Dim strMasukan As String ' menampung masukan pengguna
        Dim intKounter As Integer = 1 ' variabel kounter, diinisialisasi dengan 1

        ' Meminta pengguna memasukkan banyaknya skor
        strMasukan = InputBox("Berapa banyak skor yang ingin direratakan?")

        ' Konversi masukan menjadi integer
        If Integer.TryParse(strMasukan, intBanyakSkor) Then

            ' Membaca skor uji
            Do Until intKounter > intBanyakSkor

                ' Meminta pengguna memasukkan skor
                strMasukan = InputBox("Masukkan skor uji: " &
                    intKounter.ToString())

                ' Konversi masukan menjadi sebuah Double.
                If Double.TryParse(strMasukan, dblSkorUji) Then

                    ' Menambahkan skor pada akumulator
                    dblTotal += dblSkorUji

                    ' Menambahkan 1 pada kounter
                    intKounter += 1
                Else
                    ' skor uji tak-valid
                    MessageBox.Show("Masukkan skor uji numerik")
                End If
            Loop

            ' Menghitung dan menampilkan rerata
            If intBanyakSkor > 0 Then
                dblRerata = dblTotal / intBanyakSkor
                teksRerata.Text = dblRerata.ToString()
            End If

        Else
            ' Banyak skor uji tak-valid
            MessageBox.Show("Masukkan nilai integer")
        End If
    End Sub

    Private Sub teksKeluar_Click(sender As Object, e As EventArgs)
    Handles teksKeluar.Click
        Me.Close()
    End Sub
End Class





Kasus 36: Tahun Leap Dengan Loop For Next

Public Class Form1

    Private Sub tombolPeriksa_Click(sender As Object, e As EventArgs)
    Handles tombolPeriksa.Click
        Try
            Dim tahun As Integer = CInt(teksTahun.Text)
            Dim i As Integer = 1

            ‘Dari i sama dengan 1 sampai i sama dengan 20
            For i = 1 To 20
                If tahun < 0 Then
                    kotakList.Items.Add(tahun & "Tahun tidak valid!")
                    Exit For
                End If

                If tahun Mod 4 = 0 And (tahun Mod 100 <> 0 Or tahun Mod 400 = 0) Then
                    kotakList.Items.Add(tahun & " adalah tahun Leap")
                    i += 1
                Else
                    kotakList.Items.Add(tahun & " bukan tahun Leap")
                End If
                tahun += 1
            Next

        Catch
            MsgBox("Masukkan sedikitnya satu dijit")
        End Try
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub
End Class




Kasus 37: Menghitung Rerata dengan Loop For Next

Public Class Form1

    Private Sub tombolSkor_Click(sender As Object, e As EventArgs)
    Handles tombolSkor.Click
        ' Prosedur ini membaca skor, kemudian menghitung dan
        ' menampilkan rerata
        Dim intBanyakSkor As Integer ' Banyaknya skor
        Dim dblSkorUji As Double ' menampung skor uji
        Dim dblTotal As Double = 0 ' akumulator, diinisialisasi dengan 0
        Dim dblRerata As Double ' Rerata dari skor-skor uji
        Dim strMasukan As String ' menampung masukan pengguna
        Dim intKounter As Integer = 1 ' variabel kounter, diinisialisasi dengan 1

        ' Meminta pengguna memasukkan banyaknya skor
        strMasukan = InputBox("Berapa banyak skor yang ingin direratakan?")

        ' Konversi masukan menjadi integer
        If Integer.TryParse(strMasukan, intBanyakSkor) Then

            ' Membaca skor uji
            For intKounter = 1 To intBanyakSkor

                ' Meminta pengguna memasukkan skor
                strMasukan = InputBox("Masukkan skor uji: " &
                    intKounter.ToString())

                ' Konversi masukan menjadi sebuah Double.
                If Double.TryParse(strMasukan, dblSkorUji) Then

                    ' Menambahkan skor pada akumulator
                    dblTotal += dblSkorUji

                    ' Menambahkan 1 pada kounter
                    intKounter += 1
                Else
                    ' skor uji tak-valid
                    MessageBox.Show("Masukkan skor uji numerik")
                End If
            Next

            ' Menghitung dan menampilkan rerata
            If intBanyakSkor > 0 Then
                dblRerata = dblTotal / intBanyakSkor
                teksRerata.Text = dblRerata.ToString()
            End If

        Else
            ' Banyak skor uji tak-valid
            MessageBox.Show("Masukkan nilai integer")
        End If
    End Sub

    Private Sub teksKeluar_Click(sender As Object, e As EventArgs)
    Handles teksKeluar.Click
        Me.Close()
    End Sub
End Class




Kasus 38: Mengekstrak Karakter dengan Loop For Each

Public Class Form1

    Private Sub tombolEkstrak_Click(sender As Object, e As EventArgs)
    Handles tombolEkstrak.Click
        Dim strKata As String
        Dim chrHuruf As Char

        strKata = teksString.Text

        For Each chrHuruf In strKata
            kotakList.Items.Add(chrHuruf)
        Next

    End Sub

    Private Sub TombolBersih_Click(sender As Object, e As EventArgs)
    Handles TombolBersih.Click
        kotakList.Items.Clear()
    End Sub
End Class



Kasus 39: Aplikasi Kalkulator Tabel Perkalian dengan For Next

Public Class Form1

    Private Sub tombolTabel_Click(sender As Object, e As EventArgs)
    Handles tombolTabel.Click
        kotakList.Items.Clear()

        Dim angkaAnda, pengali, jumBerjalan As Single
        angkaAnda = CSng(teksAngka.Text)
        pengali = CSng(teksKali.Text)
        Dim i As Integer

        For i = 1 To CInt(pengali)
            Dim jawaban As Single
            jawaban = i * angkaAnda
            kotakList.Items.Add(i & " X " & angkaAnda & " = " & jawaban)
            jumBerjalan = jumBerjalan + jawaban
        Next

        kotakList.Items.Add("Total " & jumBerjalan)
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class



Kasus 40: Aplikasi Melempar Dadu dengan For Next

Public Class Form1
    Private Sub Form1_Activated(sender As Object, e As EventArgs)
    Handles MyBase.Activated
        Dim i As Integer
        For i = 1 To 6
            CBDadu.Items.Add(i)
        Next
    End Sub

    Private Sub tombolLempar_Click(sender As Object, e As EventArgs)
    Handles tombolLempar.Click
        Dim angkaAcak1 As Integer
        Dim angkaAcak2 As Integer

        ' Menginisialisasi pembangkit angka acak
        Randomize()

        ' Menghitng angka acak antara 1 dan 6
        angkaAcak1 = CInt(Int(1 + 6 * Rnd()))
        angkaAcak2 = CInt(Int(1 + 6 * Rnd()))

        Dim simpan As String
        Dim nilaiHenti As Integer
        Dim dblKounter As Integer

        ' mengosongkan kotak list
        kotakList.Items.Clear()

        ' mendapatkan nilai henti
        nilaiHenti = CInt(CBDadu.SelectedItem)

        ' sekarang melempar dadu
        Do
            ' Menghitng angka acak antara 1 dan 6
            angkaAcak1 = CInt(1 + 6 * Rnd())
            angkaAcak2 = CInt(1 + 6 * Rnd())

            ' membuat string dan menambahkannya pada kotak list
            simpan = angkaAcak1.ToString & " " & angkaAcak2.ToString

            ' memeriksa apakah double dan memodifikasi string
            ' jika terjadi double, dan menghitungnya
            If angkaAcak1 = angkaAcak2 Then
                simpan &= " Double!"
                dblKounter += 1
            End If

            ' menyimpannya pada kotak list
            kotakList.Items.Add(simpan)
        Loop Until (angkaAcak1 = angkaAcak2) And (dblKounter = nilaiHenti)
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
        CBDadu.Items.Clear()
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        Me.Close()
    End Sub

End Class




Kasus 41: Kalkulator Suku Bunga dengan For Next
Pada properti Tag pada keempat tombol radio ditetapkan 1, 12, 52 dan 65 di dalam Groupbox Bunga Dibayarkan.

Public Class Form1
    'berapa kali dibayarkan dalam setahun
    Dim intPeriodeBunga As Integer

    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        kotakList.Items.Clear()

        Dim sngInvestasi As Single = CSng(teksInvestasi.Text)

        'berapa suku bunga
        Dim sngSukuBunga As Single = CSng(teksBunga.Text)

        'Berapa banyak tahun
        Dim intJumTahun As Integer = CInt(teksJumTahun.Text)

        'total jumlah periode pembayaran
        Dim intPeriodePembayaran As Integer = intJumTahun * intPeriodeBunga

        'suku bunga tiap periode pembayaran
        Dim sngSukuBungaPerPeriode As Single
        sngSukuBungaPerPeriode = (sngSukuBunga / 100) / intPeriodeBunga

        For i As Integer = 1 To intPeriodePembayaran
            Dim sng_NilaiSekarang As Single

            sng_NilaiSekarang = sngInvestasi * sngSukuBungaPerPeriode
            sngInvestasi = sngInvestasi + sng_NilaiSekarang
            kotakList.Items.Add(i & ":     " & sngInvestasi.ToString("N"))
        Next i

        teksKeluaran.Text = "Anda mendapatkan Rp. " & sngInvestasi.ToString("N")
    End Sub

    Private Sub RBTahun_CheckedChanged(sender As Object, e As EventArgs)
    Handles RBTahun.CheckedChanged, RBBulan.CheckedChanged,
    RBMinggu.CheckedChanged, RBHari.CheckedChanged
       
        Dim tombolRadioPalsu As New RadioButton
        tombolRadioPalsu = CType(sender, RadioButton)
        intPeriodeBunga = CInt(tombolRadioPalsu.Tag)
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        teksInvestasi.Clear()
        teksBunga.Clear()
        teksJumTahun.Clear()
        kotakList.Items.Clear()
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class





Kasus 42: Kalkulator Penghitung Kembalian dengan Loop Do Until

Public Class Form1

    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        Dim sngHargaBarang As Single
        Dim sngUangDibayar As Single
        Dim sngKembalian As Single

        Dim seratusRibu As Integer
        Dim limaPuluhRibu As Integer
        Dim duaPuluhRibu As Integer
        Dim sepuluhRibu As Integer
        Dim limaRibu As Integer
        Dim duaRibu As Integer
        Dim seRibu As Integer
        Dim limaRatus As Integer
        Dim seRatus As Integer

        sngHargaBarang = CSng(teksHarga.Text)
        sngUangDibayar = CSng(teksBayar.Text)
        sngKembalian = sngUangDibayar - sngHargaBarang

        If sngKembalian < 0 Then
            MsgBox("Tidak ada uang kembalian minus")
        End If

        Do Until sngKembalian < 100
            If sngKembalian > 99999 Then
                seratusRibu += 1
                sngKembalian = sngKembalian - 100000

            ElseIf sngKembalian > 49999 Then
                limaPuluhRibu += 1
                sngKembalian = sngKembalian - 50000

            ElseIf sngKembalian > 19999 Then
                duaPuluhRibu += 1
                sngKembalian = sngKembalian - 20000

            ElseIf sngKembalian > 9999 Then
                sepuluhRibu += 1
                sngKembalian = sngKembalian - 10000

            ElseIf sngKembalian > 4999 Then
                limaRibu += 1
                sngKembalian = sngKembalian - 5000

            ElseIf sngKembalian > 1999 Then
                duaRibu += 1
                sngKembalian = sngKembalian - 2000

            ElseIf sngKembalian > 999 Then
                seRibu += 1
                sngKembalian = sngKembalian - 1000

            ElseIf sngKembalian > 499 Then
                limaRatus += 1
                sngKembalian = sngKembalian - 500

            ElseIf sngKembalian > 99 Then
                seRatus += 1
                sngKembalian = sngKembalian - 100
            End If
        Loop
        teksSeratusRibu.Text = CStr(seratusRibu)
        teksLimaPuluhRibu.Text = CStr(limaPuluhRibu)
        teksDuaPuluhRibu.Text = CStr(duaPuluhRibu)
        teksSepuluhRibu.Text = CStr(sepuluhRibu)

        teksLimaRibu.Text = CStr(limaRibu)
        teksDuaRibu.Text = CStr(duaRibu)
        teksSeribu.Text = CStr(seRibu)

        teksLimaRatus.Text = CStr(limaRatus)
        teksSeratus.Text = CStr(seRatus)
        teksSisa.Text = CStr(sngKembalian)
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class



Kasus 43: Ujian Tabel Perkalian

Public Class Form1
    Dim intKounter As Integer
    Dim sngAngkamu, sngJawabanmu, sngJawaban As Single
    Dim strTepat As String
    Dim intPengali As Integer
    Dim intJumlahTepat As Integer = 0
    Dim teksPertanyaan As String

    Private Sub tombolMulai_Click(sender As Object, e As EventArgs)
    Handles tombolMulai.Click
        kotakList.Items.Clear()

        intKounter = 1

        'melewatkan data kepada variabel
        sngAngkamu = CSng(teksAngka.Text)

        kodeJawab()
    End Sub

    Sub kodeJawab()
        Dim intKounter As Integer
        Dim strJawabanmu As String

        'loop sampai kounter sama dengan Angkamu
        Do Until intKounter = sngAngkamu
            intKounter += 1
            teksPertanyaan = intKounter & " X " & sngAngkamu

            'menggunakan kotak Input
            strJawabanmu = InputBox("Masukan Angka Anda: " & teksPertanyaan, "")
            sngJawabanmu = CSng(strJawabanmu)

            'Menghitung jawaban yang tepat
            sngJawaban = intKounter * sngAngkamu

            'Jika jawabanmu sama dengan jawaban yang tepat
            If sngJawaban = sngJawabanmu Then
                strTepat = " tepat"
                intJumlahTepat += 1
            Else
                strTepat = " salah"
            End If
          
        kotakList.Items.Add(intKounter & " X " & sngAngkamu & " = " &
            sngJawaban & " : " & sngJawabanmu & strTepat)
        Loop
       
        kotakList.Items.Add("Skor Anda " & intJumlahTepat & " tepat")
        intKounter = 0
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class



Kasus 44: Password Cracker

Public Class Form1

    Public Function PWCrackerSecaraAcak(ByVal strPanjang As Integer) As String
        Dim strHuruf As String =
            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
        Dim hurufAcak As New Random()

        'menggunakan string builder untuk string panjang
        'dan Append() dapat digunakan
        Dim strHasil As New System.Text.StringBuilder()

        'sampai panjang kata yang akan dicari
        For i = 1 To strPanjang
            strHasil.Append(strHuruf(hurufAcak.Next(1, strHuruf.Length)))
        Next i

        'mengembalikan jawaban kepada program
        Return strHasil.ToString()
    End Function

    Private Sub tombolTebak_Click(sender As Object, e As EventArgs)
    Handles tombolTebak.Click
        Dim strPW As String = teksMasukan.Text
        Dim strTebak As String
        Dim intHitung As Integer
        Do
            strTebak = PWCrackerSecaraAcak(strPW.Length)
            intHitung += 1
            Me.Text = intHitung & " " & strPW

            'Melambatkan program
            Application.DoEvents()

        'Menjelajah sampai tebakan = password
        Loop Until strPW = strTebak
       
        kotakList.Items.Add("Memerlukan " & intHitung &
            " tebakan untuk mencocokkan " & strPW & " dengan " & strTebak)
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub
End Class



Kasus 45: Password Cracker dengan Progress Bar

Public Class Form1

    Public Function PWCrackerSecaraAcak(ByVal strPanjang As Integer) As String
        Dim strHuruf As String =
            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
        Dim hurufAcak As New Random()

        'menggunakan string builder untuk string panjang
        'dan Append() dapat digunakan
        Dim strHasil As New System.Text.StringBuilder()

        'sampai panjang kata yang akan dicari
        For i = 1 To strPanjang
            strHasil.Append(strHuruf(hurufAcak.Next(1, strHuruf.Length)))
        Next i

        'mengembalikan jawaban kepada program
        Return strHasil.ToString()
    End Function

    Private Sub tombolTebak_Click(sender As Object, e As EventArgs)
    Handles tombolTebak.Click
        Dim strPW As String = teksMasukan.Text
        Dim strTebak As String
        Dim intHitung, intProgHitung, intProgressBar As Integer
       
        Do
            strTebak = PWCrackerSecaraAcak(strPW.Length)
            intHitung += 1
            Me.Text = intHitung & " " & strPW

            'Melambatkan program
            Application.DoEvents()

            intProgHitung += 1
            ProgressBar1.Value = intProgHitung
            If ProgressBar1.Value = 100 Then
                ProgressBar1.Value = 0
                intProgHitung = 0
            End If

            intProgressBar += 1
            labelProgressBar.Width = intProgressBar
            labelProgressBar.Text = CStr(intHitung)

            If labelProgressBar.Width + labelProgressBar.Left = Me.Width Then
                intProgressBar = 0
            End If

            'Menjelajah sampai tebakan = password
        Loop Until strPW = strTebak

        ProgressBar1.Value = 0
        intProgHitung = 0

        kotakList.Items.Add("Memerlukan " & intHitung &
            " tebakan untuk mencocokkan " & strPW & " dengan " & strTebak)
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        kotakList.Items.Clear()
    End Sub
End Class



Kasus 46: Menggunakan Checked List Box

Public Class Form1

    Private Sub tombolOK_Click(sender As Object, e As EventArgs)
    Handles tombolOK.Click
        Dim intIndeks As Integer ' indeks kotak list

        For intIndeks = 0 To CLBKota.Items.Count - 1
            If CLBKota.GetItemChecked(intIndeks) = True Then
                LBKota.Items.Add(CLBKota.Items(intIndeks))
            End If
        Next
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        LBKota.Items.Clear()
    End Sub
End Class



Kasus 47: Menggunakan Combo Box

Public Class Form1

    Private Sub tombolTampil_Click(sender As Object, e As EventArgs)
    Handles tombolTampil.Click
        ' Menampilkan seleksi Combo Box
        kotakTeksNegara.Text = CBNegara.Text
        kotakTeksFilm.Text = CBFilm.Text
        kotaTeksArtist.Text = CBArtis.Text
    End Sub

    Private Sub tombolReset_Click(sender As Object, e As EventArgs)
    Handles tombolReset.Click
        ' Mereset Combo Box
        CBNegara.SelectedIndex = -1
        CBNegara.Text = String.Empty
        CBFilm.SelectedIndex = -1
        CBFilm.Text = String.Empty
        CBArtis.SelectedIndex = -1
        CBArtis.Text = String.Empty

        ' Mereset TextBox
        kotakTeksNegara.Clear()
        kotakTeksFilm.Clear()
        kotaTeksArtist.Clear()
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class



Kasus 48: Melempar Koin

Public Class Form1

    Private Sub tombolLempar_Click(sender As Object, e As EventArgs)
    Handles tombolLempar.Click
        Dim intSisi As Integer ' Mengindikasikan sisi
        Dim acak As New Random ' Pembangkit angka acak

        ' Membaca angka acak dalam rentang 0-1
        ' 0 berarti ekor, 1 berarti kepala
        intSisi = acak.Next(2)

        ' Menampilkan sisi yang berada di atas
        If intSisi = 0 Then
            ' 0 berarti ekor, jadi menampilkan ekor
            ' citra kepala disembunyikan
            PB2.Visible = True
            PB1.Visible = False
        Else
            ' 1 berarti kepala, jadi menampilkan kepala
            ' citra ekor disembunyikan
            PB1.Visible = True
            PB2.Visible = False
        End If
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        Me.Close()
    End Sub
End Class



Kasus 49: Menggunakan Kontrol ToolTip




Kasus 50: Kalkulator Pinjaman

Public Class Form1
    ' Konstanta-konstanta level-kelas
    Const dblJUM_BULAN As Double = 12 ' Jumlah bulan setahun
    Const dblSUKU_BARU As Double = 0.05 ' Suku bunga untuk kendaraan baru
    Const dblSUKU_BEKAS As Double = 0.08 ' Suku bunga untuk kendaraan bekas

    ' Variabel level-kelas untuk menampung suku bunga pertahun
    Dim dblBUNGA_PER_TAHUN As Double = dblSUKU_BARU

    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        Dim dblHargaKendaraan As Double ' Harga kendaraan
        Dim dblUangMuka As Double ' Uang muka
        Dim intJumBulan As Integer ' Jumlah bulan untuk pinjaman

        Dim dblPinjaman As Double ' Jumlah pinjaman
        Dim dblPembayaranBulanan As Double ' Jumlah pembayaran bulanan
        Dim dblBunga As Double ' Bunga hutang yang dibayarkan pada periode tertentu

        Dim dblPokokHutang As Double ' Pokok hutang yang dibayarkan pada periode tertentu
        Dim intHitung As Integer ' Kounter untuk loop
        Dim strKeluaran As String ' digunakan untuk memuat sebaris keluaran

        Dim blnInputOk As Boolean = True

        ' Membaca biaya kendaraan
        If Not Double.TryParse(kotakTeksHarga.Text, dblHargaKendaraan) Then
            kotakTeksPesan.Text = "Harga kendaraan harus berupa angka"
            blnInputOk = False
        End If

        ' Membaca uang muka
        If Not Double.TryParse(kotakTeksUM.Text, dblUangMuka) Then
            kotakTeksPesan.Text = "Uang muka harus berupa angka"
            blnInputOk = False
        End If

        ' Membaca jumlah bulan
        If Not Integer.TryParse(kotakTeksJumBulan.Text, intJumBulan) Then
            kotakTeksPesan.Text = "Jumlah bulan harus integer"
            blnInputOk = False
        End If

        If blnInputOk = True Then
            ' Menghitung jumlah pinjaman dan pembayaran bulanan
            dblPinjaman = dblHargaKendaraan - dblUangMuka
            dblPembayaranBulanan = Pmt(dblBUNGA_PER_TAHUN / dblJUM_BULAN,
                intJumBulan, -dblPinjaman)

            ' Membersihkan kotak list dan kotakTeksPesan
            kotakList.Items.Clear()
            kotakTeksPesan.Clear()

            For intHitung = 1 To intJumBulan
                ' Menghitung jumlah bunga hutang untuk periode tertentu
                dblBunga = IPmt(dblBUNGA_PER_TAHUN / dblJUM_BULAN,
                      intHitung, intJumBulan, -dblPinjaman)

                ' Menghitung pokok hutang untuk periode tertentu
                dblPokokHutang = PPmt(dblBUNGA_PER_TAHUN / dblJUM_BULAN,
                    intHitung, intJumBulan, -dblPinjaman)

                ' Mengawali string yang akan ditampilkan dengan Bulan
                strKeluaran = "Bulan " & intHitung.ToString("d2")

                ' Menampilkan jumlah pembayaran
                strKeluaran &= ": pembayaran = " &
                    dblPembayaranBulanan.ToString("n2")

                ' Menampilkan jumlah bunga
                strKeluaran &= ", bunga = " & dblBunga.ToString("n2")

                ' Menampilkan pokok hutang pada periode tertentu
                strKeluaran &= ", pokok hutang = " & dblPokokHutang.ToString("n2")

                ' Menampilkan string keluaran pada kotak list
                kotakList.Items.Add(strKeluaran)
            Next
        End If
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        ' Mereset suku bunga, membersihkan semua kotak teks,
        ' dan kotak list. Menetapkan suku bunga default
        ' untuk pinjaman kendaraan baru.
        RBBaru.Checked = True
        dblBUNGA_PER_TAHUN = dblSUKU_BARU
        kotakTeksBunga.Text = dblSUKU_BARU.ToString("p")
        kotakTeksHarga.Clear()
        kotakTeksUM.Clear()
        kotakTeksJumBulan.Clear()
        kotakList.Items.Clear()
        kotakTeksPesan.Clear()

        ' Mereset fokus ke kotakTeksHarga
        kotakTeksHarga.Focus()
    End Sub

    Private Sub tombolKeluar_Click(sender As Object, e As EventArgs)
    Handles tombolKeluar.Click
        ' Menutup form
        Me.Close()
    End Sub

    Private Sub RBBaru_CheckedChanged(sender As Object, e As EventArgs)
    Handles RBBaru.CheckedChanged
        ' Jika tombol radio Baru diklik, maka
        ' pengguna telah menyeleksi pinjaman kendaraan baru
        If RBBaru.Checked = True Then
            dblBUNGA_PER_TAHUN = dblSUKU_BARU
            kotakTeksBunga.Text = dblSUKU_BARU.ToString("p")
            kotakList.Items.Clear()
        End If
    End Sub

    Private Sub RBBekas_CheckedChanged(sender As Object, e As EventArgs)
    Handles RBBekas.CheckedChanged
        ' Jika tombol radio Bekas diklik, maka
        ' pengguna telah menyeleksi pinjaman kendaraan bekas
        If RBBekas.Checked = True Then
            dblBUNGA_PER_TAHUN = dblSUKU_BEKAS
            kotakTeksBunga.Text = dblSUKU_BEKAS.ToString("p")
            kotakList.Items.Clear()
        End If
    End Sub
End Class











No comments:

Post a Comment