memulai-flutter-dart
Fapskom IT
Published
Memulai dengan Flutter & Dart: Bangun Aplikasi Pertama Anda
Flutter telah berkembang pesat menjadi salah satu framework UI lintas platform paling populer, memungkinkan pengembang untuk merilis aplikasi ke seluler, web, dan desktop dari satu basis kode Dart yang sama. Dalam tutorial ini, kita akan mulai dari nol hingga memiliki aplikasi Flutter yang berfungsi dalam waktu kurang dari 30 menit.
Prasyarat
Sebelum kita mulai, pastikan Anda memiliki:
- Flutter SDK terinstal (lihat flutter.dev)
- Dart (termasuk di dalam Flutter — tidak perlu instalasi terpisah)
- Sebuah IDE — VS Code dengan ekstensi Flutter, atau Android Studio
Menyiapkan Lingkungan Anda
Setelah menginstal Flutter, verifikasi instalasi Anda dengan menjalankan perintah berikut di terminal:
flutter doctor
Perintah ini akan memeriksa lingkungan Anda dan menampilkan laporan tentang dependensi apa pun yang belum terpasang. Hasil yang normal dan sehat akan terlihat seperti ini:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.22.0)
[✓] Android toolchain - develop for Android devices
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] VS Code (version 1.90.0)
Membuat Proyek Flutter Baru
flutter create aplikasi_pertamaku
cd aplikasi_pertamaku
Perintah di atas akan membuat struktur proyek standar Flutter:
aplikasi_pertamaku/
├── android/
├── ios/
├── lib/
│ └── main.dart ← Titik masuk (entry point) aplikasi Anda
├── test/
└── pubspec.yaml ← Manajemen dependensi
Memahami main.dart
Buka file lib/main.dart. Anda akan melihat aplikasi penghitung default bawaan Flutter. Mari kita bedah bagian-bagian pentingnya:
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Aplikasi Pertamaku',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
Konsep Utama Dart & Flutter
1. Semuanya adalah Widget (Everything is a Widget)
UI di Flutter dibangun dari widget yang saling menyusun. StatelessWidget digunakan untuk UI statis/tidak berubah (immutable), sedangkan StatefulWidget digunakan jika UI tersebut dapat berubah secara dinamis berdasarkan interaksi atau data.
2. Metode build
Setiap widget mengimplementasikan metode build yang mengembalikan pohon widget (widget tree). Flutter memanggil metode ini setiap kali UI perlu dirender ulang.
3. Null Safety
Dart memiliki sistem sound null safety yang kuat. Perhatikan penggunaan konstruktor const — ini dievaluasi pada saat kompilasi, sehingga dapat meningkatkan performa render aplikasi secara signifikan.
Membuat Widget Penghitung Khusus (Custom Counter Widget)
Mari kita refaktor kode bawaan di atas agar menjadi widget penghitung yang lebih bersih dan dapat digunakan kembali:
class CounterWidget extends StatefulWidget {
const CounterWidget({super.key});
@override
State<CounterWidget> createState() => _CounterWidgetState();
}
class _CounterWidgetState extends State<CounterWidget> {
int _count = 0;
void _increment() {
setState(() {
_count++;
});
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'$_count',
style: Theme.of(context).textTheme.displayLarge,
),
const SizedBox(height: 24),
FilledButton.icon(
onPressed: _increment,
icon: const Icon(Icons.add),
label: const Text('Tambah'),
),
],
);
}
}
Pemanggilan setState() di dalam metode _increment sangat krusial — ini memberi tahu Flutter bahwa ada data yang berubah dan menginstruksikan sistem untuk menjalankan ulang metode build dengan state terbaru.
Menjalankan Aplikasi
# Jalankan pada perangkat fisik atau emulator yang terhubung
flutter run
# Jalankan pada Chrome (web)
flutter run -d chrome
Hot Reload & Hot Restart
Fitur unggulan Flutter adalah hot reload — cukup tekan tombol r di terminal (atau simpan perubahan file di VS Code) dan perubahan Anda akan langsung muncul tanpa kehilangan data state saat ini.
- Hot Reload (
r) — Memasukkan kode yang diperbarui; mempertahankan state/data aktif. - Hot Restart (
R) — Membangun ulang aplikasi dari awal; mereset state/data menjadi nol kembali.
Bekerja dengan pubspec.yaml
Dependensi atau pustaka luar di Flutter dikelola di dalam file pubspec.yaml:
dependencies:
flutter:
sdk: flutter
http: ^1.2.0 # Untuk melakukan HTTP request
provider: ^6.1.2 # Manajemen state
Setelah menambahkan pustaka baru ke dalam file tersebut, jalankan perintah berikut di terminal:
flutter pub get
Langkah Selanjutnya
Selamat, Anda telah berhasil membangun aplikasi Flutter pertama Anda! Berikut beberapa topik yang bisa Anda pelajari selanjutnya:
- State Management — Jelajahi pustaka populer seperti
provider,riverpod, ataubloc - Navigation — Gunakan
go_routeruntuk sistem navigasi deklaratif - Networking — Ambil data dari API menggunakan paket
httpataudio - Platform Channels — Panggil API bawaan (native) iOS/Android dari kode Dart
Ekosistem Flutter yang kaya serta fitur hot reload menjadikannya pilihan luar biasa untuk pengembangan aplikasi lintas platform. Selamat membuat aplikasi! 🚀