Anda di halaman 1dari 34

Konsep

Pemrograman
berorientasi
Obyek
Rekayasa Sistem Komputer
IST AKPRIND Yogyakarta
2022/2023
PENDAHULUAN
• Konsep pemrograman telah berubah
dari pendekatan pemrograman
prosedural mengarah ke pendekatan
pemrograman berorientasi obyek
(Object Orientated Programming/OOP)
• Pemrograman prosedural 
permasalahan diselesaikan dengan
serangkaian langkah prosedural yang
dapat berupa proses berurutan,
perulangan, dan kondisi.
Gambar Pendekatan Gambar Pendekatan
Pemrograman Pemrograman OOP
Prosedural

PROGRAM APLIKASI
metoda metoda

fungsi data data


fungsi fungsi
metoda metoda
metoda metoda

Data global
Pendahuluan
• Berorientasi Obyek berarti
mengorganisasi perangkat lunak
sebagai kumpulan obyek tertentu
yang memiliki struktur data dan
perilakunya.
• Perbedaan dengan pemrograman
konvesional adalah struktur data dan
perilaku hanya berhubungan secara
terpisah.
Cara menentukan karakteristik dalam
pendekatan berorientasi obyek secara
umum
• Identifikasi • Polymorphism
• Klasifikasi (polimorfisme)
• Inherintance
(pewarisan)
• Encapsulation
(pengkapsulan)
• Information Hiding
Karakteristik dari Obyek
• Identitas berarti bahwa data diukur
mempunyai nilai tertentu yang
membedakan entitas dan disebut
obyek
• Contoh obyek :
-suatu paragraf dari dokumen
-suatu windows dari workstation
-raja putih dari buah catur
Lanjutan......

• Obyek dapat kongkrit atau


konseptual,
• Kongkrit contoh : arsip dalam sistem,
• Konseptual seperti kebijakan
penjadwalan dalam multiprocessing
pada sistem operasi.
• Setiap obyek mempunyai sifat yang
melekat pada identitasnya.
• Dua obyek dapat berbeda walaupun
semua nilai atributnya identik.
Lanjutan......

• Dalam dunia nyata, suatu obyek berada


secara sederhana, tapi dalam
pemrograman mempunyai penanganan
dengan referensi yang unik
• Penanganan mungkin dinyatakan dengan
berbagai cara, seperti alamat, indeks dari
array atau nilai unik dari atribut
• Referensi obyek seragam dan independen
dari isi obyek, memperbolehkan campuran
kumpulan dari obyek yang dibuat, seperti
suatu file dalam direktori yang berisi file
dan subdirektori
Lanjutan......

• Klasifikasi berarti bahwa suatu


kegiatan mengumpulkan data
(atribut) dan perilaku (operasi) yang
mempunyai struktur data sama ke
dalam satu grup yang disebut kelas.
• Kelas merupakan abstraksi yang
menjelaskan sifat penting pada suatu
aplikasi dan mengabaikan yang lain.
• Setiap kelas menunjukkan suatu
kumpulan infinite yang mungkin dari
obyek.
Lanjutan......

• Suatu obyek dapat dikatakan


sebagai instans dari kelas.
• Setiap instans dari kelas mempunyai
nilai individu untuk setiap nama
atribut dan operasi, tetapi memiliki
bersama atribut dan operasi dengan
instans lain dalam kelas.
Obyek Poligon Kelas Poligon
Atribut
titik sudut
batas
warna
Operasi
gambar
hapus
translasi

Gambar di atas menunjukkan kelas dengan


beberapa instans yang berhubungan dengannya
• Pengembangan berorientasi obyek
merupakan cara berpikir baru tentang
perangkat lunak berdasarkan abstraksi
yang terdapat dalam dunia nyata.
• Dalam konteks pengembangan menunjuk
pada bagian awal dari siklus hidup
pengembangan sistem, yaitu : survei,
analisis, desain, implementasi dan
pemeliharaan sistem.
• Hal yang lebih penting dalam
pengembangan berorientasi obyek adalah
konsep mengidentifikasi dan
mengorganisasi domain aplikasi
dibandingkan dengan fokus penggunaan
bahasa pemrograman, berorientasi obyek
atau tidak.
Konsep Pemodelan

• Kebanyakan usaha akhir dalam lingkungan


berorientasi obyek dipusatkan pada bahasa
pemrograman
• Pada saat ini banyak literatur yang
mengutamakan implementasi dibandingkan
dengan analisis dan desain.
• Pemrograman berorientasi obyek sangat
bermanfaat untuk menghilangkan keterbatasan,
yang sebenarnya tidak fleksibel dalam bahasa
pemrograman tradisional
Lanjutan Konsep Pemodelan
• Pengembangan berorientasi obyek dalam
proses konseptual terpisah dengan bahasa
pemrograman sampai tahap terakhir
• Pengembangan berorientasi obyek secara
mendasar merupakan cara berpikir baru dan
bukan suatu teknik pemrograman
• Hal ini dapat berfungsi sebagai media
spesifikasi, analisis, dokumentasi dan interface
seperti halnya pemrograman
Metodologi Berorientasi Obyek
• Metodologi berorientasi obyek dikenalkan pada
tahun1980, menggunakan perangkat kerja dan teknik-
teknik yang dibutuhkan dalam pengembangan sistem,
yaitu : dynamic dan static object oriented model, state
transition diagram dan case scenario
• Fokus utama metodologi ini pada obyek, dengan
melihat suatu sistem terdiri dari obyek yang saling
berhubungan
• Obyek dapat digambarkan sebagai benda, orang,
tempat dan sebagainya yang mempunyai atribut dan
metode
Lanjutan Metodologi Berorientasi Obyek

• Metodologi terdiri dari pembuatan model dari


domain aplikasi, kemudian menambahkan
rincian implementasi pada saat pembuatan
desain dari suatu sistem
• Tahap-tahap metodologi berdasarkan System
Development Life Cycle (SDLC) digunakan
dengan memperhatikan karakteristik khusus
berorientasi obyek.
Lanjutan Metodologi Berorientasi Obyek

a. Analisis Berorientasi Obyek (Object-Oriented


Analysis/OOA)
Dimulai dengan menyatakan suatu masalah,
analis membuat model situasi dari dunia
nyata, menggambarkan sifat penting
Dalam menganalisa suatu sistem, analis harus
bekerja dengan pihak yang membutuhkan
sistem untuk memahami masalah tersebut
dengan jelas
Lanjutan Analisis Berorientasi Obyek

Model analisis adalah abstraksi yang ringkas dan tepat


dari apa yang harus dilakukan oleh sistem, dan
bagaimana melakukannya
Obyek dalam model harus merupakan konsep domain
dari aplikasi, dan bukan merupakan implementasi
komputer seperti struktur data
Model yang baik harus dipahami dan ditanggapi oleh
ahli aplikasi
Empat kesulitan yang merupakan gangguan utama
dalam pengembangan sistem : memahami problem
domain, komunikasi antara pihak yang berkaitan,
perubahan kontinyu, dan reuse (penggunaan kembali)
Lanjutan Metodologi Berorientasi Obyek

b. Desain berorientasi obyek (Object-oriented


design/OOD)
Tahap lanjutan setelah analisis dengan tujuan
sistem diorganisasi ke dalam sub-sistem
berdasar struktur analisis dan arsitektur yang
dibutuhkan
Desainer sistem (System designer)
menentukan karakteristik penampilan secara
optimal, menentukan strategi memecahkan
masalah, dan menentukan pilihan alokasi
sumber daya.
Lanjutan Desain berorientasi obyek
Contoh : desainer sistem mungkin menentukan
perubahan pada screen untuk workstation yang
memerlukan kecepatan serta resolusi lebih tinggi.
Desain model yang digunakan berdasarkan model
analisis dengan dilengkapi rincian untuk
implementasi. Fokus dari desain obyek (object
design) adalah perencanaan struktur data dan
algoritma yang diperlukan untuk implementasi
setiap kelas.
Obyek domain aplikasi dan obyek domain
komputer dijelaskan dengan menggunakan konsep
dan notasi berorientasi obyek yang sama
Lanjutan Metodologi Berorientasi Obyek

c. Implementasi
Kelas, obyek dan relasinya dikembangkan
dalam tahap pembuatan desain obyek yang
pada akhirnya diterjemahkan ke dalam
bahasa pemrograman, basis data, dan
implementasi perangkat keras
Hal yang penting dalam tahap implementasi
adalah mengikuti penggunaan perangkat
lunak yang baik
Lanjutan Implementasi

Konsep berorientasi obyek dapat berlaku pada


siklus kehidupan dari analisis sampai implementasi
Kelas yang sama dipergunakan dari satu tahap ke
tahap lain tanpa perubahan notasi, walaupun
menambahkan rincian implementasi pada tahap
akhir
Beberapa kelas tidak merupakan bagian dari
analisis, tetapi baru dikenali pada tahap desain atau
implementasi. Contoh : struktur data seperti tree
dan linked list jarang digambarkan dalam dunia
nyata.
Karakteristik Metodologi Berorientasi Obyek

• Metodologi pengembangan sistem berorientasi obyek


mempunyai tiga karakteristik utama, yaitu :

1. Encapsulation (pengkapsulan)
2. Inheritance (pewarisan)
3. Polymorphism (polimorfisme)
1. Encapsulation (pengkapsulan)

• Adalah proses pemaketan data bersama dengan


fungsi
• Merupakan dasar untuk pembatasan ruang lingkup
program terhadap data yang diproses
• Data dan prosedur atau fungsi dikemas bersama-
sama dalam suatu obyek, sehingga prosedur atau
fungsi lain dari luar tidak dapat mengaksesnya
• Data terlindung dari prosedur atau obyek lain,
kecuali prosedur yang berada dalam obyek itu
sendiri
Lanjutan encapsulation
• Pengkapsulan (juga information hiding) terdiri dari
pemisahan aspek eksternal dari suatu obyek, dimana
dapat diakses oleh obyek lain.
• Pengkapsulan melindungi program dari saling
keterkaitan, sehingga kesempatan kecil mempunyai
akibat penyimpangan
• Pengkapsulan tidak unik terhadap bahasa berorientasi
obyek, tetapi kemampuan untuk mengkombinasikan
struktur data dengan perilaku dalam satu entitas
membuat pengkapsulan jelas dan mempunyai
kekuatan lebih dari pada dalam bahasa konvensional
yang memisahkan data dengan perilaku.
Lanjutan encapsulation
• Contoh : mobil, sebagai pengendara mobil kita
tidak perlu mengetahui secara rinci tentang
mobil, misal berapa katup yang ada di mesin,
bagaimana proses pembakaran bahan bakar
dan lain-lain yang mungkin kurang begitu
relevan bagi kita sebagai pengguna. Hal yang
penting bagi kita adalah bagaimana
mengendarai mobil dengan benar.
• Istilah lain dari pengkapsulan atau enkapsulasi
adalah penyembunyian informasi (information
hiding )
Lanjutan encapsulation
• Dalam pemrograman, enkapsulasi memberi dua
keuntungan :
1. Penyembunyian implementasi (implementation
hiding)  menyatakan suatu proteksi terhadap
implementasi internal suatu obyek. Suatu obyek
tersusun atas antar muka public dan bagian yang
private yang dapat berupa kombinasi antara data dan
fungsi internal (adalah bagian obyek yang tidak dapat
diakses dari luar obyek). Keuntungannya bahwa
bagian ini dapat diubah-ubah tanpa memberi
pengaruh pada program yang menggunakan obyek
ini.
Lanjutan encapsulation

2. Modularitas  menyatakan suatu obyek


dapat dipelihara secara independent
terhadap obyek-obyek yang lain. Karena
kode program (source code) bagian internal
dipelihara secara terpisah dari antar muka,
kita secara bebas dapat melakukan
perubahan dan perubahan itu tidak akan
mengakibatkan terjadinya masalah
(problem)
2. Inheritance (pewarisan)
• Adalah teknik yang menyatakan bahwa anak
dari obyek akan mewarisi data/atribut dan
metode dari induknya langsung.
• Obyek baru turunan selalu mewarisi sifat-sifat
moyangnya.
• Keuntungan dari sifat pewarisan ini adalah
penggunaan bersama data dan kode-kode
umum yang dimiliki obyek (polimorfisme).
Lanjutan Inheritance
Gambar berikut memperlihatkan contoh pewarisan
obyek buah. Dalam hal ini Buah adalah moyang semua
buah, termasuk Apel dan Pisang. Tentunya Apel dan
Pisang mewarisi sifat Buah. Demikian pula dengan
Apel Merah dan Pisang Raja misalnya.
Buah

Apel Pisang

Apel Merah Apel Hijau Pisang Raja Pisang Ambon


Ancestor, Descendant
• Ancestor  moyang / asal dari suatu komponen.
Descendant  keturunan suatu komponen /
komponen yang dibentuk/diturunkan dari komponen
lain. Keduanya erat kaitannya dalam pembentukan
komponen atau kelas baru.
• Semua kelas yang mewariskan sifat-sifatnya pada
komponen disebut moyang. Kelas untuk menurunkan
sebuah komponen disebut moyang langsung. Setiap
komponen mewarisi sifat dari moyang langsungnya
dan juga sifat dari moyang-moyang sebelumnya
secara berurutan. Komponen adalah keturunan
moyangnya.
3. Polymorphism (polimorfisme)
• Yaitu konsep yang menyatakan bahwa sesuatu
yang sama dapat mempunyai bentuk dan perilaku
berbeda
• Mempunyai arti bahwa operasi yang sama
mungkin mempunyai perbedaan dalam kelas yang
berbeda
• Operasi move mungkin mempunyai perbedaan
dalam kelas windows atau kendaraan bermotor
• Suatu implementasi yang spesifik dari suatu
operasi dari kelas tertentu disebut metode.
• Karena operator berorientasi obyek adalah
bersifat polimorfisme, mungkin dapat mempunyai
lebih dari satu metode
Perbedaan dengan metodologi Non Obyek
• Penggunaan alat, metodologi non obyek
menggunakan beberapa alat untuk
menggambarkan model seperti data flow
diagram, entity relationship diagram dan
structure chart. Sedangkan metodologi
berorientasi obyek menggunakan satu
jenis model dari tahap analisis sampai
implementasi, yaitu object diagram
(diagram objek)
Perbedaan dengan metodologi Non Obyek
• Data dan proses, metodologi non obyek, data dan
proses dianggap sebagai dua komponen yang
berlainan, sedangkan pada metodologi berorientasi
obyek, data dan proses merupakan satu kesatuan,
yaitu bagian dari obyek
• Bahasa pemrograman, metodologi non obyek
dipergunakan untuk melengkapi pemrograman
terstruktur pada bahasa generasi ketiga, sedangkan
metodologi berorientasi obyek dipergunakan untuk
pemrograman berorientasi obyek dan bahasa generasi
keempat

Anda mungkin juga menyukai