Aplikasi Jadwal Pelajaran

Pembuatan Aplikasi Jadwal Pelajaran Menggunakan Flutter dengan Fitur CRUD

Dalam era digital saat ini, pemanfaatan teknologi dalam dunia pendidikan menjadi semakin penting. Salah satu bentuk implementasinya adalah pembuatan aplikasi jadwal pelajaran berbasis mobile. Aplikasi ini bertujuan untuk membantu siswa maupun guru dalam mengelola jadwal secara lebih efektif dan efisien. Pada artikel ini, akan dibahas pembuatan aplikasi jadwal pelajaran menggunakan Flutter dengan bahasa pemrograman Dart yang dilengkapi dengan fitur CRUD (Create, Read, Update, Delete).

Pengertian Flutter dan Dart

Flutter merupakan framework open-source yang dikembangkan oleh Google untuk membangun aplikasi mobile berbasis Android dan iOS dengan satu basis kode. Sementara itu, Dart adalah bahasa pemrograman yang digunakan dalam pengembangan aplikasi Flutter.

Konsep CRUD dalam Aplikasi

CRUD adalah singkatan dari:

  • Create (menambah data)
  • Read (menampilkan data)
  • Update (mengubah data)
  • Delete (menghapus data)

Dalam aplikasi jadwal pelajaran, CRUD digunakan untuk mengelola data jadwal seperti hari, mata pelajaran, dan jam.

Langkah-langkah Pembuatan Aplikasi

  1. Membuat project Flutter baru
  2. Mendesain tampilan aplikasi
  3. Membuat model data jadwal
  4. Mengimplementasikan fitur CRUD
  5. Menjalankan aplikasi

Contoh Implementasi Kode Flutter

Berikut adalah contoh sederhana kode aplikasi jadwal pelajaran dengan fitur CRUD:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class Jadwal {
  String hari;
  String mapel;
  String jam;

  Jadwal({required this.hari, required this.mapel, required this.jam});
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: JadwalPage(),
    );
  }
}

class JadwalPage extends StatefulWidget {
  @override
  _JadwalPageState createState() => _JadwalPageState();
}

class _JadwalPageState extends State<JadwalPage> {
  List<Jadwal> listJadwal = [];

  final hariController = TextEditingController();
  final mapelController = TextEditingController();
  final jamController = TextEditingController();

  void tambahJadwal() {
    setState(() {
      listJadwal.add(Jadwal(
        hari: hariController.text,
        mapel: mapelController.text,
        jam: jamController.text,
      ));
    });
    hariController.clear();
    mapelController.clear();
    jamController.clear();
  }

  void hapusJadwal(int index) {
    setState(() {
      listJadwal.removeAt(index);
    });
  }

  void editJadwal(int index) {
    hariController.text = listJadwal[index].hari;
    mapelController.text = listJadwal[index].mapel;
    jamController.text = listJadwal[index].jam;

    hapusJadwal(index);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Jadwal Pelajaran'),
      ),
      body: Padding(
        padding: EdgeInsets.all(16),
        child: Column(
          children: [
            TextField(
              controller: hariController,
              decoration: InputDecoration(labelText: 'Hari'),
            ),
            TextField(
              controller: mapelController,
              decoration: InputDecoration(labelText: 'Mata Pelajaran'),
            ),
            TextField(
              controller: jamController,
              decoration: InputDecoration(labelText: 'Jam'),
            ),
            SizedBox(height: 10),
            ElevatedButton(
              onPressed: tambahJadwal,
              child: Text('Tambah Jadwal'),
            ),
            Expanded(
              child: ListView.builder(
                itemCount: listJadwal.length,
                itemBuilder: (context, index) {
                  return ListTile(
                    title: Text(
                        '${listJadwal[index].hari} - ${listJadwal[index].mapel}'),
                    subtitle: Text(listJadwal[index].jam),
                    trailing: Row(
                      mainAxisSize: MainAxisSize.min,
                      children: [
                        IconButton(
                          icon: Icon(Icons.edit),
                          onPressed: () => editJadwal(index),
                        ),
                        IconButton(
                          icon: Icon(Icons.delete),
                          onPressed: () => hapusJadwal(index),
                        ),
                      ],
                    ),
                  );
                },
              ),
            )
          ],
        ),
      ),
    );
  }
}

Penjelasan Singkat Kode

  • Class Jadwal digunakan sebagai model data
  • List listJadwal digunakan untuk menyimpan data jadwal
  • Fungsi tambahJadwal() untuk menambah data
  • Fungsi hapusJadwal() untuk menghapus data
  • Fungsi editJadwal() untuk mengedit data
  • ListView.builder digunakan untuk menampilkan daftar jadwal

Kesimpulan

Pembuatan aplikasi jadwal pelajaran menggunakan Flutter dengan fitur CRUD dapat dilakukan dengan cukup sederhana. Dengan memanfaatkan konsep dasar pemrograman dan widget yang disediakan Flutter, aplikasi ini dapat dikembangkan lebih lanjut dengan fitur tambahan seperti penyimpanan database, notifikasi, dan tampilan yang lebih menarik.

Dengan adanya aplikasi ini, diharapkan pengguna dapat mengelola jadwal pelajaran dengan lebih praktis dan efisien.

Komentar

Postingan populer dari blog ini

BIKIN TAMPILAN IG SENDIRI PAKE FIGMA YANG KECE DAN KEREN

Bikin aplikasi pake konsep CRUD di zapp.run, GAMPANG BANGET!!