0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan39 halaman

Konsep Dasar OOP: Objek, Kelas, Enkapsulasi

Dokumen ini membahas tentang konsep-konsep dasar pemrograman berorientasi objek seperti object, class, encapsulation dan interaksi antar objek melalui pesan dan argumen. Dokumen ini juga memberikan contoh-contoh penerapan konsep-konsep tersebut dalam bahasa pemrograman Java.

Diunggah oleh

Ichsan
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
9 tayangan39 halaman

Konsep Dasar OOP: Objek, Kelas, Enkapsulasi

Dokumen ini membahas tentang konsep-konsep dasar pemrograman berorientasi objek seperti object, class, encapsulation dan interaksi antar objek melalui pesan dan argumen. Dokumen ini juga memberikan contoh-contoh penerapan konsep-konsep tersebut dalam bahasa pemrograman Java.

Diunggah oleh

Ichsan
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Object, Class & Encapsulation

Pertemuan 2

Ghifari Munawar, [Link], M.T Jurusan Teknik Komputer dan Informatika - POLBAN
Topics

1. Object
2. Messages
3. Class (class as a complete ADT)
4. Encapsulation

24/01/2023
Ghifari Munawar, [Link], M.T 2
Jurusan Teknik Komputer dan Informatika - POLBAN
Procedural vs OO Programming

24/01/2023
Ghifari Munawar, [Link], M.T 3
Jurusan Teknik Komputer dan Informatika - POLBAN
1. Object

• Objek merupakan sesuatu (tangible /


intangible) yang memiliki state (attributes)
dan behaviour (methods).
• Objek disebut juga “instance of class” atau
representasi dari sebuah kelas.

24/01/2023
Ghifari Munawar, [Link], M.T 4
Jurusan Teknik Komputer dan Informatika - POLBAN
Objek (contd.)

• An object represent an entity in the real


world that can be distinctly identified. For
example : a student, a desk, a circle, a
button, etc.
• Interaksi antar objek dilakukan melalui
“sending message”.

24/01/2023
Ghifari Munawar, [Link], M.T 5
Jurusan Teknik Komputer dan Informatika - POLBAN
3 key characters of objects :

The object’s behavior – what can you do with


this object, or what method can you apply ?

The object’s state – how does the object


react when you invoke those methods ?

The object’s identity – how is the object


distinguished from others ?

24/01/2023
Ghifari Munawar, [Link], M.T 6
Jurusan Teknik Komputer dan Informatika - POLBAN
Contoh interaksi antar objek
• Benjamin ingin memesan kursi sofa warna hijau, 5 seater-
set, dan dikirimkan pada hari rabu.
• Sean merupakan sales dari toko furniture.
• Bean mengirimkan pesan “takeOrder”, lalu Sean akan
mengembalikan “result” sesuai pesanan.

24/01/2023
Ghifari Munawar, [Link], M.T 7
Jurusan Teknik Komputer dan Informatika - POLBAN
Contd..

• Pesan : takeOrder(sofa type, who, address,


delivery date)

24/01/2023
Ghifari Munawar, [Link], M.T 8
Jurusan Teknik Komputer dan Informatika - POLBAN
Simulation

• Berdasarkan kasus tersebut, dapat


dikatakan bahwa objek, message dan
method menyediakan representasi yang
mirip dengan objek pada dunia nyata dan
interaksinya.
• OOP memodelkan permasalahan dunia
nyata sehingga dapat disimulasikan.
• Desain OOP pertama didesain awal tahun
1970 dengan Bahasa SIMULA
24/01/2023
Ghifari Munawar, [Link], M.T 9
Jurusan Teknik Komputer dan Informatika - POLBAN
2. Message

• Message merupakan suatu pemanggilan


method (method call) dari pengirim pesan
(sender) kepada penerima pesan (receiver).
• Informasi tambahan yang dikirimkan
melalui “method call” disebut arguments.

24/01/2023
Ghifari Munawar, [Link], M.T 10
Jurusan Teknik Komputer dan Informatika - POLBAN
Message Component

1. Object identifier : objek yang menerima


pesan (receiver)
2. Method name : nama method yang
dipanggil
3. Arguments : informasi tambahan yang
dikirimkan melalui method, biasanya
berupa input parameter.

24/01/2023
Ghifari Munawar, [Link], M.T 11
Jurusan Teknik Komputer dan Informatika - POLBAN
Contd..

24/01/2023
Ghifari Munawar, [Link], M.T 12
Jurusan Teknik Komputer dan Informatika - POLBAN
Latihan (10 menit)

• Consider the following scenarios and outline


the objects and their interactions in term of
messages and arguments :
• A customer making a cash withdrawal from
ATM
• A customer buying products from a vending
machine
• Buying flower from a florist
• Etc..

24/01/2023
Ghifari Munawar, [Link], M.T 13
Jurusan Teknik Komputer dan Informatika - POLBAN
3. Class

• Class merupakan suatu blueprint dari


objek.
• Class is a “definition of template for
structuring and creating objects with the
same attributes and same methods”.
• Class umumnya berupa “nouns” pada suatu
domain system.

24/01/2023
Ghifari Munawar, [Link], M.T 14
Jurusan Teknik Komputer dan Informatika - POLBAN
Contd..

• Sebagai contoh pada system order-


processing, beberapa nounsnya adalah sbb :
• Item
• Order
• Shipping address
• Payment
• Account
• Hal-hal tersebut dapat diidentifikasikan
sebagai class.
24/01/2023
Ghifari Munawar, [Link], M.T 15
Jurusan Teknik Komputer dan Informatika - POLBAN
Contd..

• Langkah awal ketika mendesain OOP


adalah identifikasikan class dan tentukan
state dan behaviornya.
• Struktur kelas terdiri dua, yakni
1. State (instance variables)
2. Behaviour (methods)

24/01/2023
Ghifari Munawar, [Link], M.T 16
Jurusan Teknik Komputer dan Informatika - POLBAN
State

• State dalam lingkup class direpresentasikan


dalam bentuk data fields. Sebagai contoh :
• Class circle, memiliki data field : radius
• Class rectangle, memiliki data field : width, dan
height
• Class car, memiliki data field : brand, color,
police number, type,
• State dapat juga disebut instance variable
atau attributes.

24/01/2023
Ghifari Munawar, [Link], M.T 17
Jurusan Teknik Komputer dan Informatika - POLBAN
Behavior

• Behavior dalam lingkup class (dapat juga


dikatakan sebagia actions) didefinisikan
dalam bentuk methods.

24/01/2023
Ghifari Munawar, [Link], M.T 18
Jurusan Teknik Komputer dan Informatika - POLBAN
Class is a template for creating objects

24/01/2023
Ghifari Munawar, [Link], M.T 19
Jurusan Teknik Komputer dan Informatika - POLBAN
Contoh struktur objek :

24/01/2023
Ghifari Munawar, [Link], M.T 20
Jurusan Teknik Komputer dan Informatika - POLBAN
Contoh desain kelasnya :

24/01/2023
Ghifari Munawar, [Link], M.T 21
Jurusan Teknik Komputer dan Informatika - POLBAN
Latihan (10 menit)

• Silahkan tentukan minimal 2 (dua) kelas


dari permasalahan berikut, dan tuliskan
apa saja contoh state dan behaviornya.
• E-commerce
• Social Media
• ATM
• Akademik Polban
• Etc ?

24/01/2023
Ghifari Munawar, [Link], M.T 22
Jurusan Teknik Komputer dan Informatika - POLBAN
Contoh Implementasi Class :
Abstraksi kelas Implementasi kelas
1 2

3
Instansiasi Objek

24/01/2023
Ghifari Munawar, [Link], M.T 23
Jurusan Teknik Komputer dan Informatika - POLBAN
Class Implementation

UML Class Diagram

24/01/2023
Ghifari Munawar, [Link], M.T 24
Jurusan Teknik Komputer dan Informatika - POLBAN
Relationship between Class
• Dependence (“use – a”)
• Aggregation (“has – a”)
• Inheritance (“is – a”)

24/01/2023
Ghifari Munawar, [Link], M.T 25
Jurusan Teknik Komputer dan Informatika - POLBAN
Contoh Relasi dependence

24/01/2023
Ghifari Munawar, [Link], M.T 26
Jurusan Teknik Komputer dan Informatika - POLBAN
4. Enkapsulasi (pembungkusan)

• Enkapsulasi merupakan salah satu konsep


OOP yang digunakan untuk membungkus
(bundling) sekumpulan attributes and
methods kedalam satu objek dan
menyembunyikan (information hiding)
detail implementasinya dari objek lain.
• Enkapsulasi terdiri dari dua konsep, yaitu :
1. Bundling
2. Information Hiding
24/01/2023
Ghifari Munawar, [Link], M.T 27
Jurusan Teknik Komputer dan Informatika - POLBAN
Keuntungan Enkapsulasi

• Memudahkan proses maintenance


(maintainability)
• Perubahan kode bersifat independent
• Meningkatkan usability
• Meningkatkan extensibility

24/01/2023
Ghifari Munawar, [Link], M.T 28
Jurusan Teknik Komputer dan Informatika - POLBAN
To achieve encapsulation in Java

• Declare variable of class as private.


• Provide public setter and getter methods to
modify and view variables values.

24/01/2023
Ghifari Munawar, [Link], M.T 29
Jurusan Teknik Komputer dan Informatika - POLBAN
Contoh Enkapsulasi :

24/01/2023
Ghifari Munawar, [Link], M.T 30
Jurusan Teknik Komputer dan Informatika - POLBAN
Visibility (Access Modifier)

24/01/2023
Ghifari Munawar, [Link], M.T 31
Jurusan Teknik Komputer dan Informatika - POLBAN
Contoh implementasi Access Modifier

24/01/2023
Ghifari Munawar, [Link], M.T 32
Jurusan Teknik Komputer dan Informatika - POLBAN
Quiz

• Quiz Session

24/01/2023
Ghifari Munawar, [Link], M.T 33
Jurusan Teknik Komputer dan Informatika - POLBAN
Kesimpulan :
• Object merupakan sesuatu yang nyata / tidak
nyata yang memiliki state (attributes) dan
behaviour (methods).
• Komunikasi antar objek dilakukan dengan
pertukaran pesan (sending message).
• Class merupakan blueprint dari sebuah objek
• Message merupakan suatu pemanggilan method
(method call) dari pengirim pesan (sender) kepada
penerima pesan (receiver).
• Enkapsulasi merupakan suatu konsep OOP yang
memiliki dua konsep, yaitu (1) bundling dan (2)
information hiding.

24/01/2023
Ghifari Munawar, [Link], M.T 34
Jurusan Teknik Komputer dan Informatika - POLBAN
Questions

24/01/2023
Ghifari Munawar, [Link], M.T 35
Jurusan Teknik Komputer dan Informatika - POLBAN
References :

1. Object oriented programming and Java


2nd Edition – Chapter 1 & 2
2. Head First Java 2nd Edition
3. Core Java Volume I – 10th Edition

24/01/2023
Ghifari Munawar, [Link], M.T 36
Jurusan Teknik Komputer dan Informatika - POLBAN
Tugas 1
Object, Class & Encapsulation

Ghifari Munawar, [Link], M.T Jurusan Teknik Komputer dan Informatika - POLBAN
Tugas 1 :
• Buatlah contoh interaksi kelas pada java di
Netbeans / Eclipse (minimal 2 kelas)
• (catatan : tema kelas bebas, boleh mengambil dari kasus
nyata / tidak nyata, contoh : game, kampus, toko, dll)
• Jenis Relationship yang digunakan adalah
dependences (“use – a”)
• Gunakan enkapsulasi untuk membungkus
attributes-nya !
• Copykan source code & screenshoot hasil
implementasi-nya pada word

24/01/2023
Ghifari Munawar, [Link], M.T 38
Jurusan Teknik Komputer dan Informatika - POLBAN
Contd..
• Beri nama file “tugas01_npm_nama.docx” atau
“tugas01_npm_nama.pdf”.
• Kumpulkan pada e-learning paling lambat 1 hari
sebelum perkuliahan berikutnya.

24/01/2023
Ghifari Munawar, [Link], M.T 39
Jurusan Teknik Komputer dan Informatika - POLBAN

Anda mungkin juga menyukai