Flutter Dasar

Pertemuan #3

Toko Kopi Haqiqi Cilebut, 20 Juli 2019

oleh : k4ilham & LT

Struktur Folder

pubspec.yaml

name: sikar
description: Sistem Informasi Karyawan.

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter


flutter:
  uses-material-design: true

  assets:
    - assets/images/

main.dart

import 'package:flutter/material.dart';

class Home extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: Colors.grey,
      body: new Center(
        child: Text("Home",style: TextStyle(color: Colors.white),),
      ),
    );
  }

}

app.dart

import 'package:flutter/material.dart';
import './sallary.dart' as widgetSallary;
import '../helper/config.dart' as appConfig;

class App extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: "SIKAR",
      home: widgetSallary.Sallary(),
    );
  }

}

home.dart

import 'package:flutter/material.dart';

class Home extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: Colors.grey,
      body: new Center(
        child: Text("Home",style: TextStyle(color: Colors.white),),
      ),
    );
  }

}

File Config

 

config.dart

import 'package:flutter/material.dart';

class strings{
  //STRING
  static const String app_name = "SIKAR 1.0";
  static const String app_title = "PT. meetAp Mobile Developer";

  static const String text_home = "Home";
  static const String text_absence = "Absence";
  static const String text_sallary = "Sallary";
  static const String text_profil = "Profile";
  static const String text_login = "Login";
}

class colors{
  //COLOR
  static const ColorPrimaryDark = Color.fromRGBO(58,66,86,1.0);
  static const ColorPrimary = Color.fromRGBO(64,75,96,.9);

  static const Color ColorTeks = Colors.white;
  static const Color ColorTeksError = Colors.red;

  static const Color ColorButton = Colors.green;
  static const Color ColorButtonGradient = Colors.greenAccent;
  static const Color ColorIcon = Colors.white;

}

class icons{
  //ICON
  static const IconData icon_app = Icons.android;
  static const IconData icon_home = Icons.home;
  static const IconData icon_absence = Icons.timelapse;
  static const IconData icon_sallary = Icons.monetization_on;
  static const IconData icon_profile = Icons.people_outline;
  static const IconData icon_back = Icons.arrow_back;
  static const IconData icon_login_email = Icons.alternate_email;
  static const IconData icon_login_password = Icons.lock;
}

class images{
  //IMAGES
  static const  String img_logo = "assets/images/logo.jpg";
  static const  String img_header = "assets/images/header.jpg";
  static const  String img_profil = "assets/images/profil.jpg";

  static const  String img_absen_hadir = "assets/images/icon_hadir.png";
  static const  String img_absen_libur = "assets/images/icon_libur.png";
  static const  String img_absen_cuti = "assets/images/icon_cuti.png";
  static const  String img_absen_ijin = "assets/images/icon_ijin.png";
  static const  String img_logo_alpa = "assets/images/icon_alpa.png";

}



app.dart

import 'package:flutter/material.dart';
import './sallary.dart' as widgetSallary;
import '../helper/config.dart' as appConfig;

class App extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: appConfig.strings.app_name,
      home: widgetSallary.Sallary(),
    );
  }

}

Bottom Nav Bar

app.dart

import 'package:flutter/material.dart';
import '../helper/config.dart' as appConfig;

import './home.dart' as widgetHome;
import './absence.dart' as widgetAbsence;
import './sallary.dart' as widgetSallary;
import './profile.dart' as widgetProfile;

class App extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: appConfig.strings.app_name,
      home: Layout(),
    );
  }

}

class Layout extends StatefulWidget{
  @override
  _LayoutState createState() => _LayoutState();
}

class _LayoutState extends State<Layout> with SingleTickerProviderStateMixin{

  TabController controller;

  @override

  void initState(){
    controller = new TabController(length: (3), vsync: this);
    super.initState();
  }

  Widget build(BuildContext context) {
    return new Scaffold(
      
      //HEADER
      appBar: new AppBar(
        backgroundColor: appConfig.colors.ColorPrimaryDark,
        title: new Text(appConfig.strings.app_title),
        leading: Container(
          margin: EdgeInsets.all(10.0),
          child: Image.asset(appConfig.images.img_logo),
        ),
      ),

      //CONTENT
      body: new TabBarView(
        controller: controller,
          children: <Widget>[
            new widgetHome.Home(),
            new widgetAbsence.Absence(),
            widgetSallary.Sallary(),
          ]
      ),
      
      //FLOATING ACTION BUTTON
      floatingActionButton: FloatingActionButton(
          onPressed: (){
            Navigator.pushNamed(context, '/urlProfile');
          },
        tooltip: appConfig.strings.text_profil,
        child: Icon(appConfig.icons.icon_profile),
        backgroundColor: appConfig.colors.ColorButton,
      ),

      //BOTTOM NAVIGATION BAR
      bottomNavigationBar: new Material(
        color: appConfig.colors.ColorPrimaryDark,
        child: TabBar(
          controller: controller,
            tabs: <Widget>[
              new Tab(
                icon: new Icon(appConfig.icons.icon_home),
                text: appConfig.strings.text_home,
              ),
              new Tab(
                icon: new Icon(appConfig.icons.icon_absence),
                text: appConfig.strings.text_absence,
              ),
              new Tab(
                icon: new Icon(appConfig.icons.icon_sallary),
                text: appConfig.strings.text_sallary,
              )
            ]
        ),
      ),

      
    );
  }
  
}

Navigator Route

app.dart

import 'package:flutter/material.dart';
import '../helper/config.dart' as appConfig;

import './home.dart' as widgetHome;
import './absence.dart' as widgetAbsence;
import './sallary.dart' as widgetSallary;
import './profile.dart' as widgetProfile;

class App extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: appConfig.strings.app_name,
      home: Layout(),
      //NAVIGATION ROUTE
      routes: <String,WidgetBuilder>{
        '/urlProfile' : (BuildContext context) => widgetProfile.Profile(),
      },
    );
  }

}

class Layout extends StatefulWidget{
  @override
  _LayoutState createState() => _LayoutState();
}

class _LayoutState extends State<Layout> with SingleTickerProviderStateMixin{

  TabController controller;

  @override

  void initState(){
    controller = new TabController(length: (3), vsync: this);
    super.initState();
  }

  Widget build(BuildContext context) {
    return new Scaffold(
      
      //HEADER
      appBar: new AppBar(
        backgroundColor: appConfig.colors.ColorPrimaryDark,
        title: new Text(appConfig.strings.app_title),
        leading: Container(
          margin: EdgeInsets.all(10.0),
          child: Image.asset(appConfig.images.img_logo),
        ),
      ),

      //CONTENT
      body: new TabBarView(
        controller: controller,
          children: <Widget>[
            new widgetHome.Home(),
            new widgetAbsence.Absence(),
            widgetSallary.Sallary(),
          ]
      ),
      
      //FLOATING ACTION BUTTON
      floatingActionButton: FloatingActionButton(
          onPressed: (){
            Navigator.pushNamed(context, '/urlProfile');
          },
        tooltip: appConfig.strings.text_profil,
        child: Icon(appConfig.icons.icon_profile),
        backgroundColor: appConfig.colors.ColorButton,
      ),

      //BOTTOM NAVIGATION BAR
      bottomNavigationBar: new Material(
        color: appConfig.colors.ColorPrimaryDark,
        child: TabBar(
          controller: controller,
            tabs: <Widget>[
              new Tab(
                icon: new Icon(appConfig.icons.icon_home),
                text: appConfig.strings.text_home,
              ),
              new Tab(
                icon: new Icon(appConfig.icons.icon_absence),
                text: appConfig.strings.text_absence,
              ),
              new Tab(
                icon: new Icon(appConfig.icons.icon_sallary),
                text: appConfig.strings.text_sallary,
              )
            ]
        ),
      ),

      
    );
  }
  
}

profile.dart

 

import 'package:flutter/material.dart';
import '../helper/config.dart' as appConfig;

class Profile extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      //HEADER
      appBar: new AppBar(
        title: new Text(appConfig.strings.text_profil),
        backgroundColor: appConfig.colors.ColorPrimary,
        //tombol back
        leading: InkWell(
          child: Icon(appConfig.icons.icon_back,
          color: appConfig.colors.ColorTeks,),
          onTap: (){
            Navigator.pop(context);
          },
        ),
      ),
      backgroundColor: appConfig.colors.ColorPrimaryDark,
      body: new Center(
        child: Text("Profile",style: TextStyle(color: Colors.white),),
      ),
    );
  }

}

Grid View

home.dart

import 'package:flutter/material.dart';
import '../helper/config.dart' as appConfig;

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: appConfig.colors.ColorPrimaryDark,
      body: GridView.count(
          crossAxisCount: 3,
        children: <Widget>[

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //PROFILE
          new customGrid(
            icon: appConfig.icons.icon_profile,
            iconTitle: appConfig.strings.text_profil,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //HOME
          new customGrid(
            icon: appConfig.icons.icon_home,
            iconTitle: appConfig.strings.text_home,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),

          //SALLARY
          new customGrid(
            icon: appConfig.icons.icon_sallary,
            iconTitle: appConfig.strings.text_sallary,
            iconColor: appConfig.colors.ColorIcon,
            textColor: appConfig.colors.ColorTeks,
            iconSize: 80.0,
            urlWidget: '/urlProfile',
          ),


        ],
      ),
    );
  }
}

class customGrid extends StatelessWidget {
  final IconData icon;
  final String iconTitle, urlWidget;
  final Color iconColor, textColor;
  final double iconSize;

  customGrid(
      {this.urlWidget,
      this.textColor,
      this.iconTitle,
      this.iconColor,
      this.iconSize,
      this.icon});

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.all(6.0),
      color: appConfig.colors.ColorPrimary,
      child: RaisedButton(
        color: appConfig.colors.ColorPrimary,
          child: Column(
            children: <Widget>[

              Icon(
                icon,
                size: iconSize,
                color: iconColor,
              ),

              Text(
                iconTitle,
                style: TextStyle(color: textColor),
              ),

            ],
          ),
          onPressed: (){
            Navigator.pushNamed(context, urlWidget);
          },
      ),
    );
  }
}

ListView Builder

absence.dart

import 'package:flutter/material.dart';
import '../helper/config.dart' as appConfig;

class Absence extends StatelessWidget {
  final data_absen_tgl = appConfig.datas.data_absen_tgl;
  final data_absen_status = appConfig.datas.data_absen_status;

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: appConfig.colors.ColorPrimaryDark,
      body: new Container(
        decoration: BoxDecoration(color: appConfig.colors.ColorPrimaryDark),
        child: ListView.builder(
            itemCount: data_absen_tgl.length,
            itemBuilder: (context, index) {
              final absen_tgl = data_absen_tgl[index];
              final absen_status = appConfig.absen.findAbsenStatus(data_absen_status[index]);
              final absen_icon = appConfig.absen.findAbsenIcon(data_absen_status[index]);
              
              
              return Container(
                margin: EdgeInsets.all(5.0),
                decoration: BoxDecoration(color: appConfig.colors.ColorPrimary),
                child: ListTile(
                  
                  leading: Image.asset(absen_icon),

                  trailing: Text(
                    absen_tgl,
                    style: TextStyle(
                      color: appConfig.colors.ColorTeks,
                      fontWeight: FontWeight.bold,
                      fontSize: 15.0,
                    ),
                  ),

                  title: Text(
                    absen_status,
                    style: TextStyle(
                      color: appConfig.colors.ColorTeks,
                      fontWeight: FontWeight.bold,
                      fontSize: 15.0,
                    ),
                  ),

                ),
              );
            }),
      ),
    );
  }
}

config.dart

import 'package:flutter/material.dart';

class strings{
  //STRING
  static const String app_name = "SIKAR 1.0";
  static const String app_title = "PT. meetAp Mobile Developer";

  static const String text_home = "Home";
  static const String text_absence = "Absence";
  static const String text_sallary = "Sallary";
  static const String text_profil = "Profile";
  static const String text_login = "Login";
}

class colors{
  //COLOR
  static const ColorPrimaryDark = Color.fromRGBO(58,66,86,1.0);
  static const ColorPrimary = Color.fromRGBO(64,75,96,.9);

//  static const ColorPrimaryDark = Colors.blueAccent;
//  static const ColorPrimary = Colors.grey;

  static const Color ColorTeks = Colors.white;
  static const Color ColorTeksError = Colors.red;

  static const Color ColorButton = Colors.green;
  static const Color ColorButtonGradient = Colors.greenAccent;
  static const Color ColorIcon = Colors.white;

}

class icons{
  //ICON
  static const IconData icon_app = Icons.android;
  static const IconData icon_home = Icons.home;
  static const IconData icon_absence = Icons.timelapse;
  static const IconData icon_sallary = Icons.monetization_on;
  static const IconData icon_profile = Icons.people_outline;
  static const IconData icon_back = Icons.arrow_back;
  static const IconData icon_login_email = Icons.alternate_email;
  static const IconData icon_login_password = Icons.lock;
}

class images{
  //IMAGES
  static const  String img_logo = "assets/images/logo.jpg";
  static const  String img_header = "assets/images/header.jpg";
  static const  String img_profil = "assets/images/profil.jpg";

  static const  String img_absen_hadir = "assets/images/icon_hadir.png";
  static const  String img_absen_libur = "assets/images/icon_libur.png";
  static const  String img_absen_cuti = "assets/images/icon_cuti.png";
  static const  String img_absen_ijin = "assets/images/icon_ijin.png";
  static const  String img_absen_alpa = "assets/images/icon_alpa.png";

}

class datas{

  static const List<String> data_absen_tgl =[
    '11 Jun 2019',
    '12 Jun 2019',
    '13 Jun 2019',
    '14 Jun 2019',
    '15 Jun 2019',
    '16 Jun 2019',
    '17 Jun 2019',
    '18 Jun 2019',
    '19 Jun 2019',
    '20 Jun 2019',
    '21 Jun 2019',
    '22 Jun 2019',
    '23 Jun 2019',
    '24 Jun 2019',
    '25 Jun 2019',
    '26 Jun 2019',
    '27 Jun 2019',
    '28 Jun 2019',
    '29 Jun 2019',
    '30 Jun 2019',
  ];

  static const List<String> data_absen_status = [
    '1',
    '1',
    '0',
    '1',
    '2',
    '2',
    '3',
    '3',
    '1',
    '1',
    '1',
    '2',
    '2',
    '1',
    '1',
    '4',
    '0',
    '1',
    '2',
    '2',
  ];

}

class absen{

  static String findAbsenStatus(String value){
    String result;

    if(value=='1'){
      result = "Hadir";
    }else if(value=='2'){
      result = "Libur";
    }else if(value=='3'){
      result = "Cuti";
    }else if(value=='4'){
      result = "Ijin";
    }else if(value=='0'){
      result = "Alpa";
    }

    return result;
  }

  static String findAbsenIcon(String value){
    String result;

    if(value=='1'){
      result = images.img_absen_hadir;
    }else if(value=='2'){
      result = images.img_absen_libur;
    }else if(value=='3'){
      result = images.img_absen_cuti;
    }else if(value=='4'){
      result = images.img_absen_ijin;
    }else if(value=='0'){
      result = images.img_absen_alpa;
    }

    return result;
  }



}



meetap flutter basic 03

By Maulana Ilham

meetap flutter basic 03

meetap_flutter_basic_03

  • 847