Amanda Simbolon
Amanda Simbolon
Encapsulation
merupakan konsep
melindungi data dan
menyembunyikan
detail bagaimana data
bekerja dari end-user.
End-user hanya tahu
input-outputnya
tanpa mengetahui
bagaimana metode
get dan set-nya.
Sebelum membuat class main, kita buat dahulu class Hero dengan atribut nama dengan tipe
string, power bertipe integer, dan health tipe integer. Kemudian membuat constructor dengan
nama yang sama dengan kelas-nya juga atribut yang sama dengan kelas Hero-nya yaitu
NamaHero,
PowerHero, dan
HealthHero. Nama
akan diassign ke
NamaHero begitu
juga dengan power
dan health. Kemudian
kita buat public
asesor dan mutator
dengan 2 method
yang berbeda. Yaitu public string GetNamaHero() yang akan mengembalikan sebuah nilai
yang memiliki hak akses. Hak aksesnya adalah public, dimana yang dikembalikan adalah
nama.
Kemudian membuat mutator yaitu public void setNamaHero dengan parameter string
NamaSetHero. Perbedaan get dan set adalah get berfungsi untuk mengembalikan nilai
sedangkan set berfungsi untuk merubah data / mengisi sebuah nilai. Sehingga get dan set
saling berkaitan kemudian diisi dengan nama = NamaSetHero.
Kemudian kita bungkus atau enkapsul public asesor dan mutator di dalam method yang
berbeda yaitu GetAndSet dengan Console.WriteLine dengan berisi Nama Hero adalah,
berdasarkan nama.
Kemudian kita isi fungsi main-nya, dengan objek yaitu NamaHeroML dari class Hero dengan
value Miya, 1000, 1000. Kemudian dipanggil getAndSet-nya. Ketika dipanggil getAndSet
maka di dalamnya ada public mutator get yaitu Console.Writeline dengan atribut nama yang
akan memanggil return nama sehingga akan tampil nama hero-nya adalah Miya yang berasal
dari fungsi main.
Output:
NamaHero_NetProperty yaitu line 31 kemudian ada get kemudian return nama dan set nama
sesuai dengan value yang diinput. Ketika dipanggil namaHero_NetProperty pada gungsi
main, dengan value “Change”. L.ine 31 akan mengget/mengembalikan nama. Metode ini
digunakan ketika ingin mengubah nama menjadi value kemudian direturn menjadi nama.
Ketika diprint getAndSet yang pertama akan ditampilkan selanjutnya ketika digunkan
properties-nya, maka akan merubah Namanya. Sehingga output-nya akan menjadi seperti
berikut:
3) Encapsulation dengan Automatic .NET Properties
Automatic tersebut
berbeda dari
encapsulation
sebelumnya adalah kita
dapat membuat method
get dan set di dalam
atribut-nya, seperti pada
line 20. Kemudian
dihapus metode net
propertiesnya, lalu pada
main diganti pada ;ine
12 yang sudah diubah
menjadi .nama.
4) Inheritance (Is A)
Kode program di samping membuat objek dari kelas "Mobil" dan "Minivan", dan mencetak
nilai dari beberapa atribut dari masing-masing objek. Kelas "Mobil" memiliki 2 atribut
bernama "CurrentKecepatan" dan "KecepatanMaks", yang masing masing memiliki tipe
data integer. Atribut ini dapat dibaca dan ditulis melalui properti "get" dan "set" yang
disediakan oleh C#. Kelas "Mobil" juga memiliki konstruktor yang digunakan untuk mengisi
nilai atribut "CurrentKecepatan" dan "KecepatanMaks". Kelas "Minivan" adalah kelas
turunan dari kelas "Mobil". Kelas ini memiliki atribut tambahan bernama
"TransmissionType", yang bertipe data string. Kelas "Minivan" memiliki konstruktor yang
menerima 3 argument
dan mengisi nilai atribut-
atribut dari objek. Kelas
ini juga memanggil
konstruktor dari kelas
"Mobil" dengan
menggunakan kata kunci
"base" untuk memastikan
bahwa atribut
"CurrentKecepatan" dan
"KecepatanMaks" dari
kelas "Mobil" juga
diterima dan diisi oleh
objek dari kelas
"Minivan". Pada method
Main, objek baru dari
kelas "Minivan" dan
"Mobil" dibuat dan
diberikan nilai awal untuk atribut-atributnya. Nilai atribut "CurrentKecepatan",
"KecepatanMaks", dan "TransmissionType" dari objek "Minivan" dicetak menggunakan
statement "Console.WriteLine". Nilai atribut "CurrentKecepatan" dan "KecepatanMaks" dari
objek "Mobil" juga dicetak dengan menggunakan statement "Console.WriteLine". Program
akan berakhir setelah pengguna menekan tombol apapun pada console.