🔥 Aplikasi Jastip Soteng: Solusi Modern untuk Pemesanan Kantin Sekolah
📱 Deskripsi Aplikasi
Jastip Baso Soteng adalah aplikasi mobile berbasis Flutter yang dirancang khusus untuk memudahkan pemesanan makanan dan minuman di kantin sekolah. Aplikasi ini mengusung konsep "Jasa Titip" (Jastip) yang memungkinkan siswa untuk memesan menu favorit mereka secara praktis melalui smartphone, kemudian pesanan dikirim langsung ke WhatsApp penjual.
Aplikasi ini menampilkan interface yang modern, clean, dan user-friendly dengan dominasi warna merah dan putih yang menggugah selera, mencerminkan kehangatan dan kelezatan makanan yang ditawarkan.
🎯 Tujuan Pembuatan Aplikasi
Aplikasi Jastip Baso Soteng dibuat dengan beberapa tujuan utama:
- Efisiensi Waktu: Mengurangi waktu antrian di kantin dengan sistem pre-order digital
- Kemudahan Pemesanan: Memberikan platform yang mudah digunakan untuk memesan makanan
- Transparansi Harga: Menampilkan harga yang jelas dan perhitungan total otomatis
- Integrasi WhatsApp: Memanfaatkan platform komunikasi yang sudah familiar (WhatsApp) untuk konfirmasi pesanan
- Pengalaman Modern: Memberikan pengalaman berbelanja online yang menyenangkan dengan UI/UX yang menarik
✨ Fitur-Fitur Aplikasi
1. Katalog Menu Interaktif
- Tampilan card untuk setiap menu dengan foto, nama, deskripsi, dan harga
- Animasi hover dan transisi yang smooth
- Foto produk yang jelas dan menarik
2. Keranjang Belanja Real-time
- Badge notifikasi jumlah item di cart
- Update otomatis saat menambah/mengurangi quantity
- Perhitungan total harga secara real-time
3. Kontrol Quantity yang Intuitif
- Tombol (+) dan (-) untuk mengatur jumlah pesanan
- Tombol reset (X) untuk menghapus item dari keranjang
- Animasi pulse saat menambah quantity
4. Header dengan Gradient Modern
- Background gradient merah yang eye-catching
- Dot pattern untuk sentuhan premium
- Info jumlah menu dan tagline
5. Halaman Checkout Lengkap
- Ringkasan pesanan yang detail
- Informasi subtotal per item
- Total pembayaran yang jelas
- Tombol edit pesanan
6. Integrasi WhatsApp
- Kirim pesanan langsung ke WhatsApp penjual
- Format pesan yang rapi dan terstruktur
- Loading state saat proses pengiriman
- Konfirmasi sukses dengan SnackBar
7. Responsive Design
- Tampilan yang optimal di berbagai ukuran layar
- Scroll yang smooth
- Touch-friendly interface
8. Animasi & Transisi
- Fade-in animation untuk menu cards
- Slide transition saat navigasi
- Scale animation pada button hover
- Staggered animation untuk user experience yang lebih baik
📸 Dokumentasi Tampilan
Halaman Utama (Home Page)
Fitur yang terlihat:
- Header dengan gradient merah dan dot pattern
- Badge cart dengan jumlah item
- Katalog menu dengan foto dan harga
- Kontrol quantity untuk setiap item
- Bottom bar dengan summary dan tombol checkout
Halaman Checkout
Fitur yang terlihat:
- Header gradient dengan tombol back
- List pesanan dengan detail quantity dan subtotal
- Total pembayaran dengan highlight
- Tombol "Ubah Pesanan" dan "Pesan via WhatsApp"
- Loading state saat proses
Pesan WhatsApp
Format pesan yang dikirim:
🔥 *Pesanan Kantin Baso Soteng*
━━━━━━━━━━━━━━━━━
• Baso Bonteng
1x @ Rp 5.000
Subtotal: Rp 5.000
━━━━━━━━━━━━━━━━━
💰 *TOTAL: Rp 5.000*
━━━━━━━━━━━━━━━━━
Terima kasih! 🙏
💻 Potongan Kode Penting
1. Model Data Menu Item
class MenuItem {
final String name;
final int price;
final String image;
final String description;
int quantity;
MenuItem({
required this.name,
required this.price,
required this.image,
required this.description,
this.quantity = 0,
});
int get subtotal => price * quantity;
}
Penjelasan: Model ini menyimpan data menu dengan computed property subtotal untuk menghitung harga berdasarkan quantity.
2. Format Rupiah
String _formatRupiah(int value) {
return value.toString().replaceAllMapped(
RegExp(r'(\d)(?=(\d{3})+(?!\d))'),
(Match m) => '${m[1]}.',
);
}
Penjelasan: Fungsi ini memformat angka menjadi format Rupiah dengan pemisah titik setiap 3 digit (contoh: 5000 → 5.000).
3. Gradient Header dengan Custom Painter
Container(
decoration: const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [Color(0xFFE53935), Color(0xFFFF5252)],
),
),
child: Stack(
children: [
Positioned.fill(
child: Opacity(
opacity: 0.1,
child: CustomPaint(
painter: _DotPatternPainter(),
),
),
),
// Content here
],
),
)
Penjelasan: Membuat header dengan gradient merah dan pattern dots menggunakan CustomPainter untuk efek visual yang menarik.
4. Kirim Pesan ke WhatsApp
void _sendToWhatsApp(BuildContext context) async {
setState(() => _isProcessing = true);
final items = widget.menuItems.where((item) => item.quantity > 0).toList();
String message = '🔥 *Pesanan Kantin Baso Soteng*\n';
message += '━━━━━━━━━━━━━━━━━\n\n';
for (var item in items) {
message += '• ${item.name}\n';
message += ' ${item.quantity}x @ Rp ${_formatRupiah(item.price)}\n';
message += ' Subtotal: Rp ${_formatRupiah(item.subtotal)}\n\n';
}
message += '━━━━━━━━━━━━━━━━━\n';
message += '💰 *TOTAL: Rp ${_formatRupiah(widget.totalPrice)}*\n';
const String sellerNumber = '62882000574632';
final url = 'https://wa.me/$sellerNumber?text=${Uri.encodeComponent(message)}';
html.window.open(url, '_blank');
// Show success message
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('✅ Pesanan berhasil dikirim!')),
);
}
Penjelasan: Fungsi ini membuat format pesan yang rapi, encode URL, dan membuka WhatsApp dengan pesan yang sudah terformat.
5. Staggered Animation untuk Menu Cards
TweenAnimationBuilder<double>(
tween: Tween(begin: 0.0, end: 1.0),
duration: Duration(milliseconds: 300 + (index * 50)),
curve: Curves.easeOutCubic,
builder: (context, value, child) {
return Transform.translate(
offset: Offset(0, 20 * (1 - value)),
child: Opacity(
opacity: value,
child: child,
),
);
},
child: MenuCard(item: item, ...),
)
Penjelasan: Setiap card muncul dengan animasi fade-in dan slide-up yang di-delay berdasarkan index untuk efek staggered yang smooth.
🎨 Teknologi yang Digunakan
| Teknologi | Fungsi |
|---|---|
| Flutter | Framework utama untuk pengembangan aplikasi cross-platform |
| Dart | Bahasa pemrograman yang digunakan |
| Material Design 3 | Design system untuk UI yang modern |
| dart:html | Library untuk integrasi web (WhatsApp URL) |
| CustomPainter | Untuk membuat pattern visual custom |
| Animation Controllers | Untuk mengatur animasi yang kompleks |
🚀 Cara Menggunakan Aplikasi
- Buka Aplikasi - Tampilan home page akan muncul dengan katalog menu
- Pilih Menu - Tap tombol (+) untuk menambah quantity
- Atur Jumlah - Gunakan tombol (+/-) atau reset (X)
- Cek Keranjang - Lihat badge cart di kanan atas untuk jumlah item
- Checkout - Tap tombol "Lanjut Pesan" di bottom bar
- Review Pesanan - Periksa detail pesanan di halaman checkout
- Kirim ke WhatsApp - Tap "Pesan via WhatsApp" untuk mengirim
- Konfirmasi - WhatsApp akan terbuka dengan pesan terformat
📊 Hasil Pengujian
Test Case 1: Menambah Item ke Keranjang
- ✅ Status: PASSED
- Hasil: Quantity bertambah, badge cart update, total harga terhitung
- Screenshot:
Test Case 2: Menghapus Item dari Keranjang
- ✅ Status: PASSED
- Hasil: Item berhasil dihapus, total harga update otomatis
- Screenshot:
Test Case 3: Navigasi ke Checkout dengan Keranjang Kosong
- ✅ Status: PASSED
- Hasil: SnackBar muncul dengan pesan "Pilih minimal 1 item dulu ya! 😊"
- Screenshot:
Test Case 4: Kirim Pesanan ke WhatsApp
- ✅ Status: PASSED
- Hasil: WhatsApp terbuka dengan format pesan yang benar
- Screenshot:
Test Case 5: Format Rupiah
- ✅ Status: PASSED
- Hasil: Angka terformat dengan benar (5000 → Rp 5.000)
- Screenshot:
Summary Pengujian
| Total Test Cases | Passed | Failed | Pass Rate |
|---|---|---|---|
| 5 | 5 | 0 | 100% ✅ |
📝 Kesimpulan
Aplikasi Jastip Baso Soteng berhasil dikembangkan sebagai solusi modern untuk pemesanan makanan di kantin sekolah. Aplikasi ini menggabungkan desain yang menarik dengan fungsionalitas yang praktis, menghasilkan user experience yang menyenangkan.
Kelebihan Aplikasi:
✅ User Interface Modern - Desain yang clean, attractive, dan menggunakan Material Design 3 ✅ Animasi Smooth - Transisi dan animasi yang membuat aplikasi terasa responsive dan alive ✅ Integrasi WhatsApp - Pemanfaatan platform yang sudah familiar untuk kemudahan komunikasi ✅ Real-time Update - Perhitungan harga dan quantity yang update secara instant ✅ Easy to Use - Interface yang intuitif dan mudah dipahami ✅ Responsive - Tampilan optimal di berbagai ukuran layar
Pembelajaran yang Didapat:
- Implementasi state management menggunakan StatefulWidget
- Membuat custom widget yang reusable (MenuCard, ModernButton)
- Menggunakan AnimationController untuk animasi kompleks
- Integrasi dengan platform eksternal (WhatsApp)
- Implementasi responsive design dengan CustomScrollView
- Penggunaan CustomPainter untuk visual effect
Aplikasi ini membuktikan bahwa teknologi dapat membuat kehidupan sehari-hari lebih mudah, bahkan untuk hal sederhana seperti memesan makanan di kantin sekolah. Dengan tampilan yang menarik dan fitur yang lengkap, Jastip Baso Soteng siap menjadi solusi digital untuk kebutuhan kantin modern! 🚀
🔗 Link & Resource
Main Code
📦 Main Code : [ https://pastecode.io/s/jgtf7jua ] , [ https://pastecode.io/s/giqwj0mq ] , [ https://pastecode.io/s/g166wn9q ] , [ https://pastecode.io/s/0e6tfo2u ] , [ https://pastecode.io/s/3pi520tj ]
Demo
📱 Live Demo: [ https://ztem06uuten0.zapp.page/#/ ]
Contact
📧 Email : deterjen17@gmail.com 💬 WhatsApp : +62 895-37043-3500
📜 Lisensi
Project ini dibuat untuk tujuan pembelajaran dan dapat digunakan secara bebas dengan mencantumkan kredit kepada pembuat.
Dibuat dengan ❤️ menggunakan Flutter
Artikel ini dipublikasikan pada: [Rabu. 09-12-2025]
Tags
#Flutter #MobileApp #Jastip #KantinSekolah #WhatsAppIntegration #MaterialDesign #DartProgramming #UIUXDesign









Komentar
Posting Komentar