Monday, 7 October 2019

Inheritance


Assalamualaikum Wr. Wb.

Pada kesempatan kali  ini saya ingin membahas mengenai salah satu hubungan class pada OOP java yaitu Inheritance(Pewarisan)


Apa itu inheritance ? Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.

Untuk lebih memahami inheritance amati contoh berikut:

File: Inheritance/BangunDatar.java

File: Inheritance/Persegi.java

File: Inheritance/Lingkaran.java


File: Inheritance/PersegiPanjang.java


File: Inheritance/Segitiga.java


File: Inheritance/Main.java

Setelah itu coba jalankan class Main, maka hasilnya:


kenapa hasilnya bisa begitu ? 

Karena yang kita panggil sebenarnya adalah method luas() dan keliling() milik si induk (BangunDatar). Objek anak dari BangunDatar belum memiliki method luas() dan keliling(), akhirnya mengambil milik induknya.
Pada hubungan inheritance, semua member di dalam class induk akan bisa diakses oleh class anak (subclass), kecuali memeber tersebut diberikan modifier private.
Modifier tidak hanyabisa diberikan kepada member saja. Tapi juga bisa diberikan kepada interface, enum, dan class itu sendiri
Apa itu single inheritance ?  Konsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance, yaitu suatu sublass hanya dapat mempunyai satu parent class. Dengan kata lain, suatu class hanya dapat meng-extend satu class saja.
Apa itu multilevel Inheritance ?  Konsep inheritance yang ada di Java juga memperkenankan adanya multilevel inheritance. Konsep multilevel inheritance memperbolehkan suatu subclass mempunyai subclass lagi. 

     Mungkin cukup sekian pembahasan pada kali ini kurang lebihnya mohon maaf, semoga bermanfaat

wassalamualaikum Wr. Wb.

Monday, 23 September 2019

Encapsulation


Encapsulation atau sering disebut information hiding pada dasarnya adalah kombinasi antara data dan method pada sebuah class yang ditunjukan untuk menyembunyikan detail dari user (pengakses class) terhadap suatu object. Jika kita ambil contoh tentang bagaimana orang lain “mengakses data” milik kita. Anggaplah orang ingin tahu apakah kita mempunyai tanda lahir di punggung yang merupakan suatu “data” pada diri kita. Secara umum, kita tidak akan mengijinkan orang lain melihat langsung karena itu adalah bagian “pribadi”. Akan tetapi orang lain dapat mengetahuinya menggunakan “metode” penyampaian yang kita berikan: “Saya tidak memiliki tanda lahir di punggung”. Jadi ada bagian “publik” dan juga ada bagian “pribadi”.

Berikut contoh program menggunakan encapsulation :


Class Kalender




















Pada gambar di atas terdapat deklarasi private attribute, attribute private tersebut juga dapat di ubah menjadi public atua yang lainnya. Selain itu terdapat pula constructor dengan dua input parameter, dan constructor dengan tiga input parameter.




























Pada gambar di atas terbadapat fungsi get seperti getTanggal() yang berfungsi untuk mengakses attribute tanggal, begitu pula dengan getBulan() yang berfungsi untuk mengakses attribute bulan, dan getTahun yang berfung untuk mengakses attribute tahun.

Selain get terdapat pula fungsi set seperti setTanggal yang berfungsi untuk mengisi attribute tanggal, setBulan yang berfungsi untuk mengisi attribute bulan, dan setTahun untuk mengisi attribute tahun.


Class TestKalender 






















Dan jika di runing akan menghasilkan seperti ini :












Selain itu ada pula contoh program menggunakan encapsulation seperti dibawah ini :

Class Siswa



































Bukankah lebih sederhana jika pada class Siswa kita deklarasikan data nama, nis, dan alamat dengan acces modifier public dari pada harus membuat method-method khusus untuk mengaksesnya. Demikian pula cara penggunaannya class SiswaTest, mengambil dan mengubah isi data akan lebih sederhana.



Saat membuat object objSis yang bisa dianggap sebagai proses “membuat seorang Siswa”, maka data nama dan nis tidak boleh diubah selama Siswa tersebut ada sehingga kita harus membuat data nama dan nis sebagai data read only. Jika data-data ini dibuat tidak readonly yang dapat memberikan peluang akses penuh, maka kemungkinan akan terdapat masalah tersendiri. Dengan demikian kita perlu melindungi data nama dan nis dari perubahan-perubahan dari luar class, sehingga perlu diberikan modifier private.












Mungkin cukup sekian semoga dapat bermanfaat
Terima Kasih