SlideShare a Scribd company logo
1 of 36
Download to read offline
Building Object-Oriented
Programming Foundations with
Kotlin for Android Developers
9 March 2024
“Never doubt process”
Speakers
Raihan Israq Zabran
// (Curriculum & Developers Head)
Letakkan foto
raihanzabrann
Kode: Class dan Object
Empat Pilar dalam OOP
Empat pilar OOP
Inheritance
Kode: Single Inheritance
Animal : Superclass
Cat : Subclass
Kode: Multilevel Inheritance
Animal : Superclass
Carnivore : Subclass dari Animal
Cat : Subclass dari Carnivore
Encapsulation
Encapsulation bisa digambarkan seperti smartphone. Saat menggunakan
smartphone kita tidak perlu tahu bagaimana proses yang berjalan di belakang,
seperti menampilkan sesuatu pada layar, menyediakan jaringan seluler, dan lain
sebagainya. Kita cukup menggunakannya sebagaimana mestinya sebuah telepon
genggam. Seperti itulah encapsulation bekerja.
Kode: Encapsulation
Abstraction
Encapsulation bisa digambarkan seperti smartphone. Saat menggunakan
smartphone kita tidak perlu tahu bagaimana proses yang berjalan di belakang,
seperti menampilkan sesuatu pada layar, menyediakan jaringan seluler, dan lain
sebagainya. Kita cukup menggunakannya sebagaimana mestinya sebuah telepon
genggam. Seperti itulah encapsulation bekerja.
Kode: Abstraction
Compile time polymorphism
Juga dikenal sebagai overloading (pembebanan lebih dari satu fungsi dengan nama
yang sama di satu kelas). Dalam polimorfisme compile-time, pemilihan fungsi
tergantung pada tipe atau jumlah parameter
Kode: Polymorphism Compile - Time
Runtime Polymorphism
Runtime polymorphism adalah proses di mana sebuah fungsi dipanggil pada saat
runtime. Contoh dari runtime polymorphism adalah method overriding, yaitu
sebuah kelas yang memiliki fungsi dengan nama sama dengan fungsi yang di dalam
kelas induknya.
Kode: Polymorphism Runtime
Relasi Pada OOP
Hubungan antar objek merupakan hal yang sangat mendasar di dalam pemrograman berorientasi
objek. Hubungan antar objek juga mendefinisikan bagaimana objek-objek tersebut akan berinteraksi
atau berkolaborasi satu sama lainnya agar kita dapat menuliskan kode dengan mudah, bersih dan bisa
digunakan kembali (reusable).
● Association : memiliki hubungan “has-a” yang menyatakan bahwa sebuah kelas memiliki hubungan
dengan kelas lainnya.
● Dependency : hubungan ini memiliki arti bahwa sebuah kelas memiliki ketergantungan terhadap
kelas lain.
● Generalization : memiliki hubungan “is-a” dari kelas yang spesifik ke kelas yang lebih umum.
Association : One to one relationship
Association : One to many relationship
Association : Many to many relationship
Composition
Bentuk hubungan kedua yaitu komposisi, sebuah hubungan dapat dikatakan komposisi jika sebuah
kelas “memiliki” class lainnya
Aggregation
Perbedaan dengan bentuk hubungan komposisi adalah bentuk hubungan ini tidak terikat, yang berarti
setiap class dapat berdiri sendiri. Seperti contoh pada gambar di atas, meskipun kelas Shop
dihancurkan, class Seller masih dapat digunakan. Tapi tidak sebaliknya. Jika class Seller tidak ada, maka
class Shop sudah tidak relevan lagi untuk digunakan
Kode: Association
Dependency
Hubungan dependensi terjadi apabila, sebuah fungsi pada class A membutuhkan class B sebagai
parameter, fungsi pada class A memiliki nilai kembalian berupa class B, dan class A menggunakan class
B tetapi class B bukan merupakan sebuah atribut
Kode: Dependency
Generalization
Dalam hubungan generalisasi terjadi proses memisahkan karakteristik dari dua atau lebih class dan
menggabungkannya jadi satu class yang lebih umum atau biasa kita sebut SuperClass. Karakteristik ini
bisa seperti atribut, hubungan asosiasi, atau fungsi pada beberapa class. Pada gambar di atas kita
dapat melihat bahwa class Product merupakan SuperClass dari beberapa class lainnya.
Specialization
Berbanding terbalik dengan generalisasi, hubungan spesialisasi berarti membuat sebuah SubClass dari
class yang sudah ada.
Kode: Generalization and Specialization
Realization / Implementation
Hubungan realisasi atau implementasi adalah hubungan abstraksi khusus antara dua kelas, satu
mewakili interface yang menjadi spesifikasinya (ProductService) dan yang lainnya mewakili kelas
implementasi yang menjadi realisasinya (ProductServiceImpl)
Kode: Realization and Implementation
Thank you for joining!
… and see you !

More Related Content

Similar to Study Jam Andorid #3 Building Object-Oriented Programming Foundations with Kotlin for Android Developers.pdf

516206149-Solid-Principle-Dan-Design-Pattern.pptx
516206149-Solid-Principle-Dan-Design-Pattern.pptx516206149-Solid-Principle-Dan-Design-Pattern.pptx
516206149-Solid-Principle-Dan-Design-Pattern.pptx
AdityaSuryani1
 
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdfJENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
Jurnal IT
 
Pewarisan, Polimorfisme, dan Interface
Pewarisan, Polimorfisme, dan InterfacePewarisan, Polimorfisme, dan Interface
Pewarisan, Polimorfisme, dan Interface
Ibrahim Naki
 
Pemograman berorientasi obyek kelompok 6
Pemograman berorientasi obyek kelompok 6Pemograman berorientasi obyek kelompok 6
Pemograman berorientasi obyek kelompok 6
ゴースト アノン
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
Sugeng Nirwoto
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
Sugeng Nirwoto
 

Similar to Study Jam Andorid #3 Building Object-Oriented Programming Foundations with Kotlin for Android Developers.pdf (20)

Class diagram
Class diagramClass diagram
Class diagram
 
516206149-Solid-Principle-Dan-Design-Pattern.pptx
516206149-Solid-Principle-Dan-Design-Pattern.pptx516206149-Solid-Principle-Dan-Design-Pattern.pptx
516206149-Solid-Principle-Dan-Design-Pattern.pptx
 
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
 
[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316
 
Hardini 3201416015 3_b
Hardini 3201416015 3_b Hardini 3201416015 3_b
Hardini 3201416015 3_b
 
Dart Object-Oriented Programming (OOP) and Flutter State Management
Dart Object-Oriented Programming (OOP) and Flutter State ManagementDart Object-Oriented Programming (OOP) and Flutter State Management
Dart Object-Oriented Programming (OOP) and Flutter State Management
 
Resume tentang oop dalam php
Resume tentang oop dalam phpResume tentang oop dalam php
Resume tentang oop dalam php
 
Tugas aplinet meresum
Tugas aplinet meresumTugas aplinet meresum
Tugas aplinet meresum
 
Presentation1.pdf
Presentation1.pdfPresentation1.pdf
Presentation1.pdf
 
OOP & Sollid Principle.ppsx
OOP & Sollid Principle.ppsxOOP & Sollid Principle.ppsx
OOP & Sollid Principle.ppsx
 
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdfJENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept
 
La star uml class diagram
La star uml class diagramLa star uml class diagram
La star uml class diagram
 
Materi delphi
Materi delphiMateri delphi
Materi delphi
 
Pewarisan, Polimorfisme, dan Interface
Pewarisan, Polimorfisme, dan InterfacePewarisan, Polimorfisme, dan Interface
Pewarisan, Polimorfisme, dan Interface
 
Pemograman berorientasi obyek kelompok 6
Pemograman berorientasi obyek kelompok 6Pemograman berorientasi obyek kelompok 6
Pemograman berorientasi obyek kelompok 6
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
 
Resume tentang oop dalam php
Resume tentang oop dalam phpResume tentang oop dalam php
Resume tentang oop dalam php
 

Study Jam Andorid #3 Building Object-Oriented Programming Foundations with Kotlin for Android Developers.pdf