tugas pertemuan 9

PERTEMUAN 9

PERANCANGAN

BERORIENTASI OBJEK

MATERI PEMBAHASAN

1. Identifikasi Kelas Objek

2. Istilah dalam Objek Oriented

3. Hubungan Antara Objek dan Kelas

4. Karakteristik Objek

5. Kelas Perancangan

6. Pendekatan Pemrograman Terstruktur

7. Pendekatan Berorientasi Objek

1. PENDAHULUAN

▪ Sistem berorientasi objek terdiri dari objek yang

berinteraksi yang mempertahankan keadaan (state)

lokal dan menyediakan operasi pada state tersebut.

▪ Representasi state bersifat pribadi dan tidak dapat

diakses langsung dari luar objek.

▪ Proses desain berorientasi objek melibatkan

perancangan kelas objek dan hubungan antara

kelas-kelas tersebut.

▪ Mengubah implementasi suatu objek atau

menambahkan metode atau operasi tidak

mempengaruhi objek lain dalam sistem.

▪ Hal-hal yang diperhatikan dalam desain berorientasi

objek:

1. Memahami dan mendefinisikan konteks dan

interaksi eksternal dengan sistem.

2. Desain arsitektur sistem.

3. Identifikasi objek utama dalam sistem.

4. Kembangkan model desain.

5. Tentukan antarmuka.

PENDAHULUAN - Lanjutan

▪ Desain berorientasi objek biasanya

diimplementasikan dengan bahasa pemrograman

berorientasi objek.

▪ Keuntungan utama dari desain OO adalah:

a. Sistem Analis dapat menghemat waktu dan

menghindari kesalahan dengan menggunakan objek

secara modular.

b. Programer dapat menerjemahkan desain ke dalam

kode. Objek yang baru dapat dibuat tanpa mengubah

kode yang sudah ada.

c. Bekerja dengan modul program yang dapat digunakan

kembali (reuse) yang telah diuji dan diverifikasi.

PENDAHULUAN - Lanjutan

A. IDENTIFIKASI KELAS OBJEK

▪ Tujuan mengidentifikasi kelas objek dalam sistem

berorientasi objek:

1. Gunakan analisis gramatikal dari deskripsi bahasa alami.

Objek dan atribut adalah kata benda; operasi atau layanan

adalah kata kerja.

2. Gunakan entitas nyata (benda) dalam domain aplikasi

seperti mobil, peran seperti manajer atau dokter, acara

seperti permintaan, interaksi seperti pertemuan, lokasi

seperti kantor, unit organisasi seperti perusahaan.

3. Gunakan analisis berbasis skenario dimana berbagai

skenario penggunaan sistem diidentifikasi dan dianalisis

secara bergantian.

B. Istilah dalam Objek Oriented

1. OBJEK (Object)

▪ Objek adalah konsep atau abstraksi tentang sesuatu

yang memiliki arti untuk aplikasi yang akan

dikembangkan

▪ Objek diwakili dengan kata benda

▪ Objek dapat berupa:

✓ Objek orang/manusia: Karyawan, Mahasiswa

✓ Objek tempat: Kantor, Gedung, Toko

✓ Objek abstrak: Transaksi, Jadwal, Peminjaman

✓ Objek organisasi: Divisi-IT, HRD

✓ Objek peralatan/benda: Mobil, Buku, Baju

2. ATRIBUT (Attribute)

▪ Suatu objek memiliki atribut tertentu yang merupakan

karakteristik yang menggambarkan objek.

▪ Suatu atribut dapat mengambil sebuah nilai yang

ditentukan berdasarkan domain yang dihitung.

▪ Domain merupakan satu himpunan nilai-nilai spesifik.

▪ Contoh: kelas MOBIL memiliki sebuah atribut WARNA.

Domain nilai untuk warna adalah {putih, hitam, perak,

abu-abu, biru, merah, kuning, hijau}.

▪ Objek dapat memiliki atribut khusus yang disebut state.

Keadaan suatu objek adalah kata sifat yang

menggambarkan status objek saat ini.

▪ Misalnya rekening bank dapat aktif, tidak aktif, tertutup,

atau dibekukan

3. METODE (Method)

▪ Suatu metode mendefinisikan tugas-tugas spesifik

yang dapat dilakukan oleh suatu objek.

▪ Metode dituliskan dengan kata kerja yang

menggambarkan apa dan bagaimana suatu objek

melakukan sesuatu.

▪ Misalnya: objek PELANGGAN dapat melakukan

tugas-tugas tertentu seperti melakukan pemesanan,

membayar tagihan, dan mengubah alamatnya.

4. PESAN (Message)

▪ Pesan (Message) adalah perintah yang memberi

tahu suatu objek untuk melakukan metode tertentu.

▪ Misalnya: pesan TAMBAHKAN SISWA mengarahkan

kelas SISWA untuk menambahkan nomor siswa,

nama, dan data lain tentang siswa itu. Demikian

pula, pesan bernama HAPUS SISWA memberi tahu

kelas SISWA untuk menghapus instance Siswa.

▪ Pesan yang sama untuk dua objek berbeda dapat

menghasilkan hasil yang berbeda.

CONTOH PESAN

▪ Objek INSTRUCTOR mengirim pesan ENTER GRADE

ke instance kelas STUDENT RECORD.

▪ Objek INSTRUCTOR dan kelas STUDENT RECORD

dapat digunakan kembali dengan sedikit modifikasi,

di sistem informasi sekolah lain dimana banyak

atribut dan metode akan serupa

CONTOH PESAN

▪ Kelas adalah deskripsi umum yang menggambarkan

sebuah kumpulan berisi objek-objek yang sama.

▪ Semua objek dalam kelas berbagi atribut dan metode yang

sama, sehingga kelas seperti blue print, atau template

untuk semua objek di dalam kelas.

▪ Superclass adalah generalisasi dari satu himpunan kelaskelas yang berhubungan.

▪ Subclass adalah spesialisasi dari superclass.

▪ Contoh: superclass kendaraanBermotor adalah

generalisasi dari kelas Truk, SUV, Minibus dan Car. Subclass

Minibus mewarisi semua atribut kendaraanBermotor,

tetapi juga menggabungkan atribut tambahan yang

spesifik hanya untuk Minibus.

5. KELAS (Class)

CONTOH KELAS DAN SUBKELAS

Berorientasi Objek?

Attribute:

Topi, Baju, Jaket,

Tas Punggung,

Tangan, Kaki, Mata

Behavior:

Cara Jalan ke Depan

Cara Jalan Mundur

Cara Belok ke Kiri

Cara Memanjat

Berorientasi Objek?

Attribute (State):

Ban, Stir, Pedal Rem, Pedal Gas,

Warna, Tahun Produksi

Behavior:

Cara Menghidupkan Mesin

Cara Manjalankan Mobil

Cara Memundurkan Mobil

Attribute → Variable(Member)

Behavior → Method(Fungsi)

C. Hubungan Antara Objek dan Kelas

▪ Hubungan (relationship) memungkinkan objek untuk

berkomunikasi dan berinteraksi ketika mereka

melakukan fungsi bisnis dan transaksi yang diperlukan

oleh sistem.

▪ Hubungan menggambarkan apa yang perlu diketahui

objek satu sama lain, bagaimana objek merespon

perubahan pada objek lain, dan efek keanggotaan dalam

kelas, superclass, dan subclass.

▪ Beberapa hubungan lebih kuat dari pada yang lain

(seperti hubungan antara anggota keluarga lebih kuat

dari satu hubungan antara kenalan biasa). Hubungan

terkuat disebut warisan.

Perbedaan Class dan Object

• Class: konsep dan deskripsi dari sesuatu

– Class mendeklarasikan method yang dapat digunakan

(dipanggil) oleh object.

• Object: instance dari class, bentuk (contoh)

nyata dari class

– Object memiliki sifat independen dan dapat digunakan

untuk memanggil method.

• Contoh Class dan Object:

– Class: mobil.

– Object: mobilnya pak Joko, mobilku, mobil berwarna

merah.

Perbedaan Class dan Object

▪ Satu class dapat memiliki banyak object, dan

setiap object tersebut mempunyai sifat yang sama

persis seperti yang didefinisikan dalam class

tersebut.

▪ Contoh Class dan Object:

– Class: Fruit

– Object: Pisang, Mangga, Apel

Perbedaan Class dan Object

▪ Class seperti cetakan kue, dimana kue yg

dihasilkan dari cetakan kue itu adalah object

▪ Warna kue bisa bermacam-macam meskipun

berasal dari cetakan yang sama (object memiliki

sifat independen).

KARAKTERISTIK OBJEK

A. Enkapsulasi (Encapsulation)

▪ Data dan prosedur/fungsi dikemas bersama-sama dalam

suatu objek, sehingga prosedur/fungsi lain dari luar

tidak dapat mengaksesnya.

▪ Data terlindung dari prosedur atau objek lain kecuali

prosedur yang berada dalam objek tersebut.

▪ Merupakan pembatasan ruang lingkup program

terhadap data.

▪ Enkapsulasi memungkinkan objek untuk digunakan

sebagai komponen modular di mana saja dalam sistem,

karena objek mengirim dan menerima pesan tetapi tidak

mengubah metode internal objek lain.

ENCAPSULATION

• Mekanisme menyembunyikan suatu proses dan data

dalam sistem untuk menghindari interferensi, dan

menyederhanakan penggunaan proses itu sendiri

– Tongkat transmisi (gigi) pada mobil

– Tombol on/off/pengaturan suhu pada AC

• Class access level (public, protected, private) adalah

implementasi dari konsep encapsulation

• Enkapsulasi data dapat dilakukan dengan cara:

1. mendeklarasikan instance variable(memiliki nilai yang

berbeda di setiap objek) sebagai private

2. mendeklarasikan method yang sifatnya public untuk

mengakses variable tersebut


Contoh Enkapsulasi

ACCESS MODIFIER

Modifier Dalam Class

yang Sama

Dalam

Package yang

Sama

Dalam

SubClass

Dalam

Package Lain

private ✓

tanpa

tanda

✓ ✓

protected ✓ ✓ ✓

public ✓ ✓ ✓ ✓

B. Pewarisan (Inheritance)

▪ Pewarisan adalah salah satu pembeda utama antara

sistem konvensional dan sistem berbasis objek.

▪ Subkelas Y mewarisi semua atribut dan operasioperasi yang terkait dengan superkelas X. Ini berarti

semua struktur dan algoritma data yang secara

orisinal dirancang dan diimplementasikan untuk X

segera tersedia untuk Y

▪ Perubahan apa pun pada atribut-atribut atau

operasi-operasi yang dimuat ke dalam sebuah

superkelas, akan diwarisi oleh semua subkelas.

Pewarisan (Inheritance)

▪ Suatu class dapat

mewariskan atribut dan

method kepada class lain

(subclass), serta

membentuk class hierarchy

▪ Penting untuk Reusability

▪ Java Keyword:

extends

▪ VB.Net Keyword:

Inherits

Pewarisan (Inheritance) di Java

▪ Nama_Class_Turunan, adalah nama class yang

akan dibuat sebagai class turunan atau subclass.

▪ Class_Induk, adalah class yang ditunjuk sebagai

SuperClass untuk class turunan.

Inheritance (Pewarisan) di VB.Net

▪ Inheritance dalam VB.NET dilakukan dengan

menggunakan keyword Inherits.

CONTOH PEWARISAN

C. Polimorfis (Polymorphism)

▪ Merupakan konsep yang menyatakan bahwa sesuatu

yang sama dapat mempunyai bentuk dan perilaku

berbeda.

▪ Polimorfis juga mempunyai arti bahwa operasi yang

sama mungkin mempunyai perbedaan dalam kelas

yang berbeda.

▪ Polimorfis sangat mengurangi usaha yang

diperlukan untuk memperluas perancangan sistem

berorientasi objek

Polymorphism

▪ Kemampuan untuk memperlakukan object

yang memiliki perilaku (bentuk) yang berbeda

▪ Implementasi konsep polymorphism:

1. Overloading: Kemampuan untuk menggunakan nama

yang sama untuk beberapa method yang berbeda

parameter (tipe dan atau jumlah).

2. Overriding: Kemampuan subclass untuk menimpa

method dari superclass, yaitu dengan cara

menggunakan nama dan parameter yang sama pada

method.

CONTOH POLIMORFIS

KELAS-KELAS PERANCANGAN

▪ Model kebutuhan menentukan serangkaian kelas-kelas

analisis yang masing-masing kelas menggambarkan

beberapa elemen masalah yang fokus pada masalah yang

dilihat oleh pengguna.

▪ Himpunan kelas-kelas perancangan adalah

1. Memperhalus kelas-kelas analisis dengan menyediakan

detail perancangan yang memungkinkan kelas-kelas bisa

diimplementasikan.

2. Menciptakan suatu himpunan kelas-kelas perancangan

yang baru, yang mengimplementasikan suatu

infrastruktur perangkat lunak yang mendukung solusi

bisnis.

Kelas perancangan yang merepresentasikan

lapisan berbeda dari perancangan arsitektur

a. Kelas-kelas antarmuka. Pengguna menentukan semua abstraksi

yang diperlukan untuk interaksi manusia dengan komputer

b. Kelas-kelas bisnis. Kelas-kelas mengidentifikasi atribut dan

operasi/metode yang dibutuhkan untuk mengimplementasikan

beberapa elemen ranah bisnis.

c. Kelas-kelas proses. Mengimplementasikan abstraksi bisnis yang

levelnya lebih rendah untuk sepenuhnya mengelola kelas-kelas

ranah bisnis.

d. Kelas-kelas persisten. Merepresentasikan data store yang akan

terus ada setelah eksekusi perangkat lunak.

e. Kelas-kelas sistem. Mengimplementasikan manajemen

Perangkat Lunak dan mengendalikan fungsi-fungsi agar mampu

mengoperasikan sistem dan berkomunikasi dengan dunia luar

A. Karakteristik Kelas Perancangan

a. Lengkap dan cukup

✓ Suatu kelas perancangan seharusnya menjadi

enkapsulasi lengkap dari semua atribut dan metode

yang dapat layak diharapkan.

✓ Cukup berarti memastikan bahwa kelas perancangan

berisi hanya metode-metode yang cukup untuk

mencapai tujuan kelas.

✓ Contoh: kelas Scene adalah lengkap hanya jika kelas ini

berisi semua atribut dan metode yang dapat layak

diasosiasikan dengan pembuatan suatu scene video.

b. Sederhana

▪ Metode-metode yang dihubungkan dengan

sebuah kelas perancangan harus fokus ke

pencapaian satu fungsi spesifik pada kelas.

▪ Contoh: kelas VideoClip memiliki atribut

StartPoint dan EndPoint untuk mengindikasikan

titik awal dan titik akhir.

Karakteristik Kelas Perancangan - Lanjut

c. Kohesi tinggi

▪ Kelas perancangan kohesif adalah single minded.

Artinya kelas ini memiliki satu kumpulan kecil

tanggung jawab yang fokus dan menerapkan

atribut dan metode untuk menjalankan tanggung

jawab tersebut.

▪ Contoh: kelas VideoClip dapat berisi satu

kumpulan metode-metode untuk mengedit klip

video. Kohesi dijaga asalkan setiap metode fokus

semata-mata pada atribut-atribut yang

diasosiasikan dengan klip video.

Karakteristik Kelas Perancangan - Lanjut

d. Keterhubungan rendah

▪ Jika sebuah model perancangan memiliki keterhubungan

tinggi (semua kelas perancangan berkolaborasi dengan

semua kelas perancangan lainnya), sistem menjadi sulit

diimplementasikan, diuji, dan dipelihara.

▪ Kelas perancangan pada subsistem memiliki hanya

pengetahuan terbatas tentang kelas-kelas lain.

▪ Pembatasan ini dinamakan Law of Demeter yang

menyatakan bahwa suatu metode seharusnya hanya

mengirim pesan ke metode-metode pada kelas-kelas yang

berdekatan.

Karakteristik Kelas Perancangan - Lanjut

PENDEKATAN

PEMROGRAMAN TERSTRUKTUR

Karakteristik Pendekatan Berorientasi Prosedur/Fungsi:

a. Penekanan pada sesuatu yang harus dikerjakan

(algoritma pemecahan masalah)

b. Program berukuran besar dipecah menjadi programprogram yang lebih kecil

c. Kebanyakan fungsi/prosedur berbagi data global

d. Data bergerak secara bebas dalam sistem dari satu fungsi

ke fungsi yang lain yang terkait

e. Fungsi-fungsi mentransformasi data dari satu bentuk ke

bentuk yang lain

f. Menggunakan pendekatan top-down

Struktur Umum Pemrograman

Terstruktur

Hubungan Data dan Fungsi pada

Pemrograman Terstruktur

PENDEKATAN BERORIENTASI OBJEK

Karakteristik Pada Pendekatan Berorientasi Objek:

✓ Pendekatan lebih kepada data (bukan fungsi/prosedur)

✓ Program besar dibagi menjadi beberapa objek

✓ Struktur data dirancang dan menjadi karakteristik dari

objek-objek

✓ Fungsi-fungsi yang mengoperasikan data tergabung dalam

suatu objek yang sama

✓ Data tersembunyi dan terlindung dari fungs/prosedur yang

ada di luar

✓ Objek-objek dapat saling berkomunikasi dengan saling

mengirim message satu sama lain

✓ Menggunakan pendekatan bottom-up

Pengorganisasian Data dan Metode (Fungsi) pada

Pendekatan Berorientasi Objek

6. Pemrograman Terstruktur vs

Pendekatan Berorientasi Objek

A. PEMROGRAMAN TERSTRUKTUR

✓ Permasalahan dilihat sebagai urutan sesuatu yang harus

dikerjakan, seperti input – proses – output.

✓ Fokus utamanya pada fungsi atau prosedur

✓ Data global pada program yang sangat besar, sangat sulit

untuk dilacak. Jika merevisi data global maka merevisi setiap

fungsi yang menggunakan data global.

✓ Tidak menggambarkan kasus nyata dengan baik, karena

fungsi-fungsi berorientasi pada aksi dan tidak berhubungan

langsung dengan permasalahan.

✓ Kurang sempurna dalam menangkap kebutuhan reusable

components, karena tidak ada standarisasi modul

B. PENDEKATAN BERORIENTASI OBJEK

✓ Penekanan pada “apa” yang dapat dilakukan oleh objek

✓ Pendekatan lebih kepada data

✓ Perubahan pada struktur data internal tidak

mempengaruhi struktur data objek yang lain

✓ Penggunaan bersama untuk beberapa tingkat yang

berbeda, seperti penggunaan bersama untuk disain dan

kode

✓ Menggunakan pendekatan bottom-up

✓ Fungsi/prosedur berbagi data global


Komentar

Postingan populer dari blog ini

tugas RPL Pertemuan 13

Tugas Pertemuan 11