Enkapsulasi
Enkapsukasi disebut juga dengan information-hiding. Dalam berinteraksi dengan objek, seringkali
kita tidak perlu mengetahui kompleksitas yang ada didalamnya. Hal ini akan
lebih mudah dipahami jika kita membayangkan atau menganalisa objek yang ada
disekitar kita, misalnya objek sepeda, ketika kita mengganti gear pada sepeda,
kita tinggal menekan tuas gear yang ada di grip setang sepeda saja. Kita tidak
perlu mengetahui bagaimana cara gear berpindah secara teknis. Contoh objek lain
misalnya mesin penghisap debu (vacum cleaner), ketika kita mencolokkan kabel
vacum cleaner dan menyalakan sakelarnya maka mesin tersebut siap digunakan
untuk menghisap debu. Dalam proses tersebut kita tidak mengetahui proses rumit
yang terjadi ketika mengubah listrik menjadi tenaga dari vacum cleaner. Dalam
contoh diatas vacum cleaner dan sepeda telah menerapkan enkapsulasi atau
disebut juga information-hiding atau
data hiding karena menyembunyikan detail proses suatu objek dari pengguna.
Konstruktor
Konstruktor mirip dengan method cara deklarasinya akan
tetapi tidak memiliki tipe return. Dan konstruktor dieksekusi ketika instan
dari objek dibuat. Jadi setiap kali sebuat objek dibuat dengan keyword new()
maka konstruktor akan dieksekusi. Cara untuk membuat konstruktor adalah sebagai
berikut:
1.
Nama konstruktor harus sama dengan nama class
2.
Konstruktor tidak memiliki tipe data return
3.
Konstruktor tidak boleh menggunakan modifier
abstract, static, final, dan syncronized
Note: Di java kita dapat memiliki konstruktor dengan
modifier private, protected, public or default.
Akses Modifier
Terdapat 2 tipe modifier di java yaitu : akses
modifier dan non-access modifier. Dalam hal ini kita akan fokus pada akses
modifier yang berguna untuk mengatur akses method, class, dan constructor.
Terdapat 4 akses modifier yaitu:
·
private – hanya dapat diakses di dalam kelas
yang sama
·
default – hanya dapat diakses di dalam package
yang sama
·
protected – dapat diakases di luar package
menggunakan subclass (membuat inheritance)
·
public – dapat diakases dari mana saja
Detail akses modifier dapat dilihat pada tabel dibawah
ini.
Access Modifier |
Within Class |
Within Package |
Outside Package by Subclass Only |
Outside Package |
Private |
Y |
N |
N |
N |
Default |
Y |
Y |
N |
N |
Protected |
Y |
Y |
Y |
N |
Public |
Y |
Y |
Y |
Y |
Getter dan Setter
Getter adalah public method dan memiliki tipe data
return, yang berfungsi untuk mendapatkan nilai dari atribut private. Sedangkan
setter adalah public method yang tidak memliki tipe data return, yang berfungsi
untuk memanipulasi nilai dari atribut private.
Notasi UML Class
Diagram
Secara umum bentuk UML
class diagram adalah seperti pada gambar dibawah ini.
Keterangan :
1.
Class
2.
Interface
3.
Enumeration – adalah tipe data yang memiliki
nilai atau literal yang terbatas.
4.
Atrributes
5.
Method
6.
Literals
Notasi akses modifier pada UML class diagram adalah
sebagai berikut:
1.
Tanda plus (+) untuk public
2.
Tanda pagar (#) untuk protected
3.
Tanda minus (-) untuk private
4.
Untuk default, maka tidak diberi notasi
Percobaan
1.
Pada percobaan pertama saya akan
menyelesaikan soal berikut.
Pada percobaan pertama saya akan membahas menjadi beberapa bagian seperti dibawah ini :
Codingan
main class
Codingan main class saya beri nama “Main_mahasiwa”.
Pada codingan main class saya menggunakan konstrutor yang mirip dengan nama sub
class. Konstruktor berfungsi untuk
memberikan nilai awal pada sebuah class ketika class tersebut dibuat dalam
bentuk objek pada class lain.
Saya juga menambahkan Scanner untuk menginputkan data/nilai kesebuah
variable. Lalu, saya membuat inputan bertipe data String yaitu NPM dan Nama yang terdapat pada sub class serta menampilkan
inputan dari NPM dan Nama pada output program.
Codingan
sub class
Codingan sub class saya beri nama “Mahasiswa”.
Pada codingan sub class saya membuat variabel/atribut bernama NPM dan Nama yang
bertipe data String dan mengunakan tipe akses private yang berarti hanya dapat diakses di
dalam kelas yang sama.
Lalu saya
membuat method getter yang berfungsi untuk mendapatkan nilai dari atribut
private bernama getNPM dan getNama yang bertipe data String.
Lalu saya
membuat method setter yang berfungsi untuk memanipulasi nilai dari
atribut private bernama setNPM dan setNama yang bertipe data String.
Class,
Atribut, dan Object
Dibawah ini merupakan nama Class, Atribut
dan Object yang terdapat pada percobaan 1.
Output
Output yang dihasilkan dari percobaan 1.
2.
Pada percobaan kedua saya akan
menyelesaikan soal berikut.
Codingan
main class
Karena pada percobaan kedua hanya menambahkan
atribut Alamat, No Hp, Email dan Instagram. Jadi codingan program hampir mirip
dengan percobaan 1 hanya saja menambahkan atribut/varibel dan method setter dan
getter.
Codingan main class saya beri nama “Main_mahasiwa2”.
Pada codingan main class saya menggunakan konstrutor yang mirip dengan nama sub
class. Konstruktor berfungsi untuk
memberikan nilai awal pada sebuah class ketika class tersebut dibuat dalam
bentuk objek pada class lain.
Saya juga menambahkan Scanner untuk menginputkan data/nilai kesebuah variable. Lalu, saya membuat inputan bertipe data String yaitu NPM, Nama, Alamat, No. Hp, Email dan Instagram yang terdapat pada sub class serta menampilkan inputan dari NPM, Nama, Alamat, No. Hp, Email dan Instagram pada output program.
Codingan
sub class
Codingan sub class saya beri nama “Mahasiswa”.
Pada codingan sub class saya membuat variabel/atribut bernama NPM, Nama,
Alamat, No. Hp, Email dan Instagram yang bertipe data String dan mengunakan tipe
akses private yang berarti hanya dapat diakses di dalam kelas yang sama.
Lalu saya
membuat method getter yang berfungsi untuk mendapatkan nilai dari atribut
private bernama getNPM, getNama, getAlamat, getNo_Hp,
getEmail dan getInstagram yang bertipe
data String.
Lalu saya
membuat method setter yang berfungsi untuk memanipulasi nilai dari
atribut private bernama setNPM, setNama, setAlamat, setNo_Hp,
setEmail dan setInstagram yang bertipe data String.
Class
Atribut, and Object
Dibawah ini merupakan nama Class, Atribut dan Object yang terdapat pada percobaan 2.
Output
Output yang dihasilkan dari percobaan 2.
Cukup sekian permbahasan dari saya dan mohon maaf apabila ada kesalahan kata atau penjelasan. Terima kasih.
Nama : Yohanes Bosco Christo Setya Atmaka
NPM : 19316049
Kelas : TK 19 A
Komentar
Posting Komentar