bahasa pemrograman 2 - 4 - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/anton/download/bp24.pdf · dan...

43
Bahasa Pemrograman 2 Class & Object Class & Object [email protected]

Upload: truongthien

Post on 05-Mar-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Bahasa Pemrograman 2

Class & ObjectClass & [email protected]

PengantarPengantar

PengantarPengantar

• Procedural vs Object Oriented

• Procedural:  bagaimana memecahkan suatu l h?masalah?

ProsesInputs Outputsp p

PengantarPengantar

• Procedural: memisahkan data dan methods

• Object Oriented: semuanya dipandang b i b k iliki d dsebagai obyek yang memiliki data dan 

methods sebagai satu kesatuan• OOP: suatu paradigma pemrograman yang dipakai untuk mengorganisasikan programdipakai untuk mengorganisasikan program kedalam suatu komponen logis (class).

ClassClass

• Merupakan definisi tentang karakteristik(attributes) dan perilaku (behavioral) suatu ( ) p ( )obyek

• Adalah blueprint  / prototype  / cetakan• Contoh: mobil, manusia, motor

ClassClass

l h dii i i dib b k• Class harus diinstansiasi – dibuat obyeknyaterlebih dahulu sebelum bisa digunakan.

• Class merupakan suatu template yang digunakan sebagai pola desain suatu obyekg g p y– Analogikan kelas : rancangan mobil

Class & ObjectClass & Object

• Class dan Object, mana duluan?

• Object dan Class, mana duluan?

ObjectObject

• 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– Inisialisasi awal suatu obyek = nullInisialisasi awal suatu obyek = null

Berbagai macam tipe objekBerbagai macam tipe objek• Concrete: manusia mobil ponselConcrete: 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, smelled

ClassClass

• Contoh: class sepeda.• Ada 3 atribut/state/variabel kelas = speed, rpm,Ada 3 atribut/state/variabel 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– Change cadence

Class & ObjectClass & Object

Contoh Class• Rancangan sebuah flashdisk:Rancangan sebuah flashdisk:

– Ada port USBAd 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 ObyekContoh lain Class dan Obyek

Attribute dan MethodAttribute dan Method

• Attribut: Ciri pembeda antar obyek• Method: Tingkah laku sebuah obyek• Method: Tingkah laku sebuah obyek

Ilustrasi class dan instansiasiIlustrasi class dan instansiasi

Konsep OOPKonsep OOP

• Abstraction• Encapsulation and Data HidingEncapsulation and Data Hiding• Inheritance• Polymorphism

AbstractionAbstraction

d l l h k l k k d l• Pemodelan masalah yang kompleks ke dalam bentuk sederhana, sesuai dengan tingkatanyang dibutuhkan

• Contoh: Air Conditioner

• Pengoperasian AC: Turn On, Turn Of, Naikkan suhu, Turunkan suhu, Aktifkan Kipas, Matikan Kipas, Aktifkan timer, Matikan timer, dsb…

AbstractionAbstraction

C t h M bil di d l d i b dContoh: Mobil, di dalamnya ada mesin, body, gear, dsb

Dengan pemisahan rancangan mobil dan mesin, kita dapat membuat mesin yang dapat dipakaikita dapat membuat mesin yang dapat dipakaidibeberapa macam mobil

Disebut relasi has‐a / komposisi

A car has a(n) engine

Encapsulation & Data HidingEncapsulation & Data Hiding

• Object tidak perlu menampilkan seluruh data dan methodnya, hanya yang dibutuhkan saja y y y g juntuk interaksi dengan object lainnya

• Dibuat dalam method method:• Dibuat dalam method‐method:– Set ‐> mengisi nilai– Get ‐> mengambil nilai

Encapsulation & Data HidingEncapsulation & Data Hiding

Beberapa keyword akses untuk encapsulation class

• Public: dapat diakses dari semua class• Private: hanya dapat diakses dari dalam class• Protected: hanya dapat diakses dari sub‐classProtected: hanya dapat diakses dari sub class• Default: hanya dapat diakses dari class yang b d d l kberada dalam package yang sama

Encapsulation & Data HidingEncapsulation & 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 tersebutobject tersebut

– Sifat : Public

• Bagian Implementation– Sifat : Private, disembunyikan, – berupa variabel field

Encapsulation & Data HidingEncapsulation & Data Hiding

Bentuk umum ClassBentuk umum Class

class <Nama_kelas>{[<deklarasi_variabel>] // member variable (1)

[<konstruktor>] // constructor (2)

[<metode>] // method (3)[<metode>] // method (3)

}

Contoh ClassContoh Class

class Bilangan{g {int bil;

void Bilangan(){}

void isiBil(int bil){this.bil = bil;this.bil bil;

}}}

Class & Object pada JavaClass & Object pada Java

AttributeAttribute

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 objekobjek

• Local variables dideklarasikan di dalam method.Local variables harus diinisialisasi terlebih dahulu!– Local variables harus diinisialisasi terlebih dahulu!

Instance vs Local VariableInstance vs Local Variable

• Instance Variable

• Local VariableLocal Variable

MetodeMetode

• Semua kode program harus ditulis di dalam metodep gatau konstruktor

• Metode merupakan cara pengorganisasi program OOPOOP

• Dalam suatu kelas dapat dibuat lebih dari satu metodemetode

• Suatu metode harus diberi identifier (nama)• Secara sederhana bisa dikatakan bahwametode• Secara sederhana bisa dikatakan bahwa metodeadalah suatu kumpulan program yang diberi nama.

MetodeMetode

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 anggotaDi b t d d t t• Disebut dengan accessor dan mutatormethod.D d iki d t / i f i d• Dengan demikian, data/ informasi yang ada pada variabel anggota dapat ditingkatkan kualitas informasinya dan dapat dilindungikualitas informasinya dan dapat dilindungidari suatu nilai yang tidak diijinkan

Method pada JavaMethod pada Java

• Method dapat digambarkan sebagai sifat(behavior) dari suatu class.( )hak_akses <tipe_data_return> nama_method( [parameter] )

• Untuk memanggil method dapat digunakan sintaks sebagai gg p g gberikut:namaObyek.nama_method( [parameter] );Contoh:goofy.menggonggong();g y gg gg g();

ContohContoh

AccessorAccessor

• Fungsi untuk mendapatkan nilai dari suatu field/attribute

• Fungsi ini mengembalikan nilai field/attributeFi ld/ ib b did kl ik• Field/attribute tersebut dideklarasikan private, gunakan accessor untuk mengakses nilainya

• Diawali dengan get• Diawali dengan get

MutatorMutator

• Mengubah nilai suatu field/data dari object• Ditujukan demi enkapsulasiDitujukan demi enkapsulasi

– Perlindungan data variabel instan

• Methodnya diawali dengan set

Accessor & MutatorAccessor & Mutator

class Bilangan{int bil;Bilangan(){} void setBil(int bil){( ){

this.bil = bil;}}int getBil(){

return this.bil;etu t s.b ;}

}}

Contoh set MethodContoh set Method

Reference VariableReference Variable

• Reference variable digunakan untuk menyimpan alamat dinamis suatu class y pinstance.

Reference VariableReference Variable

Kelas GerobagKelas 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”– stop : menyebabkan arah bernilai “berhenti”s op e yebab a a a be a be e

kelas Mobilkelas Mobil• Buat kelas Mobil:• Buat kelas Mobil:• Attribut :

– sirine : menyimpan nilai kondisi bel (“Nguing‐nguing”,”diam”)– jendela a : menyimpan informasi kondisi jendela kiri (“buka”,”tutup”)j _ y p j ( , 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)– beep : menyebabkan sirine berbunyi “Nguing‐nguing”beep : menyebabkan sirine berbunyi  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 pesan “Awas! mobil tidak bisa mundur…”.

NEXTNEXT

• Desain Class dan Obyek