{"id":313,"date":"2025-10-08T11:46:11","date_gmt":"2025-10-08T11:46:11","guid":{"rendered":"https:\/\/devia.infokand23.my.id\/laprak1\/?p=313"},"modified":"2025-10-26T03:52:27","modified_gmt":"2025-10-26T03:52:27","slug":"laporan-praktikum-alikasi-mobile-4","status":"publish","type":"post","link":"https:\/\/devia.infokand23.my.id\/laprak1\/laporan-praktikum-alikasi-mobile-4\/","title":{"rendered":"LAPORAN PRAKTIKUM ALIKASI MOBILE 4"},"content":{"rendered":"\n<p class=\"has-text-align-center\"><strong>Navigation &amp; Routing : Multiple Screen<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background-color has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-16c0760e24b11d67e5dafb4871ba7d71\" style=\"padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-97875daf wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group alignwide is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-256aec57 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-group is-layout-flex wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flex wp-block-group-is-layout-flex\"><nav class=\"is-responsive items-justified-right wp-block-navigation is-content-justification-right is-layout-flex wp-container-core-navigation-is-layout-3817c3ed wp-block-navigation-is-layout-flex\" aria-label=\"Navigation\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on-async--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><rect x=\"4\" y=\"7.5\" width=\"16\" height=\"1.5\" \/><rect x=\"4\" y=\"15\" width=\"16\" height=\"1.5\" \/><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-1\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on-async--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on-async--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-1-content\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>\n\n\n<a href=\"https:\/\/devia.infokand23.my.id\/about.html\" target=\"_blank\">Document<\/a>\n\n\n\n<a href=\"https:\/\/devia.infokand23.my.id\/index.html\" target=\"_blank\">Home<\/a>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<p><strong>Tujuan<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Membuat aplikasi yang dapat berpindah dari halaman satu ke halaman lain<\/li>\n\n\n\n<li class=\"has-small-font-size\">Membuat aplikasi yang dapat mengirim dan menerima data dari halaman lain<\/li>\n<\/ul>\n\n\n\n<p><strong>Alat<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size\">Computer \/ laptop yang telah terinstall lingkungan Flutter development<\/p>\n\n\n\n<p><strong>Teori<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size\"><strong>Navigation dan Routing Flutter<\/strong> : Navigation merupakan proses berpindah dari satu halaman (screen\/page) ke halaman lain dalam aplikasi Flutter, misalnya perpindahan dari halaman login ke halaman utama, atau dari halaman produk ke halaman detail produk. Navigasi pada Flutter menggunakan widget Navigator yang bekerja dengan konsep stack.<\/p>\n\n\n\n<p class=\"has-small-font-size\"><strong>Routing<\/strong> : merupakan sistem untuk mendefinisikan dan mengelola jalur halaman (routes) dalam aplikasi Flutter agar dapat memanggil halaman menggunakan nama route tanpa membuat instance baru setiap kali.<\/p>\n\n\n\n<p class=\"has-small-font-size\"><strong>Jenis &#8211; jenis Routing pada Flutter<\/strong> : <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Navigator (Anonymous Routes)<\/li>\n\n\n\n<li class=\"has-small-font-size\">Named Routes<\/li>\n\n\n\n<li class=\"has-small-font-size\">Generated Routes<\/li>\n\n\n\n<li class=\"has-small-font-size\">Router \/ Navigator 2.0<\/li>\n<\/ul>\n\n\n\n<p><strong>Langkah &#8211; Langkah Kerja<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Multiple Screen<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Buat file dart baru.<\/li>\n\n\n\n<li class=\"has-small-font-size\">Buat class menggunakan StatelessWidget dengan nama\u00a0<code>MyNav<\/code>.<\/li>\n\n\n\n<li class=\"has-small-font-size\">Inisialisasi route pada\u00a0<code>MaterialApp<\/code>.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-small-font-size\">Contoh Kode Program Lengkap Navigation &amp; Routing:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code> import 'package:flutter\/material.dart';\n\nvoid main() => runApp(const MyNav());\n\nclass MyNav extends StatelessWidget {\n  const MyNav({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      initialRoute: '\/',\n      routes: {\n        '\/': (context) => const Product(),\n        '\/product_detail': (context) => const ProductDetail(),\n      },\n    );\n  }\n}\n\nclass Product extends StatelessWidget {\n  const Product({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text('Product')),\n      body: Center(\n        child: ElevatedButton(\n          onPressed: () {\n            Navigator.pushNamed(context, '\/product_detail');\n          },\n          child: const Text('Go to Product Detail'),\n        ),\n      ),\n    );\n  }\n}\n\nclass ProductDetail extends StatelessWidget {\n  const ProductDetail({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text('Product Detail')),\n      body: Center(\n        child: ElevatedButton(\n          onPressed: () {\n            Navigator.pop(context);\n          },\n          child: const Text('Back to Product'),\n        ),\n      ),\n    );\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Output Navigation &amp; Routing:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"715\" height=\"844\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-edited-1.png\" alt=\"\" class=\"wp-image-324\" style=\"width:296px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-edited-1.png 715w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-edited-1-254x300.png 254w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"739\" height=\"867\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-1-edited.png\" alt=\"\" class=\"wp-image-325\" style=\"width:296px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-1-edited.png 739w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-1-edited-256x300.png 256w\" sizes=\"auto, (max-width: 739px) 100vw, 739px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">2. Mengirim dan Menerima Data antar Halaman<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Buat file dart baru dan inisialisasi route pada\u00a0<code>MaterialApp<\/code>.<\/li>\n\n\n\n<li class=\"has-small-font-size\">Buat class baru:\u00a0<code>HomePage<\/code>,\u00a0<code>MyProfile<\/code>, dan\u00a0<code>MyProduct<\/code>.<\/li>\n\n\n\n<li class=\"has-small-font-size\">Pada\u00a0<code>HomePage<\/code>, kirim data ke halaman lain melalui constructor dan named route.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-small-font-size\">Implementasi pengiriman data menggunakan constructor dan named routes dengan kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>   import 'package:flutter\/material.dart';\n\nvoid main() => runApp(MyNav());\n\nclass MyNav extends StatelessWidget {\n  const MyNav({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      initialRoute: '\/',\n      routes: {\n        '\/': (context) => const HomePage(),\n        '\/product': (context) => const MyProduct(),\n      },\n    );\n  }\n}\n\nclass HomePage extends StatelessWidget {\n  const HomePage({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text('Home Page')),\n      body: Center(\n        child: Row(\n          children: &#91;\n            \/\/ Mengirim data dengan constructor\n            ElevatedButton(\n              onPressed: () {\n                Navigator.push(\n                  context, \n                  MaterialPageRoute(\n                    builder: (context) => const MyProfile(id: 001, name: 'Devia Puji Astuti'),\n                  ),\n                );\n              }, \n              child: const Text('Profile'),\n            ), \n            \/\/ Mengirim data dengan named routes\n            ElevatedButton(\n              onPressed: () {\n                Navigator.pushNamed(\n                  context, \n                  '\/product',\n                  arguments: {'id': 1, 'name': 'sepatu'},\n                );\n              }, \n              child: const Text('Product'),\n            ),\n          ],\n        ),\n      ),\n    );\n  }\n}\n\nclass MyProfile extends StatelessWidget {\n  final int id;\n  final String name;\n  const MyProfile({super.key, required this.id, required this.name});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text('Profile')),\n      body: Center(\n        child: Column(\n          mainAxisAlignment: MainAxisAlignment.center,\n          children: &#91;\n            Text('ID: $id'),\n            Text('Name: $name'),\n          ],\n        ),\n      ),\n    );\n  }\n}\n\nclass MyProduct extends StatelessWidget {\n  const MyProduct({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    final args = ModalRoute.of(context)!.settings.arguments as Map?;\n    final int id = args?&#91;'id'] ?? 0;\n    final String name = args?&#91;'name'] ?? 'Unknown';\n\n    return Scaffold(\n      appBar: AppBar(title: const Text('Product')),\n      body: Center(\n        child: Column(\n          mainAxisAlignment: MainAxisAlignment.center,\n          children: &#91;\n            Text('Product ID: $id'),\n            Text('Product Name: $name'),\n          ],\n        ),\n      ),\n    );\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">dengan outputnya:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"877\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-2.png\" alt=\"\" class=\"wp-image-327\" style=\"width:296px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-2.png 707w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-2-242x300.png 242w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"702\" height=\"880\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-3.png\" alt=\"\" class=\"wp-image-329\" style=\"width:286px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-3.png 702w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-3-239x300.png 239w\" sizes=\"auto, (max-width: 702px) 100vw, 702px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"711\" height=\"887\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-4.png\" alt=\"\" class=\"wp-image-330\" style=\"width:287px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-4.png 711w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-4-240x300.png 240w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><\/figure>\n\n\n\n<!--nextpage-->\n\n\n\n<p><strong>TUGAS<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size\">Buatlah halaman login dan halaman utama, kemudian inputkan username dan password, Ketika diklik login akan berpindah ke halaman utama dengan mengirimkan data username dan password, tampilkan data tersebut pada halaman utama. Berikut codenya :<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>import 'package:flutter\/material.dart';\n\nvoid main() {\n  runApp(const MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  const MyApp({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      debugShowCheckedModeBanner: false,\n      title: 'Navigation Demo',\n      home: const LoginPage(),\n    );\n  }\n}\n\nclass LoginPage extends StatefulWidget {\n  const LoginPage({super.key});\n\n  @override\n  State createState() => _LoginPageState();\n}\n\nclass _LoginPageState extends State {\n  final TextEditingController usernameController = TextEditingController();\n  final TextEditingController passwordController = TextEditingController();\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text(\"Login Page\")),\n      body: Padding(\n        padding: const EdgeInsets.all(20),\n        child: Column(\n          mainAxisAlignment: MainAxisAlignment.center,\n          children: &#91;\n            TextField(\n              controller: usernameController,\n              decoration: const InputDecoration(labelText: \"Username\"),\n            ),\n            TextField(\n              controller: passwordController,\n              obscureText: true,\n              decoration: const InputDecoration(labelText: \"Password\"),\n            ),\n            const SizedBox(height: 20),\n            ElevatedButton(\n              onPressed: () {\n                String username = usernameController.text;\n                String password = passwordController.text;\n\n                Navigator.push(\n                  context,\n                  MaterialPageRoute(\n                    builder: (context) =>\n                        HomePage(username: username, password: password),\n                  ),\n                );\n              },\n              child: const Text(\"Login\"),\n            )\n          ],\n        ),\n      ),\n    );\n  }\n}\n\nclass HomePage extends StatelessWidget {\n  final String username;\n  final String password;\n\n  const HomePage({super.key, required this.username, required this.password});\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: const Text(\"Home Page\")),\n      drawer: Drawer(\n        child: ListView(\n          children: &#91;\n            DrawerHeader(\n              decoration: const BoxDecoration(color: Colors.blue),\n              child: Text(\n                \"Hello, $username\",\n                style: const TextStyle(color: Colors.white, fontSize: 20),\n              ),\n            ),\n            ListTile(\n              leading: const Icon(Icons.info),\n              title: const Text(\"User Info\"),\n              onTap: () {\n                Navigator.pop(context);\n                ScaffoldMessenger.of(context).showSnackBar(\n                  SnackBar(content: Text(\"Password: $password\")),\n                );\n              },\n            ),\n            ListTile(\n              leading: const Icon(Icons.exit_to_app),\n              title: const Text(\"Logout\"),\n              onTap: () {\n                Navigator.pop(context);\n                Navigator.pop(context);\n              },\n            ),\n          ],\n        ),\n      ),\n      body: Center(\n        child: Column(\n          mainAxisAlignment: MainAxisAlignment.center,\n          children: &#91;\n            Text(\"Welcome, $username!\",\n                style: const TextStyle(fontSize: 22)),\n            const SizedBox(height: 10),\n            Text(\"Password: $password\",\n                style: const TextStyle(fontSize: 18)),\n          ],\n        ),\n      ),\n      bottomNavigationBar: const MyBottomNav(),\n    );\n  }\n}\n\nclass MyBottomNav extends StatefulWidget {\n  const MyBottomNav({super.key});\n\n  @override\n  State createState() => _MyBottomNavState();\n}\n\nclass _MyBottomNavState extends State {\n  int _selectedIndex = 0;\n\n  final List _pages = &#91;\"\ud83c\udfe0 Home\", \"\u2b50 Favorite\", \"\u2699\ufe0f Settings\"];\n\n  @override\n  Widget build(BuildContext context) {\n    return BottomNavigationBar(\n      currentIndex: _selectedIndex,\n      onTap: (index) {\n        setState(() {\n          _selectedIndex = index;\n          ScaffoldMessenger.of(context).showSnackBar(\n            SnackBar(content: Text(\"You selected: ${_pages&#91;index]}\")),\n          );\n        });\n      },\n      items: const &#91;\n        BottomNavigationBarItem(icon: Icon(Icons.home), label: \"Home\"),\n        BottomNavigationBarItem(icon: Icon(Icons.star), label: \"Favorite\"),\n        BottomNavigationBarItem(icon: Icon(Icons.settings), label: \"Settings\"),\n      ],\n    );\n  }\n}\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"878\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-5.png\" alt=\"\" class=\"wp-image-331\" style=\"width:347px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-5.png 698w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-5-238x300.png 238w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"892\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-6.png\" alt=\"\" class=\"wp-image-332\" style=\"width:360px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-6.png 709w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-6-238x300.png 238w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"128\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-7.png\" alt=\"\" class=\"wp-image-333\" style=\"width:366px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-7.png 709w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-7-300x54.png 300w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"136\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-8.png\" alt=\"\" class=\"wp-image-334\" style=\"width:370px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-8.png 709w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-8-300x58.png 300w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"892\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-9.png\" alt=\"\" class=\"wp-image-335\" style=\"width:366px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-9.png 709w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/10\/image-9-238x300.png 238w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Navigation &amp; Routing : Multiple Screen Document Home Tujuan Alat Computer \/ laptop yang telah terinstall lingkungan Flutter development Teori Navigation dan Routing Flutter : Navigation merupakan proses berpindah dari satu halaman (screen\/page) ke halaman lain dalam aplikasi Flutter, misalnya perpindahan dari halaman login ke halaman utama, atau dari halaman produk ke halaman detail produk. &hellip; <a href=\"https:\/\/devia.infokand23.my.id\/laprak1\/laporan-praktikum-alikasi-mobile-4\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">LAPORAN PRAKTIKUM ALIKASI MOBILE 4<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-313","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/comments?post=313"}],"version-history":[{"count":7,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/313\/revisions"}],"predecessor-version":[{"id":336,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/313\/revisions\/336"}],"wp:attachment":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/media?parent=313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/categories?post=313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/tags?post=313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}