Cari Blog Ini

Selasa, 03 Maret 2015

 Buatlah sebuah kelas Mahasiswa dengan atribut Nim, nama, angkatan, nilai1, nilai2 dan method
is_active(), average(), hitungSPP. Kelas mahasiswa memiliki 2 child class, yaitu Mhs_Diploma
dan Mhs_Sarjana. Mhs Diploma memiliki method Hitung_Asrama() dan Hitung_Disc()
sedangkan Mhs Sarjana memiliki metod Hitung_Lab() dan HitDisc().
- Is_active mengembalikan nilai True bila angkatan lebih besar dari 2011 dan lebih kecil
dari 2015
- average mengembalikan nilai rata-rata nilai: (nilai1+nilai2)/2
- hitungSPP mengembalikan nilai SPP mahasiswa dimana 3.000.000 untuk angkatan 2012
selain itu 3.500.000
- Hitung_Asrama mengembalikan uang asrama mahasiswa diploma: 250.000 * 12
- Hitung_Lab mengembalikan uang lab mahasiwa sarjana yakni 50.000 * 14
- HitDisc di Mhs_Sarjana mengembalikan nilai pembayaran dengan potongan 10% (SPP +
uang lab – 0.1*(SPP * uang lab))
- HitDisc di Mhs_SarjDiploma mengembalikan nilai pembayaran dengan potongan 20%
(SPP + uang asrama – 0.05*(SPP * uang lab))
Buatlah instansiasi dari class Mhs_Sarana dan Mhd_Diploma, kemudian tampilan total
pembayaran masing-masing


Public Class Mhs
    Private f, u, j As Double
    Property Angkatan As Double
        Get
            Return f
        End Get
        Set(value As Double)
            f = value
        End Set
    End Property
    Property nilai1 As Double
        Get
            Return u
        End Get
        Set(value As Double)
            u = value
        End Set
    End Property
    Property nilai2 As Double
        Get
            Return j
        End Get
        Set(value As Double)
            j = value
        End Set
    End Property
    Public Function akt()
        If MyClass.Angkatan > 2011 And MyClass.Angkatan < 2015 Then
            Return True
        Else
            Return False
        End If
    End Function
    Public Function rata()
        Return (MyClass.u + MyClass.j) / 2
    End Function
    Public Function SPP()
        If MyClass.Angkatan = 2012 Then
            Return 3000000
        Else
            Return 3500000
        End If
    End Function
    Public Class Mhs_Dip
        Inherits Mhs
        Public Function U_Asrama()
            Return 250000 * 12
        End Function
        Public Function diskon()
            Return (SPP() + U_Asrama() - ((0.2 * SPP() - SPP()))) - (SPP() + U_Asrama() - ((0.2 * SPP() - SPP()))) * 0.2
        End Function
    End Class
    Public Class Mhs_Sar
        Inherits Mhs
        Public Function U_lab()
            Return 50000 * 14
        End Function
        Public Function diskon()
            Return (SPP() + U_lab() - (SPP() - (0.1 * (SPP())) + U_lab())) - (SPP() + U_lab() - (SPP() - (0.1 * (SPP())) + U_lab())) * 0.1
        End Function
    End Class
End Class

Module Module1

    Sub Main()
        Dim a As New Mhs
        Dim b As New Mhs.Mhs_Dip
        Dim c As New Mhs.Mhs_Sar
        Console.Write("NIM  : ")
        Dim nim As String = Console.ReadLine
        Console.Write("Nama  : ")
        Dim n As String = Console.ReadLine()
        Console.Write("Angkatan : ")
        a.Angkatan = Console.ReadLine
        Console.Write("Nilai 1 :")
        a.nilai1 = Console.ReadLine
        Console.Write("Nilai 2 :")
        a.nilai2 = Console.ReadLine
        Console.WriteLine("Total untuk Mhs Sarjana : Rp {0}", c.diskon)
        Console.WriteLine("Total untuk Mhs Diploma : Rp {0}", b.diskon)
        Console.ReadKey()

    End Sub

End Module




Mengapa harus menggunakan dot? misalnya " a.nilai2 dan c.diskon"

Sebenarnya, apa kegunaannya?

1 komentar:

  1. sebenarnya saya masih kurang paham dengan sintaks dari OOP, jika ada yang mau membantu saya, tolong beritahu saya bagaimana sintaksnya. Thanks

    BalasHapus