Bahasa Pemrograman 2 Class & Object Class & Object
[email protected]
Pengantar
Pengantar • Procedural vs Object Oriented • Procedural: bagaimana memecahkan suatu masalah? l h?
Inputs p
Proses
Outputs p
Pengantar • Procedural: memisahkan data dan methods • Object Oriented: semuanya dipandang sebagai obyek b i b k yang memiliki data dan iliki d d methods sebagai satu kesatuan • OOP: suatu paradigma pemrograman yang dipakai untuk mengorganisasikan program dipakai untuk mengorganisasikan program kedalam suatu komponen logis (class).
Class • Merupakan definisi tentang karakteristik ((attributes) dan perilaku ) p ((behavioral) suatu ) obyek • Adalah blueprint / prototype / cetakan • Contoh: mobil, manusia, motor
Class • Class harus diinstansiasi l h dii i i – dibuat obyeknya dib b k terlebih dahulu sebelum bisa digunakan. • Class merupakan suatu template yang g g p y digunakan sebagai pola desain suatu obyek – Analogikan kelas : rancangan mobil
Class & Object Class & Object • Class dan Object, mana duluan? • Object dan Class, mana duluan?
Object • • • • •
Instance (instan) dari sebuah kelas Hasil/wujud nyata dari “cetakan” Hasil/wujud nyata dari cetakan kelas kelas Program = kumpulan objects Contoh: CRV, dosen, JupiterMX Untuk membuat obyek: Untuk membuat obyek: – Keyword pada java: new – Inisialisasi awal awal suatu obyek = null suatu obyek = null
Berbagai macam tipe objek Berbagai macam tipe • • • • • • •
Concrete: manusia, mobil, ponsel Concrete: 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
Class • Contoh: class sepeda. Ada 3 atribut/state/variabel kelas = speed, rpm, speed, rpm, • Ada 3 atribut/state/variabel dan gear. • Misalnya nilai/value untuk atribut speed= 18 mph untuk atribut speed= 18 mph • Ada 3 services / methods / behavior: – Change gears – Brake – Change cadence
Class & Object Class & Object Contoh Class • Rancangan sebuah flashdisk: Rancangan sebuah flashdisk: – Ada port USB – Ada rangkaian penyimpan data (flash storage) Ad k i i d (fl h ) – Apa bisa dilakukan flashdisk? (read and write)
• Object: Object: Flashdisk Flashdisk Kingston 8 GB, 4 GB, 2 GB 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 Method: Tingkah laku sebuah obyek
Ilustrasi class dan instansiasi Ilustrasi class dan instansiasi
Konsep OOP Konsep OOP • • • •
Abstraction Encapsulation and Data Hiding Encapsulation and Data Hiding Inheritance Polymorphism
Abstraction • Pemodelan d l masalah yang kompleks ke dalam l h k l k k d l 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
Contoh: Mobil, di
C t h M bil di dalamnya d l ada d mesin, body, i b d gear, dsb
Dengan pemisahan rancangan mobil dan mesin, kita dapat membuat mesin yang dapat yang dapat dipakai dibeberapa macam mobil
Disebut relasi has‐a / komposisi
A car has a(n) engine
Encapsulation & Data Hiding Encapsulation & Data Hiding • Object tidak perlu menampilkan seluruh data y y y g saja j dan methodnya, hanya yang dibutuhkan untuk interaksi dengan object lainnya • Dibuat dalam method‐method: Dibuat dalam method method: – Set ‐> mengisi nilai – Get ‐> mengambil 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 Protected: hanya dapat diakses dari sub‐class Protected: hanya dapat diakses dari sub class Default: hanya dapat diakses dari class yang b d d l berada dalam package k yang sama
Encapsulation & Data Hiding Encapsulation & Data Hiding • Bagian Interfaces i f (d fi i i) (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, – berupa variabel field
Encapsulation & Data Hiding Encapsulation & Data Hiding
Bentuk umum Class Bentuk umum Class class
{ [<deklarasi_variabel>]
//Å member variable (1)
[] //Å 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; } }
Class & Object pada Java Class & Object pada Java
Attribute • Did Dideklarasikan di dalam kelas dan di luar metode kl ik di d l k l d di l t d • 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/ state/ • Sebagai objek, variabel ini menunjukkan kondisi/ sifat/ karakteristik/ ciri‐ciri/ penjelasan dari objek • Local variables dideklarasikan di dalam method. – Local variables harus diinisialisasi Local variables harus diinisialisasi terlebih dahulu! terlebih dahulu!
Instance vs Local Variable Instance vs Local Variable • Instance Variable
• Local Variable Local Variable
Metode • Semua kode program harus ditulis di dalam metode p g atau konstruktor • Metode merupakan cara pengorganisasi program OOP • Dalam suatu kelas dapat dibuat lebih dari satu metode • Suatu metode harus diberi identifier (nama) • Secara sederhana bisa dikatakan bahwa metode Secara sederhana bisa dikatakan bahwa metode adalah suatu kumpulan program yang diberi nama.
Metode • Tujuan utama membuat metode (tidak statik) b d ( id k ik) dalam PBO adalah menyediakan cara (metode) untuk mengakses (membaca atau nt k mengakses (membaca ata menulis) variabel anggota • Disebut dengan accessor Di b t d d dan mutator t t method. • Dengan demikian, data/ informasi yang ada D d iki d t / i f i d pada variabel anggota dapat ditingkatkan kualitas informasinya dan dapat dilindungi kualitas informasinya dan dapat dilindungi dari suatu nilai yang tidak diijinkan
Method pada Java Method pada Java • Method dapat digambarkan sebagai sifat ( (behavior) dari suatu class. ) hak_akses nama_method( [parameter] ) • Untuk memanggil method dapat digunakan sintaks sebagai gg p g g berikut: namaObyek.nama_method( [parameter] ); Contoh: g y goofy.menggonggong(); gg gg g();
Contoh
Accessor • Fungsi untuk mendapatkan nilai dari suatu field/attribute • Fungsi ini mengembalikan nilai field/attribute • Field/attribute tersebut dideklarasikan Fi ld/ ib b did kl ik private, gunakan accessor untuk mengakses nilainya • Diawali dengan get Diawali dengan get
Mutator • Mengubah nilai suatu field/data dari object • Ditujukan demi enkapsulasi Ditujukan demi enkapsulasi – Perlindungan data variabel instan
• Methodnya diawali dengan set
Accessor & Mutator Accessor & Mutator class Bilangan{ int bil; Bilangan(){} void setBil(int ( bil){ ){ this.bil = bil; } int getBil(){ return etu t this.bil; s.b ; } }
Contoh set Method Contoh set Method
Reference Variable Reference Variable • Reference variable digunakan untuk y p menyimpan alamat dinamis suatu class instance.
Reference Variable Reference Variable
Kelas Gerobag Kelas Gerobag • Buat Kelas Gerobag, dengan ketentuan B tK l G b d k t t • 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”)
• Metode d : – – – – –
maju mundur kiri kanan sstop op
: menyebabkan arah bernilai “maju” : menyebabkan arah bernilai “mundur” : menyebabkan arah bernilai “ke kiri” : menyebabkan arah bernilai ”ke kanan” : menyebabkan arah bernilai “berhenti” e yebab a a a be a be e
kelas Mobil kelas Mobil • •
Buat kelas Mobil: Buat kelas Mobil: Attribut : – – – – – – –
•
sirine jjendela_a jendela_b merk gigi beep no_beep
: menyimpan nilai kondisi bel (“Nguing‐nguing”,”diam”) : menyimpan informasi kondisi jendela kiri (“buka”,”tutup”) y p j ( , p ) : menyimpan informasi kondisi jendela kanan (“buka”,”tutup”) : menyimpan informasi merk mobil (“Mazda”,”Suzuki”, dsb.) : menyimpan informasi posisi gigi presneling (1, 2, 3, 4, 5) : menyebabkan sirine berbunyi : menyebabkan sirine berbunyi “Nguing‐nguing” Nguing nguing : 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…”. – kurang k : jika persneling lebih dari 1, persneling diturunkan 1, jika sudah 1 tampilkan jik li l bih d i 1 li dit k 1 jik d h1t ilk pesan “Awas! mobil tidak bisa mundur…”.
NEXT • Desain Class dan Obyek