bahasa pemrograman 2 - 4 - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/anton/download/bp24.pdf · dan...
TRANSCRIPT
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
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
Attribute dan MethodAttribute dan Method
• Attribut: Ciri pembeda antar obyek• Method: Tingkah laku sebuah obyek• Method: Tingkah laku sebuah obyek
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
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;
}}}
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();
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 ;}
}}
Reference VariableReference Variable
• Reference variable digunakan untuk menyimpan alamat dinamis suatu class y pinstance.
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…”.