SlideShare a Scribd company logo
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
Dart Object-Oriented Programming (OOP) and Flutter State Management
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.
Dart Object-Oriented Programming (OOP) and Flutter State Management
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

PPTX
Pemograman berorientasi obyek kelompok 6
DOCX
Tugas resum
DOCX
Tugas pbw 1310652044_1310652045
DOCX
Tugas pbw 1310652044_1310652045
PDF
Tugas resume aplikasi internet
PPTX
Object Oriented Programming Concept
PPT
T1 - Konsep Pemrograman Berorientasi Obyek.ppt
DOCX
Resume tentang oop dalam php
Pemograman berorientasi obyek kelompok 6
Tugas resum
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
Tugas resume aplikasi internet
Object Oriented Programming Concept
T1 - Konsep Pemrograman Berorientasi Obyek.ppt
Resume tentang oop dalam php

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

DOCX
Uts pemrograman berbasis obj
PDF
Pengenalan OOP
PDF
Presentation1.pdf
DOCX
Part 8 - Object Oriented Programming
PDF
Pengenalan Java
DOCX
Resume tentang oop dalam php
PPTX
Tugas aplinet meresum
PDF
Network programming 03- Pemrograman Java Lanjutan
DOCX
Materi delphi
PDF
Pbo1 1
PPTX
Java Object Oriented Programming good understanding
PPTX
Tugas resume aplinet (edi,vani,risky)
DOC
Resume aplinet
PDF
[RPL2] Class Diagram dan Konsep Object Oriented (1)
PDF
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2
PPTX
APBO Pertemuan Rev01.pptx
PPTX
Pengantar Pengembangan Sistem Berorientasi Objek.pptx
PPTX
PPTX
PPTX
Pemograman berorientasi objek
Uts pemrograman berbasis obj
Pengenalan OOP
Presentation1.pdf
Part 8 - Object Oriented Programming
Pengenalan Java
Resume tentang oop dalam php
Tugas aplinet meresum
Network programming 03- Pemrograman Java Lanjutan
Materi delphi
Pbo1 1
Java Object Oriented Programming good understanding
Tugas resume aplinet (edi,vani,risky)
Resume aplinet
[RPL2] Class Diagram dan Konsep Object Oriented (1)
[RPL2] Pertemuan 1 - Pendahuluan Rekayasa Perangkat Lunak 2
APBO Pertemuan Rev01.pptx
Pengantar Pengembangan Sistem Berorientasi Objek.pptx
Pemograman berorientasi objek
Ad

More from pmgdscunsri (18)

PDF
Info Session Empowering You to Achieve More with GDGoC UNSRI
PDF
Info Session GDGoC UNSRI 2024_2025 - Nadia Laras
PDF
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
PPTX
[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers
PPTX
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
PDF
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptx
PPTX
Firebase integration with Flutter
PPTX
Building a Flutter App.pptx
PPTX
Convolutional Neural Networks (CNN) for Computer Vision - Day 4 Study Jams G...
PPTX
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...
PPTX
Introduction to Machine Learning - Day 1 Study Jams GDSC Unsri.pptx
PPTX
Dart Basics & Introduction to Flutter Part 2.pptx
PPTX
Dart Basics & Introduction to Flutter Part 1
PPTX
Seminar and DevTalk : Mastering UX Research - 5 Whys Framework
PPTX
Seminar and DevTalk : Mastering UX Research - What is UX Research
PDF
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...
PDF
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...
PDF
Sharing Session Internal : Computer Security
Info Session Empowering You to Achieve More with GDGoC UNSRI
Info Session GDGoC UNSRI 2024_2025 - Nadia Laras
Maximize Your Content with Beautiful Assets : Content & Asset for Landing Page
[InspireHER] Carving Success as Kartini: Strategies in Pursuing Careers
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Deep Learning For Computer Vision- Day 3 Study Jams GDSC Unsri.pptx
Firebase integration with Flutter
Building a Flutter App.pptx
Convolutional Neural Networks (CNN) for Computer Vision - Day 4 Study Jams G...
Linear Regression, Classification and Data Time Series - Day 2 Study Jams GDS...
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 1
Seminar and DevTalk : Mastering UX Research - 5 Whys Framework
Seminar and DevTalk : Mastering UX Research - What is UX Research
Info Session Bangkit Academy "Empowering Through Bangkit: Unveiling the Essen...
Sosialisasi Bangkit 2024: Discovering Bangkit Academy, Capstone, and Incubati...
Sharing Session Internal : Computer Security
Ad

Recently uploaded (8)

PPTX
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
PPTX
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PPT
pengantar-sistem-informasi manajemen.ppt
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PPTX
Implementasi Microservices pada Manufaktur
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
pengantar-sistem-informasi manajemen.ppt
Materi_Array_Karakter_String untuk kelas XI sma.pptx
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
Implementasi Microservices pada Manufaktur
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...

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
  • 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.
  • 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