Tujuan Pembelajaran
- Menjelaskan konsep fungsi dan parameter pada Dart.
- Menerapkan fungsi dengan parameter wajib dan opsional.
- Menjelaskan class, objek, konstruktor, dan pewarisan.
- Memahami konsep asynchronous (Future dan async/await).
Uraian Materi
Fungsi merupakan blok kode yang dapat dipanggil ulang. Dart mendukung parameter posisional wajib maupun parameter bernama opsional yang ditulis dalam kurung kurawal. Nilai default dapat ditetapkan untuk parameter opsional.
int tambah(int a, int b) {
return a + b;
}
void sapa({String nama = "Teman"}) {
print("Halo, $nama");
}
Pada fungsi, nama fungsi lebih baik menganut kata kerja. Materi menekankan bahwa fungsi dengan satu tujuan akan memudahkan pengujian dan pemeliharaan kode.
Class dan Objek
Dart adalah bahasa berorientasi objek. Objek dibentuk dari class yang berisi atribut (field) dan perilaku (method). Konstruktor menugaskan nilai awal field. Contoh class Mahasiswa:
class Mahasiswa {
String nama;
int nilai;
Mahasiswa(this.nama, this.nilai);
void tampilkan() {
print("$nama - $nilai");
}
}
Pewarisan menggunakan kata kunci extends memungkinkan class turunan memakai kembali dan memperluas perilaku parent. Konsep Kapsulasi, Polimorfisme, dan Abstraksi dijelaskan secara ringkas.
Konsep Async di Dart
Aplikasi mobile banyak bergantung pada operasi lambat seperti pengambilan data jaringan. Dart menangani hal ini secara asinkron menggunakan Future dan async/await. Saat fungsi menunggu operasi asinkron (contoh: membaca database), await tidak memblokir antarmuka pengguna.
Future ambilData() async {
await Future.delayed(Duration(seconds: 2));
return "Data siap";
}
void main() async {
String hasil = await ambilData();
print(hasil);
}
Pemahaman async menjadi jembatan penting menuju materi jaringan (REST API) dan database pada pertemuan berikutnya.
Konsep Scope dan Parameter
Variabel memiliki lingkup (scope): variabel lokal hanya dikenal di dalam fungsi atau blok tempat ia dideklarasikan. Parameter fungsi berfungsi sebagai pintu masuk nilai dari luar. Memahami scope mencegah kesalahan seperti memakai variabel yang belum didefinisikan pada bagian lain program.
Enumerator dan Null Safety
Dart memperkenalkan konsep null safety yang mewajibkan penanganan nilai yang mungkin kosong. Variabel yang dapat bernilai null ditulis dengan tanda tanya, misal String? nama. Penanganan null yang benar menghindari error crash pada aplikasi, terutama saat data dari server belum tentu lengkap.
Mengapa Perlu Memahami OOP untuk Flutter
Seluruh antarmuka Flutter dibangun menggunakan class. Memahami konsep class, objek, dan pewarisan membuat peserta mampu membaca serta memodifikasi kode Flutter yang berbasis widget. Kebiasaan mengenali pola extends pada widget menjadi kunci membaca struktur aplikasi.
Async dalam Aplikasi Nyata
Operasi seperti memuat gambar dari internet atau membaca database memerlukan waktu. Dengan Future dan async/await, aplikasi tetap responsif selama operasi tersebut berjalan. Setiap kali nanti peserta menulis kode jaringan, konsep ini akan dipakai bersama FutureBuilder, sehingga penguasaan dasar async sangat menentukan kelancaran materi REST API.
Aktivitas Pembelajaran
- Menjelaskan dan mendiskusikan konsep fungsi.
- Latihan menulis class sederhana beserta instansinya.
- Menerapkan future dan async/await pada program contoh.
- Mengerjakan latihan mandiri fungsi dan OOP.
Tugas dan Latihan
- Tulis class Produk dengan atribut nama, harga, dan method hitungPajak.
- Buat fungsi async yang mensimulasikan pemuatan data.
- Kerjakan kuis fungsi dan OOP.
Evaluasi
Evaluasi dilakukan melalui pengamatan hasil praktikum, kuis singkat di akhir pertemuan, dan pemantauan proyek. Peserta yang belum mencapai indikator tertentu diberikan remedial melalui bimbingan ulang dan latihan tambahan pada pertemuan berikutnya.
Panduan Belajar Mandiri
Untuk menguatkan pemahaman, peserta disarankan membaca ulang kode yang telah dibuat, mencoba memodifikasi nilai dan properti, lalu mengamati perubahannya melalui hot reload. Eksperimen kecil-kecil semacam ini membangun intuisi yang tidak diperoleh hanya dari teori.
Kesulitan yang ditemui selama praktik dicatat pada jurnal belajar dan dibawa ke pertemuan berikutnya. Konsistensi belajar mandiri di antara sesi mempercepat penguasaan materi dan membuat praktikum di kelas berjalan lebih efektif.
Ringkasan Pertemuan
Pada pertemuan ke-4 fokus pembelajaran adalah dasar pemrograman dart (2): fungsi dan pemrograman berorientasi objek. Seluruh indikator tujuan difokuskan pada penguasaan materi tersebut secara praktis, sehingga peserta tidak hanya mengenal konsep tetapi mampu menerapkannya langsung dalam proyek Flutter yang sedang dikembangkan. Ringkasan nilai utama: menjelaskan konsep fungsi dan parameter pada dart..
Kemampuan peserta diukur melalui penyelesaian latihan yang mencerminkan penerapan nyata, bukan sekadar hafalan. Setiap konsep baru selalu dikaitkan dengan materi sebelumnya agar terbentuk pemahaman yang utuh dan berkesinambungan sepanjang kurikulum.
Refleksi Diri
Bagian berikut mengajak peserta menelaah kembali sejauh mana materi telah dikuasai. Kejujuran dalam menilai diri menentukan efektivitas langkah perbaikan selanjutnya.
- Apakah saya dapat menjelaskan kembali pokok materi pertemuan ini tanpa melihat catatan?
- Apakah saya berhasil menyelesaikan seluruh latihan praktikum secara mandiri?
- Bila ada kendala, bagian manakah yang paling sulit dan bagaimana rencana saya mengatasinya?
Asesmen dan Tindak Lanjut
Hasil praktikum dan kuis digunakan untuk memetakan penguasaan peserta. Peserta yang nilainya belum memenuhi kriteria mengulang latihan pada bagian yang kurang dengan pendampingan, sedangkan yang telah menguasai diberikan pengayaan berupa pengembangan fitur tambahan. Catatan perbaikan disampaikan melalui umpan balik tertulis atau lisan.
Kesetiaan mengikuti alur pertemuan demi pertemuan merupakan kunci keberhasilan penguasaan dasar bahasa Dart dan persiapan lingkungan pengembangan Flutter. Materi berikutnya dibangun di atas kompetensi yang telah dicapai, sehingga menuntaskan pembelajaran setiap pertemuan menjadi bagian penting dari pencapaian akhir. Peserta disarankan mempersiapkan diri membaca panduan praktikum sebelum pertemuan berikutnya tiba.
Dengan selesainya pertemuan ini, peserta menambah satu kompetensi pada peta belajar Mobile Programming. Kemajuan itu dicatat dan menjadi dasar penilaian akhir serta bahan diskusi proyek yang menutup keseluruhan kurikulum.
