1. Indikator Topik Pembahasan.
- Mampu membuat aksesor, mutator, dan properties.
- Pembuatan Aksesor (fungsi getter).
- Pembuatan Mutator (fungsi setter).
- Pengenalan Properties.
2. Peralatan yang digunakan.
- Visual Studio 2017 Community.
3. Materi Pembelajaran.
Enkapsulasi
Enkapsulasi adalah proses di mana tidak ada akses langsung diberikan kepada
data. Sebaliknya, data yang ada disembunyikan. Jika ingin mendapatkan akses ke data,
Maka harus berinteraksi dengan objek yang bertanggung jawab untuk data tersebut.
Enkapsulasi berasal dari kata kapsul yang berarti pembungkus. Enkapsulasi
mempunyai arti pembungkusan terhadap data dan fungsi menjadi komponen tunggal.
fitur dari enkapsulasi sendiri sudah didukung dikebanyakan bahasa pemrogramman
berorientasi objek, meskipun ada alternatif yang lain. enkapsulasi mengijinkan untuk
memilih properti dan metode yang akan disembunyikan didalam sebuah objek untuk
melindungi kode dari kerusakan yang tidak disengaja maupun disengaja.
Sudah dipelajari sebelumnya bahwa sebuah kelas memiliki anggota-anggota
yang mempunyai akses penentu private, public, dan protected. Secara umum semua
anggota data yang didefinisikan di kelas bersifat private. Perhatikan class berikut.

Dari class diatas dapat dilihat semua atribut diberikan akses public. Ketika dibuatkan
sebuah objek untuk class Prices pada main Program.cs, maka semua atribut yang ada
pada class Prices akan dengan mudah dimanipulasi. Perhatikan main program berikut:

Dapat disimpulkan atribut yang ada Prices dapat dengan mudah dimanipulasi
(dirubah-rubah) oleh class lain. Pada kasus ini class Prices akan kehilangan kontrol
terhadap atribut-atribut yang dimilikinya. Sebab setiap perubahan nilai atribut yang
terjadi diluar class, maka tidak ada jaminan class Prices mengetahui perubahan
tersebut. Untuk meluruskan kasus tersebut, maka didalam teknik permrogramman
berorientasi objek mengenal enkapsulasi yang sebenarnya terdiri dari dua metode
dasar. Dua metode dasar itu dikenal dengan nama Accessor dan Mutator.
Metode accessor adalah metode yang digunakan untuk melakukan akses untuk
membaca atau mendapatkan nilai data yang tersimpan pada private atribut. Dengan
menggunakan metode accessor, class lain dapat mendapatkan info tentang nilai data
yang tersimpan pada private atribut. Metode ini juga dikenal dengan nama lain yaitu
metode “Getter”. Berikut bentuk kodenya.

Metode mutator adalah metode yang digunakan untuk melakukan kontrol
terhadap setiap perubahan nilai data yang terjadi pada private atribut. Dengan
menggunakan metode mutator, class lain dapat melakukan perubahaan tentang nilai
data yang tersimpan pada private atribut. Metode ini juga dikenal dengan nama lain
yaitu metode “Setter”. Berikut bentuk kodenya.
Dari kedua itu, masih dianggap sebagai satu enkapsulasi. Boleh ditulis
keduanya atau boleh juga ditulis salah satu saja tergantung kebutuhan pemaiakan.
Apabila dikehendaki readonly atribut, maka yang ditulis adalah metode accessor
(getter) dan apabila dikehendaki writeonly atribut, maka yang ditulis adalah metode
mutator (setter). Berikut contoh singkat enkapsulasi pada sebuah atribut yang ada di
class Prices
Setelah ditambahkan enkapsulasi, maka akan terjadi perubahan pada main program.
Perhatikan main program berikut.
Pada kasus sebelumnya (gambar 2), dapat dilihat bahwa class Prices memiliki
atribut public yang berakibat class lain dapat melakukan manipulasi terhadap
atributnya. Sehingga class Prices kehilangan kontrol terhadap atributnya.
Namun perbedaan yang terjadi setelah penambahan enkapsulasi adalah
meningkatnya kontrol yang ada pada atribut class Prices. Pada potongan kode pada
baris ke 10 price.SetPrice(1000) main program tidak melakukan perubahan terhadap
atribut yang ada pada class Prices. Melainkan main program hanya melakukan proses
request (meminta) kepada class Prices untuk melakukan perubahan pada atribut price
senilai 1000. Hal tersebut dapat dibuktikan dengan melihat dimana operator
penugasan tidak lagi diletakkan didalam main program, melainkan tetap berada di
class Prices.
Dapat disimpulkan bahwa proses enkapsulasi bisa menyebabkan class Prices
dapat mengontrol semua aktifitas yang melibatkan atributnya meskipun nilai atribut
sedang digunakan (diakses) oleh class lainnya.
Dari kode diatas class Prices membatasi nilai yang ada pada atributnya. Maka
enkapsulasi melindungi atribut dan nilainya dari kerusakan yang tidak disengaja
maupun disengaja.
Properties
perties
Properti adalah anggota yang dimiliki class yang dapat menyediakan
mekanisme fleksibel untuk membaca, menulis ataupun komputasi terhadap nilai dari
sebuah private atribut. Properti mengaktifkan kelas untuk mengekspos cara yang
public untuk mendapatkan dan menetapkan nilai-nilai, sambil menyembunyikan
implementasi atau verifikasi kode.
Dengan kata lain properti menggabungkan kedua fungsi accessor dan mutator
menjadi satu kesatuan yang diakses seperti halnya akses pada variabel. Properti adalah
bentuk penyederhanaan enkapsulasi yang disediakan oleh bahasa csharp. Menyerupai
getter dan setter, properti dapat menjadi read-write yang mana didalamnya terdapat
get dan set. Properti juga dapat berupa readonly yang didalamnya hanya terdapat get.
Dan properti dapat berupa writeonly yang didalamnya hanya terdapat set. Berikut
contoh dari bentuk properti.
Properti lengkap memiliki get dan set. Salah satu nya boleh dihapus dan bisa juga
ditambahkan akses modifier antara get maupun set.
Jika properti yang dibuat hanya properti default yang tidak memiliki komputasi
ataupun ekspresi pada statemennya, maka penulisannya dapat disingkat. Properti jenis
ini dikenal dengan nama “Auto-implemented properties”.
Dalam pemrograman csharp dilevel lanjut metode accessor dan mutator sudah jarang
digunakan. Sebab programmer lebih sering menggunakan bentuk properti sebagai
enkapsulasi dari private atribut yang terdapat di class.
Indekser.
Indekser masih merupakan sebuah mekanisme yang terdapat didalam class.
Indekser memungkinkan sebuah objek untuk diindeks seperti halnya sebuah array.
Ketika indekser didefinisikan pada class, maka class tersebut dapat mempunyai
perilaku yang mirip dengan virtual array. Dan instansi dari class tersebut dapat dapat
diakses dengan menggunakan akses array operator ([]).
Deklarasi dari perilaku indekser adalah mirip dengan sebuah properti. Layaknya
properti, akses get dan set juga digunakan dalam mendefinisikan indekser. Namun
properti mengembalikan atau menetapkan sebuah nilai yang ada pada atribut.
Sedangkan indekser mengembalikan atau menetapkan nilai tertentu dari sebuah objek
yang diinstansikan. Dengan kata lain indekser memecah sebuah instansi data menjadi
bagian-bagian kecil dan indeks-indeks disetiap bagiannya.
Dalam mendefinisikan sebuah properti melibatkan penyedian nama properti.
Sedangkan Indeksers tidak didefinisikan dengan nama, tetapi dengan kata kunci
"this", yang merujuk ke instansi objek. Berikut contoh lengkap dari class Product dan
class Prices yang memiliki properti dan indekser
Comments
Post a Comment