Encapsulation

Encapsulation adalah salah satu prinsip dasar dalam Object Oriented Programming (OOP) yang bertujuan untuk membungkus data dalam satu unit.

Software Engineering

Mau Belajar

Software Engineering

GRATIS?

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!

IKUT KURSUS GRATIS

Mau Belajar

Software Engineering

GRATIS?

Apa itu Encapsulation?

encapsulation adalah

Encapsulation adalah salah satu prinsip dasar dalam Object Oriented Programming (OOP) yang bertujuan untuk membungkus data dalam satu unit.

Tujuan utama encapsulation adalah untuk menyembunyikan detail internal implementasi objek dari dunia luar dan menyediakan interface yang dapat berinteraksi dengan objek tersebut.

Enkapsulasi dapat dilakukan dengan mendeklarasikan semua variabel di suatu unit (kelas) sebagai privat dan menulis metode publik di dalam kelas tersebut untuk mengatur dan mendapatkan nilai variabel.

Manfaat Encapsulation

Melansir dari geeksforgeeks.org, berikut ini adalah manfaat encapsulation

Menyembunyikan data

Encapsulation dapat menyembunyikan detail implementasi internal suatu kelas. Hal ini berarti bahwa pengguna kelas tidak perlu mengetahui bagaimana data disimpan dalam variabelnya. Sebaliknya, pengguna berinteraksi dengan kelas melalui metode publik yang dirancang dengan baik, seperti setter dan getter. Dengan demikian, keamanan dapat meningkat dan mencegah manipulasi langsung terhadap data sensitif. 

Meningkatkan fleksibilitas

Dengan enkapsulasi, programmer dapat mengontrol akses ke elemen pada kelas dan menyesuaikan tingkat visibilitas sesuai dengan kebutuhan. Hal ini memungkinkan mereka untuk membuat kelas yang menerapkan aturan khusus untuk mengakses dan memodifikasi data.

Dapat digunakan kembali

Encapsulation mendukung penggunaan kembali karena detail implementasi internal suatu kelas disembunyikan dari entitas eksternal. Saat kelas yang dienkapsulasi digunakan di berbagai bagian program atau di proyek lain, perubahan pada penerapan kelas kemungkinan besar tidak akan memengaruhi basis kode lainnya. 

Mudah menguji kode

Kode yang dienkapsulasi mudah untuk diuji, terutama selama pengujian unit. Karena kelas memiliki interface yang jelas, fungsionalitas setiap metode dapat diuji secara terpisah dengan lebih mudah. 

Memberi kebebasan bagi programmer 

Enkapsulasi memberdayakan programmer dengan memberikan kebebasan untuk mengubah detail implementasi internal suatu kelas tanpa memengaruhi interface eksternal yang digunakan oleh bagian lain dari program. 

Sebagai contoh, seorang GUI programmer awalnya mengimplementasikan operasi cut-and-paste menggunakan gambar layar. Kemudian, jika dia ingin beralih ke sistem penyimpanan berbasis teks yang lebih efisien, dia dapat menggunakan enkapsulasi untuk memastikan bahwa kode lain yang berinteraksi dengan GUI tidak akan terpengaruh. 

Kekurangan Encapsulation

Kekurangan encapsulation menurut logicmojo.com yaitu: 

Ukuran kode meningkat

Enkapsulasi dapat menyebabkan peningkatan ukuran kode karena kebutuhan akan metode tambahan dengan access modifier. Sebagai akibatnya, file sumber menjadi lebih besar dan  basis kode lebih kompleks serta berpotensi lebih sulit untuk dikelola.

Lebih banyak instruksi 

Karena enkapsulasi menggunakan lebih banyak metode untuk mengakses dan memodifikasi elemen data, instruksi tambahan diperlukan dalam kode. Hal ini dapat meningkatkan kerumitan karena setiap metode memerlukan rangkaian instruksinya sendiri.

Waktu eksekusi lebih lama

Instruksi yang ditambahkan karena enkapsulasi dapat menghasilkan waktu eksekusi yang lebih lama untuk suatu program, yang berpotensi memengaruhi kinerja dalam beberapa kasus.

Contoh Encapsulation

Di bawah ini adalah contoh sederhana encapsulation: 

contoh encapsulation

Contoh ini mendemonstrasikan enkapsulasi di Java menggunakan kelas Person. 

Kelas Person memiliki nama dan umur sebagai data pribadi, yang tidak dapat diakses langsung dari luar kelas. Sebagai gantinya, metode getter dan setter publik (getName(), setName(), getAge(), dan setAge()) digunakan untuk berinteraksi dengan data pribadi.

Di kelas Main, turunan dari Person dibuat, dan nama serta usia diatur menggunakan metode setter. Kemudian, metode setter digunakan untuk memperoleh dan mencetak nama dan umur objek Person.

Singkatnya, contoh ini menunjukkan bagaimana enkapsulasi memungkinkan akses yang terkontrol ke data pribadi kelas Person, menyembunyikan data, dan menyediakan interface yang baik untuk berinteraksi dengan objek.  

FAQ (Frequently Asked Question)

Bagaimana proses encapsulation?

Proses enkapsulasi terdiri dari langkah-langkah berikut:

  • Identifikasi data dan fungsi yang perlu dienkapsulasi. Pada langkah ini, programmer perlu memahami masalah yang ingin diselesaikan, data yang perlu disimpan, dan fungsi yang perlu dilakukan.
  • Buat kelas untuk mengenkapsulasi data dan fungsi. Kelas harus memiliki bagian privat untuk menyimpan data dan bagian publik untuk menampilkan fungsi.
  • Deklarasikan anggota data sebagai private. Hal ini akan mencegah kode lain mengakses data anggota secara langsung.
  • Buat metode publik untuk mengakses dan memodifikasi anggota data. Metode ini harus digunakan untuk melindungi data dari akses dan modifikasi yang tidak sah.

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:
Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Kata kunci lainnya

Mulai karirmu dalam

Software Engineering

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!
ikut kursus gratis
Menu