Thursday, September 26, 2024

Copilot - Membuat Aplikasi Camera Detection menggunakan flutter

 


Langkah-langkah

  1. Persiapkan Lingkungan Flutter:

    • Pastikan Flutter sudah terinstal di sistem Anda. Jika belum, Anda bisa mengikuti panduan instalasi Flutter.
  2. Buat Proyek Flutter Baru:

    flutter create sku_detection_app
    cd sku_detection_app
    
  3. Tambahkan Dependensi: Tambahkan dependensi berikut di pubspec.yaml:

    dependencies:
      flutter:
        sdk: flutter
      camera: ^0.10.0
      tflite: ^1.1.2
    
  4. Siapkan Model TensorFlow Lite:

    • Anda perlu melatih model deteksi objek menggunakan TensorFlow dan mengonversinya ke format .tflite. Model ini harus dilatih untuk mengenali SKU produk permen anak-anak.
    • Setelah model siap, simpan file .tflite di folder assets proyek Anda dan tambahkan ke pubspec.yaml:
    assets:
      - assets/model.tflite
    
  5. Implementasi Kode: Berikut adalah contoh kode untuk aplikasi Anda:

    import 'package:flutter/material.dart';
    import 'package:camera/camera.dart';
    import 'package:tflite/tflite.dart';
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      final cameras = await availableCameras();
      final firstCamera = cameras.first;
    
      runApp(MaterialApp(
        home: CameraApp(camera: firstCamera),
      ));
    }
    
    class CameraApp extends StatefulWidget {
      final CameraDescription camera;
    
      const CameraApp({Key? key, required this.camera}) : super(key: key);
    
      @override
      _CameraAppState createState() => _CameraAppState();
    }
    
    class _CameraAppState extends State<CameraApp> {
      late CameraController _controller;
      late Future<void> _initializeControllerFuture;
    
      @override
      void initState() {
        super.initState();
        _controller = CameraController(
          widget.camera,
          ResolutionPreset.high,
        );
        _initializeControllerFuture = _controller.initialize();
        loadModel();
      }
    
      Future<void> loadModel() async {
        String? res = await Tflite.loadModel(
          model: "assets/model.tflite",
        );
        print(res);
      }
    
      @override
      void dispose() {
        _controller.dispose();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(title: Text('SKU Detection')),
          body: FutureBuilder<void>(
            future: _initializeControllerFuture,
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.done) {
                return CameraPreview(_controller);
              } else {
                return Center(child: CircularProgressIndicator());
              }
            },
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: () async {
              await _initializeControllerFuture;
              final image = await _controller.takePicture();
              // Proses gambar untuk deteksi SKU di sini
            },
            child: Icon(Icons.camera),
          ),
        );
      }
    }
    

Penjelasan Kode

  • Camera Setup: Menggunakan paket camera untuk mengakses kamera perangkat.
  • Model Loading: Memuat model TensorFlow Lite yang telah Anda siapkan.
  • Camera Preview: Menampilkan tampilan kamera dan memungkinkan pengguna untuk mengambil gambar.

Selanjutnya

  • Anda perlu menambahkan logika untuk memproses gambar yang diambil dan menggunakan model untuk mendeteksi SKU produk. Anda bisa menggunakan fungsi Tflite.detectObjectOnImage untuk melakukan deteksi.

Jika ada pertanyaan lebih lanjut atau butuh bantuan tambahan, silakan beri tahu! 😊

Copilot - Membuat Aplikasi Android Flutter (Flashscreen,Login, Register, HomePage)



1. Setup Flutter Project

Buat proyek Flutter baru:

flutter create my_app
cd my_app

2. Tambahkan Dependensi

Tambahkan dependensi di pubspec.yaml untuk SQLite dan provider:

dependencies:
  flutter:
    sdk: flutter
  sqflite: ^2.0.0
  path_provider: ^2.0.0
  provider: ^6.0.0

Jalankan flutter pub get untuk menginstal dependensi.

3. Buat Model Database

Buat file database_helper.dart untuk mengelola database SQLite:

import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

class DatabaseHelper {
  static final DatabaseHelper _instance = DatabaseHelper._internal();
  factory DatabaseHelper() => _instance;

  static Database? _database;

  DatabaseHelper._internal();

  Future<Database> get database async {
    if (_database != null) return _database!;
    _database = await _initDB();
    return _database!;
  }

  Future<Database> _initDB() async {
    String path = join(await getDatabasesPath(), 'user.db');
    return await openDatabase(path, version: 1, onCreate: _createDB);
  }

  Future _createDB(Database db, int version) async {
    await db.execute('''
      CREATE TABLE users(
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        username TEXT,
        password TEXT
      )
    ''');
  }

  Future<void> insertUser(String username, String password) async {
    final db = await database;
    await db.insert('users', {'username': username, 'password': password});
  }

  Future<List<Map<String, dynamic>>> getUsers() async {
    final db = await database;
    return await db.query('users');
  }
}

4. Buat Halaman Splash Screen

Buat file splash_screen.dart:

import 'package:flutter/material.dart';
import 'login_screen.dart';

class SplashScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Future.delayed(Duration(seconds: 3), () {
      Navigator.of(context).pushReplacement(
        MaterialPageRoute(builder: (context) => LoginScreen()),
      );
    });

    return Scaffold(
      body: Center(
        child: Text('Welcome to My App', style: TextStyle(fontSize: 24)),
      ),
    );
  }
}

5. Buat Halaman Login dan Register

Buat file login_screen.dart:

import 'package:flutter/material.dart';
import 'database_helper.dart';

class LoginScreen extends StatelessWidget {
  final TextEditingController usernameController = TextEditingController();
  final TextEditingController passwordController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Login')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(controller: usernameController, decoration: InputDecoration(labelText: 'Username')),
            TextField(controller: passwordController, decoration: InputDecoration(labelText: 'Password'), obscureText: true),
            ElevatedButton(
              onPressed: () async {
                // Implement login logic
              },
              child: Text('Login'),
            ),
            TextButton(
              onPressed: () {
                // Navigate to register screen
              },
              child: Text('Register'),
            ),
          ],
        ),
      ),
    );
  }
}

6. Buat Halaman Home

Buat file home_screen.dart:

import 'package:flutter/material.dart';

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Home')),
      body: Center(child: Text('Welcome to Home Page')),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          // Implement logout logic
        },
        child: Icon(Icons.logout),
      ),
    );
  }
}

7. Update main.dart

Akhirnya, update main.dart untuk memulai aplikasi:

import 'package:flutter/material.dart';
import 'splash_screen.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter App',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: SplashScreen(),
    );
  }
}

8. Tampilan Menarik dan Colorful

Anda bisa menambahkan lebih banyak warna dan gaya menggunakan ThemeData dan widget seperti Container, Card, dan ListTile untuk membuat tampilan lebih menarik.

9. Jalankan Aplikasi

Jalankan aplikasi dengan perintah:

flutter run 

Ini adalah kerangka dasar untuk aplikasi Anda. Anda bisa menambahkan logika untuk login, register, dan logout sesuai kebutuhan. Jika ada pertanyaan lebih lanjut atau butuh bantuan, silakan tanya! 😊 


Tuesday, February 23, 2021

Query Sql Server for check blocking session

Happy Coding Guys, 

Semoga masih semangat coding ya. 

Hari ini saya akan share query yang bisa mencari id session blocking pada Sql server. 

Session blocking dapat menyebabkan perform sql menjadi lebih lambat dari biasanya. 

Untuk querynya ada dibawah ini : 

SELECT wt.session_id, ot.task_state, wt.wait_type, wt.wait_duration_ms, wt.blocking_session_id, wt.resource_description, es.[host_name], es.[program_name] 

FROM sys.dm_os_waiting_tasks wt 

INNER JOIN sys.dm_os_tasks ot ON ot.task_address = wt.waiting_task_address 

INNER JOIN sys.dm_exec_sessions es ON es.session_id = wt.session_id

WHERE es.is_user_process = 1

 

Thanks Semoga bermanfaat 

#sqlserver 

#sql 

#coding

Sunday, February 21, 2021

Penyebab Gangguan Network Indonesia Pada 19 Feb 2021


 

Pada Tanggal 19 Februari 2021 sekitar pukul 10.15 WIB telah terjadi gangguan pada network internasional yang berakibat gangguan berupa ketidakstabilan dan penurunan kualitas link akses dari network ke arah luar Indonesia dan sebaliknya. 

Gangguan ini disebabkan karena putusnya jaringan submarine fiber B3JS (Jakarta-Bangka-Bintan-Batam-Singapore) yang menjadi backbone konektivitas internasional bagi banyak ISP di Indonesia.

Beberapa efek dari gangguan tersebut adalah:

  • Website lambat / gagal diakses dari luar negeri;
  • Email mengalami delay baik dari dan ke mail server yang berada di luar negeri;
  • Akses ke HTTPS terganggu;
  • dll

 

 

Physical Inventory By Inventory Dimension Timeout Session

 

 
How fixing Timeout Session Report in Dynamics Ax 2012
 
You can access report Phy Inv in Inventory Modul Dynamics  Ax 2012.
Location for this , 
Company Unit/Inventory and warehouse management/Area page/Reports/Status/PhysicalInventory

Check classes : 
 InventDimPhysDP  , method ProsessReport inventSumDateEngine.calcData();

You can enhancement this method for perform report.

Thanks
 
 
 
 
 
 
 
 
 

Copilot - Membuat Aplikasi Camera Detection menggunakan flutter

  Langkah-langkah Persiapkan Lingkungan Flutter : Pastikan Flutter sudah terinstal di sistem Anda. Jika belum, Anda bisa mengikuti panduan i...