Dart Programming Untuk Pemula Bagian 3 | Koding Indonesia

Dart Programming Untuk Pemula Bagian 3

Melanjutkan artikel sebelumnya yang membahas tentang Operator, Function, dan Control Flow (Loops), pada artikel kali kita akan membahas Control Flow (Decision Making), Class, dan Object.


1. Decision Making

Konstruksi dari sebuah conditional/decision-making akan mengevaluasi kondisi sebelum instruksi dieksekusi.

Ada 4 Jenis Decision Making, yaitu:

  1. if statement
  2. if…Else statement
  3. else…If Ladder 
  4. switch…Case statement

if Statement

Kontruktor if…else mengevaluasi kondisi sebelum blok kode dieksekusi.

Berikut sintaksnya.

Jika ekspresi Boolean bernilai true, maka blok kode di dalam pernyataan if akan dieksekusi. Jika ekspresi Boolean bernilai false, maka kumpulan kode pertama setelah akhir pernyataan if (setelah kurung kurawal penutup) akan dieksekusi.

Ilustrasi berikut menunjukkan diagram alur dari pernyataan if.

if…Else Statement

Sebuah if dapat diikuti oleh blok else yang di dalamnya terdapat sintaks opsional. Blok else akan dieksekusi jika ekspresi Boolean yang diuji oleh blok if bernilai false.

Berikut sintaksnya.

Jika ekspresi Boolean bernilai true, maka blok kode if akan dieksekusi, jika tidak, blok kode else akan dieksekusi.

Ilustrasi berikut menunjukkan diagram alur dari pernyataan if…else.

Pada gambar, blok if berfungsi untuk menjaga ekspresi kondisional. Blok yang berada di dalam pernyataan if dieksekusi jika ekspresi Boolean bernilai true. Blok if dapat diikuti oleh pernyataan else yang bersifat opsional. Blok instruksi yang berada di dalam blok else dieksekusi jika ekspresi bernilai false.

else…if Ladder Statement

else…if Ladder sangat berguna untuk menguji beberapa kondisi. Berikut contoh sintaksnya:

switch…Case Statement

Switch…Case Statement mengevaluasi ekspresi dengan mencocokkan nilai ekspresi dengan klausa case dan mengeksekusi pernyataan yang terkait dengan case itu.

Berikut sintaksnya.

Nilai dari variabel_ekspresi diuji terhadap semua case yang ada pada switch. Jika variabel cocok dengan salah satu case, blok kode yang sesuai akan dieksekusi. Jika tidak ada ekspresi huruf besar/kecil yang cocok dengan nilai variabel_ekspresi, kode dalam blok default yang akan dieksekusi.

Aturan berikut berlaku ketika kita menggunakan switch…case:

  1. Mungkin ada sejumlah pernyataan case di dalam switch.
  2. Pernyataan case hanya dapat mencakup konstanta, tidak dapat berupa variabel atau ekspresi.
  3. Tipe data dari variabel_ekspresi dan ekspresi konstan harus cocok.
  4. Setiap case harus memiliki break.
  5. Ekspresi case harus unik.
  6. Blok default adalah opsional.

Ilustrasi berikut menunjukkan diagram alur dari pernyataan switch…case:

2. Class

Dart adalah bahasa yang mendukung fitur pemrograman berorientasi objek seperti class, interface, dll. Class dalam hal OOP (object-oriented language) adalah blueprint untuk membuat object karena sebuah class merangkum data untuk object.

Mendeklarasikan sebuah Class

Kita perlu menggunakan kata kunci untuk mendeklarasikan sebuah class di Dart. Definisi class dimulai dengan kata kunci class diikuti dengan nama class dan badan class diapit oleh sepasang kurung kurawal. Sintaksnya sebagai berikut:

Beberapa komponen yang tercakup ketika mendefiniskan class:

  1. Fields − variabel yang dideklarasikan dalam sebuah kelas. Field mewakili data yang berkaitan dengan object.
  2. Setters and Getters − Memungkinkan program untuk menginisialisasi dan mengambil nilai dari field sebuah class. Setter/getter secara default dikaitkan dengan setiap class. Namun, yang default dapat diganti dengan mendefinisikan setter/getter secara eksplisit.
  3. Constructors − bertanggung jawab untuk mengalokasikan memori untuk object sebuah class.
  4. Functionsfunction mewakili tindakan yang dapat dilakukan object. Function juga terkadang disebut sebagai methods.

Contoh pendeklarasian sebuah class:

Contoh di atas mendeklarasikan class Mobil. Class memiliki field bernama mesin. Disp() adalah function sederhana yang mencetak nilai dari field mesin.

Membuat Instance sebuah Class

Untuk membuat instance sebuah class kita harus gunakan kata kunci new diikuti dengan nama class. Sintaksnya sebagai berikut:

Pengaplikasiannya sebagai berikut:

Cara Mengakses Attributes dan Functions

Attribute dan Function sebuah class dapat diakses melalui object dengan menggunakan notasi titik ‘.’ untuk mengakses data anggota class.

Pengaplikasiannya sebagai berikut:

Constructor pada Dart

Contructor adalah function khusus dari class yang bertanggung jawab untuk menginisialisasi variabel class. Dart mendefinisikan contructor dengan nama yang sama dengan nama class. Contructor adalah function dan karenanya dapat diparameterisasi. Namun, tidak seperti function, Contructor tidak dapat memiliki return type. Jika kita tidak mendeklarasikan contructor, maka contructor tanpa argumen default akan tersedia untuk kita. Sintaksnya sebagai berikut:

Pengaplikasiannya sebagai berikut:

Named Constructors

Dart menyediakan named constructors untuk mengaktifkan class agar dapat mendefinisikan beberapa constructor. Sintaksnya sebagai berikut:

Pengaplikasiannya sebagai berikut:

Keyword this.-

Kata kunci this mengacu pada instance sebuah class yang sedang digunakan. Di sini, nama parameter dan nama field sebuah class adalah sama. Oleh karena itu untuk menghindari ambiguitas, field sebuah class diawali dengan kata kunci this. Sintaks pengaplikasiannya sebagai berikut:

Class – Getters dan Setters

Getter dan Setter, juga disebut sebagai pengakses dan mutator, memungkinkan program untuk menginisialisasi dan mengambil nilai masing-masing field pada sebuah class. Getter atau pengakses didefinisikan menggunakan kata kunci get. Setter atau mutator didefinisikan menggunakan kata kunci set.

Getter/setter secara default dikaitkan dengan setiap class. Namun, yang default dapat diganti dengan mendefinisikan setter/getter secara eksplisit. Getter tidak memiliki parameter dan mengembalikan nilai, dan setter memiliki satu parameter dan tidak mengembalikan nilai. Pengaplikasian keduanya sebagai berikut:

Inheritance sebuah Class

Dart mendukung konsep Inheritance yang merupakan kemampuan suatu program untuk membuat class baru dari class yang sudah ada. Class yang diperluas untuk membuat class yang lebih baru disebut parent class/super class. Class yang baru dibuat disebut child/sub class.

Sebuah class mewarisi dari class lain menggunakan kata kunci ‘extends‘. Child Class mewarisi semua properti dan metode kecuali contructor dari parent class. Sintaksnya sebagai berikut:

Noted : Dart tidak mendukung multiple inheritance.

Contoh pengaplikasiannya sebagai berikut:

Beberapa tipe dari Inheritance:

  1. Single −Setiap class paling banyak dapat di-extend dari satu parent class.
  2. Multiple − Sebuah class dapat mewarisi dari beberapa class. Dart tidak mendukung multiple inheritance.
  3. Multi-level − Sebuah class dapat mewarisi dari child class lain.

Berikut contoh multi-level inheritance:

Dart – Class Inheritance dan Method Overriding

Method Overriding adalah mekanisme di mana child class mendefinisikan ulang method di parent class-nya. Contoh pengaplikasiannya sebagai berikut:

Jumlah dan jenis parameter pada function harus cocok saat melakukan overriding sebuah method. Jika ada ketidakcocokan dalam jumlah parameter atau tipe datanya, kompiler Dart akan menampilkan pesan kesalahan. Contoh pengaplikasiannya sebagai berikut:

dan Output-nya sebagai berikut:

Keyword static

Kata kunci static dapat diterapkan ke data member sebuah class, seperti field dan method. Static variable mempertahankan nilainya sampai program selesai dieksekusi. Static member direferensikan dengan sebuah nama class.

Keyword super

Kata kunci super digunakan untuk merujuk ke parent secara langsung dari suatu class. Kata kunci dapat digunakan untuk merujuk ke versi super class dari variabel, property, atau method. Contoh pengaplikasiannya sebagai berikut:

3. Object

Object-Oriented Programming mendefinisikan object sebagai “entitas apa pun yang memiliki batas yang ditentukan.”. Contohnya sebuah benda biasanya memiliki komponen berikut:

  1. State − berfungsi untuk mendeskripsikan suatu object. Field pada sebuah class mewakili status/state sebuah object.
  2. Behavior − Menggambarkan apa yang dapat dilakukan suatu object.
  3. Identity − Nilai unik yang membedakan suatu object dari sekumpulan object lain yang serupa. Dua atau lebih object dapat berbagi state dan behavior tetapi bukan identitasnya/identity-nya.

Operator periode (.) digunakan bersama dengan object untuk mengakses datamembers sebuah class.

Operator Cascade

Contoh di atas adalah untuk memanggil method yang ada di dalam class. Namun, setiap kali suatu function dipanggil, referensi ke objek diperlukan. Disinilah operator cascade dapat digunakan untuk menyingkat contoh kasus di atas. Contohnya pengaplikasiannya sebagai berikut:

Method toString( )

Function ini mengembalikan representasi string dari suatu object. Perhatikan contoh berikut untuk memahami cara menggunakan method toString.


Jika ada pertanyaan silahkan komen dan jika artikel ini dirasa bermanfaat, jangan lupa like dan sharenya ya teman-teman. ??????? Sampai bertemu di artikel selanjutnya.
Terima Kasih, Assalamu’alaykum… Salam KODINGINDONESIA

Referensi : dart.dev, tutorialspoint.com 

Anton Prafanto
Anton Prafanto
Konten developer kodingindonesia.com & staf pengajar tetap di Universitas Mulawarman Samarinda