Sunday, January 1, 2017

Bab 8. Soal & Penyelesaian Visual Basic .NET


Pustaka .NET





Kasus 92: Bekerja dengan ArrayList

Public Class Form1

    Private Sub tombolTambah_Click(sender As Object, e As EventArgs) Handles tombolTambah.Click
        Dim arrayListNama As New ArrayList
        arrayListNama.Add("Miike")
        arrayListNama.Add("Joshue")
        arrayListNama.Add("Fitrah")
        arrayListNama.Add("Rismon")
        arrayListNama.Add("Hamzan")

        Dim nama As Object
        kotakList.Items.Add("Isi asli dari daftar nama: ")

        For Each nama In arrayListNama
            kotakList.Items.Add(nama)
        Next

        kotakList.Items.Add("")

        Dim arrayNamaBaru() As String = {"David", "Mikael"}
        Dim NamaLain As New Collection

        NamaLain.Add("Terri")
        NamaLain.Add("Sianipar")
        NamaLain.Add("Jokowi")
        NamaLain.Add("Prabowo")
        NamaLain.Add("Alisa")
        arrayListNama.InsertRange(0, arrayNamaBaru)
        arrayListNama.AddRange(NamaLain)

        kotakList.Items.Add("Daftar nama yang baru: ")

        For Each nama In arrayListNama
            kotakList.Items.Add(nama)
        Next

        kotakList.Items.Add("")
    End Sub
End Class



Kasus 93: Bekerja dengan ArrayList 2

Public Class Form1

    Private Sub tombolTambah_Click(sender As Object, e As EventArgs)
    Handles tombolTambah.Click
        Dim arrayListNama As New ArrayList

        Const intJUM_DATA As Integer = 10 ' Jumlah data
        Dim intKounter As Integer = 1 ' Kounter loop
        Dim strMasukan As String ' untuk menampung string masukan

        Do While intKounter <= intJUM_DATA
            ' membaca data
            strMasukan = InputBox("Data ke-" & intKounter.ToString())
            arrayListNama.Add(strMasukan)
            intKounter += 1
        Loop

        Dim nama As Object
        kotakList.Items.Add("Isi asli dari daftar nama: ")

        For Each nama In arrayListNama
            kotakList.Items.Add(nama)
        Next
    End Sub
End Class



Kasus 94: Bekerja dengan ArrayList 3

Public Class Form1
    Dim ItemList As New Collections.ArrayList

    Private Sub tombolBaca_Click(sender As Object, e As EventArgs)
    Handles tombolBaca.Click
        Const intJUM_DATA As Integer = 5 ' Jumlah data
        Dim intKounter As Integer = 1 ' Kounter loop
        Dim strMasukan As String ' untuk menampung string masukan

        Do While intKounter <= intJUM_DATA
            ' membaca data
            strMasukan = InputBox("Data ke-" & intKounter.ToString())
            ItemList.Add(strMasukan)
            intKounter += 1
        Loop

        Dim nama As Object
        For Each nama In ItemList
            kotakList.Items.Add(nama)
        Next
    End Sub

    Private Sub tombolTambah_Click(sender As Object, e As EventArgs)
    Handles tombolTambah.Click
        ItemList.Insert(0, teksMasukan.Text)
        PerbaruiKotakList()
    End Sub

    Sub PerbaruiKotakList()
        kotakList.Items.Clear()
        For i = 0 To ItemList.Count - 1
            kotakList.Items.Add(ItemList.Item(i))
        Next
    End Sub

    Private Sub tombolHapus_Click(sender As Object, e As EventArgs)
    Handles tombolHapus.Click
        ItemList.Remove(kotakList.SelectedItem)
        PerbaruiKotakList()
    End Sub

    Private Sub tombolUrut_Click(sender As Object, e As EventArgs)
    Handles tombolUrut.Click
        ItemList.Sort()
        PerbaruiKotakList()
    End Sub

    Private Sub tombolPeriksa_Click(sender As Object, e As EventArgs)
    Handles tombolPeriksa.Click
        Dim strPeriksa As String
        strPeriksa = teksMasukan.Text

        For Each item As Object In ItemList
            If strPeriksa.Equals(item) = True Then
                Me.Text = "Ditemukan!"
            End If
        Next

        'Hapus item tersebut dari kotak list
        ItemList.Remove(strPeriksa)
        PerbaruiKotakList()
    End Sub
End Class






Kasus 95: Bekerja Dengan SortedList

Public Class Form1

    Private Sub tombolTambah_Click(sender As Object, e As EventArgs)
    Handles tombolTambah.Click
        Dim sortedListNama As New Collections.SortedList

        Const intJUM_DATA As Integer = 5 ' Jumlah data
        Dim kounterLoop As Integer = 1 ' Kounter loop
        Dim strMasukan As String ' untuk menampung string masukan

        Do While kounterLoop <= intJUM_DATA
            ' membaca data
            strMasukan = InputBox("Data ke-" & kounterLoop.ToString())
            sortedListNama.Add(kounterLoop, strMasukan)
            kounterLoop += 1
        Loop

        'Menampilkan berdasarkan kunci
        Dim kunci As Object
        For Each kunci In sortedListNama.Keys
            kotakListKunci.Items.Add(kunci)
        Next

        'Menampilkan berdasarkan nilai
        Dim item As Object
        For Each item In sortedListNama.Values
            kotakListItem.Items.Add(item)
        Next
    End Sub
End Class




Kasus 96: Bekerja Dengan Hashtable

Public Class Form1

    Private Sub tombolTampil_Click(sender As Object, e As EventArgs)
    Handles tombolTampil.Click
        Dim simbol As New Hashtable(25)

        simbol.Add("Gaji", 10000000)
        simbol.Add("Nama", "David Rupidara")
        simbol.Add("Usia", 43)
        simbol.Add("Departemen", "Teknologi Informasi")
        simbol.Item("Jenis Kelamin") = "Lelaki"

        Dim kunci, nilai As Object
        kotakList.Items.Add("Kunci-kunci adalah: ")
        For Each kunci In simbol.Keys
            kotakList.Items.Add(kunci)
        Next

        kotakList.Items.Add("")
        kotakList.Items.Add("Nilai-nilai adalah: ")
        For Each nilai In simbol.Values
            kotakList.Items.Add(nilai)
        Next
    End Sub
End Class




Kasus 97: Menghitung Jumlah Huruf Pada Suatu Kata

Public Class Form1

    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        Dim strTeks As String
        strTeks = CStr(teksMasukan.Text)

        Dim i As Integer
        Dim kounter As Integer = 0

        For i = 0 To strTeks.Count - 1
            If strTeks.Substring(i, 1).Equals(" ") = False Then
                kounter += 1
            End If
        Next

        teksJumlahHuruf.Text = kounter.ToString()
    End Sub
End Class





Kasus 98: Menghitung Jumlah Kata Pada Suatu String

Public Class Form1

    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        'Menggunakan IndexOf()
        Dim intIndeksAwal As Integer = 0
        Dim intKounter As Integer = -1
        Dim intIndeksUbah As Integer = -1

        Dim strAsli As String
        Dim strCari As String

        strAsli = CStr(teksMasukan.Text)
        strCari = CStr(teksKataCari.Text)

        Do While intIndeksAwal <> -1 ' -1 berarti tidak ditemukan
            intIndeksAwal = strAsli.IndexOf(strCari, intIndeksUbah + 1)
            intKounter += 1
            intIndeksUbah = intIndeksAwal
        Loop

        teksJumKata.Text = strCari & " terdapat sebanyak " & intKounter & " buah"

        ' Menggunakan Regular Expression
        Dim rex As System.Text.RegularExpressions.Regex =
            New System.Text.RegularExpressions.Regex(strCari)
       
        Dim kounter As Integer = rex.Matches(strAsli).Count
        MessageBox.Show("Menggunakan RegEx " & strCari & " terdapat sebanyak " &
            kounter & " buah")
    End Sub
End Class



Kasus 99: Demo Pelbagai Fungsi String

Public Class Form1
    Dim strMasukan1 As String
    Dim strMasukan2 As String

    'Digunakan untuk memastikan bahwa string tidak kosong
    Private Function PeriksaString() As Boolean
        strMasukan1 = CStr(teksSatu.Text)
        strMasukan2 = CStr(teksDua.Text)
        kotakList.Items.Clear()

        If Not String.IsNullOrEmpty(strMasukan1) Then
            If Not String.IsNullOrEmpty(strMasukan2) Then
                Return True
            Else
                MessageBox.Show("Silahkan masukkan string pada kotak teks kedua")
                Return False
            End If
        Else
            MessageBox.Show("Silahkan masukkan string pada kotak teks pertama")
            Return False
        End If
    End Function

    Private Sub tombolCompare_Click(sender As Object, e As EventArgs)
    Handles tombolCompare.Click
        strMasukan1 = CStr(teksSatu.Text)
        strMasukan2 = CStr(teksDua.Text)

        kotakList.Items.Clear() 'menghapus kotak list

        If PeriksaString() Then
            Select Case String.Compare(strMasukan1, strMasukan2)
                Case 0
                    kotakList.Items.Add(strMasukan1 & " sama dengan " & strMasukan2)
                Case Is < 0
                    kotakList.Items.Add(strMasukan1 &
                        " lebih dulu secara alfabetikal dari " & strMasukan2)
                Case Is > 0
                    kotakList.Items.Add(strMasukan2 &
                        " lebih dulu secara alfabetikal dari " & strMasukan1)
            End Select
        End If
    End Sub

    Private Sub tombolConcat_Click(sender As Object, e As EventArgs)
    Handles tombolConcat.Click
        If PeriksaString() Then
            kotakList.Items.Add(String.Concat(strMasukan1, strMasukan2))
        End If
    End Sub

    Private Sub tombolEquals_Click(sender As Object, e As EventArgs)
    Handles tombolEquals.Click
        If PeriksaString() Then
            If strMasukan1.Equals(strMasukan2) Then
                kotakList.Items.Add("Kedua string sama")
            Else
                kotakList.Items.Add("Kedua string berbeda")
            End If
        End If
    End Sub

    Private Sub tombolIndexOf_Click(sender As Object, e As EventArgs)
    Handles tombolIndexOf.Click
        If PeriksaString() Then
            Dim intIndeks As Integer = strMasukan1.IndexOf(strMasukan2)
            Select Case intIndeks
                Case -1
                    kotakList.Items.Add("String kedua tidak terdapat pada string pertama")
                Case Else
                    kotakList.Items.Add("Indeks dari string kedua adalah "
                        & intIndeks & " pada string pertama")
            End Select
        End If
    End Sub

    Private Sub tombolInsert_Click(sender As Object, e As EventArgs)
    Handles tombolInsert.Click
        If PeriksaString() Then
            Dim intIndeksSisip As Integer

            If Int32.TryParse(InputBox("Masukkan indeks dimana string kedua harus
                 disisipkan ke dalam string pertama", "Indeks sisip"), intIndeksSisip) Then
                kotakList.Items.Add(strMasukan1.Insert(intIndeksSisip, strMasukan2))
            Else
                MessageBox.Show("Silahkan masukkan integer yang valid")
            End If
        End If
    End Sub

    Private Sub tombolRemove_Click(sender As Object, e As EventArgs) Handles tombolRemove.Click
        If PeriksaString() Then
            Dim intIndeksHapus1 As Integer
            Dim intIndeksHapus2 As Integer

            If Int32.TryParse(InputBox("Masukkan indeks dimana penghapusan harus dimulai untuk string pertama", "Indeks
               Penghapusan String Pertama"), intIndeksHapus1) Then

                If Int32.TryParse(InputBox("Masukkan indeks dimana penghapusan harus dimulai untuk string kedua", "Indeks
                   Penghapusan String Kedua"), intIndeksHapus2) Then
                        kotakList.Items.Add("String Pertama: " & strMasukan1.Remove(intIndeksHapus1) & vbCrLf
                        & "  String Kedua: " & strMasukan2.Remove(intIndeksHapus2))
                Else
                    MessageBox.Show("Silahkan masukkan integer yang valid")
                End If
            Else
                MessageBox.Show("Silahkan masukkan integer yang valid")
            End If
        End If
    End Sub

    Private Sub tombolReplace_Click(sender As Object, e As EventArgs) Handles tombolReplace.Click
        If PeriksaString() Then
            kotakList.Items.Add(strMasukan1.Replace(InputBox("Masukkan string yang ingin Anda ganti dari string 1",
                "Penggantian String"), strMasukan2))
        End If
    End Sub

    Private Sub tombolToLower_Click(sender As Object, e As EventArgs) Handles tombolToLower.Click
        If PeriksaString() Then
            kotakList.Items.Add("String Pertama: " & strMasukan1.ToLower & vbCrLf
                & "  String kedua: " & strMasukan2.ToLower)
        End If
    End Sub

    Private Sub tombolToUpper_Click(sender As Object, e As EventArgs) Handles tombolToUpper.Click
        If PeriksaString() Then
            kotakList.Items.Add("String Pertama: " & strMasukan1.ToUpper & vbCrLf
                & "  String kedua: " & strMasukan2.ToUpper)
        End If
    End Sub

    Private Sub tombolTrim_Click(sender As Object, e As EventArgs) Handles tombolTrim.Click
        If PeriksaString() Then
            kotakList.Items.Add("String 1: " & strMasukan1.Trim & vbCrLf & "  String 2: " & strMasukan2.Trim)
        End If
    End Sub

    Private Sub tombolTrimEnd_Click(sender As Object, e As EventArgs) Handles tombolTrimEnd.Click
        If PeriksaString() Then
            kotakList.Items.Add("String 1: " & strMasukan1.TrimEnd & vbCrLf & " String 2: " & strMasukan2.TrimEnd)
        End If
    End Sub

    Private Sub tombolTrimStart_Click(sender As Object, e As EventArgs) Handles tombolTrimStart.Click
        If PeriksaString() Then
            kotakList.Items.Add("String 1: " & strMasukan1.TrimStart & vbCrLf & "  String 2: " & strMasukan2.TrimStart)
        End If
    End Sub
End Class





Kasus 100: Aplikasi Data Mahasiswa

Public Class Mahasiswa
    ' Variabel-variabel anggota
    Private strNamaBelakang As String ' Memuat nama belakang
    Private strNamaDepan As String ' Memuat nama depan
    Private strNIM As String ' Memuat NIM
    Private dblRerataUjian As Double ' Memuat rerata ujian

    ' Konstruktor
    Public Sub New()
        Debug.WriteLine("Objek Mahasiswa sedang diciptakan.")
        strNamaDepan = "(tidak diketahui)"
        strNamaBelakang = "(tidak diketahui)"
        strNIM = "(tidak diketahui)"
        dblRerataUjian = 0.0
    End Sub

    ' Properti NamaBelakang
    Public Property NamaBelakang() As String
        Get
            Return strNamaBelakang
        End Get

        Set(ByVal nilai As String)
            strNamaBelakang = nilai
        End Set
    End Property

    ' Properti NamaDepan
    Public Property NamaDepan() As String
        Get
            Return strNamaDepan
        End Get

        Set(ByVal nilai As String)
            strNamaDepan = nilai
        End Set
    End Property

    ' Properti NIM
    Public Property NIM() As String
        Get
            Return strNIM
        End Get

        Set(ByVal nilai As String)
            strNIM = nilai
        End Set
    End Property

    ' Prosedur NilaiRerata
    Public Property NilaiRerata() As Double
        Get
            Return dblRerataUjian
        End Get

        Set(ByVal nilai As Double)
            dblRerataUjian = nilai
        End Set
    End Property

    ' Properti read-only Nilai
    Public ReadOnly Property Nilai() As String
        Get
            ' Variabel untuk memuat nilai
            Dim strNilai As String

            ' Menentukan nilai
            If dblRerataUjian >= 90.0 Then
                strNilai = "A"
            ElseIf dblRerataUjian >= 80.0 Then
                strNilai = "B"
            ElseIf dblRerataUjian >= 70.0 Then
                strNilai = "C"
            ElseIf dblRerataUjian >= 60.0 Then
                strNilai = "D"
            Else
                strNilai = "F"
            End If

            ' Menghasilkan nilai
            Return strNilai
        End Get
    End Property
End Class

Imports System.IO

Public Class Form1
    ' Prosedur BacaData membaca data dari kotak-kotak teks
    ' dan menyimpannya pada objek yang ditunjuk oleh objMahasiswa
    Private Sub BacaData(ByVal objMahasiswa As Mahasiswa)
        Try
            ' Menugaskan nilai-nilai dari form kepada properti-properti objek
            objMahasiswa.NamaDepan = teksNamaBelakang.Text
            objMahasiswa.NamaBelakang = teksNamaDepan.Text
            objMahasiswa.NIM = teksNIM.Text
            objMahasiswa.NilaiRerata = CDbl(teksRerataUjian.Text)

        Catch ex As Exception
            ' Menampilkan pesan error
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub SimpanRekaman(ByVal objMahasiswa As Mahasiswa)
        Dim tulis As StreamWriter

        Try

            ' Membuka file dengan mode Append
            tulis = File.AppendText("Mahasiswa.txt")

            ' Menyimpan tiap properti objek Mahasiswa
            tulis.WriteLine(objMahasiswa.NIM)
            tulis.WriteLine(objMahasiswa.NamaDepan)
            tulis.WriteLine(objMahasiswa.NamaBelakang)
            tulis.WriteLine(objMahasiswa.NilaiRerata.ToString())
            tulis.WriteLine(objMahasiswa.Nilai)

            ' Menutup StreamWriter
            tulis.Close()

        Catch ex As Exception
            ' MEnampilkan pesan error
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    ' Prosedur BersihForm membersihkan form
    Private Sub BersihForm()
        ' Membersihkan semua kotak teks
        teksNamaDepan.Clear()
        teksNamaBelakang.Clear()
        teksNIM.Clear()
        teksRerataUjian.Clear()
        teksNilaiUjian.Text = String.Empty

        ' Memberikan fokus pada teksNamaBelakang
        teksNamaBelakang.Focus()
    End Sub

    Private Sub tombolSimpan_Click(sender As Object, e As EventArgs)
    Handles tombolSimpan.Click
        ' Menciptakan sebuah instans dari kelas Mahasiswa
        Dim objMahasiswa As New Mahasiswa

        ' Membaca data dari form
        BacaData(objMahasiswa)

        ' Menampilkan nilai mahasiswa
        teksNilaiUjian.Text = objMahasiswa.Nilai

        ' Menyimpan rekaman data mahasiswa
        SimpanRekaman(objMahasiswa)

        ' Memastikan bahwa rekaman telah tersimpan
        MessageBox.Show("Rekaman data mahasiswa telah tersimpan")

        ' Membersihkan form
        BersihForm()
    End Sub

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

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Mengaktifkan keluaran pada jendela keluaran
        Debug.Listeners.Add(New ConsoleTraceListener())
    End Sub
End Class





Kasus 101: Aplikasi Data Mahasiswa

Kelas Mahasiswa:

Public Class Mahasiswa
    ' Variabel-variabel anggota
    Private strNamaBelakang As String ' Memuat nama belakang
    Private strNamaDepan As String ' Memuat nama depan
    Private strNIM As String ' Memuat NIM
    Private dblRerataUjian As Double ' Memuat rerata ujian

    ' Konstruktor
    Public Sub New()
        Debug.WriteLine("Objek Mahasiswa sedang diciptakan.")
        strNamaDepan = "(tidak diketahui)"
        strNamaBelakang = "(tidak diketahui)"
        strNIM = "(tidak diketahui)"
        dblRerataUjian = 0.0
    End Sub

    ' Properti NamaBelakang
    Public Property NamaBelakang() As String
        Get
            Return strNamaBelakang
        End Get

        Set(ByVal nilai As String)
            strNamaBelakang = nilai
        End Set
    End Property

    ' Properti NamaDepan
    Public Property NamaDepan() As String
        Get
            Return strNamaDepan
        End Get

        Set(ByVal nilai As String)
            strNamaDepan = nilai
        End Set
    End Property

    ' Properti NIM
    Public Property NIM() As String
        Get
            Return strNIM
        End Get

        Set(ByVal nilai As String)
            strNIM = nilai
        End Set
    End Property

    ' Prosedur NilaiRerata
    Public Property NilaiRerata() As Double
        Get
            Return dblRerataUjian
        End Get

        Set(ByVal nilai As Double)
            dblRerataUjian = nilai
        End Set
    End Property

    ' Properti read-only Nilai
    Public ReadOnly Property Nilai() As String
        Get
            ' Variabel untuk memuat nilai
            Dim strNilai As String

            ' Menentukan nilai
            If dblRerataUjian >= 90.0 Then
                strNilai = "A"
            ElseIf dblRerataUjian >= 80.0 Then
                strNilai = "B"
            ElseIf dblRerataUjian >= 70.0 Then
                strNilai = "C"
            ElseIf dblRerataUjian >= 60.0 Then
                strNilai = "D"
            Else
                strNilai = "F"
            End If

            ' Menghasilkan nilai
            Return strNilai
        End Get
    End Property
End Class


Module Modul_Koleksi_Mahasiswa:

Module Modul_Koleksi_Mahasiswa
    ' Menciptakan koleksi yang memuat objek-objek Mahasiswa
    Public koleksiMahasiswa As New Collection

    ' Prosedur TambahRekaman menambahkan objek yang direferensi oleh s
    ' pada koleksi. Prosedur ini menggunakan NIM sebagai kunci

    Public Sub TambahRekaman(ByVal s As Mahasiswa)
        Try
            koleksiMahasiswa.Add(s, s.NIM)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
End Module

Form FormUtama:

Imports System.IO

Public Class FormUtama
    ' Prosedur BersihkanForm membersihkan form
    Private Sub BersihkanForm()
        teksNamaDepan.Text = String.Empty
        teksNamaBelakang.Text = String.Empty
        teksNIM.Text = String.Empty
        teksRerataUjian.Text = String.Empty
        teksNilaiUjian.Text = String.Empty
    End Sub

    ' Prosedur PerbaruiKotakList memperbarui isi kotak list
    Private Sub PerbaruiKotakList()
        ' Membersikan kotak list
        kotakListMahasiswa.Items.Clear()

        ' Memuat NIM-NIM pada kotak list
        Dim s As Mahasiswa
        For Each s In koleksiMahasiswa
            kotakListMahasiswa.Items.Add(s.NIM)
        Next

        ' Menyeleksi item pertama pada kotak list
        If kotakListMahasiswa.Items.Count > 0 Then
            kotakListMahasiswa.SelectedIndex = 0
        Else
            BersihkanForm()
        End If
    End Sub

    ' Prosedur TampilData menampilkan data yang dimuat
    ' pada parameter objek Mahasiswa
    Private Sub TampilData(ByVal s As Mahasiswa)
        teksNamaBelakang.Text = s.NamaBelakang
        teksNamaDepan.Text = s.NamaDepan
        teksNIM.Text = s.NIM
        teksRerataUjian.Text = s.NilaiRerata.ToString()
        teksNilaiUjian.Text = s.Nilai
    End Sub

    Private Sub tombolTambah_Click(sender As Object, e As EventArgs)
    Handles tombolTambah.Click
        ' Menciptakan sebuah instans dari FormTambah
        Dim formTambah As New FormTambah

        ' Menampilkan form
        formTambah.ShowDialog()

        ' Memperbarui isi dari kotak list
        PerbaruiKotakList()
    End Sub

    Private Sub tombolHapus_Click(sender As Object, e As EventArgs)
    Handles tombolHapus.Click
        Dim intIndeks As Integer

        ' Memastikan bahwa sebuah item diseleksi
        If kotakListMahasiswa.SelectedIndex <> -1 Then
            ' Memastikan bahwa pengguna ingin menghapus item
            If MessageBox.Show("Anda yakin?", "Memastikan Penghapusan",
            MessageBoxButtons.YesNo) =
           Windows.Forms.DialogResult.Yes Then

                ' Membaca data mahasiswa dari koleksi
                intIndeks = kotakListMahasiswa.SelectedIndex

                Try
                    ' Menghapus item terseleksi dari koleksi
                    koleksiMahasiswa.Remove(kotakListMahasiswa.SelectedItem.ToString())

                    ' Memperbarui kotak list
                    PerbaruiKotakList()

                Catch ex As Exception
                    ' Pesan error
                    MessageBox.Show(ex.Message)
                End Try
            End If
        End If
    End Sub

    Private Sub kotakListMahasiswa_SelectedIndexChanged(sender As Object, e As
    EventArgs) Handles kotakListMahasiswa.SelectedIndexChanged
        Dim objMahasiswa As Mahasiswa

        ' Memeriksa apakah sebuah item diseleksi
        If kotakListMahasiswa.SelectedIndex <> -1 Then
            ' Membaca data mahasiswa dari koleksi
            Try
                objMahasiswa =
                    CType(koleksiMahasiswa.Item(kotakListMahasiswa.SelectedItem), Mahasiswa)

                ' Menampilkan data mahasiswa
                TampilData(objMahasiswa)

            Catch ex As Exception
                ' Pesan error
                MessageBox.Show(ex.Message)
            End Try
        End If
    End Sub

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

Form FormTambah:

Public Class FormTambah
    ' Prosedur BacaData membaca data dari kotak-kotak teks
    ' dan menyimpannya pada objek yang ditunjuk oleh objMahasiswa
    Private Sub BacaData(ByVal objMahasiswa As Mahasiswa)
        Try
            ' Menugaskan nilai-nilai dari form kepada properti-properti objek
            objMahasiswa.NamaDepan = teksNamaBelakang.Text
            objMahasiswa.NamaBelakang = teksNamaDepan.Text
            objMahasiswa.NIM = teksNIM.Text
            objMahasiswa.NilaiRerata = CDbl(teksRerataUjian.Text)

        Catch ex As Exception
            ' Menampilkan pesan error
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    ' Prosedur BersihForm membersihkan form
    Private Sub BersihForm()
        ' Membersihkan semua kotak teks
        teksNamaDepan.Clear()
        teksNamaBelakang.Clear()
        teksNIM.Clear()
        teksRerataUjian.Clear()
        teksNilaiUjian.Text = String.Empty

        ' Memberikan fokus pada teksNamaBelakang
        teksNamaBelakang.Focus()
    End Sub

    Private Sub tombolTambah_Click(sender As Object, e As EventArgs)
    Handles tombolTambah.Click
        ' Menciptakan sebuah instans dari kelas Mahasiswa
        Dim objMahasiswa As New Mahasiswa

        ' Membaca data dari form
        BacaData(objMahasiswa)

        ' Menampilkan nilai mahasiswa
        teksNilaiUjian.Text = objMahasiswa.Nilai

        ' Menyimpan rekaman mahasiswa
        TambahRekaman(objMahasiswa)

        ' Memastikan bahwa rekaman telah tersimpan
        MessageBox.Show("Rekaman telah tersimpan")

        ' Membersikan form
        BersihForm()
    End Sub

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








Kasus 102: Menampilkan Bit

Imports System.Text

Public Class Form1

    Private Sub tombolTampil_Click(sender As Object, e As EventArgs)
    Handles tombolTampil.Click
        teksBit.Text = "" 'membersihkan kotak teks
        Dim nilaiBit As String

        nilaiBit = KonversiBit(CInt(teksInteger.Text)).ToString
        teksBit.Text = nilaiBit
    End Sub

    Private Function KonversiBit(ByVal nilai As Integer) As StringBuilder
        Dim bitMask As Integer = 1 << 31
        Dim bitBuffer As New StringBuilder(35)
        Dim indeks As Integer

        For indeks = 1 To 32
            If (nilai And bitMask) = 0 Then
                bitBuffer.Append("0")
            Else
                bitBuffer.Append("1")
            End If
            nilai <<= 1
            If (indeks Mod 8 = 0) Then
                bitBuffer.Append(" ")
            End If
        Next
        Return bitBuffer
    End Function
End Class




Kasus 103: Demo Penggeseran Bit

Imports System.Text

Public Class Form1
    Private Function KonversiBit(ByVal nilai As Integer) As StringBuilder
        Dim bitMask As Integer = 1 << 31
        Dim bitBuffer As New StringBuilder(35)
        Dim indeks As Integer

        For indeks = 1 To 32
            If (nilai And bitMask) = 0 Then
                bitBuffer.Append("0")
            Else
                bitBuffer.Append("1")
            End If
            nilai <<= 1
            If (indeks Mod 8 = 0) Then
                bitBuffer.Append(" ")
            End If
        Next
        Return bitBuffer
    End Function

    Private Sub tombolGeserKiri_Click(sender As Object, e As EventArgs)
    Handles tombolGeserKiri.Click
        Dim nilai As Integer
        nilai = Int32.Parse(teksInteger.Text)
        teksBitAsli.Text = KonversiBit(nilai).ToString
        nilai <<= Int32.Parse(teksJumlahBit.Text)
        teksBitHasil.Text = KonversiBit(nilai).ToString
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        teksInteger.Text = ""
        teksJumlahBit.Text = ""
        teksBitAsli.Text = ""
        teksBitHasil.Text = ""

        'memberikan fokus pada kotak teks teksInteger
        teksInteger.Focus()
    End Sub

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

    Private Sub tombolGeserKanan_Click(sender As Object, e As EventArgs)
    Handles tombolGeserKanan.Click
        Dim nilai As Integer
        nilai = Int32.Parse(teksInteger.Text)
        teksBitAsli.Text = KonversiBit(nilai).ToString
        nilai >>= Int32.Parse(teksJumlahBit.Text)
        teksBitHasil.Text = KonversiBit(nilai).ToString
    End Sub
End Class





Kasus 104: Demo Operasi-Operasi Bit

Imports System.Text

Public Class Form1
    Private Function KonversiBit(ByVal nilai As Integer) As StringBuilder
        Dim bitMask As Integer = 1 << 31
        Dim bitBuffer As New StringBuilder(35)
        Dim indeks As Integer

        For indeks = 1 To 32
            If (nilai And bitMask) = 0 Then
                bitBuffer.Append("0")
            Else
                bitBuffer.Append("1")
            End If
            nilai <<= 1
            If (indeks Mod 8 = 0) Then
                bitBuffer.Append(" ")
            End If
        Next
        Return bitBuffer
    End Function

    Private Sub tombolAND_Click(sender As Object, e As EventArgs)
    Handles tombolAND.Click
        Dim nilai1, nilai2 As Integer
        nilai1 = Int32.Parse(teksInteger1.Text)
        nilai2 = Int32.Parse(teksInteger2.Text)
        teksBit1.Text = KonversiBit(nilai1).ToString
        teksBit2.Text = KonversiBit(nilai2).ToString
        teksBitHasil.Text = KonversiBit(nilai1 And nilai2).ToString
    End Sub

    Private Sub tombolBersih_Click(sender As Object, e As EventArgs)
    Handles tombolBersih.Click
        teksInteger1.Text = ""
        teksInteger2.Text = ""
        teksBit1.Text = ""
        teksBit2.Text = ""
        teksBitHasil.Text = ""

        'Memberikan fokus pada kotak teks teksInteger1
        teksInteger1.Focus()
    End Sub

    Private Sub tombolOR_Click(sender As Object, e As EventArgs)
    Handles tombolOR.Click
        Dim nilai1, nilai2 As Integer
        nilai1 = Int32.Parse(teksInteger1.Text)
        nilai2 = Int32.Parse(teksInteger2.Text)
        teksBit1.Text = KonversiBit(nilai1).ToString
        teksBit2.Text = KonversiBit(nilai2).ToString
        teksBitHasil.Text = KonversiBit(nilai1 Or nilai2).ToString
    End Sub

    Private Sub tombolXOR_Click(sender As Object, e As EventArgs)
    Handles tombolXOR.Click
        Dim nilai1, nilai2 As Integer
        nilai1 = Int32.Parse(teksInteger1.Text)
        nilai2 = Int32.Parse(teksInteger2.Text)
        teksBit1.Text = KonversiBit(nilai1).ToString
        teksBit2.Text = KonversiBit(nilai2).ToString
        teksBitHasil.Text = KonversiBit(nilai1 Xor nilai2).ToString
    End Sub

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








Kasus 105: Demo Uji Keprimaan

Public Class Form1

    Private Sub tombolUjiPrima_Click(sender As Object, e As EventArgs) Handles tombolUjiPrima.Click
        Dim bitSet As New BitArray(50000)
        Dim nilai As Integer = Int32.Parse(teksAngka.Text)
        UjiPrimaSieve(bitSet)

        If (bitSet.Get(nilai)) Then
            teksPesan.Text = nilai & " adalah sebuah angka prima"
        Else
            teksPesan.Text = nilai & " bukan angka prima"
        End If
    End Sub

    Private Sub UjiPrimaSieve(ByRef bits As BitArray)
        Dim i, j As Integer
        Dim prima As String

        For i = 0 To bits.Count - 1
            bits.Set(i, CBool(1))
        Next

        Dim bitTerakhir As Integer = CInt(Math.Sqrt(bits.Count))
        For i = 2 To bitTerakhir - 1
            If (bits.Get(i)) Then
                For j = 2 * i To bits.Count - 1 Step i
                    bits.Set(j, CBool(0))
                Next
            End If
        Next

        Dim kounter As Integer = 0

        For i = 1 To bits.Count - 1
            If (bits.Get(i)) Then
                prima &= CStr(i)
                kounter += 1
                If (kounter Mod 7 = 0) Then
                    prima &= Constants.vbCrLf
                Else
                    prima &= Constants.vbTab
                End If
            End If
        Next
        teksPrima.Text = prima
    End Sub
End Class







No comments:

Post a Comment