SlideShare a Scribd company logo
1 of 15
Download to read offline
Enkapsulasi 
Pemrograman 
Berorientasi Objek 
Georgius Rinaldo 
dodo@kuliahkita.com
Pendahuluan 
Maksud dari enkapsulasi adalah pembungkusan. 
Sama seperti kapsul obat. Obat dibungkus di dalam kapsul 
supaya tidak terurai dan rapi. Obat kapsul juga 
menyembunyikan isinya yang membuat kita tidak tahu 
apa isi di dalamnya. 
Begitu juga dengan enkapsulasi pada pemrograman 
berorientasi objek.
Enkapsulasi pada Pemrograman 
Tujuan enkapsulasi pada pemrograman adalah 
pembungkusan data teknis (atribut dan method) dari 
pengguna, bukan penyembunyian (information hiding). 
Data teknis ini dibungkus dalam sebuah unit yang telah 
dijelaskan sebelumnya yaitu kelas atau class. 
Jadi bisa dianalogikan bahwa data teknis adalah obat, dan 
kelas adalah kapsulnya sehingga menjadi rapi.
Enkapsulasi pada Pemrograman - 2 
Dengan enkapsulasi dalam sebuah kelas inilah yang 
membuat pemrograman berorientasi objek lebih fleksibel 
untuk memodelkan kasus nyata. 
Penggunaan kembali kelas-kelas menjadi lebih mudah 
dibanding dengan pendefinisian fungsi-fungsi di 
pemrograman berparadigma prosedural.
Enkapsulasi dan Penyembunyian Informasi 
Inti dari enkapsulasi adalah membungkus (bundling) data 
dan method, bukan menyembunyikan informasi. 
Enkapsulasi memang memfasilitasi penyembunyian 
informasi, tetapi tidak menjamin keamanan data. 
Penyembunyian informasi berusaha melindungi kelas klien 
(client class) dari kerja internal kelas, berbeda dengan 
makna enkapsulasi sebenarnya.
Konsep Enkapsulasi 
Dinbandingkan penyembunyian informasi, konsep ini lebih 
berhubungan dengan modularitas dan abstraksi. 
Setiap program yang baik memiliki abstraksi dan 
modularitas terhadap bagian-bagian tertentu pada kelas / 
objeknya.
Abstraksi 
Jika menganalogikan abstraksi dengan mobil, terdapat 
setir, pedal gas, rem, dll. Kita dapat menggunakannya, tapi 
kita tidak tahu tepatnya bagaimana komponen tersebut 
bekerja. Itulah abstraksi pada dunia nyata. 
Begitu juga program, terdapat sebuah kelas yang terdiri 
dari berbagai fungsi dan prosedur. Kita bisa memakainya, 
tetapi kita belum tentu bisa mengetahui cara kerja dari 
fungsi atau prosedur tersebut dengan berinteraksi dengan 
antarmuka saja (interface)
Contoh Abstraksi 
Contoh abstraksi paling sederhana adalah getter dan 
setter. Tujuannya masing-masing adalah untuk mengambil 
dan menetapkan nilai dari data pada sebuah objek. 
Contoh: 
Terdapat sebuah class Bola dengan atribut berat dan 
diameter. Maka terdapat 2 getter yaitu getBerat dan 
getDiameter. Begitu juga terdapat 2 setter yaitu setBerat 
dan setDiameter.
Modularity 
Modularity adalah sebuah konsep yang memisah-misah 
menjadi beberapa modul kecil dengan fungsi spesifiknya 
untuk mempermudah pemakaian kembali (reusability). 
Contoh: 
Pemisahan fungsi hitungLuas dengan hitungKeliling pada 
kelas BangunDatar.
Mengapa Enkapsulasi? 
Selain merapikan, Kita mencegah modifikasi data secara 
langsung, bukan penyembunyian datanya. 
Dalam kasus ini memang tetap membuat atribut dari data 
menjadi tidak dapat diakses dari luar (private), sehingga 
data tersembunyi dan hanya boleh diakses atau 
dimodifikasi oleh method pada kelas tersebut.
Mengapa Enkapsulasi? - 2 
Mengapa perlu perlindungan terhadap akses langsung? 
Asumsikan seperti ini: 
Kita punya 2 objek: objek “Jahat” dan objek “Akun”. Kita 
akan memanggil keduanya. Misalkan objek Akun memiliki 
atribut “saldo”. Jika atribut tidak dibuat privat (public), Kita 
dapat menggunakan objek jahat untuk memanipulasi data 
“saldo” pada objek Akun.
Mengapa Enkapsulasi? - 3 
Dengan metode ini, berarti objek Jahat hanya bisa 
memakai metode pada objek Akun untuk memanipulasi 
data. Misal objek Akun memiliki method “tambahSaldo” 
dan dipanggil oleh objek Jahat yang ingin memanipulasi 
dengan menambah saldo negatif sehingga berkurang. 
Objek Jahat Objek Akun 
-500000 
tambahSaldo() 
saldo = 1000000 
fungsiJahat() 
dataJahat
Mengapa Enkapsulasi? - 4 
Karena enkapsulasi, Objek Jahat memang tetap bisa 
mengirimkan nilai untuk melakukan “tambahSaldo” dari 
objek Akun, tetapi objek Jahat tidak tahu logika operasi 
metode tambahSaldo (abstraksi) bahwa jika saldo yang 
ditambah kurang dari 0, maka tidak akan dilakukan. 
Objek Jahat Objek Akun 
-500000 
tambahSaldo() 
saldo = 1000000 
fungsiJahat() 
dataJahat
Pesan (Message) 
Untuk berkomunikasi antara objek satu dengan lainnya, 
dikirimkan pesan. 
Pesan itu dikirimkan melalui metode yang ada pada 
sebuah objek atau ketika pembuatan sebuah objek.
Contoh Implementasi 
public class Hewan { // kelas yang terenkapsulasi baik 
private String nama; // data atribut di set privat 
private int umur; // data yang bersifat privat tidak bisa diakses sembarang dari luar 
public int getUmur() { // pembentukan getter dan setter merupakan bentuk abstraksi 
return umur; // terdapat getter untuk tiap data atribut 
} // getter ini untuk mengambil data dari kelas yang ada 
public String getNama() { 
return nama; 
} 
public void setUmur(int umurBaru) { // terdapat juga setter untuk tiap data atribut 
umur = umurBaru; 
} 
public void setNama(String namaBaru) { 
nama = namaBaru; 
} 
}

More Related Content

What's hot

Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Rakhmat Dedi Gunawan
 
Pewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAPewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAdyko ananta
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Melina Krisnawati
 
Modul basis data (database)
Modul basis data (database)Modul basis data (database)
Modul basis data (database)Deka M Wildan
 
10. model data relasional
10. model data relasional10. model data relasional
10. model data relasionalAbdur Rasyid
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)eka pandu cynthia
 
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada JavaPBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada JavaRUDISELAMAT2
 
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Windownadiapreviani
 
ARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAEDIS BLOG
 

What's hot (20)

Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)
 
[PBO] Pertemuan 5 - Inheritance
[PBO] Pertemuan 5 - Inheritance[PBO] Pertemuan 5 - Inheritance
[PBO] Pertemuan 5 - Inheritance
 
Pengantar database
Pengantar databasePengantar database
Pengantar database
 
[PBO] Pertemuan 6 - Abstrak
[PBO] Pertemuan 6 - Abstrak[PBO] Pertemuan 6 - Abstrak
[PBO] Pertemuan 6 - Abstrak
 
Pewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAPewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVA
 
Sistem bus komputer
Sistem bus komputerSistem bus komputer
Sistem bus komputer
 
Pertemuan 10
Pertemuan 10Pertemuan 10
Pertemuan 10
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
 
GoLang_1
GoLang_1GoLang_1
GoLang_1
 
Modul basis data (database)
Modul basis data (database)Modul basis data (database)
Modul basis data (database)
 
CLOUD COMPUTING
CLOUD COMPUTINGCLOUD COMPUTING
CLOUD COMPUTING
 
10. model data relasional
10. model data relasional10. model data relasional
10. model data relasional
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Class Diagram
Class DiagramClass Diagram
Class Diagram
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)
 
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada JavaPBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
 
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Window
 
ARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATAARSITEKTUR MODEL BASIS DATA
ARSITEKTUR MODEL BASIS DATA
 
Presentasi ERD
Presentasi ERDPresentasi ERD
Presentasi ERD
 
Arsitektur basis data
Arsitektur basis dataArsitektur basis data
Arsitektur basis data
 

Viewers also liked

Presentation1 florante at laura
Presentation1 florante at lauraPresentation1 florante at laura
Presentation1 florante at lauraShanwu Yu
 
KONSEP UMUM MEDIA PEMBELAJARAN
KONSEP UMUM MEDIA PEMBELAJARANKONSEP UMUM MEDIA PEMBELAJARAN
KONSEP UMUM MEDIA PEMBELAJARANvidyalfilannisa11
 
OOP - Pengenalan OOP
OOP - Pengenalan OOPOOP - Pengenalan OOP
OOP - Pengenalan OOPKuliahKita
 
Baiduthi thu truc (7)
Baiduthi thu truc (7)Baiduthi thu truc (7)
Baiduthi thu truc (7)Anh Đàm
 
2016入試ガイド
2016入試ガイド2016入試ガイド
2016入試ガイドnucbpr
 
丸の内小冊子
丸の内小冊子丸の内小冊子
丸の内小冊子nucbpr
 
OOP - Kelas dan Objek
OOP - Kelas dan ObjekOOP - Kelas dan Objek
OOP - Kelas dan ObjekKuliahKita
 
Burn injury prevention in kenya and the world kw 12052015
Burn injury prevention in kenya and the world   kw 12052015Burn injury prevention in kenya and the world   kw 12052015
Burn injury prevention in kenya and the world kw 12052015Kimani Wanjeri
 
Lambert hebrok soap-operas
Lambert hebrok soap-operasLambert hebrok soap-operas
Lambert hebrok soap-operasjessicajinadasa
 
Media Pembelajaran Bahasa Arab
Media Pembelajaran Bahasa ArabMedia Pembelajaran Bahasa Arab
Media Pembelajaran Bahasa Arabvidyalfilannisa11
 

Viewers also liked (12)

Presentation1 florante at laura
Presentation1 florante at lauraPresentation1 florante at laura
Presentation1 florante at laura
 
KONSEP UMUM MEDIA PEMBELAJARAN
KONSEP UMUM MEDIA PEMBELAJARANKONSEP UMUM MEDIA PEMBELAJARAN
KONSEP UMUM MEDIA PEMBELAJARAN
 
OOP - Pengenalan OOP
OOP - Pengenalan OOPOOP - Pengenalan OOP
OOP - Pengenalan OOP
 
Baiduthi thu truc (7)
Baiduthi thu truc (7)Baiduthi thu truc (7)
Baiduthi thu truc (7)
 
2016入試ガイド
2016入試ガイド2016入試ガイド
2016入試ガイド
 
Company Profile 2015
Company Profile 2015Company Profile 2015
Company Profile 2015
 
丸の内小冊子
丸の内小冊子丸の内小冊子
丸の内小冊子
 
OOP - Kelas dan Objek
OOP - Kelas dan ObjekOOP - Kelas dan Objek
OOP - Kelas dan Objek
 
Burn injury prevention in kenya and the world kw 12052015
Burn injury prevention in kenya and the world   kw 12052015Burn injury prevention in kenya and the world   kw 12052015
Burn injury prevention in kenya and the world kw 12052015
 
Lambert hebrok soap-operas
Lambert hebrok soap-operasLambert hebrok soap-operas
Lambert hebrok soap-operas
 
Mesjid Astra_Nov14
Mesjid Astra_Nov14Mesjid Astra_Nov14
Mesjid Astra_Nov14
 
Media Pembelajaran Bahasa Arab
Media Pembelajaran Bahasa ArabMedia Pembelajaran Bahasa Arab
Media Pembelajaran Bahasa Arab
 

Similar to 03 enkapsulasi

Similar to 03 enkapsulasi (20)

Pemodelan berorientasi objek
Pemodelan berorientasi objekPemodelan berorientasi objek
Pemodelan berorientasi objek
 
Analisis Sistem Informasi [Materi VI]
Analisis Sistem Informasi [Materi VI]Analisis Sistem Informasi [Materi VI]
Analisis Sistem Informasi [Materi VI]
 
Pemograman berorientasi obyek kelompok 6
Pemograman berorientasi obyek kelompok 6Pemograman berorientasi obyek kelompok 6
Pemograman berorientasi obyek kelompok 6
 
Pertemuan 6 Rekayasa Perangkat Lunak
Pertemuan 6 Rekayasa Perangkat LunakPertemuan 6 Rekayasa Perangkat Lunak
Pertemuan 6 Rekayasa Perangkat Lunak
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
Apsi 1
Apsi 1Apsi 1
Apsi 1
 
5475 1 review konsep pbo
5475 1 review konsep pbo5475 1 review konsep pbo
5475 1 review konsep pbo
 
APBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptxAPBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptx
 
Pengenalan Pemrogaman Berorientasi Obyek
Pengenalan Pemrogaman Berorientasi ObyekPengenalan Pemrogaman Berorientasi Obyek
Pengenalan Pemrogaman Berorientasi Obyek
 
Pengenalan OOP
Pengenalan OOPPengenalan OOP
Pengenalan OOP
 
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaJeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
 
10. konsep enkapsulasi
10. konsep enkapsulasi10. konsep enkapsulasi
10. konsep enkapsulasi
 
13216 3 enkapsulasi
13216 3 enkapsulasi13216 3 enkapsulasi
13216 3 enkapsulasi
 
28431 3 enkapsulasi
28431 3 enkapsulasi28431 3 enkapsulasi
28431 3 enkapsulasi
 
Materi delphi
Materi delphiMateri delphi
Materi delphi
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan Java
 
3. OOP Java
3. OOP Java3. OOP Java
3. OOP Java
 
Pengantar Pengembangan Sistem Berorientasi Objek.pptx
Pengantar Pengembangan Sistem Berorientasi Objek.pptxPengantar Pengembangan Sistem Berorientasi Objek.pptx
Pengantar Pengembangan Sistem Berorientasi Objek.pptx
 

03 enkapsulasi

  • 1. Enkapsulasi Pemrograman Berorientasi Objek Georgius Rinaldo dodo@kuliahkita.com
  • 2. Pendahuluan Maksud dari enkapsulasi adalah pembungkusan. Sama seperti kapsul obat. Obat dibungkus di dalam kapsul supaya tidak terurai dan rapi. Obat kapsul juga menyembunyikan isinya yang membuat kita tidak tahu apa isi di dalamnya. Begitu juga dengan enkapsulasi pada pemrograman berorientasi objek.
  • 3. Enkapsulasi pada Pemrograman Tujuan enkapsulasi pada pemrograman adalah pembungkusan data teknis (atribut dan method) dari pengguna, bukan penyembunyian (information hiding). Data teknis ini dibungkus dalam sebuah unit yang telah dijelaskan sebelumnya yaitu kelas atau class. Jadi bisa dianalogikan bahwa data teknis adalah obat, dan kelas adalah kapsulnya sehingga menjadi rapi.
  • 4. Enkapsulasi pada Pemrograman - 2 Dengan enkapsulasi dalam sebuah kelas inilah yang membuat pemrograman berorientasi objek lebih fleksibel untuk memodelkan kasus nyata. Penggunaan kembali kelas-kelas menjadi lebih mudah dibanding dengan pendefinisian fungsi-fungsi di pemrograman berparadigma prosedural.
  • 5. Enkapsulasi dan Penyembunyian Informasi Inti dari enkapsulasi adalah membungkus (bundling) data dan method, bukan menyembunyikan informasi. Enkapsulasi memang memfasilitasi penyembunyian informasi, tetapi tidak menjamin keamanan data. Penyembunyian informasi berusaha melindungi kelas klien (client class) dari kerja internal kelas, berbeda dengan makna enkapsulasi sebenarnya.
  • 6. Konsep Enkapsulasi Dinbandingkan penyembunyian informasi, konsep ini lebih berhubungan dengan modularitas dan abstraksi. Setiap program yang baik memiliki abstraksi dan modularitas terhadap bagian-bagian tertentu pada kelas / objeknya.
  • 7. Abstraksi Jika menganalogikan abstraksi dengan mobil, terdapat setir, pedal gas, rem, dll. Kita dapat menggunakannya, tapi kita tidak tahu tepatnya bagaimana komponen tersebut bekerja. Itulah abstraksi pada dunia nyata. Begitu juga program, terdapat sebuah kelas yang terdiri dari berbagai fungsi dan prosedur. Kita bisa memakainya, tetapi kita belum tentu bisa mengetahui cara kerja dari fungsi atau prosedur tersebut dengan berinteraksi dengan antarmuka saja (interface)
  • 8. Contoh Abstraksi Contoh abstraksi paling sederhana adalah getter dan setter. Tujuannya masing-masing adalah untuk mengambil dan menetapkan nilai dari data pada sebuah objek. Contoh: Terdapat sebuah class Bola dengan atribut berat dan diameter. Maka terdapat 2 getter yaitu getBerat dan getDiameter. Begitu juga terdapat 2 setter yaitu setBerat dan setDiameter.
  • 9. Modularity Modularity adalah sebuah konsep yang memisah-misah menjadi beberapa modul kecil dengan fungsi spesifiknya untuk mempermudah pemakaian kembali (reusability). Contoh: Pemisahan fungsi hitungLuas dengan hitungKeliling pada kelas BangunDatar.
  • 10. Mengapa Enkapsulasi? Selain merapikan, Kita mencegah modifikasi data secara langsung, bukan penyembunyian datanya. Dalam kasus ini memang tetap membuat atribut dari data menjadi tidak dapat diakses dari luar (private), sehingga data tersembunyi dan hanya boleh diakses atau dimodifikasi oleh method pada kelas tersebut.
  • 11. Mengapa Enkapsulasi? - 2 Mengapa perlu perlindungan terhadap akses langsung? Asumsikan seperti ini: Kita punya 2 objek: objek “Jahat” dan objek “Akun”. Kita akan memanggil keduanya. Misalkan objek Akun memiliki atribut “saldo”. Jika atribut tidak dibuat privat (public), Kita dapat menggunakan objek jahat untuk memanipulasi data “saldo” pada objek Akun.
  • 12. Mengapa Enkapsulasi? - 3 Dengan metode ini, berarti objek Jahat hanya bisa memakai metode pada objek Akun untuk memanipulasi data. Misal objek Akun memiliki method “tambahSaldo” dan dipanggil oleh objek Jahat yang ingin memanipulasi dengan menambah saldo negatif sehingga berkurang. Objek Jahat Objek Akun -500000 tambahSaldo() saldo = 1000000 fungsiJahat() dataJahat
  • 13. Mengapa Enkapsulasi? - 4 Karena enkapsulasi, Objek Jahat memang tetap bisa mengirimkan nilai untuk melakukan “tambahSaldo” dari objek Akun, tetapi objek Jahat tidak tahu logika operasi metode tambahSaldo (abstraksi) bahwa jika saldo yang ditambah kurang dari 0, maka tidak akan dilakukan. Objek Jahat Objek Akun -500000 tambahSaldo() saldo = 1000000 fungsiJahat() dataJahat
  • 14. Pesan (Message) Untuk berkomunikasi antara objek satu dengan lainnya, dikirimkan pesan. Pesan itu dikirimkan melalui metode yang ada pada sebuah objek atau ketika pembuatan sebuah objek.
  • 15. Contoh Implementasi public class Hewan { // kelas yang terenkapsulasi baik private String nama; // data atribut di set privat private int umur; // data yang bersifat privat tidak bisa diakses sembarang dari luar public int getUmur() { // pembentukan getter dan setter merupakan bentuk abstraksi return umur; // terdapat getter untuk tiap data atribut } // getter ini untuk mengambil data dari kelas yang ada public String getNama() { return nama; } public void setUmur(int umurBaru) { // terdapat juga setter untuk tiap data atribut umur = umurBaru; } public void setNama(String namaBaru) { nama = namaBaru; } }