Anda di halaman 1dari 48

PBO

(PEMROGRAMAN BERORIENTASI
OBJECT)

- P E RT E M UA N 1 - 2 -
CLASS
APA SIH OOP ITU ?

• Pemrograman Berorientasi Object (OOP) adalah model


pemrograman yang paling banyak dipakai saat ini.
• OOP telah menggantikan teknik pemrograman prosedural
yang telah dipakai sejak tahun 1970-an
• Java adalah bahasa yang berorientasi objek, karena itu Anda
harus paham OOP agar dapat produktif menggunakan Java.
• Program yang Berorientasi Objek akan terdiri dari objek-
objek.
• Objek-objek ini seringkali merepresentasikan apa yang ada di
dunia nyata.
ISTILAH-ISTILAH BARU DI
OOP
• Class
• Object
• Relationship (antar class)
– Dependence
– Aggregation
– Inheritance
• Encapsulation
• Instantiation & Instance
• Instance Variable
• Method (mutator & accessor method)
KELAS DAN OBJEK

• Contoh
Kelas Mahasiswa memiliki atribut NIM, Nama, Alamat, dan memiliki
perilaku (behaviour/method) seperti melakukan registrasi, perkuliahan,
ujian, praktikum, dll.
KELAS DAN OBJEK

Ani, Budi, dan Gunawan adalah objek (instans) dari kelas mahasiswa.
Mereka masing-masing memiliki atribut-atribut nama, nim, alamat (yang
nilainya masing-masing berbeda). Mereka juga memiliki behaviour yang
sama yaitu melakukan registrasi, perkuliahan, ujian, praktikum.
KELEBIHAN OOP

• Real world programming


• Reusability of code
• Resilience to change
• Information hiding
• Modularity of code
ABTSRAKSI

• Abstraksi adalah suatu proses mendaftarkan entitas-entitas (benda-


benda) yang akan berinteraksi dalam suatu aplikasi
• Entitas-entitas tersebut nantinya akan menjadi kelas, dan dari kelas
lahirlah objek
• Setelah entitas-entitas didaftarkan, maka selanjutnya ditentukan sifat-
sifat (state/atribut) dan hal yang dapat dilakukan oleh entitas tersebut
(behaviour/method)
DI PABRIK MOBIL
• Sebelum seseorang mengendarai mobil, tentu Anda harus membuat
mobil tersebut terlebih dahulu.
BAGAIMANA CARA MEMBUAT MOBIL ?
• Langkah 1 : Menggambar desain mobil.
• Langkah 2 : Menambahkan detil mobil tersebut, misal :
– Desain pedal gas untuk maju
– Desain rem untuk berhenti
– Desain setir untuk belok kiri/kanan, dll.
• Langkah 3 : Proses pembuatan mobil dimulai.
BAGAIMANA PEDAL GAS
BEKERJA ?
• Apayang sebenarnya terjadi di dalam mesin pada saat pedal gas diinjak?
• Apakah Anda sebagai pengendara perlu tahu, bagaimana cara kerja
detil dari pedal gas?
• Tentu tidak.Yang perlu Anda ketahui hanyalah bahwa kalau pedal gas
diinjak akan mempercepat laju mobil!
• Artinya, detil dan cara kerja pedal disembunyikan dari penggunanya.
• Anda cukup tahu aturan dan fungsinya saja:
Injak pedal gas sebelah tengah maka mobil akan melaju
DESAIN MOBIL à OBJEK MOBIL
• Jadi kesimpulannya, sebelum Anda membuat objek mobil, seseorang
harus merancang terlebih dahulu.
• Di dalam rancangan tersebut, semua detil cara kerja mobil
disembunyikan dari para penggunanya kelak.
• Setelah desain mobil dibuat, maka kita dapat mulai membuat berbagai
objek mobil yang diinginkan.
APA HUBUNGANNYA DENGAN OOP ?
• Sama halnya dengan penyembunyian detil PEDAL pada sebuah MOBIL,
di OOP kita menyembunyikan detil pemrograman di dalam sebuah
METHOD (FUNGSI)
• METHOD-METHOD ini dibuat dan disimpan bersama-sama di dalam
suatu desain yang disebut dengan CLASS.
– METHOD à injak gas, injak rem, belok kiri, belok kanan, dll
– CLASS à rancangan mobil
CLASS & OBJECT
• CLASS adalah suatu template/blueprint/rancangan dari object yang
akan dibuat.
• OBJECT adalah sesuatu yang diciptakan dari Class.
• Analogi lain :
– Class = cetakan kue
– Object = kue-nya
MERANCANG APLIKASI
PROGRAM BERBASIS OOP
• Sekarang, Anda diminta merancang suatu program untuk sebuah
BANK:
– Di aplikasi BANK, pasti ada yang namanya REKENING
– Dengan menggunakan konsep yang sama: Anda dapat mendesain sebuah
CLASS yang merepresentasikan REKENING.
– REKENING tersebut didesain sedemikian rupa sehingga memiliki 3
METHOD, yaitu:
• METHOD untuk menyimpan uang (tabung)
• METHOD untuk mengambil uang (tarik)
• METHOD untuk memeriksa saldo (cek)
ANALOGI
PABRIK MOBIL & PROGRAM
BANK
CONTOH
Pemrograman Berbasis Objek

¡Contoh :
§ Object : Manusia
§ Attribut : Nama, tinggi, umur, berat badan dll
§ Method : Makan, Minum, Berjalan, Bekerja
§ Object : Windows
§ Attribut : Left, Top, Width, Height, BackgroundColor,
§ Method : OnClick, OnClose, OnDoubleClick
§ Object : Keluarga
§ Attribut : ayah, Ibu, Anak[]
§ Method : TambahAnak,

Pemrograman Berorientasi Object


17
MEMBUAT CLASS DI JAVA
CLASS REKENING.JAVA
public class Rekening {

}//end class Rekening

Note:class selalu diawali dengan huruf KAPITAL


CLASS REKENING + METHOD
1.public class Rekening{
2. // Method untuk mengecek saldo
3. public void cekSaldo() {
4. System.out.println("Selamat Datang di Rekening Anda!");
5. System.out.println("Saldo Anda adalah" + 150000);
6. } // end method cekSaldo
7.} // end class Rekening

NOTE: class REKENING hanya bisa di-compile, tidak bisa di-run


Hal ini dikarenakan class Rekening bukanlah program aplikasi
(tidak memiliki main method)
CONTOH KASUS (ANALISIS MASALAH BERORIENTASI
OBJEK
Contoh masalah yang akan dibuat desain pemecahannya adalah sebagai
berikut :
• sebuah koperasi menginginkan sebuah aplikasi pelaporan rekapitulasi stok
barang yang mencatat persediaan, pemasukan dan pengeluaran barang.
Laporan ini dilakukan seminggu sekali;
• aplikasi ini akan dijalankan oleh seorang petugas khusus logistik. Petugas
tersebut akan mencatat Stok barang didapat dari supplier-supplier, baik dari
dalam maupun luar kota. Penjualan barang dilakukan pada sebuah mini market,
yang pembelinya berasal dari anggota koperasi maupun yang bukan anggota
koperasi;
• kemudian ada kebijakan kalau barang berupa makanan yang masa
kedaluwarsanya sudah lewat, harus dibuang, dan yang masa kedaluwarsanya
tinggal 6 bulan lagi, diberikan diskon 50% (asumsi makananya semuanya
mempunyai masa kedaluwarsa > 1 tahun ). Kebijakan lainnya adalah : untuk
item barang yang tinggal <= 40% dari seharusnya, harus segera ditambah
stoknya.
IDENTIFIKASI DOMAIN MASALAH
• Domain masalah didefinisikan sebagai ruang lingkup permasalahan yang
akan dipecahkan. Ruang lingkup ini membatasi permasalahan sehingga
permasalahan tidak meluas, dan tetap pada fokusnya.
• Domain masalah ini dapat ditentukan dari permintaan / requirements yang
diberikan oleh pihak yang meminta aplikasi (customer). Setelah permintaan
tersebut dikumpulkan, maka developer ( dalam hal ini programmer ) dapat
membuat pernyataan tentang apa yang akan dibuatnya , misalnya :
”Membuat sistem pelaporan stok barang pada koperasi yang mengakomodasi
kebijakan-kebijakan kedaluwarsa dan potongan harga” .
IDENTIFIKASI ENTITAS
• Setelah domain masalah diidentifikasi, developer sudah dapat
melakukan identifikasi terhadap entitas-entitas (benda-benda) yang
akan berinteraksi untuk memecahkan masalah.
• Lakukan identifikasi atas beberapa sifat dari entitas tersebut, antara
lain: entitas dapat bersifat konseptual atau berupa benda fisik, entitas
memiliki atribut atau karakteristik, entitas memiliki operasi
• Dalam fase ini, kegiatan utamanya adalah mengumpulkan entitas-entitas
yang mungkin terlibat sebanyak-banyaknya. Kemudian daftarkan atribut
dan operasi (method) yang dimiliki oleh setiap entitas.
Entitas Atribut Operasi
Barang – jumlah – hitung tanggal kedaluwarsa
– harga beli – hitung harga jual
– tanggal kadaluwarsa – hitung diskon
– harga jual
– ID barang
– diskon

Supplier – nama – modifikasi nama supplier


– lokasi – modifikasi lokasi supplier
– ID supplier
– jenis barang
Koperasi – daftar transaksi – modifikasi daftar transaksi
– gudang
Pembeli – ID pembeli – .modifikasi ID pembeli
– nama pembeli – modifikasi nama pembeli

Gudang – daftar stok barang – modifikasi stok barang


– koperasi – set koperasi
Daftar Transaksi – data penjualan [ ] – tambah data penjualan
– data pembelian [ ] – tambah data pembelian
Daftar Stok Barang – Barang [ ] – tambah barang
– jumlahBarang[] – kurangi barang
SELEKSI ENTITAS
Seleksi entitas dilakukan dengan mempertimbangkan hal-hal berikut :
• Relevansi dengan permasalahan
- Apakah entitas tersebut eksis pada batasan-batasan yang ditentukan
pada permasalahan ?
- Apakah entitas tersebut dibutuhkan untuk menyelesaikan masalah ?

• Eksistensi entitas haruslah independent


Hasil Seleksi Entitas

BARANG KOPERASI
jumlah daftar stok barang
harga beli daftar transaksi
tanggal kedaluwarsa
harga jual
ID barang
hitung tanggal kedaluwarsa modifikasi daftar
hitung harga jual transaksi
hitung diskon

DAFTAR TRANSAKSI DAFTAR STOK BARANG


data penjualan [ ] barang []
data pembelian [ ] jumlah barang []
tambah data penjualan tambah barang
tambah data pembelian kurangi barang
PEMBUATAN KELAS

• Diagram UML (Unified Modeling Language)

SegiEmpat
+panjang: double
+lebar: double
+setPanjang(p: double)
+setLebar(l: double)
+hitungLuas(): double
+hitungKeliling(): double
public class SegiEmpat{
//deklarasi variabel (atribut)
public double panjang;
SegiEmpat
public double lebar;
//deklarasi method +panjang: double
+lebar: double
public void setPanjang(double p){
panjang = p; +setPanjang(p: double)
} +setLebar(l: double)
public void setLebar(double l){ +hitungLuas(): double
+hitungKeliling(): double
lebar = l;
}
public double hitungLuas(){
return panjang*lebar;
}
public double hitungKeliling(){
return 2*(panjang + lebar);
}
}
KELAS DENGAN METHOD
MAIN
SegiEmpat
+panjang: double
+lebar: double
+setPanjang(p: double)
+setLebar(l: double)
+hitungLuas(): double
+hitungKeliling(): double
+main(args: String[])
public class SegiEmpat{
public double panjang;
public double lebar;
public void setPanjang(double p){
panjang = p;
}
public void setLebar(double l){
lebar = l;
}
public double hitungLuas(){
return panjang*lebar;
}
public double hitungKeliling(){
return 2*(panjang + lebar);
}
public static void main(String[] args){
SegiEmpat se1;
se1 = new SegiEmpat(); //pembentukan objek
SegiEmpat se2 = new SegiEmpat(); // pembentukan objek
se1.setPanjang(10);
se1.setLebar(5);
se2.setPanjang(5.5);
se2.setLebar(2.3);
System.out.println(“Luas segi empat 1 =“+se1.hitungLuas());
System.out.println(“Keliling segi empat 2 = “+
se2.hitungKeliling());
}
}
CATATAN TAMBAHAN
• Objek à sebuah representasi/abstraksi dari sebuah entitas
• Contoh : car, soda machine, ATM machine
• Class, terdiri dari :
– Data/Attribute
– Methods/behaviour
• Contoh : Remote tv sebagai objek
– Data/attribute : channel, volume, menu, switch on/off
– Methods/behaviour : memperbesar volume, mengecilkan
volume, menghidupkan, mematikan
CATATAN TAMBAHAN

Package Class Name Object Name

Class

JFrame myWindow = new JFrame()


Objek

Data
Argument
Attri
b
CATATAN TAMBAHAN
• Pembuatan Kelas :
– Nama Kelas à Nama Benda
– Diawali dengan huruf Kapital :
• Mahasiswa
• Mobil
• Barang
– Access Modifier 4P :
• Public
• Private
• Package
• Protected
– Body of class :
• Attribute : Variabel, Contstanta, Field
• Methods
CATATAN TAMBAHAN

• Cara Penulisan Attribute (bagian terkecil dari class)


– Nama Benda :
• nim
• nama
• alamat
– Huruf kecil à Camel Case :
• namaBarang
• nilaiMaksimum
– Access Modifier 4P
• private int nilai;
• private string nim;
• public static final int max=100;
CATATAN TAMBAHAN

• Cara penulisan Operations :


– Sebuah proses/kata kerja :
• hitung
• cari
– Huruf kecil à camel case :
• pendaftaranNasabahBaru();
• deleteCustomer();
– Access Modifier 4P

Anda mungkin juga menyukai