SlideShare a Scribd company logo
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

Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
Siti Khotijah
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionSiska Amelia
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
Kelinci Coklat
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
Fahrul Usman
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Asnita Meydelia C K
 
[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)
rizki adam kurniawan
 
Pertemuan 1 konsep dasar pemrograman berorientasi objek
Pertemuan 1 konsep dasar pemrograman berorientasi objekPertemuan 1 konsep dasar pemrograman berorientasi objek
Pertemuan 1 konsep dasar pemrograman berorientasi objek
I Putu Arya Dharmaadi
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
SMK - Statens Museum for Kunst
 
Pengurangan & Penjumlahan Matriks Array Menggunakan C++
Pengurangan & Penjumlahan Matriks Array Menggunakan C++Pengurangan & Penjumlahan Matriks Array Menggunakan C++
Pengurangan & Penjumlahan Matriks Array Menggunakan C++
Muhammad Iqbal
 
Pengenalan c++ bagian 3
Pengenalan c++ bagian 3Pengenalan c++ bagian 3
Pengenalan c++ bagian 3
Fazar Ikhwan Guntara
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma Dijkstra
Onggo Wiryawan
 
Class Diagram
Class DiagramClass Diagram
Class Diagram
Sherly Uda
 
Matematika himpunan
Matematika himpunanMatematika himpunan
Matematika himpunandattebayo90
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
Bina Sarana Informatika
 
Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)
Devi Apriansyah
 
Matematika Diskrit - 09 graf - 07
Matematika Diskrit - 09 graf - 07Matematika Diskrit - 09 graf - 07
Matematika Diskrit - 09 graf - 07
KuliahKita
 
Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03
KuliahKita
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
KuliahKita
 

What's hot (20)

01 02-pseudocode
01 02-pseudocode01 02-pseudocode
01 02-pseudocode
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - Collection
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
 
[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)
 
Pertemuan 1 konsep dasar pemrograman berorientasi objek
Pertemuan 1 konsep dasar pemrograman berorientasi objekPertemuan 1 konsep dasar pemrograman berorientasi objek
Pertemuan 1 konsep dasar pemrograman berorientasi objek
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
 
Pengurangan & Penjumlahan Matriks Array Menggunakan C++
Pengurangan & Penjumlahan Matriks Array Menggunakan C++Pengurangan & Penjumlahan Matriks Array Menggunakan C++
Pengurangan & Penjumlahan Matriks Array Menggunakan C++
 
Pengenalan c++ bagian 3
Pengenalan c++ bagian 3Pengenalan c++ bagian 3
Pengenalan c++ bagian 3
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma Dijkstra
 
Class Diagram
Class DiagramClass Diagram
Class Diagram
 
Matematika himpunan
Matematika himpunanMatematika himpunan
Matematika himpunan
 
Latihan soal struktur data
Latihan soal struktur dataLatihan soal struktur data
Latihan soal struktur data
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)
 
Matematika Diskrit - 09 graf - 07
Matematika Diskrit - 09 graf - 07Matematika Diskrit - 09 graf - 07
Matematika Diskrit - 09 graf - 07
 
Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03Matematika Diskrit - 06 relasi dan fungsi - 03
Matematika Diskrit - 06 relasi dan fungsi - 03
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 

Similar to OOP - Enkapsulasi

Pemodelan berorientasi objek
Pemodelan berorientasi objekPemodelan berorientasi objek
Pemodelan berorientasi objek
Adhikara Asmoro
 
Analisis Sistem Informasi [Materi VI]
Analisis Sistem Informasi [Materi VI]Analisis Sistem Informasi [Materi VI]
Analisis Sistem Informasi [Materi VI]
Erikson Hutabarat
 
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
Rakhmi Khalida, M.M.S.I
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
Wahyu Widodo
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
rahmantoyuri
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
Namira Namirah
 
5475 1 review konsep pbo
5475 1 review konsep pbo5475 1 review konsep pbo
5475 1 review konsep pbo
Universitas Bina Darma Palembang
 
APBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptxAPBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptx
Samso20
 
Pengenalan Pemrogaman Berorientasi Obyek
Pengenalan Pemrogaman Berorientasi ObyekPengenalan Pemrogaman Berorientasi Obyek
Pengenalan Pemrogaman Berorientasi Obyek
Michael Finery
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Rakhmat Dedi Gunawan
 
Pengenalan OOP
Pengenalan OOPPengenalan OOP
Pengenalan OOP
daffa12
 
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 JavaIndividual Consultants
 
10. konsep enkapsulasi
10. konsep enkapsulasi10. konsep enkapsulasi
10. konsep enkapsulasi
Saprudin Eskom
 
28431 3 enkapsulasi
28431 3 enkapsulasi28431 3 enkapsulasi
13216 3 enkapsulasi
13216 3 enkapsulasi13216 3 enkapsulasi
Materi delphi
Materi delphiMateri delphi
Materi delphi
Rhendy Thanaya
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan Java
Laili Aidi
 
3. OOP Java
3. OOP Java3. OOP Java
3. OOP Java
beiharira
 

Similar to OOP - 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
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
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
 
28431 3 enkapsulasi
28431 3 enkapsulasi28431 3 enkapsulasi
28431 3 enkapsulasi
 
13216 3 enkapsulasi
13216 3 enkapsulasi13216 3 enkapsulasi
13216 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
 

More from KuliahKita

CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup MenuCSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup Menu
KuliahKita
 
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup KonfirmasiCSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup Konfirmasi
KuliahKita
 
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding DoorCSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding Door
KuliahKita
 
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card FlipCSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card Flip
KuliahKita
 
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordionCSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordion
KuliahKita
 
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tabCSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tab
KuliahKita
 
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side MenuCSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side Menu
KuliahKita
 
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 BreadcrumbCSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 Breadcrumb
KuliahKita
 
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasarCSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasar
KuliahKita
 
CSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox GridCSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox Grid
KuliahKita
 
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layoutEksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layout
KuliahKita
 
Eksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 PendahuluanEksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 Pendahuluan
KuliahKita
 
07 equity research (bagian 2)
07 equity research (bagian 2)07 equity research (bagian 2)
07 equity research (bagian 2)
KuliahKita
 
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)
KuliahKita
 
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)
KuliahKita
 
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due DilligencePasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due Dilligence
KuliahKita
 
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03
KuliahKita
 
Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02
KuliahKita
 
Pasar Saham -27 financial ratio 01
Pasar Saham -27 financial ratio  01Pasar Saham -27 financial ratio  01
Pasar Saham -27 financial ratio 01
KuliahKita
 
Pasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow StatementPasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow Statement
KuliahKita
 

More from KuliahKita (20)

CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup MenuCSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup Menu
 
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup KonfirmasiCSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup Konfirmasi
 
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding DoorCSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding Door
 
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card FlipCSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card Flip
 
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordionCSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordion
 
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tabCSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tab
 
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side MenuCSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side Menu
 
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 BreadcrumbCSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 Breadcrumb
 
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasarCSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasar
 
CSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox GridCSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox Grid
 
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layoutEksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layout
 
Eksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 PendahuluanEksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 Pendahuluan
 
07 equity research (bagian 2)
07 equity research (bagian 2)07 equity research (bagian 2)
07 equity research (bagian 2)
 
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)
 
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)
 
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due DilligencePasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due Dilligence
 
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03
 
Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02
 
Pasar Saham -27 financial ratio 01
Pasar Saham -27 financial ratio  01Pasar Saham -27 financial ratio  01
Pasar Saham -27 financial ratio 01
 
Pasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow StatementPasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow Statement
 

Recently uploaded

SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
AnandhaAdkhaM1
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
delphijean1
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
jayakartalumajang1
 
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptxMetode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
ssuser2537c0
 
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptxNADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
nadiafebianti2
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Tsabitpattipeilohy
 
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
AdityaWahyuDewangga1
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
HADIANNAS
 
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
indahrosantiTeknikSi
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
muhammadiswahyudi12
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
rhamset
 

Recently uploaded (11)

SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
 
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptxMetode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
 
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptxNADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
 
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
 
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
 

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