Anda di halaman 1dari 37

Pemrograman Berorientasi

Objek

Enkapsulasi
Dr. R. Teduh Dirgahayu
teduh.dirgahayu@uii.ac.id
Teknik Informatika, Universitas
Islam Indonesia

Agenda
Paket
Enkapsulasi

14 November
2016

Pemrograman Berorientasi Objek

Tujuan pertemuan
Mahasiswa memahami dan dapat
melakukan implementasi berikut di
Java
Pengelompokan kelas dalam paket
Enkapsulasi

14 November
2016

Pemrograman Berorientasi Objek

Paket (package)
Sistem dapat terdiri dari banyak
kelas
Perlu organisasi kelas, dalam bentuk
paket
Pengelompokan
berdasar
kesamaan
B
E
F
A

14 November
2016

Pemrograman Berorientasi Objek

Pemodelan
Dengan kelas

Aturan penulisan di
Java:
nama paket diawali
huruf kecil
pakai
an
Celan
anggotanya
Kaus
a

Tanpa kelas anggotanya


(ada, tetapi tidak ditampilkan)

pakaian

14 November
2016

Pemrograman Berorientasi Objek

public class Kaus


{
String warna;
String strip;

public Kaus() {
}

Kaus
warna
:
String
strip :
Kaus()
String
tampil() :
String

String tampil() {
return "kaus " + this.warna + " strip " + this.strip;
}
}
14 November
2016

Pemrograman Berorientasi Objek

public class Celana

Celana
warna :
String
Celana()

{
String warna;

tampil() :
String

public Celana() {
}

String tampil() {
return "celana " + this.warna;
}
}

14 November
2016

Pemrograman Berorientasi Objek

Kelas

Buat paket

14 November
2016

Pemrograman Berorientasi Objek

Tulis nama
paket

Terbentuk
paket baru

14 November
2016

Pemrograman Berorientasi Objek

Masukkan kelas
Kaus ke paket
Tambah
pakaian baris ini,
lalu
kompilasi
package pakaian;
public class Kaus
{
String warna;
String strip;
...
}
14 November
2016

Pemrograman Berorientasi Objek

10

Lihat ke dalam paket pakaian

Lakukan untuk kelas Celana


14 November
2016

Pemrograman Berorientasi Objek

11

Seragam

Di paket pakaian
package pakaian;
public class Seragam
{
Kaus kaus;
Celana celana;

kaus : Kaus
celana : Celana
Seragam (kaus : Kaus,
celana : Celana)
tampil() : String
test() Metode
kelas
untuk tes

public Seragam(Kaus kaus, Celana celana) {


this.kaus = kaus;
this.celana = celana;
}
String tampil() {
return this.kaus.tampil() + " dan " +
this.celana.tampil();
}
14 November
2016

Pemrograman Berorientasi Objek

12

public static void test() {


Kaus k = new Kaus();
k.warna = "putih";
k.strip = "biru";
Celana c = new Celana();
c.warna = "putih";
Seragam s = new Seragam(k, c);
System.out.println(s.tampil());
}
}

14 November
2016

Pemrograman Berorientasi Objek

13

Panggil metode test()

14 November
2016

Pemrograman Berorientasi Objek

14

Enkapsulasi
(pembungkusan)
Tidak semua atribut/metode boleh diakses
secara bebas
Contoh:
Jika warna kaus putih, strip harus hitam
Jika warna kaus tidak putih, strip harus putih
Nilai atribut strip bergantung pada nilai
atribut warna (strip tidak oleh diubah secara
bebas)
Atribut diberi access modifier: private
14 November
2016

Pemrograman Berorientasi Objek

15

Private: atribut/metode hanya bisa


diakses dari dalam kelas itu sendiri
Tanda
minus
(-)

Kaus

private String strip;

14 November
2016

warna : String
-strip : String
tampil() : String
setWarna(warna :
String)
Perubahan
warna akan
mengubah strip

Pemrograman Berorientasi Objek

16

void setWarna(String warna) {


this.warna = warna;
if (this.warna.equals("putih")) {
this.strip = "hitam";
} else {
this.strip = "putih";
}
}

Kompilasi kelas Kaus

14 November
2016

Pemrograman Berorientasi Objek

17

Kompilasi kelas Seragam


Apa
yang
terjadi?

14 November
2016

Kelas
Seragam
tidak bisa
dikompilasi!
Menga
Atribut strip
pa?
pada objek
Kaus tidak bisa
diakses.
Apa
Strip
sebabn
adalah
ya?
atribut
private.
Pemrograman Berorientasi Objek

18

Kelas Seragam
public static void test() {
Kaus k = new Kaus();
k.setWarna("putih");

Set warna
kaus, strip
menyesuaika
n

Celana c = new Celana();


c.warna = "putih";
Seragam s = new Seragam(k, c);
System.out.println(s.tampil());
}

14 November
2016

Pemrograman Berorientasi Objek

Kompilasi
dan
panggil
test()
19

Kelas Seragam
public static void test() {
Kaus k = new Kaus();
k.setWarna("putih");

Tidak
boleh
!

Celana c = new Celana();


c.warna = "putih";
k.warna = "hitam";

Set atribut
warna
secara
langsung

Seragam s = new Seragam(k, c);


System.out.println(s.tampil());
}

14 November
2016

Pemrograman Berorientasi Objek

Kompilasi
dan
panggil
test()
20

Set atribut warna sebagai private


Mencegah nilai
diubah secara
bebas

private String
14 November
2016

Kaus

-warna : String
-strip : String
tampil() : String
setWarna(warna :
String)
Kompilasi Kaus
Perbaiki
Seragam.test()
warna;
Kompilasi
Seragam
Pemrograman Berorientasi Objek
Panggil

21

Atribut private
Tidak bisa ditulis atau dibaca dari
luar kelas
Pembacaan nilai atribut pun harus
melalui metode
Kaus
-warna : String
String getWarna() {
-strip : String
return this.warna;
tampil() : String
}
setWarna(warna :
String getStrip() {
String)
return this.strip;
}
getWarna() : String
14 November
Pemrograman Berorientasi Objek
2016
getStrip() : String 22

Setter dan getter


Atribut tidak diakses langsung,
melainkan melalui metode
setter

Penulisan = setAtribut
(parameter : tipe)
getter= getAtribut () : tipe
Pembacaan
14 November
2016

Pemrograman Berorientasi Objek

23

Kelas dalam paket


Kelas dalam paket dapat digunakan
oleh kelas di luar paket.
Paket dan kelas harus di-impor oleh
Hanya impor
kelas yang menggunakan
kelas tertentu
dalam paket

import paket.kelas;

import paket.*;

14 November
2016

Impor semua
kelas dalam
paket
Pemrograman Berorientasi Objek

24

Buat kelas Klub di luar paket pakaian

Klub
nama : String
seragam : Seragam
Klub (nama : String)
setSeragam(seragam :
Seragam)
tampil() : String
14 November
2016

Pemrograman Berorientasi Objek

25

Impor semua
kelas dalam
paket pakaian
import pakaian.*;
public class Klub
{
String nama;
Seragam seragam;
public Klub(String nama) {
this.nama = nama;
}

Setter

void setSeragam(Seragam seragam) {


this.seragam = seragam;
}
String tampil() {
return this.nama + ": " + this.seragam.tampil();
}
}
14 November
2016

Pemrograman Berorientasi Objek

26

Kompilasi kelas Klub


Apa
yang
terjadi?
Menga
pa?
Apa
sebabn
ya?
14 November
2016

Kelas Klub
tidak bisa
dikompilas
i!
Metode tampil()
pada objek
Seragam tidak
bisa diakses.
Kelas
Seragam
pada paket
yang
Pemrograman Berorientasi Objek
berbeda.

27

Public: atribut/metode bisa diakses dari


kelas mana saja (di dalam atau luar paket)
Seragam

Tanda
plus
(+)

kaus : Kaus
celana : Celana
Seragam (kaus : Kaus,
celana : Celana)
+tampil() : String
test()

public String tampil() {


return this.kaus.tampil() + " dan " +
this.celana.tampil();
}

14 November
2016

Pemrograman Berorientasi Objek

28

Klub
nama : String
seragam : Seragam
Klub (nama : String)
setSeragam(seragam :
Seragam)
tampil() : String
test()
Metode
kelas
untuk tes
14 November
2016

Pemrograman Berorientasi Objek

29

static void test() {


Kaus k = new Kaus();
k.setWarna("merah");
Celana c = new Celana();
c.warna = "merah";
Seragam s = new Seragam(k, c);
Klub liverpool = new Klub("Liverpool");
liverpool.setSeragam(s);
System.out.println(liverpool.tampil());
}

14 November
2016

Pemrograman Berorientasi Objek

30

Kompilasi kelas Klub. Berhasil?


Beri access modifier (public) pada
metode dan atribut kelas yang
memerlukan.
Kompilasi, kemudan panggil
Klub.test()

14 November
2016

Pemrograman Berorientasi Objek

31

No modifier: atribut/metode bisa


diakses dari kelas di dalam paket
yang sama
Kaus
-warna
:
String
-strip :
tampil()
String :
String
...

No
modifier

No
modifier
14 November
2016

Celana
+warna :
String
tampil() :
String

Pemrograman Berorientasi Objek

32

Seragam
kaus : Kaus
celana : Celana
Seragam (kaus : Kaus,
celana : Celana)
+tampil () : String
...

public String tampil() {


return this.kaus.tampil() + " dan " +
this.celana.tampil();
}

14 November
2016

Akses bisa
dilakukan.
Kelas Seragam,
Kaus dan Celana
berada di paket
Pemrograman Berorientasi Objek
yang sama

33

Ada 1 kolom
lagi:
subclass.

Access modifier
Modifier

Private
No modifier
(default)
Public

Kelas
yang
sama

Paket
yang
sama

: bisa diakses
14 November
2016

Univers
e (luar
paket)

Pemrograman Berorientasi Objek

Ada 1 baris
lagi:
protected.
34

Enkapsulasi = pembungkusan
Menyembunyikan
atribut/metode objek agar tidak
bisa diakses secara bebas
Menyediakan akses terhadap
atribut/metode secara terkendali

14 November
2016

Pemrograman Berorientasi Objek

35

PR (kelompok seperti
sebelumnya)
Lakukan pemrograman seperti pada
slide ini.
Buat projek dengan nama : NIM1NIM2
Zip folder projek
: NIM1-NIM2.zip
Kirim di Klasiber.
Tugas tidak dinilai jika tidak
sesuai instruksi tersebut.
17 Oktober
2016

Kelompok berlaku selama


Pemrograman Berorientasi Objek

36

Rangkuman
Paket (package)
Enkapsulasi

14 November
2016

Pemrograman Berorientasi Objek

37

Anda mungkin juga menyukai