Panduan praktikum step by step yang bisa langsung dipakai di modul atau lembar kerja siswa.
Panduan ini sudah mencakup dua praktikum (Layout Responsif + Navigasi Aplikasi) dalam satu project, lengkap dengan penjelasan setiap bagian kodenya.
🧑💻 Panduan Praktikum Flutter
Praktikum 1 & 2 — Layout Responsif & Navigasi Aplikasi
Target:
-
Siswa memahami layout responsif menggunakan
Column,Row,Flexible,Expanded, danLayoutBuilder. -
Siswa mampu membuat navigasi antar-halaman menggunakan
Navigator.push()danBottomNavigationBar.
📌 Langkah-Langkah Praktikum
1️⃣ Membuat Project Baru
-
Buka zapp.run.
-
Pilih template Flutter.
-
Klik Create → Akan terbuka file
main.dart. -
Hapus kode bawaan dan ganti dengan kode berikut.
2️⃣ Salin Kode Berikut
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: 'Praktikum Layout & Navigasi',
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
// Praktikum 1 – Layout Responsif
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Praktikum 1 – Layout Responsif')),
body: LayoutBuilder(
builder: (context, constraints) {
return Column(
children: [
Flexible(
flex: 2,
child: Container(
color: Colors.blue,
child: const Center(child: Text('Bagian Atas')),
),
),
Flexible(
flex: 3,
child: Row(
children: [
Expanded(
child: Container(
color: Colors.green,
child: const Center(child: Text('Kiri')),
),
),
Expanded(
child: Container(
color: Colors.orange,
child: const Center(child: Text('Kanan')),
),
),
],
),
),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const SecondPage()),
);
},
child: const Text('Ke Halaman Kedua'),
),
],
);
},
),
bottomNavigationBar: BottomNavigationBar(
items: const [
BottomNavigationBarItem(icon: Icon(Icons.home), label: "Home"),
BottomNavigationBarItem(icon: Icon(Icons.pageview), label: "Page 2"),
],
onTap: (index) {
if (index == 1) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const SecondPage()),
);
}
},
),
);
}
}
// Praktikum 2 – Halaman Kedua + Navigasi
class SecondPage extends StatelessWidget {
const SecondPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Praktikum 2 – Halaman Kedua')),
body: const Center(
child: Text(
'Ini Halaman Kedua',
style: TextStyle(fontSize: 24),
),
),
);
}
}
3️⃣ Jalankan Program
-
Klik tombol ▶ Run di zapp.run.
-
Amati tampilan layout:
-
Bagian atas (biru)
-
Bagian bawah kiri (hijau)
-
Bagian bawah kanan (oranye)
-
-
Klik tombol "Ke Halaman Kedua" atau ikon BottomNavigationBar → akan pindah ke halaman kedua.
🔎 Penjelasan Kode
| Bagian Kode | Penjelasan |
|---|---|
runApp(const MyApp()) |
Fungsi utama untuk menjalankan aplikasi. |
MaterialApp(...) |
Membungkus seluruh aplikasi dengan gaya Material Design. |
HomePage |
Halaman utama aplikasi (berisi layout responsif). |
LayoutBuilder(...) |
Mengecek ukuran layar, memungkinkan kita membuat layout yang responsif. |
Column(...) |
Menyusun widget secara vertikal. |
Row(...) |
Menyusun widget secara horizontal. |
Flexible & Expanded |
Membagi ruang secara proporsional agar tampilan menyesuaikan layar. |
ElevatedButton(...) |
Tombol yang menavigasi ke halaman kedua menggunakan Navigator.push(). |
BottomNavigationBar(...) |
Menu navigasi di bawah layar yang bisa dipakai untuk berpindah halaman. |
SecondPage |
Halaman kedua yang akan ditampilkan setelah tombol ditekan. |
🎯 Tugas Siswa
-
Ubah warna
Containermenjadi warna lain (misalnya ungu, merah muda, abu-abu). -
Tambahkan satu
Expandedlagi di bawah tombol dengan warna berbeda. -
Ubah teks di halaman kedua menjadi nama kalian.
-
Tambahkan satu ikon baru di
BottomNavigationBar(misalnyaIcons.info) dan buat halaman ketiga dengan teks “Ini Halaman Ketiga”.
💡 Tips Guru
-
Ajak siswa membandingkan hasil di layar HP dan di layar PC untuk memahami konsep responsif.
-
Diskusikan kapan sebaiknya menggunakan Column + Row dibanding GridView.
-
Tantang siswa untuk membuat tema warna sendiri menggunakan
ThemeData.
Salam : Redaksi







Maulida Nailaturroif
BalasHapushttps://maulidanaila0227.blogspot.com/2025/09/blogspot-maulida-nailaturroif.html
Zaky Mubarok
BalasHapushttps://zakyblud.blogspot.com/2025/09/praktikum-1-dan-2.html
http://piliaaa.blogspot.com/2025/09/praktikum-pemrograman-mobile-punya-mita.html
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapushttps://gadizanugroho.blogspot.com/2025/09/membuat-layout-sederhana-dan-aplikasi.html
BalasHapushttps://nasyaa24.blogspot.com/2025/09/bloggspot-nasya-dwi-arini.html
BalasHapusAisah Nur'aeni
BalasHapushttps://aisahnurrawrrr.blogspot.com/2025/09/blogspot-aisah.html
https://zahrasyifa1.blogspot.com/2025/09/membuat-layout.html
BalasHapusTIARA INDAH ALAMI YANSYAH
BalasHapushttp://tiaraiay315.blogspot.com/2025/09/layout-responsif-dan-navigasi-aplikasi.html
M RAFFA IZZEL H
BalasHapushttps://figmaloginrapp.blogspot.com/2025/09/raffa-membuat-reponsif-navigator-bar.html
caca ardiansyah
BalasHapushttps://cacasoft32.blogspot.com/2025/09/membuat-aplikasi-flutter-daftar-film.html
Komentar ini telah dihapus oleh pengarang.
BalasHapusKopling
BalasHapushttp://qoridwianisa.blogspot.com/2025/09/bikin-layout-dan-navigasibar-yang-imoep.html
Alika Dwi Aryani
BalasHapushttps://likoperasisistem.blogspot.com/2025/09/pratikum1-2-alika.html
Dhanis Fathan Gunawan
BalasHapushttps://dhanisantibootloop.blogspot.com/2025/09/bikin-aplikasi-wisata-nusantara-pakai.html
https://sandimb.blogspot.com/2025/09/code-dart-flutter-layout-responsif-dan.html
BalasHapusKevin
BalasHapushttps://vinzz123.blogspot.com/2025/09/praktikum-1-dan-2.html
Komentar ini telah dihapus oleh pengarang.
BalasHapusyogi hadirrrrr pakkkkk
BalasHapushttps://goyblog1.blogspot.com/2025/09/membuat-tampilan-layout-simple.html
.
.
https://reihannovalendra.blogspot.com/2025/09/tugas-praktikum-1-dan-2.html
BalasHapushttps://sidiqhutanbakau.blogspot.com/2025/09/layout-responsive.html
BalasHapushttps://iqbalkeceahayyy.blogspot.com/2025/09/membangun-aplikasi-flutter-dengan.html
BalasHapusvino andrian
BalasHapushttps://vino223a.blogspot.com/2025/09/membuat-aplikasi-flutter-dengan-banyak.html
Muhamad Rodzi
BalasHapushttps://zyy22.blogspot.com/2025/09/membuat-aplikasi-flutter-dengan-layout.html
Komentar ini telah dihapus oleh pengarang.
BalasHapushttps://kituwenya.blogspot.com/2025/09/responsif-aja-jangan-posesif.html
BalasHapusRizqi Resdhiana
BalasHapushttps://anaz7751.blogspot.com/2025/09/bikin-tampilan-layout-responsif-yang.html?m=1
Komentar ini telah dihapus oleh pengarang.
BalasHapus