Enkapsulasi Java dan Fungsinya
Pengertian Enkapsulasi Java
- Secara teknis enkapsulasi menyembunyikan data atau variabel dari class lain dan hanya dapat diakses oleh anggota fungsi dari class itu sendiri yang telah dideklarasikan.
- Pada enkapsulasi, data dalam class tersembunyi dari class lainnya, yang juga dikenal dengan istilah data-hiding.
- Enkapsulasi dapat dilakukan dengan cara pendeklarasian semua variabel dalam class sebagai private dan menuliskan method public pada class untuk mengatur dan mendapatkan nilai dari variabel yang tersimpan secara private tersebut.
// Program java untuk
// mendemonstrasikan
// enkapsulasi.
public class Encapsulate
{
// Deklarasi variabel private
// Hanya dapat diakses oleh
// public method dari class.
private String idName;
private int idRoll;
private int idAge;
// Method get age untuk
// mengakses variabel private
// idAge.
public int getAge()
{return idAge;}
// Method get name untuk
// mengakses variabel private
// idName.
public String getName()
{return idName;}
// Method get roll untuk
// mengakses variabel private
// isRoll.
public int getRoll()
{return idRoll;}
// Method set age untuk
// mengakses variabel private
// idAge.
public void setAge( int newAge)
{idAge = newAge;}
// Method set name untuk
// mengakses variabel private
// idName.
public void setName(String newName)
{idName = newName;}
// Method set foll untuk
// mengakses variabel private
// idRoll.
public void setRoll( int newRoll)
{idRoll = newRoll;}
}
public class TestEncapsulation
{
public static void main (String[] args)
{
Encapsulate obj = new Encapsulate();
/* atur nilai dari variabel */
obj.setName("Sulaiman");
obj.setAge(19);
obj.setRoll(51);
/* menampilkan nilai dari variabel */
System.out.println("ID Nama: "
+ obj.getName());
System.out.println("ID Usia: "
+ obj.getAge());
System.out.println("ID Roll: "
+ obj.getRoll());
// Mengakses nilai secara
// langsung ke variabel adalah
// tidak mungkin dalam
// enkapsulasi.
/* System.out.println("ID Roll: " + obj.idName); */
}
}
ID Usia: 19
ID Roll: 51
public class Mobil {
private String merek;
public String getMerek()
{return merek;}
public void setMerek(String merek)
{this.merek = merek;}
}
public class PenggunaMobil {
public static void
main(String[] args)
{
Mobil mobil = new Mobil();
mobil.setMerek("Toyota");
// Pengguna tidak perlu
// mengetahui detail
// implementasi
System.out.println("Merek Mobil: "
+ mobil.getMerek());}}
public class Mahasiswa {
private int usia;
public int getUsia()
{return usia;}
public void setUsia(int usia)
{
if (usia > 0)
{this.usia = usia;}
else
{System.out.println("Usia harus lebih dari 0.");}
}}
public class RekeningBank {
private double saldo;
// Metode akses yang
// memvalidasi setiap
// transaksi
public void setSaldo
(double saldo)
{
if (saldo >= 0)
{this.saldo = saldo;}
else
{
System.out.println("Saldo tidak valid.");}
}
public double getSaldo()
{return saldo;}
}
- Menjadikan atribut private.
- Menyediakan metode akses (getter) untuk membaca nilai atribut.
- Menyediakan metode mutator (setter) untuk mengubah nilai atribut, dengan menerapkan validasi jika diperlukan.
public class ContohEnkapsulasi
{private int data;
// Metode akses untuk
// membaca nilai atribut
public int getData()
{return data;}
// Metode mutator untuk
// mengubah nilai atribut
public void setData(int newData)
{
if (newData > 0)
{data = newData;}
else
{System.out.println("Data harus lebih dari 0.");}
}}
- Data tersembunyi (data hiding): pengguna tidak mengetahui implementasi dasar dari class. Tidak mungkin bagi user untuk melihat nilai dari data yang disimpan pada variabel dalam class. Hal yang diketahui oleh user adalah nilai telah diatur melalui setter method dan variabel telah diinisialisasi dengan nilai tertentu.
- Meningkatkan fleksibilitas: programmer dapat membuat variabel dari class sebagai read-only atau write-only tergantung pada kebutuhan. Jika variabel dibuat dalam bentuk read-only maka method setter seperti setName(), setAge(), dan lain sebagainya harus dihilangkan. Pada contoh program sebelumnya jika ingin membuat program yang hanya bersifat write-only maka method getName(), getAge(), dan lain sebagainya harus dihilangkan.
- Reusability: enkapsulasi juga meningkatkan reusability dan kemudahan perubahan menggunakan new requirement.
- Kemudahan pengujian kode program: enkapsulasi kode memudahkan proses pengetesan program untuk unit-unit programnya masing-masing.
Kesimpulan:
- Acces Modifier Java dan Fungsinya
- Menggunakan THIS Java dan Fungsinya
- Cara Menggunakan Method Overloading Java dan Fungsinya
- Cara Membuat Program Overriding Java dan Fungsinya
- Cara Menggunakan Overriding Java dan Fungsinya
- Cara Menggunakan Overloading Java dan Fungsinya
- PUBLIC STATIC VOID MAIN Java dan Fungsinya
22 komentar untuk "Enkapsulasi Java dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan konsep pembungkungan secara sederhana, pada bahasa pemrograman Java?
BalasHapusEnkapsulasi pada Java merupakan suatu mekanisme pembungkus data atau variabel dan kode program, yang bekerja pada level data atau method secara bersama-sama sebagai satu kesatuan. Dalam enkapsulasi, class variabel akan disembunyikan dari class lainnya, dan hanya dapat diakses melalui method class yang digunakan saat ini.
HapusApa manfaat atau keunggulan dari mekanisme enkapsulasi secara umum pada bahasa pemrograman atau Java?
BalasHapus1. Enkapsulasi melindungi object dari akses yang tidak diinginkan oleh klien.
Hapus2. Enkapsulasi memungkinkan akses ke level tertentu tanpa mengungkapkan detail atau kompleks dari dalam level tersebut.
3. Mengurangi human error.
4. Menyerderhanakan pemeriharaan aplikasi atau program.
5. Membuat aplikasi yang dibuat menjadi lebih mudah untuk dipahami.
Apakah enkapsulasi dan data hiding atau penyembunyian data adalah dua konsep yang sama?
BalasHapusEnkapsulasi adalah suatu konsep atau mekanisme untuk melakukan pembungkusan data guna menyembunyikan komplesitas data yang terdapat didalamnya. Makna menyembunyikan data pada enkapsulasi adalah berfokus pada pembatasan akses atau izin penggunaan data yang terdapat didalam kapsul tersebut. Sedangkan data hiding atau penyembunyian data adalah suatu konsep yang selalu bersifat private atau tidak dapat diakses oleh pihak manapun diluar dari otoritas yang ditentukan.
HapusJawabannya adalah berbeda.
Ibarat kapsul pada obat yang digunakan untuk mebungkus isi obat yang berbentuk bubuk, yang digunakan sebagai perlindungan begitu pula pada konsep enkapsulasi pada program Java.
HapusSedangkan hiding atau hidden, atau menyembunyikan tujuannya berbeda dengan melindungi, karena lebih pada menyimpanan supaya data tersebut tidak terlihat.
Saya cuma ingin tahu, apa yang akan terjadi jika kita mengubah tipe private menjadi tipe public?
BalasHapusDisi saya juga bicara tentang data hiding, jika tipe nya juga diubah menjadi public, dan kode programnya dijakankan maka maksud dari tipe private itu apa?
public class Encap {
private int age;
public String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
Encap e1 = new Encap();
//e1.setName("Rohit");
e1.name="Rohit";
e1.setAge(25);
System.out.println(e1.name + " " + e1.age);
}
}
Coba mabil contoh pada password filed. Pada aplikasi realtime, password tidak pernah dibuat dalam tipe plain teks atau teks biaya (yang terlihat). Kita mungkin mendapatkan password dari form input sebagai teks biaya atau plain teks, namun setelah masuk ke class bean, maka kata tersebut akan dimanipulasi dan diberikan akses getter hanya ke password yang terenkripsi saja. Secara sederhana, diperlihatkan seperti contoh kode program berikut:
Hapusprivate String password;
private void setPassword(String password){
this.password=encryptPassword(password);
}
private String getPassword(){
return password;
}
Disini tidak diperlihatkan akses ke password, yang telah disetting dari form login masukkan oleh user.
Kebanyakan user tidak menggukan 'logic business' pada setter dan getter dalam aplikasi, karena hal ini dapat memberikan kebingungan.
Tetapi sebelum data tersebut disimpan ke bean itu sendiri, maka akan dilakukan validasi form telebih dahulu, guna memastikan enkapsulasi data tela tercapai dengan benar.
Tipe private tidak akan memberikan izin untuk akses langsung ke variabel dari fungsi main(), yang artinya user tidak dapat mengakses melalui System.out.println("Usia Ayah =" obj.age) seperti yang ditetapkan. Dimana hal ini bukanlah cara yang tepat untuk mengakses object tersebut. Sebaliknya, untuk dapat mengakses object tersebut dapat dilakukan dengan menggunakan getter.
HapusAbstraksi atau abstract adalah cara yang dapat digunakan untuk melakukan komunikasi data secara umum pada Java. Semakin tinggi tingkat abstraksi pada program, maka akan semakin umum jadinya program tersebut. Inilah sebabnya mengapa tingkat abstraksi yang tepat diperlukan antar object pada Java. Disinilah class abstrak pada Java berperan dalam membantu program dengan prose abstraksi. Interface umumnya bersifat lebih abstract daripada implement-nya. Inilah alasan kenapa dua komponen interface yang saling berkomunikasi lebih mudah dilakukan pengubah dan perluasan.
BalasHapusSedangkan disisi lain makna enkapsulasi pada Java memberikan pengertian tentang penyembunyian detail internal. Kenapa demikian? Karena hal tersebut memungkinkan user untuk melakukan perubahan internal oleh suatu objet tanpa memengaruhi klien external. Misal, jika sebuah object dari luar tidak dapat mengetahui bagaimana cara kerja sebuah kendaraan atau mobil dapat berjalan, maka mekanik tidak dapat melakukan perubahan pada kecepatannya. tetapi jika dapat diketahui cara kerjanya secara eksternal, maka otomatis dapat dilakukan perubahan pada kecepatan mobil tersebut oleh mekanik manapun, dan bisa jadi yang melakukan perubahan kecepatan tersebut adalah 'oknum' yang tidak bertanggung jawab yang dapat membahayakan keselamatan seorang penumpang, oleh karena itulah tidak setiap bagian kerja mobil dapat diketahui secara langsung oleh seorang mekanik, dimana konsep ini adalah sama seperti konsep enkapsulasi pada Java.
Tak kira enkapsulasi pada Java itu adalah data-binding, sedangakan abstraksi pada Java adalah data-hiding.
BalasHapus1.Apa yang dimaksud dengan konsep enkapsulasi!Jelaskan!
BalasHapus2.Apa tujuan dari penerapan konsep enkapsulasi!Jelaskan!
3.Mengapa kelas yang kita buat harus diatur mana yang boleh dan tidak boleh diakses oleh kelas lain!
4.Sebutkan dan Jelaskan empat jenis access modifier yang disediakan oleh Java!
5.Tulis contoh kode program yang menggunakan keempat access modifier pada soal nomer 4!
6.Kapan variabel atau method kita atur sebagai private atau public! Jelaskan?
Kak tolong batu jawab semoga aja balas nya cepat hari ini soalnya harus dikumpulkan hari ini kak🥺🙏
Jawab:
Hapus1. konsep enkapsulasi = konsep pengkapsulan, atau penguncian, atau pembatasan terhadap akses kode program yang dibuat.
2. Tujuan dari konsep enkapsulasi adalah untuk membatasi akses terhadap kode program oleh pihak lain yang tidak memiliki kepentingan untuk mengakses kode program tersebut.
3. Supaya manajemen kode programnya baik, dan menghindari akses yang tidak perlu dari pihak lain yang tidak berkepentingan.
4. skip, cari sendiri...
5. skip,, cari sendiri... contohnya banyak di google.
6. Ketika method kode program hanya terbatas pada beberapa pihak, maka method tersebut dapat diatur dalam tipe private, sedangkan jika method kode program dapat diakses oleh method apapun secara umum maka dapat diatur dalam tipi public.
Saya tebak, kamu berangkat kuliahnya pasti naik UFO kan? trus pas kuliahnya wajib berdasi kan?
Hapuswkwkwkwkkkk... tempat kuliahnya orang-orang berdasi
Hapus1.Apakah yang dimaksud dengan konsep inheritas pada PBO!
BalasHapus2.Apakah yang dimaksud dengan superkelas dan subkelas!
3.Buatlah diagram superkelas dan subkelas dari kelas mobil, kelas sepeda motor dan kelas kendaraan!
4.Buatlah deklarasi pada soal nomor 3 agar terihat konsep inheritasi!
5.Apa medifier yang digunakan agar data dan variabel superkelas dapat diakses oleh subkelas!
6.Apa syarat untuk menerapkan konsep inheritas!
7.Apa yang harus diperhatikan untuk bisa mengakses variabel dan method yang dimiliki superkelas!
8.Apa kelebihan konsep inheritas! Jawab dengan penjelasan yang ringkas dan tepat!
Kak mohon maaf jika mengganggu waktunya,tolong bantu jawab dong kak ini mau dikumpulin nanti pagi kak😭🙏
no 1. mungkin yang dimaksud adalah inheritance bukan inheritas, inheritance itu adalah 'konsep pewarisan sifat' yang terdapat pada paradigma pemrograman berorientasi objek. pewarisan sifat pada dasarnya cuma pemaknaan sederhanaan dari konsep akses kode program yang terdapat pada suatu class, oleh class program lainnya, baik dalam satu file atau dari file lain yang berbeda.
Hapusno 2. Kelas yang mewariskan sifatnya ke class lain disebut superclass (juga kelas dasar atau kelas induk), sedangkan turunannya disebut subclass.
Hapus6. syarat menerapkan konsep inheritance adalah, adanya object-object yang memiliki ciri khas tertentu yang dapat diwariskan ke class lain, atau dapat diakses oleh class lain secara terbatas, atau melalui prosedur tertentu.
Hapusno 7. acces modifier-nya apa, posisinya classnya dimana, object apa saja yang terdapat dalam superclass tersebut, dan lain sebagainya.
Hapusno 8. dapat memperingkat atau mengefisienkan proses penulisan kode program.
Hapus