Materi OOP12121213121313131313131313.ppt

RyanAndikaIslamovic 0 views 66 slides Oct 17, 2025
Slide 1
Slide 1 of 66
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66

About This Presentation

fhfhfhfhfhfhfhfh vhc

i
iii
ii
ii
i
i

iii
i
i

i
i
i
ii

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii-pipip
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii


io
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...


Slide Content

•Paradigma berbasis obyek (object-oriented/OO)
•Mengapa OO ?
•Pemrograman OO
•Konsep-konsep dalam OOP
◦Kelas dan obyek
◦Mekanisme OO: encapsulation, inheritance, dan
polymorphism
•OO dan interoperabilitas
•Tools OO dalam komputasi terdistribusi

Pemrograman Berorientasi Objek (OOP) :
menyelesaikan persoalan pemrograman
dengan membagi persoalan ke dalam unit-unit
kecil.
Unit terkecil ini selanjutnya disebut
dengan OBJEK.

•Paradigma pemrograman: pandangan
mendasar terkait tentang formulasi sebuah
solusi dalam bahasa pemrograman
•Paradigma pemrograman menjelaskan tentang
perspektif/pandangan pemrogram tentang
program yang akan dibuatnya
•Pemrograman berbasis obyek (OOP)
mendasarkan pada konsep object dan
interaksinya

•Dalam paradigma berbasis object, “object” adalah
representasi sebuah entitas yang memiliki makna
tertentu yang menjadi perhatian si pemandang 
object memiliki abstraksi tertentu bagi si
pemandang
◦Contoh: dalam sistem akademik di kampus, beberapa
kandidat object adalah: mahasiswa, dosen, kelas, mata
kuliah, kurikulum, praktikum, laboratorium, perpustakaan,
KRS, KHS, …
•Object dapat menerima pesan (message),
mengolah data, dan mengirimkan pesan ke object
lain  membentuk interaksi antar object
•Object bersifat independen: tiap object dapat
dipandang sebagai sebuah entitas mandiri yang
memiliki peran atau tanggung jawab tertentu

pembeli kasir pelayan
pesan & bayar
siapkan burger
siapkan kentang
siapkan minum
sajikan
Skenario: restoran cepat-saji

Object dan interaksinya dapat digunakan untuk
merepresentasikan lingkup permasalahan
◦Object merepresentasikan entitas-entitas yang dianggap
penting dalam skenario permasalahan
◦Interaksi antar object menggambarkan bentuk-bentuk
relasi antar entitas di dalam skenario permasalahan
OO sebagai tool untuk memodelkan sistem di dunia
nyata (tujuan bahasa Simula-67)  setiap sistem
selalu dapat digambarkan melalui object-object
penyusunnya dan bagaimana object-object tersebut
saling berinteraksi
Dalam software engineering: OO analysis  OO
design  OO programming

Natural: mengikuti cara berpikir manusia
(manusia memandang dunianya sebagai
kumpulan object yang berinteraksi)
Abstraksi: menjelaskan makna sebuah entitas
secara cepat dan mudah
Enkapsulasi: dapat menyembunyikan detil
yang tidak perlu
Modular: object adalah entitas yang
independen

Enkapsulasi  suatu cara untuk
menyembunyikan implementasi detail dari
suatu class dalam rangka menghindari akses
yang ilegal
Inheritansi  dimana suatu entitas/obyek
dapat mempunyai entitas/obyek turunan.
Dengan konsep inheritance, sebuah class
dapat mempunyai class turunan
Polymorphism  kemampuan untuk
merepresentasikan 2 bentuk yang berbeda

Merealisasikan entitas-entitas object dalam
desain software (OOD) dalam bahasa
pemrograman
Bahasa pemrograman berbasis object
menyediakan mekanisme untuk bekerja
dengan:
◦kelas dan object
◦methods
◦inheritance
◦polymorphism
◦reusability

Ragam bahasa pemrograman berbasis OO
◦Bahasa OO “murni”  semua diperlakukan secara
konsisten mengikuti teori OO dan “memaksa”
pemrogram mengikutinya. Contoh: Smalltalk, Eiffel,
Ruby
◦Bahasa yang dirancang untuk OOP, tetapi dengan
beberapa elemen prosedural. Contoh: Java (program
utama/entry point)
◦Bahasa yang aslinya prosedural, tetapi kemudian
ditambah fitur-fitur OO. Contoh: C++, Perl, PHP

OBJEK & KELAS (CLASS)
◦Objek : unit yang mewakili entitas di dunia nyata
◦Kelas : penghasil objek
ATRIBUT/DATA/PROPERTY/VARIABEL
◦Menyimpan informasi/karakteristik setiap objek
METODE (METHOD)/BEHAVIOUR
◦Menyatakan proses-proses apa saja
yang dapat dilakukan oleh sebuah
objek.

Berbagai benda di sekitar kita adalah objek
nyata yang dapat dilihat, seperti : kucing,
meja, rumah, orang , dll
Persoalannya, bagaimana memindahkan
pemikiran objek di dunia nyata menjadi objek
di dunia software atau pemrograman,
khususnya Java?
Ambil contoh objek nyata yang akan
dipindahkan adalah objek orang.

Setiap objek yang dinamakan ‘orang’ pasti
memiliki : nama, tinggi badan, berat badan,
warna rambut, warna kulit, jenis kelamin,
menggunakan kacamata, dll
Ciri-ciri tersebut dapat dipindahkan
menjadi variabel-variabel dari
class yang sering disebut sebagai :
ATRIBUT atau DATA

Sebutkan objek-objek yg ada di sekeliling
kita !
Apakah Objek itu ?
◦Objek : benda-benda mati ?
◦Objek : makhluk hidup ?
◦Objek : barang abstrak ?

Sebuah instance (perwujudan nyata) dari suatu kelas tertentu
public class SegiEmpat {
int panjang;
int lebar;
string warna;
public SegiEmpat(string w, int p, int l) {
panjang = p; lebar = l; warna = w;
}
public setWarna (string w) {
warna = w;
}
}
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
SegiEmpat sPutih = new SegiEmpat(“putih”, 15,10);
SegiEmpat sOrange = new SegiEmpat(“orange”, 30,15);

Objek dalam OOP, memiliki pengertian yg
sama dengan objek-objek yg ada di
sekeliling kita !
Objek bisa berupa :
◦Benda benda mati
◦Makhluk hidup
◦Barang/ sesuatu yg abstrak
Objek : entitas yg ada disekeliling kita.
Mirip seperti Entitas yg anda tentukan
ketika membuat ER diagram.

Sebutkan apa saja yg biasanya dimiliki oleh
suatu objek ?

Objek memiliki :
◦Nama : identifikasi dari objek
◦State : status / ciri / atribut yg terdapat pd
objek
◦Behavior : apa yg dapat dilakukan oleh objek
tsb
Dalam OOP :
◦State = atribut
◦Behavior = method
Ekivalensinya dalam bhs non-OOP :
◦State = variabel
◦Behavior = fungsi / prosedur

Sebutkan dari objek-objek disekitar kita :
◦Nama objek
◦State / atribut
◦Behavior
Any question, please… ?

Objek monitor komputer di meja anda
apakah sama dengan objek monitor di
meja teman sebelah kiri/kanan anda ?
Karakteristiknya (state & behavior) sama,
tetapi merupakan 2 benda yg berbeda.

Mendefinisikan karakteristik abstrak dari
sebuah entitas
◦Property (statis) – fields, atribut
◦Behaviour (dinamika) – fitur, methods
◦Contoh: abstraksi “sepeda” memiliki property “punya
roda”, “punya rantai”, dsb., dan behaviour “bisa
berjalan”, “bisa berbelok”, dsb.
Sebagai abstraksi dari sebuah entitas, definisi
kelas harus mencerminkan karakteristik
sebenarnya dari entitas tsb.

Kelas merupakan “cetakan” (template) untuk
instance (wujud nyata) entitas-entitas yang
direpresentasikannya
◦Sebuah kelas dapat melahirkan lebih dari satu
instance
satu template
banyak instance
(wujud nyata)

Kelas : kelompok objek-objek yg memiliki
karakteristik yg sama (yg sejenis)
Kelas : definisi /spesifikasi dari objek-objek
Lebih tepatnya kelas di-analogi-kan sebagai :
Cetakan kue
Blueprint / denah bangunan
Resep masakan
dll
Dari satu cetakan bisa dibuat banyak kue yg
bentuknya sama.
Dari satu blueprint rumah bisa dibuat banyak
rumah yg bentuk, ukuran, bahannya sama.

Misalkan sebuah kelas :
◦Nama kelas : Orang
◦Atribut :
Nama : String
Umur : integer
◦Method :
makan()
Orang
+ nama : String
+ umur : int
+ makan() : void

◦Contoh pemisalan objek orang nyata menjadi kode
program dalam class Orang :
class Orang {
String nama; //nama orang
int tinggiBadan; //dalam cm
int beratBadan; //dlm kg
String warnaRambut; //hitam, pirang, coklat
String warnaKulit; //sawoMatang, hitam, putih
String jenisKelamin; //pria atau wanita
boolean berkacamata; //bila berkacamata berarti true
}

A. Buatlah kelas-kelas berikut :
1.
2.
Mobil
warna
tahun
merek
Mahasiswa
nim
nama
jurusan

Method
◦Selain memiliki atribut(STATE) yang diimplementasikan
sebagai data, orang/manusia juga dapat melakukan suatu
aksi atau pekerjaan tertentu (BEHAVIOR).
◦Contoh aksi/behavior yang umum adalah menangis dan
tertawa
◦Kedua behavior tsb bisa dipindahkan ke dalam bahasa
pemrograman menjadi method sbb :
void menangsi() {
System.out.println(“hik..hikk..hik…”);
}
void tertawa() {
System.out.println(“ha..ha..ha..ha..”);
}

Method merupakan perwujudan aksi atau
tindakan dari dunia nyata di dalam
pemrograman komputer.
Method dalam dunia pemrograman juga “pasti
melakukan sesuatu aksi”, misalnya
menampilkan String di konsol atau
melakukan operasi tertentu.

Kelas Mobil Kelas Mahasiwa
Mobil
warna
merk
tipe
kapasitas tangki
start
stop
dipercepat
Mahasiswa
nim
nama
jurusan
ipk
cek nilai ipk
lihat biodata
registrasi
data/atribut
perilaku/
method

Adalah cetak biru (blueprint) atau prototipe yang
mendefinisikan variabel-variabel (data) dan
method-method (perilaku) umum dari sebuah
objek.
Membuat kelas baru == membuat tipe data baru.
Membuat class != membuat objek.
Membuat objek == membuat instance
dari class (perwujudan dari class)
Sedangkan Proses pembuatan object
disebut dengan instansiasi class.

Ilustrasi perbedaan antara class dan objek

Dari gambar di atas dapat dipahami bahwa
suatu class dapat memiliki banyak objek, dan
setiap objek akan mewarisi data member dan
method yang sama dari class
Untuk membuat objek Orang dari class
Orang, gunakan keyword new sbb :
Orang orang1 = new Orang();
Orang orang2 = new Orang();
setiap objek dapat memiliki state
atau nilai data member yang berbeda
(hanya nama dan tipe variabel yang sama)

Objek-objek yang dibuat perlu disimpan dalam
variabel yang akan menyimpan
referensi/address dari objek yang dibuat.
Variabel yang tipe datanya berupa class inilah
yang disebut sebagai
variabel reference.

Memindahkan orang dari dunia nyata menjadi class Orang

public class SegiEmpat {
int panjang;
int lebar;
string warna;
public SegiEmpat(string w, int p, int l) {
panjang = p; lebar = l; warna = w;
}
public setWarna (string w) {
warna = w;
}
}
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
field, menunjukkan atribut/property
constructor, untuk menciptakan
object (instance) baru dengan
property tertentu
methods atau member functions,
mendeskripsikan behaviour atau
aktivitas yang bisa dijalankan
memanggil constructor untuk membentuk
object baru

Ilustrasi pembuatan objek dari class

Lakukan instansiasi dari class Mobil, dimana
masing-masing objek memiliki data sbb :
Atribut Mobil1 Mobil2 Mobil3
Warna Merah Hijau kuning
Merk Alphard yaris panther
Tipe XV-2 Sporty adventure
Kapasitas
tangki
10 7 5

Lakukan instansiasi dari class Mahasiswa,
dimana masing-masing objek memiliki data
sbb :
Atribut Mahasiswa1 Mahasiswa2 Mahasiswa3
nim 01234 01235 01236
nama Alfa Betha Gamma
jurusan Informatika Elektronika Sipil
ipk 3.4 3.7 3.0

Enkapsulasi: lokalisasi fitur-fitur sebuah object (fields dan
methods) dalam definisi object tersebut
Enkapsulasi menyembunyikan property dan behaviour
object dari pihak luar (object yang lain)  object lain
melihat object ini sebagai “black box” saja
Enkapsulasi memisahkan antara bagian publik (yang bisa
dilihat oleh pihak luar (object lain) dan bagian privat
(internal object itu sendiri) dengan tegas  fitur ini
memberi keleluasaan/independensi untuk bekerja dengan
aspek internal tanpa harus bergantung pada aspek
publik/eksternal  berguna untuk menangani berbagai
persoalan interoperabilitas

Objek & kelas : perwujudan dari konsep
encapsulation
Dua pengertian dari konsep encapsulation
:
◦Atribut & method dibungkus jadi satu
◦Atribut (& method) dapat dilindungi sehingga
tidak dapat diakses dari luar secara langsung
Bisa dilakukan pada bahasa non-OOP ?
◦Bhs C : bisa memasukkan fungsi kedalam struct
?
◦Bhs Pascal : bisa memasukkan procedure /
function kedalam record ?

Penjelasan pengertian kedua (akan
dijelaskan lebih jauh pada pertemuan
kuliah mengenai Get & Set method)

public class SegiEmpat {
int panjang;
int lebar;
string warna;
public SegiEmpat(string w, int p, int l) {
panjang = p; lebar = l; warna = w;
}
public setWarna (string w) {
warna = w;
}
}
sPink
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
setWarna(string w)
Pihak luar (object lain) melihat sPink
sebagai sebuah “kotak hitam” yang
tidak terlihat isinya, kecuali fields dan
methods yang memang dideklarasikan
secara publik
Object lain tidak bisa
melihat apa yang dilakukan
sPink secara internal

Dalam dunia OO, beberapa object memiliki sifat/ciri
yang mirip dengan yang lain  sebuah kelas object
dapat didefinisikan dari kelas yang lain
◦Kemiripan ini membentuk hubungan sifat yang bersifat
hirarkis
◦“pesawat penyergap adalah sebuah pesawat terbang yang
dilengkapi dengan persenjataan dan dapat terbang melebihi
kecepatan suara”
“pesawat penyergap” memiliki ciri yang sama dengan “pesawat
terbang”  “pesawat penyergap” mewarisi sifat “pesawat terbang”
“pesawat penyergap” memiliki ciri yang lebih khusus dibandingkan
“pesawat terbang”  “pesawat penyergap” adalah subclass dari
“pesawat terbang”
◦Dalam OOP, hubungan inheritance (pewarisan sifat) ini
diimplementasikan melalui definisi kelas: sebuah kelas dapat
didefinisikan dari kelas yang lain

“bentuk”
poligon
ellips
lingkaran
persegi
panjang
segitiga
bujur
sangkar

Dalam pohon hirarki inheritance, sebuah subclass
mewujudkan abstraksi yang lebih spesifik dari
superclassnya: subclass = superclass + (fitur-fitur baru)
◦Subclass dapat menambahkan fields dan methods baru
◦Subclass dapat mengambil alih (override) method milik
superclass dan mengubah implementasi method tersebut
Manfaat inheritance:
◦Pemanfaatan kembali (reuse) kelas
◦Menyediakan model yang bersifat generik (abstract class);
implementasi spesifiknya bisa dilakukan kemudian (mungkin
oleh pemrogram yang berbeda)

Menggunakan kata
kunci : extends
Kelas induk : parent,
superclass, ancestor
Kelas anak : child,
subclass,
descendant
Kita akan membuat
turunan dari kelas
Orang :
Orang
+ nama : String
+ umur : int
+ makan() : void
Mahasiswa
+ nrp : String
+ belajar() : void

Kodenya sbb :
public class Mahasiswa extends Orang {
public String nrp;
public void belajar() {
System.out.println(“Mhs “ + nama +
“ sedang belajar”);
}
}

Kelas testnya sbb :
public class TestMahasiswa {
public static void main(String[] args) {
Mahasiswa mhs;
mhs.nama = “Deden”;
mhs.umur = 20;
mhs.nrp = “0874001”;
mhs.makan();
mhs.belajar();
}
}

Tiga Konsep inheritance :
◦Semua atribut & method dari kelas induk
diturunkan ke kelas anak
◦Pada kelas anak dapat menambahkan atribut &
method yang tidak ada pada kelas induk
◦Pada kelas anak dapat memodifikasi method
(behavior) yang sudah ada di kelas induk

Poly: banyak; morphism: bentuk  sebuah fitur
(generik) bisa diimplementasikan dengan berbagai
cara
Polymorphism diimplementasikan dengan
mekanisme inheritance dan overriding
hewan
anjing
“menggonggong”
kucing
“mengeong”
kuda
“meringkik”
“bersuara”

Polymorphism : mengambil banyak
bentuk
Kelakuan bisa berubah-ubah tergantung
dari objek yang memanggilnya.
Akan dijelaskan lebih jauh pada
pertemuan tentang Polymorphism

Konsep abstraksi dan enkapsulasi membuat
“batas” yang tegas antara bagian yang bersifat
publik dan bagian yang bersifat privat
◦Abstraksi menjelaskan hal-hal yang terlihat dari luar
(bersifat publik)
◦Enkapsulasi menyembunyikan detil-detil yang tidak
perlu terlihat dari luar (bersifat privat)
Independensi antara aspek publik dan privat
dieksploitasi untuk menangani isu
interoperabilitas: implementasi layanan dapat
dilakukan tanpa harus tergantung pada siapa
yang mengaksesnya

Nasi goreng
Mie goreng
Mie bakso
“pesan nasi goreng”
“memasak
nasi goreng”
publik privat
Pemilik warung (server) dapat memasak nasi goreng (implementasi
layanan) dengan berbagai cara tanpa harus tergantung pada siapa
yang memesannya (client).

Aplikasi #1 Aplikasi #2
Bahasa A
Sistem operasi B
Database C
Bahasa X
Sistem operasi Y
Database Z
Network P Network Q
Hardware M Hardware N

X
Y
Z
interface
implementasi
Publik Privat
server
(object
implementation)
client

Remote Procedure Calling (RPC) – tidak berbasis
OO, tetapi telah menggunakan konsep pemisahan
dengan interface
Remote Method Invocation (RMI) – RPC versi Java
Common Object Request Broker Architecture
(CORBA) – arsitektur sistem terdistribusi berbasis
OO
OLE/COM, DCOM, .NET – solusi interoperabilitas
dari Microsoft
J2EE – suite pengembangan aplikasi enterprise
berbasis Java

ANALISIS MASALAH
MENGGUNAKAN KONSEP
OBJECT-ORIENTED ANALYSIS

User : Petugas logistik pada sebuah koperasi
Aplikasi Diminta : Sistem pelaporan stok barang
yang mencatat persediaan, pemasukan, dan
pengeluaran barang
Kebijakan Koperasi :
◦Untuk barang berupa makanan :
Jika kedaluwarsa sudah lewat, barang dibuang
Jika kedaluwarsa tinggal 6 bulan lagi (asumsi ketika dibeli,
masa kedaluwarsa makanan > 1 tahun ), diskon harga 50%
◦Untuk semua barang :
Jika stok suatu item tinggal 40% dari seharusnya, harus
ditambah stoknya.

Domain masalah : ruang lingkup permasalahan yang
akan dipecahkan.
Tujuan : fokus pada masalah
Domain masalah dapat ditentukan dari permintaan
user (User Requirement Gathering )

Identifikasi sifat-sifat dasar dari obyek yang
diperkirakan akan terlibat dalam aplikasi :
◦Obyek : fisik / konseptual
◦Identifikasi atribut / karakteristik
◦Identifikasi operasi
Membuat perkiraan obyek apa saja yang akan
digunakan :
◦Barang
◦Supplier
◦Koperasi
◦Pembeli
◦Gudang
◦Daftar Transaksi
◦Daftar Stok Barang

Pertimbangan-pertimbangan :
◦Relevansi dengan masalah :
Obyek eksis pada batasan masalah ?
Obyek dibutuhkan dalam menyelesaikan masalah ?
User dibutuhkan sebagai bagian dari interaksi antara user dan
solusi ?
◦Eksistensi independen : sebaiknya obyek yang dibuat
tidak saling tergantung dengan obyek lainnya

Memilik Obyek :
◦Barang  OK
◦Supplier  Not OK , sebab tidak terlalu berperan dalam
permasalahan
◦Koperasi  OK , menjadi obyek utama
◦Pembeli  Not OK, sebab tidak terlalu berperan dalam
permasalahan
◦Daftar Transaksi  OK
◦Daftar Stok Barang  OK