Encapsulation adalah proses pemaketan data bersama metode-metodenya dimana hal
ini bermanfaat untuk menyembeunyikan rincian-rincian implementasi dari pemakai.
Dalam sebuah objek yang mengandung variabel-variabel dan method-method, dapat
ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusan
variabel dan method dalam sebuah objek dalam bagian yang terlindungi inilah
yang disebut denganenkapsulasi.
Bagian eksternal dari
sebuah objek sering disebut sebagai interface atau antarmuka terhadap objek lain. Karena objek lain harus
berkomunikasi dengan obejk itu hanya melalui antarmuka maka bagian internal
objek dapat dilindungi dari gangguan luar. Karena program luar tidak mengakses
implementasi internal objek, maka implementasi internal dapat berubah tanpa
mempengaruhi bagian-bagian program lain.
Di
dalam Java, pengkapsulan dapat dilakukan dengan pembentukan kelas-kelas
menggunakan keyword class. Sedangkan penyembunyian informasi dapat dilakukan
dengan pengendalian terhadap pengaksesan pembentuk kelas dengan keyword-keyword
untuk kendali pengaksesan default, private, protected, dan public.
Penyembunyian informasi deilakukan dengan implementasi penerapan kendari
menggunakan keyword private dan protected pada elemen data.
Ada 2 manfaat utama dari encapsulation
yaitu :
1.
Penyembunyian Informasi (information hiding)
Hal
ini mengacu kepada perlindungan terhadap implementasi obejk internal. Objek
tersebut dari interface public dan bagian private yang merupakan kombinasi data
dan metode internal. Manfaat utamanya adalah bagian internal dapat berubah
tanpa mempengaruhi bagian-bagian program yang lain.
2.
Modularitas
Modularitas berarti objek dapat dikelola secara independen. Karena kode
sumber bagian internal objek dikelola secara terpisah dari antarmuka, maka Kita
bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian
lain dari sistem. Manfaat ini mempermudah mendistriibusikan objek-objek dari
sistem.
Berikut
ini merupakan contoh listing Programnya:
Contoh
program enkapsulasi tersebut, saya buat menjadi program menu dengan beberapa
pilihan. Pilihannya ada hitung data dan biodata.
Pada program tersebut
saya membungkus detail dari 2 pilihan yang terdapat di menu menjadi 2 class,
yaitu class hitung, dan class biodata. Saat user mengakses program tidak akan dipusingkan dengan
implementasi kedua data yang ada di pilihan menu tersebut karena program sudah
dibuat sedemikian rupa, sehingga saat user mengakses programnya, si program
tinggal memanggil nama dari class-nya saja yang sesuai dengan pilihan menu yang
dipilih nanti.
Saya buat seperti itu
karena mengingat salah satu dasar dari enkapsulasi itu sendiri yaitu information
hiding, yang bermaksud menyembunyikan setiap elemen yang digunakan.


Contoh
program enkapsulasi tersebut, saya buat menjadi program menu dengan beberapa
pilihan. Pilihannya ada hitung data dan biodata.
Pada program tersebut
saya membungkus detail dari 2 pilihan yang terdapat di menu menjadi 2 class,
yaitu class hitung, dan class biodata. Saat user mengakses program tidak akan dipusingkan dengan
implementasi kedua data yang ada di pilihan menu tersebut karena program sudah
dibuat sedemikian rupa, sehingga saat user mengakses programnya, si program
tinggal memanggil nama dari class-nya saja yang sesuai dengan pilihan menu yang
dipilih nanti.
Saya buat seperti itu
karena mengingat salah satu dasar dari enkapsulasi itu sendiri yaitu information
hiding, yang bermaksud menyembunyikan setiap elemen yang digunakan.
untuk
lebih jelasnya sekarang kita lihat output dari contoh program enkapsulasi
tersebut…








Jadi
inti dari enkapsulasi sendiri yaitu kita tidak perlu mengetahui apa yang ada di
dalam object (class) itu, tapi yang kita butuhkan hanyalah cara memakainya dan
apa yang akan dihasilkan dari program tersebut.
B. INHERITANCE (PEWARISAN)
Inheritance
adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance
memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang
lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat
mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima
warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak
semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan
dengan cara menambahkan kata kunci extends setelah deklarasi nama class,
kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut
memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan
subclass dari superclass Object.
# Superclass adalah class induk atau class orang tua, class yang letaknya di
atas class tertentu di dalam hierarki.
# Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang
dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua
yang dimiliki oleh superclass.
ini merupakan contoh listing Programnya:


Keuntungan
penggunaan Inheritance dalam OOP : Reusability
Ketika behavior(method) dideklarasikan dalam superclass, behavior tersebut
otomatis diwariskan ke seluruh subclass
Jadi, Anda dapat meng-enkode method hanya sekali dan method tersebut dapat
digunakan oleh seluruh subclass
Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya
sendiri dan parent-nya.
C. POLIMORPHISME
Polymorphism
sebuah kata dari bahasa Yunani yang mempunyai arti banyak bentuk. Dua objek
atau lebih dikatakan sebagai polymorphic bila kedua objek tersebut mempunyai
(interface) antarmuka identik namun mempunyai perilaku yang berbeda. Dalam
pemrograman, polimorpism dapat diartikan sebagai modul yang memiliki nama sama,
namun memiliki behaviour yang berbeda sehingga listing code implementasinya
juga berbeda. Kondisi yang harus dipenuhi supaya polimorfisme dapat
diimplementasikan adalah :
· Method yang dipanggil harus melalui variabel dari basis class atau superclass.
· Method yang dipanggil harus juga menjadi method dari basis class.
· Signature method harus sama baik pada superclass maupun subclass.
· Method access attribute pada subclass tidak boleh lebih terbatas dari basis
class.
ini merupakan contoh listing Programnya:



D. PACKAGE (Paket)
Pengertian
package adalah sebuah sarana untuk mengelompokan atau mengorganisasikan kelas
dan interface yang sama atau sekelompok menjadi satu unit tunggal dalam library.
Secara fisik, package dapat berupa folder yang berisi file file/kelas
interface/enum lain yang kegunaannya hampir sama sehingga patut untuk
dikelompokan.
Package mempengaruhi mekanisme hak akses ke kelas didalamnya.
Ada tiga langkah dalam membuat package yaitu:
1.Mendeklarasikan
dan memberi nama package.
2.Membuat struktur dan nama folder yang sesuai dengan struktur dan nama package.
3.Mengkompilasikan kelas kelas sesuai dengan nama package masing-masing.
-Mendeklarasikan
dan Memberi Nama Package
Deklarasi
package harus diletakkan pada bagian paling awal (sebelum deklarasi import)
dari source code setiap kelas yang dibungkus package tersebut.
-Bentuk
umum deklarasi package :
package
namaPackage;
Deklarasi
tersebut akan memberitahukan kompilator, ke library manakah suatu kelas
dikompilasi dan dirujuk.
-Syarat
nama package :
1.
Diawali huruf kecil
2.
Menggambarkan kelas-kelas yang
dibungkusnya
3.
Harus unik (berbeda dengan nama
package standard)
4. Merepresentasikan path dari package
tersebut.
5.
Harus sama dengan nama direktorinya.
Contoh
package standard :
java.lang (berisi kelas-kelas fundamental yang sering digunakan).
java.awt dan javax.swing (berisi kelas-kelas untuk membangun aplikasi GUI)
java.io (berisi kelas-kelas untuk proses input output).
§
Membuat Struktur Direktori
Pada
langkah ini, buatlah direktori menggunakan file manager (di windows menggunakan
explorer) sesuai struktur package dari langkah sebelumnya. Kemudian tempatkan
kelas-kelas tersebut ke direktori yang bersesuaian (mirip seperti
menyimpan file-file ke dalam folder).
Package
dapat bersarang di package lain, sehingga dapat dibuat hirarki package.
Bentuk
umum pernyataan package multilevel :
package
namaPackage1[.namaPackage2[.namaPackage3]];
Contoh
hirarki package di JDK :
package java.awt.image;
§ Compile
dan Run Kelas dari suatu Package
Selanjutnya
masing-masing kelas tersebut dalam package tersebut dikompilasi menjadi byte
code (*.class). Artinya package tersebut siap digunakan.
§ Menggunakan
Package
-Ada
dua cara menggunakan suatu package yaitu :
1. Kelas yang menggunakan berada dalam
direktori (package) yang sama dengan kelas-kelas yang digunakan. Maka tidak
diperlukan import.
2. Kelas yang menggunakan berada dalam
direktori (package) yang berbeda dengan kelas-kelas yang digunakan. Maka pada
awal source code di kelas pengguna harus mencantumkan :
import
namaPackage.NamaKelas; atau
import
namaPackage.*;
Contoh
:
import java.text.DecimalFormat;
import javax.swing.*;
§ Setting
Classpath
Path
hirarki package, didaftarkan sebagai salah satu nilai variabel lingkungan yang
bernama Classpath.
Classpath
diset dengan aturan : berawal dari drive (C:\ atau D:\) sampai dengan satu
tingkat sebelum kita mendeklarasikan package.
mohon maaf bila ada kekurangannya terimakasih.
Referensi yang saya dapatkan dibawah ini:
















Tidak ada komentar:
Posting Komentar