Bahasa Pemrograman 2 Class & Object anton@ukdw.ac.id
Pengantar
Pengantar Procedural vs Object Oriented Procedural: bagaimana memecahkan suatu masalah? lh? Inputs Proses Outputs
Pengantar Procedural: memisahkan data dan methods Object Oriented: semuanya dipandang sebagai obyek yang memiliki data dan methods sebagai satu kesatuan OOP: suatu paradigma pemrograman yang dipakai untukmengorganisasikan program kedalam suatu komponen logis (class).
Class Merupakan definisi tentang karakteristik (attributes) dan perilaku (behavioral) suatu obyek Adalah blueprint / prototype / cetakan Contoh: mobil, manusia, motor
Class Class harus diinstansiasi i i dibuat obyeknya terlebih dahulu sebelum bisa digunakan. Class merupakan suatu template yang digunakan sebagai pola desain suatu obyek Analogikan kelas : rancangan mobil
Class & Object Class dan Object, mana duluan? Object dan Class, mana duluan?
Object Instance (instan) dari sebuah kelas Hasil/wujud nyata dari cetakan kelas Program = kumpulan objects Contoh: CRV, dosen, JupiterMX Untuk membuat obyek: Keyword pada java: new Inisialisasi awal suatu obyek = null
Berbagai macam tipe objek Concrete: manusia, mobil, ponsel Intangible*: keluarga, kualitas, ide, account Roles: dokter, pasien, manager, admin Judgements: gaji tinggi, pintar relational: partnership, pernikahan, ownership events: penjualan, system crash 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, dan gear. Misalnya nilai/value untuk atribut speed= 18 mph Ada 3 services / methods / behavior: Change gears Brake Change cadence
Class & Object Contoh Class Rancangan sebuah flashdisk: Ada port USB Ada rangkaian ki penyimpan data (flash storage) Apa bisa dilakukan flashdisk? (read and write) Object: Flashdisk Kingston 8 GB, 4 GB, 2 GB Object: Flashdisk SanDisk 8 GB, 4 GB, 2 GB
Contoh lain Class dan Obyek
Attribute dan Method Attribut: Ciri pembeda antar obyek Method: Tingkah laku sebuah obyek
Ilustrasi class dan instansiasi
Konsep OOP Abstraction Encapsulation and Data Hiding Inheritance Polymorphism
Abstraction Pemodelan dl masalah lhyang kompleks k ke dalam dl 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: t h Mobil, di dl dalamnya adamesin, body, gear, dsb Dengan pemisahan rancangan mobil dan mesin, kita dapat membuat mesin yang dapat dipakai dibeberapa macam mobil Disebut relasi has a/ komposisi A car has a(n) engine
Encapsulation & Data Hiding Object tidak perlu menampilkan seluruh data dan methodnya, hanya yang dibutuhkan saja untuk interaksi dengan object lainnya Dibuat dalam method method: method: Set > mengisi nilai Get > mengambil nilai
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 Default: hanya dapat diakses dari class yang berada dalam dl package yang sama
Encapsulation & Data Hiding Bagian Interfaces (definisi) i i) Dibuat dalam bentuk method Mendefinisikan bagaimana membuat instance dari suatu class, dan mendefinisikan operasi operasi dari object tersebut Sifat : Public Bagian Implementation Sifat : Private, disembunyikan, berupa variabel field
Encapsulation & Data Hiding
Bentuk umum Class class <Nama_kelas>{ [<deklarasi_variabel>] // member variable (1) [<konstruktor>] // constructor (2) } [<metode>] // method (3)
Contoh Class class Bilangan{ int bil; void Bilangan(){} } void isibil(int bil){ } this.bil = bil;
Class & Object pada Java
Attribute Dideklarasikan ik di dalam dl kelas kl 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/ kondisi/ sifat/ karakteristik/ ciri ciri/ penjelasan dari objek Local variables dideklarasikan di dalam method. Local variables harus diinisialisasi terlebih dahulu!
Instance vs Local Variable Instance Variable Local Variable
Metode Semua kode program harus ditulis di dalam metode atau konstruktor Metode merupakan cara pengorganisasi program OOP Dalam suatu kelas dapat dibuat lebih dari satu metode Suatu metode harus diberi identifier (nama) Secarasederhana bisa dikatakan bahwa metode adalah suatu kumpulan program yang diberi nama.
Metode Tujuan utama membuat metode (tidak k statik) dalam PBO adalah menyediakan cara (metode) untuk mengakses (membaca atau menulis) variabel anggota Disebut dengan accessor dan mutator tt method. Dengan demikian, dt/i data/ informasi iyang ada pada variabel anggota dapat ditingkatkan kualitas informasinya dan dapat dilindungi dari suatu nilai yang tidak diijinkan
Method 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 berikut: namaobyek.nama_method( [parameter] ); Contoh: goofy.menggonggong(); gg gg g();
Contoh
Accessor Fungsi untuk mendapatkan nilai dari suatu field/attribute Fungsi ini mengembalikan nilai field/attribute Field/attribute ib tersebut dideklarasikan ik private, gunakan accessor untuk mengakses nilainya Diawali dengan get
Mutator Mengubah nilai suatu field/data dari object Ditujukan demi enkapsulasi Perlindungan data variabel instan Methodnya diawali dengan set
Accessor & Mutator class Bilangan{ int bil; Bilangan(){} void setbil(int bil){ this.bil = bil; } int getbil(){ return this.bil; } }
Contoh set Method
Reference Variable Reference variable digunakan untuk menyimpan alamat dinamis suatu class instance.
Reference Variable
Kelas Gerobag Buat tkl Kelas Gerobag, dengan kt ketentuant Attribut : roda : menyimpan nilai banyaknya roda bahan : menyimpan informasi bahan gerobag ( kayu, bambu, dsb.) warna : menyimpan informasi warna gerobag ( putih, coklat, db) dsb.) arah : menyimpan informasi ( maju, mundur, ke kiri, ke kanan, berhenti ) Metode: maju : menyebabkan arah bernilai maju mundur : menyebabkan arah bernilai mundur kiri : menyebabkan arah bernilai ke kiri kanan : menyebabkan arah bernilai ke kanan stop sop : menyebabkan a arah aa bernilai berhenti e
kelas Mobil Buatkelas Mobil: Attribut : sirine : menyimpan nilai kondisi bel ( Nguing nguing, diam ) jendela _ a : menyimpan informasi kondisi jendela kiri ( buka, tutup ) 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 nguing no_beep : menyebabkan sirine berbunyi diam Metode buka : jika parameter a berarti jendela kiri terbuka, b berarti jendela kanan terbuka. tutup tertutup. : jika parameter a berarti jendela kiri tertutup, b berarti jendela kanan tambah : jika persneling kurang dari 5, persneling dinaikkan 1, jika sudah 5 tampilkan pesan Jangan ngebut ngebut. kurang : jika persneling lebih dari 1, persneling diturunkan 1, jika sudah h1 tampilkan pesan Awas! mobil tidak bisa mundur.
NEXT Desain Class dan Obyek