Anda di halaman 1dari 37

Kelas & Obyek

Pemrograman Berorientasi Obyek


Materi
• Pendahuluan
• Kelas dan Obyek
• Access Modifier
• Accessor & Mutator
• Constructor
Pendahuluan
• Saat menulis program, programmer merangkai kumpulan "blok"
• Dalam Java, program dibangun dari kumpulan obyek.
• Setiap obyek memiliki perilaku khusus
• Pemrogram dapat memanipulasi obyek untuk memperoleh hal tertentu
• Analoginya, tukang bangunan membangun rumah dari berbagai
elemen, seperti pintu, keran, pipa, dll.
• Setiap bagian memiliki fungsi khusus, namun bisa bekerjasama untuk
menyelesaikan suatu tugas.
• Tukang bangunan tidak perlu memikirkan cara membuat pintu, keran, dll.
• Tukang bangunan hanya perlu "merangkai" elemen-elemen tersebut untuk
membentuk sebuah rumah
Pendahuluan (lanjutan)
• Obyek adalah sebuah entitas yang dapat dimanipulasi dengan
memanggil method-method yang ada.
• Saat memanggil method, pemrogram tidak perlu mengetahui persis
instruksi di dalamnya
• Pemrogram hanya perlu mengetahui definisi perilakunya
Kelas dan Obyek
• Kelas: konsep dan deskripsi dari sesuatu
• Class mendeklarasikan method yang dapat digunakan (dipanggil) oleh object
• Obyek: instance dari class, bentuk (contoh) nyata dari class
• Object memiliki sifat independen dan dapat digunakan untuk memanggil
method
• Contoh Kelas dan Obyek:
• Class: jendela
• Object: jendela rumah Amir, jendela toko Cici, jendela sekolah Ito
Berorientasi
Obyek
•Attribute:
• Topi, Baju, Jaket,
• Tas Punggung, Tangan, Kaki,
Mata

•Behavior:
• Berjalan ke Depan
• Berjalan Mundur
• Berbelok ke Kiri
• Memanjat
Berorientasi Objek Attribute (State):
Ban, Stir, Pedal Rem, Pedal Gas,
Warna, Tahun Produksi
Behavior:
Berjalan Maju
Berjalan Mundur
Berpindah Persneling

Attribute  Variable(Member)
Behavior  Method(Fungsi) 7
Latihan 2.1
• Sebutkan Atribut dan Behavior dari obyek berikut ini :
• Mahasiswa
• Dosen
Perbedaan Kelas & Obyek
• Kelas dapat dianalogikan sebagai cetakan kue.
• Obyek adalah kue yg dihasilkan dari cetakan tersebut.
• Warna kue yang dihasilkan bisa bermacam-macam meskipun berasal dari
cetakan yang sama
• Object bersifat independen
Class = Method + Variable

Class Sepeda gir

kecepatan variable

tampilkan kecepatan

ubah gir method

10
Object = Method + Variable yg Memiliki Nilai

Object Sepedaku gir = 3


instance variable
kecepatan = 10km/jam

tampilkan kecepatan ()
kecepatan = 10 km/jam
instance
method
ubah gir (2)
gir = 5

11
Attribute
• Attribute adalah variabel yang ada pada class, yang nilainya bisa
ditentukan di object
• Variabel digunakan untuk menyimpan nilai yang nantinya akan
digunakan pada program
• Variabel memiliki jenis (tipe), nama dan nilai
• name dan age adalah atribut/variabel dari kelas Person
Membuat class
public class Mobil {
String warna; MobilAksi.java
int tahunProduksi; public class MobilAksi{
} public static void main(String[] args){
Mobil.java //membuat object
Mobil mobilku = new Mobil();
/* memanggil atribut dan memberi nilai */
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
//mencetak
System.out.println("Warna: " + mobilku.warna);
System.out.println("Tahun: " + mobilku.tahunProduksi);
}
package kelas }
Method
• A program performs useful work by calling methods on its
objects
• You use an object by calling its methods
Membuat Method Pada Class
public class Mobil2{
String warna;
int tahunProduksi;

void printMobil()
{
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
Membuat Obyek dan Memanggil Method
public class Mobil2Aksi
{
public static void main(String[] args)
{
Mobil2 mobilku = new Mobil2();

mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}
}
Ulangi Materi Dari Awal
Latihan 2.2
• Buat class Ponsel, masukkan dalam package kelas
• Class Handphone berisi empat method di bawah:
1. hidupkan()
2. lakukanPanggilan()
3. kirimSMS()
4. matikan()
• Isi masing-masing method dengan tampilan status menggunakan
System.out.println()
• Buat class PonselAksi, dan panggil method-method diatas
dalam class tersebut
Hasil Latihan 2.2
>>> Ponsel Menyala <<<
~ (Kriiiing) Panggilan Dilakukan ~
~ (Ting) SMS Terkirim ~
>>> Ponsel Mati <<<
Latihan 2.3
• Buat class Ulm, masukkan dalam package kelas
• berisi empat method di bawah:
1. cetakVisi()
2. cetakMisi1()
3. cetakMisi2()
4. cetakMisi3()
• Isi masing-masing method dengan tampilan status menggunakan
System.out.println()
• Buat class UlmAksi, dan panggil method-method diatas
dalam class tersebut
Modifier
• Modifier adalah keyword yang diletakkan di depan class, interface,
variable (field) atau method
• Jenis Modifier:
1. Access Modifier:
• Pengaturan pengaksesan dari variable dan method
2. Static Modifier:
• Membuat method dan variable menjadi milik class, bukan object
• Tidak perlu membuat object untuk penggunaan variable (field) dan method
3. Final Modifier:
• Menyatakan bahwa sesuatu (class, method, variable) sudah final dan tidak dapat diubah
Access Modifier
• Private
• Pengaksesan suatu instance variabel dan method hanya dapat dilakukan di dalam
class ( tidak bisa dari dari luar class)
• Tanpa Tanda
• Pengaksesan suatu instance variabel dan method dapat dilakukan di dalam kelas
dan kelas lain dalam satu paket
• Protected
• Pengaksesan suatu instance variabel dan method dapat dilakukan di dalam kelas,
kelas lain dalam satu paket, dan sub class
• Public
• Pengaksesan suatu instance variable dan method dapat dilakukan dari luar kelas
Access Modifier

Modifier Dalam Class Dalam Package Dalam Dalam Package


yang Sama yang Sama SubClass Lain

private       

tanpa tanda    

protected   

public     
Latihan 2.4
• Buat kelas MobilPrivat
• Ubah semua atribut kelas Mobil2 pada package kelas menjadi private
• Buat kelas MobilPrivatAksi
• Copy-Paste kelas Mobil2Aksi pada package kelas
• Ubah pembuatan obyeknya menjadi
MobilPrivat mobilku = new MobilPrivat();

• Apa yang terjadi??


Method Accessor & Mutator
• Salah satu cara untuk melakukan enkapsulasi
• Accessor berguna untuk mengembalikan nilai suatu atribut “private”
• a.k.a get method atau getter
• Biasanya diberi nama dengan prefix get, misal getNama
• Mutator berguna untuk mengubah nilai suatu atribut “private”
• a.k.a set method atau setter
• Biasanya diberi nama dengan prefix set, misal setNama
Latihan 2.4 : MobilAcMu.java
public class MobilAcMu public int getTahunProduksi() {
{ return tahunProduksi;
private String warna; }

private int tahunProduksi;


public void setTahunProduksi(int tahunProduksi) {
this.tahunProduksi = tahunProduksi;
public String getWarna() { }
return warna;
} void printMobil() {
System.out.println("Warna: " + warna);
public void setWarna(String warna) { System.out.println("Tahun: " + tahunProduksi);
this.warna = warna; }
} }
Latihan 2.4 : MobilAcMuAksi.java
public class MobilAcMuAksi
{
public static void main(String[] args)
{
MobilAcMu mobilku = new MobilAcMu();

mobilku.setWarna("Biru");
mobilku.setTahunProduksi(1990);

mobilku.printMobil();
}
}
Kenapa Menggunakan Accessor & Mutator?
• Padahal masalah tersebut bisa diselesaikan dengan mengubah
modifier menjadi public.
• Alasannya adalah :
• Data suatu obyek sebaiknya disembunyikan
• Perubahan penanganan data bisa dilakukan di balik layar tanpa harus
mengubah metode pemanggilannya

Berikan contoh pada setWarna


*tidak boleh menginput warna “Biru”. Jika diinput warna tsb, ubah menjadi “Tanpa Warna”
Latihan 2.5 : Sepeda.Java
public class Sepeda {
private int gir;

public void setGir(int penambahanGir) {


this.gir += penambahanGir;
}

public int getGir() {


return this.gir;
}

public void cetakGir(){


System.out.println("Posisi gir sepeda saat ini : " + this.gir);
}
}
Latihan 2.5 : SepedaAksi.Java
public class SepedaAksi
{
public static void main(String[] args)
{
Sepeda bmx = new Sepeda();
bmx.cetakGir();
System.out.println("Naikan gir sebanyak 3");
bmx.setGir(3);
bmx.cetakGir();
System.out.println("Turunkan gir sebanyak 1");
bmx.setGir(-1);
System.out.println("Gir sepeda saat ini " + bmx.getGir());
}
}
Latihan 2.6
• Buat program yang mewakili counter berikut ini
Constructor
• Method yang digunakan untuk memberi nilai awal pada saat
object dibuat
• Dipanggil secara otomatis ketika kata kunci new digunakan
untuk membuat instan kelas
• Sifat konstruktor:
• Nama konstruktor sama dengan nama class
• Tidak memiliki nilai balik dan tidak boleh ada kata kunci void
Latihan 2.7 : MobilKons.Java
public class MobilKons {
private String warna;
private int tahunProduksi;

public MobilKons(String warna, int tahunProduksi) {


this.warna = warna;
this.tahunProduksi = tahunProduksi;
}

public void info() {


System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
Latihan 2.7 : MobilKonsAksi.Java

???
Latihan 2.8
1. Buat class Bank
• Buat konstruktor class Bank dengan parameter: saldo
• Buat method: simpanUang, ambilUang, dan getSaldo
2. Buat class BankAksi, tetapkan saldo awal melalui konstruktor
sebesar Rp. 100000, jalankan 3 method di atas, dan tampilkan
proses sebagai berikut:
Selamat Datang di Bank Unan
Saldo saat ini: Rp. 100000

Simpan uang: Rp. 500000


Saldo saat ini: Rp. 600000

Ambil uang: Rp. 150000


Saldo saat ini: Rp. 450000
Latihan 2.9
1. Buat class KartuMember
• Buat konstruktor dengan parameter: saldo
• Buat method: isiKartu, pakaiKartu, dan cekSaldo
• Berbelanja menggunakan kartu mendapat diskon 10% dari nilai belanja
2. Buat class KartuMemberApp, tetapkan saldo awal lewat konstruktor
Rp. 50000, jalankan:
Selamat Datang di IndoApril
Saldo saat ini: Rp. 50000

Pengisian saldo: Rp. 70000


Saldo saat ini: Rp. 120000

Total Belanja: Rp. 100000


Saldo saat ini: Rp. 30000
Latihan 2.9
1. Buat class KartuMember
• Setiap anggota mendapatkan saldo awal gratis Rp. 150.000,-
• Berbelanja menggunakan kartu mendapat diskon 10% dari nilai belanja
2. Buat class KartuMemberApp dengan output seperti berikut
Selamat Datang di IndoApril
Saldo saat ini: Rp. 150000

Pengisian saldo: Rp. 50000


Saldo saat ini: Rp. 200000

Total Belanja: Rp. 100000


Saldo saat ini: Rp. 110000

Anda mungkin juga menyukai