Sunday, January 1, 2017

Bab 4. Soal & Penyelesaian Visual Basic .NET


Prosedur dan Fungsi





Kasus 51: Pemanggilan Prosedur

Public Class Form1
    Sub TampilkanPesan()
        ' Ini merupakan prosedur untuk menampilkan pesan.
        kotakList.Items.Add("")
        kotakList.Items.Add("Ini dari prosedur Tampilkan Pesan.")
        kotakList.Items.Add("")
    End Sub

    Private Sub tombolTampil_Click(sender As Object, e As EventArgs)
    Handles tombolTampil.Click
        ' Menampilkan teks pada kotak list
        kotakList.Items.Add("Ini dari prosedur tombolTampil_Click.")
        kotakList.Items.Add("Sekarang Saya memanggil prosedur TampilkanPesan.")

        ' Memanggil prosedur TampilkanPesan
        TampilkanPesan()

        ' Menampilkan teks kembali pada kotak list
        kotakList.Items.Add("Sekarang Saya kembali di prosedur tombolTampil_Click.")
    End Sub

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




Kasus 52: Lampu ON-OFF

Public Class Form1
    Sub LampuON()
        ' Menampilkan citra "LampuON"
        PBLampuON.Visible = True

        ' Menyembunyikan citra "LampuOFF"
        PBLampuOFF.Visible = False

        ' Mengubah teks label
        statusLampu.Text = "ON"
    End Sub

    Sub LampuOFF()
        ' Menampilkan citra "LampuFF"
        PBLampuOFF.Visible = True

        ' Menyembunyikan citra "LampuON"
        PBLampuON.Visible = False

        ' Mengubah teks label
        statusLampu.Text = "OFF"
    End Sub

    Private Sub tombolSaklar_Click(sender As Object, e As EventArgs)
    Handles tombolSaklar.Click
        ' Membalik status lampu
        If PBLampuON.Visible = True Then
            LampuOFF()
        Else
            LampuON()
        End If
    End Sub

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



Kasus 53: Pelewatan Argumen kepada Prosedur

Public Class Form1

    Private Sub tombolDemo1_Click(sender As Object, e As EventArgs)
    Handles tombolDemo1.Click
        'Event handler ini memanggil prosedur TampilNilai,
        'melewatkan 5 sebagai argumen
        kotakList.Items.Clear()
        TampilNilai(5)
    End Sub

    Private Sub tombolDemo2_Click(sender As Object, e As EventArgs)
    Handles tombolDemo2.Click
        ' Memanggil prosedur TampilNilai beberapa kali,
        ' melewatkan argumen-argumen yang berbeda pada tiap pemanggilan
        kotakList.Items.Clear()
        TampilNilai(5)
        TampilNilai(10)
        TampilNilai(2)
        TampilNilai(16)

        ' Nilai dari sebuah ekspresi dilewatkan kepada
        ' prosedur TampilNilai.
        TampilNilai(3 + 5)
    End Sub

    Private Sub tombolDemo3_Click(sender As Object, e As EventArgs)
    Handles tombolDemo3.Click
        ' Menggunakan sebuah loop untuk memanggil prosedur TampilNilai
        ' melewatkan sebuah variabel sebagai argumen
        kotakList.Items.Clear()
        Dim intHitung As Integer
        For intHitung = 1 To 10
            TampilNilai(intHitung)
        Next
    End Sub

    Sub TampilNilai(ByVal intAngka As Integer)
        ' Prosedur ini menambahkan sebuah nilai pada kotak list
        kotakList.Items.Add(intAngka.ToString())
    End Sub

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



Kasus 54: Pelewatan Argumen Jamak kepada Prosedur

Public Class Form1

    Private Sub tombolDemo1_Click(sender As Object, e As EventArgs)
    Handles tombolDemo1.Click
        'Event handler ini memanggil prosedur TampilNilai,
        'melewatkan 5 sebagai argumen
        kotakList.Items.Clear()
        TampilJum(98, 34)
    End Sub

    Private Sub tombolDemo2_Click(sender As Object, e As EventArgs)
    Handles tombolDemo2.Click
        ' Memanggil prosedur TampilNilai beberapa kali,
        ' melewatkan argumen-argumen yang berbeda pada tiap pemanggilan
        kotakList.Items.Clear()
        TampilJum(5, 7)
        TampilJum(10, 8)
        TampilJum(2, 8)
        TampilJum(16, 98)

        ' Nilai dari sebuah ekspresi dilewatkan kepada
        ' prosedur TampilNilai.
        TampilJum(3, 5)
    End Sub

    Private Sub tombolDemo3_Click(sender As Object, e As EventArgs)
    Handles tombolDemo3.Click
        ' Menggunakan sebuah loop untuk memanggil prosedur TampilNilai
        ' melewatkan sebuah variabel sebagai argumen
        kotakList.Items.Clear()
        Dim intHitung As Integer
        For intHitung = 1 To 10
            TampilJum(intHitung, intHitung)
        Next
    End Sub

    Sub TampilJum(ByVal intAngka1 As Integer, ByVal intAngka2 As Integer)
        Dim intJum As Integer ' variabel lokal untuk menyimpan hasil penjumlahan

        ' Penjumlahan dari dua argumen
        intJum = intAngka1 + intAngka2

        ' Menempilkan penjumlahan pada kotak list
        kotakList.Items.Add("Hasil Penjumlahan: " & intAngka1.ToString() &
            "+" & intAngka2.ToString() & " = " & intJum.ToString())
    End Sub

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




Kasus 55: Demo ByVal

Public Class Form1

    Private Sub tombolGo_Click(sender As Object, e As EventArgs)
    Handles tombolGo.Click
        Dim intAngka As Integer = 100

        kotakList.Items.Add("Di dalam tombolGo_Click, nilai dari " &
        "intAngka adalah " & intAngka.ToString())

        kotakList.Items.Add("Sekarang UbahArg dipanggil:")

        UbahArg(intAngka)

        kotakList.Items.Add("Sekarang kembali ke tombolGo_Click, " &
        "nilai dari intAngka adalah " & intAngka.ToString())
    End Sub

    Sub UbahArg(ByVal intArg As Integer)
        ' Menampilkan nilai dari intArg
        kotakList.Items.Add(" ")
        kotakList.Items.Add("Di dalam prosedur UbahArg, " & "intArg bernilai: " &
            intArg.ToString())

        kotakList.Items.Add("Saya akan mengubah nilai dari intArg.")

        ' Menugaskan 0 kepada intArg
        intArg = 0

        ' Menampilkan nilai dari intArg
        kotakList.Items.Add("intArg sekarang bernilai: " & intArg.ToString())
        kotakList.Items.Add(" ")
    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 56: Demo ByRef

Public Class Form1

    Private Sub tombolGo_Click(sender As Object, e As EventArgs)
    Handles tombolGo.Click
        Dim intAngka As Integer = 100

        kotakList.Items.Add("Di dalam tombolGo_Click, nilai dari " &
        "intAngka adalah " & intAngka.ToString())

        kotakList.Items.Add("Sekarang UbahArg dipanggil:")

        UbahArg(intAngka)

        kotakList.Items.Add("Sekarang kembali ke tombolGo_Click, " &
        "nilai dari intAngka adalah " & intAngka.ToString())
    End Sub

    Sub UbahArg(ByRef intArg As Integer)
        ' Menampilkan nilai dari intArg
        kotakList.Items.Add(" ")
        kotakList.Items.Add("Di dalam prosedur UbahArg, " & "intArg bernilai: " &
            intArg.ToString())

        kotakList.Items.Add("Saya akan mengubah nilai dari intArg.")

        ' Menugaskan 0 kepada intArg
        intArg = 0

        ' Menampilkan nilai dari intArg
        kotakList.Items.Add("intArg sekarang bernilai: " & intArg.ToString())
        kotakList.Items.Add(" ")
    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 57: Demo ByVal dan ByRef

Public Class Form1
    Dim intSatu, IntDua As Integer

    Private Sub tombolTugas_Click(sender As Object, e As EventArgs)
    Handles tombolTugas.Click
        intSatu = CInt(kotakTeksSatu.Text)
        IntDua = CInt(kotakTeksDua.Text)
        tombolTugas.Text = "Variabel-variabel ditugaskan ke IntSatu dan IntDua"
    End Sub


    Private Sub tombolByVal_Click(sender As Object, e As EventArgs)
    Handles tombolByVal.Click
        DenganNilai(intSatu) 'menjalankan fungsi DenganNilai
        tombolByVal.Text = "10 ditambahkan"
    End Sub


    Private Sub tombolByRef_Click(sender As Object, e As EventArgs)
    Handles tombolByRef.Click
        DenganReferensi(IntDua) 'menjalankan fungsi DenganReferensi
        tombolByRef.Text = "10 ditambahkan"
    End Sub

    Private Sub DenganNilai(ByVal sngSatu As Integer)
        'fungsi DenganNilai
        sngSatu = sngSatu + 10
        labelByVal.Text = "Byval sngSatu = " & sngSatu
    End Sub

    Private Sub DenganReferensi(ByRef sngDua As Integer)
        'fungsi DenganReferensi
        sngDua = sngDua + 10
        labelByRef.Text = "ByRef sngDua = " & sngDua
    End Sub

    Private Sub tombolPeriksa_Click(sender As Object, e As EventArgs)
    Handles tombolPeriksa.Click
        'Apa yang sebenarnya dimuat oleh kedua variabel?
        'Byval tidak akan berubah, sedangkan ByRef akan berubah
        labelVarAsli.Text = "ByValue, intSatu tidak berubah: " & intSatu &
            vbCrLf & "ByRef, intDua berubah: " & IntDua
    End Sub
End Class




Kasus 58: Demo Function


Public Class Form1
    Private decRetail As Decimal ' Menampung harga retail
    Private decPersen As Decimal ' Menampung persen diskon

    Private Function ValidasiBidangMasukan() As Boolean
        'Mengkonversi bidang masukan. Menghasilkan False jika
        'ada bidang tak-valid, dan menampilkan pesan error.

        If Not Decimal.TryParse(teksHargaRetail.Text, decRetail) Then
            labelPesan.Text = "Harga retail harus numerik"
            Return False
        End If

        If Not Decimal.TryParse(teksPersenDiskon.Text, decPersen) Then
            labelPesan.Text = "Persen diskon harus numerik"
            Return False
        End If

        Return True
    End Function

    Function HitungHargaPenjualan(ByVal decRetail As Decimal, ByVal decPersen
    As Decimal) As Decimal
        ' Menghitung dan menghasilkan harga penjualan
        Dim decHargaPenjualan As Decimal

        decHargaPenjualan = decRetail - (decRetail * decPersen / 100)
        Return decHargaPenjualan
    End Function


    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        Dim decHargaPenjualan As Decimal

        ' Menghapus pesan sebelumnya
        labelPesan.Text = String.Empty

        ' Jika bidang masukan valid, menampilkan harga penjualan
        If ValidasiBidangMasukan() Then
            decHargaPenjualan = HitungHargaPenjualan(decRetail, decPersen)
            teksHargaPenjualan.Text = decHargaPenjualan.ToString("N")
        End If
    End Sub

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



Kasus 59: Rencana Layanan TelkomSelular

Public Class Form1
    ' Variabel-variabel global
    Dim sngBiayaBulanan As Single
    Dim sngJumMenit As Single
    Dim sngJumData As Single
    Dim sngTambahMenit As Single
    Dim sngTambahData As Single
    Dim SngVoice As Single
    Dim sngBiayaAkhir As Single
    Dim strRencana As String

    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        pilihRencana()
        'hitung()
    End Sub

    Private Sub pilihRencana()
        If strRencana = "A" Then
            sngBiayaBulanan = 290000
            sngJumMenit = 150
            sngJumData = 500
            sngTambahMenit = 0.59
            sngTambahData = 0.2
            SngVoice = 0.2

        ElseIf strRencana = "B" Then
            sngBiayaBulanan = 350000
            sngJumMenit = 250
            sngJumData = 600
            sngTambahMenit = 0.59
            sngTambahData = 0.2
            SngVoice = 0.2

        ElseIf strRencana = "C" Then
            sngBiayaBulanan = 450000
            sngJumMenit = 350
            sngJumData = 700
            sngTambahMenit = 0.59
            sngTambahData = 0.2
            SngVoice = 0.2

        ElseIf strRencana = "D" Then
            sngBiayaBulanan = 550000
            sngJumMenit = 450
            sngJumData = 800
            sngTambahMenit = 0.59
            sngTambahData = 0.2
            SngVoice = 0.2

        ElseIf strRencana = "E" Then
            sngBiayaBulanan = 650000
            sngJumMenit = 550
            sngJumData = 900
            sngTambahMenit = 0.59
            sngTambahData = 0.2
            SngVoice = 0.2

        ElseIf strRencana = "F" Then
            sngBiayaBulanan = 750000
            sngJumMenit = 650
            sngJumData = 1000
            sngTambahMenit = 0.59
            sngTambahData = 0.2
            SngVoice = 0.2
        End If

        'Menempatkan teks pada batang judul
        Me.Text = "Anda memilih " & "Rencana " & strRencana
    End Sub

    Private Sub hitung()
        'menciptakan variabel-variabel untuk menampilkan data yang dimasukkan       
        Dim sngMenitDigunakan As Single = 0
        Dim sngDataDigunakan As Single = 0
        Dim sngVoiceDigunakan As Single = 0

        'menciptakan variabel-variabel untuk menampung kelebihan penggunaan
        Dim sngEkstraMenit As Single = 0
        Dim sngEkstraData As Single = 0
        Dim sngBiayaVoice As Single = 0

        'Membaca data dari kotak teks
        sngMenitDigunakan = CSng(teksJumMenit.Text)
        sngDataDigunakan = CSng(teksData.Text)
        sngVoiceDigunakan = CSng(teksVoiceMail.Text)

        'biaya ekstra untuk kelebihan jumlah menit
        sngMenitDigunakan = sngMenitDigunakan - sngJumMenit

        If sngMenitDigunakan > 0 Then
            sngEkstraMenit = (sngMenitDigunakan * sngTambahMenit)
        Else 'tidak ada biaya ekstra jika kurang dari rencana
            sngEkstraMenit = 0
        End If

        'biaya ekstra untuk kelebihan jumlah data
        sngDataDigunakan = sngDataDigunakan - sngJumMenit

        If sngDataDigunakan > 0 Then
            sngEkstraData = (sngDataDigunakan * sngTambahMenit)
        Else 'tidak ada biaya ekstra jika kurang dari rencana
            sngEkstraData = 0
        End If

        'biaya VoiceMail
        sngBiayaVoice = SngVoice * sngVoiceDigunakan

        'Biaya Akhir
        sngBiayaAkhir = (sngBiayaBulanan + sngEkstraMenit + sngEkstraData + sngBiayaVoice)

        kotakList.Items.Add("Rp. " & sngBiayaBulanan & "; Rencana " &
            strRencana & " Anda perlu membayar Rp. " & sngBiayaAkhir)

        labelHarga.Text = CStr(sngBiayaAkhir)

        'Menampilkan 3 label lagi
        labelData.Text = sngEkstraMenit.ToString()
        labelJumMenit.Text = "Rp. " & sngEkstraData.ToString()
        labelVoiceMail.Text = "Rp. " & sngBiayaVoice.ToString()
    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 60: Pilihan Berganda

Public Class Form1
    'berapa banyak yang benar
    Dim intBenar As Integer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Pertanyaan()
    End Sub

    Sub Pertanyaan()
        'static berarti hanya dipakai sekali, tidak dialokasikan setiap kali dipanggil
        Static KounterPertanyaan As Integer

        'memindahkan pertanyaan
        KounterPertanyaan += 1

        'keluaran sehingga Anda dapat melihatnya
        Me.Text = "Pertanyaan " & KounterPertanyaan

        'Pertanyaan-pertanyaan dimuat di sini
        Select Case KounterPertanyaan
            Case 1
                labelPertanyaan.Text = KounterPertanyaan &
                    " Manakah yang merupakan sebuah variabel?"
                tombolJawaban1.Text = "Button"
                tombolJawaban2.Text = "Label"
                tombolJawaban3.Text = "Double"
                tombolJawaban4.Text = "Form"
                tombolJawaban3.Tag = "ya"

            Case 2
                labelPertanyaan.Text = KounterPertanyaan &
                    " Manakah yang bukan variabel?"
                tombolJawaban1.Text = "Single"
                tombolJawaban2.Text = "Label"
                tombolJawaban3.Text = "Double"
                tombolJawaban4.Text = "String"
                tombolJawaban2.Tag = "ya"

            Case 3
                labelPertanyaan.Text = KounterPertanyaan &
                    " String dipakai untuk ....?"
                tombolJawaban1.Text = "Menghitung formula"
                tombolJawaban2.Text = "Mengingatkan Anda akan sesuatu"
                tombolJawaban3.Text = "Menampung angka"
                tombolJawaban4.Text = "Menampung tak-angka"
                tombolJawaban4.Tag = "ya"

            Case 4
                labelPertanyaan.Text = KounterPertanyaan &
                    " Properti Tag dipakai untuk..."
                tombolJawaban1.Text = "Memuat teks"
                tombolJawaban2.Text = "Memuat informasi"
                tombolJawaban3.Text = "Menciptakan variabel"
                tombolJawaban4.Text = "Memuat form"
                tombolJawaban2.Tag = "ya"

            Case 5
                labelPertanyaan.Text = KounterPertanyaan &
                    " Manakah formula yang salah?"
                tombolJawaban1.Text = "strJawaban = intAngka1 ""&"" intAngka2"
                tombolJawaban2.Text = "dblJawaban = intAngka1 * intAngka2"
                tombolJawaban3.Text = "intJawaban = intAngka1 + intAngka2"
                tombolJawaban4.Text = "strJawaban = intAngka1 + intAngka2"
                tombolJawaban4.Tag = "ya"

            Case 6
                labelPertanyaan.Text = KounterPertanyaan &
                    " Select Case dipakai untuk"
                tombolJawaban1.Text = "Menghitung formula"
                tombolJawaban2.Text = "Mengingatkan Anda akan sesuatu"
                tombolJawaban3.Text = "Menampung angka"
                tombolJawaban4.Text = "Menampung tak-angka"
                tombolJawaban3.Tag = "ya"

            Case 7
                labelPertanyaan.Text = KounterPertanyaan &
                    " Apakah kontrol yang menghasilkan event ketika diklik"
                tombolJawaban1.Text = "ComboBox"
                tombolJawaban2.Text = "label"
                tombolJawaban3.Text = "Button"
                tombolJawaban4.Text = "RadioButton"
                tombolJawaban3.Tag = "ya"

            Case 8
                labelPertanyaan.Text = KounterPertanyaan &
                    " Manakah yang merupakan wisata gunung"
                tombolJawaban1.Text = "Bromo"
                tombolJawaban2.Text = "Danau Toba"
                tombolJawaban3.Text = "Senggigi"
                tombolJawaban4.Text = "Malioboro"
                tombolJawaban1.Tag = "ya"

            Case 9
                labelPertanyaan.Text = KounterPertanyaan &
                    " Apakah yang dilakukan form?"
                tombolJawaban1.Text = "Secara formal memuat program"
                tombolJawaban2.Text = "Memberi pesan error"
                tombolJawaban3.Text = "Menciptakan variabel"
                tombolJawaban4.Text = "Memeriksa kesalahan"
                tombolJawaban1.Tag = "ya"

            Case 10
                labelPertanyaan.Text = KounterPertanyaan &
                    " Apa yang dilakukan sender?"
                tombolJawaban1.Text = "Hanya hiasan saja"
                tombolJawaban2.Text = "Memuat semua properti dari kontrol tertentu"
                tombolJawaban3.Text = "Menginstansiasi objek"
                tombolJawaban4.Text = "Memuat gambar"
                tombolJawaban2.Tag = "ya"

            Case 11
                labelPertanyaan.Text = "Selamat Anda mendapatkan " &
                    intBenar & " buah jawaban benar"
                tombolJawaban1.Enabled = False
                tombolJawaban2.Enabled = False
                tombolJawaban3.Enabled = False
                tombolJawaban4.Enabled = False
                Exit Sub
        End Select
    End Sub

    Private Sub AnswerButtons(sender As Object, e As EventArgs) Handles
    tombolJawaban1.Click, tombolJawaban2.Click, tombolJawaban3.Click,
    tombolJawaban4.Click
        Dim fakebutton As Button
        fakebutton = CType(sender, Button)

        'jika event tag dari jawaban adalah "ya"
        If "ya".Equals(fakebutton.Tag) Then
            intBenar += 1
            LBKeluaran.Items.Add(intBenar & " " & fakebutton.Text & " Tepat!")
        Else
            'jika tidak
            LBKeluaran.Items.Add(fakebutton.Text & " tidak Tepat!")
        End If

        'mereset tag menjadi Nothing
        fakebutton.Tag = ""

        'Menjalankan pertanyaan berikutnya
        Pertanyaan()
    End Sub
End Class



Kasus 61: Kalkulator Harga Bagel Kopi dan Bagel

Public Class Form1
    ' Deklarasi-deklarasi level-kelas
    Const decBESAR_PAJAK As Decimal = 0.06D ' Besar pajak
    Const decBAGEL_WHITE As Decimal = 12500D ' Biaya dari white bagel
    Const decBAGEL_WHEAT As Decimal = 15000D ' Biaya dari whole wheat bagel

    Const decCREAM_CHEESE As Decimal = 5000D ' Biaya dari cream cheese topping
    Const decBUTTER As Decimal = 2500D ' Biaya dari butter topping
    Const decBLUEBERRY As Decimal = 7500D ' Biaya dari blueberry topping

    Const decRASPBERRY As Decimal = 7500D ' Biaya dari raspberry topping
    Const decPEACH As Decimal = 7500D ' Biaya dari peach topping
    Const decREG_COFFEE As Decimal = 12500D ' Biaya dari regular coffee

    Const decCAPPUCCINO As Decimal = 20000D ' Biaya dari cappuccino
    Const decCAFE_AU_LAIT As Decimal = 17500D ' Biaya dari Cafe au lait

    Private Sub tombolHitung_Click(sender As Object, e As EventArgs)
    Handles tombolHitung.Click
        ' Prosedur ini menghitung total pesanan
        Dim decSubtotal As Decimal ' Memuat subtotal pesanan
        Dim decTax As Decimal ' Memuat pajak penjualan
        Dim decTotal As Decimal ' Memuat total pesanan

        decSubtotal = HitungBiayaBagel() + HitungBiayaTopping() + HitungBiayaKopi()
        decTax = HitungPajak(decSubtotal)
        decTotal = decSubtotal + decTax
        teksSubtotal.Text = "Rp. " & decSubtotal.ToString("N")
        teksPajak.Text = "Rp. " & decTax.ToString("N")
        teksTotal.Text = "Rp. " & decTotal.ToString("N")
    End Sub

    Private Sub tombolReset_Click(sender As Object, e As EventArgs)
    Handles tombolReset.Click
        ' Prosedur ini merset kontrol-kontrol menjadi nilai-nilai default
        ResetBagel()
        ResetTopping()
        ResetKopi()
        ResetHarga()
    End Sub

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

    Function HitungBiayaBagel() As Decimal
        ' Fungsi ini menghasilkan biaya dari bagel yang dipilih
        Dim decBagel As Decimal
        If RBWhite.Checked = True Then
            decBagel = decBAGEL_WHITE
        Else
            decBagel = decBAGEL_WHEAT
        End If
        Return decBagel
    End Function

    Function HitungBiayaTopping() As Decimal
        ' Fungsi ini menghasilkan biaya dari topping
        Dim decBiayaTopping As Decimal = 0D
        If CBCream.Checked = True Then
            decBiayaTopping += decCREAM_CHEESE
        End If

        If CBButter.Checked = True Then
            decBiayaTopping += decBUTTER
        End If
       
        If CBBlueberry.Checked = True Then
            decBiayaTopping += decBLUEBERRY
        End If

        If CBRaspberry.Checked = True Then
            decBiayaTopping += decRASPBERRY
        End If

        If CBPeach.Checked = True Then
            decBiayaTopping += decPEACH
        End If
        Return decBiayaTopping
    End Function

    Function HitungBiayaKopi() As Decimal
        ' Fungsi ini menghasilkan biaya dari kopi yang dipilih
        Dim decKopi As Decimal
        If RBTidak.Checked Then
            decKopi = 0D
        ElseIf RBRegular.Checked = True Then
            decKopi = decREG_COFFEE
        ElseIf RBCappuccino.Checked = True Then
            decKopi = decCAPPUCCINO
        ElseIf RBCafe.Checked = True Then
            decKopi = decCAFE_AU_LAIT
        End If
        Return decKopi
    End Function

    Function HitungPajak(ByVal decJumlahPenjualan As Decimal) As Decimal
        ' Fungsi ini menerima jumlah penjualan dan
        ' menghasilkan total pajak
        Return decJumlahPenjualan * decBESAR_PAJAK
    End Function

    Sub ResetBagel()
        ' Prosedur ini mereset pemilihan bagel
        RBWhite.Checked = True
    End Sub

    Sub ResetTopping()
        ' Prosedur ini mereset pemilihan topping
        CBCream.Checked = False
        CBButter.Checked = False
        CBBlueberry.Checked = False
        CBRaspberry.Checked = False
        CBPeach.Checked = False
    End Sub

    Sub ResetKopi()
        ' Prosedur ini mereset pemilihan kopi
        RBRegular.Checked = True
    End Sub

    Sub ResetHarga()
        ' Prosedur ini mereset harga
        teksSubtotal.Text = String.Empty
        teksPajak.Text = String.Empty
        teksTotal.Text = String.Empty
    End Sub
End Class








No comments:

Post a Comment