OOP? Apa? Mengapa? Bagaimana? Kapan? ??????........
Definisi OOP Ada Banyak pengertian yang beredar namun dapat didefinsikan sebagai berikut: Pemograman yang berorientasi Objek (dalam arti semua kasus yang terkait dalam suatu pemograman akan dipandang/analisa dan dianalogikan dalam bentuk objek)
NonOOP vs OOP +Membutuhkan waktu relatif singkat untuk membuat kode yang permasalahannya sederhana -Dapat mempersulit dalam mengelola kode yang kompleks +memudahkan dalam mengelola kode yang kompleks -membutuhkan lebih banyak waktu dalam mengawali pembuatan program
Konsep Dalam OOP Objek Enkapsulasi Pewarisan Polymorphisme
Objek Objek adalah suatu bentuk yang mempresentasikan/mewakili bentuk/persepsi dari dunia nyata(orang,hewan,tempat dan lainnya). Objek adalah sesuatu yang memiliki attributes dan behaviours
Class Objek dengan data struktur/property value (Attribute) dan behavior(Method atau Operation) yang dibuat dalam satu grup =Class Class adalah cetak biru dari sebuah Objek
Contoh Bagaimana Memandang Objek? Objek=Anjing(nama:Rayne) Property value(Atribute)=Ciri-ciri: warna bulu : abu-abu,putih dan hitam Warna mata:biru dan coklat Tinggi:18 inc Panjang:36 inc Berat:30 pon Methods(Behaviour)=kemampuan, Sifat,kelakuan: duduk berbaring salaman Mengikuti majikannya jalan
Ciri-ciri sebuah Objek..... Nama Objek Atribut Behaviour() Memiliki attribute Memiliki behaviour() Attribute → juga disebut dengan field(s),state(s) atau properties merupakan karakteristik secara fisik dari suatu objek ; cont : tinggi,warna,lebar,dll Behaviour→atau juga disebut dengan method,Operation ,atau feature adalah sifat dari suatu objek ; cont : kecepatan,
Memandang Class yang memiliki Objek Dog memiliki properti dan method yang belum di-instantiate → (Base) Class Ketika Class Dog akan di-create/di-inntantiate sebagai objek Dog() dan akan memiliki nama reference Rayne beserta nilai properti dan method
Instantiante objek pada Java Dog Rayne = new Dog();
Abstract Class Manfaat abstract class adalah agar desain class yang bersifat abstract tidak didefinisikan sebagai class kongkrit Abstract Class adalah teknik agar sebuah Class tidak dapat di-instantiate, namun masih memiliki pewarisan untuk subclass Contohnya ialah Class Mamalia yang memiliki sub-Class semua hewan Mamalia(seperti:anjing,kucing, dst....), jika Class mamalia di-instantiate maka tidak jelas akan berupa apa.
Abstract Class Sebuah objek yang Abstract(tidak jelas) dipandang dengan berbeda perspektif Hingga dibutuhkan suatu bentuk dan sifat yang menjadi acuan/standar
Coding Time
Pewarisan/Inheritance Pewarisan/Inheritance merupakan sifat dari class/objek yang menurunkan(dimiliki oleh subclass/turunan dari superclass/objek utama Pewarisan seperti sifat orang tua kepada anak- anaknya: Fisik yang sama:mata,hidung,rambut,dll Kemampuan :melihat, mendengar, berjalan, dll.
Contoh Penggunaan Inheritance Class pada binatang(mammal): Fisik dan Sifat yang sama: attribute:Bulu,berdarah panas,berjalan 4 kaki Method:Makan,Tidur,beranak
Contoh Penggunaan Inheritance Class pada binatang(mammal): Fisik dan Sifat yang sama: attribute:Bulu,berdarah panas,berjalan 4 kaki Method:Makan,Tidur,beranak ketika Turunan pada subclass Binatang liar(Predator wild cats) dan Binatang Peliharaan (Pet dogs) memiliki perbedaan pada sifat(method) walaupun selebihnya sama:
Contoh Penggunaan Inheritance Class pada binatang(mammal): Fisik dan Sifat yang sama: attribute:Bulu,berdarah panas,berjalan 4 kaki Method:Makan,Tidur,beranak ketika Turunan pada subclass Binatang liar(Predator wild cats) dan Binatang Peliharaan (Pet dogs) memiliki perbedaan pada sifat(method) walaupun selebihnya sama: Attribute:Tidak memiliki perbedaan Method:Binatang Liar memiliki sifat(method) memangsa dan berburu yang tidak dimiliki binatang peliharaan
Encapsulation Adalah tehnik menyembunyikan data Maksud dari Enkasulapsi adalah untuk melindungi data dengan membatasi akses langsung terhadap data dari Method maupun Atributte yang tidak seharusnya mengakses data tersebut. Manipulasi Data hanya dapat dilakukan melalui method.
Encapsulation pada attribute dan method Pada Class MyCar method dapat diakses oleh Class yang lainnya (OtherObject) Namun Pada attribute Class MyCar Tidak dapat diakses olehOtherObject dikarenakan method yang ada telah
Jenis-jenis Enkapsulasi pada attribute dan method Tingkatan pada Enkapsulasi ada 4 yaitu: Private Protected Public Default
Tingkatan Enkapsulasi pada attribute dan method Private : memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari attribute atau method tersebut. Protected : memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut terhadap attribute atau method dari class induk. Public : memberikan hak akses kepada attribute dan method agar dapat digunakan diluar class tersebut. Default : memberikan hak akses hanya pada class yang ada di dalam satu package
Tabel Enkapsulasi
Coding Time
Polymorphism/Polymorphisme polymorphism(dari bahasa Yunani) : having several different forms(memiliki beberapa wujud.)Dimana inheritance memiliki hubungan ke class-class hiraki Polymorphisme pada OOP→Kemampuan untuk menampung /thread pekerjaan yang berbeda seakan mereka sama Polymorphisme akan digunakan jika Inheritance sudah tidak mampu lagi menampung class yang ada
Polymorphism/Polymorphisme Shape(bentuk)awal dapat dikategorikan menjadi beberapa bentuk(Segi empat,Lingkaran,Segi tiga dan segi lima) Bahkan Segi empat,Lingkaran,Segi tiga dan segi lima dapat memiliki bentuk baru
Teknik Polymorphism Pendefinisian objek subclass dengan superclass Overriding method : menggantikan tubuh dari argumen-argumen di dalam sebuah method dengan argumen-argumen yang mencerminkan kebutuhan objek yg mengimplementasikannya. Oveloading method/objek : Menggunakan keunikan objek lain yang tidak berelasi langsung Menggunakan class interface
Contoh-contoh Teknik Polymorphism Teknik pendifinisian subclass dengan superclass Overriding method & Menggunakan objek lain yang tidak berelasi langsung
Coding Time
Kasus Aritmatika!!!! Buat program yg mampu melakukan operasi aritmatika kalibataku(kali tambah kurang)
Penyelesaian Dengan Non OOP Terdiri dari satu class Tak ada Objek yg dibuat/diinstantiate
Penyelesaian Dengan OOP Terdapat lebih dari 1 class Masing-masing class dapat bekerja secara mandiri/dengan class lainnya Objek (AOOP) berada dalam class utama