{"id":212,"date":"2025-09-06T15:23:13","date_gmt":"2025-09-06T15:23:13","guid":{"rendered":"https:\/\/devia.infokand23.my.id\/laprak1\/?p=212"},"modified":"2025-09-15T01:59:57","modified_gmt":"2025-09-15T01:59:57","slug":"laporan-praktikum-aplikasi-mobile-1","status":"publish","type":"post","link":"https:\/\/devia.infokand23.my.id\/laprak1\/laporan-praktikum-aplikasi-mobile-1\/","title":{"rendered":"LAPORAN PRAKTIKUM APLIKASI MOBILE 1"},"content":{"rendered":"\n<p>Setup Environment, Dart Dasar dan OOP Dart<\/p>\n\n\n\n<a href=\"https:\/\/github.com\/deviapujiastuti\/Aplikasi-Mobile.git\" target=\"_blank\">\n  <i class=\"fab fa-github\"><\/i> GitHub\n<\/a>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\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 class=\"has-medium-font-size\">1.Pengertian<\/p>\n\n\n\n<p class=\"has-small-font-size\">Dart adalah bahasa pemrograman berorientasi objek (OOP) yang dikembangkan oleh Google dan pertama kali diperkenalkan pada tahun 2011 oleh Lars Bak dan Kasper. Dirancang dengan sintaks mirip C, Java, dan JavaScript, Dart mudah dipelajari oleh pengembang yang sudah familiar dengan bahasa-bahasa tersebut. Bahasa ini mendukung pemrograman multi-paradigma\u2014mulai dari fungsional, imperatif, hingga reflektif\u2014serta memiliki fitur seperti class-based, garbage collection, mixins, generics, dan type inference. Dart unggul dalam kinerja karena mendukung kompilasi Just-in-Time (JIT) untuk pengembangan cepat dan Ahead-of-Time (AOT) untuk performa optimal pada saat runtime.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">2. Instalasi<\/p>\n\n\n\n<p class=\"has-small-font-size\">Sebelum install SDK Dart pastikan arsitektur hardware telah memenuhi persyaratanminimum, Adapun persyaratan minimum yang dibutuhkan untuk install SDK Dart seperti gambar berikut:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"533\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image.png\" alt=\"\" class=\"wp-image-220\" style=\"width:450px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image.png 749w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-300x213.png 300w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/figure><\/div>\n\n\n<p class=\"has-small-font-size\">Untuk menginstall SDK Dart dapat menggunakan beberapa cara yaitu dapat menggunakan Chocolatey atau dapat langsung download file SDK dalam bentuk ZIP kemudian di extract pada perangkat. Kita akan menginstall menggunakan Extract SDK Dart ZIP<\/p>\n\n\n\n<ul class=\"wp-block-list has-small-font-size\">\n<li>Download SDK Dart pada halaman Dart SDK archive<a href=\" https:\/\/dart.dev\/getdart\/archive#stable-channel\"> <strong>https:\/\/dart.dev\/get<\/strong><\/a><strong><a href=\"https:\/\/dart.dev\/get-dart\/archive#stable-channel\"><\/a>dart\/archive#stable-channel<\/strong><a href=\"https:\/\/dart.dev\/get-dart\/archive#stable-channel\"><\/a><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"682\" height=\"249\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-1.png\" alt=\"\" class=\"wp-image-221\" style=\"width:411px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-1.png 682w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-1-300x110.png 300w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><\/figure><\/div>\n\n\n<p class=\"has-small-font-size\">Download versi stabil sesuai dengan system operasi pada computer<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Selanjutnya extract SDK Dart yang telah di zip<\/li>\n<\/ul>\n\n\n\n<p class=\"has-small-font-size\">Agar dart dapat dijalankan secara global maka perlu menambahkan pada PATH<br>Environment, berikut Langkah-langkah menambahkan PATH. Kemudian buka path untuk mengatur agar dart dapat dijalankan, buka Edit the system Environment variable dan klik Environment Variables maka akan muncul tampilan seperti berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1279\" height=\"719\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-2-edited.png\" alt=\"\" class=\"wp-image-231\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-2-edited.png 1279w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-2-edited-300x169.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-2-edited-1024x576.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-2-edited-768x432.png 768w\" sizes=\"auto, (max-width: 1279px) 100vw, 1279px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">Pilih Path \u2192 Edit dan tambahkan Path dari SDK Dart C:\\dart-sdk (tempat menyimpan hasil install dart sebelumnya). Kemudian cek pada cmd apakah dart terseebut sudah terinstall atau belum<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"523\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-104914-1024x523.png\" alt=\"\" class=\"wp-image-232\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-104914-1024x523.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-104914-300x153.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-104914-768x392.png 768w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-104914.png 1476w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">jika sudah menghasilkan output seperti ini maka sudah bisa digunakan.<\/p>\n\n\n\n<p class=\"has-small-font-size\">lanjut masuk kedalam vs code, dan instal &#8220;Dart&#8221; di dalamnya.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1271\" height=\"715\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-3-edited.png\" alt=\"\" class=\"wp-image-234\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-3-edited.png 1271w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-3-edited-300x169.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-3-edited-1024x576.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-3-edited-768x432.png 768w\" sizes=\"auto, (max-width: 1271px) 100vw, 1271px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">lanjut, kembali ke cmd dan buat proyek untuk pengujian. disini saya membuat folder dengan nama &#8220;halo&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"351\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105346-1024x351.png\" alt=\"\" class=\"wp-image-235\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105346-1024x351.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105346-300x103.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105346-768x263.png 768w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105346.png 1457w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-small-font-size\">untuk menjalankannya gunakan code berupa &#8220;cd halo&#8221; dan &#8220;dart run&#8221; sehingga akan menghasilkan output seperti dibawah ini.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"877\" height=\"170\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105427.png\" alt=\"\" class=\"wp-image-236\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105427.png 877w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105427-300x58.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/Cuplikan-layar-2025-09-03-105427-768x149.png 768w\" sizes=\"auto, (max-width: 877px) 100vw, 877px\" \/><\/figure>\n\n\n\n<p>dan menghasilkan output : &#8220;Hello world: 42!&#8221;<\/p>\n\n\n\n<!--nextpage-->\n\n\n\n<p class=\"has-small-font-size\">Setelah berhasil membuat proyek pertama Dart dengan nama halo, buka VSCode kemudian buka proyek halo yang sudah dibuat dan tampilannya akan seperti ini :<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"240\" height=\"452\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-4-edited.png\" alt=\"\" class=\"wp-image-240\" style=\"width:203px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-4-edited.png 240w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-4-edited-159x300.png 159w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/figure><\/div>\n\n\n<p class=\"has-small-font-size\">terdapat beberapa struktur didalam file halo tersebut seperti :<\/p>\n\n\n\n<p class=\"has-small-font-size\">bin\/ &#8211; Berisi file executable , lib\/ &#8211; Berisi source code utama , test\/ &#8211; Berisi file testing , pubspec.yaml &#8211; File konfigurasi project dan dependencies<\/p>\n\n\n\n<p class=\"has-small-font-size\">Selanjutnya masuk ke dasar-dasar pemograman dart. Untuk membuat dasar-dasar pemograman dart ini buat file pada bin. Kemudian tipe data yang digunakan yaitu :<\/p>\n\n\n\n<p>lIST<\/p>\n\n\n\n<p class=\"has-small-font-size\">Kumpulan elemen yang diurutkan dan dapat memiliki elemen duplikat, mirip dengan array pada bahasa lain. berikut saya cantumkan contoh code dalam penggunaan list<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>void main(List&lt;String> arguments) {\n  List&lt;String> fruits = &#91;'Apel', 'Alpukat', 'Nanas', 'Mangga', 'Pisang'];\n  print(fruits.toString());\n  \/\/manipulasi fruits\n  fruits.add('Jeruk');\n  print(fruits.toString());\n  fruits.remove('Alpukat');\n  print(fruits.toString());\n  fruits&#91;0] = 'Semangka';\n  print(fruits.toString());\n  fruits.sort();\n  print(fruits.toString());\n  fruits.shuffle();\n  print(fruits.toString());\n  print(fruits.length);\n  print(fruits.first);\n  print(fruits.last);\n  print(fruits.contains('Mangga'));\n  print(fruits.indexOf('Pisang'));\n  print(fruits.isEmpty);\n  print(fruits.isNotEmpty);<\/code><\/pre>\n\n\n\n<p>SET<\/p>\n\n\n\n<p class=\"has-small-font-size\">Kumpulan elemen unik (tidak ada duplikat) dan tidak berurutan. berikut saya cantumkan code untuk bagaimana penggunaan set kedalam sebuah program.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code> \/\/set\n  Set&lt;String> animals = {'Kucing', 'Anjing', 'Kelinci', 'Burung'};\n  print(animals.toString());\n  \/\/manipulasi set\n  animals.add('Ikan');\n  print(animals.toString());\n  animals.remove('Kelinci');\n  print(animals.toString());\n  print(animals.length);\n  print(animals.contains('Anjing'));\n  print(animals.isEmpty);\n  print(animals.isNotEmpty);<\/code><\/pre>\n\n\n\n<p>MAP<\/p>\n\n\n\n<p class=\"has-small-font-size\">Kumpulan pasangan nilai kunci (key-value pair), di mana setiap kunci bersifat unik dan digunakan untuk mengakses nilainya. berikut saya cantumkan code untuk bagaimana penggunaan set kedalam sebuah program.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\/\/map\n  Map&lt;String, String> productPrices = {\n    'Laptop' : '10.000.000',\n    'Mouse' : '200.000',\n    'Keyboard' : '500.000',\n    'Monitor' : '2.000.000'\n  };\n  print(productPrices.toString());\n  \/\/manipulasi map\n  productPrices&#91;'Printer'] = '1.500.000';\n  print(productPrices.toString());\n  productPrices.remove('Mouse');\n  print(productPrices.toString());\n  productPrices&#91;'Laptop'] = '9.500.000';\n  print(productPrices.toString());\n  print(productPrices.length);\n  print(productPrices.containsKey('Keyboard'));\n  print(productPrices.containsValue('2.000.000'));\n  print(productPrices.keys);\n  print(productPrices.values);\n  print(productPrices.isEmpty);\n  print(productPrices.isNotEmpty);<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Dari tipe data tersebut bisa menggunakan dua perulangan yang digunakan untuk mengeksekusi blok kode berulang kali, yaitu:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>for (var fruit in fruits) {\n    print(fruit);\n  }\n  for (var animal in animals) {\n    print(animal);\n  }\n  productPrices.forEach((key, value) {\n    print('$key: $value');\n  });<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">atau dapat menggunakan :<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>  for (var i = 0; i &lt; fruits.length; i++) {\n    print(fruits&#91;i]);\n  }\n  for (var i = 0; i &lt; animals.length; i++) {\n    print(animals.elementAt(i));\n  }for (var i = 0; i &lt; productPrices.length; i++) {\n    print('${productPrices.keys.elementAt(i)}: ${productPrices.values.elementAt(i)}');\n  }\n\n}<\/code><\/pre>\n\n\n\n<p>OOP<\/p>\n\n\n\n<p class=\"has-small-font-size\">Pada Pemrograman Berorientasi Objek (OOP) dalam Dart langkah yang dilakukan yaitu:<\/p>\n\n\n\n<p class=\"has-small-font-size\">membuat class dan object merupakan ciri khusus dari oop. berikut saya cantumkan codenya :<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>void main(List&lt;String> arguments) { \n  \/\/Object Oriented Programming (OOP) \n  \/\/membuat object \n  var car1 = Car(); \n  car1.color = 'Red'; \n  car1.brand = 'Toyota'; \n  car1.year = 2020; \n  car1.drive(); \n  car1.honk(); \n  print('Car 1: ${car1.color}, ${car1.brand}, ${car1.year}'); \n  \n  Cat cat1 = Cat(); \n  cat1.eat(); \n  cat1.meow(); \n} \n  \nclass Car { \n  \/\/property \n  String color = ''; \n  String brand = ''; \n  int year = 0; \n  \n  \/\/method \n  void drive() { \n    print('The $color $brand is driving.'); \n  } \n  \n  void honk() { \n    print('The $color $brand is honking.'); \n  } \n} <\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">dalam penggunaan pewarisan atau membuat inheritance seperti dibawah :<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\/\/pewarisan \nclass Animal { \n  void eat() { \n    print('The animal is eating.'); \n  } \n} \n  \nclass Dog extends Animal { \n  void bark() { \n    print('The dog is barking.'); \n  } \n} \n  \nclass Cat extends Animal { \n  void meow() { \n    print('The cat is meowing.'); \n  } \n}<\/code><\/pre>\n\n\n\n<!--nextpage-->\n\n\n\n<p><strong>TUGAS<\/strong><\/p>\n\n\n\n<p>Aplikasi Sederhana untuk Menghitung Luas dan Volume (Bangun Datar dan Bangun Ruang)<\/p>\n\n\n\n<p>Menggunakan OOP<\/p>\n\n\n\n<p class=\"has-small-font-size\">buat kode dalam folder bin, disini dibuat untuk bangun datar berupa perhitungan luas persegi, persegi panjang dan juga segitiga sedangkan pada bangun ruang akan mencari volume dari bangun kubus, balok dan juga bola<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>import 'dart:io';\nimport 'dart:math';\n\n\/\/ Class Bangun Datar\nclass BangunDatar {\n  double luasPersegi(double sisi) => sisi * sisi;\n  double luasPersegiPanjang(double p, double l) => p * l;\n  double luasSegitiga(double alas, double tinggi) => 0.5 * alas * tinggi;\n}\n\n\/\/ Class Bangun Ruang\nclass BangunRuang {\n  double volumeKubus(double sisi) => sisi * sisi * sisi;\n  double volumeBalok(double p, double l, double t) => p * l * t;\n  double volumeBola(double r) => (4 \/ 3) * pi * pow(r, 3);\n}\n\nvoid main() {\n  var datar = BangunDatar();\n  var ruang = BangunRuang();\n\n  print(\"=== Program OOP: Kalkulator Bangun ===\");\n  print(\"1. Hitung Bangun Datar\");\n  print(\"2. Hitung Bangun Ruang\");\n  stdout.write(\"Pilih (1\/2): \");\n  int pilihan = int.parse(stdin.readLineSync()!);\n\n  if (pilihan == 1) {\n    print(\"\\n-- Bangun Datar --\");\n    print(\"1. Persegi\");\n    print(\"2. Persegi Panjang\");\n    print(\"3. Segitiga\");\n    stdout.write(\"Pilih (1\/2\/3): \");\n    int pilihDatar = int.parse(stdin.readLineSync()!);\n\n    if (pilihDatar == 1) {\n      stdout.write(\"Masukkan sisi: \");\n      double s = double.parse(stdin.readLineSync()!);\n      print(\"Luas Persegi = ${datar.luasPersegi(s)}\");\n    } else if (pilihDatar == 2) {\n      stdout.write(\"Masukkan panjang: \");\n      double p = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan lebar: \");\n      double l = double.parse(stdin.readLineSync()!);\n      print(\"Luas Persegi Panjang = ${datar.luasPersegiPanjang(p, l)}\");\n    } else if (pilihDatar == 3) {\n      stdout.write(\"Masukkan alas: \");\n      double a = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan tinggi: \");\n      double t = double.parse(stdin.readLineSync()!);\n      print(\"Luas Segitiga = ${datar.luasSegitiga(a, t)}\");\n    }\n  } else if (pilihan == 2) {\n    print(\"\\n-- Bangun Ruang --\");\n    print(\"1. Kubus\");\n    print(\"2. Balok\");\n    print(\"3. Bola\");\n    stdout.write(\"Pilih (1\/2\/3): \");\n    int pilihRuang = int.parse(stdin.readLineSync()!);\n\n    if (pilihRuang == 1) {\n      stdout.write(\"Masukkan sisi: \");\n      double s = double.parse(stdin.readLineSync()!);\n      print(\"Volume Kubus = ${ruang.volumeKubus(s)}\");\n    } else if (pilihRuang == 2) {\n      stdout.write(\"Masukkan panjang: \");\n      double p = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan lebar: \");\n      double l = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan tinggi: \");\n      double t = double.parse(stdin.readLineSync()!);\n      print(\"Volume Balok = ${ruang.volumeBalok(p, l, t)}\");\n    } else if (pilihRuang == 3) {\n      stdout.write(\"Masukkan jari-jari: \");\n      double r = double.parse(stdin.readLineSync()!);\n      print(\"Volume Bola = ${ruang.volumeBola(r)}\");\n    }\n  } else {\n    print(\"Pilihan tidak valid!\");\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">yang menghasilkan output : disini user memilih apakah perhitungan akan dilakukan untuk bangun datar atau bangun ruang dan nanti selalu ada pilihan disetiap user sudah memilih.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"656\" height=\"327\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-5-edited.png\" alt=\"\" class=\"wp-image-242\" style=\"width:506px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-5-edited.png 656w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-5-edited-300x150.png 300w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/figure><\/div>\n\n\n<p>Menggunakan Procedural<\/p>\n\n\n\n<p class=\"has-small-font-size\">buat kode dalam folder bin, disini dibuat untuk bangun datar berupa perhitungan luas persegi, persegi panjang dan juga segitiga sedangkan pada bangun ruang akan mencari volume dari bangun kubus, balok dan juga bola<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>import 'dart:io';\nimport 'dart:math';\n\n\/\/ Fungsi Luas Bangun Datar\ndouble luasPersegi(double sisi) => sisi * sisi;\ndouble luasPersegiPanjang(double p, double l) => p * l;\ndouble luasSegitiga(double alas, double tinggi) => 0.5 * alas * tinggi;\n\n\/\/ Fungsi Volume Bangun Ruang\ndouble volumeKubus(double sisi) => sisi * sisi * sisi;\ndouble volumeBalok(double p, double l, double t) => p * l * t;\ndouble volumeBola(double r) => (4 \/ 3) * pi * pow(r, 3);\n\nvoid main() {\n  print(\"=== Program Procedural: Kalkulator Bangun ===\");\n  print(\"1. Hitung Bangun Datar\");\n  print(\"2. Hitung Bangun Ruang\");\n  stdout.write(\"Pilih (1\/2): \");\n  int pilihan = int.parse(stdin.readLineSync()!);\n\n  if (pilihan == 1) {\n    print(\"\\n-- Bangun Datar --\");\n    print(\"1. Persegi\");\n    print(\"2. Persegi Panjang\");\n    print(\"3. Segitiga\");\n    stdout.write(\"Pilih (1\/2\/3): \");\n    int pilihDatar = int.parse(stdin.readLineSync()!);\n\n    if (pilihDatar == 1) {\n      stdout.write(\"Masukkan sisi: \");\n      double s = double.parse(stdin.readLineSync()!);\n      print(\"Luas Persegi = ${luasPersegi(s)}\");\n    } else if (pilihDatar == 2) {\n      stdout.write(\"Masukkan panjang: \");\n      double p = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan lebar: \");\n      double l = double.parse(stdin.readLineSync()!);\n      print(\"Luas Persegi Panjang = ${luasPersegiPanjang(p, l)}\");\n    } else if (pilihDatar == 3) {\n      stdout.write(\"Masukkan alas: \");\n      double a = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan tinggi: \");\n      double t = double.parse(stdin.readLineSync()!);\n      print(\"Luas Segitiga = ${luasSegitiga(a, t)}\");\n    }\n  } else if (pilihan == 2) {\n    print(\"\\n-- Bangun Ruang --\");\n    print(\"1. Kubus\");\n    print(\"2. Balok\");\n    print(\"3. Bola\");\n    stdout.write(\"Pilih (1\/2\/3): \");\n    int pilihRuang = int.parse(stdin.readLineSync()!);\n\n    if (pilihRuang == 1) {\n      stdout.write(\"Masukkan sisi: \");\n      double s = double.parse(stdin.readLineSync()!);\n      print(\"Volume Kubus = ${volumeKubus(s)}\");\n    } else if (pilihRuang == 2) {\n      stdout.write(\"Masukkan panjang: \");\n      double p = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan lebar: \");\n      double l = double.parse(stdin.readLineSync()!);\n      stdout.write(\"Masukkan tinggi: \");\n      double t = double.parse(stdin.readLineSync()!);\n      print(\"Volume Balok = ${volumeBalok(p, l, t)}\");\n    } else if (pilihRuang == 3) {\n      stdout.write(\"Masukkan jari-jari: \");\n      double r = double.parse(stdin.readLineSync()!);\n      print(\"Volume Bola = ${volumeBola(r)}\");\n    }\n  } else {\n    print(\"Pilihan tidak valid!\");\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">yang menghasilkan output : disini user memilih apakah perhitungan akan dilakukan untuk bangun datar atau bangun ruang dan nanti selalu ada pilihan disetiap user sudah memilih.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"342\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-6.png\" alt=\"\" class=\"wp-image-243\" style=\"width:505px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-6.png 680w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/09\/image-6-300x151.png 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setup Environment, Dart Dasar dan OOP Dart GitHub Document Home 1.Pengertian Dart adalah bahasa pemrograman berorientasi objek (OOP) yang dikembangkan oleh Google dan pertama kali diperkenalkan pada tahun 2011 oleh Lars Bak dan Kasper. Dirancang dengan sintaks mirip C, Java, dan JavaScript, Dart mudah dipelajari oleh pengembang yang sudah familiar dengan bahasa-bahasa tersebut. Bahasa ini &hellip; <a href=\"https:\/\/devia.infokand23.my.id\/laprak1\/laporan-praktikum-aplikasi-mobile-1\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">LAPORAN PRAKTIKUM APLIKASI MOBILE 1<\/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-212","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/212","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=212"}],"version-history":[{"count":9,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/212\/revisions"}],"predecessor-version":[{"id":244,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/212\/revisions\/244"}],"wp:attachment":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/media?parent=212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/categories?post=212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/tags?post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}