Konsep enkapsulasi memiliki dua hal utama, yaitu data hiding dan method abstraction. Data hiding berarti bahwa data dalam sebuah objek tidak dapat diakses atau dimodifikasi secara langsung dari luar objek. Hal ini dilakukan dengan memberikan akses yang terbatas atau melalui method-method tertentu yang didefinisikan dalam kelas. Dengan cara ini, data yang ada dalam objek tetap aman dan terlindungi dari perubahan yang tidak diinginkan.
Sedangkan method abstraction berarti bahwa hanya method-method tertentu yang dapat digunakan untuk mengakses atau memanipulasi data yang terdapat dalam kelas tersebut. Dalam hal ini, method-method tersebut disebut sebagai method publik dan hanya mereka yang dapat diakses dari luar kelas. Sedangkan method-method lain yang digunakan dalam kelas itu sendiri disebut method privat dan hanya dapat diakses dari dalam kelas tersebut.
Konsep enkapsulasi sangat penting dalam pemrograman berorientasi objek karena dapat membantu menghindari masalah yang dapat terjadi jika data tidak terlindungi dan dapat diakses secara langsung oleh program yang menggunakan kelas tersebut. Dengan demikian, enkapsulasi membantu meningkatkan keamanan dan kemudahan pemeliharaan kode, serta meningkatkan fleksibilitas dan skalabilitas program.
Sebagai contoh kita akan membuat kelas bernama "Person" yang memiliki dua atribut, yaitu "name" dan "age", dan dua method yaitu "setName()" dan "setAge()" yang digunakan untuk mengatur nilai dari atribut "name" dan "age".
public class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Pada kode di atas, kita menggunakan kata kunci "private" untuk mendefinisikan atribut "name" dan "age" agar hanya dapat diakses dari dalam kelas "Person". Kemudian kita mendefinisikan dua method publik "setName()" dan "setAge()" yang digunakan untuk mengatur nilai dari atribut "name" dan "age" dan dua method publik "getName()" dan "getAge()" yang digunakan untuk mengembalikan nilai dari atribut "name" dan "age".
Dalam hal ini, penggunaan enkapsulasi memastikan bahwa atribut "name" dan "age" tidak dapat diakses langsung dari luar kelas "Person". Sebagai gantinya, kita harus menggunakan method "setName()" dan "setAge()" untuk mengatur nilai dari atribut tersebut dan method "getName()" dan "getAge()" untuk mengambil nilai dari atribut tersebut.
Berikut adalah contoh penggunaan kelas "Person" yang telah kita buat di atas:
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setName("John");
person.setAge(25);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
}
Pada kode di atas, kita membuat sebuah objek "person" dari kelas "Person". Kemudian kita menggunakan method "setName()" dan "setAge()" untuk mengatur nilai dari atribut "name" dan "age" pada objek "person". Terakhir, kita menggunakan method "getName()" dan "getAge()" untuk mengambil nilai dari atribut tersebut dan menampilkannya di layar.
Â
pertamax