{"id":4292,"date":"2020-08-21T08:38:08","date_gmt":"2020-08-21T08:38:08","guid":{"rendered":"https:\/\/hosteko.com\/blog\/?p=4292"},"modified":"2021-06-03T09:28:45","modified_gmt":"2021-06-03T09:28:45","slug":"membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird","status":"publish","type":"post","link":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird","title":{"rendered":"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird"},"content":{"rendered":"<h1>Pengertian Hummingbird<\/h1>\n<p>Pada bulan Desember 2018, Google sebagai pengembang Flutter mengumumkan versi yang dapat di jalankan sebagai sebuah web atau yang disebut dengan proyek Hummingbird. Pada acara <strong>Google IO 2019<\/strong>, diumumkan kabar baik tentang rilisnya Flutter Web versi<em> technical preview <\/em>dari project Flutter <em>Hummingbird<\/em>.<\/p>\n<p>Humminbird memiliki sebuah arsitektur seperti yang di bawah ini :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4312 aligncenter\" src=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Dart-framework-browser-framework.png\" alt=\"\" width=\"1137\" height=\"465\" srcset=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Dart-framework-browser-framework.png 1137w, https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Dart-framework-browser-framework-1024x419.png 1024w, https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Dart-framework-browser-framework-768x314.png 768w, https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Dart-framework-browser-framework-555x227.png 555w, https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Dart-framework-browser-framework-1110x454.png 1110w\" sizes=\"auto, (max-width: 1137px) 100vw, 1137px\" \/><\/p>\n<p>Bisa dilihat untuk menjalankan proyek Flutter sebagai sebuah website, dibutuhkan core atau inti dari Flutter untuk melakukan drawing pada lapisan teratas standar browser API. Menggunakan kombinasi dari DOM, Canvas, dan CSS, Flutter dapat menyediakan sebuah sistem yang memiliki kualitas tinggi,\u00a0<em><span class=\"c8\">portable<\/span><\/em><span class=\"c1\"> dan pengalaman pengguna pada setiap browser modern.<\/span><\/p>\n<p>Secara teknis, dibutuhkan kompiler khusus untuk melakukan kompilasi inti dari Flutter dan framework yang berada di dalam project ke dalam sebuah berkas tunggal yang dapat\u00a0<span class=\"c8\"><em>di-deploy<\/em>\u00a0<\/span><span class=\"c1\">ke web server apapun.<\/span><\/p>\n<h1><strong>Prinsip Kerja Flutter Web<\/strong><\/h1>\n<p>Prinsip kerja Flutter Mobile dan Desktop, yaitu :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4298 aligncenter\" src=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-desktop.png\" alt=\"\" width=\"675\" height=\"559\" srcset=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-desktop.png 675w, https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-desktop-555x460.png 555w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><\/p>\n<p>Secara garis besar hanya perlu fokus pada bagian paling atas saja. Bagian itu merupakan kode-kode program dari aplikasi. Kemudian yang di bawahnya merupakan <strong>Flutter Engine<\/strong> untuk membangun aplikasi kita.<\/p>\n<p>Jadi bisa disimpulkan :<\/p>\n<ol>\n<li>Ngoding menggunakan bahasa pemrograman Dart.<\/li>\n<li>Flutter akan build ke platform yang dituju menggunakan enginenya.<\/li>\n<\/ol>\n<p>Sedangkan tugas dari<strong> platform-spesific embeder<\/strong> yaitu membungkus aplikasi yang dibuat agar bisa dijalankan di berbagai platform seperti Linux, Windows, Mac OS, dan Google Chrome.<\/p>\n<p>Kasus di atas hanya fokus ke Flutter Desktop, gimana kalau Flutter Web mirip ?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4299 aligncenter\" src=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-web.png\" alt=\"\" width=\"675\" height=\"623\" srcset=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-web.png 675w, https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-web-555x512.png 555w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><\/p>\n<p>Flutter menggunakan <strong>Dart2js<\/strong> untuk mengcompile script yang dibuat di Flutter ke Javascript. Sehingga, Flutter dapat dijalankan pada browser.<\/p>\n<p>Alurnya seperti dibawah ini :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4300 aligncenter\" src=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Arsitektur-Flutter-Web.png\" alt=\"\" width=\"687\" height=\"627\" srcset=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Arsitektur-Flutter-Web.png 687w, https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/Arsitektur-Flutter-Web-555x507.png 555w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/p>\n<h1 id=\"h.fk0x5cvjaknw\" class=\"c35 c17\"><span class=\"c13\">Proyek Web Flutter<\/span><\/h1>\n<p><span class=\"c1\">Sebelum membuat proyek<\/span> <span class=\"c1\">perlu mengaktifkan terlebih dahulu fitur web untuk Flutter. Karena untuk saat ini, fitur tersebut masih dalam tahap pengembangan. Artinya perlu berpindah dari channel stable ke channel beta. Berikut langkah-langkahnya :<\/span><\/p>\n<ul>\n<li>Buka terminal atau command prompt dan jalankan perintah berikut untuk berpindah dari channel stable ke channel beta :<br \/>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b7685590511187-1\">1<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b7685590511187-1\" class=\"crayon-line\"><span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">flutter <\/span><span class=\"crayon-e\">channel <\/span><\/span><span class=\"crayon-v\" style=\"color: #000080;\">beta<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>Jika tidak terdapat eror, lanjutkan dengan perintah berikut untuk upgrade Flutter SDK :<br \/>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b768b310162699-1\">1<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b768b310162699-1\" class=\"crayon-line\"><span class=\"crayon-e\" style=\"color: #4ca1a1;\">flutter <\/span><span class=\"crayon-v\" style=\"color: #000080;\">upgrade<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>Setelah selesai bisa langsung mengaktifkan fitur dukungan web dengan perintah berikut :<br \/>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b768c360760343-1\">1<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b768c360760343-1\" class=\"crayon-line\"><span class=\"crayon-e\" style=\"color: #4ca1a1;\">flutter <\/span><span style=\"color: #000080;\"><span class=\"crayon-v\">config<\/span> <span class=\"crayon-o\">--<\/span><span class=\"crayon-v\">enable<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-v\">web<\/span><\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>Untuk memastikan apakah fitur dukungan web sudah aktif, jalankan perintah <em><strong>flutter devices<\/strong><\/em> pada terminal. Dapat melihat beberapa perangkat yang terkoneksi untuk digunakan seperti berikut :<br \/>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b768d196196181-1\">1\r\n2\r\n3\r\n4<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b768d196196181-1\" class=\"crayon-line\"><span style=\"color: #4ca1a1;\"><span class=\"crayon-cn\">2<\/span> <span class=\"crayon-e\">connected <\/span><\/span><span class=\"crayon-v\" style=\"color: #000080;\">device<\/span><span class=\"crayon-o\">:<\/span>\r\n\r\n<span class=\"crayon-e\" style=\"color: #4ca1a1;\">Web <\/span><span class=\"crayon-i\">Server<\/span> \u2022 <span class=\"crayon-v\">web<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">server<\/span> \u2022 <span class=\"crayon-v\" style=\"color: #000080;\">web<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">javascript<\/span> \u2022 <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Flutter <\/span><span class=\"crayon-e\">Tools<\/span><\/span>\r\n<span class=\"crayon-i\">Chrome<\/span><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span>\u2022 <span class=\"crayon-i\">chrome<\/span><span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span>\u2022 <span class=\"crayon-v\" style=\"color: #000080;\">web<\/span><span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">javascript<\/span> \u2022 <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Google <\/span><span class=\"crayon-i\" style=\"color: #000080;\">Chrome<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">81.0.4044.129<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<p>Sampai saat ini sudah bisa membuat proyek baru seperti biasanya dan menjalankannya langsung pada browser. Jalankan perintah berikut pada terminal untuk mencobanya :<\/p>\n<div id=\"crayon-5f3f1e22b768e411960004\" class=\"crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate\" data-settings=\" minimize scroll-mouseover\">\n<div class=\"crayon-plain-wrap\">\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b768e411960004-1\">1<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b768e411960004-1\" class=\"crayon-line\"><span class=\"crayon-e\" style=\"color: #4ca1a1;\">flutter <\/span><span class=\"crayon-v\">run<\/span> <span class=\"crayon-o\">-<\/span><span class=\"crayon-i\">d<\/span> <span class=\"crayon-v\" style=\"color: #000080;\">chrome<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Tunggu hingga proses kompilasi selesai dan jendela baru\u00a0<em><span class=\"c8\">chrome<\/span><\/em><span class=\"c1\">\u00a0terbuka. Kurang lebih akan seperti ini tampilannya:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4302 aligncenter\" src=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-web-init.gif\" alt=\"\" width=\"1198\" height=\"917\" \/><\/p>\n<h1 id=\"h.7kasfmllbmg8\" class=\"c35 c17\"><span class=\"c13\">Responsive Widget<\/span><\/h1>\n<p class=\"c2 c17\">Dalam mengembangkan sebuah website, salah satu yang perlu diperhitungkan adalah seberapa responsive website tersebut terhadap perubahan yang terjadi khususnya pada perubahan tampilan. Lalu bagaimana memenuhi kebutuhan tersebut pada proyek Flutter yang notabene. Serahkan semuanya pada widget <strong><span class=\"c4\">MediaQuery<\/span><\/strong>\u00a0dan\u00a0<strong><span class=\"c4\">LayoutBuilder<\/span><\/strong><span class=\"c1\">!<\/span><\/p>\n<p class=\"c2 c17\">Membuat kelas <span class=\"c8\">helper<\/span> yang akan menampung beberapa informasi terkait ukuran lebar browser seperti berikut :<\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b768f608225627-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre class=\"crayon-line\"><span class=\"crayon-i\">import<\/span> <span class=\"crayon-s\">'<span style=\"color: #ff0000;\">package:flutter\/material.dart<\/span>'<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-t\">\r\n<strong><span style=\"color: #000080;\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">ScreenHelper <\/span><span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">static <\/span><span style=\"color: #4ca1a1;\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">bool<\/span><\/strong> <span class=\"crayon-e\">isSmallScreen<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-v\">MediaQuery<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">of<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">size<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">width<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">600<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">static<\/span><\/span><span class=\"crayon-t\" style=\"color: #000080;\"> bool<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">isNormalScreen<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-v\">MediaQuery<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">of<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">size<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">width<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">600<\/span> <span class=\"crayon-o\">&amp;&amp;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">MediaQuery<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">of<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">size<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">width<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">900<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">static<\/span><\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\"> bool<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">isMediumScreen<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-v\">MediaQuery<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">of<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">size<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">width<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">900<\/span> <span class=\"crayon-o\">&amp;&amp;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">MediaQuery<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">of<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">size<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">width<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">1300<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">static<\/span><\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\"> bool<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">isLargeScreen<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-v\">MediaQuery<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">of<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">size<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">width<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">1300<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">static<\/span><\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\"> String<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">screenType<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\"><span style=\"color: #4ca1a1;\">BuildContex<\/span>t <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">if<\/span><\/strong> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">isSmallScreen<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span> <strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-s\" style=\"color: #ff0000;\">\"Small Screen\"<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">if<\/span><\/strong> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">isNormalScreen<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span> <strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-s\" style=\"color: #ff0000;\">\"Normal Screen\"<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">if<\/span><\/strong> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">isMediumScreen<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span> <strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-s\" style=\"color: #ff0000;\">\"Medium Screen\"<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">if<\/span> <\/strong><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">isLargeScreen<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span> <strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-s\" style=\"color: #ff0000;\">\"Large Screen\"<\/span><span class=\"crayon-sy\">;\r\n\r\n<\/span><span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-s\" style=\"color: #ff0000;\">\"undefined\"<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<pre id=\"crayon-5f3f1e22b768f608225627-1\" class=\"crayon-line\"><span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"c2 c17\">Jika diperhatikan setiap fungsi yang pada kode di atas terdapat penggunaan <strong><span class=\"c4\">MediaQuery<\/span><\/strong><span class=\"c1\">\u00a0untuk mendapatkan informasi ukuran lebar browser dan disesuaikan dengan ketentuan ukuran responsive.<\/span><\/p>\n<p class=\"c2 c17\">Membuat <span class=\"c8\">custom<\/span>\u00a0widget\u00a0<strong><span class=\"c4\">GridView<\/span><\/strong>\u00a0dimana\u00a0<em><strong><span class=\"c8 c4\">gridCount<\/span><\/strong><\/em>-nya<span class=\"c1\"> akan menyesuaikan masing-masing ukuran responsive. Dimulai dengan membuat berkas Dart baru dan lengkapi kodenya seperti di bawah ini :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\" style=\"height: 279px;\" width=\"641\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre data-line=\"crayon-5f3f1e22b7690535550080-2\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b7690535550080-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">class<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">GridViewResponsive<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">StatefulWidget<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span class=\"crayon-e\"><span style=\"color: #4ca1a1;\">_GridViewResponsiveState <\/span><\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">createState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span style=\"color: #4ca1a1;\"><span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-e\">_GridViewResponsiveState<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-t\">\r\n<strong><span style=\"color: #000080;\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">GridViewResponsive<\/span><span class=\"crayon-o\">&gt;<\/span><\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Container<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Fokus pada kelas\u00a0<strong><span class=\"c4\">GridViewResponsive<\/span><\/strong>, tambahkan beberapa properti ukuran dan daftar widget yang akan disematkan pada properti\u00a0<em><strong><span class=\"c8 c4\">children<\/span><\/strong><\/em>\u00a0dari widget\u00a0<span class=\"c4\"><strong>GridView<\/strong>\u00a0<\/span><span class=\"c1\">seperti berikut :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b7694614518665-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b7694614518665-1\" class=\"crayon-line\"><span style=\"color: #000080;\"><strong><span class=\"crayon-t\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">GridViewResponsive<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span class=\"crayon-e\"><span style=\"color: #4ca1a1;\">StatefulWidge<\/span>t<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">final<\/span><\/span><span class=\"crayon-v\" style=\"color: #000080;\"> List<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-v\">Widget<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">final<\/span><\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\"> int<\/span><\/strong> <span class=\"crayon-v\">smallScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">normalScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">mediumScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">largerScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">_GridViewResponsiveState <\/span><span class=\"crayon-e\">createState<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Maka akan mendapati eror di beberapa properti yang sudah ditambahkan. Mengatasinya dengan menambahkan <em><span class=\"c8\">constructor<\/span><\/em><span class=\"c1\"> untuk menetapkan nilai dari beberapa properti tersebut seperti berikut :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b7695167004926-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b7695167004926-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">class<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">GridViewResponsive<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">StatefulWidget<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">final<\/span><\/span><span class=\"crayon-v\" style=\"color: #000080;\"> List<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-v\">Widget<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">final<\/span><\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">smallScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">normalScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">mediumScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">largerScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">const<\/span><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">GridViewResponsive<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">Key <\/span><span class=\"crayon-v\">key<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">smallScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">normalScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">mediumScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">largerScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">required <\/span><span class=\"crayon-r\">this<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">)<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-o\">:<\/span> <strong><span class=\"crayon-r\">super<\/span><\/strong><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">key<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">key<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">_GridViewResponsiveState <\/span><span class=\"crayon-e\">createState<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Fokus pada kelas <strong><span class=\"c4\">_GridViewResponsiveState<\/span><\/strong>. Di sini akan menyesuaikan sedikit kode didalamnya dengan menggunakan widget <strong><span class=\"c4\">LayoutBuilder<\/span><\/strong>\u00a0dan\u00a0<strong><span class=\"c4\">GridView<\/span><\/strong> tentunya. Ubah isi dari fungsi <strong><span class=\"c4\">build()<\/span><\/strong><span class=\"c1\"> menjadi seperti berikut :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b7696623138680-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b7696623138680-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">class<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">GridViewResponsive<\/span><\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">LayoutBuilder<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">builder<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">gridCount<\/span> <span style=\"color: #4ca1a1;\"><span class=\"crayon-o\">=<\/span> <span class=\"crayon-cn\">2<\/span><\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-v\">GridView<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">count<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">crossAxisCount<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">gridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><em><strong><span class=\"c4\">GridCount<\/span><\/strong><\/em> masih bernilai statis yang artinya tidak dapat menyesuaikan perubahan yang berakibat tidak responsive-nya halaman. Lantas bagaimana menentukan nilainya agar bisa dinamis? Bisa menggunakan cara tradisional yaitu dengan menentukannya menggunakan <em><span class=\"c8\">if statement<\/span><\/em><span class=\"c1\"> seperti berikut :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b7697391377586-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b7697391377586-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">class<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">GridViewResponsive<\/span><span class=\"crayon-o\">&gt;<\/span><\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">LayoutBuilder<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">builder<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">gridCount<\/span> <span style=\"color: #4ca1a1;\"><span class=\"crayon-o\">=<\/span> <span class=\"crayon-cn\">2<\/span><\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">600<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">smallScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">2<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span> <strong><span class=\"crayon-st\">else<\/span> <span class=\"crayon-st\">if<\/span><\/strong> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">600<\/span> <span class=\"crayon-o\">&amp;&amp;<\/span> <span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">900<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">normalScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">4<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span> <strong><span class=\"crayon-st\">else<\/span> <span class=\"crayon-st\">if<\/span><\/strong> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">900<\/span> <span class=\"crayon-o\">&amp;&amp;<\/span> <span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">1200<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">mediumScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">6<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span> <strong><span class=\"crayon-st\">else<\/span><\/strong> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">largerScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">8<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-h\">\r\n\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-v\">GridView<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">count<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">crossAxisCount<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">gridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Berkas Dart yang sudah disesuaikan kode di dalamnya akan seperti di bawah ini :<\/p>\n<table class=\"crayon-table table table-bordered table-striped\" style=\"height: 1104px;\" width=\"706\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b7698789419315-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31\r\n32\r\n33\r\n34\r\n35\r\n36\r\n37\r\n38\r\n39\r\n40\r\n41\r\n42\r\n43\r\n44\r\n45<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b7698789419315-1\" class=\"crayon-line\"><span class=\"crayon-i\" style=\"color: #000080;\">import<\/span> <span class=\"crayon-s\" style=\"color: #ff0000;\">'package:flutter\/material.dart'<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-t\">\r\n\r\n<strong><span style=\"color: #000080;\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">GridViewResponsive<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">StatefulWidget<\/span> <span class=\"crayon-sy\">{<\/span><span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">final<\/span><\/span><span class=\"crayon-v\" style=\"color: #000080;\"> List<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-v\">Widget<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">final<\/span><\/span> <strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">smallScreenGridCount<\/span><span class=\"crayon-sy\">;\r\n<\/span><span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <span style=\"color: #000080;\"><strong><span class=\"crayon-t\">int<\/span><\/strong><\/span> <span class=\"crayon-v\">normalScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <span style=\"color: #000080;\"><strong><span class=\"crayon-t\">int<\/span><\/strong><\/span> <span class=\"crayon-v\">mediumScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\" style=\"color: #000080;\">final<\/span> <span style=\"color: #000080;\"><strong><span class=\"crayon-t\">int<\/span><\/strong><\/span> <span class=\"crayon-v\">largerScreenGridCount<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">const<\/span><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">GridViewResponsive<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">Key <\/span><span class=\"crayon-v\">key<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">smallScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">normalScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">mediumScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">largerScreenGridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">required <\/span><strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">)<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-o\">:<\/span> <strong><span class=\"crayon-r\">super<\/span><\/strong><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\" style=\"color: #4ca1a1;\">key<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">key<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState <\/span><span class=\"crayon-e\"><span style=\"color: #4ca1a1;\">createStat<\/span>e<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-t\">\r\n<strong><span style=\"color: #000080;\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_GridViewResponsiveState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">GridViewResponsive<\/span><span class=\"crayon-o\">&gt;<\/span><\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">LayoutBuilder<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">builder<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\">int<\/span><\/strong> <span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">2<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-st\">if<\/span> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">600<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">smallScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">2<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span> <strong><span class=\"crayon-st\">else<\/span> <span class=\"crayon-st\">if<\/span><\/strong> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">600<\/span> <span class=\"crayon-o\">&amp;&amp;<\/span> <span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">900<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">normalScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">4<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span> <strong><span class=\"crayon-st\">else<\/span> <span class=\"crayon-st\">if<\/span><\/strong> <span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">900<\/span> <span class=\"crayon-o\">&amp;&amp;<\/span> <span class=\"crayon-v\">constraints<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">maxWidth<\/span> <span class=\"crayon-o\">&lt;=<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">1200<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">mediumScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">6<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span> <strong><span class=\"crayon-st\">else<\/span><\/strong> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">gridCount<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-i\">largerScreenGridCount<\/span> <span class=\"crayon-sy\">?<\/span><span class=\"crayon-sy\">?<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">8<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-h\">\r\n \u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-v\">GridView<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">count<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">crossAxisCount<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">gridCount<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">widget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span><span class=\"crayon-sy\">\r\n}<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h1 id=\"h.pma8cgx90fhw\" class=\"c35 c17\">Menggunakan\u00a0<span class=\"c13\">Responsive Widget<\/span><\/h1>\n<p>Menyesuaikan terlebih dahulu kelas <em><strong><span class=\"c4\">main.dart<\/span><\/strong><\/em><span class=\"c1\"> menjadi seperti di bawah ini :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b769a217431644-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31\r\n32\r\n33\r\n34\r\n35\r\n36\r\n37\r\n38\r\n39\r\n40\r\n41\r\n42<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b769a217431644-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">void<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">main<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n  <span class=\"crayon-e\" style=\"color: #4ca1a1;\">runApp<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">MyApp<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;\r\n<\/span><span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-t\">\r\n<strong><span style=\"color: #000080;\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">MyApp<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">StatelessWidget<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<em><span class=\"crayon-c\">\/\/ This widget is the root of your application.<\/span><\/em>\r\n<span class=\"crayon-sy\">@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\"><span style=\"color: #4ca1a1;\">BuildContex<\/span>t <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0<\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">MaterialApp<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0 <\/span><span class=\"crayon-v\">title<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-s\" style=\"color: #ff6600;\">'Flutter Demo'<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0 <\/span><span class=\"crayon-v\">theme<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">ThemeData<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0 <\/span><em><span class=\"crayon-c\">\/\/ is not restarted.<\/span><\/em>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">primarySwatch<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">Colors<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">blue<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">visualDensity<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">VisualDensity<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">adaptivePlatformDensity<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0 <\/span><span class=\"crayon-v\">home<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">MyHomePage<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">title<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-s\" style=\"color: #ff6600;\">'Flutter Grid Responsive'<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n  <span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-t\">\r\n<strong><span style=\"color: #000080;\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">MyHomePage<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">StatefulWidget<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-e\" style=\"color: #4ca1a1;\">MyHomePage<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">{<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">Key <\/span><span class=\"crayon-v\">key<\/span><span class=\"crayon-sy\">,<\/span> <strong><span class=\"crayon-r\">this<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">title<\/span><span class=\"crayon-sy\">}<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">:<\/span> <strong><span class=\"crayon-r\">super<\/span><\/strong><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">key<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">key<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-m\">\r\n<span style=\"color: #000080;\">final<\/span><\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\"> String<\/span><\/strong> <span class=\"crayon-v\">title<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">_MyHomePageState <\/span><span class=\"crayon-e\">createState<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_MyHomePageState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-t\">\r\n<strong><span style=\"color: #000080;\">class<\/span><\/strong><\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_MyHomePageState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">MyHomePage<\/span><span class=\"crayon-o\">&gt;<\/span><\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n  <strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Scaffold<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">appBar<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">AppBar<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">title<\/span><span class=\"crayon-o\">:<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">Text<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\" style=\"color: #ff6600;\">'${widget.title} [${ScreenHelper.screenType(context)}]'<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0<\/span><span class=\"crayon-v\">body<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Container<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span> <em><span class=\"crayon-c\">\/\/ This trailing comma makes auto-formatting nicer for build methods.<\/span><\/em>\r\n  <span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Menambahkan data dan daftar widget yang akan ditampilkan pada <strong><span class=\"c4\">GridView<\/span><\/strong>. Fokus pada kelas\u00a0<strong><span class=\"c4\">_MyHomePageState<\/span><\/strong><span class=\"c1\"> kemudian tambahkan beberapa baris kode berikut :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b769b962744636-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b769b962744636-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">class<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_MyHomePageState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">MyHomePage<\/span><span class=\"crayon-o\">&gt;<\/span><\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0<\/span><span class=\"crayon-v\">List<\/span><span class=\"crayon-o\">&lt;<\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\">String<\/span><\/strong><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">raw<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-s\" style=\"color: #ff6600;\">\"d, i, c, o, d, i, n, g\"<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">toUpperCase<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">split<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\" style=\"color: #ff6600;\">\",\"<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-v\">List<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-v\">Widget<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">gridWidget<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-sy\">[<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Scaffold<\/span><span class=\"crayon-sy\">(<\/span> \u2026 <span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Setelah itu,\u00a0<em><span class=\"c8\">override<\/span><\/em>\u00a0fungsi\u00a0<strong><span class=\"c4\">initState<\/span><span class=\"c4\">()<\/span><\/strong>\u00a0untuk melakukan\u00a0<span class=\"c8\">generate<\/span><span class=\"c1\"> daftar widget berdasarkan data yang sudah ditambahkan seperti di bawah ini :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre data-line=\"crayon-5f3f1e22b769c102046577-2\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b769c102046577-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">class<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_MyHomePageState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">MyHomePage<\/span><span class=\"crayon-o\">&gt;<\/span><\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-v\">List<\/span><span class=\"crayon-o\">&lt;<\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\">String<\/span><\/strong><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">raw<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-s\" style=\"color: #ff6600;\">\"d, i, c, o, d, i, n, g\"<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">toUpperCase<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">split<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\" style=\"color: #ff6600;\">\",\"<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-v\">List<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-v\">Widget<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">gridWidget<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-sy\">[<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span class=\"crayon-t\">void<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">initState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-r\">super<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">initState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><span class=\"crayon-v\">List<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">generate<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-cn\" style=\"color: #4ca1a1;\">50<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">index<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">gridWidget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">add<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">Container<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">margin<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">EdgeInsets<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">all<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\" style=\"color: #4ca1a1;\">8<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">color<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">Colors<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">blue<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">child<\/span><\/strong><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Center<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">child<\/span><\/strong><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Text<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">raw<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">toList<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">shuffle<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">first<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">style<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">TextStyle<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">color<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">Colors<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">white<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">fontSize<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">30<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Scaffold<\/span><span class=\"crayon-sy\">(<\/span> <span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span> <span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;\r\n<\/span><span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ubah kode yang berada di dalam fungsi <strong><span class=\"c4\">build()<\/span><\/strong><span class=\"c1\"> dengan menggunakan custom widget yang sudah dibuat seperti berikut :<\/span><\/p>\n<table class=\"crayon-table table table-bordered table-striped\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<pre class=\"crayon-num\" data-line=\"crayon-5f3f1e22b769d946435338-1\">1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31\r\n32\r\n33\r\n34\r\n35\r\n36\r\n37\r\n38\r\n39\r\n40<\/pre>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<pre id=\"crayon-5f3f1e22b769d946435338-1\" class=\"crayon-line\"><strong><span class=\"crayon-t\" style=\"color: #000080;\">class<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">_MyHomePageState<\/span> <strong><span class=\"crayon-r\">extends<\/span><\/strong> <span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">State<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-e\">MyHomePage<\/span><span class=\"crayon-o\">&gt;<\/span><\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-v\">List<\/span><span class=\"crayon-o\">&lt;<\/span><strong><span class=\"crayon-t\" style=\"color: #000080;\">String<\/span><\/strong><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">raw<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-s\" style=\"color: #ff6600;\">\"d, i, c, o, d, i, n, g\"<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">toUpperCase<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">split<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\" style=\"color: #ff6600;\">\",\"<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-v\">List<\/span><span class=\"crayon-o\">&lt;<\/span><span class=\"crayon-v\">Widget<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">gridWidget<\/span> <span class=\"crayon-o\">=<\/span> <span class=\"crayon-sy\">[<\/span><span class=\"crayon-sy\">]<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span class=\"crayon-t\">void<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">initState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-r\">super<\/span><\/strong><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">initState<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><span class=\"crayon-v\">List<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">generate<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-cn\" style=\"color: #4ca1a1;\">50<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">index<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-o\">=<\/span><span class=\"crayon-o\">&gt;<\/span> <span class=\"crayon-v\">gridWidget<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">add<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">Container<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">margin<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">EdgeInsets<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">all<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\" style=\"color: #4ca1a1;\">8<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">color<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">Colors<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">blue<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">child<\/span><\/strong><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Center<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><strong><span class=\"crayon-r\">child<\/span><\/strong><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Text<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">raw<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">toList<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">shuffle<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">first<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">style<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">TextStyle<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-v\">color<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\">Colors<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-v\">white<\/span><span class=\"crayon-sy\">,<\/span> <span class=\"crayon-v\">fontSize<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-cn\" style=\"color: #4ca1a1;\">30<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">\r\n@<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">override<\/span>\r\n<span style=\"color: #4ca1a1;\"><span class=\"crayon-e\">Widget <\/span><span class=\"crayon-e\">build<\/span><\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">BuildContext <\/span><span class=\"crayon-v\">context<\/span><span class=\"crayon-sy\">)<\/span> <span class=\"crayon-sy\">{<\/span>\r\n<span class=\"crayon-h\"> \u00a0 <\/span><strong><span class=\"crayon-st\">return<\/span><\/strong> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Scaffold<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">appBar<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">AppBar<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">title<\/span><span class=\"crayon-o\">:<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">Text<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-s\" style=\"color: #ff6600;\">'${widget.title} [${ScreenHelper.screenType(context)}]'<\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,\r\n<\/span><span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">body<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\" style=\"color: #4ca1a1;\">Padding<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">padding<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-m\">const<\/span> <span class=\"crayon-v\">EdgeInsets<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\" style=\"color: #4ca1a1;\">all<\/span><span class=\"crayon-sy\">(<\/span><span class=\"crayon-cn\"><span style=\"color: #4ca1a1;\">8<\/span>.<span style=\"color: #4ca1a1;\">0<\/span><\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"color: #000000;\"><strong><span class=\"crayon-r\">child<\/span><\/strong><\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-e\">GridViewResponsive<\/span><span class=\"crayon-sy\">(<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-v\">children<\/span><span class=\"crayon-o\">:<\/span> <span class=\"crayon-v\" style=\"color: #4ca1a1;\">gridWidget<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\"> \u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span>\r\n<span class=\"crayon-h\">\u00a0\u00a0\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">,<\/span> <em><span class=\"crayon-c\">\/\/ This trailing comma makes auto-formatting nicer for build methods.<\/span><\/em>\r\n<span class=\"crayon-h\">\u00a0\u00a0 <\/span><span class=\"crayon-sy\">)<\/span><span class=\"crayon-sy\">;<\/span>\r\n<span class=\"crayon-sy\">}<\/span>\r\n<span class=\"crayon-sy\">}<\/span><\/pre>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Jika tidak terdapat eror saat kompilasi, tampilannya akan seperti di bawah ini :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4313 aligncenter\" src=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/flutter-web-result.gif\" alt=\"\" width=\"1600\" height=\"852\" \/><\/p>\n<h1>Kelebihan Menggunakan Flutter<\/h1>\n<h2>1. Kelebihan bagi developer<\/h2>\n<h3 style=\"padding-left: 40px;\">1. Fast Development<\/h3>\n<p style=\"padding-left: 40px;\">Flutter in-built fitur menggabungkan semua komponen untuk iOS dan Android untuk memberikan kinerja dasar\u00a0<em>native<\/em> untuk aplikasi.<\/p>\n<h3 style=\"padding-left: 40px;\">2. Single Codebase<\/h3>\n<p style=\"padding-left: 40px;\">Fitur basis kode tunggal membantu kita untuk membuat app dengan lebih cepat daripada pengembangan app\u00a0<em>native<\/em>\u00a0lainnya.<\/p>\n<p style=\"padding-left: 40px;\">Sekarang dapat menulis satu basis kode untuk Android dan iOS yang menghemat banyak waktu dalam pengelolaan kode.<\/p>\n<h3 style=\"padding-left: 40px;\">3. Hot Reload<\/h3>\n<p style=\"padding-left: 40px;\">Fitur ini membantu mendebug kode lebih cepat dibandingkan dengan pengembangan aplikasi native, jadi dapat terus menguji dan men-debugnya, dan membangun aplikasi yang bagus.<\/p>\n<h3 style=\"padding-left: 40px;\">4. Expressive UI<\/h3>\n<p style=\"padding-left: 40px;\">Membangun UI yang ekspresif dengan Flutter material desain\u00a0yang indah dan Widget Cupertino (rasa iOS), Rich Motion API, dan pengguliran alami yang halus.<\/p>\n<p style=\"padding-left: 40px;\">Fitur bawaannya membantu mengembangkan cepat dengan widget yang sepenuhnya dapat disesuaikan yang dapat digunakan kembali, jika memerlukan penyesuaian lebih lanjut di masa mendatang.<\/p>\n<h3 style=\"padding-left: 40px;\">5. Mudah dimengerti dan dipelajari<\/h3>\n<p style=\"padding-left: 40px;\">Bahkan bagi yang baru di Flutter bisa memahaminya dengan mudah. Jika sudah pernah menggunakan Java maka mungkin lebih mudah untuk memulai mengembangkan dengan Flutter.<\/p>\n<p style=\"padding-left: 40px;\">Flutter menggunakan Dart, sebuah bahasa pemrograman berorientasi objek baru (<span class=\"skimlinks-unlinked\">dart.dev<\/span>) yang mudah dipelajari dan dipahami. Dapat memulai pengaturan dan membuat aplikasi Flutter dari situs resmi Flutter (<span class=\"skimlinks-unlinked\">flutter.dev<\/span>)<\/p>\n<h3 style=\"padding-left: 40px;\">6. Komunitas yang berkembang<\/h3>\n<p style=\"padding-left: 40px;\">Flutter telah menjadi komunitas pengembangan yang paling berkembang di seluruh dunia dalam pengembangan aplikasi. Yang terus mendiskusikan fitur-fitur baru dan mengatasi bug saat mengembangkan aplikasi Flutter.<\/p>\n<p style=\"padding-left: 40px;\">Dapat memposting pertanyaan di komunitas Flutter dev dan akan mendapatkan saran cepat dari pengembang Flutter di seluruh dunia dalam waktu yang singkat.<\/p>\n<h2>2. Kelebihan bagi pelanggan dan bisnis<\/h2>\n<h3 style=\"padding-left: 40px;\">1. Fast Development<\/h3>\n<p style=\"padding-left: 40px;\">Sama seperti kelebihan flutter bagi pengembang atau developer app, pengembangan yang cepat juga merupakan kelebihan bagi pelanggan dan bisnis.<\/p>\n<h3 style=\"padding-left: 40px;\">2. Waktu dan Biaya<\/h3>\n<p style=\"padding-left: 40px;\">Yang tak kalah paling penting, Flutter akan menghemat biaya dan waktu. Tidak perlu tim pengembangan dan pengujian terpisah untuk platform iOS dan Android.<\/p>\n<h3 style=\"padding-left: 40px;\">3. Pengelolaan Aplikasi<\/h3>\n<p style=\"padding-left: 40px;\">Dalam Flutter semuanya adalah widget. Jadi mudah untuk menyesuaikan dan Mengelola aplikasi. misalnya jika kami memerlukan penyesuaian berdasarkan pasar, maka mudah dan cepat untuk memperbarui dan mengelola aplikasi.<\/p>\n<h3 style=\"padding-left: 40px;\">4. Pengelolaan Team<\/h3>\n<p style=\"padding-left: 40px;\">Dengan fitur bawaan pengembangan Flutter, hanya perlu satu tim pengembangan dan pengujian Flutter untuk mengembangkan dan mengelola aplikasi.<\/p>\n<h2>3. Perusahaan Besar Yang Menggunakan Flutter<\/h2>\n<h3 style=\"padding-left: 40px;\">1. Google<\/h3>\n<p style=\"padding-left: 40px;\"><strong>Google Ads<\/strong>\u00a0dan\u00a0<strong>Google Assistance<\/strong>\u00a0telah dikembangkan dengan Flutter yang menyediakan\u00a0<em>user experience<\/em>\u00a0mendasar.<\/p>\n<h3 style=\"padding-left: 40px;\">2. Alibaba<\/h3>\n<p style=\"padding-left: 40px;\">Alibaba adalah salah satu platform bisnis eCommerce terbesar. Alibaba telah menggunakan Flutter untuk pengembangan aplikasi mereka.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;4292&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;5&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.6&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;0&quot;,&quot;greet&quot;:&quot;Jadilah yang pertama untuk memberi nilai&quot;,&quot;legend&quot;:&quot;4.6\\\/5 - (5 votes)&quot;,&quot;size&quot;:&quot;22&quot;,&quot;title&quot;:&quot;Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird&quot;,&quot;width&quot;:&quot;101.2&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 101.2px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 22px; height: 22px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 17.6px;\">\n            4.6\/5 - (5 votes)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Pengertian Hummingbird Pada bulan Desember 2018, Google sebagai pengembang Flutter mengumumkan versi yang dapat di jalankan sebagai sebuah web atau yang disebut dengan proyek Hummingbird. Pada acara Google IO 2019, diumumkan kabar baik tentang rilisnya Flutter Web versi technical preview dari project Flutter Hummingbird. Humminbird memiliki sebuah arsitektur seperti yang di bawah ini : Bisa [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":6297,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":{"twitter_2392824914_2392824914":""},"rop_publish_now_history":[],"rop_publish_now_status":"pending","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[3],"tags":[1582,1580,1581,1585,1584,1583],"class_list":["post-4292","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-flutter-adalah","tag-flutter-web","tag-flutter-web-demo","tag-hummingbird-adalah","tag-hummingbird-flutter","tag-kelebihan-flutter"],"featured_image_src":{"landsacpe":["https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1-1140x445.png",1140,445,true],"list":["https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1-463x348.png",463,348,true],"medium":["https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1-300x143.png",300,143,true],"full":["https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png",1536,730,false]},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird - Hosteko Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird - Hosteko Blog\" \/>\n<meta property=\"og:description\" content=\"Pengertian Hummingbird Pada bulan Desember 2018, Google sebagai pengembang Flutter mengumumkan versi yang dapat di jalankan sebagai sebuah web atau yang disebut dengan proyek Hummingbird. Pada acara Google IO 2019, diumumkan kabar baik tentang rilisnya Flutter Web versi technical preview dari project Flutter Hummingbird. Humminbird memiliki sebuah arsitektur seperti yang di bawah ini : Bisa [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird\" \/>\n<meta property=\"og:site_name\" content=\"Hosteko Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-21T08:38:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-03T09:28:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Risa Y\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Risa Y\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#article\",\"isPartOf\":{\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird\"},\"author\":{\"name\":\"Risa Y\",\"@id\":\"https:\/\/hosteko.com\/blog\/#\/schema\/person\/c1d3dbd7c27bd3574f8c7042165a660b\"},\"headline\":\"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird\",\"datePublished\":\"2020-08-21T08:38:08+00:00\",\"dateModified\":\"2021-06-03T09:28:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird\"},\"wordCount\":1076,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/hosteko.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png\",\"keywords\":[\"flutter adalah\",\"flutter web\",\"flutter web demo\",\"hummingbird adalah\",\"hummingbird flutter\",\"kelebihan flutter\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird\",\"url\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird\",\"name\":\"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird - Hosteko Blog\",\"isPartOf\":{\"@id\":\"https:\/\/hosteko.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage\"},\"image\":{\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png\",\"datePublished\":\"2020-08-21T08:38:08+00:00\",\"dateModified\":\"2021-06-03T09:28:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage\",\"url\":\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png\",\"contentUrl\":\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png\",\"width\":1536,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hosteko.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hosteko.com\/blog\/#website\",\"url\":\"https:\/\/hosteko.com\/blog\/\",\"name\":\"Hosteko Blog\",\"description\":\"Berita &amp; Informasi Dunia IT\",\"publisher\":{\"@id\":\"https:\/\/hosteko.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/hosteko.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/hosteko.com\/blog\/#organization\",\"name\":\"HOSTEKO\",\"url\":\"https:\/\/hosteko.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hosteko.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2019\/04\/logo-hosteko.png\",\"contentUrl\":\"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2019\/04\/logo-hosteko.png\",\"width\":195,\"height\":57,\"caption\":\"HOSTEKO\"},\"image\":{\"@id\":\"https:\/\/hosteko.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/hosteko.com\/blog\/#\/schema\/person\/c1d3dbd7c27bd3574f8c7042165a660b\",\"name\":\"Risa Y\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hosteko.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7eac241dffbc583c56ba1ff19703f5623dab2b6a88bbb0583e815230564dac5e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7eac241dffbc583c56ba1ff19703f5623dab2b6a88bbb0583e815230564dac5e?s=96&d=mm&r=g\",\"caption\":\"Risa Y\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird - Hosteko Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird","og_locale":"en_US","og_type":"article","og_title":"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird - Hosteko Blog","og_description":"Pengertian Hummingbird Pada bulan Desember 2018, Google sebagai pengembang Flutter mengumumkan versi yang dapat di jalankan sebagai sebuah web atau yang disebut dengan proyek Hummingbird. Pada acara Google IO 2019, diumumkan kabar baik tentang rilisnya Flutter Web versi technical preview dari project Flutter Hummingbird. Humminbird memiliki sebuah arsitektur seperti yang di bawah ini : Bisa [&hellip;]","og_url":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird","og_site_name":"Hosteko Blog","article_published_time":"2020-08-21T08:38:08+00:00","article_modified_time":"2021-06-03T09:28:45+00:00","og_image":[{"width":1536,"height":730,"url":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png","type":"image\/png"}],"author":"Risa Y","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Risa Y","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#article","isPartOf":{"@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird"},"author":{"name":"Risa Y","@id":"https:\/\/hosteko.com\/blog\/#\/schema\/person\/c1d3dbd7c27bd3574f8c7042165a660b"},"headline":"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird","datePublished":"2020-08-21T08:38:08+00:00","dateModified":"2021-06-03T09:28:45+00:00","mainEntityOfPage":{"@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird"},"wordCount":1076,"commentCount":0,"publisher":{"@id":"https:\/\/hosteko.com\/blog\/#organization"},"image":{"@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage"},"thumbnailUrl":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png","keywords":["flutter adalah","flutter web","flutter web demo","hummingbird adalah","hummingbird flutter","kelebihan flutter"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird","url":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird","name":"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird - Hosteko Blog","isPartOf":{"@id":"https:\/\/hosteko.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage"},"image":{"@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage"},"thumbnailUrl":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png","datePublished":"2020-08-21T08:38:08+00:00","dateModified":"2021-06-03T09:28:45+00:00","breadcrumb":{"@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#primaryimage","url":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png","contentUrl":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png","width":1536,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/hosteko.com\/blog\/membuat-web-menggunakan-flutter-kenalan-yuk-dengan-hummingbird#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hosteko.com\/blog"},{"@type":"ListItem","position":2,"name":"Membuat Web Menggunakan Flutter? Kenalan Yuk Dengan Hummingbird"}]},{"@type":"WebSite","@id":"https:\/\/hosteko.com\/blog\/#website","url":"https:\/\/hosteko.com\/blog\/","name":"Hosteko Blog","description":"Berita &amp; Informasi Dunia IT","publisher":{"@id":"https:\/\/hosteko.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hosteko.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/hosteko.com\/blog\/#organization","name":"HOSTEKO","url":"https:\/\/hosteko.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hosteko.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2019\/04\/logo-hosteko.png","contentUrl":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2019\/04\/logo-hosteko.png","width":195,"height":57,"caption":"HOSTEKO"},"image":{"@id":"https:\/\/hosteko.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/hosteko.com\/blog\/#\/schema\/person\/c1d3dbd7c27bd3574f8c7042165a660b","name":"Risa Y","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hosteko.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7eac241dffbc583c56ba1ff19703f5623dab2b6a88bbb0583e815230564dac5e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7eac241dffbc583c56ba1ff19703f5623dab2b6a88bbb0583e815230564dac5e?s=96&d=mm&r=g","caption":"Risa Y"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/hosteko.com\/htk-blog\/wp-content\/uploads\/2020\/08\/FLUTTER-WEB-1536x730-1.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/posts\/4292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/comments?post=4292"}],"version-history":[{"count":1,"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/posts\/4292\/revisions"}],"predecessor-version":[{"id":11419,"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/posts\/4292\/revisions\/11419"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/media\/6297"}],"wp:attachment":[{"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/media?parent=4292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/categories?post=4292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hosteko.com\/blog\/wp-json\/wp\/v2\/tags?post=4292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}