Dart - 10. OOP Class



Dasar - Dasar Pemrograman Berorientasi Objek

Pemrograman berorientasi objek merupakan suatu teknik dalam pemrograman yang berdasarkan konsep "objek", dimana objek tersebut dapat berisi data, dalam bentuk variabel atau dikenal juga sebagai atribut, serta fungsi/prosedur atau dikenal juga sebagai method. Bahasa Dart mendukung penuh pemrograman berorientasi objek, hanya didalam pemrograman dart tidak dikenal konsep tipe data primitif (maksud dari primitif adalah bukan objek), pada bahasa pemrograman Dart semua adalah objek.

Apa itu Objek ?

Objek adalah suatu abstraksi yang dimaksud untuk menyajikan komponen dari program. Objek dapat diciptakan, dihapus, diberikan attribut, dan dapat melakukan suatu aksi (tugas tertentu yang dibuat didalam method). Objek memiliki variabel-variabel yang menunjukkan atributnya, dan method-metode yang menunjukkan aksi yang dapat dilakukannya.

Apa itu Kelas (class) ?

Secara singkat class dapat diartikan blueprint dari suatu objek, maksudnya adalah kita mendesain suatu objek berdasarkan class yang kita buat, sebagai contoh dalam dunia nyata, jika kita ingin membuat sebuah objek meja maka kita perlu menggambar rancangan meja tersebut, dengan demikian kita akan mulai membuat meja berdasarkan rancangan tersebut, jika rancangannya baik maka hasilnya baik, begitu juga sebaliknya, jadi class dapat kita analogikan sebagai rancangannya dan hasil dari rancangan tersebut adalah objeknya.

Mendefenisikan Kelas

Untuk membuat kelas kita gunakan keyword class yang telah disediakan oleh bahasa Dart. Perhatikan contoh berikut:

class Dadu {

}

Pertama kita mulai dengan keyword class, diikuti dengan nama kelasnya yaitu Dadu, kemudian tubuh kelas diawali dengan buka kurung kurawal "{" dan diakhiri dengan tutup kurung kurawal } Jika sebuah kelas telah dibuat, maka kita langsung dapat menciptakan objek dari kelas tersebut, tentu jika kelas kita seperti contoh kelas Dadu, maka objek tersebut tidak dapat melakukan apapun, karena kita belum menambahkan atribut ataupun metode kedalamnya. untuk menciptakan objek pada pemrograman dart kita gunakan keyword new. Perhatikan contoh program berikut ini:

Dadu dd = new Dadu();

Diawali dengan nama kelas yaitu Dadu kemudian nama objeknya yaitu dd (kita bisa menentukan nama objek yang lain tidak harus dd) kemudian new diakhiri dengan nama kelas.

nama_kelas nama_objek = new nama_kelas();

Variabel Instans (attribut)

Jika kita melihat sebuah dadu, tentuk kita akan melihat angka pada sisi-sisnya, angka tersebut adalah bilangan integer (bulat) dari 1 sampai dengan 6, jika kita melemparkannya dimana angka hasil dadu akan disimpan? kemudian berapa kali dadu akan dilemparkan? Perhatikan contoh berikut:

class Dadu {
  int sisi;
  int jumlahPutaran;
  List nilai;
}

Kelas dadu telah kita tambahkan beberapa atribut, dan kita bisa menggunakannya pada saat objek telah diciptakan, perhatikan contoh berikut:

void main() {
  Dadu dd = new Dadu();
  d.sisi = 6;
  d.jumlahPutaran = 2;
  d.nilai = [4, 6];
}

Tanda titik "." digunakan untuk mengacu kepada attribut (variabel instans) suatu objek, kita bisa juga memberikan nilai awal pada class sehingga kita tidak perlu mengisinya pada saat objek diciptakan, perhatikan contoh berikut ini:

import "dart:math";

class Dadu {
  int _sisi= 6; // private attribut
  int jumlahPutaran = 2; // public attribut
  List<int> _nilai = [4, 6]; // private attribut
  
  // fungsi getter untuk mengambil nilai dari _sides
  int get sisi => _sisi;
  
  // metode getter, untuk mengambil nilai maksimum
  int get nilaiMaximum => sisi * jumlahPutaran;
 
  // isi nilai sisi; 
  set sisi(int s) {
    if (s < 2) {
      _sisi= 2;
    } else {
      _sisi= s;
    }
  }
  
  // generate random values
  void lempar() {
    List<int> nilaiBaru = [];
    Random rand = Random();
    
    for(int i=0; i<jumlahPutaran; i++) {
      nilaiBaru.add(rand.nextInt(sisi) + 1);
    }
    _nilai = nilaiBaru;
  }
  
  void cetakDadu() => print(_nilai);
}

void main() {
  Dadu d = Dadu();
  d.sisi = 4;
  d.jumlahPutaran = 3;
  d.lempar();
  d.cetakDadu();
  d.jumlahPutaran = 3;
  d.lempar();
  d.cetakDadu();
}

Method Getter & Setter

Metode pada sebuah class ditujukan untuk melakukan suatu aksi, metode adalah suatu fungsi/prosedur yang di buat didalam kelas, metode dapat mengakses variabel instans (attribut) yang terdapat pada kelas tersebut. Getter dan Setter adalah fungsi yang tugasnya untuk mengambil dan mengisi data ke attribut.

Pada pemrograman dart tidak ada keyword untuk membuat attribut atau metode menjadi private atau pun public, untuk membuat attribut ataupun fungsi menjadi private, cukup tambahkan underscore "_" sebelum nama attribut ataupun metode. Perhatikan contoh berikut:

import "dart:math";


Penamaan Konstruktor

Pada pemrograman dart, dua buah metode tidak dapat memiliki nama yang sama, meskipun memiliki jumlah argumen yang berbeda, konstruktor juga demikian, tidak boleh memiliki nama yang sama, jika kita memiliki lebih dari 1 konstruktor maka kita dapat menggunakan Penamaan Konstruktor (Named Constructors). Perhatikan contoh kode berikut:

class Suhu {
  double kelvin;
  
  Suhu(this.kelvin);
  
  Suhu.dariCelcius(double celcius) {
    kelvin = celcius + 273.15;
  }
  
  Suhu.dariFahrenheit(double fahrenheit) {
    kelvin = 5/9 * (fahrenheit - 32) + 273.15;
  }
}


void main() {
  Suhu sh = Suhu(50);
  print(sh.kelvin);

  Suhu sCel = Suhu.dariCelcius(50);
  print(sCel.kelvin);

  Suhu sFah = Suhu.dariFahrenheit(40);
  print(sFah.kelvin);
}

Dari contoh tersebut, dapat kita lihat ada 3 buah konstruktor yang kita buat menggunakan Penamaan Konstruktor.
Dart - 10. OOP Class Dart - 10. OOP Class Reviewed by jc on June 29, 2019 Rating: 5

No comments:

Powered by Blogger.