Halo teman – teman, pada artikel kali ini kita akan membahas mengenai pembuatan program yang akan menghasilkan faktorial dari sebuah bilangan pada bahasa Dart.
Dalam matematika, faktorial dari bilangan aslin 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
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.
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).
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.
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.
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 :
Nama constructor harus sama dengan nama class.
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.
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.
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.
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.
Setelah pada artikel sebelumnya kita sudah bisa membuat operasi delete, selanjutnya kita akan membuat operasi update pada aplikasi yang kita buat sebelumnya.
Pertama, buat screen untuk form update. Beri nama class nya UpdateScreen.
Sehingga kodenya menjadi seperti ini.
class UpdateScreen extends StatefulWidget {
final String documentId;
final String task;
final String description;
const UpdateScreen({Key key, this.documentId, this.task, this.description}) : super(key: key);
@override
_UpdateScreenState createState() => _UpdateScreenState();
}
class _UpdateScreenState extends State<UpdateScreen> {
@override
Widget build(BuildContext context) {
return Scaffold();
}
}
Jangan lupa untuk menambahkan property pada class UpdateScreen untuk menampung kiriman data dari layar sebelumnya.
Tambahkan parameter onTap pada widget ListTile. Berikan code untuk berpindah screen ke UpdateScreen.
Setelah pada artikel sebelumnya kita sudah bisa membuat operasi insert, selanjutnya kita akan membuat operasi delete pada aplikasi yang kita buat sebelumnya.
Pertama, jadikan Dismissible Widget sebagai parent widget dari ListTile. Berikan parameter key dengan isi documentID. Ganti warna background Container Widget dengan warns merah. Jangan lupa berikan callback onDismissed untuk handle widget ketika di swipe kesamping supaya melakukan proses delete pada Cloud Firestore.
Setelah kemarin kita berhasil menampilkan list data dari database yang sudah dibuat di Cloud Firestore, pada postingan ini kita akan membuat operasi insert ke dalam database Cloud Firestore.
Pada kesempatan kali ini, kita akan membuat aplikasi Todo List menggunakan Flutter dan Firebase Cloud Firestore. Khusus untuk post kali ini, kita akan membahas mengenai cara membaca data atau get data dari Firestore. Untuk proses Insert, Edit, dan Delete nya akan ada di post selanjutnya.
Sebelum lanjut pembuatan aplikasi nya, kita akan berkenalan dahulu dengan Cloud Firestore ini.
Cloud Firestore adalah database yang fleksibel dan skalabel untuk pengembangan seluler, web, dan server di Firebase dan Google Cloud Platform.
– Documentasi Firestore
Dengan kata lain, Firestore merupakan cloud database yang bermodelkan NoSQL. Firestore menyimpan data sebagai kumpulan dokumen. Sedangkan Realtime Database menyimpan data sebagai JSON. Cloud Firestore juga menampilkan kueri yang lebih kaya dan lebih cepat serta menskalakan lebih jauh daripada Realtime Database.
Pertama, buat project di Firebase terlebih dahulu.
Selanjutnya, buat inisialisasi projeknya dan berikan konfigurasi dasar seperti dibawah.
Selanjutnya, kita akan di bawa ke dashboard dari console Firebase. Tambahkan projek sesuai dengan platform yang akan dibuat. Untuk kali ini, kita akan memilih platform android.
Karena kita akan membuat aplikasi android, maka kita pilih platformnya. Dilangkah pertama ini, masukkan nama package dan juga nama aplikasinya (optional). Untuk sementara, kode sertifikat SHA-1 nya di kosongkan.
Di step kedua, download file JSON yang telah di generate oleh Firebase. File ini akan disimpan di folder android/app/ .
Di step ketiga akan di beritahu untuk menambahkan Firebase SDK. (step ini akan di bahas selanjutnya).
Selesaikan pendaftaran aplikasi androidnya.
Inisialisasi Cloud Firestore
Selanjutnya, pilih Cloud Firestore yang ada di sidebar console, lalu pilih Buat database. Atur Firestore ke dalam metode pengujian. Lokasi server bisa disesuaikan dengan preferensi.
Instalasi Plugin
Beralih ke projek flutternya yang sudah dibuat menggunakan Android Studio atau Visual Studio Code. Tambahkan file google-services.json yang telah kita download ke direktori project flutter nya. Masukkan ke android/app/
Tambahkan dependency google services di direktori android/build.gradle.
Selanjutnya pada teminal (sesuaikan dengan direktori project), ketikkan command dibawah.
flutter pub get
Selanjutnya, kita pindah ke Firestore di Console Firebase. Lalu pilih mulai koleksi. Isi nama koleksi sesuai dengan keinginan.
Lalu tambahkan dokumen pertamanya. Klik ID Otomatis untuk menggunakan id unik otomatis. Jangan lupa Tambahkan kolom beserta isinya untuk inisialisasi koleksi.
Kembali ke projek Flutternya. Bersihkan file lib/main.dart dari komentar supaya lebih rapih. Serta jadikan class _MyHomePageState menjadi seperti ini.
pada parameter body kita akan menggunakan WidgetFutureBuilder untuk mengambil data dari koleksi Firestore yang sudah kita buat. Parameter future nya diisikan code yang akan return hasil query dari Cloud Firestore.
Selanjutnya, tambahkan builder pada widget tersebut untuk membuat Loading CircleProgressIndicator dan juga ListView untuk menampung hasil query yang kita buat sebelumnya.