Modul Prak PBO
-
Upload
alfan-ghinan-rusydi -
Category
Documents
-
view
267 -
download
5
description
Transcript of Modul Prak PBO
-
5/28/2018 Modul Prak PBO
1/51
1
TI UIN
MALANG 2012
MODULPRAKTIKUM
PEMROGRMANBERORIENTASIOBJEK
JURUSAN TEKNIK INFORMATIKA
Disusunoleh
Agung Teguh Wibowo Almais, S.Kom
Modulpraktikuminidigunakanjugasebagaikartupraktikum
Data Praktikan
Foto
berwarna3x4
ModulPraktikumPemrograman BerorientasiObjek Agung Teguh WA
Nama
NIM
Dosen Agung Teguh W.A, S.Kom
Assisten
Pertemuan(ara!
Assisten"1 2 3 4 5 6 7 8
Nilai
Akhir
Nilai(per-modul
praktikum)
-
5/28/2018 Modul Prak PBO
2/51
2
TujuanPraktikum
Tujuan praktikum ini adalah mengenalkan mahasiswa pada pemrograman berorientasi
objek. Setelahmempelajari pemrograman berorientasi objek diharapkanmahasiswa dapat
memahamikonseppemrogramanberorientasiobjeksertamenerapkannya.
TataTertibPraktikum
Praktikum dilaksanakan sebagai salah satu point dalam penilaian nilai akhir sehingga
dituntut kedisiplinan didalam pelaksanaan praktikum, sehingga dalam praktikum
pemrogramaninidibuatbeberapaaturansebagaiberikut:
1. Praktikanwajibdatangtepatwaktu
2. 10menitsebelumpraktikumakandiadakanevaluasiolehassisten
3. Praktikanwajibmembawakartuabsensipraktikum
4. Penilaian yang dilakukan dan diisikan pada modul ini adalah penilaian saat
berlangsungnyapraktikum,denganskala1-10.
5. Seluruh mahasiswa peserta praktikum wajib membuat laporan praktikum, baik
yangmengambilmatakuliahbarumaupunmengulang
6. Tidak diadakan inhall bagi mahasiswa, kecuali dengan alasan-alasanmendesak
yangdapatditerimadenganpersetujuandosenpengampu.
7. Ketertiban,kesopanandankeaktifansaatmengikutipraktikumdijadikansalahsatu
pointpenilaianolehassisten.
8. Tunjukanjalannyaprogramandapadaassisten.
9. Formatlaporanadalahsebagaiberikut:
a. Judullaporan(NamadanNIM,TanggalPraktikum)
b. NamaPraktikum
c. Sourcecodeyangtelahdiperbaiki
d. Jawabandaripertanyaanyangterdapatdalammodul
e. LaporanditulistanganpadakertasukuranA4.
10.Laporan dibuat berdasarkan pengisianmodul praktikum yang telah ditandatangani
assistendanpraktikan.
ModulPraktikumPemrograman BerorientasiObjek Agung Teguh WA
-
5/28/2018 Modul Prak PBO
3/51
3
Perkakasdankompiler
Sebagai penghargaan terhadap hak kekayan intelektual dalam hal ini penggunaan
perangkat lunak, maka seluruh tools (kakas) dan kompiler dalam praktikum
menggunakakanperangkatlunakbebasberlisensikanGNU.
PraktikumakanmenggunakanEclips.
ModulPraktikumPemrograman BerorientasiObjek Agung Teguh WA
-
5/28/2018 Modul Prak PBO
4/51
4
MODUL1.
KELASDANOBJEK
A. Tujuan
Praktikan diharapkan dapat:
1. Membuat kelas dengan beberapa variabel/atribut dan metodh
2. Menginstantiasi kelas menjadi objek
B. TeoriSingkat
Dalam paradigma pemrograman berorientasi objek dikenal kelas dan objek. Kelas
merupakan blue print dari objekobjek !ang akan dibuat. "nalogi kelas dan objek seperti ran#angan
model rumah dan pembangunan rumahrumah$ adapun proses pembuatan objek dari kelas dikenal
dengan instantiasi.
%ambar 1. Pembuatan objek dari kelas dengan instantiasi
&ebagai #ontoh kita ambil kelas manusia. Kelas manusia mempun!ai atribut : nama. &elain
itu kelas manusia juga mempun!ai metodh: tampilkan'ama$ kerja$ makan. Kasus diatas
diimplementasikan dalam bahasa (ava sebagai berikut
/*Disipan!ala"ileanusia.ja#a*/public class manusia{public String nama;
public manusia(String n){this.nama = n;}public String tampilkanNama(){return nama;}public void makan(){System.out.println("Nyam... nyam... nyam...");}public void kerja(){ystem.out.println("Kerja...kerjaaa...");}
}
"dapun kode untuk menginstantiasi kelas manusia menjadi objek "ndi !ang
mengimplementasikan metodh: tampilkan'ama dan makan adalah sebagai berikut.
-
5/28/2018 Modul Prak PBO
5/51
)
/*Disipan!ala"ilean!i.ja#a*/class andi{public static void main(String arg[]){manusia andi= new manusia("Andi");System.out.println("Nama= "+ andi.tampilkanNama());andi.makan();}
}
*asil eksekusi terhadap #lass andi adalah sebagai berikut:
Naa$An!i
N%a...n%a...n%a...
Meto!& 'inal
Metodh +inal adalah metodh !ang tidak bisa dioverride oleh sub#lassn!a. Pende+inisian metodh
+inal dengan #ara menambahkan ke!,ord +inal didepan de+inisi metodh tersebut$ seperti pada
#ontoh berikut
Public final void tidur();
System.out.println(Zzz..Zzzz..Zzzzzzz);
(. )raktiku
1. -uatlah 3 objek untuk menginstantiasi kelas mahasis,a dengan atribut nama dan npm "nda
sendiri dan 2 teman "nda dan mengimplementasikan beberapa metodh !ang telah "nda
de+inisikan dalam kelas mahasis,a.
2. -uatlah kelas mahasis,a dengan atribut/variabel nama dan npm dan mempun!ai metodh:
tampilkan'ama$ tampilkan'pm$ belajar$ olahaga$ makan$ minum.
NB * Kompile +ile kelas mahasis,a dan objekobjek !ang telah "nda buat$ kemudian jalankan objek
objek !ang telah "nda buat 0
-
5/28/2018 Modul Prak PBO
6/51
LAPORAN (CLASS&OBJECT)
Membuatobjekdarisuatuclass
Objek pada suatu class dapat dibuat dengan melakukan pengisian objek baru dari
konstruktorkeobjekyangbarudibuat.
ClassdanObjeksederhana
1.Buatlahclassorang danclassmaindengancodesebagaiberikut:
class Orang {
private int tahunUmur = 32;
public void hitungUmur(){int hariUmur = tahunUmur * 365;
long detikUmur = tahunUmur * 365 * 24L * 60 * 60;
System.out.println("umur anda adalah: "+hariUmur+
"hari");
System.out.println("umur anda adalah: "+detikUmur+
"detik");
}
}
class main {
public static void main(String[] args) {
Orang o=new Orang();Orang objOrang=new Orang();
objOrang.hitungumur();
o.hitungUmur();
}
}
a. SebutkannamaClassdanstatedanbehavioryangadapadaclassdiatas,sertatermasuk
behaviourjenisapa?(fungsi/prosedur)
Namaclass:
State:
Behavior:
b.Berapaobjekyangterbentukdaripengujianprogramdiatas?sebutkan
-
5/28/2018 Modul Prak PBO
7/51
c.Bagaimanacaramembuatobjekdarisuatuclass?
d.Jalankanprogramdantuliskanluaran(outputdariprogram)
2.Buatlahclassbujursangkar,classpersegidanclassujidengancodesebagai
berikut:
class bujurSangkar{int hitungLuas(int sisi){
int luas = sisi * sisi;
return(luas);
}
int hitungKeliling(int sisi){
int keliling = 4 * luas;
return(luas);
}
}
class Persegi{
int hitungLuas(int panjang,int lebar){
int luas = panjang * lebar;
return(luas);
}
int hitungKeliling(int panjang,int lebar){
int keliling = 2*(panjang + lebar);
return(keliling);
}
}
a. Sebutkanstatedanbehavioryangadapadaclassbujursangkar diatas,serta
termasukbehaviourjenisapa?(fungsi/prosedur)
State:
Behavior:
-
5/28/2018 Modul Prak PBO
8/51
b. Sebutkanstatedanbehavioryangadapadaclasspersegidiatas,sertatermasuk
behaviourjenisapa?(fungsi/prosedur)
State:
Behavior:
c. Buatlahclassujisebagaiberikut:
class Uji{
private int x;public static void main(String[] args) {
bujursangkar bujur=new bujursangkar();
x=bujur.hitungLuas(4);
System.out.println(luas bujur sangkar+x);
x=bujur.hitungKeliling(5);
System.out.println(keliling bujur sangkar+x);
Persegi persegipanjang=new persegipanjang();
x= persegipanjang.hitungLuas(6,4);
System.out.println(Luas persegi+x);
x= persegipanjang.hitungKeliling(6,4);
System.out.println(Keliling persegi+x);
}}
d.Berapaobjekyangterbentukdaripengujianprogramdiatas?sebutkan
e.Bagaimanacaramembuatobjekdariclasspadakodediatas?
-
5/28/2018 Modul Prak PBO
9/51
f.Tuliskanhasilluaran(output)dariprogramdiatas?
Final
3.BuatlahclassfinalWord,danclassujidengancodesebagaiberikut:
public class finalWord {
final double phi= 3.14;
double kelilingLingkaran(double jari){
double keliling;
keliling=2*phi*jari;
return keliling;
}
double luasLingkaran(double jari){
double luas;
luas=phi*jari*jari;
return luas;
}
}
public class uji {
public static void main(String[] args) {
finalWord objFinal=new finalWord();
System.out.println("Keliling="+objFinal.kelilingLingkaran(2));System.out.println("Luas ="+objFinal.luasLingkaran(3));
}}
Telahdiperiksa Tanggal:ModulClassdanObjeksederhana
Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
10/51
15
a.Tuliskanhasilluaran(output)dariprogramdiatas
b. Sebutkanstatedanbehavioryangadapadaclasspersegidiatas,sertatermasuk
behaviourjenisapa?(fungsi/prosedur)
State:
Behavior:
c.Masukankodeberikutpadaclassujisetelahpembentukanobjek
objFinal.phi=3.17;
Apayangterjadiketikadikompilasi:
Fungsispecifierfinaladalah:
Telahdiperiksa Tanggal: ModulFinalDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalanserta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
11/51
11
Classdengankonstruktor
4.BuatlahclassMahasiswa danclassujimahasiswadengancodesebagaiberikut:public class Mahasiswa {
private String Nama;private String NIM;private String Alamat;private int umur;private String Jurusan;
public Mahasiswa(String Nama, String NIM) {this.Nama = Nama;this.NIM = NIM;
}
public Mahasiswa(String Nama, String NIM, String Alamat) {this.Nama = Nama;this.NIM = NIM;
this.Alamat = Alamat;}
public Mahasiswa(String Nama, String NIM, String Alamat,int umur, String Jurusan) {
this.Nama = Nama;this.NIM = NIM;this.Alamat = Alamat;this.umur = umur;
this.Jurusan = Jurusan;}
public String getNIM() {return NIM;
}
public String getNama() {return Nama;
}
public void setNama(String Nama) {this.Nama = Nama;
}
public void setNIM(String NIM) {this.NIM = NIM;
}
void cetakInformasi(){System.out.print("NIM mahasiswa "+NIM+" adalah "+Nama);
}
}
-
5/28/2018 Modul Prak PBO
12/51
12
a. Sebutkanstatedanbehavioryangadapadaclassmahasiswadiatas,sertatermasuk
behaviourjenisapa?(fungsi/prosedur)
Stateberjumlah:RincianState:
Behaviorberjumlah:
Rinciannamabehavior(termasukfungsiatauproc):
b.buatclassujisebagaiberikut
public class uji {
public static void main(String[] args) {
Mahasiswa mhs1=new Mahasiswa(Daplun,"H1L009002");
Mhs1.cetakInformasi();
Mahasiswa mhs2=new Mahasiswa("Daplun",H1L009002,
Purwokerto);
System.out.println(mhs2.getNama);
}
}
c.Apaperbedaanantaraobjekyangterbentukpadaobjekmhs1danmhs2
Perbedaannyaadalah
-
5/28/2018 Modul Prak PBO
13/51
13
d.Apayangdimaksuddengankonstruktordanadaberapakonstruktorpadaclass
mahasiswadiatas
Konstruktoradalah
Fungsikonstruktor
e.Apamaksuddarikata-kataprivatedanpublicpadakodesumberclassmahasiswaMaksudprivateadalah
Maksudpublicadalah
f.Apamaksuddarikata-katathispadakodesumberclassmahasiswa
Maksudthisadalah
g.Apabiladiinginkanuntukmencetakalamatdarimahasiswaataumengubahalamatdari
mahasiswamakabehaviourapayangharusandatambahkan?Tuliskandanuji
Behavioryangharusditambahkanadalah:
-
5/28/2018 Modul Prak PBO
14/51
14
SourcecodeBehaviourtersebutadalah
h.Tuliskancarapemanggilanbehaviourpadapointhdariobjekmahasiswa
Telahdiperiksa Tanggal: ModulClassdengankonstruktorDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
15/51
1)
MembuatClassdariMainclassdanhasilpengujian
5.BuatlahclassTelevisidarisuatuclassmainsebagaiberikut:
public class Main {
public static void main(String[] args) {Televisi tvFlat=new Televisi("Sharp","3Juta");tvFlat.informasiTv();tvFlat.hidupkanTv();tvFlat.setChannel(1);System.out.println("Televisi diset pada
channel:"+tvFlat.getChannel());tvFlat.matikanTv();
}
}
Outputdariclassujidiatasadalahsebagaiberikut
run#
Te$e%isiS&ar &ar'a JutaTe$e%isi&i)uTe$e%isi)iset a)a *&anne$#+Te$e%isimati
Buatlah Code dari class Televisi dan jalankan program sehingga tampilan diatasdidapatkan
public class Televisi {
-
5/28/2018 Modul Prak PBO
16/51
1
Lanjutan
public class Televisi {
}
Daripercobaan-percobaandiatasmakadapatdisimpulkan:
ClassAdalah:
ObjekAdalah:
PenyusunClassterdiriatas:
Telahdiperiksa Tanggal: Modul HasilPengujianDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
17/51
1
MODUL+.
)E,A-SAN
A. Tujuan
Praktikan diharapkan dapat:
1. Memahami dan mengimplementasikan konsep pe,arisan
2. Memahami dan mengimplementasikan this dan super sesuai kebutuhan
3. Memahami dan mengimplementasikan metodh overriding
B. Teori Singkat
&alah satu kelebihan pemrograman berorientasi objek adalah penggunaan ulang kodekode
!ang telah dibuat. Pe,arisan adalah salah satu #ara untuk menggunakan kodekode
!ang telah dibuat sebelumn!a.
&ebagai #ontoh kelas manusia diturunkan menjadi kelas: programmer$ tentara.
/*
Disipan !ala "ile prograer.ja#a*/
-
5/28/2018 Modul Prak PBO
18/51
1
/*
Disipan !ala "ile tentara.ja#a
*/
Ke!,ord super digunakan untuk memanggil metodh !ang ada pada base#lass$ sedangkan
this menunjukkan/mere+erensi pada objek terkini. "ndi adalah seorang programmer
keturunan manusia$ setelah dia makan lalu kerja dan terakhir dia bersantai dengan
komputern!a sehingga implementasi dengan kode javan!a.
/*
Disipan !ala "ile an!i.ja#a*/
Kalau dieksekusi #lass "ndi akan menghasilkan
Naa$ An!i
N%a... n%a... n%a...Tak.Tak..Klik..
/ae o#er0 ou lose...
-
5/28/2018 Modul Prak PBO
19/51
1
&etelah 6bjek andi memberitahu naman!a$ dia makan dengan metodh ,arisan dari kelas
manusia$ kemudian dia kerja dengan metodh khusus kelas programmer dan terakhir dia
bersantai juga dengan metodh khusus kelas programmer.
Kelas turunan akan me,ariskan atributatribut dan metodhmetodh parent#lassn!a/base#lass$
akan tetapi dia tidak me,arisi konstruktorkonstruktorn!a sehingga ketika andi makan maka
dia makan dengan metodh dari parent#lassn!a 7manusia8.
"kan tetapi ketika dia kerja$ dia kerja dengan metodh baru !ang dide+inisikan khusus pada
kelas programmer 79ak;ak;Klik.. 9 bukan 9Kerja;.kerjaaa;.8$ inilah !ang disebut dengan
metodh overriding.
-
5/28/2018 Modul Prak PBO
20/51
25
(. )raktiku
1. -uatlah 2 objek untuk menginstantiasi kelas pe#inta alam dengan atribut nama dan npm
"nda sendiri dan 1 teman "nda dengan mengimplementasikan beberapa metodh !ang
telah "nda de+inisikan dalam kelas kelasn!a.
2. -uatlah turunan dari kelas mahasis,a !ang telah "nda buat pada modul 1 menjadi
kelas: Pe#inta alam dan buatlah atribut dan metodhmetodhn!a masingmasing
seban!ak 2 buah
Kopile "ile kelas pecinta ala !an o2jek3o2jek %ang tela& An!a 2uat0 keu!ian
jalankan o2jek3o2jek %ang tela& An!a 2uat 4
-
5/28/2018 Modul Prak PBO
21/51
21
LAPORAN (PEWARISAN/ INHERITANCE)
InheritanceSederhana
1.BuatlahclassSepeda,classSepedaGunungsertaClassUji
public class Sepeda {public int pedal;public int gear;public int kecepatan;private int standar;
public Sepeda(){}
public Sepeda(int pedal, int gear, int kecepatan) {
this.pedal = pedal;this.gear = gear;this.kecepatan = kecepatan;
}
public void remSepeda(int nilaiPengereman) {kecepatan= kecepatan-nilaiPengereman;
}public void tambahKecepatan(int nilaiTambah) {
kecepatan= kecepatan+nilaiTambah;}
}
public class SepedaGunung extends Sepeda {
private int Shockbreaker;private int lampu;private int tempatMinum;
public int getShockbreaker() {return Shockbreaker;
}
public int getLampu() {return lampu;
}public int getTempatMinum() {
return tempatMinum;}
public void setShockbreaker(int Shockbreaker) {this.Shockbreaker = Shockbreaker;
}
public void setLampu(int lampu) {this.lampu = lampu;
}public void setTempatMinum(int tempatMinum) {
this.tempatMinum = tempatMinum;}
}
-
5/28/2018 Modul Prak PBO
22/51
22
public class Main {
public static void main(String[] args) {SepedaGunung Poligon=new SepedaGunung();Poligon.gear=1;Poligon.pedal=2;Poligon.kecepatan=40;Poligon.setLampu(1);
Poligon.setShockbreaker(2);Poligon.setTempatMinum(1);System.out.println("Jumlah gear:"+Poligon.gear+
", Jumlah Pedal:"+Poligon.pedal+", kecepatan:"+ Poligon.kecepatan+
",Lampu:"+Poligon.getLampu()+", Shockbreaker:"+Poligon.getShockbreaker());
}
}
Inheritancemerupakanpewarisanatribut(variabel)danbehaviour(method)padasebuahclassyangdiperolehdariclassyangtelahterdefinisi
a.Darikodediatasyangdisebutsebagaiclassinduk(superclass)danclassturunan(sub-class)adalah:
Superclass:
Subclass :
b.Jelaskanmaksudkalimat:class SepedaGunung extends Sepeda
Maksudnyaadalah
c.ClassSepedaGunungmemilikistate/variabel,sebutkanstateyangdimilikiolehclassSepedaGunung:
StateyangdimilikiolehclassSepedaGunungadalah:
-
5/28/2018 Modul Prak PBO
23/51
23
d.ClassSepedaGunungmemilikibehaviour,sebutkanbehaviouryangdimilikiolehClass
SepedaGunung\
BehaviouryangdimilikiolehclassSepedaGunungadalah:
e.ClassSepedaGunungditurunkandariclassSepeda,sebutkanstateyangditurunkandari
classsepeda:
StateyangdiwarisiolehclassSepedaGunungadalah:
f.ClassSepedaGunungditurunkandariclassSepeda,sebutkanbehaviouryangditurunkan
dariclasssepeda:
BehaviouryangdiwarisiolehclassSepedaGunungadalah:
g.Tuliskanluaran(output)dariprogramtersebutketikadijalankan:
Telahdiperiksa Tanggal: ModulInheritanceSederhana
Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
24/51
24
InheritanceDenganPemanggilanKonstruktorSuper
KeywordSuperdigunakanuntukmemanggilstateataubehaviourataukonstruktordari
classinduk(superclass)
7.Buatlahclassmobil,classmobilTruck
public class mobil {
private String Merek;private int roda;private int kursi;private int transmisi;
public mobil(String Merek, int roda, int kursi, inttransmisi) {
this.Merek = Merek;this.roda = roda;this.kursi = kursi;this.transmisi = transmisi;
}
public String getMerek() {
return Merek;}public void setMerek(String Merek) {
this.Merek = Merek;}
public int getKursi() {return kursi;
}public void setKursi(int kursi) {
this.kursi = kursi;}public int getRoda() {
return roda;}public void setRoda(int roda) {
this.roda = roda;}
public int getTransmisi() {return transmisi;
}public void setTransmisi(int transmisi) {
this.transmisi = transmisi;}
}
-
5/28/2018 Modul Prak PBO
25/51
2)
public class mobileTruck extends mobil {private int bakPasir;
private int Gandengan;
public mobileTruck(String Merek, int roda, int kursi, inttransmisi, int bakPasir, int Gandengan) {super(Merek, roda, kursi, transmisi);this.bakPasir = bakPasir;this.Gandengan = Gandengan;
}
public void tampilkanTruck(){System.out.println("mobil dengan merk:"+getMerek());System.out.println("mempunyai roda:"+getRoda());System.out.println("transmisi:"+getTransmisi());System.out.println("dilengkapi bak pasir:"+bakPasir);System.out.println("dilengkapi gandengan:"+Gandengan);
}}
a.ClassmobileTruckmerupakanclassyangditurunkandariclassmobil.Sebutkanstate
danbehaviourdariclassmobilyangdiwariskankeclassmobileTruck.
b.BuatlahClassmaindankemudianlakukanpengujian
public class main {
public static void main(String[] args) {mobileTruck Hino=new mobileTruck("HINO",4,2,5,1,1);Hino.tampilkanTruck();
}}
-
5/28/2018 Modul Prak PBO
26/51
2
c.output/luarandariprogramadalah
d.Jelaskan maksuddaripotongankode
super(Merek, roda, kursi, transmisi);
padabagianpembentukankonstruktormobileTruck
Masudnyaadalah
e.Jelaskan maksuddaripotongankode
System.out.println("mobil dengan merk:"+super.getMerek());
padabagianmethod tampilkanTruck() padaclassmobileTruck
Masudnyaadalah
Telahdiperiksa Tanggal: ModulKonstruktorSuperDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
27/51
2
MODUL5.
)EN/KA)SULAN
A. Tujuan
Praktikan diharapkan dapat:
1. Memahami dan menggunakan dengan benar hak akses publi#$ prote#ted
dan private
2. Memahami kegunaan pengaturan hak akses dalam pengembangan aplikasi
B. Teori Singkat&alah satu pilar Pemrograman -erorientasi 6bjek 7P-68 adalah pengkapsulan$
dimana pengembang so+t,are dapat men!embun!ikan detail suatu objek.
*ak akses publi# memungkinkan semua kelas mengaksesn!a$ hak akses prote#ted
han!a diberikan kepada kelasn!a sendiri dan turunann!a$ serta kelaskelas dalam
satu paket. sedangkan private han!a boleh diakses oleh kelasn!a sendiri.
Mengapa harus ada Pengkapsulan:
Karena ada in+ormasi !ang harus di sembun!ikan.
"rtin!a : anggota dari suatu #lass bisa di lindungi agar tidak bisa di akses dari
luar.
>aran!a adalah dengan mengganti modi+ieer !ang tadin!a publi# menjadi
private Pen!embun!ian in+ormasi atau in+ormation hidding adalah mengganti akses
7modi+ier8 dari publi# menjadi private
>ontoh : atribut nrp dan anam !angn tadin!a dedeklarsikan publi# menjadi
private
perubahan dalam class diagramnya
"kibat dari ?nkap#ulasi
Detail in+ormasi dari suatu #lass dapat di lindungi
&ehingga untuk mengakses in+ormasi tersebut diperlukan suatu perantara
Perantara !ang di perlukan berupa method !ang bisa di akses oleh user
-
5/28/2018 Modul Prak PBO
28/51
2
@ntuk mengakses An+ormasi$ di perlukan dua buah method untuk setiap atribut:
Method untuk mengeset nilai atribut
Method untuk mengabil nilai atribut
&ahingga @M< >lass Diagram menjadi >lass
>lass panggil untuk #lass Ma&asis6a.ja#a
(. )raktiku
1. Amplementasikan >lass anggal.java berikut ini:
2. -uatlah program untuk menguji >lass tanggal.java00
-
5/28/2018 Modul Prak PBO
29/51
2
LA)O-AN 7)EN/KA)SULAN8
*ak akses publi# memungkinkan semua kelas mengaksesn!a$ hak akses prote#ted han!a
diberikan kepada kelasn!a sendiri dan turunann!a$ serta kelaskelas dalam satu paket.
sedangkan private han!a boleh diakses oleh kelasn!a sendiri.Perhatikan kelas manusia diba,ah ini0
Andiadalahobjekbentukandarikelasmanusia
-
5/28/2018 Modul Prak PBO
30/51
35
1. Apayangterjadijikahakaksesprivatediaksesolehkelaslain?
-
5/28/2018 Modul Prak PBO
31/51
31
2.Ubahhakaksesmakandaripublicmenjadiprotecteddanulangipraktikum nomor1! Apa yangterjadi?Jelaskan!
3.Tambahkanpadakelasandiuntukmemanggilmetodhbunuhdiri,ulangipraktikum no1. Apayangterjadi?Jelaskan!
Telahdiperiksa Tanggal: ModulPengkapsulanDengan ini praktikan telah menyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
32/51
32
MODUL9.
)OLMO-'SME
A. Tujuan
Praktikan diharapkan dapat:
1. Memahami dan mengimplementasikan pol!mor+isme
B. Teori Singkat
&alah satu pilar Pemrograman -erorientasi 6bjek adalah pol!mor+isme !aitu
kemampuan beberapa objek bertipe sama bereaksi se#ara berbeda terhadap 9pesanB !ang
sama.
&ebagai #ontoh kita tambah lagi turunan dari manusia !aitu kelas sopir. Kelas sopir
diimplementasikan dalam java
/*Disimpan dalam file sopir.java*/
Dedi adalah seorang sopir keturunan manusia$ untuk menginstantiasi objek dedi
ditunjukkan dalam kode berikut.
/*Disimpan dalam file dedi.java*/
-
5/28/2018 Modul Prak PBO
33/51
33
Kemudian "ndi sang programmer$ -adu sang tentara dan Dedi sang sopir diperintahkanuntuk bekerja$ apa reaksin!aC
@ntuk melihat reaksi masingmasing$ perhatikan kode java berikut0
/*Disimpan dalam file pekerja.java*/
*asil eksekusi para pekerja adalah sebagai berikut:
TakTakKlik...
Dor... Dor... Dor
Ngung...Ngung...Ngung...Ciiit..
Message sama !ang dikirimkan ke objek berbeda akan menghasilkan hasil !ang berbeda$
inilah !ang disebut pol!mor+isme.
Meto!& A2strak
Metodh abstra#t adalah metodh !ang belum mempun!ai implementasi. Pende+inisianmetodh abstrak adalah dengan menambahkankeyword abstract$ seperti #ontoh diba,ah ini:
abstact void BerangkatKerja();
Pada metodh abstra#t ini tidak dide+inisikan/implementasi metodh -erangkatKerja tersebut
7misalkan apakah jalan kaki$ naik angkot$ naik motor$ naik mobil atau dengan #ara lainn!a.
-
5/28/2018 Modul Prak PBO
34/51
34
(. )raktiku
1. -uatlah kelas ohis !ang merupakan kelas turunan dari mahasis,a dan buatlah
metodhmetodhn!a.
2. -uatlah 1 objek untuk menginstantiasi kelas rohis dan mengimplementasikan beberapa
metodh !ang telah "nda de+inisikan dalam kelas rohis.
3. Panggilllah objek !ang telah "nda buat pada kelas pe#inta alam dan rohis untuk bekerja
sehingga tampil e+eke+ek pol!mor+isme
-
5/28/2018 Modul Prak PBO
35/51
3)
LAPORAN (POLIMORFISME)
PolymorphismadalahkonsepOOPtentangbanyakbentuk(poly=banyak,morphism
= bentuk).Disini banyak bentukmaksudnya bahwa objek yang dasarnya sama tapi
bertindak/bertingkahlakuberbeda-beda.
MethodOverriding
MethodOverridingdigunakanantarasuperclassdansubclass,dengankatalain
overloadingmethoddilakukanantaraclassturunandanclassinduk
Buatlahclassdasar,classturunansertaclassmain
public class dasar {
private int x;
public dasar(int x) {
this.x = x;}
public int getX() {return x;
}public void tampilkanInformasi() {
System.out.println("Method dari class induk");System.out.println("x=" + x);
}}
public class turunan extends dasar{private int y;
public turunan(int x, int y) {super(x);this.y = y;
}public void tampilkanInformasi() {
System.out.println("Method dari class turunan");System.out.println("nilai x=" + getX());System.out.println("nilai y=" + y);
}
}
-
5/28/2018 Modul Prak PBO
36/51
3
public class Main {
public static void main(String[] args) {
dasar a=new dasar(3);a.tampilkanInformasi();turunan b=new turunan(4,5);b.tampilkanInformasi();
}}
a.output/luarandariprogramadalah
b.Behavior(Method)apasajayangditurunkanolehclassindukkeclassturunan
c.Behavior(Method)apasajayangdioverrideolehclassturunan
Telahdiperiksa Tanggal: ModulPlymorfismeDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
37/51
3
MODUL: !an ;.
ABST-A(T (LASS DAN NTE-'A(E
A. ABST-A(T (LASS
&aat kita membuat sebuah super#lass$ kita tahu bah,a kita dapat memakai semua metode !ang
dimilikin!a pada #lass anakn!a. "tau kalau kita butuh metode tersebut diperbarui$ kita tinggal
melakukan override pada metode tersebut.
api$ pada suatu kasus$ kita ingin membuat super#lass !ang bernama lass ini pun!a beberapa method !ang sudah kita kenal seperti makan$ berna+as$ tidur$ dan
berjalan. "da satu metode !ang tidak dapat kita generalisasi. >ontohn!a adalah method
berjalan.*uman sebagai sub#lass dari makhluk hidup berjalan dengan 2 kaki$ sedangkan Dog
berjalan dengan 4 kaki. @ntuk membuat super#lass !ang umum$ kita bisa membuat suatu
super#lass !ang memiliki beberapa metode dengan implementasi dan beberapa tidak. >lass inidisebut abstra#t #lass.
&e#ara umum$ abstra#t #lass adalah #lass !ang tak dapat diinstansiasi. -iasan!a abstra#t #lass
berada dalam hierarki tertinggi dalam P-6 7pemrograman berorientasi objek8. Metode di dalamabstra#t #lass !ang tidak berisi kode program adalah abstra#t method 7metode abstra#t8. 'antin!a$
method ini harus dioverride oleh sub#lassn!a. (adi$ kita han!a menulis deklarasi method tanpa
tubuh metode dan memakai ke!,ord abstra#t. >ontohn!a:public abstract void iniMetode();
Deklarasi Method ini disebut sebagai protot!pe method.
&ekarang$ kita #oba buat abstra#t #lass pertama kita:
&uatu metode !ang sudah dideklarasikan abstra#t harus diakhiri tanpa memakai tubuh program.
(ika ditulis seperti ini:
-
5/28/2018 Modul Prak PBO
38/51
3
maka akan terjadi error seperti berikut:
Ketika sebuah #lass dibuat sebagai sub#lass dari #lass ontoh pembuatan sub#lass !ang benar:
(ika #lass *uman tidak mengoverride metode ,alk78$ maka akan mun#ul pesan error seperti
berikut:
api$ ,alau #lass *uman tidak mengoverride metode !ang lain seperti breath78 dan eat78 7!ang
tidak abstra#t8 tidak akan terjadi error.
(adi$ +ungsi abstra#t #lass tak lain adalah untuk membuat protot!pe bagi #lass di tingkatan paling
atas dalam hierarki #lass dan sub#lassn!a !ang men!ediakan detail implementasi dari abstra#t
#lass tersebut.
-
5/28/2018 Modul Prak PBO
39/51
3
B. NTE-'A(E
inter+a#e adalah sebuah blok !ang berisi deklarasi metode saja untuk diimplementasikan pada
#lass lain. (adi$ metode !ang ada di dalam inter+a#e tidak memiliki kode program 7bersi+at
abstra#t8. >ontoh inter+a#e:
Anter+a#e ini nantin!a berguna untuk membuat satu sub#lass memiliki lebih dari satu super#lass.
api bukan se#ara etends 7inheritan#e8$ tapi implements 7implementasi8.
>oba kita buat #lass line !ang mengimplementasikan inter+a#e elation di atas.
-
5/28/2018 Modul Prak PBO
40/51
45
(ika salah satu dari method is%reater78$ is
-
5/28/2018 Modul Prak PBO
41/51
41
2. -uatlah abstra#t #lass "latMusik dan diturunkan ke dua #lass$ !aitu #lass
Musikiup serta #lass Musik%esek seperti #lass diagram di ba,ah ini.
3. ulislah juga suatu laun#her #lass !ang membuat sebuah objek terompet !ang
merupakan instan#e dari #lass Musikiup !ang memiliki atribut bun!i 9toettoetB.
-uatlah pula sebuah objek biola !ang merupakan instan#e dari #lass Musik%esek
!ang memiliki atribut bun!i 9ngikngokB dan jumlah da,ai 4 buah. &etiap kali
membuat objek baru
-
5/28/2018 Modul Prak PBO
42/51
42
LAPORAN (ABSTRACTCLASS)
Terkadangkitainginmembuatclassdimanatidaksemuamethodyangdideklarasikan
didalamnyamemilikiimplementasi.Classinimerupakansuperclassyangdibuat
sebagaidasaruntukkemudiandigunakanolehsubclassnya
Buatlahclassbentuk2D,classbujursangkar,classpersegisertaclassmain (Abtract Class 1)
public abstract class bentuk2D {public abstract void cetakLuas();public abstract void cetakKeliling();
}
public class bujurSangkar extends bentuk2D{private int sisi;private int luas;private int keliling;
public bujurSangkar(int sisi) {this.sisi = sisi;
}public void cetakLuas(){
luas=sisi*sisi;System.out.println("Luas bujur sangkar adalah:"+luas);
}public void cetakKeliling(){
keliling=4*sisi;System.out.println("Keliling bujur sangkar
adalah:"+keliling);}
}
public class persegiPanjang extends bentuk2D {
private int panjang;private int lebar;private double luas;
private int keliling;
public persegiPanjang(int panjang, int lebar) {this.panjang = panjang;this.lebar = lebar;
}public void cetakLuas(){
luas=panjang*lebar;System.out.println("Luas persegi adalah:"+luas);
}public void cetakKeliling(){
keliling=2*(panjang+lebar);
System.out.println("Keliling persegi:"+keliling);}
}
-
5/28/2018 Modul Prak PBO
43/51
43
public class Main {public static void main(String[] args) {
bujurSangkar kotak=new bujurSangkar(4);
persegiPanjang kotakPanjang=new persegiPanjang(4,2);kotak.cetakLuas();kotak.cetakKeliling();kotakPanjang.cetakLuas();kotakPanjang.cetakKeliling();
}}
a.output/luarandariprogramadalah
b.Methodabstractdariclassabstractbangun2DdiimplementasikanolehclassbujurSangkardanclasspersegi,sebutkandantuliskanmethodabstractdariclass
bangun2DyangdiimplementasikanolehclassbujurSangkardanPersegi
c.Padaclassmaintambahkankodeberikut:
bangun2D objAbstract=new bangun2D();
Bisakahkodetersebutdikompilasi?Bisakahkitamembuatobjectdariclassabstract,
jelaskanalasananda
-
5/28/2018 Modul Prak PBO
44/51
44
BuatlahclasssuatuMesin,classmesinCucisertaclassmain (Abtract Class 2)
public abstract class suatuMesin {privateboolean hidup;private String Nama;public abstract void hidupkanMesin();public abstract void matikanMesin();
public suatuMesin(String Nama) {this.Nama = Nama;
}publicboolean isHidup() {
return hidup;}public void setHidup(boolean hidup) {
this.hidup = hidup;}
}
public class mesinCuci extends suatuMesin{
public mesinCuci(String Nama) {
super(Nama);}public void hidupkanMesin() {
if(isHidup()){System.out.println(getNama()+" sudah hidup");
}else{setHidup(true);System.out.println(getNama()+" dihidupkan");
}}
public void matikanMesin() {if(isHidup()){
setHidup(false);System.out.println(getNama()+" dimatikan");
}else{setHidup(true);System.out.println(getNama()+"keadaan mati");
}
}}
public class Main {public static void main(String[] args) {mesinCuci Toshiba=new mesinCuci("Mesin cuci Toshiba");Toshiba.hidupkanMesin();Toshiba.hidupkanMesin();Toshiba.matikanMesin();Toshiba.matikanMesin();}
}
-
5/28/2018 Modul Prak PBO
45/51
4)
a.output/luarandariprogramadalah
b.Jelaskanbagaimanajalannyaprogramberdasarkanpemanggilanmethodpadaclass
mainsertaluaranprogramyangterjadi
Telahdiperiksa Tanggal: ModulAbstrak Class 2Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
Telahdiperiksa Tanggal: ModulAbstrak Class 1Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
46/51
4
LAPORAN (INTERFACE)
Adalahsemacamblokspesialyanghanyaberisitandatanganmethod(danmungkinkonstan).
Menggambarkantandatangandariseperangkatmethod,tanpabody
InterfaceSederhana
BuatlahinterfacekontrolTv,classTelevisisertaclassmain
public interface kontrolTv {public void hidupkan(boolean hidup);public void pindahChannel(int channel);public void keraskanVolume(int tambah);public void pelankanVolume(int kurangi);}
public class televisi implements kontrolTv {private String merek;privateboolean hidup;private String[] saluran={"RCTI","SCTV","INDOSIAR",
"TPI","ANTV,TRANSTV","TRANS7"};private int volume=0;
public televisi(String merek) {this.merek = merek;
}
public void hidupkan(boolean hidup) {if(hidup){
this.hidup=true;System.out.println("Televisi dihidupkan");
}else{this.hidup=false;
System.out.println("Televisi dimatikan");}
}
public void keraskanVolume(int tambah) {if(hidup){
volume=volume+tambah;System.out.println("volume menjadi "+volume);
}else{System.out.println("Televisi dalam keadaan mati");
}}
-
5/28/2018 Modul Prak PBO
47/51
4
public void pelankanVolume(int kurangi) {if(hidup){
volume=volume-kurangi;System.out.println("volume di set ke "+volume);
}else{System.out.println("Televisi dalam keadaan mati");
}}
public void pindahChannel(int channel) {if(hidup){
System.out.println("TV menjadi"+saluran[channel]);}else{
System.out.println("Televisi dalam keadaan mati");}
}}
public class Main {
public static void main(String[] args) {
kontrolTv tvku=new televisi("SHARP");
tvku.hidupkan(true);
tvku.keraskanVolume(10);
tvku.pelankanVolume(3);
tvku.pindahChannel(5);
tvku.hidupkan(false); }
}
a.output/luarandariprogramadalah
-
5/28/2018 Modul Prak PBO
48/51
4
b.Jelaskanmaksudpembuatanobjekpadabarisberikut
kontrolTv tvku=new televisi("SHARP");
c.Bagaimanamenginisialisasisuatuinterfacedenganobjektuliskan:
Telahdiperiksa Tanggal: ModulInterfaceDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai
-
5/28/2018 Modul Prak PBO
49/51
4
InterfaceSebagaiMultipleSuperclass(MultipleImplementation)
Buatlahinterfacekomputer,interfacekontrolTv,classTelevisisertaclassmain
public interface komputer {
public void konekInternet(boolean konek);
}
public interface kontrolTv {
public void hidupkan(boolean hidup);
public void pindahChannel(int channel);
public void keraskanVolume(int tambah);
public void pelankanVolume(int kurangi);
}
public class televisi implements kontrolTv,komputer {private String merek;private boolean hidup;
private String[] saluran={"RCTI","SCTV","INDOSIAR","TPI","ANTV,TRANSTV","TRANS7"};
private int volume=0;
public televisi(String merek) {this.merek = merek;
}
public void konekInternet(boolean konek) {if(konek){
System.out.println("TV terkoneksiInternet");}else{
System.out.println("TV tidak terkoneksiInternet");}
}
public void hidupkan(boolean hidup) {if(hidup){
this.hidup=true;System.out.println("Televisi dihidupkan");
}else{this.hidup=false;
System.out.println("Televisi dimatikan");}
}
-
5/28/2018 Modul Prak PBO
50/51
)5
public void keraskanVolume(int tambah) {if(hidup){
volume=volume+tambah;
System.out.println("volume menjadi "+volume);}else{System.out.println("Televisi dalam keadaan mati");
}}
public void pelankanVolume(int kurangi) {if(hidup){
volume=volume-kurangi;System.out.println("volume di set ke "+volume);
}else{System.out.println("Televisi dalam keadaan mati");
}
}
public void pindahChannel(int channel) {if(hidup){
System.out.println("TV menjadi"+saluran[channel]);}else{
System.out.println("Televisi dalam keadaan mati");}
}}
public class Main {
public static void main(String[] args) {televisi GoogleTv=new televisi("Google");
GoogleTv.hidupkan(true);
GoogleTv.konekInternet(true);
GoogleTv.keraskanVolume(10);
GoogleTv.hidupkan(false);
}
}
a.Luarandariprogramdiatasadalah
-
5/28/2018 Modul Prak PBO
51/51
)1
b.Jelaskanmaksudbarisberikutyangterdapatpadaclasstelevisi
public class televisi implements kontrolTv,komputer
c.Behaviorsapasajayangterdapatpadaclasstelevisedandiimplementasikandari
interfaceyangmanajelaskan
Telahdiperiksa Tanggal: ModulMultipleImplementationDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada
Assisten Praktikan Nilai