Object Oriented Programming - 2015 Matrikulasi OOP Object Oriented Programming - 2015
Tujuan Pembelajaran Memahami konsep OOP Memahami konsep Class, Object, Atribut, Method dan Konstruktor serta mampu mengimplementasikannya dalam program Java Memahami konsep relasi antar Class dan mampu mengimplementasikannya dalam program Java Memahami konsep dasar inheritance dan mampu mengimplementasikannya dalam Java
Konsep Dasar OOP Program terdiri atas kumpulan objek-objek, yang saling berelasi antara satu dengan yang lainnya Diambil dari dunia nyata, dimana dalam setiap proses yang terjadi, pasti di dalamnya melibatkan objek-objek Misal: Dalam SIAKAD : di dalamnya ada objek dosen, mahasiswa, matakuliah, dll Dalam Toko Online : ada barang, pembeli, penjual, keranjang belanja, dll
Konsep Dasar OOP OOP vs Prosedural OOP Prosedural Program terdiri atas kumpulan objek-objek Program terdiri atas kumpulan fungsi-fungsi Reusability tinggi Reusability rendah Fleksibilats tinggi Fleksibilitas rendah Contoh: SIAKAD Mahasiswa Dosen Matakuliah KHS Ujian melihatNilai() mengubahDataMahasiswa() memasukanNilai() memasukanSoal() mengikutiUjian()
Konsep Dasar OOP Objek Class Enkapsulasi Inheritance Polimorfisme
1. Objek
Objek Semua benda yang nyata Contoh: LCD Proyektor Komputer Spidol Lampu
Objek Karekteristik Objek, yaitu memiliki: Data/Atribut/Variabel Data merupakan sesuatu properti yang dimiliki oleh suatu objek. Digunakan untuk menyimpan data dari suatu objek. Biasanya properti berupa kata benda. Contoh: Objek LCD Proyektor memiliki data/atribut: Kipas, Casing, Lampu sorot, power, tombol kontrol dsb Fungsi/Method/Behaviour Method merupakan sesuatu yang bisa dilakukan/dikerjakan oleh suatu objek. Method digunakan untuk memanipulasi data dan berkomunikasi dengan objek lain. Biasanya method berupa kata kerja. Contoh: Method dalam objek LCD Proyektor: Menampilkan, mengatur zoom, pause Freeze, dsb
2. Class
Class Template/Blueprint/Rancangan/Prototipe untuk membuat objek Di dalam Class, akan didefinisikan atribut/data dan method/fungsi yang akan dimiliki oleh setiap objek yang terbentuk darinya Setiap objek pasti terbentu dari suatu Class Proses pembentukan objek dari suatu clas disebut Instansiasi Objek disebut juga Instances (hasil instans atau bentukan) dari suatu class
Class vs Objek
Class vs Objek Jadi sebenarnya antara class dan objek yang dibentuk darinya, memiliki atribut danmethod yang sama. Cuma, atribut dan method dari class, sifatnya masih rancangan/belum nyata belum bisa digunakan untuk menyimpan dan mengolah data. Baru setelah dibuat objek (instansiasi) atribut dan method tersebut bisa digunakan untuk menyimpan data dan mengolah data.
Diagram Class Segitiga alas : int tinggi : int luas : float Nama Class alas : int tinggi : int luas : float Daftar Atribut hitungLuas(): void tampilData(): void Daftar Method
Contoh Mahasiswa nim: String nama: String kelas: String tampilData(): void
Contoh Class Nama Class Atribut Method
Contoh Objek Instansiasi Memberi nilai ke atribut Memanggil Method/Fungsi
Soal Dalam sistem toko online, barang memiliki kode barang, nama barang, harga satuan dan jumlah. Barang bisa menampilkan data dan menampilkan harga totalnya (perkalian antara harga satuan dan jumlah) Buat Diagram Class dan program nya
3. Enkapsulasi
Enkapsulasi Enkapsulasi : Pembungkusan Atribut/Data/Variabel dan Method/Fungsi dalam sebuah objek yang terlindungi. Artinya, atibut dan method dalam suatu objek bisa ditentukan hak aksesnya. Untuk menentukan hak akses tersebut digunakan Access Modifier. Access Modifier: Private Protected Default Public
Modifier Akses Modifier Class itu sendiri Class lain pada paket yang sama Subclass di paket yang berbeda Semua class Public Y Protected N Default Private
Contoh
4. Inheritance
Inheritance Atribut dan method dari suatu class bisa diwariskan ke class yang lain Bisa meningkatkan reusability dari kode program Class yang mewarisi Superclass Class yang diwarisi Subclass Subclass bisa menjadi superclass bagi class yang lain Multilevel Inheritance
Contoh
Contoh: BangunDatar SUPER CLASS
Contoh: SUB CLASS
Contoh: Main Class Ketika class Main dijalankan, maka outputnya adalah sbb: Luas = 0.0 Keliling = 0.0
Pembahasan Dari hasil program di slide sebelumnya, nilai luas dan keliling yang didapatkan adalah 0.0. Ini disebabkan karena class Lingkaran telah mewarisi method hitungLuas() dan hitngKeliling() dari class BangunDatar. Dan isi dari method hitungLuas() dan hitungKeliling() tersebut masing-masing memberikan nilai 0 pada atribut luas dan keliling. Itu sebabnya ketika dijalankan nilai luas dan keliling dari objek Lingkaran yang terbentuk adalah 0. Sehingga di dalam class Lingkaran, method hitungLuas() dan hitungKeliling() perlu DIMODIFIKASI dengan memberikan rumus perhitungan luas dan keliling di dalamnya. Demikian juga di dalam class Segitiga.
OVERRIDING METHOD Memodifikasi isi method yang sudah diwarisi dari superclass Proses modifikasi dilakukan di dalam subclass Syarat Overriding Method: Nama method di subclass harus sama dengan nama method yang di override di superclass Parameter/argumen method harus sama dengan argumen method yang di override di superclass
Contoh Overriding Overriding Method Mengoverride method hitungLuas() yang sudah diwarisi dari super class
5. Polimorfisme
Polimorfisme adalah kemampuan suatu objek untuk memiliki beberapa bentuk yang berbeda Bisa diterapkan pada class-class yang memiliki relasi inheritance
Contoh BangunDatar bd; bd = new Segitiga(); bd = new Lingkaran(); Perhatikan objek bd. Ia bisa dibentuk sebagai objek dari Segitiga. Dan ia juga bisa dibentuk sebagai objek dari Lingkaran. Ini bisa terjadi karena bd dideklarasikan dari BangunDatar.