SlideShare a Scribd company logo
1 of 33
Object Oriented
Programming on Dart
About me
• CTO meets.indonesia
• Core Team UI/UX GDSC Unsri 2022/2023
• Member Mobile Development GDSC Unsri
2023/2024
/lib/views/aboutme.dart
LinkedIn : https://www.linkedin.com/in/kevinnaserwan
Github : https://github.com/KevinNaserwan
Instagram : @kevinnaserwan
Kevin Putrayudha Naserwan
● Understanding OOP Concepts in Dart
● Dart Classes and Constructors
● Inheritance and Polymorphism in Dart
● State Management in Flutter
Outline
OOP (Object-Oriented Programming
Rumah
https://miro.com/app/board/uXjVMBqJqD8=/
Apa Manfaat OOP ?
➢ Modularity
➢ Reusability
➢ Productivity
➢ Easily Upgradable and scalable
➢ Flexibility
Apa dasar sebelum menerapkan
prinsip prinsip OOP?
Class
Class adalah gabungan object yang terdiri
dari beberapa komponen seperti:
➢ properties
➢ setter/ getter
➢ Construction
Class juga disebut sebagai blueprint dasar
dalam membuat sebuah objek
Properties
Properties adalah variabel yang ada pada
sebuah class.
Semua tipe data dan class model dapat
menjadi properties untuk suatu class
Object Oriented Programming
Dart menggunakan pendekatan pemrograman berbasis
objek (OOP). Yang mana menggunakan class untuk
mencakup objek tersebut.
Abstraction : Konsep atau blueprint dari sebuah class
Polymorphism : Bisa membuat instance/objek lebih dari 1 dari suatu class
Inheritance : Pewarisan di mana suatu class dapat memiliki behaviour dan properti
yang sama dengan yang diwarisinya
Constructor
constructor adalah class spesial yang
bertanggung jawab menginisialisasi variabel di
dalam class. constructor tidak memiliki return
type. constructor memiliki nama yang sama
seperti nama class
jika tidak didefinisikan, maka default adalah no-
argument constructor
Inheritance
Inheritance (pewarisan) digunakan saat
membuat sebuah object yang memiliki
perilaku yang sama dengan object yang lain.
inheritance biasanya berupa extends class lain.
untuk di flutter kita bisa menambahkan
beberapa inheritance dari kelas lain dengan
keyword with.
Abstraction
Abstract class adalah sebuah blueprint class,
sehingga kita perlu untuk mengimplementasi
sebuah abstract class untuk kita override.
Polymorphism
Polymorphism adalah menggunakan suatu
fungsi atau attribute tertentu dari suatu base
class untuk diimplementasikan oleh children
class baik secara default maupun dimodifikasi
sesuai dengan relevansi yang digunakan oleh
masing-masing children class
Implement vs Extends
extend digunakan pada inheritance OOP. jika
class B extends class A, maka semua properti
yang terdapat pada class A dapat diakses pada
class B.
implement digunakan ketika ingin
mengimplementasikan semua fungsi dari class
lain. implement merupakan ekivalen dari
interface pada java
extend hanya dapat digunakan pada satu class
implement dapat menggunakan banyak class
Overriding Methods
Overriding method adalah sebuah metode yang
dipakai untuk kelas induk atau superclass dan
nantinya akan dipakai untuk mendefinisikan
ulang dengan kelas turunan atau subclass
menggunakan nama metode serta parameter-
parameter yang sama.
Metode yang dipakai ketika Overriding dalam
bahasa pemrograman berorientasi objek ini akan
disembunyikan keberadaannya, sehingga ketika
seorang programmer akan menulis metode
yang telah di-Overriding maka metode yang
dipanggil adalah dari kelas turunan.
Quiz
1.Apa yang dimaksud dengan polimorfisme dalam pemrograman
berorientasi objek (OOP)?
a) Kemampuan sebuah objek untuk memperoleh sifat-sifat dari kelas
induknya
b) Kemampuan sebuah metode untuk menerima parameter dari berbagai
tipe
c) Kemampuan sebuah objek untuk menggantikan objek dari kelas lain
d) Kemampuan sebuah kelas untuk mewarisi properti dan metode dari
kelas lain
1.Apa yang dimaksud dengan polimorfisme dalam pemrograman
berorientasi objek (OOP)?
a) Kemampuan sebuah objek untuk memperoleh sifat-sifat dari kelas
induknya
b) Kemampuan sebuah metode untuk menerima parameter dari berbagai
tipe
c) Kemampuan sebuah objek untuk menggantikan objek dari kelas lain
d) Kemampuan sebuah kelas untuk mewarisi properti dan metode dari
kelas lain
2.Dalam konsep pewarisan (inheritance) dalam OOP, apa yang
dimaksud dengan kelas turunan (subclass)?
a) Kelas yang tidak memiliki metode
b) Kelas yang mewarisi properti dan metode dari kelas lain
c) Kelas yang hanya memiliki satu metode
d) Kelas yang tersembunyi dari kelas utama
2.Dalam konsep pewarisan (inheritance) dalam OOP, apa yang
dimaksud dengan kelas turunan (subclass)?
a) Kelas yang tidak memiliki metode
b) Kelas yang mewarisi properti dan metode dari kelas lain
c) Kelas yang hanya memiliki satu metode
d) Kelas yang tersembunyi dari kelas utama
State Management In Flutter
What Is State?
- Data / Informasi yang kamu butuhkan untuk membangun UI kapan saja.
Misalnya ketika kamu berpindah ke haaman lain, otomatis kamu akan
merubbah state, kemudian mentrigger untuk mengubah tampilan user
interface. Dan UI akan me-rebuild dari awal.
Semua widget berasal dari StatelessWidget atau StatefulWidget.
StatelessWidget tidak memiliki informasi state apa pun tetapi mungkin
berisi widget yang berasal dari StatefulWidget.
StatefulWidget membuat aplikasi memiliki sifat dinamis melalui
perilaku interaktif widget dan status berubah selama interaksi.
contoh, mengetuk tombol FAB akan menambah nilai counter dan
Flutter akan secara otomatis merender ulang widget menggunakan nilai
yang baru
Stateless vs Stateful
Stateless vs Stateful
Stateless:
Hanya memiliki build() method
Context hanya bisa dipanggil di dalam fungsi
build()
Build method hanya dijalankan satu kali
Tidak bisa di render ulang ketika terjadi
perubahan informasi dari dalam widget
Dapat berubah ketika input/masukan widget
berubah
Tidak memiliki widget
Contoh: Text, Icon, IconButton
Stateful
Memiliki build(), initstate(), dispose() dan
method lain
Context dapat diakses dari fungsi apapun
Widget dapat di-render ulang, contoh
dengan menggunakan setState() saat
internal data berubah
Contoh: Checkbox, Radio, Slider, InkWell,
Form, dan TextField
Stateful
Memiliki beberapa
kondisi/nilai
Stateless
Tidak memiliki state/nilai
Stateful Lifecycle
State Management
- Flutter termasuk ke dalam sebuah tools yang fokus utamanya adalah
menampilkan state dari widget yang berupa stateless atau stateful.
- Tetapi belum menyelesaikan permasalahan terkait cara management dan
arsitektur dari proyek aplikasi seperti framework lain pada umumnya
- State management adalah sebuah cara untuk mengatur data / state,
memisahkan antara logic dan view, agar logic tersebut dapat digunakan ulang,
juga dapat digunakan untuk membuat arsitektur serta sharing state antar
halaman.
State Management
Provider
State management berdasarkan InheritedWidget
untuk penggunaan yang sederhana dan mudah.
package ini juga direkomendasikan oleh Flutter Team
BLoC
state management berbasis stream yang juga
memberikan pengalaman dalam mengembangkan
arsitektur design, sperti Presentation, Bussiness
Logic, Data
RiverPod
Hampir sama dengan Provider, namun dilakukan
implementasi ulang pada InheritedWidget
terhadap hal yang belum dimiliki Provider
GetX
popularitasnya cepat karena mendukung state
management, injection, route management, i10n, dll
setState
pendekatan low-level yang
dapat digunakan untuk widget
yang spesifik
Lainnya
Redux
Mobx
dll
https://denigma.io
https://chat.openai.com
(dukun digital)
https://bard.google.com
Thank You!

More Related Content

Similar to Dart Object-Oriented Programming (OOP) and Flutter State Management

Uts pemrograman berbasis obj
Uts pemrograman berbasis objUts pemrograman berbasis obj
Uts pemrograman berbasis objJulianGultom2
 
Pengenalan OOP
Pengenalan OOPPengenalan OOP
Pengenalan OOPdaffa12
 
Presentation1.pdf
Presentation1.pdfPresentation1.pdf
Presentation1.pdfRobbyCokro1
 
Part 8 - Object Oriented Programming
Part 8 - Object Oriented ProgrammingPart 8 - Object Oriented Programming
Part 8 - Object Oriented ProgrammingRolly Yesputra
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan JavaLaili Aidi
 
Resume tentang oop dalam php
Resume tentang oop dalam phpResume tentang oop dalam php
Resume tentang oop dalam phphendrajuniarto
 
Network programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanNetwork programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanLia Rusdyana Dewi
 
Tugas resume aplinet (edi,vani,risky)
Tugas resume aplinet (edi,vani,risky)Tugas resume aplinet (edi,vani,risky)
Tugas resume aplinet (edi,vani,risky)Koplak Koplakan
 
[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)rizki adam kurniawan
 
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2rizki adam kurniawan
 
APBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptxAPBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptxSamso20
 
Pengantar Pengembangan Sistem Berorientasi Objek.pptx
Pengantar Pengembangan Sistem Berorientasi Objek.pptxPengantar Pengembangan Sistem Berorientasi Objek.pptx
Pengantar Pengembangan Sistem Berorientasi Objek.pptxDzulFadliRahman1
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objekNamira Namirah
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONrahmantoyuri
 

Similar to Dart Object-Oriented Programming (OOP) and Flutter State Management (20)

Uts pemrograman berbasis obj
Uts pemrograman berbasis objUts pemrograman berbasis obj
Uts pemrograman berbasis obj
 
Pengenalan OOP
Pengenalan OOPPengenalan OOP
Pengenalan OOP
 
Presentation1.pdf
Presentation1.pdfPresentation1.pdf
Presentation1.pdf
 
Part 8 - Object Oriented Programming
Part 8 - Object Oriented ProgrammingPart 8 - Object Oriented Programming
Part 8 - Object Oriented Programming
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan Java
 
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
 
Network programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanNetwork programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java Lanjutan
 
Materi delphi
Materi delphiMateri delphi
Materi delphi
 
Pbo1 1
Pbo1 1Pbo1 1
Pbo1 1
 
Tugas resume aplinet (edi,vani,risky)
Tugas resume aplinet (edi,vani,risky)Tugas resume aplinet (edi,vani,risky)
Tugas resume aplinet (edi,vani,risky)
 
Resume aplinet
Resume aplinetResume aplinet
Resume aplinet
 
[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Class Diagram dan Konsep Object Oriented (1)
 
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2
 
APBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptxAPBO Pertemuan Rev01.pptx
APBO Pertemuan Rev01.pptx
 
Pengantar Pengembangan Sistem Berorientasi Objek.pptx
Pengantar Pengembangan Sistem Berorientasi Objek.pptxPengantar Pengembangan Sistem Berorientasi Objek.pptx
Pengantar Pengembangan Sistem Berorientasi Objek.pptx
 
13216 3 enkapsulasi
13216 3 enkapsulasi13216 3 enkapsulasi
13216 3 enkapsulasi
 
28431 3 enkapsulasi
28431 3 enkapsulasi28431 3 enkapsulasi
28431 3 enkapsulasi
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
 

More from pmgdscunsri

[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers
[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers
[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careerspmgdscunsri
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevpmgdscunsri
 
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptx
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptxDeep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptx
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptxpmgdscunsri
 
Firebase integration with Flutter
Firebase integration with FlutterFirebase integration with Flutter
Firebase integration with Flutterpmgdscunsri
 
Building a Flutter App.pptx
Building a Flutter App.pptxBuilding a Flutter App.pptx
Building a Flutter App.pptxpmgdscunsri
 
Convolutional Neural Networks (CNN) for Computer Vision - Day 4 Study Jams G...
Convolutional Neural Networks (CNN) for Computer  Vision - Day 4 Study Jams G...Convolutional Neural Networks (CNN) for Computer  Vision - Day 4 Study Jams G...
Convolutional Neural Networks (CNN) for Computer Vision - Day 4 Study Jams G...pmgdscunsri
 
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...pmgdscunsri
 
Introduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptx
Introduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptxIntroduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptx
Introduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptxpmgdscunsri
 
Dart Basics & Introduction to Flutter Part 2.pptx
Dart Basics & Introduction to Flutter Part 2.pptxDart Basics & Introduction to Flutter Part 2.pptx
Dart Basics & Introduction to Flutter Part 2.pptxpmgdscunsri
 
Dart Basics & Introduction to Flutter Part 1
Dart Basics & Introduction to Flutter Part 1Dart Basics & Introduction to Flutter Part 1
Dart Basics & Introduction to Flutter Part 1pmgdscunsri
 
Seminar and DevTalk : Mastering UX Research - 5 Whys Framework
Seminar and DevTalk : Mastering UX Research - 5 Whys FrameworkSeminar and DevTalk : Mastering UX Research - 5 Whys Framework
Seminar and DevTalk : Mastering UX Research - 5 Whys Frameworkpmgdscunsri
 
Seminar and DevTalk : Mastering UX Research - What is UX Research
Seminar and DevTalk : Mastering UX Research - What is UX ResearchSeminar and DevTalk : Mastering UX Research - What is UX Research
Seminar and DevTalk : Mastering UX Research - What is UX Researchpmgdscunsri
 
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...pmgdscunsri
 
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...pmgdscunsri
 
Sharing Session Internal : Computer Security
Sharing Session Internal : Computer SecuritySharing Session Internal : Computer Security
Sharing Session Internal : Computer Securitypmgdscunsri
 

More from pmgdscunsri (15)

[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers
[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers
[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
 
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptx
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptxDeep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptx
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptx
 
Firebase integration with Flutter
Firebase integration with FlutterFirebase integration with Flutter
Firebase integration with Flutter
 
Building a Flutter App.pptx
Building a Flutter App.pptxBuilding a Flutter App.pptx
Building a Flutter App.pptx
 
Convolutional Neural Networks (CNN) for Computer Vision - Day 4 Study Jams G...
Convolutional Neural Networks (CNN) for Computer  Vision - Day 4 Study Jams G...Convolutional Neural Networks (CNN) for Computer  Vision - Day 4 Study Jams G...
Convolutional Neural Networks (CNN) for Computer Vision - Day 4 Study Jams G...
 
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...
 
Introduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptx
Introduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptxIntroduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptx
Introduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptx
 
Dart Basics & Introduction to Flutter Part 2.pptx
Dart Basics & Introduction to Flutter Part 2.pptxDart Basics & Introduction to Flutter Part 2.pptx
Dart Basics & Introduction to Flutter Part 2.pptx
 
Dart Basics & Introduction to Flutter Part 1
Dart Basics & Introduction to Flutter Part 1Dart Basics & Introduction to Flutter Part 1
Dart Basics & Introduction to Flutter Part 1
 
Seminar and DevTalk : Mastering UX Research - 5 Whys Framework
Seminar and DevTalk : Mastering UX Research - 5 Whys FrameworkSeminar and DevTalk : Mastering UX Research - 5 Whys Framework
Seminar and DevTalk : Mastering UX Research - 5 Whys Framework
 
Seminar and DevTalk : Mastering UX Research - What is UX Research
Seminar and DevTalk : Mastering UX Research - What is UX ResearchSeminar and DevTalk : Mastering UX Research - What is UX Research
Seminar and DevTalk : Mastering UX Research - What is UX Research
 
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...
 
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...
 
Sharing Session Internal : Computer Security
Sharing Session Internal : Computer SecuritySharing Session Internal : Computer Security
Sharing Session Internal : Computer Security
 

Dart Object-Oriented Programming (OOP) and Flutter State Management

  • 2. About me • CTO meets.indonesia • Core Team UI/UX GDSC Unsri 2022/2023 • Member Mobile Development GDSC Unsri 2023/2024 /lib/views/aboutme.dart LinkedIn : https://www.linkedin.com/in/kevinnaserwan Github : https://github.com/KevinNaserwan Instagram : @kevinnaserwan Kevin Putrayudha Naserwan
  • 3. ● Understanding OOP Concepts in Dart ● Dart Classes and Constructors ● Inheritance and Polymorphism in Dart ● State Management in Flutter Outline
  • 6. ➢ Modularity ➢ Reusability ➢ Productivity ➢ Easily Upgradable and scalable ➢ Flexibility
  • 7. Apa dasar sebelum menerapkan prinsip prinsip OOP?
  • 8. Class Class adalah gabungan object yang terdiri dari beberapa komponen seperti: ➢ properties ➢ setter/ getter ➢ Construction Class juga disebut sebagai blueprint dasar dalam membuat sebuah objek
  • 9. Properties Properties adalah variabel yang ada pada sebuah class. Semua tipe data dan class model dapat menjadi properties untuk suatu class
  • 10. Object Oriented Programming Dart menggunakan pendekatan pemrograman berbasis objek (OOP). Yang mana menggunakan class untuk mencakup objek tersebut. Abstraction : Konsep atau blueprint dari sebuah class Polymorphism : Bisa membuat instance/objek lebih dari 1 dari suatu class Inheritance : Pewarisan di mana suatu class dapat memiliki behaviour dan properti yang sama dengan yang diwarisinya
  • 11. Constructor constructor adalah class spesial yang bertanggung jawab menginisialisasi variabel di dalam class. constructor tidak memiliki return type. constructor memiliki nama yang sama seperti nama class jika tidak didefinisikan, maka default adalah no- argument constructor
  • 12. Inheritance Inheritance (pewarisan) digunakan saat membuat sebuah object yang memiliki perilaku yang sama dengan object yang lain. inheritance biasanya berupa extends class lain. untuk di flutter kita bisa menambahkan beberapa inheritance dari kelas lain dengan keyword with.
  • 13. Abstraction Abstract class adalah sebuah blueprint class, sehingga kita perlu untuk mengimplementasi sebuah abstract class untuk kita override.
  • 14. Polymorphism Polymorphism adalah menggunakan suatu fungsi atau attribute tertentu dari suatu base class untuk diimplementasikan oleh children class baik secara default maupun dimodifikasi sesuai dengan relevansi yang digunakan oleh masing-masing children class
  • 15.
  • 16. Implement vs Extends extend digunakan pada inheritance OOP. jika class B extends class A, maka semua properti yang terdapat pada class A dapat diakses pada class B. implement digunakan ketika ingin mengimplementasikan semua fungsi dari class lain. implement merupakan ekivalen dari interface pada java extend hanya dapat digunakan pada satu class implement dapat menggunakan banyak class
  • 17. Overriding Methods Overriding method adalah sebuah metode yang dipakai untuk kelas induk atau superclass dan nantinya akan dipakai untuk mendefinisikan ulang dengan kelas turunan atau subclass menggunakan nama metode serta parameter- parameter yang sama. Metode yang dipakai ketika Overriding dalam bahasa pemrograman berorientasi objek ini akan disembunyikan keberadaannya, sehingga ketika seorang programmer akan menulis metode yang telah di-Overriding maka metode yang dipanggil adalah dari kelas turunan.
  • 18.
  • 19. Quiz
  • 20. 1.Apa yang dimaksud dengan polimorfisme dalam pemrograman berorientasi objek (OOP)? a) Kemampuan sebuah objek untuk memperoleh sifat-sifat dari kelas induknya b) Kemampuan sebuah metode untuk menerima parameter dari berbagai tipe c) Kemampuan sebuah objek untuk menggantikan objek dari kelas lain d) Kemampuan sebuah kelas untuk mewarisi properti dan metode dari kelas lain
  • 21. 1.Apa yang dimaksud dengan polimorfisme dalam pemrograman berorientasi objek (OOP)? a) Kemampuan sebuah objek untuk memperoleh sifat-sifat dari kelas induknya b) Kemampuan sebuah metode untuk menerima parameter dari berbagai tipe c) Kemampuan sebuah objek untuk menggantikan objek dari kelas lain d) Kemampuan sebuah kelas untuk mewarisi properti dan metode dari kelas lain
  • 22. 2.Dalam konsep pewarisan (inheritance) dalam OOP, apa yang dimaksud dengan kelas turunan (subclass)? a) Kelas yang tidak memiliki metode b) Kelas yang mewarisi properti dan metode dari kelas lain c) Kelas yang hanya memiliki satu metode d) Kelas yang tersembunyi dari kelas utama
  • 23. 2.Dalam konsep pewarisan (inheritance) dalam OOP, apa yang dimaksud dengan kelas turunan (subclass)? a) Kelas yang tidak memiliki metode b) Kelas yang mewarisi properti dan metode dari kelas lain c) Kelas yang hanya memiliki satu metode d) Kelas yang tersembunyi dari kelas utama
  • 25. What Is State? - Data / Informasi yang kamu butuhkan untuk membangun UI kapan saja. Misalnya ketika kamu berpindah ke haaman lain, otomatis kamu akan merubbah state, kemudian mentrigger untuk mengubah tampilan user interface. Dan UI akan me-rebuild dari awal.
  • 26. Semua widget berasal dari StatelessWidget atau StatefulWidget. StatelessWidget tidak memiliki informasi state apa pun tetapi mungkin berisi widget yang berasal dari StatefulWidget. StatefulWidget membuat aplikasi memiliki sifat dinamis melalui perilaku interaktif widget dan status berubah selama interaksi. contoh, mengetuk tombol FAB akan menambah nilai counter dan Flutter akan secara otomatis merender ulang widget menggunakan nilai yang baru Stateless vs Stateful
  • 27. Stateless vs Stateful Stateless: Hanya memiliki build() method Context hanya bisa dipanggil di dalam fungsi build() Build method hanya dijalankan satu kali Tidak bisa di render ulang ketika terjadi perubahan informasi dari dalam widget Dapat berubah ketika input/masukan widget berubah Tidak memiliki widget Contoh: Text, Icon, IconButton Stateful Memiliki build(), initstate(), dispose() dan method lain Context dapat diakses dari fungsi apapun Widget dapat di-render ulang, contoh dengan menggunakan setState() saat internal data berubah Contoh: Checkbox, Radio, Slider, InkWell, Form, dan TextField
  • 30. State Management - Flutter termasuk ke dalam sebuah tools yang fokus utamanya adalah menampilkan state dari widget yang berupa stateless atau stateful. - Tetapi belum menyelesaikan permasalahan terkait cara management dan arsitektur dari proyek aplikasi seperti framework lain pada umumnya - State management adalah sebuah cara untuk mengatur data / state, memisahkan antara logic dan view, agar logic tersebut dapat digunakan ulang, juga dapat digunakan untuk membuat arsitektur serta sharing state antar halaman.
  • 31. State Management Provider State management berdasarkan InheritedWidget untuk penggunaan yang sederhana dan mudah. package ini juga direkomendasikan oleh Flutter Team BLoC state management berbasis stream yang juga memberikan pengalaman dalam mengembangkan arsitektur design, sperti Presentation, Bussiness Logic, Data RiverPod Hampir sama dengan Provider, namun dilakukan implementasi ulang pada InheritedWidget terhadap hal yang belum dimiliki Provider GetX popularitasnya cepat karena mendukung state management, injection, route management, i10n, dll setState pendekatan low-level yang dapat digunakan untuk widget yang spesifik Lainnya Redux Mobx dll