
Apa itu enkapsulasi? Seperti apa konsep dan contoh enkapsulasi pada C++? Apa tujuan dari penerapan enkapsulasi?
Enkapsulasi adalah pengelompokkan data dengan logika. Pada bahasa pemrograman objek seperti C++, class mengenkapsulasi atau mengelompokkan data dengan logika. Data adalah variabel atau atribut yang menyimpan data, sedangkan logika adalah method yang memproses data.
Method yang ada pada class harus dihapus jika method tersebut tidak membutuhkan akses data yang ada di class, dan tidak memproses data yang ada di class. Hal ini dikarenakan method tersebut tidak berguna.
Method yang ada di class harus memproses data, jika tidak, maka method tersebut hanya memenuhi class dan tidak berguna bagi proses pengelolaan data. Class akan lebih rapi dan bersih jika hanya berisi method yang berguna. Contoh method yang berguna di class yaitu, method yang berfungsi untuk memberikan nilai pada variabel atribut, mengubah nilai dari variabel atribut, dan mengakses nilai dari variabel atribut.
Konsep enkapsulasi menjaga proses suatu program dari perubahan tidak sengaja yang tidak diinginkan oleh program lainnya. Pada enkapsulasi, semua variabel/atribut yang ada di class sebisa mungkin memiliki access modifier private agar data yang disimpan di variabel/atribut tidak dapat diakses atau diubah oleh objek ataupun class lain. Kode program yang berada di luar class atau berada di class lain, tidak dapat mengakses variabel/atribut dari class.
Lalu bagaimana jika ada sebuah objek atau class lain yang membutuhkan akses pada data class? Objek dan class lain tidak dapat melihat bagaimana program dari class memproses data. Objek maupun class lain hanya bisa mengakses data class secara tidak langsung melalui pemanggilan fungsi/method yang ada di class. Ingat, hanya fungsi/method yang boleh memproses data class secara langsung pada class yang dienkapsulasi.
Method seperti sebuah kotak berwarna hitam yang mengelola data untuk disimpan ataupun disajikan di luar class. Tentunya, ada method yang membutuhkan input. Misalnya method yang memberikan nilai pada variabel/atribut. Ada juga method yang tidak membutuhkan input tapi mengeluarkan output. Misalnya method yang mengembalikan nilai dari variabel/atribut. Ada juga method yang membutuhkan input dan mengeluarkan output. Misalnya method yang mengembalikan nilai variabel/atribut berdasarkan input yang dimasukkan ke dalam method.

Method yang biasanya selalu ada di class terenkapsulasi adalah getter dan setter. Getter adalah method untuk mengembalikan nilai dari variabel/atribut. Setter adalah method yang mengambil nilai input untuk dipasangkan ke variabel/atribut sehingga nilai input tersebut menjadi nilai dari variabel/atribut. Seperti apa method getter dan setter di C++? Berikut ini method contoh method getter dan setter di C++:
Setelah melihat dan mengobsevasi method getter dan setter, selanjutnya kita akan melihat contoh kode dari konsep enkapsulasi pada C++. Berikut ini contoh kode dari konsep enkapsulasi di C++:
Enkapsulasi membuat data di class terkontrol lebih baik. Data – data privat disembunyikan dari class dan objek lain. Ketika kita mengubah proses di class tersebut, proses class lain tidak terpengaruh karena class lain tidak mengetahui dan terlibat dalam pemrosesan data di class. Selain itu, data di class lebih aman karena class lain tidak dapat ikut memproses atau mengakses data secara langsung. Sehingga tidak ada data berubah karena tidak sengaja diubah oleh kode class lain. Data – data private disembunyikan dari objek/class lain.
Baca juga: Tips Selalu Produktif dan Disiplin
Sekian, terimakasih, dan semoga bermanfaat:)