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?
sebenarnya saya masih kurang paham dengan sintaks dari OOP, jika ada yang mau membantu saya, tolong beritahu saya bagaimana sintaksnya. Thanks
BalasHapus