Flutterize : Program Faktorial menggunakan Dart

Flutterize : Program Faktorial menggunakan Dart

Halo teman – teman, pada artikel kali ini kita akan membahas mengenai pembuatan program yang akan menghasilkan faktorial dari sebuah bilangan pada bahasa Dart.

Dalam matematikafaktorial dari bilangan asli n yaitu hasil perkalian selang bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan dinamakan n faktorial.

Sebagai contoh, 4! yaitu mempunyai nilai 1×2×3×4 = 24.

Pada program Dart faktorial ini kitaakan mengambil bilangan bulat dan menampilkan faktorial dari bilangan tersebut dan menghitung nilai nya menggunakan looping.

Program

import 'dart:io';

void main() {
  int faktorial = 1;
  print("Masukkan bilangan bulat : ");
  int? n = int.parse(stdin.readLineSync()!);
  if (n < 0){
    print("Angka yang dimasukkan bukan bilangan bulat");
  } else {
    for (int i = 1; i <= n; i++){
      faktorial *= i;
    }
    print("Hasil faktorial dari " + n.toString() + " adalah " + faktorial.toString());
  }
}

Output nya adalah

Masukkan bilangan bulat : 
4
Hasil faktorial dari 4 adalah 24

Penjelasan

  • Yang pertama, kita import library io untuk mengambil input dan mengeluarkan output dari console atau command line.
import 'dart:io';
  • Lalu, kita buat programnya di dalam method main. Buat variabel penampung hasil faktorial nya. Selanjutnya, buat variabel penampung hasil input user dari console.
int? n = int.parse(stdin.readLineSync()!);
  • Kita cek terlebih dahulu apakan nilai yang dimasukkan oleh user lebih dari 0. Jika nilai n kurang dari 0 maka akan di keluarkan output gagal.
if (n <= 0){
   print("Angka yang dimasukkan bukan bilangan bulat atau adalah angka 0");
} else {
   // Program
}
  • Selanjutnya, di bagian blok else kita buat loopingnya terlebih dahulu.
for (int i = 1; i <= n; i++){
  // Operasi
}

blok looping tersebut akan dijalankan ketika nilai i masih kurang atau sama dengan dari nilai yang diinputkan oleh user.

Di dalam blok looping nya kita panggil variabel faktorial yang nilai nya akan dikalikan dengan variable i

for (int i = 1; i <= n; i++){
    faktorial *= i;
}

Sehingga hasilnya akan menjadi seperti ini.

n = 4
faktorial = 1 * 1 = 1
faktorial = 1 * 2 = 2
faktorial = 2 * 3 = 6
faktorial = 6 * 4 = 24

  • Terakhir, jangan lupa untuk mengeluarkan outputnya.
print("Hasil faktorial dari " + n.toString() + " adalah " + faktorial.toString());

Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.

Flutterize : Cara Manipulasi String pada Dart

Flutterize : Cara Manipulasi String pada Dart

Halo teman – teman, pada artikel kali ini kita akan membahas mengenai manipulasi variable tipe dengan tipe data String pada bahasa Dart.

String merupakan salah satu tipe data non – primitif yang digunakan untuk menampung kalimat, kata – kata, atau kumpulan karakter.

Terkadang, dalam dunia pemrograman ada kasus dimana kita harus melakukan penggabungan kalimat, pemisahan kalimat, merubah sebuah kalimat menjadi huruf kapital, dan lainnya. Operasi tersebut disebut dengan manipulasi String.

Pada bahasa pemrograman Dart sendiri disediakan beberapa fungsi yang digunakan untuk operasi manipulasi String. Kita akan bahas satu persatu.

1. Concat

Untuk menggabungkan beberapa kata atau Kalimat pada Dart, disebut dengan concatenation. Di Dart sendiri ada beberapa cara yang populer untuk melakukan concat.

// Menggunakan karakter (+) : 
String namaDepan = "Rafi";
String namaBelakang = "Izzatul";
String namaLengkap = namaDepan + " " + namaBelakang;
print(namaLengkap); 
// output : Rafi Izzatul
// Menggunakan interpolasi
String namaDepan = "Rafi";
String namaBelakang = "Izzatul";
String namaLengkap = "$namaDepan $namaBelakang";
print(namaLengkap); 
// output : Rafi Izzatul

2. Substring

Substring merupakan fungsi yang digunakan untuk mengambil beberapa karakter dari sebuah Kalimat atau kata. Fungsi ini memiliki 2 parameter, yaitu index awalan dan juga index akhir. Indexnya diambil sesuai dengan urutan karakter yang ada di Kalimat tersebut. (Karakter pertama berindex 0).

String namaLengkap = “Rafi Izzatul”;
String namaBelakang = namaLengkap.substring(5, 12);
print(namaBelakang); 
// output : Izzatul

3. Contains

Untuk mengecek Apakah sebuah Kalimat mengandung karakter yang kita tentukan atau tidak, kita bisa memakan fungsi contains. Fungsi ini akan mengembalikan atau menghasilkan boolean true jika Kalimat tersebut mengandung karakter yang kita inputkan. Sebaliknya, fungsi contains akan menghasilkan boolean false jika Kalimat tersebut tidak mengandung Kalimat yang kita inputkan.

String namaLengkap = "Rafi Izzatul";
print(namaLengkap.contains("afi")); 
// output : true

print(namaLengkap.contains("Faris")); 
// output : false

4. ToLowerCase

ToLowerCase adalah fungsi yang digunakan untuk merubah Kalimat atau karakter menjadi huruf kecil. 

String namaDepan = "RAFI";
print(namaDepan.toLowerCase()); 
// output : rafi

5. ToUpperCase

Kebalikan dari fungsi ToLowerCase, fungsi ToUpperCase adalah fungsi yang digunakan untuk merubah Kalimat atau karakter menjadi huruf kapital.

String namaBelakang = "izzatul";
print(namaBelakang.toUpperCase()); 
// output : IZZATUL 

6. ReplaceAll

Fungsi ReplaceAll merupakan fungsi yang digunakan untuk mengganti karakter yang ada di dalam String menjadi karakter baru yang kita inginkan. Fungsi ini mempunyai 2 parameter. Parameter yang pertama berisi karakter apa yang ingin kita ganti dalam sebuah string. Parameter yang kedua berisi karakter baru yang akan menggantikan karakter lama yang kita isi pada parameter pertama.

String greeting = "Hai";
print(greeting.replaceAll("a", "e")); 
// output : Hei

7. Length

Length adalah fungsi yang digunakan untuk menghitung berapa banyak jumlah karakter yang ada di dalam sebuah String.

String namaLengkap = "Rafi Izzatul";
print(namaLengkap.length); 
// output : 12

Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.

Flutterize : Pengenalan Class pada Dart

Flutterize : Pengenalan Class pada Dart

Halo teman teman, pada artikel kali ini kita akan membahas mengenai pengenalan class pada Dart.

Class adalah sebuah blueprint, class bertugas menampung method-method dan variabel variabel terkait. Contohnya tentang pembuatan skema untuk membuat sebuah bangunan. Bangunan adalah objek dan skema adalah cetak biru (class). Objek sendiri merupakan sebuah variabel, yang merupakan representasi atau perwujudan dari class. 

Dalam penulisan nama class harus diawali dengan huruf kapital. Untuk membuat private variable atau method yang ada di dalam class tersebut adalah dengan cara menambahkan prefix ‘_’ di bagian depan nama variable atau method terkait.

Salah satu anggota class yang sering dipakai adalah constructor. Constructor merupakan sebuah method dimana kita bisa memberi nilai awal untuk class variable. Constructor akan langsung dieksekusi ketika sebuah objek dibuat.

Aturan constructor :

  1. Nama constructor harus sama dengan nama class.
  2. constructor tidak memiliki return value.

Berikut adalah contoh pembuatan class pada bahasa Dart.

void main() {

/*
Pembuatan objek john dari class Person
*/
  var john = Person('john', 'wick');
/*
Pemanggilan method greeting dari objek john
*/
  print(john.greeting());
}

/*
Pembuatan class Person
*/
class Person {

/*
Deklarasi variable
*/
  String firstName;
  String lastName;
  final String _level = "A rank";
  
/*
Pembuatan constructor dari class Person
*/
  Person(this.firstName, this.lastName);
  
  String greeting(){
    return "Hello, ${_getFullName()}";
  }

  String _getFullName(){
    return "$firstName $lastName";
  }
}

Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.

Flutterize : Pengenalan Method pada Dart

Flutterize : Pengenalan Method pada Dart

Halo teman teman, pada artikel kali ini kita akan membahas mengenai pengenalan method atau function pada Dart.

Method adalah sebuah blok kode yang terdapat di dalam body class. Method dapat memecah kode menjadi sub-sub kode, sehingga kita bisa membuat program lebih efisien. Method dapat eksekusi berkali-kali dan biasanya method dibuat untuk menyelesaikan sebuah masalah yang khusus.

Jenis Method

Terdapat 2 jenis method di di dalam bahasa Dart. Method void dan non – void.

1. Method Void

Method void adalah method yang tidak mengembalikan nilai apapun setelah dieksekusi. Artinya, hanya melakukan sebuah proses.

2. Method Non – Void

Method non – void adalah method yang mengembalikan suatu nilai setelah dieksekusi.

Cara Penulisan

Ada beberapa cara penulisan method di dalam bahasa Dart. 

1. Penulisan method secara dinamis.

addOperation(int x, int y){
  return x + y;
}

addOperation(int x, int y){
  print(x + y);
}

/* 
Dart akan mendeteksi secara otomatis. Method yang memiliki return maka akan dianggap sebagai method non - void.
/*

2. Penulisan method void.

void addOperation(int x, int y){
  print(x + y);
}

/*
Urutan penulisannya adalah yang pertama keyword void nya. Yang kedua nama methodnya. Yang ketiga bagian paramaternya. Dan yang terakhir bagian isi blok kode nya. 
/*

3. Penulisan method non – void.

int addOperation(int x, int y){
  return x + y;
}

/*
Urutan penulisannya adalah yang pertama tipe data nilai yang akan dikembalikan. Yang kedua nama methodnya. Yang ketiga bagian parameternya. Dan yang terakhir bagian isi blok kode nya.
*/

Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.

Flutterize : Pengenalan Variable pada Dart

Flutterize : Pengenalan Variable pada Dart

Halo teman teman, pada artikel kali ini kita akan membahas mengenai pengenalan variabel pada Dart.

Variabel adalah tempat penampungan data pada program yang kita buat sesuai dengan tipe datanya. Variabel sendiri akan disimpan ke dalam memori ketika program dijalankan dan akan dihapus ketika program dihentikan.

Tipe data merupakan sebuah pengklasifikasian data berdasarkan jenis data tersebut. Ada banyak tipe data dalam flutter. Contohnya adalah String, tipe data yang menampung teks.

Tipe data dibagi menjadi 2 Jenis. Yaitu tipe data primitif dan non-primitif.

Tipe data primitif merupakan tipe data dasar yang tersedia secara langsung pada suatu bahasa pemrograman.

Beberapa tipe data pada Dart

1. Number

Contohnya adalah int dan double. Adalah tipe data yang merepresentasikan angka.

int age = 18;

2. Strings

Contohnya adalah String. Adalah tipe data yang merepresentasikan teks.

String name = "Faris";

3. Booleans

Contohnya adalah Boolean. Adalah tipe data yang merepresentasikan Boolean true dan false.

bool isMarried = false;

4. Lists

Contohnya adalah List. Adalah tipe data yang merepresentasikan banyak kumpulan data dengan tipe data yang ditentukan.

List<String> memberNameList = ["Faris", "Angga", "Budi"];

5. Maps

Contohnya adalah Map. Adalah tipe data yang merepresentasikan data dengan pasangan key dan value.

Map<String, dynamic> myIdentity = {
  "name" : "Faris",
  "age" : 18,
  "hobby" : "Membaca"
};

Penulisan variable pada Dart

Secara dinamis

Yaitu cara penulisan variable yang tidak mendefinisikan tipe datanya secara langsung. Tipe data ini akan dideteksi otomatis oleh Dart sesuai dengan tipe data dari isi variable tersebut.

var name = "Faris";

Secara eksplisit

Yaitu penulisan variable dengan tipe datanya, misalnya kita ingin membuat variable age yang harus bertipe angka/number.

int age = 18;

Final/const variable

Cara penulisan variabel yang digunakan untuk membuat sebuah data menjadi tidak bisa diubah lagi value nya.

final someFinalVariable = "This is final variable";
const someConstantVariable = "This is constant variable";

Oke teman teman, sekian dulu artikel kali ini. Sampai jumpa di artikel berikutnya.

Flutter Column Widget

Tutorial Flutter #4 – Column Widget

Rumahcoding.co.id – Pembahasan kali ini menyangkut salah satu Widget terbaik milik Flutter, yaitu Column Widget. Pengembangan aplikasi mobile dengan Flutter tidak terlepas dari widget-widget, maka dari itu penting buat siapa saja mempelajari Column Widget ini sebelum mengembangkan aplikasi Mobile dengan Flutter.

Apa itu Column Widget?

Column digunakan untuk menampilkan widget-widget secara vertical (dari atas ke bawah). Column merupakan salah satu widget yang sering digunakan programmer karena sebagian besar aplikasi membutuhkan direction vertical semisal untuk scroliing dan lain-lain

Constructor Column Widget

#1. mainAxixAlignment, berfungsi untuk mengontrol children widget yang ada di dalamnya dalam bentuk vertical.

Konsep mainAxixAlignment bisa Anda lihat melalui gambar ini:

Tutorial Flutter #4 - Column Widget

Sedangkan cara untuk menggunakan mainAxixAlignment cukup mudah, contohnya:

Column(mainAxixAlignment: MainAxixAlignment.start), Column(mainAxixAlignment: MainAxixAlignment.center),
Column(mainAxixAlignment: MainAxixAlignment.end),
Column(mainAxixAlignment: MainAxixAlignment.spaceAround),
Column(mainAxixAlignment: MainAxixAlignment.spaceBetween),
Column(mainAxixAlignment: MainAxixAlignment.Evenly),

Penggunaan Column Widget

Perhatikan gabar di bawah ini:

Tutorial Flutter #4 - Column Widget

Penjelasan:

  • Start digunakan jika Anda ingin menempatkan widget berada di sebelah kiri (left)
  • Center digunakan jika Anda ingin menempatkan widget berada di sebelah tengah (center)
  • End digunakan jika Anda ingin menempatkan widget berada di sebelah kanan (right)
  • spaceAround digunakan jika Anda ingin membuat ruang di antara children widget yang sama..
  • spaceBetween digunakan untuk membuat space di antara children widget yang sama.
  • spaceEvenly digunakan untuk membuat ruang yang sama dengan para children widget.

Baca Juga: Perbedaan Stateless dan Statefull Widget

#2. crossAxixAlignment, digunakan untuk mengontrol children yang ada di dalamnya dalam bentuk horizontal.

Contoh:

Column(crossAxixAlignment: CrossAxixAlignment.start),
Column(crossAxixAlignment: CrossAxixAlignment.center),
Column(crossAxixAlignment: CrossAxixAlignment.end),
Column(crossAxixAlignment: CrossAxixAlignment.spaceAround),
Column(crossAxixAlignment: CrossAxixAlignment.spaceBetween),
Column(crossAxixAlignment: CrossAxixAlignment.Evenly),

Penggunaan CrossAxixAlignment

Perhatikan gambar di bawah ini:

Tutorial Flutter #4 - Column Widget

#3. mainAxixSize, parameter ini dapat memberikan ruang pada Column, namun ruang yang digunakan merupakan ruang maksimal yang dapat Anda tentukan. Misalnya:

Column(mainAxixSize: MainAxixSize.max)

#4. textDirection. Parameter ini mirip dengan verticalDirection, tetapi sedikit berbeda di antara mereka. TextDirection digunakan dalam arah horizontal, tetapi verticalDirection digunakan dalam arah vertikal. Mereka berdua mengontrol arah awal gambar children widget.

Ada dua parament yang bisa digunakan, yaitu: ltr dan rtl.  Lrt berarti mengalirkan text dari kiri ke kanan, sebaliknya.

Contoh:

Column(textDirection: TextDirection.ltr),
Column(textDirection: TextDirection.rtl),

#5. textBaseline, ada dua parameter di textBaseline yaitu alphabetic, merupakan garis horizontal yang digunakan untuk menyelaraskan bagian bawah dalam bentuk alfhabet. Sedangkan yang kedua yaitu ideografik, yaitu garis horizontal yang digunakan untuk menyelaraskan bagian bawah widget dalam bentuk ideografik.

Contoh:

Column(textBaseline: TextBaseline.ideografik),
Column(textBaseline: TextBaseline.alphabetic),

#6. Children, berfungsi untuk memberikan ruang kepada widget-widget yang digunakan di dalam suatu column. Misalnya di dalam column tersebut kita bisa panggil widget Text, Input dll.

Contoh:

 children: <Widget>[
    Container( 
      height: 100,
      width: 100,
      color: Colors.blue,
    ),
    Container( 
      height: 100,
      width: 100,
      color: Colors.yellow,
    ),
    Container( 
      height: 100,
      width: 100,
      color: Colors.red,
    ),
  ],
), 

Contoh Program Menggunakan Column Widget

 import 'package:flutter/material.dart';

class ColumnExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          title: Text('Column Example'),
      ),
      body: Center(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          Container( 
            height: 100,
            width: 100,
            color: Colors.blue,
          ),
          Container( 
            height: 100,
            width: 100,
            color: Colors.yellow,
          ),
          Container( 
            height: 100,
            width: 100,
            color: Colors.red,
          ),
        ],
      ),
      ),
    );
  }
} 

Hasilnya:

flutter column widget

Demikianlah artikel mengenai Column WIdget ini. Semoga artikel ini dapat membantu Anda memahami Flutter dengan baik. Aamiin.

flutter 3 perbedaan stateless widget dan statefull widget

Tutorial Flutter #3 – Perbedaan Stateless Widget dan Statefull Widget

Rumahcoding.co.id – Perbedaan stateless widget dan statefull widget. Pada kesempatan kali ini kami akan membahasnya secara ringkat namun tetap berupaya agar mudah dipahami oleh Anda.

Biasanya sebuah class di Flutter akan mengextends kedua State ini, yaitu Stateless Widget dan Statefull Widget. Masing-masing dari keduanya punya tugas dan fungsi yang berda-beda. Beberapa dari developer Flutter sering memadukan di antara keduanya.

Nah, langsung saja kita bahas lebih detail tentang keduanya …

Apa itu Stateless Widget?

Stateless Widget adalah widget yang tidak akan pernah berubah. Stateless Widget  merupakan widget yang di-build hanya dengan konfigurasi yang telah diinisiasi sejak awal.

Misalnya kita membuat aplikasi berisi Text dengan kata “Hello World”. Kemudian aplikasi kita tidak punya fungsi untuk merubah kata tersebut. Dalam kasus  yang digunakan di sini adalah Stateless Widget.

Contoh:

 class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
                title: Text('Flutter Demo'),
            ),
            body: Center(
                child: Text(
                    '10',
                    style: TextStyle(
                        fontSize: 30
                    ),
                ),
            )
        );
    }
} 

Apa Itu Statefull Widget?

Merupakan Widget yang dapat berubah-ubah secara dinamis. Jika dianalogikan Statefull Widget seperti sebuah teko yang berisi air, namun air tersebut bisa berubah-ubah. Misalnya di hari pertama si teko isinya air putih, lalu hari kedua isinya air the dan hari ketiga isinya kopi.

Jadi apapun Widget yang dapat berubah-ubah bisa disebut dengan Statefull Widget. Statefull Widget inipun bisa dikombinasikan dengan Stateless Widget. Karena seringkali kami mendapati kebutuhan aplikasi yang mengharuskan kombinasi di antara keduanya.

Contoh penerapan pada aplikasi di Flutter misalnya kita membuat sebuah aplikasi dimana jika setiap kita memencet icon “+”. Angka yang ada di tengah tampilan akan bertambah satu.

Contoh:

 import 'package:flutter/material.dart';

class FirstApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
      return Scaffold(
          appBar: AppBar(
              title: Text('Flutter Demo'),
          ),
          body: Container(
              child: NumberScreen(),
          )
      );
  }
}

class NumberScreen extends StatefulWidget {
  @override
  _NumberScreenState createState() => _NumberScreenState();
}

class _NumberScreenState extends State<NumberScreen> {
  int number = 1;

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        Center(
            child: Text(
                this.number.toString(),
                style: TextStyle(
                    fontSize: 30
                ),
            ),
        ),
        Positioned(
            bottom: 50,
            right: 50,
            child: FloatingActionButton(
                child: Icon(Icons.add),
                onPressed: () {
                    setState(() {
                        this.number += 1;
                    });
                },
            ),
        )
      ],
    );
  }
}

Setelah Anda jalankan (running), maka hasilnya akan seperti ini:

Kesimpulan

Pada intinya Stateless Widget merupakan Widget yang tidak bisa berubah-ubah sedangkan Statefull Widget sebaliknya. Keduanya sangat mudah dipahami karena pengertiannya saling bertolak belakang. Penggunaan kedua widget ini sangat tergantung pada kebutuhan aplikasi. Dan seringnya, keduanya digunakan dalam satu file dart.

Semoga artikel ini bermanfaat. Salam #AnyoneCanCode

Tutorial Flutter #1 - Pengenalan dan Cara Install Flutter.jpeg

Tutorial Flutter #1 – Pengenalan dan Cara Install Flutter

Tutorial Flutter #1 - Pengenalan dan Cara Install Flutter.jpeg

Rumahcoding.co.idPengenalan dan Cara Install Flutter. Sebagai seorang pengembang aplikasi mobile, pastinya sudah memikirkan bagaimana cara membangun aplikasi mobile yang bisa digunakan di android dan ios dalam sekali kerja. Jika sampai saat ini masih memisahkan antara pengembangan android dan ios secara terpisah, itu artinya akan memakan banyak waktu, tenaga dan biaya untuk mengerjakannya.

Flutter hadir dengan kemampuan membangun aplikasi ios dan android dalam sekali pengembangan. Bayangkan saja dengan sekali membuat aplikasi maka sudah bisa diinstall di android maupun ios, keren!

Apa Itu Flutter?

Flutter merupakan sekumpulan SDK (Software Development Kit) untuk pengembangan aplikasi mobile yang dikembangkan oleh Google. Sama seperti react native maupun ionic, framework ini dapat digunakan untuk mengembangkan aplikasi mobile yang berjalan di ios maupun android. Bahasa yang digunakan oleh flutter merupakan Bahasa C, C++, Dart maupun Skia yang membuat framework buatan Google ini sangat menarik untuk kita pelajari.

Benefit Mengembangkan Aplikasi Mobile dengan Flutter

Ada banyak benefit yang bisa kita dapatkan apabila menggunakan flutter dalam mengembangkan aplikasi android maupun ios, di antaranya:

1. Fast Development

Flutter memiliki fitur widget-widget maupun class yang dapat membantu pengembangan aplikasi android maupun ios. Selain itu, flutter juga memiliki fitur hot reload yang dapat mempercepat compile / render perubahan-perubahan pada aplikasi yang kita kembangkan tanpa harus melakukan compile ulang.

2. Expressive and Flexsible UI

Flutter telah menyediakan banyak material UI yang berguna untuk membangun mobile app dengan canggih dan elegan. Material yang disediakan flutter sangat beragam dan lebih flexsible. Cukup dengan import satu material saja, maka Anda sudah bisa menggunakan banyak widget.

Selain itu, widget-widget yang disediakan flutter mudah dipelajari karena disediakan dokumentasi saat menggunakan widget tersebut.

3. Native Performance

Flutter memiliki kemampuan native performance, yaitu aplikasi yang Anda buat bisa berjalan di masing-masing di platform. Misalnya sintax scrooling di android dan ios berbeda, namun hanya dengan satu kali bekerja menggunakan flutter scrooling, Anda sudah bisa membuat system scrooling yang bisa bekerja dengan baik di android maupun ios.

4. Complete Documentation and Dependencies

Dokumentasi yang disediakan flutter sangat lengkap. Selain itu, depedensi yang Anda butuhkan sangat mudah diaplikasikan karena masing-masing depedensi ada tutorial dan cara menggunakannya. Hal ini membuat flutter semakin powerfull dalam membangun aplikasi mobile.

Tutorial Install Flutter

Flutter telah menyediakan dokumentasi bagaimana cara atau tutorial install flutter baik saat menggunakan windows, linux ataupun mac os.

1. Tutorial Install Flutter di Windows

Bagi Anda pengguna windows, Anda bisa mulai membaca tutorial install flutter di windows dengan mengunjungi link berikut ini:

https://flutter.dev/docs/get-started/install/windows

2. Tutorial Install Flutter di Mac OS

Bagi Anda pengguna Mac OS, Anda bisa mulai membaca tutorial install flutter di windows dengan mengunjungi link berikut ini:

https://flutter.dev/docs/get-started/install/macos

3. Tutorial Install Flutter di Linux

Bagi Anda pengguna Linux, Anda bisa mulai membaca tutorial install flutter di windows dengan mengunjungi link berikut ini:

https://flutter.dev/docs/get-started/install/linux

Kesimpulan

Demikianlah pembahasan pengenalan flutter, cara install flutter dan apa manfaat dari menggunakan flutter untuk membangun aplikasi mobile app. Semoga bermanfaat untuk pembaca sekalian. Aamiin.