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
