dart oop class object constructor | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: dart oop class object constructor

Sunday, May 3, 2026

dart oop class object constructor

šŸ“š 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
class Mobil {
  // Atribut (Properties)
  String merk;
  String warna;
  int kecepatan;

  // Constructor
  Mobil({required this.merk, required this.warna, this.kecepatan = 0});

  // Method (Perilaku)
  void jalan(int speed) {
    kecepatan = speed;
    print('$merk melaju dengan kecepatan $kecepatan km/jam šŸš—');
  }

  void info() {
    print('Mobil: $merk | Warna: $warna | Kecepatan: $kecepatan km/jam');
  }
}

void main() {
  // Membuat Object dari Class Mobil
  Mobil 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
class Hewan {
  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;

  void perkenalan() {
    print('Halo! Aku $nama, seekor $jenis berumur $umur tahun. 🐾');
  }
}

void main() {
  // Menggunakan Default Constructor
  Hewan kucing = Hewan('Mochi', 'Kucing', 3);
  kucing.perkenalan();
  // Output: Halo! Aku Mochi, seekor Kucing berumur 3 tahun. 🐾

  // Menggunakan Named Constructor
  Hewan 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
class Karakter {
  String nama;
  String kelas;    // Warrior, Mage, Archer
  int hp;
  int mana;
  int level;

  // Default Constructor
  Karakter({
    required this.nama,
    required this.kelas,
    this.hp = 100,
    this.mana = 50,
    this.level = 1,
  });

  // Named Constructor: buat karakter warrior default
  Karakter.warrior(String nama)
    : this.nama = nama,
      this.kelas = 'Warrior',
      this.hp = 200,
      this.mana = 20,
      this.level = 1;

  void serang(Karakter target) {
    int damage = level * 15;
    target.hp -= damage;
    print('⚔️  $nama menyerang ${target.nama} dengan damage $damage!');
    print('   HP ${target.nama} tersisa: ${target.hp}');
  }

  void statusReport() {
    print('\nšŸ§™ [$kelas] $nama | Lv.$level | HP: $hp | Mana: $mana');
  }
}

void main() {
  // Membuat dua object Karakter
  Karakter 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: 50

  print('\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!

šŸ—ŗ️ Lihat Semua Artikel Seri →

šŸ Kesimpulan — Apa yang Sudah Kamu Pelajari?

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! šŸ™Œ

šŸ·️ Tag Artikel
#BelajarDart #DartFromZeroToZorro #OOPDart #DartClass #DartObject #Constructor #PemrogramanDart
🧭 Navigasi Seri Dart From Zero to Zorro
← Artikel Sebelumnya
Artikel 5
Koleksi Data — List, Map, dan Set di Dart
← Baca Artikel Ini
Artikel Selanjutnya →
Artikel 7
OOP Bagian 2 — Inheritance, Encapsulation & Polymorphism
Baca Artikel Ini →

No comments:

Post a Comment

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