1 / 20
๐Ÿ“ฑFLUTTER
๐ŸŽฏDART
๐ŸŒฟGIT
๐Ÿ“ฆAPK
๐Ÿ™GITHUB
๐Ÿค–ANDROID

BAB 12

Final Project & Deployment APK

๐ŸŽ“ Kelas 11
๐Ÿ“š Semester 1
๐Ÿš€ Deploy to Production

๐Ÿ—บ๏ธ Peta Materi BAB 12

Perjalananmu dari kode mentah menjadi aplikasi nyata yang bisa di-install & dibanggakan!

๐Ÿ“ฆ Build APK

Mengubah kode Flutter jadi file .apk siap install

๐Ÿ” Signing

Tanda tangan digital agar aplikasi resmi & aman

๐ŸŽจ Icon & Splash

Wajah aplikasi: ikon launcher & layar pembuka

๐Ÿ”ข Versioning

Penomoran versi seperti generasi produk

๐ŸŒฟ Git & GitHub

Menyimpan & membagikan kode ke seluruh dunia

๐Ÿ“ Dokumentasi

README & portfolio yang profesional

๐ŸŽฏ Tujuan Pembelajaran

Setelah bab ini kamu mampu mem-build, menandatangani, dan men-deploy aplikasi Flutter, serta mengelola kode dengan Git/GitHub.

๐Ÿ Hasil Akhir

Satu APK release yang ter-install, ter-publish di GitHub, dan satu Final Project sebagai isi portfolio-mu.

๐Ÿ“ฆ Build APK

POINANALOGIPENJELASANKODEDEMO

APK (Android Package) adalah file hasil "memasak" proyek Flutter menjadi satu paket yang bisa di-install di HP Android.

๐Ÿ–จ๏ธ ANALOGI: MENCETAK BUKU DARI NASKAH

Kode Flutter-mu ibarat naskah tulisan tangan. Perintah build seperti mesin cetak yang mengubah naskah menjadi buku jadi (file .apk) yang siap dibagikan ke pembaca (pengguna).

Penjelasan: Naskah = source code, mesin cetak = compiler Flutter, buku = APK. Sekali "dicetak", siapa pun bisa memasangnya tanpa butuh kode aslimu.

Terminal ยท Build APK
# Build APK untuk rilis (siap dibagikan)
flutter build apk --release

# Hasil ada di:
# build/app/outputs/flutter-apk/app-release.apk

# Build per-arsitektur agar ukuran lebih kecil:
flutter build apk --split-per-abi

๐ŸŽฌ DEMO: Lihat animasi mesin cetak di atas โ€” naskah masuk, APK keluar!

โš–๏ธ Release Mode vs Debug Mode

Dua "mode masak" yang berbeda tujuan: satu untuk uji coba, satu untuk dirilis.

๐Ÿณ ANALOGI: MASAK COBA-COBA vs HIDANGAN RESTORAN

Debug = memasak sambil mencicipi (cepat diubah, banyak catatan). Release = hidangan final yang disajikan ke tamu (rapi, cepat, tanpa coretan dapur).

๐Ÿ“ Source Code
โ†’
๐Ÿž DEBUG
cepat compile
ada hot reload
lambat jalan
โ†’
๐Ÿš€ RELEASE
dioptimasi
ukuran kecil
cepat & siap rilis

๐Ÿž Debug Mode

Untuk pengembangan. Ada hot reload, pesan error lengkap, performa belum optimal, ukuran besar.

๐Ÿš€ Release Mode

Untuk pengguna akhir. Kode dioptimasi (tree-shaking), tanpa debug info, cepat, ukuran ringkas.

Terminal
flutter run                 # jalan dalam DEBUG mode (default)
flutter run --release       # uji performa nyata di device
flutter build apk --release # buat APK final untuk dibagikan

๐Ÿ” Signing APK

POINANALOGIPENJELASANKODEDEMO

Signing = menandatangani aplikasi secara digital dengan keystore agar Android percaya bahwa aplikasi benar buatanmu.

โœ๏ธ ANALOGI: TANDA TANGAN DI DOKUMEN RESMI

Keystore ibarat tanda tangan + materai pribadimu. Tanpa tanda tangan, dokumen (APK) dianggap tidak resmi. Play Store hanya menerima aplikasi yang sudah "ditandatangani".

Penjelasan: File keystore berisi kunci rahasia. Simpan baik-baik โ€” jika hilang, kamu tidak bisa meng-update aplikasimu di Play Store!

Terminal ยท Buat Keystore
keytool -genkey -v -keystore my-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 \
  -alias upload
android/app/build.gradle ยท Signing Config
android {
  signingConfigs {
    release {
      storeFile file("my-key.jks")
      storePassword "PASSWORD_KAMU"
      keyAlias "upload"
      keyPassword "PASSWORD_KAMU"
    }
  }
  buildTypes {
    release { signingConfig signingConfigs.release }
  }
}

๐ŸŽฌ DEMO: Animasi tanda tangan menggores layar di atas โœ๏ธ

๐ŸŽจ App Icon

Ikon launcher adalah hal pertama yang dilihat pengguna di layar HP mereka.

๐Ÿฌ ANALOGI: WAJAH TOKO DI MALL

Ratusan toko berjajar di mall. Papan nama & etalase yang menarik membuat orang ingin masuk. Icon aplikasi = etalase aplikasimu di antara puluhan app lain.

๐Ÿ–ผ๏ธ icon.png
1024ร—1024
โ†’
โš™๏ธ flutter_launcher_icons
โ†’
๐Ÿ“ฑ Icon di semua ukuran HP
pubspec.yaml
dev_dependencies:
  flutter_launcher_icons: ^0.13.1

flutter_launcher_icons:
  android: true
  ios: true
  image_path: "assets/icon/icon.png"
Terminal ยท Generate Icon
flutter pub get
flutter pub run flutter_launcher_icons

๐ŸŒ… Splash Screen

Layar pembuka singkat saat aplikasi pertama dibuka โ€” kesan pertama yang berkelas.

๐Ÿจ ANALOGI: PINTU MASUK HOTEL MEWAH

Sebelum masuk kamar, kamu disambut lobby megah selama beberapa detik. Splash screen = lobby aplikasimu: menyambut sambil menyiapkan isi di belakang layar.

pubspec.yaml ยท flutter_native_splash
dev_dependencies:
  flutter_native_splash: ^2.4.0

flutter_native_splash:
  color: "#0A0A0F"
  image: assets/splash/logo.png
  android_12:
    color: "#0A0A0F"
    image: assets/splash/logo.png
Terminal
flutter pub get
flutter pub run flutter_native_splash:create

๐Ÿ’ก Durasi ideal: 2โ€“3 detik. Cukup untuk berkesan, tidak membuat bosan.

๐Ÿ”ข Versioning (SemVer)

Versi memberi tahu pengguna & sistem seberapa baru aplikasimu.

๐Ÿ“ฑ ANALOGI: GENERASI PRODUK iPHONE

iPhone 1 โ†’ 2 โ†’ 3 โ†’ ... Tiap angka naik = ada perubahan. Sama seperti versi aplikasi: makin besar angkanya, makin baru fiturnya.

v1.0.0
โ†’
v1.0.1
โ†’
v1.1.0
โ†’
v2.0.0

MAJOR (2.x.x)

Perubahan besar yang bisa tidak kompatibel dengan versi lama

MINOR (x.1.x)

Fitur baru, tetap kompatibel dengan versi sebelumnya

PATCH (x.x.1)

Perbaikan bug kecil tanpa fitur baru

pubspec.yaml
# format:  versionName+versionCode
version: 1.2.0+5
#         ^^^^^  ^
#         tampil  nomor build (naik tiap upload ke Play Store)

๐ŸŒฟ Git Fundamentals

Git = mesin waktu untuk kodemu. Menyimpan setiap perubahan agar bisa kembali kapan saja.

๐ŸŒณ ANALOGI: POHON YANG TUMBUH BERCABANG

Tiap commit = ruas batang baru. Tiap branch = cabang yang tumbuh ke arah eksperimen tanpa merusak batang utama. Merge = menyatukan cabang kembali.

Terminal ยท Alur Git Dasar
git init                       # mulai repository
git add .                      # siapkan semua perubahan
git commit -m "fitur awal"     # simpan snapshot
git branch fitur-baru          # buat cabang
git checkout fitur-baru        # pindah ke cabang
git merge fitur-baru           # gabungkan kembali

๐Ÿ™ GitHub

GitHub = tempat menyimpan repository Git secara online agar aman & bisa dibagikan.

โ˜๏ธ ANALOGI: GOOGLE DRIVE VERSI DEVELOPER

Seperti Drive menyimpan dokumen di cloud, GitHub menyimpan kodemu di cloud โ€” lengkap dengan riwayat perubahan, dan bisa diakses dari mana pun.

Terminal ยท Push ke GitHub
# Hubungkan repo lokal ke GitHub
git remote add origin https://github.com/USERNAME/nama-repo.git

git branch -M main
git push -u origin main        # kirim kode ke cloud โ˜๏ธ

# Update berikutnya cukup:
git add .
git commit -m "update fitur"
git push

๐ŸŽฌ DEMO: File terbang dari laptop ๐Ÿ’ป menuju cloud โ˜๏ธ di atas!

๐Ÿ“ Dokumentasi Project

File README.md adalah halaman depan proyekmu โ€” penjelasan agar orang lain paham aplikasimu.

๐Ÿ“– ANALOGI: BUKU MANUAL KENDARAAN

Setiap mobil punya buku manual: cara pakai, fitur, peringatan. README = manual aplikasimu agar pengguna & developer lain langsung paham.

๐Ÿ’ป Code
โ†’
๐Ÿ“ README.md
โ†’
๐ŸŒ GitHub Pages
README.md ยท Template
# ๐Ÿ“ฑ Nama Aplikasi

Deskripsi singkat aplikasi dalam 1-2 kalimat.

## โœจ Fitur
- Fitur 1
- Fitur 2

## ๐Ÿš€ Cara Menjalankan
    flutter pub get
    flutter run

## ๐Ÿ› ๏ธ Teknologi
- Flutter & Dart
- Provider (state management)

## ๐Ÿ‘ค Pembuat
Nama โ€” Kelas 11

๐Ÿ’ผ Portfolio Mobile

Kumpulan karya terbaikmu yang menunjukkan kemampuan kepada guru, sekolah, bahkan calon kampus/perusahaan.

๐Ÿ–ผ๏ธ ANALOGI: PORTOFOLIO SENIMAN DI GALERI

Seniman memajang lukisan terbaik di galeri agar pengunjung terkesan. Portfolio = galeri digitalmu โ€” pajang proyek & APK terbaik.

โœ… Yang Harus Ada

Screenshot aplikasi, deskripsi singkat, link GitHub, link download APK, daftar fitur & teknologi.

๐ŸŒŸ Nilai Tambah

Demo video pendek, penjelasan tantangan yang diselesaikan, rapi & konsisten.

โœ“Judul & deskripsi proyek
โœ“Screenshot UI yang menarik
โœ“Link repository GitHub
โœ“Link / file APK release

๐Ÿ›’ Final Project 1: Kasir Mobile

Aplikasi kasir sederhana untuk mencatat transaksi penjualan.

๐ŸŽฏ Fitur Utama

โž• Tambah produk & harga
๐Ÿงฎ Hitung total belanja
๐Ÿงพ Cetak/lihat struk
๐Ÿ“Š Riwayat transaksi

๐Ÿงฑ Tech Stack

FlutterProviderSharedPreferencesListView

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ KASIR MOBILE ๐Ÿ›’ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Nasi Goreng Rp 15.000 โ”‚ โ”‚ Es Teh Rp 5.000 โ”‚ โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ TOTAL Rp 20.000 โ”‚ โ”‚ [ BAYAR ] [ RESET ] โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ’ก Cocok untuk yang suka logika hitung & manajemen data.

๐Ÿ“’ Final Project 2: Catatan CRUD

Aplikasi catatan dengan Create, Read, Update, Delete + Local Storage + Dark Mode.

๐ŸŽฏ Fitur Utama

๐Ÿ“ Tambah catatan (Create)
๐Ÿ“– Lihat daftar (Read)
โœ๏ธ Edit catatan (Update)
๐Ÿ—‘๏ธ Hapus catatan (Delete)
๐ŸŒ™ Toggle Dark Mode

๐Ÿงฑ Tech Stack

FluttersqfliteProviderThemeMode

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ“’ CATATANKU ๐ŸŒ™ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ€ข Belajar Flutter โœ๏ธ๐Ÿ—‘๏ธ โ”‚ โ”‚ โ€ข Tugas Matematika โœ๏ธ๐Ÿ—‘๏ธ โ”‚ โ”‚ โ€ข Ide Project โœ๏ธ๐Ÿ—‘๏ธ โ”‚ โ”‚ [ + ]โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ’ก Menguasai CRUD = fondasi hampir semua aplikasi nyata.

โœ… Final Project 3: Manajemen Tugas

To-Do App untuk mengatur tugas: Tambah, Edit, Hapus, dan ubah Status selesai/belum.

๐ŸŽฏ Fitur Utama

โž• Tambah tugas + deadline
โœ๏ธ Edit detail tugas
๐Ÿ—‘๏ธ Hapus tugas
โ˜‘๏ธ Tandai selesai / belum
๐Ÿ” Filter berdasarkan status

๐Ÿงฑ Tech Stack

FlutterHiveCheckboxListView.builder

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โœ… TUGASKU โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ˜‘ Kerjakan PR Fisika โ”‚ โ”‚ โ˜ Baca Bab 12 Flutter โ”‚ โ”‚ โ˜ Push project ke GitHub โ”‚ โ”‚ [ + ]โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ’ก Latihan state management & data lokal yang sangat praktis.

๐Ÿ›๏ธ Final Project 4: E-Commerce UI Clone

Tiruan UI toko online: Home, Detail Produk, Keranjang, dan Profil.

๐ŸŽฏ Halaman

๐Ÿ  Home โ€” daftar produk & banner
๐Ÿ” Detail โ€” foto, harga, deskripsi
๐Ÿ›’ Cart โ€” item & total belanja
๐Ÿ‘ค Profile โ€” info & pengaturan

๐Ÿงฑ Tech Stack

FlutterGridViewNavigationHero Animation

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ›๏ธ TOKO KITA ๐Ÿ›’(2) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ [๐Ÿ‘•] [๐Ÿ‘Ÿ] [๐ŸŽ’] [โŒš] โ”‚ โ”‚ Kaos Sepatu Tas Jam โ”‚ โ”‚ 150rb 350rb 90rb 200rb โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ ๐Ÿ  ๐Ÿ” ๐Ÿ›’ ๐Ÿ‘ค โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ’ก Paling menantang secara UI โ€” pamerkan skill desainmu!

๐Ÿ† Output Skills Recap

12 skill yang telah kamu kuasai dari BAB 1 sampai BAB 12! ๐ŸŽ‰

โœ“Dasar Bahasa Dart
โœ“OOP (Class & Object)
โœ“Dasar Flutter & Widget
โœ“Layout Responsif
โœ“Form & Input Handling
โœ“Navigation antar halaman
โœ“State Management
โœ“Local Storage
โœ“UI/UX & Design System
โœ“Build & Signing APK
โœ“Git & GitHub
โœ“Deployment & Portfolio

๐Ÿš€ Kamu sekarang siap membangun aplikasi nyata dari nol hingga rilis!

๐Ÿ“‹ Tugas 1: Build & Release APK

๐ŸŽฏ Instruksi

  1. Ambil salah satu proyek Flutter dari bab sebelumnya.
  2. Set app icon & version di pubspec.yaml.
  3. Jalankan flutter build apk --release.
  4. Install APK di HP / emulator, ambil screenshot.
  5. Tulis dokumentasi singkat langkah yang kamu lakukan.

๐Ÿ“ฆ Output

1 file app-release.apk + 3 screenshot + dokumentasi (.md/.pdf).

โฑ๏ธ Estimasi

ยฑ 2 jam ยท Dikumpulkan akhir minggu ini.

KriteriaBobot
APK berhasil di-build & terinstall40%
Icon & versi diatur dengan benar30%
Screenshot & dokumentasi jelas30%

๐Ÿ“‹ Tugas 2: Push ke GitHub + README

๐ŸŽฏ Instruksi

  1. Buat akun & repository baru di GitHub.
  2. Inisialisasi Git di proyekmu (git init).
  3. Commit & push seluruh kode ke GitHub.
  4. Buat README.md lengkap (deskripsi, fitur, cara jalan, teknologi, pembuat).
  5. Kirim link repository sebagai bukti.

๐Ÿ”— Output

Link repository GitHub publik berisi kode + README.md rapi.

โฑ๏ธ Estimasi

ยฑ 1.5 jam ยท Branch main harus bersih.

KriteriaBobot
Kode berhasil di-push ke GitHub40%
README.md lengkap & rapi40%
Commit message bermakna20%

๐Ÿ“‹ Tugas 3: Final Project Pilihan Bebas

๐ŸŽฏ Instruksi

Pilih SATU dari 4 Final Project, lalu bangun, build APK, push ke GitHub, dan presentasikan di kelas.

  • ๐Ÿ›’ Kasir Mobile
  • ๐Ÿ“’ Catatan CRUD + Dark Mode
  • โœ… Manajemen Tugas
  • ๐Ÿ›๏ธ E-Commerce UI Clone

๐Ÿ“ฆ Output

APK release + repo GitHub + slide presentasi (3โ€“5 menit).

โฑ๏ธ Estimasi

ยฑ 1 minggu ยท Presentasi minggu depan.

KriteriaBobot
Fungsi aplikasi berjalan baik35%
UI/UX menarik & rapi25%
Deploy (APK + GitHub) lengkap25%
Presentasi jelas & percaya diri15%

๐ŸŽ“ Selamat! Kamu telah menamatkan perjalanan Flutter Kelas 11 Semester 1! ๐Ÿš€โœจ

โ† โ†’ navigasi ยท klik COPY untuk salin kode ยท scroll ke bawah di tiap slide