rpl-2.4.1. pemrograman berorientasi objek (1)
TRANSCRIPT
![Page 1: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/1.jpg)
Rekayasa Perangkat Lunak 2 Pemrograman Berorientasi Objek
OOP
![Page 2: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/2.jpg)
Overview
• Modul ini berisi mengenai pengenalan, konsep dasar
pemrograman berorientasi objek, dan perbedaan antara
pemrograman terstruktur dan pemrograman berorientasi
objek.
![Page 3: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/3.jpg)
Agenda Perkuliahan
1. Objek dan Kelas
2. Keuntungan Pemrograman Berorientasi Objek
3. Konsep Dasar Berorientasi Objek
4. Perbandingan Pendekatan Berorientasi Objek dan
Terstruktur.
![Page 4: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/4.jpg)
Objek dan Kelas
![Page 5: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/5.jpg)
Objek
1. Objek adalah konsepsi atau benda di dunia nyata yang
bisa dibedakan satu dengan yang lainnya.
2. Objek dapat dibentuk dari domain permasalahan yang
diambil.
3. Objek mempunyai identitas, properti, dan tingkah laku.
4. Merupakan hasil instansiasi dari kelas.
![Page 6: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/6.jpg)
Objek
![Page 7: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/7.jpg)
Kelas
1. Sekumpulan objek yang memiliki kemiripan dalam
hal properti, atribut, prilaku, dan semantik.
2. Proses klasifikasi dilakukan untuk membentuk
kelompok dari beberapa objek yang memiliki
kemiripan.
![Page 8: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/8.jpg)
Kelas
Kendaraan
- Kode_Kendaraan : integer - Jenis_Kendaraan : string - Akselerasi : string - Waktu_Tempuh : integer
+ munculkanKendaraan() : string + akselerasiKendarran () : string + waktuTempuhKendaraan () : integer
Atribut : Data item yang menegaskan Kelas
Method / Behaviour : Pelaksanaan prosedur (badan dari kode yang mengeksekusi respon terhadap permintaan objek lain di dalam sistem).
Nama Kelas : Nama dari suatu kelas
![Page 9: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/9.jpg)
Kelas
Kelas
1st Instansiasi Objek
2nd Instansiasi Objek
nst Instansiasi Objek
![Page 10: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/10.jpg)
Kelas di Java
• Kelas dituliskan dengan keyword class, dengan
isi kelas menyatu dengan deklarasinya.
• Di C++ deklarasi dan definisi boleh dipisah
boleh disatukan.
• Access modifier harus ditulis untuk setiap
member (baik data maupun method)
![Page 11: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/11.jpg)
Kelas sederhana
![Page 12: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/12.jpg)
Contoh Kasus
![Page 13: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/13.jpg)
Class Method
![Page 14: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/14.jpg)
Class Method
![Page 15: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/15.jpg)
Kelas (Class)
![Page 16: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/16.jpg)
Konstruktor
![Page 17: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/17.jpg)
Konstruktor
![Page 18: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/18.jpg)
Konstruktor
• Di Java hanya ada konstruktor
• Tidak ada Copy Constructor
• Tidak ada destruktor
• Otomatis ada garbage collection (pemberesan Memori secara otomatis)
• Ada finalizer finalize()
• Tidak ada operator =, tapi ada method clone()
• Baca dokumentasi clone di API Java
![Page 19: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/19.jpg)
Deklarasi Konstruktor
• Nama konstruktor sama dengan nama kelas dan tidak memiliki nilai kembalian (sama seperti C++)
• Boleh ada banyak konstruktor (sama seperti C++)
• Contoh konstruktor Point(int x, int y) {
this.x = x;
this.y = y;
}
![Page 20: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/20.jpg)
Mekanisme Enkapsulasi
![Page 21: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/21.jpg)
Method & Atribut Access modifier
![Page 22: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/22.jpg)
Contoh Public
![Page 23: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/23.jpg)
Contoh Private
![Page 24: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/24.jpg)
Reference This
![Page 25: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/25.jpg)
Static dan Alokasi Memori
![Page 26: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/26.jpg)
Contoh
![Page 27: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/27.jpg)
Contoh Static
![Page 28: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/28.jpg)
Kelas Sederhana
• Kelas paling sederhana merepresentasi type (atribut) dan prototype (method).
• Paket ADT dalam bahasa C dapat ditranslasi menjadi sebuah kelas dengan konvensi sbb. • File adt.h tidak perlu ditulis
• File adt.c langsung menjadi sebuah kelas
• File madt.c menjadi sebuah kelas terpisah
• Setiap atribut dan method harus diberi
• “access modifier” secara eksplisit
![Page 29: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/29.jpg)
Penempatan Access Modifier
• Akses modifier dilakukan dengan menempatkannya langsung
di depan nama setiap property atau method
• Di C++ ada tanda ':' setelah access modifier dan akses method
berlaku untuk semua method/property sampai akses modifier
berikutnya
class Point3D {
private int x, y;
public int z;
}
![Page 30: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/30.jpg)
Kelas Point
• Perhatikan kelas berikut class Point {
private int x, y;
public int getX() { return x;}
public int getY() { return y;}
};
• Kelas di atas dapat dicompile sebagai C++ ataupun Java
![Page 31: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/31.jpg)
Method di Java
• Hanya ada sedikit perbedaan antara method di C++ dengan Java
• Java tidak memiliki parameter default
• method tidak bisa ditandai const
• Tidak ada pointer/reference untuk tipe dasar
• Konsekuensi paling sederhana: tidak bisa membuat method untuk menukar dua tipe dasar
![Page 32: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/32.jpg)
Keuntungan Pemrograman Berorientasi Objek
![Page 33: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/33.jpg)
Keuntungan Pemrograman Berorientasi Objek
1. Meningkatkan Produktivitas
2. Kecepatan Pengembangan
3. Kemudahan Pemeliharaan
4. Adanya Konsistensi
5. Meningkatkan Kualitas Perangkat Lunak
![Page 34: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/34.jpg)
Konsep Dasar Berorientasi Objek
![Page 35: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/35.jpg)
Konsep Dasar Berorientasi Objek
1. Abstraksi (abstraction)
2. Enkapsulasi (encapsulation)
3. Pewarisan (inheritance)
4. Polimorfisme (polymorphism)
![Page 36: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/36.jpg)
Abstraksi (abstraction)
Menjelaskan makna sebuah entitas secara cepat dan mudah.
1. Fokus terhadap esensi.
2. Menghilangkan sejumlah detail.
3. Fokus terhadap “is and does” dari sebuah objek.
![Page 37: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/37.jpg)
Enkapsulasi (encapsulation)
1. Dikenal sebagai information hiding.
2. Pembungkusan pada objek:
a. Property
b. Behaviour.
![Page 38: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/38.jpg)
Ilustrasi Abstraksi dan Enkapsulasi
Class Car
Attributes
Model
Location
#Wheels = 4
Operations
Start
Accelerate
<<instanceOf>>
<<instanceOf>>
<<instanceOf>>
![Page 39: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/39.jpg)
Pewarisan (inheritance)
1. Menyatakan pewarisan atribut atau method dari super
class ke sub class.
2. Digunakan untuk mendukung konsep reusable code.
3. Hak akses dari suatu atribut dan method memberikan
pengaruh terhadap pewarisanya.
![Page 40: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/40.jpg)
Ilustrasi Pewarisan
Kendaraan
# Kode_Kendaraan : integer # Jenis_Kendaraan : string # Akselerasi : string # Waktu_Tempuh : integer
+ munculkanKendaraan() : string + akselerasiKendarran () : string + waktuTempuhKendaraan () : integer
Mobil
- Akselerasi : string - Waktu_Tempuh : integer
+ akselerasiKendarran () : string + waktuTempuhKendaraan () : integer
![Page 41: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/41.jpg)
Polimorfisme (polymorphism)
1. Perbedaan konten method yang ada pada dua buah objek
atau lebih pada esensi method yang sama.
2. Konsep overloading dan overriding digunakan sebagai
implementasi polimorphisme.
3. Sub class diizinkan mempunyai isi method yang berbeda
dari method super classnya.
![Page 42: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/42.jpg)
Ilustrasi Polimorfisme
![Page 43: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/43.jpg)
Perbandingan Pendekatan Berorientasi Objek dan Terstruktur.
![Page 44: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/44.jpg)
Perbandingan Pendekatan Berorientasi Objek dan Terstruktur.
1. Dari Segi Dekomposisi Permasalahan
– Pendekatan Terstruktur Dekomposisi Permasalahan
berdasarkan fungsi atau proses.
– Pendekatan Berorientasi Objek Dekomposisi
Permasalahan berdasarkan objek atau konsep.
![Page 45: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/45.jpg)
Perbandingan Pendekatan Berorientasi Objek dan Terstruktur.
2. Dari Segi Kelebihan
– Pendekatan Terstruktur kelebihan dalam kemudahan dalam
memahami sistem khususnya bagi user yang memiliki
pemahaman sistem yang rendah.
– Pendekatan Berorientasi Objek kelebihan dalam peningkatan
produktivitas karena mempunyai reusability yang cukup tinggi
dibanding dengan pendekatan lain.
![Page 46: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/46.jpg)
Ilustrasi Perbandingan Berorientasi Objek dan Terstruktur
Sistem Akademik
Dosen Jadwal Kuliah
Kontrak Kuliah
Mahasiswa
Konteks
Penjadwalan Pengambilan
Kuliah Peniliaan
Dekomposisis berdasarkan objek atau konsep Dekomposisis berdasarkan fungsi atau proses
Metodologi Berorientasi Objek Metodologi Terstruktur
![Page 47: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/47.jpg)
Assignment
• Buat Rangkuman OOP :
• Mengenai Object, Class, Method (dalam bahasa Java, C++, dan C#).
• Mengenai Abstraksi (abstraction), Enkapsulasi (encapsulation), Pewarisan
(inheritance), dan Polimorfisme (polymorphism) (dalam bahasa Java, C++, dan C#).
• Dikumpulkan dalam bentuk soft copy (.pdf) dikirim ke email :
[email protected], “tidak ada respon penerimaan email”.
• Subjek : Tugas Rangkuman OOP RPL 2 (Kelas, Nama, NIM).
• Batasan pengumpulan 6 April 2014, keterlambatan Nilai minus 50%.
• Abstraksi (abstraction), Enkapsulasi (encapsulation), Pewarisan (inheritance), dan
Polimorfisme (polymorphism) dibahas secara detail minggu depan.
![Page 48: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/48.jpg)
Materi Kuliah dapat di download di :
“http://www.mediafire.com/?l6zxix76297bu”
![Page 49: RPL-2.4.1. Pemrograman Berorientasi Objek (1)](https://reader036.vdocuments.site/reader036/viewer/2022081722/55cf9683550346d0338bf49d/html5/thumbnails/49.jpg)
SELESAI ......