RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Post on 27-Dec-2015

83 views 1 download

Transcript of RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Rekayasa Perangkat Lunak 2 Pemrograman Berorientasi Objek

OOP

Overview

• Modul ini berisi mengenai pengenalan, konsep dasar

pemrograman berorientasi objek, dan perbedaan antara

pemrograman terstruktur dan pemrograman berorientasi

objek.

Agenda Perkuliahan

1. Objek dan Kelas

2. Keuntungan Pemrograman Berorientasi Objek

3. Konsep Dasar Berorientasi Objek

4. Perbandingan Pendekatan Berorientasi Objek dan

Terstruktur.

Objek dan Kelas

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.

Objek

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.

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

Kelas

Kelas

1st Instansiasi Objek

2nd Instansiasi Objek

nst Instansiasi Objek

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)

Kelas sederhana

Contoh Kasus

Class Method

Class Method

Kelas (Class)

Konstruktor

Konstruktor

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

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;

}

Mekanisme Enkapsulasi

Method & Atribut Access modifier

Contoh Public

Contoh Private

Reference This

Static dan Alokasi Memori

Contoh

Contoh Static

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

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;

}

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

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

Keuntungan Pemrograman Berorientasi Objek

Keuntungan Pemrograman Berorientasi Objek

1. Meningkatkan Produktivitas

2. Kecepatan Pengembangan

3. Kemudahan Pemeliharaan

4. Adanya Konsistensi

5. Meningkatkan Kualitas Perangkat Lunak

Konsep Dasar Berorientasi Objek

Konsep Dasar Berorientasi Objek

1. Abstraksi (abstraction)

2. Enkapsulasi (encapsulation)

3. Pewarisan (inheritance)

4. Polimorfisme (polymorphism)

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.

Enkapsulasi (encapsulation)

1. Dikenal sebagai information hiding.

2. Pembungkusan pada objek:

a. Property

b. Behaviour.

Ilustrasi Abstraksi dan Enkapsulasi

Class Car

Attributes

Model

Location

#Wheels = 4

Operations

Start

Accelerate

<<instanceOf>>

<<instanceOf>>

<<instanceOf>>

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.

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

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.

Ilustrasi Polimorfisme

Perbandingan Pendekatan Berorientasi Objek dan Terstruktur.

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.

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.

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

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 :

software.engineering.unikom@gmail.com, “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.

Materi Kuliah dapat di download di :

“http://www.mediafire.com/?l6zxix76297bu”

SELESAI ......