Minggu, 14 Desember 2025

Sekolah-Food by Hafidz

 SekolahFood: Aplikasi Jastip Makanan untuk Komunitas SekolahπŸ±πŸš€




πŸ“± Deskripsi Aplikasi


SekolahFood adalah aplikasi mobile yang dikembangkan menggunakan framework Flutter yang bertujuan untuk memfasilitasi pemesanan makanan antar teman sekolah (jastip) secara digital. Aplikasi ini menghubungkan siswa dengan penjual makanan di kantin sekolah melalui sistem pemesanan yang praktis dan terorganisir.


Dengan tampilan yang user-friendly dan fitur yang lengkap, SekolahFood mengubah cara tradisional memesan makanan menjadi pengalaman digital yang efisien. Aplikasi ini dirancang khusus untuk lingkungan sekolah dengan memperhatikan kebutuhan spesifik siswa dan penjual kantin.


🎯 Tujuan Pembuatan Aplikasi


1. Mengatasi Masalah Antrian Panjang- Mengurangi waktu tunggu di kantin saat jam istirahat

2. Meningkatkan Efisiensi - Memungkinkan siswa memesan makanan sebelum waktu istirahat

3. Mendukung Digitalisasi Sekolah-Mengintegrasikan teknologi dalam aktivitas sehari-hari sekolah

4. Memfasilitasi Penjual Kantin- Memberikan platform pemasaran digital untuk UMKM kantin sekolah

5. Mengajarkan Kewirausahaan- Memberikan pengalaman nyata dalam pengembangan aplikasi bisnis


✨ Fitur-Fitur Aplikasi

1. Katalog Menu Digital












- Tampilan grid makanan dengan gambar menarik

- Filter berdasarkan kategori (Makanan Berat, Minuman, Snack)

- Filter berdasarkan lokasi kantin (Kantin A, B, C)

- Pencarian cepat berdasarkan nama makanan


2. Sistem Keranjang Belanja










- Tambah/kurangi jumlah item dengan mudah

- Perhitungan total otomatis

- Tampilan detail setiap item dalam keranjang




3. Manajemen Data Pengguna












- Form isian data diri siswa (Nama, NIS, Kelas)

- Input nomor WhatsApp untuk konfirmasi

- Lokasi pengiriman yang fleksibel




4. Integrasi WhatsApp














- Generasi otomatis pesan pemesanan

- Format pesan yang rapi dan informatif

- Tombol salin ke clipboard untuk kemudahan pengiriman


5. UI/UX yang Responsif

- Navigasi bottom bar yang intuitif

- Tampilan yang konsisten di berbagai ukuran layar

- Feedback visual melalui snackbar dan dialog



πŸ’» Potongan Kode Penting


1. Struktur Data Makanan

```dart

class FoodItem {

  final String id;

  final String name;

  final String description;

  final double price;

  final String imageUrl;

  final String category;

  final String location;

  final int stock;

  final String sellerPhone;


  FoodItem({

    required this.id,

    required this.name,

    required this.description,

    required this.price,

    required this.imageUrl,

    required this.category,

    required this.location,

    required this.stock,

    required this.sellerPhone,

  });

}

```


### **2. Fungsi Tambah ke Keranjang**

```dart

void _addToCart(FoodItem food, {String notes = ''}) {

  setState(() {

    final existingIndex = cart.indexWhere((item) => item.foodId == food.id);

    

    if (existingIndex >= 0) {

      cart[existingIndex] = OrderItem(

        foodId: food.id,

        foodName: food.name,

        quantity: cart[existingIndex].quantity + 1,

        price: food.price,

        notes: notes,

        sellerPhone: food.sellerPhone,

      );

    } else {

      cart.add(OrderItem(

        foodId: food.id,

        foodName: food.name,

        quantity: 1,

        price: food.price,

        notes: notes,

        sellerPhone: food.sellerPhone,

      ));

    }

  });


  ScaffoldMessenger.of(context).showSnackBar(

    SnackBar(

      content: Text('${food.name} ditambahkan ke keranjang'),

      duration: const Duration(seconds: 2),

    ),

  );

}

```


3. Generasi Pesan WhatsApp

```dart

String orderSummary = '''

πŸ“± *PESANAN SEKOLAHFOOD* πŸ“±


πŸ‘¨β€πŸŽ“ *Pemesan:*

Nama: ${userData.name}

NIS: ${userData.studentId}

Kelas: ${userData.grade}

No. WA: ${userData.phone}


πŸ“ *Lokasi Pengiriman:* ${userData.deliveryLocation}

⏰ *Waktu Antar:* Istirahat berikutnya


πŸ›’ *Detail Pesanan:*

${cart.map((item) => 'β€’ ${item.foodName} x${item.quantity}: Rp ${item.price.toStringAsFixed(0)}/pcs').join('\n')}


πŸ’° *Total: Rp ${total.toStringAsFixed(0)}*


βœ… Mohon konfirmasi ketersediaan dan waktu pengiriman.

''';

```


### **4. Tampilan Grid Makanan**

```dart

GridView.builder(

  gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(

    crossAxisCount: 2,

    crossAxisSpacing: 12,

    mainAxisSpacing: 12,

    childAspectRatio: 0.85,

  ),

  itemCount: _filteredFoods.length,

  itemBuilder: (context, index) {

    final food = _filteredFoods[index];

    return Card(

      child: Padding(

        padding: const EdgeInsets.all(8),

        child: Column(

          children: [

            Image.network(

              food.imageUrl,

              height: 100,

              width: double.infinity,

              fit: BoxFit.cover,

            ),

            Text(food.name, style: TextStyle(fontWeight: FontWeight.bold)),

            Text('Rp ${food.price.toStringAsFixed(0)}'),

            ElevatedButton(

              onPressed: () => _addToCart(food),

              child: const Text('Tambah'),

            ),

          ],

        ),

      ),

    );

  },

)

```


πŸ“Š Kesimpulan


SekolahFood berhasil mengimplementasikan solusi digital untuk masalah pemesanan makanan di lingkungan sekolah. Aplikasi ini telah mencapai beberapa pencapaian penting:


Keberhasilan yang Dicapai:

1. Fungsionalitas Lengkap - Semua fitur utama berjalan dengan baik

2. User Experience yang Baik - Navigasi intuitif dan feedback yang jelas

3. Integrasi Praktis - Penggunaan WhatsApp sebagai platform komunikasi yang familiar

4. Kode yang Terstruktur - Arsitektur yang mudah dipahami dan dikembangkan


Nilai Edukasional:

1. Pembelajaran Flutter - Penguasaan widget, state management, dan async programming

2. Problem Solving - Analisis kebutuhan dan penerapan solusi teknologi

3. UI/UX Design - Pemahaman prinsip desain untuk aplikasi mobile

4. Project Management - Perencanaan, implementasi, dan dokumentasi proyek


Potensi Pengembangan:

1. Backend Integration - Menambahkan server untuk data real-time

2. Payment Gateway - Integrasi pembayaran digital

3. Admin Dashboard - Panel kontrol untuk penjual kantin

4. Push Notification - Notifikasi status pemesanan


SekolahFood membuktikan bahwa dengan tools modern seperti Flutter, siswa dapat mengembangkan aplikasi yang bermanfaat untuk komunitas mereka. Proyek ini tidak hanya menghasilkan produk fungsional tetapi juga memberikan pengalaman berharga dalam pengembangan perangkat lunak dan kewirausahaan digital. Saya Hafidz Amar Alfarizzie selaku pengembang utama website Sekolah-Food Terimakasih.

full website

download source code

"Dari kelas ke kode, dari ide ke aplikasi - SekolahFood adalah bukti bahwa teknologi dapat menyelesaikan masalah sehari-hari dengan cara yang kreatif dan efektif." -hafidzdev

0 Komentar:

Posting Komentar

Berlangganan Posting Komentar [Atom]

<< Beranda