Setup Environment, Dasar Dart dan OOP Menggunakan Dart

link repository untuk laporan ini github

Langkah Setup Dart

  • Download Dart SDK melalui link berikut
  • Pastikan mendownload dari Stable Channel
  • Ekstrak file .zip kemudian tambahkan ../dart/dart-sdk/bin pada PATH environment variabel
  • Pastikan jika Dart berhasil di install dengan menjalankan kode “Dart” pada command promt jika berhasil maka tampilan akan seperti ini

Membuat Project Dart Pertama

Langkah-langkah untuk membuat project dart

  • Buka Terminal kemudian jalankan “dart create halo”
  • kodingan itu akan membuat sebuah project dengan nama “halo”
  • adapun struktur dari proejct dart yaitu
    • bin/ –> berisikan file yang dapat dijalankan
    • lib/ –>berisikan source code utama
    • test/ –> berisikan file testing
    • pubspecs.yaml/ –> berisikan file konfigurasi dan dependencies

Dasar pemograman Dart

list

  //LIST
  List<String> fruits = ['apel', 'pukat', 'nanas', 'mangga', 'pisang'];
  print(fruits);

  //Manupulasi LIST
  fruits.add('jeruk'); //menambah list
  print(fruits);

  fruits.remove('pukat'); //menghapus list
  print(fruits);

  fruits[0] = 'semangka'; //menambah list di indeks-ke
  print(fruits);

  fruits.sort(); //Menyusun list sesuai abjad (jika string)
  print(fruits);

  fruits.shuffle(); //mengacak isi dari list termasuk indeksnya
  print(fruits);

  print(fruits.length); //melihat ukuran list

  print(fruits.first); //melihat indeks pertama di list

  print(fruits.last); //melihat indeks terkahir dari list

  print(fruits.contains('mangga')); //bernilai true jika ada dalam list

  print(fruits.indexOf('pisang')); //melihat indeks ke- dari kata "pisang"

  print(fruits.isEmpty); //berilai true jika list kosong

  print(fruits.isNotEmpty); //bernilau true jika list ada isi

Set

  //SET
  Set<String> animal = {'kucing', 'ayam'};
  print(animal);

  //MANIPULASI SET
  animal.add('kambing');
  print(animal);
  animal.remove('kambing');
  print(animal.length);
  print(animal.contains('ayam'));
  print(animal.isEmpty);
  print(animal.isNotEmpty);

Map

  //MAP
  Map<String, String> produk = {
    'laptop': '10.000',
    'mouse': '20.000',
    'monitor': '40.000',
  };
  print(produk);

  //manipulasi map
  produk['printer'] = '1.500.000';
  print(produk);

  produk.remove('monitor');
  print(produk);

  produk['laptop'] = '60.000';
  print(produk);

  print([produk.keys]);
  print(produk.values);

  print(produk.containsValue('40.000'));

perulangan

// For-in loop
for (var fruit in fruits) {
  print(fruit);
}

// For loop tradisional
for (var i = 0; i < fruits.length; i++) {
  print(fruits[i]);
}

// ForEach untuk map
productPrices.forEach((key, value) {
  print('$key: $value');
});

TUGAS PRATIKUM 1

Membuat Aplikasi Sederhana Mini Laundry

Buatlah Aplikasi sederhana mini laundry menggunakan bahasa pemograman Dart dengan letentuan sebagai berikut

  • Paket Cuci dan Setrika 1kg = Rp6.000
  • Paket Cuci 1kg = Rp4.000
  • Paket Setrika 1kg = Rp3.000
  • Jika Total Laundry >= Rp50.000 maka mendapatkan potongan harga 5% dan jika lebih dari Rp100.000 maka mendapatkan potongan harga 10%
  • TAMPILKAN OUTPUT JUMLAH YANG HARUS DIBAYAR

Kodingan

import 'dart:io';

void main() {
  print("=== Mini Laundry ===");
  stdout.write("Masukkan total berat baju (kg): ");
  double berat = double.parse(stdin.readLineSync()!);

  print("\nPilih paket:");
  print("1. Cuci & Setrika (Rp6000/kg)");
  print("2. Cuci saja (Rp4000/kg)");
  print("3. Setrika saja (Rp3000/kg)");
  stdout.write("Masukkan pilihan paket (1/2/3): ");
  int pilihan = int.parse(stdin.readLineSync()!);

  double hargaPerKg;
  String namaPaket;

  switch (pilihan) {
    case 1:
      hargaPerKg = 6000;
      namaPaket = "Cuci & Setrika";
      break;
    case 2:
      hargaPerKg = 4000;
      namaPaket = "Cuci saja";
      break;
    case 3:
      hargaPerKg = 3000;
      namaPaket = "Setrika saja";
      break;
    default:
      print("Pilihan tidak valid!");
      return;
  }

  double totalHarga = berat * hargaPerKg;
  double diskon = 0;

  if (totalHarga > 100000) {
    diskon = 0.10; // 10%
  } else if (totalHarga > 50000) {
    diskon = 0.05; // 5%
  }

  double potongan = totalHarga * diskon;
  double totalBayar = totalHarga - potongan;

  print("\n=== Ringkasan Transaksi ===");
  print("Paket       : $namaPaket");
  print("Berat       : ${berat.toStringAsFixed(2)} kg");
  print("Harga/kg    : Rp$hargaPerKg");
  print("Total awal  : Rp$totalHarga");
  print("Diskon      : ${diskon * 100}% (Rp$potongan)");
  print("Total Bayar : Rp$totalBayar");
}

Input dan Output

input dari kodingan ini yaitu Total berat baju dengan tipe Double dan pemilihan Paket dengan tipe Integer

output dari kodingan ini yaitu Jumlah hasil kali dari Total Berat Baju dengan harga Pemilihan Paket
setelah dikali baru dilakukan pengecekan jika total harga lebih dari 50.000 maka diskon 5%, dan jika lebih 100.000 maka diskon 10%

VERSI OOP

untuk versi OOP memiliki 1 class yaitu Laundry, dimana didalam class ini terdapat:

  • 2 properti yaitu double berat; int paket;
  • 1 constructor Laundry({required this.berat, required this.paket});
  • 7 method double
    • getHargaPerKg()
    • String getNamaPaket()
    • double hitungTotal() => berat * getHargaPerKg();
    • double hitungDiskon()
    • double hitungPotongan() => hitungTotal() * hitungDiskon();
    • double hitungTotalBayar() => hitungTotal() - hitungPotongan();
    • void cetakStruk()

Kodingan

untuk class Laundry

class Laundry {
  double berat;
  int paket; // 1: Cuci & Setrika, 2: Cuci, 3: Setrika

  Laundry({required this.berat, required this.paket});

  double getHargaPerKg() {
    switch (paket) {
      case 1:
        return 6000;
      case 2:
        return 4000;
      case 3:
        return 3000;
      default:
        return 0;
    }
  }

  String getNamaPaket() {
    switch (paket) {
      case 1:
        return "Cuci & Setrika";
      case 2:
        return "Cuci saja";
      case 3:
        return "Setrika saja";
      default:
        return "Tidak diketahui";
    }
  }

  double hitungTotal() => berat * getHargaPerKg();

  double hitungDiskon() {
    double total = hitungTotal();
    if (total > 100000) return 0.10;
    if (total > 50000) return 0.05;
    return 0;
  }

  double hitungPotongan() => hitungTotal() * hitungDiskon();

  double hitungTotalBayar() => hitungTotal() - hitungPotongan();

  void cetakStruk() {
    print("\n=== Ringkasan Transaksi ===");
    print("Paket       : ${getNamaPaket()}");
    print("Berat       : ${berat.toStringAsFixed(2)} kg");
    print("Harga/kg    : Rp${getHargaPerKg()}");
    print("Total awal  : Rp${hitungTotal()}");
    print("Diskon      : ${hitungDiskon() * 100}% (Rp${hitungPotongan()})");
    print("Total Bayar : Rp${hitungTotalBayar()}");
  }
}

untuk main

import 'dart:io';
import 'laundry.dart';

void main() {
  print("=== Mini Laundry OOP ===");
  stdout.write("Masukkan total berat baju (kg): ");
  double berat = double.parse(stdin.readLineSync()!);

  print("\nPilih paket:");
  print("1. Cuci & Setrika (Rp6000/kg)");
  print("2. Cuci saja (Rp4000/kg)");
  print("3. Setrika saja (Rp3000/kg)");
  stdout.write("Masukkan pilihan paket (1/2/3): ");
  int pilihan = int.parse(stdin.readLineSync()!);

  // Membuat objek Laundry
  Laundry laundry = Laundry(berat: berat, paket: pilihan);

  // Cetak hasil
  laundry.cetakStruk();
}

Output

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll to Top