Konsep Berbasis Object (Object-Oriented Concept)

Slides:



Advertisements
Presentasi serupa
PERTEMUAN 4 PEMROGRAMAN API OOP Concept mudafiqriyan.com.
Advertisements

KEBUTUHAN & SPESIFIKASI SOFTWARE
Pemrograman Berorientasi Objek
Service-Oriented Architecture (SOA)
By : Rizky Yuniar Hakun. Konsep Pemrograman Berorientasi Object.
Object Oriented Programming
OBJECT ORIENTED PROGRAMMING in JAVA
Inheritance.
PENGENALAN ANALISA SISTEM BERORIENTASI OBYEK
Konsep Pemrograman Berorientasi Obyek
Pengantar Berorientasi Obyek
Pemrograman Lanjut Ratnokustiawan.wordpress.com.
DIKTAT PBO Oleh: Adam Mukharil B. S.Kom. BAB I – KONSEP PBO.
di OBJECT ORIENTED PROGRAMMING [OOP] Oleh H. SUMIJAN, Ir, M.Sc
7 Rekayasa Sistem Konsep Utama OOP Dedy Alamsyah, S.Kom.
Interoperabilitas.
Konsep Pemrograman Berorientasi Objek
BAB 1 KONSEP OOP.
Pemrograman Berorientasi Objek
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Abstract Class.
OBJECT-ORIENTED PROGRAMMING (OOP)
OOP pada pemrograman Web
CLASS, OBJECT METHOD, PROPERTIES Object Oriented Programming
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Perancangan Sistem Informasi Berorientasi Object
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Pengantar Perancangan Berorintasi Objek
Orientasi Object Pertemuan 2.
Konsep Dasar OOP.
KONSEP DASAR PENDEKATAN OBJEK
Perancangan dan Pemrograman Web
BAB 1 OBJECT Pokok bahasan :
11. Konsep Berbasis Object (Object-Oriented Concept)
OBJEK dan KELAS Sutrisno PTIIK-UB.
Arsitektur SisTer.
Encapsulation, Inheritance, Polymorphism
Outline: Pewarisan/Inheritance Polymorphism
Object Oriented Programming
PERANCANGAN SISTEM BERORIENTASI OBJEK DENGAN UML
PEMROGRAMAN BERORIENTASI OBJEK
POLYMORPHISM.
KEBUTUHAN & SPESIFIKASI SOFTWARE
KONSEP OOP INHERITANCE (PEWARISAN) Encapsulation (enkapsulasi)
Overview Component-Oriented Programming
Pemrograman Berorientasi Objek
Object Oriented Programming
Object Oriented Programming
KEBUTUHAN & SPESIFIKASI SOFTWARE
Pewarisan (Inheritance)
PEMROGRAMAN BERORIENTASI OBJECT 4 SKS 2 TEORI DAN 2 PRAKTEK
PEMROGRAMAN BERORIENTASI OBYEK
Pemrograman Berorientasi Objek
ANALISA & DESAIN BERORIENTASI OBJEK
Object Oriented Programming
Pemrograman Berorientasi Objek
PEMROGRAMAN BERORIENTASI OBJEK
Algoritma dan Struktur Data
Algoritma Pemrograman 3
ISTILAH-ISTILAH PENTING PEMROGRAMAN BERBASIS OBYEK
OO Sebagai Paradigma Pemrograman
PEMODELAN ANALISIS RPL – PERTEMUAN 5&6.
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER (STMIK) PALANGKARAYA
Pemrograman Berorientasi Obyek
Pemrograman Berorientasi Objek
TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT (OOP)
KEBUTUHAN & SPESIFIKASI SOFTWARE
Pemrograman Berorientasi Objek
DPH1C4 Pemrograman berorientasi Obyek
Transcript presentasi:

Konsep Berbasis Object (Object-Oriented Concept) Lukito Edi Nugroho

Materi Paradigma berbasis obyek (object-oriented/OO) Mengapa OO ? Pemrograman OO Konsep-konsep dalam OOP Kelas dan obyek Mekanisme OO: encapsulation, inheritance, dan polymorphism OO dan interoperabilitas Tools OO dalam komputasi terdistribusi

OO Sebagai Paradigma Pemrograman Paradigma pemrograman: pandangan mendasar terkait tentang formulasi sebuah solusi dalam bahasa pemrograman Paradigma pemrograman menjelaskan tentang perspektif/pandangan pemrogram tentang program yang akan dibuatnya Pemrograman berbasis obyek (OOP) mendasarkan pada konsep object dan interaksinya

Konsep Object Dalam paradigma berbasis object, “object” adalah representasi sebuah entitas yang memiliki makna tertentu yang menjadi perhatian si pemandang  object memiliki abstraksi tertentu bagi si pemandang Contoh: dalam sistem akademik di kampus, beberapa kandidat object adalah: mahasiswa, dosen, kelas, mata kuliah, kurikulum, praktikum, laboratorium, perpustakaan, KRS, KHS, … Object dapat menerima pesan (message), mengolah data, dan mengirimkan pesan ke object lain  membentuk interaksi antar object Object bersifat independen: tiap object dapat dipandang sebagai sebuah entitas mandiri yang memiliki peran atau tanggung jawab tertentu

Object dan Interaksinya pembeli kasir pelayan pesan & bayar siapkan burger siapkan kentang siapkan minum sajikan Skenario: restoran cepat-saji

Object dan Representasi Lingkup Permasalahan Object dan interaksinya dapat digunakan untuk merepresentasikan lingkup permasalahan Object merepresentasikan entitas-entitas yang dianggap penting dalam skenario permasalahan Interaksi antar object menggambarkan bentuk-bentuk relasi antar entitas di dalam skenario permasalahan OO sebagai tool untuk memodelkan sistem di dunia nyata (tujuan bahasa Simula-67)  setiap sistem selalu dapat digambarkan melalui object-object penyusunnya dan bagaimana object-object tersebut saling berinteraksi Dalam software engineering: OO analysis  OO design  OO programming

Kelebihan OO Sebagai Model Representasi Natural: mengikuti cara berpikir manusia (manusia memandang dunianya sebagai kumpulan object yang berinteraksi) Abstraksi: menjelaskan makna sebuah entitas secara cepat dan mudah Enkapsulasi: dapat menyembunyikan detil yang tidak perlu Modular: object adalah entitas yang independen

Pemrograman dan Bahasa Pemrograman Berbasis OO Merealisasikan entitas-entitas object dalam desain software (OOD) dalam bahasa pemrograman Bahasa pemrograman berbasis object menyediakan mekanisme untuk bekerja dengan: kelas dan object methods inheritance polymorphism reusability

Pemrograman dan Bahasa Pemrograman Berbasis OO Ragam bahasa pemrograman berbasis OO Bahasa OO “murni”  semua diperlakukan secara konsisten mengikuti teori OO dan “memaksa” pemrogram mengikutinya. Contoh: Smalltalk, Eiffel, Ruby Bahasa yang dirancang untuk OOP, tetapi dengan beberapa elemen prosedural. Contoh: Java (program utama/entry point) Bahasa yang aslinya prosedural, tetapi kemudian ditambah fitur-fitur OO. Contoh: C++, Perl, PHP

Konsep-Konsep dalam OOP: Kelas (Class) Mendefinisikan karakteristik abstrak dari sebuah entitas Property (statis) – fields, atribut Behaviour (dinamika) – fitur, methods Contoh: abstraksi “sepeda” memiliki property “punya roda”, “punya rantai”, dsb., dan behaviour “bisa berjalan”, “bisa berbelok”, dsb. Sebagai abstraksi dari sebuah entitas, definisi kelas harus mencerminkan karakteristik sebenarnya dari entitas tsb.

Kelas Kelas merupakan “cetakan” (template) untuk instance (wujud nyata) entitas-entitas yang direpresentasikannya Sebuah kelas dapat melahirkan lebih dari satu instance satu template banyak instance (wujud nyata)

Object Sebuah instance (perwujudan nyata) dari suatu kelas tertentu public class SegiEmpat { int panjang; int lebar; string warna; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; } public setWarna (string w) { warna = w; SegiEmpat sPink = new SegiEmpat(“pink”, 20,10); SegiEmpat sPutih = new SegiEmpat(“putih”, 15,10); SegiEmpat sOrange = new SegiEmpat(“orange”, 30,15);

Definisi Kelas dan Object public class SegiEmpat { int panjang; int lebar; string warna; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; } public setWarna (string w) { warna = w; field, menunjukkan atribut/property constructor, untuk menciptakan object (instance) baru dengan property tertentu methods atau member functions, mendeskripsikan behaviour atau aktivitas yang bisa dijalankan SegiEmpat sPink = new SegiEmpat(“pink”, 20,10); memanggil constructor untuk membentuk object baru

Enkapsulasi Enkapsulasi: lokalisasi fitur-fitur sebuah object (fields dan methods) dalam definisi object tersebut Enkapsulasi menyembunyikan property dan behaviour object dari pihak luar (object yang lain)  object lain melihat object ini sebagai “black box” saja Enkapsulasi memisahkan antara bagian publik (yang bisa dilihat oleh pihak luar (object lain) dan bagian privat (internal object itu sendiri) dengan tegas  fitur ini memberi keleluasaan/independensi untuk bekerja dengan aspek internal tanpa harus bergantung pada aspek publik/eksternal  berguna untuk menangani berbagai persoalan interoperabilitas

Enkapsulasi sPink Pihak luar (object lain) melihat sPink public class SegiEmpat { int panjang; int lebar; string warna; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; } public setWarna (string w) { warna = w; Pihak luar (object lain) melihat sPink sebagai sebuah “kotak hitam” yang tidak terlihat isinya, kecuali fields dan methods yang memang dideklarasikan secara publik sPink setWarna(string w) SegiEmpat sPink = new SegiEmpat(“pink”, 20,10); Object lain tidak bisa melihat apa yang dilakukan sPink secara internal

Inheritance (Pewarisan Sifat) Dalam dunia OO, beberapa object memiliki sifat/ciri yang mirip dengan yang lain  sebuah kelas object dapat didefinisikan dari kelas yang lain Kemiripan ini membentuk hubungan sifat yang bersifat hirarkis “pesawat penyergap adalah sebuah pesawat terbang yang dilengkapi dengan persenjataan dan dapat terbang melebihi kecepatan suara” “pesawat penyergap” memiliki ciri yang sama dengan “pesawat terbang”  “pesawat penyergap” mewarisi sifat “pesawat terbang” “pesawat penyergap” memiliki ciri yang lebih khusus dibandingkan “pesawat terbang”  “pesawat penyergap” adalah subclass dari “pesawat terbang” Dalam OOP, hubungan inheritance (pewarisan sifat) ini diimplementasikan melalui definisi kelas: sebuah kelas dapat didefinisikan dari kelas yang lain

Inheritance “bentuk” ellips poligon persegi panjang lingkaran segitiga bujur sangkar

Inheritance Dalam pohon hirarki inheritance, sebuah subclass mewujudkan abstraksi yang lebih spesifik dari superclassnya: subclass = superclass + (fitur-fitur baru) Subclass dapat menambahkan fields dan methods baru Subclass dapat mengambil alih (override) method milik superclass dan mengubah implementasi method tersebut Manfaat inheritance: Pemanfaatan kembali (reuse) kelas Menyediakan model yang bersifat generik (abstract class); implementasi spesifiknya bisa dilakukan kemudian (mungkin oleh pemrogram yang berbeda)

Polymorphism Poly: banyak; morphism: bentuk  sebuah fitur (generik) bisa diimplementasikan dengan berbagai cara Polymorphism diimplementasikan dengan mekanisme inheritance dan overriding hewan “bersuara” anjing “menggonggong” kucing “mengeong” kuda “meringkik”

OO dan Interoperabilitas Konsep abstraksi dan enkapsulasi membuat “batas” yang tegas antara bagian yang bersifat publik dan bagian yang bersifat privat Abstraksi menjelaskan hal-hal yang terlihat dari luar (bersifat publik) Enkapsulasi menyembunyikan detil-detil yang tidak perlu terlihat dari luar (bersifat privat) Independensi antara aspek publik dan privat dieksploitasi untuk menangani isu interoperabilitas: implementasi layanan dapat dilakukan tanpa harus tergantung pada siapa yang mengaksesnya

Pemisahan Publik – Privat “pesan nasi goreng” “memasak nasi goreng” Nasi goreng Mie goreng Mie bakso Pemilik warung (server) dapat memasak nasi goreng (implementasi layanan) dengan berbagai cara tanpa harus tergantung pada siapa yang memesannya (client).

Interoperabilitas di Level Aplikasi Bahasa A Sistem operasi B Database C Bahasa X Sistem operasi Y Database Z Network P Network Q Hardware M Hardware N

Solusi Berbasis OO Publik Privat server client X interface Y Z (object implementation) client X interface Y Z implementasi

Tools dan Teknologi Remote Procedure Calling (RPC) – tidak berbasis OO, tetapi telah menggunakan konsep pemisahan dengan interface Remote Method Invocation (RMI) – RPC versi Java Common Object Request Broker Architecture (CORBA) – arsitektur sistem terdistribusi berbasis OO OLE/COM, DCOM, .NET – solusi interoperabilitas dari Microsoft J2EE – suite pengembangan aplikasi enterprise berbasis Java