Top Notes

Catatan Pemrograman dan Apapun yang Menarik

Tentang Saya

Foto saya:
My photo

Catatan tentang pemrograman dan keislaman yang disarikan dari berbagai sumber tepercaya.

Beberapa link

Berikut beberapa link penting


Bahasa Pemrograman Dart

Dasar-dasar bahasa pemrograman Dart
logo dart
Hello World

Penulisan contoh menampilkan pesan "Hello World" yaitu dengan code berikut:

void main() {
        print('Hello, World!');
      }
      
Penulisan variabel

Penulisan variabel tidak perlu menggunakan penulisan secara eksplisit.

          var nama = 'Agung Sudrajat Supriatna';
          var tahun = 1988;
          var panjangBalok = 12.2;
          var namaPlanet = ['Saturnus','Bumi','Jupiter','Uranus'];
          var image = {
              'tags':['saturnus'],
              'url': '//path/to/saturn.jpg'
          };
      
Pernyataan kontrol

Kontrol flow konvensional seperti if dan while didukung pula oleh dart.

          if (tahun >= 2001) {
              print('Abadi ke-21');
          } else if (tahun >= 1901) {
              print('Abad ke-20');
          }

          for (var object in flybyObjects) {
              print(object);
          }

          for (int bulan = 1; bulan <= 12; bulan++) {
              print(bulan);
          }

          while (tahun < 2016) {
              tahun += 1;
          }
      

selain itu, terdapat break, continue, switch, case, assert yang kurang lebih sama seperti dalam bahasa C.

Fungsi

Direkomendasikan untuk menyertakan jenis dari argumen dan return value nya. Berikut contoh kode tentang fibonacci.

          int fibonacci(int n) {
            if (n == 0 || n == 1) return n;
            return fibonacci(n - 1) + fibonacci(n - 2);
          }
          
          var result = fibonacci(20);
      

Tanda '=>' cukup baik digunakan untuk fungsi yang memiliki pernyataan tunggal. Sintaks ini sangat berguna ketika melewatkan fungsi sebagai suatu argumen.

        flybyObjects.where((name) => name.contains('turn')).forEach(print);
      
Komentar

Komentar pada dart diawali // atau /*

	  //tulisan ini tidak akan dieksekusi oleh dart
	  //ini adalah contoh komentar
	  /* ini juga adalah komentar
	  yang tidak akan dieksekusi oleh dart */
	  
Imports

Untuk mengakses API yang ada pada pustaka (libraries), gunakan import.

	  //untuk import pustaka inti
	  import 'dart:math';
	  
	  //untuk import pustaka dari external packages
	  import 'package:test/test.dart';
	  
	  //import file
	  import 'path/to/my_other_file.dart';
	  
Classes (kelas)

Mudahnya, class kita ingat sebagai singkatan dari classify atau pengklasifikasian/kumpulan method.

Berikut contoh dari class dengan 3 properties, dua konstruktor, dan satu method. Salah satu dari properties tidak bisa diset langsung, oleh karenanya kita gunakan getter method dibanding dengan variabel.

class Spacecraft {
  String name;
  DateTime? launchDate;

  int? get launchYear => launchDate?.year; // read-only non-final property

  // Constructor, with syntactic sugar for assignment to members.
  Spacecraft(this.name, this.launchDate) {
    // Initialization code goes here.
  }

  // Named constructor that forwards to the default one.
  Spacecraft.unlaunched(String name) : this(name, null);

  // Method.
  void describe() {
    print('Spacecraft: $name');
    var launchDate = this.launchDate; // Type promotion doesn't work on getters.
    if (launchDate != null) {
      int years = DateTime.now().difference(launchDate).inDays ~/ 365;
      print('Launched: $launchYear ($years years ago)');
    } else {
      print('Unlaunched');
    }
  }
}
	  

Anda dapat pula menggunakan class Spacecraft seperti ini:

	  var voyager = Spacecraft('Voyager I', DateTime(1977, 9, 5));
	  voyager.describe();
	  
	  var voyager3 = Spacecraft.unlaunched('Voyager III');
	  voyager3.describe();
	  
Baca kembali class pada Dart, termasuk lists, opsi new dan const, redirecting constructors, factory constructors, getters, setters, dan lain-lain.
Inheritance/turunan
Dart memiliki turunan tunggal (single inheritance).
class Orbiter extends Spacecraft {
  double altitude;

  Orbiter(String name, DateTime launchDate, this.altitude)
      : super(name, launchDate);
}
	  

Baca kembali tentang extending classes, opsional @override, dan lain-lain

Mixins

Mixins adalah cara untuk penggunaan ulang kode pada hierarki multi-class. Berikut contoh deklarasi mixin:

mixin Piloted {
  int astronauts = 1;

  void describeCrew() {
    print('Number of astronauts: $astronauts');
  }
}
	  

Untuk menambah suatu kemampuan mixin pada suatu class, extend suatu kelas dengan mixin

	  class PilotedCraft extends Spacecraft with Piloted {
		// ···
	  }
	  

PilotedCraft sekarang memiliki field astronauts sama halnya dengan method describeCrew(). Silakan baca kembali tentang mixins pada sumber lain.

Interfaces dan kelas abstract

Dart tidak memiliki keyword interface. Namun, semua class secara implisit mendefinisikan suatu interface. Karenanya, Anda dapat mengimplementasikan kelas apapun.

	  class MockSpaceship implements Spacecraft {
	  // ···
	  }
	  

Baca kembali tentang interface implisit.

Anda dapat membuat suatu kelas abstract untuk diextend (atau diimplement) oleh suatu kelas konkret. Kelas abstract dapat mengandung method abstract (dengan empty bodies).

abstract class Describable {
  void describe();

  void describeWithEmphasis() {
    print('=========');
    describe();
    print('=========');
  }
}
	  

Tiap kelas yang mengextend Describable memiliki method describeWithEmphasis(), yang memanggil implementasinya si extender dari describe()

Baca kembali tentang kelas abstract dan method pada sumber lain.

to be continue...

Every myth is based on fact