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