OBJEK dan KELAS Sutrisno PTIIK-UB
Ikhtisar Objek Kelas Pesan Konsep Dasar PBO Deklarasi Kelas Konstruktor Overloading
OBJEK? Di dunia nyata Objek KEADAAN (State): PERILAKU (Behavior): Warna Nama Jenis PERILAKU (Behavior): Berjalan mengeong
OBJEK? Di Dunia Software Objek ATRIBUT (variabel): METODE (fungsi): Warna Nama Jenis METODE (fungsi): Berjalan mengeong
OBJEK? Definisi : Entitas dalam sistem yang mewakili suatu entitas dalam dunia nyata Mewakili
PENDEKATAN TERSTRUKTUR Contoh : Pengembangan SIA (Sistem Informasi Akademik) Berorientasi Prosedur Prosedur / fungsi mhs_registrasi SIA mhs_krs dosen_insertNilai admin_setJadwal
SIA Berorientasi Obyek? Mahasiswa NIM nama registrasi() updateKRS() Dosen NIP nama insertNilai() Administrasi nama alamat setJadwal()
Kelas (Class) Dalam suatu sistem, sering kali ditemui beberapa objek sejenis Beberapa objek sejenis dapat di-identifikasi sebagai suatu kelas (class) objek Kelas kucing1 jenis = anggora warna = coklat-hitam berjalan() mengeong() Kucing jenis warna berjalan() mengeong() kucing2 jenis = hutan jawa warna = coklat-hitam berjalan() mengeong()
Message / pesan Obyek berinteraksi dan berkomunikasi dengan obyek lain melalui message / pesan A message Obyek A Obyek B
Message / pesan Message terdiri dari kucing1 kucing2 Nama obyek yg dikirimi Nama method yg dipanggil Parameter yang diperlukan oleh method yang dipanggil berjalan(cepat) kucing1 kucing2
KONSEP DASAR PBO Abstraction (abstraksi) Encapsulation (pembungkusan) Inheritance (pewarisan) Polymorphism (polimorfisme)
Abstraction (Abstraksi) Abstraksi merupakan cara melihat suatu entitas (benda atau objek) dengan hanya memperhatikan hal-hal penting saja sesuai permasalahan. Dan mengabaikan rincian-rincian yang tidak relevan dengan permasalahan. Direalisasikan dalam bentuk kelas (class) contoh Mobil merk Kecepatan tahunPembuatan
Encapsulation (pembungkusan) Suatu metode untuk menyembunyikan suatu bagian implementasi dari kelas dan menyediakan antarmuka bagi kelas/software lain yang akan mengaksesnya. Direalisasikan dalam bentuk kelas (class) Contoh Mobil kecepatan setKecepatan()
Deklarasi Kelas Sintaks deklarasi kelas dalam JAVA: <modifiers> class <class_name> { [<attribute_declarations>] [<method_declarations>] }
Deklarasi Atribut dan Metode Sintaks deklarasi atribut di JAVA: [<modifier>] <type> <namaAtribut> [= <default_value>]; Sintaks deklarasi metode di Java: [<modifier>] <return type> <namaMethod> ([daftar argumen]) { <statements> }
Modifiers < modifiers > public : objek dapat diakses dari luar default : objek hanya dapat diakses dari satu package protected : kelas hanya dapat diakses package, subkelas private : objek hanya dapat diakses dari kelasnya sendiri Modifier Class Package Subclass Public Private - default Protected
Contoh Deklarasi Kelas
Diagram Kelas di UML Kucing NamaKelas jenis : String deklarasiAtribut berat : int + setJenis(j : String) : void + getJenis() : String + setBerat(b : int) : void + getBerat() : int NamaKelas deklarasiAtribut definisiMetode Contoh Modifier: + : public : private # : protected ~ : package/default
Diagram Kelas di UML Objek Kelas kucing1 : Kucing Kucing jenis = “Anggola” berat = 20 Kucing jenis : String berat : int + setJenis(j : String) : void + getJenis() : String + setBerat(b : int) : void + getBerat() : int kucing2 : Kucing jenis = “Hutan Jawa” berat = 10
Diagram Objek di UML Objek Kelas kucing1 : Kucing Kucing jenis = “Anggola” berat = 20 Kucing jenis : String berat : int + setJenis(j : String) : void + getJenis() : String + setBerat(b : int) : void + getBerat() : int kucing2 : Kucing jenis = “Hutan Jawa” berat = 10
Diagram Objek di UML Objek Objek kucing1 : Kucing kandang : Kandang jenis = “Anggola” berat = 20 kandang : Kandang kode : “0001” luas : 5 berisi kucing2 : Kucing jenis = “Hutan Jawa” berat = 10
Mendefinisikan Objek Sintaks Instansiasi Objek: <NamaKelas> <namaObjek> = new <KonstruktorKelas>; Contoh: Kucing kucing1; kucing1 = new Kucing(); atau Kucing kucing1 = new Kucing();
Contoh Membuat Objek Buat objek k1 dan k2 Akses atribut nama melalui metode setNama() Akses metode berjalan() dan setNama()
Konstruktor Konstruktor layaknya metode, yang digunakan memberikan nilai awal saat sebuah objek diciptakan. Konstruktor akan dipanggil secara otomatis ketika keyword new dipakai untuk instansiasi kelas. Ciri konstruktor: Namanya sama dengan nama kelas Tidak memiliki return-type ataupun void. Sintaks Konstruktor: <public> <NamaKelas> (<Daftar Parameter>) { Pernyataan-pernyataan }
Contoh Konstruktor
Contoh Konstruktor
Overloading pada Konstruktor Overloading Konstruktor adalah mekanisme pembuatan lebih dari satu konstruktor pada sebuah kelas. Pembeda antar konstruktor terletak pada jumlah parameter atau tipe parameter. Contoh overloading konstruktor pada kelas Kucing: Konstruktor pertama: pulic Kucing() { nama=“Kosong”; jenis=“Kosong”; } Konstruktor kedua: public Kucing(String nama, String jenis){ this.nama=nama; this.jenis = jenis;
Contoh Overloading Konstruktor
Contoh Overloading Konstruktor
Contoh Overloading Konstruktor
Contoh Overloading Konstruktor
Contoh Overloading Konstruktor
Overloading pada Metode Overloading Metode adalah mekanisme pembuatan beberapa metode di sebuah kelas dengan nama metode yang sama. Pembeda antar metode dengan nama sama terletak pada jumlah parameter atau tipe parameter. Contoh overloading metode pada kelas Matematika berikut: Terdapat 3 metode di kelas Matematika yang mempunyai nama metode sama, yaitu metode kuadrat. Ketiga metode kuadrat mempunyai tipe parameter berbeda, yaitu: int, double dan String.
Contoh Overloading Metode
Contoh Overloading Metode
Latihan Suatu rak buku dalam perpustakaan, rak memiliki kode tertentu, pada rak tersebut kita dapat : menambah sejumlah buku, mengambil sejumlah buku dan mengetahui jumlah buku yang ada dalam rak sekarang. Dari permasalahan tersebut abstraksikan menjadi suatu kelas! Gambarkan diagram kelasnya