rpl-2.4.1. pemrograman berorientasi objek (1)

49
Rekayasa Perangkat Lunak 2 Pemrograman Berorientasi Objek OOP

Upload: putri-dewintari

Post on 27-Dec-2015

83 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Rekayasa Perangkat Lunak 2 Pemrograman Berorientasi Objek

OOP

Page 2: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

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)

Objek dan Kelas

Page 5: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

Objek

Page 7: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

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)

Kelas

Kelas

1st Instansiasi Objek

2nd Instansiasi Objek

nst Instansiasi Objek

Page 10: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

Kelas sederhana

Page 12: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Contoh Kasus

Page 13: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Class Method

Page 14: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Class Method

Page 15: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Kelas (Class)

Page 16: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Konstruktor

Page 17: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Konstruktor

Page 18: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

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)

Mekanisme Enkapsulasi

Page 21: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Method & Atribut Access modifier

Page 22: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Contoh Public

Page 23: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Contoh Private

Page 24: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Reference This

Page 25: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Static dan Alokasi Memori

Page 26: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Contoh

Page 27: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Contoh Static

Page 28: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

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)

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)

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)

Keuntungan Pemrograman Berorientasi Objek

Page 33: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

Konsep Dasar Berorientasi Objek

Page 35: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

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)

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)

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)

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)

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)

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)

Ilustrasi Polimorfisme

Page 43: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

Perbandingan Pendekatan Berorientasi Objek dan Terstruktur.

Page 44: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

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)

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)

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)

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)

Materi Kuliah dapat di download di :

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

Page 49: RPL-2.4.1. Pemrograman Berorientasi Objek (1)

SELESAI ......