OBJECT ORIENTED PROGRAMMING (OOP) DI VISUAL
FOXPRO PART 4
Dalam
mendeklarasikan property dan method di dalam class terkadang kita perlu
menyembunyikan informasinya (encapsulation), supaya tidak digunakan oleh
programer lain secara sembarangan, bahkan terhadap diri kita sendiri yang
membuat kelas tersebut. Tujuannya adalah mengurangi kesalahan koding dalam
menggunakan kelas tersebut. Jenis encapsulation di Visual Foxpro ada 2 jenis
yaitu HIDDEN dan PROTECTED. Ini berlaku
untuk Propery dan Method.
- HIDDEN : property/method tersebut hanya bisa digunakan dalam kelas tersebut. Tidak bisa diakses menggunakan obyek.
- PROTECTED : property/ method tersebut bisa digunakan dalam kelas tersebut dan kelas turunannya, namun tetap tidak bisa diakses menggunakan obyek.
Syntax :
HIDDEN/PROTECTED
<<property>>
HIDDEN/PROTECTED
PROCEDURE <<method>>()
ENDPROC
Pertanyaannya kapan kita menggunakan
encapsulation? Jika property/method tersebut TIDAK BOLEH kita ubah dari luar
menggunakan obyek. Contoh :
Kita membuat Kelas rumus perhitungan lembur.
Dimana tarif lembur sudah fix yaitu 1000 per jam (tidak boleh diubah-ubah), Sedangkan
jumlah maksimum jam yang diijinkan adalah 5 jam. Jika ada pegawai yang lembur
diatas 5 jam maka yang dibayar tetap 5 jam saja.
DEFINE CLASS KelasLembur as Custom
HIDDEN
tariflembur
tariflembur=1000
jam=0
hasil=0
HIDDEN PROCEDURE maxlembur()
IF this.jam>5
this.jam=5
ENDIF
ENDPROC
PROCEDURE
hitunglembur()
this.maxlembur() &&
method pembatasan jam lembur dijalankan
this.hasil=this.jam * this.tariflembur
ENDPROC
ENDDEFINE
Hidden Property :
tariflembur. Property ini tidak boleh diubah dari luar, sehingga ketika kita
hendak mengakses menggunakan obyek akan terkunci, dan akan eror ketika akan
diisi dengan nilai yang lain misalkan menjadi 5.000 atau 10.000. Property yang
boleh diakes hanyalah jam dan hasil saja.
Terlihat property diatas terdapat
gambar grendel/kunci. Misalkan akan kita ubah isinya menjadi 50.000 maka akan
keluar eror sbb :
Hidden Method : maxlembur(). Method ini akan membatasi jumlah jam lembur yang dibayar, misalkan ada pegawai yang lembur diatas 5 jam, maka yang dibayar tetap 5 jam. Method ini tidak boleh diubah dari luar, sehingga ketika kita hendak mengakses menggunakan obyek akan terkunci.
Terlihat method diatas terdapat gambar
grendel/kunci. Misalkan akan kita panggil menggunakan obyek, akan keluar eror.Method
hitunglembur() saja yang bisa dipanggil dari obyek.
Untuk
yang jenis PROTECTED sebenarnya sama dengan HIDDEN, bedanya untuk kelas turunannya
dapat memanggil nilai property dan method kelas induknya, namun tetap saja tidak bisa dipanggil dari obyek.
Kesimpulan : Encapsulation digunakan untuk mencegah pengaksesan propery/method dari luar (dari Obyek) untuk menghindari kesalahan kita dalam memanggil property/method.
Kesimpulan : Encapsulation digunakan untuk mencegah pengaksesan propery/method dari luar (dari Obyek) untuk menghindari kesalahan kita dalam memanggil property/method.



Tidak ada komentar:
Posting Komentar