Percabanganadalah suatu pilihan atau opsi dimana terdapat kondisi tertentu yang harus dipenuhi oleh program untuk menjalankan perintah, jika pilihan yang menjadi syarat terpenuhi, maka pilihan dijalankan, jika tidak maka program tidak akan menjalankan perintah atau melewatinya dan melihat kondisi lainnya untuk dijalankan atau berhenti sama sekali.
Percabangan hanyalah sebuah istilah yang digunakan untuk menyebut alur program yang bercabang. Percabang juga dikenal dengan Control Flow, Struktur Kondisi, Struktur IF jadi sama saja jadi cara penulisan percabangan dalam bahasa dart dengan mengunakan kata kunci if , else, switch, case dan operator ternary.
Percabangan IF
Digunakan untuk percabangan tunggal maksudnya digunakan untuk menyeleksi logika yang menghasilkan nilai benar atau salah (true dan false) jadi percabangan if hanya memiliki satu opsi atau pilihan, artinya hanya dikerjakan jika kondisinya benar, tapi jika pilihan dengan syarat salah maka tidak terjadi apa-apa dalam flowchat menjelaskan bahwa jika variable kondisi yang nilainya true dengan syarat pilihan benar maka dijalankan proses jika tidak maka tidak terjadi apa-apa.
Percabangan IF / ELSE
Digunakan bila terdapat 2 pilihan maksudnya digunakan jika pilihan sebagai syarat benar maka itu yang dijalankan jika tidak maka perintah tersebuat bakalan dilewati untuk menjalankan kondisi yang salah. Jika kondisi variable berisi nilai true dengan syarat pilihan benar makan melakukan proses 1 jika salah maka melakukan proses 2.
Percabangan IF / ELSE / IF atau SWITCH / CASE
Digunakan bila terdapat lebih dari 3 pilihan atau lebih maksudnya jika pilihan sebagai syarat tidak ada di kondisi tersebut maka bakalan melewati kondisi tersebut untuk mencari kondisi yang benar jika tidak bakalan menjalankan kondisi yang salah.
Sebagai Contoh seperti ini
Diketahui nilai mahasiswa sebagai berikut :
Dengan memanfaatkan array, perulangan dan if buatlah program untuk mencari nilai huruf budi dan tono
Mengambil data dari internet diperlukan untuk sebagian besar aplikasi. Untungnya, Dart dan Flutter menyediakan alat, seperti paket http, untuk jenis pekerjaan ini.
Langkah-langkahnya sebagai berikut :
1. Tambahkan httppaket
The httppaket menyediakan cara paling sederhana untuk mengambil data dari internet.
Untuk menginstal httppaket, tambahkan ke bagian dependensi pubspec.yamlfile. Anda dapat menemukan versi terbaru dari httppaket pub.dev.
dependencies:http:<latest_version>
Impor paket http.
import'package:http/http.dart'ashttp;
Selain itu, di file AndroidManifest.xml Anda, tambahkan izin Internet.
<!-- Required to fetch data from the internet. --><uses-permissionandroid:name="android.permission.INTERNET"/>
2. Buat permintaan jaringan
Resep ini membahas cara mengambil album sampel dari JSONPlaceholder menggunakan http.get()metode tersebut.
The http.get()Metode mengembalikan Futureyang berisi Response.
Futureadalah kelas Dart inti untuk bekerja dengan operasi asinkron.Objek Future mewakili nilai potensial atau kesalahan yang akan tersedia di masa mendatang.
Thehttp.Responsekelas berisi data yang diterima dari panggilan http sukses.
3. Ubah respons menjadi objek Dart kustom
Meskipun mudah untuk membuat permintaan jaringan, bekerja dengan raw Future<http.Response>sangatlah tidak nyaman. Untuk membuat hidup Anda lebih mudah, ubah http.Responsemenjadi objek Dart.
Buat Albumkelas
Pertama, buat Albumkelas yang berisi data dari permintaan jaringan. Ini termasuk konstruktor pabrik yang membuat Albumdari JSON.
Mengonversi JSON dengan tangan hanyalah salah satu opsi. Untuk informasi lebih lanjut, lihat artikel lengkap tentang JSON dan serialisasi .
Sekarang, gunakan langkah-langkah berikut untuk memperbarui fetchAlbum() fungsi untuk mengembalikan Future<Album>:
Ubah isi respons menjadi JSON Mapdengan dart:convertpaket.
Jika server mengembalikan respons OK dengan kode status 200, maka ubah JSON Mapmenjadi Album menggunakan fromJson()metode pabrik.
Jika server tidak mengembalikan respons OK dengan kode status 200, lemparkan pengecualian. (Bahkan dalam kasus respons server "404 Not Found", berikan pengecualian. Jangan kembali null. Ini penting saat memeriksa data di snapshot, seperti yang ditunjukkan di bawah ini.)
import'dart:convert';Future<Album>fetchAlbum()async{finalresponse=awaithttp.get(Uri.https('jsonplaceholder.typicode.com','albums/1'));if(response.statusCode==200){// If the server did return a 200 OK response,// then parse the JSON.returnAlbum.fromJson(jsonDecode(response.body));}else{// If the server did not return a 200 OK response,// then throw an exception.throwException('Failed to load album');}}
Hore! Sekarang Anda memiliki fungsi yang mengambil album dari internet.
The initState()metode ini disebut persis sekali dan kemudian tidak pernah lagi. Jika Anda ingin memiliki opsi untuk memuat ulang API sebagai respons terhadap InheritedWidgetperubahan, masukkan panggilan ke dalam didChangeDependencies()metode. Lihat Stateuntuk lebih jelasnya.
Untuk menampilkan data di layar, gunakan FutureBuilderwidget. The FutureBuilderwidget dilengkapi dengan Flutter dan membuatnya mudah untuk bekerja dengan sumber data asynchronous.
Anda harus memberikan dua parameter:
Yang Futureingin Anda ajak kerja sama. Dalam hal ini, masa depan kembali dari fetchAlbum()fungsi tersebut.
Sebuah builderfungsi yang memberitahu Flutter apa untuk membuat, tergantung pada keadaan Future: pemuatan, sukses, atau kesalahan.
Perhatikan bahwa snapshot.hasDatahanya ditampilkan true jika snapshot berisi nilai data bukan null.
Karena fetchAlbumhanya dapat mengembalikan nilai bukan null, fungsi tersebut harus mengeluarkan pengecualian bahkan dalam kasus respons server "404 Not Found". Melemparkan pengecualian set yang snapshot.hasErroruntuk true yang dapat digunakan untuk menampilkan pesan kesalahan.
Jika tidak, spinner akan ditampilkan.
FutureBuilder<Album>(future:futureAlbum,builder:(context,snapshot){if(snapshot.hasData){returnText(snapshot.data!.title);}elseif(snapshot.hasError){returnText("${snapshot.error}");}// By default, show a loading spinner.returnCircularProgressIndicator();},);
Mengapa fetchAlbum () dipanggil initState ()?
Meskipun nyaman, tidak disarankan untuk melakukan panggilan API dalam suatu build()metode.
Flutter memanggilbuild()metode setiap kali perlu mengubah apa pun dalam tampilan, dan ini sering terjadi secara mengejutkan.Meninggalkanfetchpanggilan dalambuild()metodeAnda akanmembanjiri API dengan panggilan yang tidak perlu dan memperlambat aplikasi Anda.
Class adalah cetak biru atau blueprint dari object. Class digunakan hanya untuk membuat kerangka dasar. Yang akan kita pakai nantinya adalah hasil cetakan dari class, yakni object.
Sebagai analogi, class bisa diibaratkan dengan laptop atau notebook. Kita tahu bahwa laptop memiliki ciri-ciri seperti merk, memiliki keyboard, memiliki processor, dan beberapa ciri khas lain yang menyatakan sebuah benda tersebut adalah laptop. Selain memiliki ciri-ciri, sebuah laptop juga bisa dikenakan tindakan, seperti: menghidupkan laptop atau mematikan laptop.
Class dalam analogi ini adalah gambaran umum tentang sebuah benda. Di dalam pemrograman nantinya, contoh class seperti: koneksi_database dan profile_user.
Objek memiliki anggota yang terdiri dari fungsi dan data (masing-masing metode dan variabel instan)
. Saat Anda memanggil sebuah metode, Anda memanggilnya pada sebuah objek: metode tersebut memiliki akses ke fungsi-fungsi objek tersebut
dan data. Gunakan titik (.) untuk merujuk ke variabel atau metode instance:
Yukk sekarang aplikasikan nya di Flutter...
classMahasiswa {
int nim;
String nama;
String kelas;
String alamat;
int nohp;
int tahunlahir;
int umur;
Mahasiswa(int n, String m, String k, String a, int h, int t, int u) {
nim = n;
nama = m;
kelas = k;
alamat = a;
nohp = h;
tahunlahir = t;
umur = u;
}
}
Sudah tau dong pastinya Int itu apa?
yang belum tau ku kasih tau ya..jika kita ingin mengisi data kita dengan angka maka kita gunakan Int(Integer), sedangkan untuk huruf saja kita gunakan String.
Oke sekarang kita mengisi data tersebut dengan data yang sebenarnya.
voidmain() {
Mahasiswa b = Mahasiswa(181420170, 'Muhammad Anugerah Nurrobi', 'IF6MB',
'OPI Elite', 0896, 1997, 24);
b.nim = 181420170;
b.nama = 'Muhammad Anugerah Nurrobi';
b.kelas = 'IF6MB';
b.alamat = 'OPI Elite';
b.nohp = 089696939349;
b.tahunlahir = 1997;
b.umur = 24;
runApp(MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Mahasiswa --> Tugas 5'),
),
body: Center(
child: Text(
"NIM ${b.nim} \n NAMA ${b.nama} \n Kelas ${b.kelas} \n
Alamat ${b.alamat} \n No Hp ${b.nohp} \n
Tahun Lahir ${b.tahunlahir} \n Umur ${b.umur}")),
),
));
}
Data tersebut sudah terisi sesuai dengan data yang di inginkan...
coding lengkapnya seperti ini
import'package:flutter/material.dart';
classMahasiswa {
int nim;
String nama;
String kelas;
String alamat;
int nohp;
int tahunlahir;
int umur;
Mahasiswa(int n, String m, String k, String a, int h, int t, int u) {
nim = n;
nama = m;
kelas = k;
alamat = a;
nohp = h;
tahunlahir = t;
umur = u;
}
}
voidmain() {
Mahasiswa b = Mahasiswa(181420170, 'Muhammad Anugerah Nurrobi', 'IF6MB',
'OPI Elite', 0896, 1997, 24);
b.nim = 181420170;
b.nama = 'Muhammad Anugerah Nurrobi';
b.kelas = 'IF6MB';
b.alamat = 'OPI Elite';
b.nohp = 089696939349;
b.tahunlahir = 1997;
b.umur = 24;
runApp(MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Mahasiswa --> Tugas 5'),
),
body: Center(
child: Text(
"NIM ${b.nim} \n NAMA ${b.nama} \n Kelas ${b.kelas} \n
Alamat ${b.alamat} \n No Hp ${b.nohp} \n
Tahun Lahir ${b.tahunlahir} \n Umur ${b.umur}")),
),
));
}
Hasilnya
"teknik informatika universitas bina darma palembang"