Setup Environment, Dart Dasar dan OOP Dart

Card image

Sebelum install SDK Dart pastikan arsitektur hardware telah memenuhi persyaratan minimum, Adapun persyaratan minimum yang dibutuhkan untuk install SDK Dart seperti gambar berikut :

Card image

Install Dart SDK

Setelah memastikan arsitektur hardware memenuhi syarat ikuti langkah berikut ini

1. Buka halaman resmi

Link https://dart.dev/get-dart/archive#stable-channel

2. Pilih Stable Channel agar mendapatkan versi stabil.

Card image

3. Unduh file SDK sesuai dengan sistem operasi komputer/laptop

4. Setelah selesai diunduh, cari file .zip (Windows/Mac) atau .tar.xz (Linux).

5. Ekstrak file ke folder yang mudah diakses, misalnya:

C:\Dart

6. Agar perintah dart bisa dijalankan di Command Prompt/Terminal, perlu menambahkan path bin ke Environment Variables.

Tekan tombol Windows + S, lalu cari view advanced system settings, kemudian buka.

Klik tombol Environment Variables.

Pada bagian System variables, pilih Path lalu klik Edit.

Klik New, lalu tambahkan path folder bin dari Dart SDK

C:\Dart\dart-sdk\bin
Card image

Klik OK hingga semua jendela tertutup.

7. Buka Command Prompt lalu ketik perintah

Dart
Card image

Tambahkan Extensions Dart

1. Buka Visual Studio Code lalu klik menu Extensions (ikon kotak di sidebar kiri atau tekan Ctrl+Shift+X).

2. Ketik Dart pada kolom pencarian dan pilih Dart dari publisher Dart Code, kemudian klik Install.

Card image

Membuat Proyek Pertama Dart

1. Buka Command Prompt / Terminal lalu pindah ke folder tempat penyimpanan project

C:\Dart\DartDev

2. Jalankan perintah untuk membuat project baru bernama halo

dart create halo
Card image

3. Untuk menjalankan projek tersebut masuk ke folder proyek halo

cd halo

4. Jalankan project dengan perintah

dart run
Card image

5. Untuk membuka Proyek di Visual Studio Code pilih menu File -> Open Folder, lalu arahkan ke folder proyek Dart yang sudah dibuat sebelumnya, yaitu halo.

Card image

Dart Dasar

Buat file baru pada folder bin dengan nama dart_dasar.dart kemudian buat function main

List

Card image

Output

Card image

Berikut adalah penjelasan mengenai kode tersebut

1. Membuat List


                    List fruits = ['Apel', 'Alpukat', 'Nanas', 'Mangga', 'Pisang'];
                    print(fruits.toString());
                
      • List : artinya list ini hanya boleh berisi data bertipe String.
      • fruits : variabel list yang berisi nama buah.
      • toString() : mengubah list menjadi string agar bisa ditampilkan.

2. Menambahkan Elemen


                    fruits.add('Jeruk');
                    print(fruits.toString());
                
      • add('Jeruk') : menambah elemen baru di akhir list.

3. Menghapus Elemen


                    fruits.remove('Alpukat');
                    print(fruits.toString());
                
      • remove('Alpukat') : menghapus item tertentu dari list.

4. Mengubah Elemen pada Index Tertentu


                    fruits[0] = 'Semangka';
                    print(fruits.toString());
                
      • fruits[0] : mengakses elemen pertama (index dimulai dari 0).
      • Diganti dari Apel menjadi Semangka.

5. Mengurutkan List


                    fruits.sort();
                    print(fruits.toString());
                
      • sort() : mengurutkan isi list secara ascending (A–Z).

6. Mengacak Isi List


                    fruits.shuffle();
                    print(fruits.toString());
                
      • shuffle() : mengacak urutan elemen di list secara random.
      • Output bisa berbeda-beda setiap kali dijalankan

7. Properti List


                    print(fruits.length);               // jumlah elemen dalam list
                    print(fruits.first);                // elemen pertama
                    print(fruits.last);                 // elemen terakhir
                    print(fruits.contains('Mangga'));   // cek apakah list berisi 'Mangga'
                    print(fruits.indexOf('Pisang'));    // posisi index dari 'Pisang'
                    print(fruits.isEmpty);              // cek apakah list kosong
                    print(fruits.isNotEmpty);           // cek apakah list tidak kosong
                
      • length : menghitung jumlah elemen.
      • first : ambil elemen paling depan.
      • last : ambil elemen paling belakang.
      • contains('Mangga') : true jika ada "Mangga" di dalam list.
      • indexOf('Pisang') : menampilkan index dari elemen "Pisang".
      • isEmpty : true jika list kosong.
      • isNotEmpty : true jika list berisi data.

Set

Card image

Output

Card image

Berikut adalah penjelasan mengenai kode tersebut

1. Membuat Set


                    Set animals = {'Kucing', 'Anjing', 'Kelinci', 'Burung'};
                    print(animals.toString());
                
      • Set : tipe data Set yang hanya menyimpan nilai unik (tidak boleh ada duplikat).
      • animals : berisi kumpulan nama hewan.

2. Menambahkan Elemen


                    animals.add('Ikan');
                    print(animals.toString());
                
      • add('Ikan') : menambahkan elemen baru ke dalam set.
      • Jika elemen sudah ada, tidak akan ditambahkan lagi (karena Set unik).

3. Menghapus Elemen


                    animals.remove('Kelinci');
                    print(animals.toString());
                
      • remove('Kelinci') : menghapus elemen Kelinci dari set.

4. Properti Set


                    print(animals.length);         // jumlah elemen
                    print(animals.contains('Anjing')); // cek apakah 'Anjing' ada
                    print(animals.isEmpty);        // cek apakah set kosong
                    print(animals.isNotEmpty);     // cek apakah set tidak kosong
                
      • length : menghitung jumlah elemen dalam set.
      • contains('Anjing') : cek apakah ada elemen "Anjing".
      • isEmpty : true jika set kosong.
      • isNotEmpty : true jika set berisi elemen.

Map

Card image

Output

Card image

Berikut adalah penjelasan mengenai kode tersebut

1. Membuat Map


                    Map productPrices = {
                        'Laptop': '10.000.000',
                        'Mouse': '200.000',
                        'Keyboard': '500.000',
                        'Monitor': '2.000.000'
                    };
                    print(productPrices.toString());
                
      • Map : struktur data yang menyimpan pasangan key–value.
          • String pertama = tipe key (nama produk).
          • String kedua = tipe value (harga produk).

2. Menambahkan Elemen


                    productPrices['Printer'] = '1.500.000';
                    print(productPrices.toString());
                
      • Menambahkan key baru Printer dengan value 1.500.000.

3. Menghapus Elemen


                    productPrices.remove('Mouse');
                    print(productPrices.toString());
                
      • remove('Mouse') : menghapus key Mouse beserta nilainya.

4. Mengubah Nilai


                    productPrices['Laptop'] = '9.500.000';
                    print(productPrices.toString());
                
      • Mengubah value dari key Laptop menjadi 9.500.000.

5. Properti & Method Map


                    print(productPrices.length);                  // jumlah pasangan key-value
                    print(productPrices.containsKey('Keyboard')); // cek apakah ada key 'Keyboard'
                    print(productPrices.containsValue('2.000.000')); // cek apakah ada value '2.000.000'
                    print(productPrices.keys);                    // daftar semua key
                    print(productPrices.values);                  // daftar semua value
                    print(productPrices.isEmpty);                 // true jika map kosong
                    print(productPrices.isNotEmpty);              // true jika map berisi data
                
      • length : menghitung jumlah pasangan key-value.
      • containsKey('Keyboard') : cek apakah key "Keyboard" ada.
      • containsValue('2.000.000') : cek apakah ada value "2.000.000".
      • keys : menampilkan semua key.
      • values : menampilkan semua value.
      • isEmpty : true jika map kosong.
      • isNotEmpty : true jika map ada isinya.

Perulangan

Card image

Output

Card image

Berikut adalah penjelasan mengenai kode tersebut

      • for in : digunakan untuk mengiterasi (perulangan) setiap elemen dalam List.
      • forEach() : fungsi bawaan untuk mengiterasi setiap pasangan key–value dalam Map.
      • key : menyimpan nama produk.
      • value : menyimpan harga produk.
      • print('$key: $value') : menampilkan dalam format Produk: Harga.

OOP Dart

Card image

Output

Card image

Berikut adalah penjelasan mengenai kode tersebut

1. Fungsi main()


                    void main(List arguments) {
                        var car1 = Car();
                        car1.color = 'Red';
                        car1.brand = 'Toyota';
                        car1.year = 2020;
                        car1.drive();
                        car1.honk();
                        print('Car 1: ${car1.color}, ${car1.brand}, ${car1.year}');
                        
                        Cat cat1 = Cat();
                        cat1.eat();
                        cat1.meow();
                    }
                
      • Program dimulai dari main().
      • Membuat objek:
          • car1 dari class Car.
          • cat1 dari class Cat.

2. Class Car


                    class Car {
                        // property
                        String color = '';
                        String brand = '';
                        int year = 0;
                        
                        // method
                        void drive() {
                            print('The $color $brand is driving.');
                        }
                        
                        void honk() {
                            print('The $color $brand is honking.');
                        }
                    }
                
      • Property : variabel dalam class (color, brand, year).
      • Method : fungsi dalam class (drive(), honk()).

2. Inheritance (Pewarisan)

Class Animal (Parent)

                    class Animal {
                        void eat() {
                            print('The animal is eating.');
                        }
                    }
                
      • Animal adalah class dasar (superclass/parent).
      • Punya method eat().
Class Dog (Child)

                    class Dog extends Animal {
                        void bark() {
                            print('The dog is barking.');
                        }
                    }
                
      • Dog mewarisi semua method Animal (eat()).
      • Tambahan method bark().
Class Cat (Child)

                    class Cat extends Animal {
                        void meow() {
                            print('The cat is meowing.');
                        }
                    }
                
      • Cat juga mewarisi eat().
      • Tambahan method meow().

Saat cat1.eat(); dijalankan, outputnya:

The animal is eating.

Saat cat1.meow(); dijalankan, outputnya:

The cat is meowing.

Ringkasan OOP yang Ditunjukkan

      • Class & Object : Car, Animal, Dog, Cat.
      • Property & Method : Car punya color, brand, year dan method drive(), honk().
      • Inheritance (Pewarisan) : Dog & Cat mewarisi Animal.
      • Polymorphism sederhana : objek berbeda (Car, Cat) bisa memanggil method yang sesuai dengan class-nya.

Tugas

Link https://github.com/muhammadhafiz27/Dart-Luas-Bangun-Ruang-Bangun-Datar.git