š OOP DasaršÆ Artikel 6 dari 16š¦ Dart Lang
OOP Bagian 1 — Class, Object, dan Constructor di Dart
Dari analogi kehidupan nyata sampai kode yang langsung bisa kamu jalankan — ini cara paling gampang memahami OOP Dart class object untuk pertama kalinya.
⏱️
Estimasi Baca
12 Menit
š
Level
Menengah
š
Tahun
2026
š
Seri
Dart From Zero to Zorro
Pernah dengar kalimat "OOP itu susah" dan langsung males belajar? Well, kabar baiknya — itu mitos. OOP (Object-Oriented Programming) adalah cara berpikir yang sebenarnya sangat natural, karena terinspirasi dari dunia nyata di sekitar kita. Dan kalau kamu mau belajar OOP Dart class object, kamu sudah ada di tempat yang tepat.
Di artikel ke-6 dari seri Dart From Zero to Zorro ini, kita akan membedah tiga pilar pertama OOP di Dart: Class, Object, dan Constructor. Bukan sekadar teori — tapi dengan analogi yang bikin kamu langsung "ohhh, gitu toh!" plus kode yang bisa langsung kamu ketik dan jalankan.
Siap? Yuk mulai! š
š” KONSEP UTAMA
Apa itu OOP?
Object-Oriented Programming (OOP) adalah paradigma pemrograman yang mengorganisir kode dalam bentuk objek — entitas yang memiliki data (atribut) dan perilaku (method). Di Dart, OOP dibangun di atas fondasi class sebagai blueprint dan object sebagai realisasinya.
š️ Class dan Object di Dart — Cetak Biru vs Bangunan Nyata
Bayangkan kamu adalah seorang arsitek. Kamu punya cetak biru (blueprint) untuk membangun rumah — lengkap dengan spesifikasi: jumlah kamar, warna cat, luas tanah, dan seterusnya. Nah, dari satu cetak biru itu, kamu bisa membangun puluhan rumah berbeda dengan karakteristik masing-masing.
Itulah hubungan antara Class dan Object dalam OOP Dart:
š Analisis: Class vs Object
Aspek
Class
Object
Definisi
Blueprint / cetak biru
Hasil nyata dari blueprint
Analogi
Desain rumah š
Rumah yang sudah dibangun š️
Di Dart
class Mobil { ... }
var m = Mobil();
Jumlah
Ditulis sekali
Bisa dibuat tak terbatas
⚡
Insight Penting
Di Dart, semua sesuatu adalah objek — bahkan angka 42 dan true adalah objek dari class int dan bool. Dart adalah bahasa OOP yang pure dari dasarnya!
Langkah-langkah membuat Class pertamamu di Dart:
1
Tulis keyword class diikuti nama class
Nama class menggunakan PascalCase — huruf kapital di setiap kata. Contoh: Mobil, HewanPeliharaan, BankAccount.
2
Deklarasikan atribut (properties) di dalam class
Atribut adalah data yang dimiliki oleh setiap objek dari class tersebut. Misalnya, Mobil punya merk, warna, dan kecepatan.
3
Tambahkan method (perilaku) yang bisa dilakukan objek
Method adalah fungsi di dalam class. Mobil bisa jalan(), berhenti(), atau klakson().
contoh_class.dart
classMobil {
// Atribut (Properties)String merk;
String warna;
int kecepatan;
// ConstructorMobil({requiredthis.merk, requiredthis.warna, this.kecepatan = 0});
// Method (Perilaku)voidjalan(int speed) {
kecepatan = speed;
print('$merk melaju dengan kecepatan $kecepatan km/jam š');
}
voidinfo() {
print('Mobil: $merk | Warna: $warna | Kecepatan: $kecepatan km/jam');
}
}
voidmain() {
// Membuat Object dari Class MobilMobil mobilPertama = Mobil(merk: 'Toyota', warna: 'Merah');
Mobil mobilKedua = Mobil(merk: 'Honda', warna: 'Putih', kecepatan: 60);
mobilPertama.jalan(80); // Toyota melaju dengan kecepatan 80 km/jam š
mobilKedua.info(); // Mobil: Honda | Warna: Putih | Kecepatan: 60 km/jam
}
š§ Memahami Constructor di Dart — Si Tukang Rakit Objek
Kalau class adalah cetak biru dan object adalah bangunannya, maka Constructor adalah tukang bangunan yang bertugas merakitnya. Constructor adalah method khusus yang otomatis dipanggil saat kamu membuat object baru — tugasnya adalah menginisialisasi nilai awal dari atribut-atribut object tersebut.
Dart punya beberapa jenis constructor yang perlu kamu tahu. Yuk kenali satu per satu!
š”
Tips
Di Dart, kamu bisa menggunakan shorthand constructor dengan this.namaAtribut di parameter — ini secara otomatis mengisi atribut tanpa perlu kode tambahan. Jauh lebih bersih dan efisien!
Tiga jenis constructor yang sering dipakai di Dart:
A
Default Constructor
Constructor paling dasar. Kalau kamu tidak menulis constructor sama sekali, Dart otomatis menyediakan yang kosong. Tapi lebih baik tulis sendiri agar bisa mengisi nilai awal.
B
Named Constructor
Dart memungkinkan satu class punya banyak constructor dengan nama berbeda. Sangat berguna saat kamu butuh cara berbeda untuk membuat objek dari data yang berbeda.
C
Const Constructor
Digunakan untuk membuat objek yang nilainya tidak berubah (immutable). Berguna untuk optimasi performa, terutama di Flutter.
jenis_constructor.dart
classHewan {
String nama;
String jenis;
int umur;
// ─── A. Default Constructor (shorthand) ───Hewan(this.nama, this.jenis, this.umur);
// ─── B. Named Constructor ───Hewan.bayi(String nama, String jenis)
: this.nama = nama,
this.jenis = jenis,
this.umur = 0;
voidperkenalan() {
print('Halo! Aku $nama, seekor $jenis berumur $umur tahun. š¾');
}
}
voidmain() {
// Menggunakan Default ConstructorHewan kucing = Hewan('Mochi', 'Kucing', 3);
kucing.perkenalan();
// Output: Halo! Aku Mochi, seekor Kucing berumur 3 tahun. š¾// Menggunakan Named ConstructorHewan anakKucing = Hewan.bayi('Cici', 'Kucing');
anakKucing.perkenalan();
// Output: Halo! Aku Cici, seekor Kucing berumur 0 tahun. š¾
}
š„
Fakta Menarik
Di Flutter (framework UI berbasis Dart), hampir semua widget dibuat dengan const constructor untuk optimasi performa. Artinya, memahami constructor di Dart adalah fondasi penting sebelum kamu terjun ke Flutter!
š® Studi Kasus: Sistem RPG Sederhana dengan OOP Dart Class Object
Teori sudah, sekarang waktunya membuat sesuatu yang fun! Kita akan membangun sistem karakter game RPG sederhana menggunakan konsep OOP Dart class object yang sudah kamu pelajari. Ini adalah contoh paling relatable karena game RPG memang dibangun di atas OOP!
rpg_sederhana.dart
classKarakter {
String nama;
String kelas; // Warrior, Mage, Archerint hp;
int mana;
int level;
// Default ConstructorKarakter({
requiredthis.nama,
requiredthis.kelas,
this.hp = 100,
this.mana = 50,
this.level = 1,
});
// Named Constructor: buat karakter warrior defaultKarakter.warrior(String nama)
: this.nama = nama,
this.kelas = 'Warrior',
this.hp = 200,
this.mana = 20,
this.level = 1;
voidserang(Karakter target) {
int damage = level * 15;
target.hp -= damage;
print('⚔️ $nama menyerang ${target.nama} dengan damage $damage!');
print(' HP ${target.nama} tersisa: ${target.hp}');
}
voidstatusReport() {
print('\nš§ [$kelas] $nama | Lv.$level | HP: $hp | Mana: $mana');
}
}
voidmain() {
// Membuat dua object KarakterKarakter hero = Karakter.warrior('Arya');
Karakter musuh = Karakter(nama: 'Goblin', kelas: 'Monster', hp: 60);
hero.statusReport(); // š§ [Warrior] Arya | Lv.1 | HP: 200 | Mana: 20
musuh.statusReport(); // š§ [Monster] Goblin | Lv.1 | HP: 60 | Mana: 50print('\n=== PERTEMPURAN DIMULAI! ===');
hero.serang(musuh);
// ⚔️ Arya menyerang Goblin dengan damage 15!// HP Goblin tersisa: 45
}
⚠️
Perhatian
Sejak Dart versi 2.12 (Null Safety), semua atribut class harus diinisialisasi sebelum digunakan — baik lewat constructor, nilai default, atau dengan menandainya sebagai late. Kalau tidak, program akan error saat compile!
⚡
Insight Penting
Setiap object di Dart adalah independent. hero dan musuh punya datanya sendiri. Mengubah HP si musuh tidak mempengaruhi HP si hero. Inilah keindahan OOP — data terisolasi dan terorganisir rapi!
š Tabel Referensi Cepat: Sintaks OOP Dart
Konsep
Sintaks Dart
Keterangan
Deklarasi Class
class NamaClass { }
Nama pakai PascalCase
Buat Object
var obj = NamaClass();
Instantiasi objek baru
Akses Atribut
obj.namaAtribut
Pakai dot notation
Panggil Method
obj.namaMethod()
Eksekusi perilaku objek
Shorthand Constructor
Class(this.attr)
Auto-assign atribut
Named Constructor
Class.namaLain(...)
Constructor alternatif
š
Bagian dari Seri Lengkap
Ini adalah Artikel 6 dari 16 dalam seri Dart From Zero to Zorro. Cek semua artikel di halaman utama seri!
Selamat! Di artikel ini, kamu sudah menguasai fondasi OOP Dart class object yang menjadi inti dari pemrograman berorientasi objek. Berikut ringkasan poin-poin utamanya:
✅ Class adalah blueprint / cetak biru yang mendefinisikan struktur dan perilaku objek.
✅ Object adalah hasil nyata dari class — setiap objek punya datanya sendiri.
✅ Constructor adalah method khusus yang menginisialisasi nilai saat objek dibuat.
✅ Dart mendukung default constructor, named constructor, dan const constructor.
✅ Shorthand this.atribut membuat constructor lebih bersih dan efisien.
Di artikel selanjutnya (Artikel 7), kita akan naik level dan membahas tiga pilar OOP lainnya: Inheritance, Encapsulation, dan Polymorphism. Percayalah — setelah paham class dan object, konsep-konsep itu akan terasa jauh lebih mudah!
š¬ Bagian mana yang paling "klik" buat kamu? Constructor shorthand, atau Named Constructor? Tulis di kolom komentar di bawah! Dan kalau artikel ini bermanfaat, jangan lupa share ke teman-teman yang lagi belajar Dart juga ya! š
saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux
No comments:
Post a Comment