Bahasa
Pemrograman
2
Class & Object Class & Object
Pengantar
Pengantar
Pengantar
Pengantar
• Procedural vs Object Oriented
• Procedural: bagaimana memecahkan suatu
l h? masalah?
Proses
Pengantar
Pengantar
• Procedural: memisahkan data dan methods
• Object Oriented: semuanya dipandang
b i b k iliki d d
sebagai obyek yang memiliki data dan
methods sebagai satu kesatuan
• OOP: suatu paradigma pemrograman yang
dipakai untuk mengorganisasikan program
dipakai untuk mengorganisasikan program
Class
Class
• Merupakan definisi tentang karakteristik
(attributes) dan perilaku (behavioral) suatu
( ) p ( )
obyek
• Adalah blueprint / prototype / cetakan
Class
Class
l h dii i i dib b k
• Class harus diinstansiasi – dibuat obyeknya
terlebih dahulu sebelum bisa digunakan.
• Class merupakan suatu template yang
digunakang sebagaig p pola desain suatu obyeky
Class & Object
Class
&
Object
• Class dan Object, mana duluan? • Object dan Class, mana duluan?Object
Object
• Instance (instan) dari sebuah kelas
• Hasil/wujud nyata dari “cetakan” kelasHasil/wujud nyata dari cetakan kelas
• Program = kumpulan objects
• Contoh: CRV, dosen, JupiterMX
• Untuk membuat obyek:Untuk membuat obyek:
– Keyword pada java: new
Berbagai macam
tipe
objek
Berbagai
macam
tipe
objek
• ConcreteConcrete: manusia mobil ponsel: manusia, mobil, ponsel• Intangible*: keluarga, kualitas, ide, account • Roles: dokter, pasien, manager, admin
• Judgements: gaji tinggi pintar • Judgements: gaji tinggi, pintar
• relational: partnership, pernikahan, ownership • events: penjualan, system crash
• displayable: string integer image • displayable: string, integer, image
* Incorporeal property that is saleable though not material, cannot be seen, handled,
Class
Class
• Contoh: class sepeda.
• AdaAda 3 3 atribut/stateatribut/state//variabelvariabel kelas = speed, rpm,kelas speed, rpm,
dan gear.
• Misalnya nilai/value untuk atribut speed= 18 mph
• Misalnya nilai/value untuk atribut speed= 18 mph
• Ada 3 services / methods / behavior:
– Change gears
– Brake
Class & Object
Class
&
Object
Contoh Class
• Rancangan sebuahRancangan sebuah flashdiskflashdisk::
– Ada port USB
Ad k i i d (fl h )
– Ada rangkaian penyimpan data (flash storage)
– Apa bisa dilakukan flashdisk? (read and write)
• Object: Flashdisk Kingston 8 GB 4 GB 2 GB
• Object: Flashdisk Kingston 8 GB, 4 GB, 2 GB • Object: Flashdisk SanDisk 8 GB, 4 GB, 2 GB
Contoh lain Class dan Obyek
Contoh
lain
Class
dan
Obyek
Attribute dan Method
Attribute
dan
Method
•
Attribut:
Ciri
pembeda
antar
obyek
•
Method: Tingkah laku sebuah obyek
Ilustrasi class dan instansiasi
Ilustrasi
class
dan
instansiasi
Konsep OOP
Konsep
OOP
• Abstraction
• Encapsulation and Data HidingEncapsulation and Data Hiding • Inheritance
Abstraction
Abstraction
d l l h k l k k d l
• Pemodelan masalah yang kompleks ke dalam
bentuk sederhana, sesuai dengan tingkatan
yang dibutuhkan
• Contoh: Air Conditioner
• Pengoperasian AC: Turn On, Turn Of, Naikkan suhu, Turunkan suhu, Aktifkan Kipas, Matikan Kipas, Aktifkan timer, Matikan timer, dsb…
Abstraction
Abstraction
C t h M bil di d l d i b d
Contoh: Mobil, di dalamnya ada mesin, body,
gear, dsb
Dengan pemisahan rancangan mobil dan mesin,
kita dapat membuat mesin yang dapat dipakai
kita dapat membuat mesin yang dapat dipakai
dibeberapa macam mobil
Disebut relasi has‐a / komposisi
Encapsulation & Data Hiding
Encapsulation
&
Data
Hiding
• Object tidak perlu menampilkan seluruh data dan methodnya,y hanyay y g yang dibutuhkan sajaj untuk interaksi dengan object lainnya
• Dibuat dalam method method:
• Dibuat dalam method‐method:
– Set ‐> mengisi nilai
Encapsulation & Data Hiding
Encapsulation
&
Data
Hiding
Beberapa keyword akses untuk encapsulation class
• Public: dapat diakses dari semua class
• Private: hanya dapat diakses dari dalam class • ProtectedProtected:: hanya dapat diakses dari sub hanya dapat diakses dari sub class‐class • Default: hanya dapat diakses dari class yang
b d d l k
Encapsulation & Data Hiding
Encapsulation
&
Data
Hiding
i f (d fi i i)
• Bagian Interfaces (definisi)
– Dibuat dalam bentuk method
– Mendefinisikan bagaimana membuat instance dari
suatu class, dan mendefinisikan operasi‐operasi dari
object tersebut object tersebut
– Sifat : Public
• Bagian Implementation
– Sifat : Private, disembunyikan,
Encapsulation & Data Hiding
Encapsulation
&
Data
Hiding
Bentuk umum Class
Bentuk
umum
Class
class <Nama_kelas>{
[<deklarasi_variabel>] //Åmember variable (1)
[<konstruktor>] //Å constructor (2)
[<metode>] //Å method (3) [<metode>] //Å method (3) }
Contoh Class
Contoh
Class
class Bilangan{g {
int bil;
void Bilangan(){}
void isiBil(int bil){ this.bil = bil; this.bil bil; }
} }
Class & Object pada Java
Class
&
Object
pada
Java
Attribute
Attribute
Did kl ik di d l k l d di l t d
• Dideklarasikan di dalam kelas dan di luar metode
• Disebut juga : field, member variabel, atau instan
variable, variabel kelas
• Untuk membedakan dengan variabel lokal, variabel
ini dapat diakses dengan memakai kata kunci this
• Sebagai objek, variabel ini menunjukkan state/Sebagai objek, variabel ini menunjukkan state/
kondisi/ sifat/ karakteristik/ ciri‐ciri/ penjelasan dari
objek objek
• Local variables dideklarasikan di dalam method.
Local variables harus diinisialisasi terlebih dahulu!
Instance vs Local Variable
Instance
vs
Local
Variable
• Instance Variable
Metode
Metode
• Semua kode p gprogram harus ditulis di dalam metode
atau konstruktor
• Metode merupakan cara pengorganisasi program
OOP OOP
• Dalam suatu kelas dapat dibuat lebih dari satu
metode metode
• Suatu metode harus diberi identifier (nama)
• Secara sederhana bisa dikatakan bahwa metode
• Secara sederhana bisa dikatakan bahwa metode
Metode
Metode
b d ( id k ik)
• Tujuan utama membuat metode (tidak statik) dalam PBO adalah menyediakan cara
(metode) nt k mengakses (membaca ata (metode) untuk mengakses (membaca atau
menulis) variabel anggota
Di b t d d t t
• Disebut dengan accessor dan mutator
method.
D d iki d t / i f i d
• Dengan demikian, data/ informasi yang ada pada variabel anggota dapat ditingkatkan
kualitas informasinya dan dapat dilindungi
kualitas informasinya dan dapat dilindungi
Method pada Java
Method
pada
Java
• Method dapat digambarkan sebagai sifat
(behavior) dari suatu class.
( )
hak_akses <tipe_data_return> nama_method( [parameter] )
• Untuk memanggilgg method dapatp digunakang sintaks sebagaig
berikut:
namaObyek.nama_method( [parameter] ); Contoh:
goofy.menggonggong(); g y gg gg g();
Contoh
Contoh
Accessor
Accessor
• Fungsi untuk mendapatkan nilai dari suatu field/attribute
• Fungsi ini mengembalikan nilai field/attribute
Fi ld/ ib b did kl ik
• Field/attribute tersebut dideklarasikan
private, gunakan accessor untuk mengakses nilainya
• Diawali dengan get
Mutator
Mutator
• Mengubah nilai suatu field/data dari object • Ditujukan demi enkapsulasiDitujukan demi enkapsulasi
– Perlindungan data variabel instan
Accessor & Mutator
Accessor
&
Mutator
class Bilangan{ int bil;
Bilangan(){}
void setBil(int bil){( ){
this.bil = bil; }
}
int getBil(){
return this.bil;etu t s.b ; }
} }
Contoh set Method
Contoh
set
Method
Reference Variable
Reference
Variable
• Reference variable digunakan untukmenyimpany p alamat dinamis suatu class instance.
Reference Variable
Reference
Variable
Kelas Gerobag
Kelas
Gerobag
• B t K l G b d k t t
• Buat Kelas Gerobag, dengan ketentuan
• Attribut :
– roda : menyimpan nilai banyaknya roda
– bahan : menyimpan informasi bahan gerobag (“kayu”,”bambu”,
dsb.)
– warna : menyimpan informasi warna gerobag (“putih”,”coklat”,
d b ) dsb.)
– arah : menyimpan informasi (“maju”, ”mundur”, ”ke kiri”, “ke
kanan”, ”berhenti”)
d
• Metode :
– maju : menyebabkan arah bernilai “maju”
– mundur : menyebabkan arah bernilai “mundur”
– kiri : menyebabkan arah bernilai “ke kiri”
– kanan : menyebabkan arah bernilai ”ke kanan”
kelas Mobil
kelas
Mobil
• Buat kelas Mobil:
• Buat kelas Mobil:
• Attribut :
– sirine : menyimpan nilai kondisi bel (“Nguing‐nguing”,”diam”)
– jendela aj _ : menyimpany p informasi kondisi jendelaj kiri (“buka”,”tutup”)( , p )
– jendela_b : menyimpan informasi kondisi jendela kanan (“buka”,”tutup”)
– merk : menyimpan informasi merk mobil (“Mazda”,”Suzuki”, dsb.)
– gigi : menyimpan informasi posisi gigi presneling (1, 2, 3, 4, 5)
– beepbeep : menyebabkan sirine berbunyi “Nguing: menyebabkan sirine berbunyi Nguing nguing‐nguing”
– no_beep : menyebabkan sirine berbunyi “diam”
• Metode
– buka : jika parameter ‘a’ berarti jendela kiri terbuka, ‘b’ berarti jendela kanan terbuka.
– tutup : jika parameter ‘a’ berarti jendela kiri tertutup, ‘b’ berarti jendela kanan
tertutup.
– tambah : jika persneling kurang dari 5, persneling dinaikkan 1, jika sudah 5 tampilkan
pesan “Jangan ngebut‐ngebut…”.
k jik li l bih d i 1 li dit k 1 jik d h 1 t ilk
– kurang : jika persneling lebih dari 1, persneling diturunkan 1, jika sudah 1 tampilkan