<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Faaza Mumtaza Kirom</title>
    <description>The latest articles on DEV Community by Faaza Mumtaza Kirom (@faaza_mumtaza).</description>
    <link>https://dev.to/faaza_mumtaza</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2147171%2F0e200cc2-e974-474c-a013-504574411166.png</url>
      <title>DEV Community: Faaza Mumtaza Kirom</title>
      <link>https://dev.to/faaza_mumtaza</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/faaza_mumtaza"/>
    <language>en</language>
    <item>
      <title>Belajar Dasaran Flutter - Tentang Widget</title>
      <dc:creator>Faaza Mumtaza Kirom</dc:creator>
      <pubDate>Tue, 18 Feb 2025 13:05:47 +0000</pubDate>
      <link>https://dev.to/faaza_mumtaza/belajar-dasaran-flutter-tentang-widget-2d1i</link>
      <guid>https://dev.to/faaza_mumtaza/belajar-dasaran-flutter-tentang-widget-2d1i</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;1. Pengenalan Widget di Flutter&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Flutter menggunakan pendekatan berbasis widget, di mana setiap elemen UI dibangun menggunakan widget.&lt;br&gt;
Salah satu konsep paling penting yang perlu dipahami di Flutter adalah Widget. Widget adalah jantung dari Flutter. Sebagai gambaran Widget adalah blok bangunan dasar dari setiap aplikasi Flutter. Dalam blog ini, kita akan membahas dasar-dasar widget, jenis-jenisnya, dan bagaimana menggunakannya dengan contoh kode sederhana. &lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Apa Itu Widget?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Di Flutter, semuanya adalah widget. Mulai dari teks, tombol, gambar, hingga tata letak (layout) semuanya dibangun menggunakan widget. Widget adalah komponen UI yang mendefinisikan tampilan dan perilaku aplikasi. Flutter menggunakan pendekatan widget-based untuk membangun antarmuka pengguna.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Jenis-Jenis Widget&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Secara umum, widget di Flutter dibagi menjadi dua jenis:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stateless Widget&lt;/strong&gt;: Widget yang tidak dapat berubah (immutable). Digunakan untuk elemen UI yang statis, contohnya adalah teks, ikon atau gambr yang tampilannya tetap. Gunakan Stateless Widget → Kalau UI kamu statis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stateful Widget&lt;/strong&gt;: Widget yang dapat berubah (mutable). Digunakan Untuk elemen UI yang berubah berdasarkan interaksi pengguna, contohnya adalah tombol yang berubah warna saat diklik. Gunakan Stateful Widget → Kalau UI bisa berubah.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Stateless Widget&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Stateless berarti "tanpa keadaan" atau "tidak memiliki state". Artinya, widget ini tidak dapat berubah setelah dibuat. Semua properti yang diberikan bersifat final (konstan). Contohnya adalah teks, ikon, atau gambar yang tidak berubah selama aplikasi berjalan.&lt;/p&gt;

&lt;p&gt;Fungsi&lt;br&gt;
Digunakan untuk UI yang statis dan tidak berubah.&lt;br&gt;
Cocok untuk elemen yang hanya menampilkan data tanpa interaksi dinamis.&lt;/p&gt;

&lt;p&gt;Berikut adalah contoh Stateless Widget yang menampilkan teks dan ikon:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;runApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MyApp&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyApp&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatelessWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;MaterialApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;home:&lt;/span&gt; &lt;span class="n"&gt;Scaffold&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;appBar:&lt;/span&gt; &lt;span class="n"&gt;AppBar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;title:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Stateless Widget'&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
        &lt;span class="nl"&gt;body:&lt;/span&gt; &lt;span class="n"&gt;Center&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="s"&gt;'Halo, Flutter!'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;fontWeight:&lt;/span&gt; &lt;span class="n"&gt;FontWeight&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;bold&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
          &lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔍 Penjelasan Kode&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;_MyApp _adalah Stateless Widget karena tidak memiliki perubahan state.&lt;/li&gt;
&lt;li&gt;Menggunakan _MaterialApp _sebagai root aplikasi.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Scaffold&lt;/em&gt; digunakan untuk struktur halaman.&lt;/li&gt;
&lt;li&gt;_Text _sebagai contoh Stateless Widget, tampilannya tidak berubah.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Stateful Widget
&lt;/h3&gt;

&lt;p&gt;Stateful berarti "memiliki keadaan" atau "bisa berubah". Widget ini dapat berubah saat aplikasi berjalan karena memiliki state yang dapat diperbarui.&lt;/p&gt;

&lt;p&gt;Fungsi&lt;br&gt;
Digunakan untuk UI yang dapat berubah berdasarkan interaksi pengguna.&lt;br&gt;
Cocok untuk elemen seperti tombol yang berubah warna, daftar yang bisa diperbarui, atau input pengguna.&lt;/p&gt;

&lt;p&gt;Berikut adalah contoh Stateful Widget dengan tombol yang mengubah warna saat diklik:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;runApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MyApp&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyApp&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatelessWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;MaterialApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;home:&lt;/span&gt; &lt;span class="n"&gt;Scaffold&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;appBar:&lt;/span&gt; &lt;span class="n"&gt;AppBar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;title:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Stateful Widget'&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
        &lt;span class="nl"&gt;body:&lt;/span&gt; &lt;span class="n"&gt;Center&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;MyButton&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
        &lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyButton&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatefulWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;_MyButtonState&lt;/span&gt; &lt;span class="n"&gt;createState&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_MyButtonState&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;_MyButtonState&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;MyButton&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;isClicked&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;toggleColor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;isClicked&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;isClicked&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;ElevatedButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;onPressed:&lt;/span&gt; &lt;span class="n"&gt;toggleColor&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;ElevatedButton&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;styleFrom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;backgroundColor:&lt;/span&gt; &lt;span class="n"&gt;isClicked&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="n"&gt;Colors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;green&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Colors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s"&gt;'Klik Saya!'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Colors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;white&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔍 Penjelasan Kode&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;_MyButton _adalah Stateful Widget karena dapat berubah.&lt;/li&gt;
&lt;li&gt;__MyButtonState _menyimpan variabel isClicked untuk menentukan warna tombol.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;toggleColor()&lt;/em&gt; dipanggil saat tombol ditekan, lalu memanggil &lt;em&gt;setState()&lt;/em&gt; untuk memperbarui UI.&lt;/li&gt;
&lt;li&gt;Warna tombol berubah biru → hijau saat diklik.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Widget Dasar (Basic Widgets)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Widget dasar adalah widget yang paling sering digunakan untuk membangun UI. Berikut beberapa contohna:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a. Text (Menampilkan Teks)&lt;/strong&gt;&lt;br&gt;
"Text" berarti teks yang dapat ditampilkan di layar.&lt;br&gt;
Digunakan untuk menampilkan teks dengan berbagai gaya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s"&gt;'Halo, Flutter!'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;fontWeight:&lt;/span&gt; &lt;span class="n"&gt;FontWeight&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;bold&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔍 Penjelasan&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;_Text _menampilkan teks "Halo, Flutter!".&lt;/li&gt;
&lt;li&gt;_TextStyle _digunakan untuk mengatur ukuran font, ketebalan, dan warna.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;b. Image (Menampilkan Gambar)&lt;/strong&gt;&lt;br&gt;
"Image" berarti gambar yang dapat ditampilkan di layar.&lt;br&gt;
Digunakan untuk menampilkan gambar dari berbagai sumber.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;network&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'https://flutter.dev/images/flutter-logo-sharing.png'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'assets/images/flutter_logo.png'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔍 Penjelasan&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Image.network()&lt;/em&gt; menampilkan gambar dari URL.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Image.asset()&lt;/em&gt; menampilkan gambar dari folder aset aplikasi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;c. Icon (Menampilkan Ikon)&lt;/strong&gt;&lt;br&gt;
"Icon" berarti ikon yang dapat ditampilkan di layar.&lt;br&gt;
Digunakan untuk menampilkan ikon dari Material Icons atau Cupertino Icons.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Icon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Icons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;size:&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Colors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔍 Penjelasan&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Icons.home&lt;/em&gt; adalah ikon rumah bawaan dari Flutter.&lt;/li&gt;
&lt;li&gt;_size _mengatur ukuran ikon, color mengatur warnanya.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;d. Button (Tombol Interaktif)&lt;/strong&gt;&lt;br&gt;
"Button" berarti tombol yang dapat ditekan.&lt;br&gt;
Digunakan untuk menangani interaksi pengguna.&lt;/p&gt;

&lt;p&gt;ElevatedButton (Tombol dengan Latar Belakang)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;ElevatedButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;onPressed:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Tombol ditekan!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Klik Saya'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;TextButton (Tombol Tanpa Latar Belakang)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;TextButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;onPressed:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Tombol ditekan!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Klik Saya'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;IconButton (Tombol dengan Ikon)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;IconButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;onPressed:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Ikon ditekan!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nl"&gt;icon:&lt;/span&gt; &lt;span class="n"&gt;Icon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Icons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;home&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔍 Penjelasan&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;onPressed&lt;/em&gt; adalah fungsi yang dipanggil ketika tombol ditekan.&lt;/li&gt;
&lt;li&gt;_child _digunakan untuk menentukan isi tombol (teks atau ikon).&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Belajar Laravel (folder structures &amp; Laravel Brezee)</title>
      <dc:creator>Faaza Mumtaza Kirom</dc:creator>
      <pubDate>Tue, 08 Oct 2024 07:05:12 +0000</pubDate>
      <link>https://dev.to/faaza_mumtaza/belajar-laravel-folder-structures-laravel-brezee-5fdk</link>
      <guid>https://dev.to/faaza_mumtaza/belajar-laravel-folder-structures-laravel-brezee-5fdk</guid>
      <description>&lt;p&gt;&lt;strong&gt;Laravel Folder Structures&lt;/strong&gt;&lt;br&gt;
adalah struktur folder yang terorganisir di laravel. Setiap folder memiliki fungsinya masing-masing dan membantu menjaga aplikasi tetap modular dan terstruktur. Berikut folder-folder penting dalam Laravel beserta penjelasannya:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt;. app/&lt;br&gt;
Folder ini berisi seluruh logika aplikasi. Di sinilah model, controller, middleware, dan file penting lainnya berada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;. Console/: Menangani perintah artisan khusus.&lt;br&gt;
&lt;strong&gt;B&lt;/strong&gt;. Exceptions/: Berisi kelas untuk menangani error atau exception.&lt;br&gt;
&lt;strong&gt;C&lt;/strong&gt;. Http/: Pada struktur folder Http/ di Laravel, ada dua bagian penting yang disebutkan, yaitu Controllers/ dan Middleware/. Mari kita lihat lebih rinci:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Controllers/: Tempat di mana controller berada, menghubungkan logika antara model dan view.&lt;/li&gt;
&lt;li&gt;Middleware/: Tempat menyimpan middleware yang memfilter request sebelum masuk ke aplikasi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;D&lt;/strong&gt;. Requests/: Berisi validasi request data dari pengguna.&lt;br&gt;
&lt;strong&gt;E&lt;/strong&gt;. Models/: Tempat menyimpan model database aplikasi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;. bootstrap/&lt;br&gt;
Berisi file untuk mengatur bootstrapping framework seperti app.php. Folder ini juga menyimpan cache yang dibutuhkan oleh aplikasi selama runtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3&lt;/strong&gt;. config/&lt;br&gt;
Folder ini berisi semua file konfigurasi aplikasi seperti app.php, database.php, dan lainnya. Semua pengaturan aplikasi seperti timezone, koneksi database, dan lainnya ditentukan di sini.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4&lt;/strong&gt;. database/&lt;br&gt;
Berisi file terkait database seperti migration, seeding, dan factory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migrations/: Digunakan untuk mengatur skema database, membuat, mengubah tabel.&lt;/li&gt;
&lt;li&gt;Factories/: Digunakan untuk membuat data palsu (dummy data) untuk pengujian.&lt;/li&gt;
&lt;li&gt;Seeders/: Digunakan untuk memasukkan data awal atau default ke dalam database.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5&lt;/strong&gt;. public/&lt;br&gt;
Ini adalah root direktori publik dari aplikasi Laravel. Semua file yang dapat diakses publik seperti file JavaScript, CSS, gambar, dan index.php yang digunakan sebagai entry point aplikasi Laravel berada di sini.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6&lt;/strong&gt;. resources/&lt;br&gt;
Berisi file frontend seperti view dan assets (CSS, JS).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;views/: Berisi file view Blade (template engine Laravel) yang digunakan untuk menampilkan halaman HTML.&lt;/li&gt;
&lt;li&gt;lang/: Berisi file untuk mendukung fitur multi-bahasa (localization).&lt;/li&gt;
&lt;li&gt;css, js/: Digunakan untuk menyimpan asset CSS dan JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7&lt;/strong&gt;. routes/&lt;br&gt;
Berisi semua file untuk mendefinisikan rute atau URL dari aplikasi.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;web.php: Berisi rute yang digunakan oleh aplikasi berbasis web.&lt;/li&gt;
&lt;li&gt;api.php: Berisi rute yang digunakan untuk aplikasi berbasis API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8&lt;/strong&gt;. storage/&lt;br&gt;
Digunakan untuk menyimpan file yang dihasilkan aplikasi seperti log, file yang di-upload, dan cache.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;logs/: Menyimpan file log.&lt;/li&gt;
&lt;li&gt;framework/: Menyimpan cache framework seperti cache sesi.&lt;/li&gt;
&lt;li&gt;app/: Tempat untuk menyimpan file aplikasi yang tidak boleh diakses oleh publik.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;9&lt;/strong&gt;. tests/&lt;br&gt;
Folder untuk menyimpan semua file pengujian (testing) aplikasi menggunakan PHPUnit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10&lt;/strong&gt;. vendor/&lt;br&gt;
Ini adalah folder di mana semua dependency pihak ketiga disimpan yang dikelola oleh Composer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Laravel Breeze&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Laravel Breeze adalah salah satu package resmi starter kit autentikasi yang minimalis dan sederhana yang dikembangkan oleh Laravel untuk memberikan kemudahan dan kecepatan bagi website developer dalam membangun aplikasi web yang membutuhkan sistem autentikasi pengguna. Package ini menyediakan template authentikasi dan proses autentikasi yang sederhana dan mudah digunakan. Breeze menawarkan implementasi yang siap digunakan untuk proses registrasi, login, reset password, serta verifikasi email. Breeze cocok digunakan untuk memulai dengan setup autentikasi tanpa menggunakan package yang kompleks seperti Laravel Jetstream.&lt;/p&gt;

&lt;p&gt;Fitur Utama Laravel Breeze:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Autentikasi Dasar: Breeze menyediakan rute, controller, dan view yang siap digunakan untuk login, registrasi, dan manajemen user.&lt;/li&gt;
&lt;li&gt;Frontend Minimal: Menggunakan Blade sebagai templating engine dengan sedikit menggunakan Tailwind CSS untuk styling yang minimalis.&lt;/li&gt;
&lt;li&gt;API-ready: Breeze juga menyediakan opsi untuk menggunakan API Token Autentikasi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Tutorial Instalasi Laravel Breeze&lt;/strong&gt;&lt;br&gt;
Berikut adalah langkah-langkah untuk menginstal dan menggunakan Laravel Breeze:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Install Laravel&lt;/strong&gt;&lt;br&gt;
Pertama, pastikan kamu sudah menginstall Laravel. Jika belum, install Laravel dengan perintah berikut:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer create-project &lt;span class="nt"&gt;--prefer-dist&lt;/span&gt; laravel/laravel laravel_breeze_project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Install Laravel Breeze&lt;/strong&gt;&lt;br&gt;
Setelah Laravel terinstall, kamu bisa langsung menambahkan Breeze menggunakan Composer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require laravel/breeze &lt;span class="nt"&gt;--dev&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Jalankan Breeze Install Command&lt;/strong&gt;&lt;br&gt;
Setelah package Laravel Breeze berhasil di-install, jalankan perintah berikut untuk menginstal file Breeze:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan breeze:install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kamu akan ditanya apakah ingin menginstal Breeze dengan Stack Inertia atau API-ready. Pilih sesuai kebutuhan. Jika kamu memilih opsi default, kamu akan mendapatkan file yang sudah dikonfigurasi dengan Blade view.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Install NPM Dependencies&lt;/strong&gt;&lt;br&gt;
Laravel Breeze menggunakan Tailwind CSS dan beberapa dependensi frontend lain, jadi kamu harus menginstall package frontend:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Migrasi Database&lt;/strong&gt;&lt;br&gt;
Jalankan migrasi untuk membuat tabel users dan tabel autentikasi lain yang dibutuhkan oleh Breeze:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. Jalankan Aplikasi&lt;/strong&gt;&lt;br&gt;
Setelah semua langkah di atas selesai, jalankan aplikasi Laravel dengan perintah:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sekarang kamu bisa membuka aplikasi di browser pada &lt;a href="http://localhost:8000" rel="noopener noreferrer"&gt;http://localhost:8000&lt;/a&gt;, dan kamu akan melihat form login serta registrasi yang disediakan oleh Laravel Breeze.&lt;br&gt;
Dengan mengikuti tutorial di atas, kamu sudah siap menggunakan Breeze sebagai autentikasi dasar di aplikasi Laravel-mu.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Belajar laravel (migrations, query builder, eloquent)</title>
      <dc:creator>Faaza Mumtaza Kirom</dc:creator>
      <pubDate>Thu, 03 Oct 2024 09:47:14 +0000</pubDate>
      <link>https://dev.to/faaza_mumtaza/belajar-laravel-migrations-query-builder-eloquent-relationship-accessor-mutator-dan-cast-seeding-4ce7</link>
      <guid>https://dev.to/faaza_mumtaza/belajar-laravel-migrations-query-builder-eloquent-relationship-accessor-mutator-dan-cast-seeding-4ce7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Migrations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Migrations di Laravel adalah skrip berbasis PHP untuk mengelola skema database. Fitur ini memungkinkan pengembang untuk membuat, mengubah, atau menghapus tabel dan kolom dengan cara yang terkontrol dan mudah dilacak. Setiap perubahan pada skema database didokumentasikan dalam bentuk migration.&lt;/p&gt;

&lt;p&gt;Kegunaan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version Control: Setiap migration mengabadikan perubahan yang terjadi pada database. Ini membantu menjaga konsistensi di berbagai lingkungan (misalnya lokal dan produksi) dan memudahkan rollback jika terjadi kesalahan.&lt;/li&gt;
&lt;li&gt;Kolaborasi Tim: Anggota tim dapat menggunakan migration untuk melacak dan menerapkan perubahan skema database tanpa konflik.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh Penggunaan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Membuat migration untuk tabel students&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Database\Migrations\Migration&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Database\Schema\Blueprint&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Illuminate\Support\Facades\Schema&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CreateStudentsTable&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Migration&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;up&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'students'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Blueprint&lt;/span&gt; &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'nim'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;unique&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'class'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;timestamps&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;down&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;dropIfExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'students'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;up(): Digunakan untuk mendefinisikan perubahan yang diterapkan (misalnya, membuat tabel).&lt;/li&gt;
&lt;li&gt;down(): Mendefinisikan rollback, yakni menghapus tabel atau mengembalikan perubahan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Query Builder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Query Builder di Laravel menyediakan antarmuka yang fleksibel dan aman untuk membuat dan menjalankan query SQL tanpa harus menulis query SQL mentah. Query Builder menggunakan metode chaining untuk membuat query database dengan cara yang lebih intuitif.&lt;/p&gt;

&lt;p&gt;Kegunaan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keamanan: Query Builder secara otomatis menghindari SQL injection dengan parameter binding.&lt;/li&gt;
&lt;li&gt;Fleksibilitas: Dapat digunakan untuk query sederhana atau kompleks dengan lebih sedikit penulisan kode.&lt;/li&gt;
&lt;li&gt;Database-agnostic: Berfungsi di berbagai jenis database, seperti MySQL, SQLite, PostgreSQL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh Penggunaan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Mengambil semua siswa&lt;/span&gt;
&lt;span class="nv"&gt;$students&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;DB&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'students'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Mengambil siswa dengan kondisi&lt;/span&gt;
&lt;span class="nv"&gt;$student&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;DB&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'students'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'nim'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'12345'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;first&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Menyisipkan data&lt;/span&gt;
&lt;span class="no"&gt;DB&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'students'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'John Doe'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'nim'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'12345'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'class'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'A1'&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Eloquent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eloquent adalah ORM (Object-Relational Mapping) Laravel yang memberikan cara yang elegan untuk berinteraksi dengan database menggunakan model PHP. Dengan Eloquent, setiap tabel di database memiliki model yang berhubungan, yang memungkinkan pengembang untuk bekerja dengan database sebagai objek.&lt;/p&gt;

&lt;p&gt;Kegunaan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sederhana dan Efisien: Eloquent membuat CRUD dan operasi database lain menjadi sangat mudah dengan memanfaatkan metode yang sudah disediakan.&lt;/li&gt;
&lt;li&gt;Relasi: Eloquent memudahkan untuk mendefinisikan hubungan antara model (seperti one-to-many, many-to-many) dengan sintaks yang sederhana.&lt;/li&gt;
&lt;li&gt;Memudahkan Integrasi dengan Fitur Laravel: Eloquent bekerja erat dengan fitur seperti validation, event, dan authorization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh Penggunaan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Model untuk tabel students&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$fillable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'nim'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'class'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Mengambil semua siswa&lt;/span&gt;
&lt;span class="nv"&gt;$students&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Menyimpan siswa baru&lt;/span&gt;
&lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Jane Doe'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'nim'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'67890'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'class'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'A2'&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="c1"&gt;// Mengupdate siswa&lt;/span&gt;
&lt;span class="nv"&gt;$student&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$student&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'B1'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$student&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Belajar laravel (request, response, views, validations)</title>
      <dc:creator>Faaza Mumtaza Kirom</dc:creator>
      <pubDate>Wed, 02 Oct 2024 09:40:36 +0000</pubDate>
      <link>https://dev.to/faaza_mumtaza/belajar-laravel-request-response-views-validations-migrations-4lhb</link>
      <guid>https://dev.to/faaza_mumtaza/belajar-laravel-request-response-views-validations-migrations-4lhb</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Request
Request adalah objek yang merupakan sebuah bentuk permintaan (HTTP request) yang diterima oleh aplikasi. Permintaannya bisa berupa GET, POST, PUT, DELETE, atau metode HTTP lainnya. Objek Request memudahkan akses dari form, URL, cookies, headers, atau file yang diunggah ke data input.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Kegunaan:&lt;br&gt;
Request digunakan untuk mengakses dan memanipulasi data yang dikirim oleh pengguna melalui form, query string, atau API. Laravel secara otomatis menyediakan instance dari Request ke dalam controller atau method.&lt;/p&gt;

&lt;p&gt;Contoh Penggunaan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;use Illuminate\Http\Request;
public function store(Request $request) {
    $name = $request-&amp;gt;input('name');
    $nim = $request-&amp;gt;input('nim');

    Student::create([
        'name' =&amp;gt; $name,
        'nim' =&amp;gt; $nim
    ]);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Di atas, objek Request digunakan untuk mengambil data yang dikirimkan melalui form (dengan nama name dan nim), lalu data tersebut disimpan ke dalam database.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Response
Response adalah objek yang mengirimkan hasil dari permintaan kembali ke client (browser atau API client). Ini bisa berupa halaman HTML, JSON, file, atau redirect. Laravel mempermudah pembuatan dan manipulasi respons dengan berbagai helper functions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Kegunaan:&lt;br&gt;
Response digunakan untuk mengirim data yang dihasilkan oleh server ke pengguna, baik berupa tampilan HTML, JSON untuk API, atau status pengalihan (redirect) setelah aksi tertentu dilakukan.&lt;/p&gt;

&lt;p&gt;Contoh Penggunaan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public function store(Request $request) {

return redirect('/students')-&amp;gt;with('success', 'Student created successfully.');
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dalam contoh ini, setelah menyimpan data, kita mengirimkan Response yang mengarahkan pengguna kembali ke halaman daftar siswa dengan pesan sukses menggunakan metode with().&lt;/p&gt;

&lt;p&gt;Contoh Respon yang lain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return response()-&amp;gt;json(['message' =&amp;gt; 'Student created successfully'], 201);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Views&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;View di Laravel adalah representasi dari tampilan yang dilihat oleh pengguna. Laravel menggunakan engine template bernama Blade untuk memisahkan logika bisnis dari logika tampilan. Blade memungkinkan developer menyusun HTML dan menyematkan variabel atau loop dari PHP dengan sintaks yang lebih mudah dibaca.&lt;/p&gt;

&lt;p&gt;Kegunaan:&lt;br&gt;
Views digunakan untuk menampilkan data kepada pengguna, baik berupa HTML yang dihasilkan dari data database atau file statis seperti gambar dan file CSS. Blade juga mendukung inheritance dan komponen, sehingga memudahkan untuk membuat halaman yang dapat digunakan ulang.&lt;/p&gt;

&lt;p&gt;Contoh Penggunaan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public function index() {
    $students = Student::all();
    return view('students.index', compact('students'));
}

&amp;lt;h1&amp;gt;Daftar Siswa&amp;lt;/h1&amp;gt;
&amp;lt;ul&amp;gt;
    @foreach($students as $student)
        &amp;lt;li&amp;gt;{{ $student-&amp;gt;name }} - {{ $student-&amp;gt;nim }}&amp;lt;/li&amp;gt;
    @endforeach
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Di sini, controller mengirim data students ke view students.index, yang menampilkan data siswa menggunakan loop &lt;a class="mentioned-user" href="https://dev.to/foreach"&gt;@foreach&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Validation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Validasi adalah proses memeriksa apakah data yang dikirimkan ke aplikasi sesuai dengan aturan yang diharapkan. Laravel menyediakan cara yang sangat mudah dan kuat untuk memvalidasi data melalui Request objek.&lt;/p&gt;

&lt;p&gt;Kegunaan:&lt;br&gt;
Validasi digunakan untuk memastikan bahwa data yang dikirimkan oleh pengguna (misalnya melalui form atau API) memenuhi kriteria tertentu seperti format email yang valid, panjang minimum teks, atau angka unik di database. Ini penting untuk menjaga integritas data dan keamanan aplikasi.&lt;/p&gt;

&lt;p&gt;Contoh Penggunaan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public function store(Request $request) {
    $request-&amp;gt;validate([
        'name' =&amp;gt; 'required|max:255',
        'nim' =&amp;gt; 'required|unique:students|numeric',
        'class' =&amp;gt; 'required',
    ]);

    Student::create($request-&amp;gt;all());

    return redirect('/students')-&amp;gt;with('success', 'Student created successfully.');
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Di sini, validasi digunakan untuk memastikan:&lt;br&gt;
name wajib diisi dan tidak boleh lebih dari 255 karakter.&lt;br&gt;
nim harus unik di tabel students dan harus berupa angka.&lt;br&gt;
class wajib diisi.&lt;br&gt;
Jika ada aturan yang tidak terpenuhi, Laravel secara otomatis akan mengembalikan error ke halaman form dan menampilkan pesan kesalahan.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Belajar laravel (routing, middleware, controller)</title>
      <dc:creator>Faaza Mumtaza Kirom</dc:creator>
      <pubDate>Tue, 01 Oct 2024 07:18:48 +0000</pubDate>
      <link>https://dev.to/faaza_mumtaza/belajar-laravel-routing-middleware-controller-415e</link>
      <guid>https://dev.to/faaza_mumtaza/belajar-laravel-routing-middleware-controller-415e</guid>
      <description>&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Routing&lt;/strong&gt;
Routing di Laravel mendefinisikan endpoint atau URL yang mengarahkan ke fungsi tertentu dalam controller atau langsung mengeksekusi kode logika.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;fungsi: Routing menentukan ke mana request dari URL harus diarahkan dan tindakan apa yang harus diambil. File routing diletakkan di routes/web.php (untuk web) atau routes/api.php (untuk API).&lt;/p&gt;

&lt;p&gt;Contoh Penggunaan dalam Studi Kasus: Dalam aplikasi manajemen siswa, ingin menampilkan daftar siswa dengan route sebagai berikut:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10vp5ws6ih3nttk2xp6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10vp5ws6ih3nttk2xp6y.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;catatan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/students: Mengarahkan ke method index() di StudentController untuk menampilkan semua siswa.&lt;/li&gt;
&lt;li&gt;/students/create: Mengarahkan ke form pembuatan siswa baru.&lt;/li&gt;
&lt;li&gt;POST /students: Menyimpan siswa baru ke database.&lt;/li&gt;
&lt;li&gt;/students/{id}/edit: Menampilkan form edit untuk siswa tertentu.&lt;/li&gt;
&lt;li&gt;PUT /students/{id}: Memperbarui data siswa berdasarkan ID.&lt;/li&gt;
&lt;li&gt;DELETE /students/{id}: Menghapus siswa dari database.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Middleware&lt;/strong&gt;
Middleware adalah lapisan filter yang dijalankan sebelum atau sesudah request dijalankan. Contoh yang umum adalah autentikasi, logging, atau validasi izin.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;fungsi: Middleware digunakan untuk tugas seperti otentikasi pengguna (memastikan bahwa pengguna sudah login), membatasi akses ke halaman tertentu, atau menangani request tertentu sebelum mencapai controller.&lt;/p&gt;

&lt;p&gt;Contoh Penggunaan dalam Studi Kasus: ingin membatasi akses ke halaman pembuatan, pengeditan, dan penghapusan siswa agar hanya admin yang bisa mengaksesnya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsy2cd9uzreexijay6ti3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsy2cd9uzreexijay6ti3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Middleware auth digunakan untuk memastikan pengguna telah login, sementara role:admin memastikan hanya pengguna dengan peran admin yang bisa mengakses halaman ini.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Controller&lt;/strong&gt;
Controller adalah kelas yang bertanggung jawab mengatur logika aplikasi dan bertindak sebagai penghubung antara model (data) dan view (tampilan).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;fungsi: Controller adalah untuk membantu mengelola logika aplikasi, seperti menangani permintaan dari user, mengambil data dari model, dan mengirimkan data ke view.&lt;/p&gt;

&lt;p&gt;Contoh Penggunaan dalam Studi Kasus: membuat StudentController untuk menangani logika CRUD siswa:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0i7dciucejkzvcvikhu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0i7dciucejkzvcvikhu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;catatan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;index(): Menampilkan daftar siswa.&lt;/li&gt;
&lt;li&gt;create(): Menampilkan form untuk menambahkan siswa baru.&lt;/li&gt;
&lt;li&gt;store(): Menyimpan data siswa baru ke database.&lt;/li&gt;
&lt;li&gt;edit(): Menampilkan form untuk mengedit data siswa berdasarkan ID.&lt;/li&gt;
&lt;li&gt;update(): Memperbarui data siswa yang ada di database.&lt;/li&gt;
&lt;li&gt;destroy(): Menghapus siswa berdasarkan ID.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
