Artikel Terbaru

2 Contoh Penggunaan Properti Cookie DOM pada HTML

Hampir setiap website selalu menggunakan cookies pada setiap komputer user untuk mengenali dan menjaga pola atau rute dari suatu referensinya. Properti DOM cookies diatur untuk mendapatkan semua nilai atau key yang cocok terhadap cookies yang berasosiasi dengan dokumen saat ini.

Enkapsulasi pada Java

Enkapsulasi didefinisikan sebagai pembungkusan data dalam satu buah unit. Enkapsulasi adalah mekanisme yang mengikat code program dan data yang dimanipulasi secara bersamaan pada bahasa pemrograman Java. Cara lain untuk berpikir mengenai enkapsulasi adalah upaya untuk melindungi atau sebagai perisai proteksi yang mencegah data untuk diakses oleh pihak luar.

  • 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;}

}


Pada program sebelumnya class EncaplulateDemo dienkapsulasi sebagai variabel yang dideklarasikan private. Method getAge(), getName(), getRoll() diatur sebagai tipe public, method ini digunakan untuk mengakses variabel yang telah dienkapsulasi. Method setter seperti setName(), setAge(), setRoll() juga dideklrasikan sebagai public dan digunakan untuk mengatur nilai dari variabel.

Program yang digunakan untuk mengakses variabel dari class EncapsulateDemo diperlihatkan sebagai berikut:

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); */  

}

 

}

Output:
ID Nama: Sulaiman
ID Usia: 19
ID Roll: 51

Keunggulan dari enkapsulasi:
  • satu, 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.
  • dua, 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.
  • tiga, Reusability: enkapsulasi juga meningkatkan reusability dan kemudahan perubahan menggunakan new requirement.
  • empat, Kemudahan pengujian kode program: enkapsulasi kode memudahkan proses pengetesan program untuk unit-unit programnya masing-masing.

Komentar

  1. Apa yang dimaksud dengan konsep pembungkungan secara sederhana, pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Enkapsulasi 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.

      Hapus
  2. Apa manfaat atau keunggulan dari mekanisme enkapsulasi secara umum pada bahasa pemrograman atau Java?

    BalasHapus
    Balasan
    1. 1. Enkapsulasi melindungi object dari akses yang tidak diinginkan oleh klien.
      2. 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.

      Hapus
  3. Apakah enkapsulasi dan data hiding atau penyembunyian data adalah dua konsep yang sama?

    BalasHapus
    Balasan
    1. Enkapsulasi 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.

      Jawabannya adalah berbeda.

      Hapus
    2. 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.

      Sedangkan hiding atau hidden, atau menyembunyikan tujuannya berbeda dengan melindungi, karena lebih pada menyimpanan supaya data tersebut tidak terlihat.

      Hapus
  4. Saya cuma ingin tahu, apa yang akan terjadi jika kita mengubah tipe private menjadi tipe public?

    Disi 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);
    }
    }

    BalasHapus
    Balasan
    1. 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:

      private 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.

      Hapus
    2. 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.

      Hapus
  5. Abstraksi 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.

    Sedangkan 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.

    BalasHapus
  6. Tak kira enkapsulasi pada Java itu adalah data-binding, sedangakan abstraksi pada Java adalah data-hiding.

    BalasHapus
  7. 1.Apa yang dimaksud dengan konsep enkapsulasi!Jelaskan!

    2.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🥺🙏

    BalasHapus
    Balasan
    1. Jawab:
      1. 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.

      Hapus
    2. Saya tebak, kamu berangkat kuliahnya pasti naik UFO kan? trus pas kuliahnya wajib berdasi kan?

      Hapus
    3. wkwkwkwkkkk... tempat kuliahnya orang-orang berdasi

      Hapus
  8. 1.Apakah yang dimaksud dengan konsep inheritas pada PBO!

    2.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😭🙏

    BalasHapus
    Balasan
    1. 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.

      Hapus
    2. no 2. Kelas yang mewariskan sifatnya ke class lain disebut superclass (juga kelas dasar atau kelas induk), sedangkan turunannya disebut subclass.

      Hapus
    3. 6. 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.

      Hapus
    4. no 7. acces modifier-nya apa, posisinya classnya dimana, object apa saja yang terdapat dalam superclass tersebut, dan lain sebagainya.

      Hapus
    5. no 8. dapat memperingkat atau mengefisienkan proses penulisan kode program.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Perbedaan stdio.h dan stdlib.h pada Bahasa C

Perbedaan Antara int main() dan int main(void) pada Bahasa C

3 Jenis Utama Looping pada Java

Penjelasan Singkat tentang Konsep Asosiasi, Komposisi, dan Agregasi pada Java

2 Jenis Utama Kegiatan Penelitian Berdasarkan Waktunya, Crosssectional Salah Satunya