Class
dan Object
Pengertian
class
Class
berbeda dengan object, sebagai analogi, di dunia ini tidak ada seorang manusia
yang sama persis. Namun pada sisi lain seluruh manusia di dunia digolongkan ke
dalam kelompok homo sapiens. Homo sapiens merupakan class, sedangkan manusia
adalah objek homo sapiens.
Gambar
1 Struktur Class
Gambar
2 Class Sepeda
Class
merupakan prototype yang mendefinisikan variabel dan metode secara umum. Pada
sisi lain, objek merupakan instanisasi suatu class. Contohnya adalah class
sepeda. Class sepeda pasti memiliki roda, peda dan gigi serta memiliki fungsi
seperti memutar kemudi, mengubah gigi dan lain-lain. Secara umum, class dapat
digambarkan seperti gambar dibawah ini
Pengertian object
Pada
dasarnya, semua benda yang ada d dunia nyata dapat dianggap sebuah objek.
Mobil, manusia, mahasiswa , komputer dan televise merupakan contoh objek yang
ada didunia nyata. Kalau kita memahami sifat objek maka akan menghasilkan dua
karakteristik berbeda yaitu:
- Atribut (Variabel) merupakan
karakteristik yang menjelaskan keadaan (State) suatu objek. Misalnya roda
mobil, pedal dan jumlah roda.
- Behavior (metode) merupakan
karakteristik ang menjelaskan tingakh laku sebuah objek, misalnya : kecepatan
naik, kecepatan turun, berhenti, maju dan lain-lain
Sama
halnya dalam dunia pemrograman berorientasi objek, pengembangan perangkat lunak
memperhatikan pula karakteristik yang dimiliki objek. Untuk menangani
pemrograman berorientasi objek, maka dikembangkan sebuah struktur pemodelam
yang dikenal dengan pemodelan class.
Deklarasi class dan Object
Dalam
pemrograman C#, deklarasi class secara umum ditulis dengan cara sebagai berikut
class
nama_class
{
atribut
/*deklarasi variabel */
metode
/*deklarasi metode*/
}
Untuk
lebih jelasnya perhatikan kode program dibawah ini
Gambar
3 Deklarasi Class
Pada
kode diatas kita mendeklarasikan sebuah
class dengan 4 atribut yaitu kecepatan_sepeda (int), posisi_gigi(int),
merek_sepeda(String) dan pemilik_sepeda (String). Selanjutnya kita juga membuat
2 buah behavior (method) yaitu ubah_kecepatan dan ubah gigi. Kedua method
tersebut tidak memiliki nilai kembalian maka dideklarasikan dengan menggunakan
keyword void. Untuk class dapat bekerja maka kita harus membuat objek dari
class sepeda tersebut.
Gambar
4 Objek Sepeda
Setelah
class sepeda selesai dibuat, maka pada baris kode main kita harus membuat objek
sepeda berdasarkan class sepeda yang kita buat. Pada contoh diatas kita membuat
dua buah objek (spd1, dan spd2) dan kedua objek tersebut menggunakan semua
atribut yang dimiliki oleh class sepeda dan menggunakan semua metode yang
dimiliki oleh class sepeda. Berikut adalah hasil keluaran dari program
tersebut.
Gambar
5 Keluaran Deklarasi class dan Object
Enkapsulasi
Enkapsulasi
merupakan pembungkusan variabel dan
metode dalam sebuah objek. Enkapsulasi memungkinkan seseorang melakukan sesuatu
tanpa harus mengetahui detail informasi. Manfaat enkapsulasi adalah
- Modularity, yaitu memecah-mecah sesuatu
yang kompleks menjadi bagian kecil yang lebih mudah dikelola
- Information hiding, yaitu menyembunyikan
informasi yang tidak perlu diketahui oleh objek lain
Analoginya
enkapsulasi (pengkapsulan) mirip dengan
kapsul obat, secara fisik kita tidak bisa melihat isi didalam kapsul
obat, namun informasi nya ada didalam dan berguna untuk orang yang sedang
sakit. Enkapsulasi dapat dilakukan dengan mengimplemtasikan access modifier. Access
modifier adalah keyword yang menentukan tipe access dari sebuah method atau
variabel. Didalam pemrograman C# terdapat 3 access modifier yaitu :
Untuk
lebih jelasnya maka perhatikan kode dibawah ini
Gambar
6 gambar kode enkapsulasi
Pada
kode diatas kita telah mengubah access merek_sepeda menjadi private, sehingga
hanya class sepeda yang dapat mengakses variabel merek_sepeda tersebut. Agar
objek dapat mengakses variabel tersebut maka kita harus membuat method yang dapat menset dan menampilkan
nilai dari merek_sepeda dalam hal ini adalah public void setMerekSepeda (String
m), dan public String getMerekSepeda(). Sebenarnya pada method setMerekSepeda
kita dapat menambahkan kode kode yang lebih detail mengenai merek sepeda, namun
pada saat kita menampilkan mereksepeda pada method getMerekSepeda, objek hanya
mendapat informasi mengenai merek sepeda. Sehingga detail informasi mengenai
merek sepeda telah berhasil kita sembunyikan.
Selanjutnya kita menambahkan objek berdasarkan class sepeda tersebut.
Gambar
7 Objek Sepeda
Berikut
adalah hasil keluarannya
Gambar
8 Hasil keluaran dari Enkapsulasi
Polymorphism
Polymorphism
merupakan kemampuan memnyembunyikan berbagai implementasi berbeda di belakang
antarmuka (banyak bentuk). Sebagai
contoh, ketika akan menghitung luas berbagai bentuk misalnya, segi
empat, lingkaran, dan segitiga kita dapat menggunakan teknik polymorphism
luas_lingkaran=3.14
* jari * jari
luas_segiempat=panjang
* lebar
luas_segitiga=0.5
* tinggi * alas
untuk
menangani masalah, kita dapat membuat
class sesuai dengan kebutuhan setiap rumus matematika yang ada. Dalam
setiap class, kita dapat membuat sebuah metode untuk menghitung luas, misalnya
hitugluas()
Gambar
9 Contoh Polymorphism
Pada
potongan kode diatas kita membuat sebuah class bangunGeometri dimana terdapat
dua buah method dengan nama yang sama, namun parameter yang dibutuhkan berbeda,
yaitu public double luas (int jari_jari) dan public double luas (int panjang,
int lebar). Sehingga jika kita memanggil method dengan satu parameter maka
program akan menghitung luas lingkaran, sedangkan jika kita memanggil method
dengan dua parameter maka program akan menghitung luas persegi panjang.
Gambar
10 Contoh penggunaan Polymorphism
Berikut
adalah hasil keluarannya
Gambar
11 Hasil keluaran dari Polymorphism
Inheritance
Class
dapat didefinisikan dengan referensi
pada class lain yang telah terdefinisi. Inheritance dikenal pewarisan atribut
dan metode pada class yang diperoleh
sebagai class yang telah terdefinisi.
Gambar
12 Model Pewarisan
Secara
prinsip inheritance adalah pembuatan sebuah class baru berdasarkan class yang
sudah ada dengan fungsi yang lebih dikembangkan. Semua method dan variabel yang
diset sebagai public atau protected dapat digunakan oleh inherited class (class
yang diwariskan). Sehingga dengan inheritance
kita tidak perlu lagi membuat sebuah class dari awal, jika sebuah class telah
dibuat sebelumnya maka kita hanya perlu menambahkan fungsi dari class tersebut.
Jadi program lebih mudah dikembangkan.
Untuk
lebih jelas nya perhatikan kode program dibawah ini
Gambar
13 Class Sepeda
Gambar
14 Class sepedagunung
Gambar
14 class utama
Berikut
adalah hasil keluarannya
Gambar
15 Hasil keluaran dari Inheritance
Dari contoh diatas kita membuat satu buah class
dasar yaitu sepeda. Class sepeda memiliki atribut mereksepeda, dan behavior
ubah_kecepatan dan ubah_gigi. Selanjutnya kita membuat class baru yaitu
sepedagunung yang diturunkan dari class sepeda. Class sepeda gunung memiliki satu
buah atribut yaitu mereksepeda. Selanjutnya class utama dimana kita membuat
objek dari class sepedagunung.
Kesimpulan
- Class adalah prototype dari sebuah objek,
atau class adalah blueprint dari sebuah objek Sedangkan objek adalah hasil
instance dari sebuah class
- Enkapsulasi adalah penyembunyian detail
informasi dari sebuah objek
- Polymorphism merupakan kemampuan
memnyembunyikan berbagai implementasi berbeda di belakang antarmuka (banyak
bentuk)
- Inheritance adalah Class dapat
didefinisikan dengan referensi pada class lain yang telah terdefinisi.