You are on page 1of 38

Pertemuan 1

Dasar PBO (Java)

Christine Dewi, S.Kom.


Kelas dan Obyek
Kelas
• Blueprint untuk objek.
• (Memuat semua data dan metoda/fungsi yang
bersifat umum).
Obyek
• Dalam bahasa Java segala sesuatu adalah
objek.
• Dapat juga diartikan sebagai obyek – obyek
pada dunia nyata.
Dosen (KELAS)  Instansiasi  Adi, Jasson, Hendro, Jessica,
Indrastanti (OBJEK).

Sehingga obyek juga memuat data & metoda.


Contoh:
Tukul (Obyek)
Data : Nama, alamat, dsb.
Metoda : Kuliah, makan, pacaran, dsb.
Pembungkusan (Encapsulation)

• Penyembunyian Data dan Metoda/Fungsi


Dalam Suatu Objek.
• Derajad Kenampakan Data dan
Metoda/Fungsi : Private, Public, Protected.
Penentu Akses / Access Modifier
Merupakan hak akses data dan variable.
• Public
Dapat diakses dari luar kelas.
• Private
Hanya bisa diakses kelas itu sendiri (tidak bisa
dari luar kelas).
• Protected
Dapat diakses kelas itu & turunannya.
Setter dan Getter

• Digunakan untuk mengakses variable yang


berada di luar kelas yang biasanya tidak
diperbolehkan.
Class Buku
Class TestBuku
Pewarisan
• Membuat suatu kelas dengan memanfaatkan
kelas yang sudah ada.
• Mewarisi semua metoda dan variabelnya.
• Kelas A disebut Super Kelas (Parent Class).
• Kelas B disebut Sub Kelas (Child Class).
Class Manusia
Class Andi
Class TestInheritance
Akses Modifier Protected

• untuk mengatur agar suatu variabel ataupun


metode yang terdapat pada sebuah kelas
dapat diakses pada kelas itu sendiri dan pada
subkelas/ kelas turunan.
Kelas dasar : Manusia.java
 
public class Manusia {
private String nama;
protected int umur = 0;
public void infoUmur() {
System.out.println("umur: " + this.umur);
}
}
Kelas turunan : Andi.java
 
public class Andi extends Manusia{
String hobi;
}

Pada kelas turunan (Andi) kita tidak dapat


mengakses variabel yang memiliki akses
modifier berjenis private yaitu nama yang
terdapat pada kelas dasar (Manusia).
Kelas uji: TestInheritance.java
 
public class TestInheritance {
public static void main(String[] args) {
Andi andi = new Andi();
andi.infoUmur();
System.out.println("umur andi: " + andi.umur);
System.out.println("nama andi: "+andi.nama);
}
}
• Agar dapat diakses hanya oleh kelas turunan
saja, kita dapat mengganti akses modifier
variabel nama yang semula private menjadi
protected.
Metode Superkelas

• Adakalanya perlu untuk memanggil metode


superkelas dari subkelas. Untuk keperluan ini,
Java menyediakan keyword super yang berarti
superkelas.
• Kelas dasar : Manusia.java
 
public class Manusia {
protected String nama;
protected int umur = 0;
public void infoUmur() {
System.out.println("umur: " + this.umur);
}
}
• Kelas turunan : Andi.java

public class Andi extends Manusia {


String hobi;
public void infoUmur() {
super.infoUmur(); // memanggil metode
super kelas
}
}
Terlihat bahwa kelas turunan (Andi)
mendefinisikan metode infoUmur, sementara
kelas dasarnya (Manusia) juga memiliki
metode infoUmur(). Hal seperti ini
diperbolehkan dan sering dikatakan sebagai
”method overridding” atau ”penimpaan
metode”.
• Kelas uji: TestInheritance.java
 
public class TestInheritance {
public static void main(String[] args) {
Andi andi = new Andi();
andi.umur=15;
andi.infoUmur();
System.out.println("umur andi: " +
andi.umur);
}
}
Konstruktor Superkelas

• Pada contoh-contoh sebelumnya superkelas


tidak memiliki konstruktor. Bagaimana halnya
jika superkelas memiliki konstruktor?
Bagaiman caranya bila subkelas hendak
memanggil konstruktor? Kita dapat
menggunakan keyword super untuk
keperluan tersebut dengan bentuk:
super(argumen1,argumen2,...);
• Kelas dasar : Manusia.java
 
public class Manusia {
private int umur;
 
// konstruktor
public Manusia() {
this.umur = 0;
}
public void infoUmur() {
System.out.println("umur: " + this.getUmur());
}
public int getUmur() {
return umur;
}
public void setUmur(int umur) {
this.umur = umur;
}
}
• Kelas dasar : Manusia.java
 
public class Manusia {
private int umur;
 
// konstruktor
public Manusia() {
this.umur = 0;
}
public void infoUmur() {
System.out.println("umur: " + this.getUmur());
}
public int getUmur() {
return umur;
}
public void setUmur(int umur) {
this.umur = umur;
}
}
• Kelas uji: TestInheritance.java
 
public class TestInheritance {
public static void main(String[] args) {
Andi andi = new Andi(15,"berenang");
andi.infoUmur();
System.out.println("hobi andi: " +
andi.hobi);
}
}
Polimorfisme

• kemampuan untuk berhubungan dengan


berbagai tipe berdasarkan pada fitur yang
sama.
Class Makanan
Class MakananLokal extends Makanan
Class Soto extends MakananLokal
Class TestPolimorfisme
TAKE HOME
PETUNJUK
• Buatlah sebuah kelas buku yang mempunyai atribut
judul,pengarang,jumlahBuku,hargaSatuan
kemudian Buatlah sebuah method untuk mencetak
• Buatlah sebuah kelas buku2 yang mewarisi kelas
buku kemudian Buatlah method hargaBuku yang
digunakan untuk menghitung hargaBayar dengan
ketentuan sbb
- hargaBayar = hargaSatuan*jumlahBuku
- Bila hargaBayar >100000 maka dapat diskon 15%
PETUNJUK

• Buatlah sebuah kelas buku3 yang mewarisi kelas


buku kemudian Buatlah method hargaBuku yang
digunakan untuk menghitung hargaBayar dengan
ketentuan sbb
- hargaBayar = hargaSatuan*jumlahBuku
- Bila hargaBayar >200000 maka dapat diskon
20%
PETUNJUK
• Buatlah sebuah kelas beli untuk mengakses
ketiga kelas tersebut sehingga menghasilkan
output sbb
KETENTUAN :
• Tugas Individu.
• Terlambat, copy paste, nilai = 0 !!!!!
• Yang di kumpul : Sourcode/file.java, Output
program seperti contoh, sejelas mungkin.
ekodili@ymail.com
• Nama : PBOL_SATU_NIM

You might also like