<?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: Muhammad Mahib Arib</title>
    <description>The latest articles on DEV Community by Muhammad Mahib Arib (@mahib22).</description>
    <link>https://dev.to/mahib22</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%2F690715%2F3f016f2a-86aa-4fb4-9871-97866e7e330f.png</url>
      <title>DEV Community: Muhammad Mahib Arib</title>
      <link>https://dev.to/mahib22</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahib22"/>
    <language>en</language>
    <item>
      <title>Cara Install Flutter di Mac dan Menjalankan di HP Android Tanpa Android Studio</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Mon, 17 Nov 2025 10:08:36 +0000</pubDate>
      <link>https://dev.to/mahib22/cara-install-flutter-di-mac-dan-menjalankan-di-hp-android-tanpa-android-studio-3f1</link>
      <guid>https://dev.to/mahib22/cara-install-flutter-di-mac-dan-menjalankan-di-hp-android-tanpa-android-studio-3f1</guid>
      <description>&lt;p&gt;Buat kamu yang mau belajar Flutter tapi tidak mau install Android Studio full karena makan ruang puluhan GB, tenang saja. Kamu bisa pakai cara minimalis: install Flutter, Android SDK, ADB, dan Java SDK saja. Dengan cara ini, semua tetap bisa jalan di HP Android nyata, lebih ringan di Mac, dan tetap bisa build aplikasi tanpa ribet.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Apa itu Flutter&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Flutter adalah framework open-source dari Google untuk bikin aplikasi mobile, web, dan desktop pakai satu kode dasar saja. Dengan Flutter, kamu bisa bikin aplikasi Android dan iOS sekaligus tanpa harus menulis ulang kode untuk tiap platform. Yang keren, Flutter pakai bahasa Dart, dan punya fitur hot reload, jadi setiap perubahan bisa langsung terlihat di aplikasi tanpa compile ulang panjang-panjang.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Cara Install Flutter di macOS&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Unduh paket instalasi untuk mendapatkan versi stabil terbaru dari Flutter SDK di alamat web &lt;a href="https://flutter.dev/docs/development/tools/sdk/releases" rel="noopener noreferrer"&gt;https://flutter.dev/docs/development/tools/sdk/releases&lt;/a&gt;, ambil versi terbaru pada stable channel sesuai sistem operasi yang digunakan.&lt;/li&gt;
&lt;li&gt;Ekstrak berkas zip tersebut dan tempatkan folder flutter pada lokasi instalasi yang diinginkan untuk Flutter SDK.&lt;/li&gt;
&lt;li&gt;Tambahkan Flutter Tools pada PATH Anda.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export PATH="$PATH:~/development/flutter/bin"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Cek instalasi&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Flutter doctor adalah perintah untuk mengecek kelengkapan framework flutter yang Anda gunakan, seperti versi flutter yang digunakan, Android SDK yang digunakan, iOS SDK yang digunakan (hanya pada MacOS), perangkat yang sudah terhubung, dan semacamnya.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Install Platform-tools (ADB) &amp;amp; Build Tools&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install android-platform-tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Install Java SDK&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install openjdk@17
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' &amp;gt;&amp;gt; ~/.zshrc
source ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Download Android SDK Command-line Tools&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Kunjungi &lt;a href="https://developer.android.com/studio#command-line-tools-only" rel="noopener noreferrer"&gt;Android Command-line Tools&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Download “Command line tools for Mac” lalu jalankan perintah berikut.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir -p ~/Library/Android/sdk/cmdline-tools
unzip commandlinetools-mac-*_latest.zip
mv cmdline-tools ~/Library/Android/sdk/cmdline-tools/latest
echo 'export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk' &amp;gt;&amp;gt; ~/.zshrc
echo 'export PATH=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$PATH' &amp;gt;&amp;gt; ~/.zshrc
echo 'export PATH=$ANDROID_SDK_ROOT/platform-tools:$PATH' &amp;gt;&amp;gt; ~/.zshrc
source ~/.zshrc
sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Cara Jalankan Flutter di Android Device&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Aktifkan Developer Mode &amp;amp; USB Debugging di HP Android.&lt;/li&gt;
&lt;li&gt;Colok HP ke Mac via USB.&lt;/li&gt;
&lt;li&gt;Cek device di Terminal dengan menjalankan &lt;code&gt;flutter devices.
&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>flutter</category>
      <category>android</category>
      <category>mobile</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Apa itu Laravel Filament?</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Thu, 18 Jul 2024 07:00:08 +0000</pubDate>
      <link>https://dev.to/mahib22/apa-itu-laravel-filament-235d</link>
      <guid>https://dev.to/mahib22/apa-itu-laravel-filament-235d</guid>
      <description>&lt;p&gt;&lt;a href="https://filamentphp.com" rel="noopener noreferrer"&gt;Laravel Filament&lt;/a&gt; adalah package yang dirancang khusus untuk Laravel, yang memungkinkan developer untuk membuat dashboard dan panel admin dengan cepat dan mudah dengan menyediakan komponen-komponen siap pakai yang bisa langsung digunakan.&lt;/p&gt;

&lt;h4&gt;
  
  
  Instalasi Laravel Filament
&lt;/h4&gt;

&lt;p&gt;Pertama, Anda perlu menginstal Laravel Filament pada proyek Laravel. Anda bisa melakukannya dengan perintah &lt;code&gt;composer require filament/filament&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Setelah itu jalankan perintah berikut untuk membuat konfigurasi filament menjadi publik &lt;code&gt;php artisan vendor:publish --tag=filament-config&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Lalu install Filament Panel Builder dengan menjalankan perintah &lt;code&gt;php artisan filament:install --panels&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Buat akun admin pertama Anda dengan menjalankan perintah &lt;code&gt;php artisan filament:user&lt;/code&gt; dan ikuti petunjuknya untuk memasukkan email dan kata sandi Anda.&lt;/p&gt;

&lt;p&gt;Jalankan server dan akses url &lt;code&gt;http://localhost:8000/admin/login&lt;/code&gt;. Anda juga bisa mengubah pada file &lt;strong&gt;web.php&lt;/strong&gt; agar ketika mengakses url &lt;code&gt;http://localhost:8000&lt;/code&gt; langsung meredirect ke url &lt;code&gt;http://localhost:8000/admin/login&lt;/code&gt; seperti berikut.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Route::get('/', function () {
    return redirect()-&amp;gt;route('filament.admin.auth.login');
});


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

&lt;/div&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%2Fewlui2dtpieb9bgxj5f6.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%2Fewlui2dtpieb9bgxj5f6.png" alt="Login Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Silahkan login dengan email dan password yang sudah dibuat tadi.&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%2Fdlclqozufdox1cglg5k5.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%2Fdlclqozufdox1cglg5k5.png" alt="Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Membuat Resource CRUD
&lt;/h4&gt;

&lt;p&gt;Laravel Filament menyediakan generator CRUD yang memudahkan pembuatan operasi Create, Read, Update, dan Delete untuk model tertentu. Misalnya, Anda ingin membuat CRUD untuk model Category. Anda bisa menjalankan perintah &lt;code&gt;php artisan make:filament-resource Category&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Perintah tersebut akan menghasilkan beberapa file, yaitu:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

-- CategoryResources.php
-- CategoryResource
   -- Pages
      -- CreateCategory.php
      -- EditCategory.php
      -- ListCategory.php


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

&lt;/div&gt;

&lt;p&gt;Jika Anda lihat pada sidebar terdapat menu navigasi baru yaitu Categories. Jika Anda ingin mengganti nama menu tersebut, buka file &lt;strong&gt;CategoryResources.php&lt;/strong&gt; dan tambahkan code berikut.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

protected static ?string $navigationLabel = 'Manage Category';


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

&lt;/div&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%2Fultspcrd03bodj31bz01.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%2Fultspcrd03bodj31bz01.png" alt="Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Mengatur Resource
&lt;/h4&gt;

&lt;p&gt;Setelah resource dibuat, Anda bisa mengatur kolom apa saja yang ingin ditampilkan.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

public static function table(Table $table): Table
    {
        return $table
            -&amp;gt;columns([
                Tables\Columns\TextColumn::make('code'),
                Tables\Columns\TextColumn::make('name'),
                Tables\Columns\ImageColumn::make('image')-&amp;gt;disk('public'),
            ])
            -&amp;gt;filters([
                //
            ])
            -&amp;gt;actions([
                Tables\Actions\EditAction::make(),
            ])
            -&amp;gt;bulkActions([
                Tables\Actions\BulkActionGroup::make([
                    Tables\Actions\DeleteBulkAction::make(),
                ]),
            ]);
    }


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

&lt;/div&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%2Fem44jf0qjzrx7cezng28.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%2Fem44jf0qjzrx7cezng28.png" alt="Table"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Menggunakan Form Builder
&lt;/h4&gt;

&lt;p&gt;Selain menampilkan data, Anda juga bisa membuat formulir untuk menambah atau mengedit category. Filament menyediakan Form Builder yang memudahkan pembuatan formulir ini.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

public static function form(Form $form): Form
    {
        return $form
            -&amp;gt;schema([
                Forms\Components\TextInput::make(name: 'code')-&amp;gt;required()-&amp;gt;unique(table: Category::class),
                Forms\Components\TextInput::make(name: 'name')-&amp;gt;required(),
                Forms\Components\FileUpload::make('image')-&amp;gt;disk('public')-&amp;gt;required()
            ]);
    }


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

&lt;/div&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%2F4c9sm3zu045asi5mrtoi.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%2F4c9sm3zu045asi5mrtoi.png" alt="Form"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>filament</category>
    </item>
    <item>
      <title>Apa itu Laravel Blueprint?</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Wed, 17 Jul 2024 06:25:57 +0000</pubDate>
      <link>https://dev.to/mahib22/apa-itu-laravel-blueprint-5747</link>
      <guid>https://dev.to/mahib22/apa-itu-laravel-blueprint-5747</guid>
      <description>&lt;p&gt;&lt;a href="https://blueprint.laravelshift.com" rel="noopener noreferrer"&gt;Laravel Blueprint&lt;/a&gt; adalah package untuk Laravel yang memudahkan pembuatan komponen aplikasi seperti model, controller, dan migration menggunakan file definisi sederhana. Dengan Blueprint, Anda bisa mendefinisikan struktur aplikasi dalam format YAML dan menghasilkan kode yang diperlukan secara otomatis.&lt;/p&gt;

&lt;p&gt;Kita akan coba latihan dengan studi kasus membuat toko sepatu.&lt;/p&gt;

&lt;p&gt;Lakukan instalasi package dengan menjalankan perintah &lt;code&gt;composer require -W --dev laravel-shift/blueprint&lt;/code&gt;. Kemudian jalankan perintah &lt;code&gt;php artisan blueprint:new&lt;/code&gt;. Perintah tersebut akan menghasilkan sebuah file &lt;strong&gt;draft.yaml&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Buka file &lt;strong&gt;draft.yaml&lt;/strong&gt; kemudian isi sebagai berikut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;models:
  Category:
    code: string unique
    name: string
    img: string
    relationships:
      hasMany: Shoe

  Shoe:
    code: string unique
    name: string
    description: text
    price: integer
    stock: integer
    img: string
    category_id: foreign

controllers:
  CategoryController:
    index:
      query: all
      render: category.index
    show:
      find: id
      render: category.show
    create:
      render: category.create
    store:
      validate: code, name, img
      save: category
      redirect: category.index
    edit:
      find: id
      render: category.edit
    update:
      find: id
      validate: code, name, img
      update: category
      redirect: category.show
    destroy:
      find: id
      delete: category
      redirect: category.index

  ShoeController:
    index:
      query: all
      render: shoe.index
    show:
      find: id
      render: shoe.show
    create:
      render: shoe.create
    store:
      validate: code, name, description, price, stock, img
      save: shoe
      redirect: shoe.index
    edit:
      find: id
      render: shoe.edit
    update:
      find: id
      validate: code, name, description, price, stock, img
      update: shoe
      redirect: shoe.show
    destroy:
      find: id
      delete: shoe
      redirect: shoe.index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Penjelasan dari kode tersebut:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Category dan Shoe adalah nama model.&lt;/li&gt;
&lt;li&gt;code, name, dan img adalah kolom-kolom tabel categories.&lt;/li&gt;
&lt;li&gt;relationships hasMany menandakan bahwa tabel categories memiliki relasi one to many ke tabel shoes.&lt;/li&gt;
&lt;li&gt;code, name, description, price, stock dan img adalah kolom-kolom tabel shoes.&lt;/li&gt;
&lt;li&gt;category_id merupakan foreign key ke tabel categories.&lt;/li&gt;
&lt;li&gt;CategoryController dan ShoeController adalah nama controller.&lt;/li&gt;
&lt;li&gt;index, show, create, store, edit, update, destroy adalah metode-metode di controller.&lt;/li&gt;
&lt;li&gt;query: all berarti metode index akan mengambil semua entri di tabel.&lt;/li&gt;
&lt;li&gt;find: id berarti metode akan mencari entri berdasarkan ID.&lt;/li&gt;
&lt;li&gt;validate akan memvalidasi input.&lt;/li&gt;
&lt;li&gt;save, update, delete melakukan operasi pada model.&lt;/li&gt;
&lt;li&gt;render mengarahkan ke view tertentu.&lt;/li&gt;
&lt;li&gt;redirect mengarahkan ke route tertentu setelah operasi selesai.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Jika sudah selesai, jalankan perintah &lt;code&gt;php artisan blueprint:build&lt;/code&gt;. Perintah ini akan menghasilkan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model Category dan Shoe.&lt;/li&gt;
&lt;li&gt;Migration untuk membuat tabel categories dan shoes dengan kolom yang telah didefinisikan.&lt;/li&gt;
&lt;li&gt;Factory dan Seeder.&lt;/li&gt;
&lt;li&gt;Controller CategoryController dan ShoeController&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bagaimana jika kita memiliki perubahan pada file &lt;strong&gt;draft.yaml&lt;/strong&gt;? Jalankan terlebih dahulu perintah &lt;code&gt;php artisan blueprint:erase&lt;/code&gt;, perintah ini akan menghapus semua file yang sudah dibuat tadi. Kemudian jalankan kembali perintah &lt;code&gt;php artisan blueprint:build&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Dengan menggunakan Laravel Blueprint, Anda bisa dengan cepat mendefinisikan dan menghasilkan struktur dasar aplikasi Anda tanpa menulis kode secara manual. Laravel Blueprint sangat berguna untuk mempercepat proses pengembangan awal dan menjaga konsistensi dalam kode yang dihasilkan.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>blueprint</category>
    </item>
    <item>
      <title>Fetching Data Dengan Alpine JS</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Wed, 10 Jul 2024 12:57:26 +0000</pubDate>
      <link>https://dev.to/mahib22/fetching-data-dengan-alpine-js-4l15</link>
      <guid>https://dev.to/mahib22/fetching-data-dengan-alpine-js-4l15</guid>
      <description>&lt;p&gt;Kali ini kita akan belajar fetching data dari API dengan menggunakan Alpine JS. Kita akan buat website yang menampilkan daftar klub sepak bola yang bermain di Liga Premier Inggris yang diambil dari API &lt;a href="https://www.thesportsdb.com/api/v1/json/3/search_all_teams.php?l=English%20Premier%20League" rel="noopener noreferrer"&gt;berikut&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://alpinejs.dev/" rel="noopener noreferrer"&gt;Alpine JS&lt;/a&gt; merupakan sebuah lightweight framework Javascript yang dapat kita manfaatkan untuk membuat sebuah interaktif website tanpa harus menggunakan framework seperti React atau Vue. Ketika menggunakan Alpine JS kita dapat dengan mudah langsung menerapkan sifat Javascript ke dalam file HTML tanpa perlu menuliskannya secara terpisah.&lt;/p&gt;

&lt;p&gt;Silahkan buat file HTML dengan nama &lt;em&gt;index.html&lt;/em&gt;, kemudian sisipkan kode berikut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8" /&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&amp;gt;
    &amp;lt;title&amp;gt;Latihan Alpine JS&amp;lt;/title&amp;gt;

    &amp;lt;!-- Import Alpine JS --&amp;gt;
    &amp;lt;script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;!-- Import Tailwind --&amp;gt;
    &amp;lt;script src="https://cdn.tailwindcss.com"&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;!-- Google Fonts --&amp;gt;
    &amp;lt;link rel="preconnect" href="https://fonts.googleapis.com" /&amp;gt;
    &amp;lt;link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /&amp;gt;
    &amp;lt;link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&amp;amp;display=swap" rel="stylesheet"/&amp;gt;

    &amp;lt;style&amp;gt;
      * {
        font-family: "Roboto", sans-serif;
      }
    &amp;lt;/style&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;

  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

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

&lt;/div&gt;



&lt;p&gt;Selanjutnya kita akan membuat komponen card menggunakan Tailwind CSS.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="container px-4 py-12 mx-auto"&amp;gt;
  &amp;lt;div class="flex flex-wrap"&amp;gt;
    &amp;lt;div class="lg:w-1/4 md:w-1/2 p-4 w-full"&amp;gt;
      &amp;lt;img alt="logo" class="object-cover h-56 mx-auto" src="" /&amp;gt;
      &amp;lt;div class="mt-4"&amp;gt;
        &amp;lt;h2 class="text-gray-500 text-xs tracking-widest mb-1"&amp;gt;&amp;lt;/h2&amp;gt;
        &amp;lt;h1 class="text-gray-900 text-xl font-medium"&amp;gt;&amp;lt;/h1&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kemudian kita akan melakukan fetching data dan menampilkannya pada komponen card.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="flex flex-wrap" x-data="{ teams: [] }" x-init="fetch('https://www.thesportsdb.com/api/v1/json/3/search_all_teams.php?l=English%20Premier%20League').then(response =&amp;gt; response.json()).then(data =&amp;gt; { teams = data.teams })"&amp;gt;
  &amp;lt;template x-for="team in teams"&amp;gt;
    &amp;lt;div class="lg:w-1/4 md:w-1/2 p-4 w-full"&amp;gt;
      &amp;lt;img x-bind:alt="team.idTeam" class="object-cover h-56 mx-auto" x-bind:src="team.strBadge" /&amp;gt;
      &amp;lt;div class="mt-4"&amp;gt;
        &amp;lt;h2 class="text-gray-500 text-xs tracking-widest mb-1" x-text="team.strLocation"&amp;gt;&amp;lt;/h2&amp;gt;
        &amp;lt;h1 class="text-gray-900 text-xl font-medium" x-text="team.strTeam"&amp;gt;&amp;lt;/h1&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/template&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selamat! Anda berhasil melakukan fetching API dengan menggunakan Alpine JS dan menampilkannya kepada pengguna, berikut ini adalah hasilnya.&lt;/p&gt;

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

&lt;p&gt;Berikut ini penjelasan dari kode yang dibuat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;x-data&lt;/strong&gt; berfungsi untuk menampung data logic Javascript agar berjalan langsung pada tag HTML tersebut. Pada kode tersebut kita membuat satu variabel dengan nama teams yang bertipe data array. Variabel ini bertujuan untuk menampung data hasil fetching pada fungsi tersebut.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;x-init&lt;/strong&gt; bertujuan untuk melakukan inisialisasi sebelum komponen tersebut di load. Pada kode tersebut kita menyisipkan fungsi fetch yang bertujuan untuk mengambil data dari endpoint API yang sudah kita siapkan sebelumnya. Kemudian sebelum halaman browser ditampilkan, Alpine JS akan melakukan proses fetching di belakang layar kemudian hasil dari fetching tersebut ditampung kedalam variabel teams yang sudah dideklarasikan di awal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;x-for&lt;/strong&gt; digunakan untuk melakukan proses perulangan dari variabel teams kemudian ditampung kembali dalam variabel team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;x-bind&lt;/strong&gt; untuk menampilkan gambar dan &lt;strong&gt;x-text&lt;/strong&gt; untuk mencetak langsung data kedalam tampilan HTML.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>alpinejs</category>
      <category>fetch</category>
      <category>api</category>
    </item>
    <item>
      <title>Mengirim Pesan WhatsApp dengan JavaScript</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Tue, 09 Jul 2024 06:35:51 +0000</pubDate>
      <link>https://dev.to/mahib22/mengirim-pesan-whatsapp-dengan-javascript-269j</link>
      <guid>https://dev.to/mahib22/mengirim-pesan-whatsapp-dengan-javascript-269j</guid>
      <description>&lt;p&gt;Pada kesempatan kali ini saya akan membagikan cara mengirimkan pesan WhatsApp secara otomatis menggunakan library &lt;a href="https://pptr.dev/" rel="noopener noreferrer"&gt;Puppeteer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Apa itu Puppeteer? Puppeteer adalah sebuah library Node.js yang menyediakan API tingkat tinggi untuk mengontrol browser Chrome atau Chromium secara programatik. Puppeteer digunakan untuk mengotomatisasi tugas-tugas di browser, seperti Web Scraping, Pengujian Web, Mengambil Screenshot, Menghasilkan PDF, dan Interaksi dengan Halaman. Puppeteer sangat berguna untuk pengembang web dan penguji karena memungkinkan otomatisasi tugas yang biasanya memerlukan interaksi manual dengan browser.&lt;/p&gt;

&lt;p&gt;Silahkan buat folder untuk menyimpan project latihan kali ini, kemudian buat file &lt;strong&gt;index.js&lt;/strong&gt; kemudian jalankan &lt;code&gt;npm init&lt;/code&gt; setelah itu jalankan &lt;code&gt;npm i puppeteer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Tulis kode dibawah ini pada &lt;strong&gt;index.js&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import puppeteer from 'puppeteer';

const scrape = async (url) =&amp;gt; {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(url);
};

scrape("https://web.whatsapp.com");

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

&lt;/div&gt;



&lt;p&gt;Buka &lt;a href="https://web.whatsapp.com" rel="noopener noreferrer"&gt;WhatsApp Web&lt;/a&gt; kemudian lakukan &lt;em&gt;inspect element&lt;/em&gt; dan pilih nama kontak yang ingin dikirimi pesan. Sebagai contoh saya akan mengirim pesan dengan nama kontak yaitu Asep.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;await page.waitForSelector("span[title='Asep']");
const target = await page.$("span[title='Asep']");
await target.click();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kemudian &lt;em&gt;copy selector&lt;/em&gt; pada kolom tempat menulis pesan pada &lt;em&gt;chat&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const inp = await page.$(
    "#main &amp;gt; footer &amp;gt; div._3SvgF._1mHgA.copyable-area &amp;gt; div.DuUXI &amp;gt; div &amp;gt; div._1awRl.copyable-text.selectable-text"
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kemudian tulis pesan yang ingin dikirim, Anda juga bisa melakukan pengulangan pada pesan yang dikirim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for (let i = 0; i &amp;lt; 100; i++) { // lakukan pengulangan sesuai keinginan
  await inp.type("halo!"); // isi pesan
  await page.keyboard.press("Enter");
}
await browser.close();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sehingga keseluruhan kode menjadi seperti ini.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import puppeteer from 'puppeteer';

const scrape = async (url) =&amp;gt; {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(url);
  await page.waitForSelector("span[title='Asep']");
  const target = await page.$("span[title='Asep']");
  await target.click();
  const inp = await page.$(
    "#main &amp;gt; footer &amp;gt; div._3SvgF._1mHgA.copyable-area &amp;gt; div.DuUXI &amp;gt; div &amp;gt; div._1awRl.copyable-text.selectable-text"
  );

  for (let i = 0; i &amp;lt; 100; i++) {
    await inp.type("halo!");
    await page.keyboard.press("Enter");
  }
  await browser.close();
};

scrape("https://web.whatsapp.com");

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

&lt;/div&gt;



&lt;p&gt;Jalankan kode dengan perintah &lt;code&gt;node index.js&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>whatsapp</category>
      <category>puppeteer</category>
      <category>automation</category>
    </item>
    <item>
      <title>Dark Mode React &amp; Tailwind CSS</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Sat, 06 Aug 2022 06:10:00 +0000</pubDate>
      <link>https://dev.to/mahib22/dark-mode-react-tailwind-css-4m4g</link>
      <guid>https://dev.to/mahib22/dark-mode-react-tailwind-css-4m4g</guid>
      <description>&lt;p&gt;Halo guys, pada kali ini saya akan membagikan cara menerapkan dark mode pada project React kita dengan menggunakan Tailwind CSS. Langsung saja kita mulai.&lt;/p&gt;

&lt;p&gt;Silahkan persiapkan project Anda. Anda bisa mengikuti artikel berikut untuk installasi project React dan Tailwind CSS. &lt;a href="https://dev.to/mahib22/cara-install-tailwind-css-pada-react-project-46en"&gt;Cara Install Tailwind CSS pada React project.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jika sudah, buka file &lt;em&gt;tailwind.config.js&lt;/em&gt; tambahkan kode berikut pada bagian &lt;em&gt;module.exports&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module.exports = {
  darkMode: 'class',
  // ...
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kode tersebut berfungsi untuk mengaktifkan class dark pada Tailwind. Kelas tersebut akan aktif jika pada mode dark. Untuk menggunakannya anda hanya perlu menuliskan &lt;em&gt;dark:&lt;/em&gt; diikuti dengan nama class. Anda bisa lihat lebih lanjut pada artikel berikut. &lt;a href="https://tailwindcss.com/docs/dark-mode" rel="noopener noreferrer"&gt;Dark Mode - Tailwind CSS.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selanjutnya kita akan menggunakan package dari NPM untuk membuat ikonnya. Jadi kita tidak perlu repot mempersiapkan ikon sendiri karena pada package tersebut telah disiapkan ikon untuk mode gelap dan terang dan juga terdapat animasi pada transisinya. Untuk lebih lengkapnya, Anda bisa lihat pada artikel berikut. &lt;a href="https://www.npmjs.com/package/react-toggle-dark-mode" rel="noopener noreferrer"&gt;React Toggle Dark Mode.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lakukan installasi dan tunggu hingga selesai.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i react-toggle-dark-mode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pada kasus ini, saya akan menempatkan tombol toggle dark mode pada bagian header. Berikut ini kode file &lt;em&gt;Header.js&lt;/em&gt; saya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from "react";
import Switcher from "./Switcher";

function Header() {
  return (
    &amp;lt;header className="bg-purple-500 text-white font-bold text-3xl dark:bg-slate-800"&amp;gt;
      &amp;lt;div className="container flex justify-between p-5 mx-auto items-center uppercase"&amp;gt;
        &amp;lt;h1&amp;gt;Example App&amp;lt;/h1&amp;gt;
        &amp;lt;Switcher /&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/header&amp;gt;
  );
}

export default Header;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Buat sebuah file untuk meletakkan kode toggle dark mode Anda. Pada kasus ini saya memberi nama file tersebut dengan &lt;em&gt;Switcher.js&lt;/em&gt;. Letakkan komponen &lt;em&gt;Switcher&lt;/em&gt; tersebut pada &lt;em&gt;Header&lt;/em&gt; dan lakukan import berkas. Berikut ini isi dari kode &lt;em&gt;Switcher.js&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from "react";
import { DarkModeSwitch } from "react-toggle-dark-mode";
import UseDarkSide from "./UseDarkSide";

function Switcher() {
  const [colorTheme, setTheme] = UseDarkSide();
  const [darkSide, setDarkSide] = useState(
    colorTheme === "light" ? true : false
  );
  const toggleDarkMode = (checked) =&amp;gt; {
    setTheme(colorTheme);
    setDarkSide(checked);
  };

  return (
    &amp;lt;DarkModeSwitch checked={darkSide} onChange={toggleDarkMode} size={30} /&amp;gt;
  );
}

export default Switcher;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Komponen &lt;em&gt;DarkModeSwitch&lt;/em&gt; adalah komponen bawaan dari package yang kita install tadi.&lt;/p&gt;

&lt;p&gt;Terakhir kita buat satu buah file untuk menyimpan pilihan tema mode kita pada local storage. Jadi jika kita refresh atau kita tutup browser, tema mode yang aktif tidak berubah. Buat file bernama &lt;em&gt;UseDarkSide&lt;/em&gt; dan berikut ini isi dari file tersebut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useEffect, useState } from "react";

function UseDarkSide() {
  const [theme, setTheme] = useState(localStorage.theme);
  const colorTheme = theme === "dark" ? "light" : "dark";
  useEffect(() =&amp;gt; {
    const root = window.document.documentElement;
    root.classList.remove(colorTheme);
    root.classList.add(theme);
    localStorage.setItem("theme", theme);
  }, [theme, colorTheme]);

  return [colorTheme, setTheme];
}

export default UseDarkSide;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Selesai dan fitur dark mode Anda sudah bisa digunakan.&lt;/p&gt;

</description>
      <category>react</category>
      <category>tailwindcss</category>
      <category>npm</category>
    </item>
    <item>
      <title>Cara Install Tailwind CSS pada React project</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Fri, 29 Jul 2022 10:55:00 +0000</pubDate>
      <link>https://dev.to/mahib22/cara-install-tailwind-css-pada-react-project-46en</link>
      <guid>https://dev.to/mahib22/cara-install-tailwind-css-pada-react-project-46en</guid>
      <description>&lt;p&gt;Halo guys, pada kali ini saya akan membagikan bagaimana cara menggunakan &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt; pada project React kita. Langsung saja kita  mulai.&lt;/p&gt;

&lt;p&gt;Pastikan sudah menginstall &lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;nodejs&lt;/a&gt; pada komputer/laptop Anda. Karena untuk membuat project React, kita perlu menggunakan NPM yaitu dengan cara menginstall nodejs. Untuk mengecek apakah nodejs sudah terpasang ketikkan perintah berikut pada terminal Anda.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

node -v


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

&lt;/div&gt;

&lt;p&gt;Jika muncul versi, maka nodejs sudah terpasang. Lalu untuk mengecek versi NPM ketikkan perintah berikut.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm -v


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

&lt;/div&gt;

&lt;p&gt;Jika sudah muncul versi NPM, maka kita sudah bisa untuk membuat project React.&lt;/p&gt;

&lt;p&gt;Pertama, buat project React terlebih dahulu jika kita belum memiliki project React. Jika Anda sudah memiliki project React, silahkan lewati tahap ini. Kita akan membuat project React baru menggunakan &lt;a href="https://create-react-app.dev/" rel="noopener noreferrer"&gt;Create React App&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Buka terminal, pastikan Anda sudah berada pada direktori folder tempat dimana Anda ingin menyimpan project React. Ketikkan perintah berikut.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npx create-react-app my-project


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

&lt;/div&gt;

&lt;p&gt;Anda bebas memberikan nama project yang ingin diinstall, pada kali ini saya akan memberikan contoh dengan nama &lt;em&gt;my-project&lt;/em&gt;. Tunggu proses installasi berjalan hingga selesai. Jika sudah selesai, masuk ke direktori project React yang sudah kita buat tadi. Ketikkan perintah berikut.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

cd my-project


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

&lt;/div&gt;

&lt;p&gt;Untuk menjalankan project React, ketikkan perintah berikut.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm start


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

&lt;/div&gt;

&lt;p&gt;Maka browser akan otomatis membuka halaman &lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;http://localhost:3000/&lt;/a&gt; dan Anda akan melihat tampilan awal dari project React yang sudah diinstall.&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%2F620x4hylb4xlmkecza0e.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%2F620x4hylb4xlmkecza0e.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selanjutnya install Tailwind CSS dengan mengetikkan perintah berikut pada terminal.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install -D tailwindcss postcss autoprefixer


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

&lt;/div&gt;

&lt;p&gt;Tunggu hingga selesai, kemudian ketik kembali perintah berikut.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npx tailwindcss init -p


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

&lt;/div&gt;

&lt;p&gt;Jika semua berjalan lancar, maka Tailwind CSS sudah berhasil diinstall. Selanjutnya buka project React kita pada code editor. Kemudian buka file &lt;em&gt;tailwind.config.js&lt;/em&gt; edit menjadi seperti ini.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

/** @type {import('tailwindcss').Config} */ 
module.exports = {
  content: [
    "./src/**/*.{js,jsx,ts,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}


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

&lt;/div&gt;

&lt;p&gt;Kemudian untuk dapat menggunakan Tailwind CSS edit file &lt;em&gt;index.css&lt;/em&gt; yang berada pada folder &lt;em&gt;src&lt;/em&gt; menjadi seperti ini.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

@tailwind base;
@tailwind components;
@tailwind utilities;


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

&lt;/div&gt;

&lt;p&gt;Proses installasi selesai dan Tailwind CSS sudah dapat digunakan. Untuk mengecek apakah sudah berhasil terpasang, silahkan coba edit file &lt;em&gt;App.js&lt;/em&gt; menjadi seperti ini.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;p className="text-3xl font-bold underline text-red-500"&amp;gt;
  Edit &amp;lt;code&amp;gt;src/App.js&amp;lt;/code&amp;gt; and save to reload.
&amp;lt;/p&amp;gt;


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

&lt;/div&gt;

&lt;p&gt;Simpan dan jalankan project, maka Anda akan melihat perbedaannya.&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%2Fkpt4i6d6jdrgob3mjxkc.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%2Fkpt4i6d6jdrgob3mjxkc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>react</category>
    </item>
    <item>
      <title>VAR, LET, DAN CONST JAVASCRIPT ES6</title>
      <dc:creator>Muhammad Mahib Arib</dc:creator>
      <pubDate>Mon, 09 May 2022 04:06:21 +0000</pubDate>
      <link>https://dev.to/mahib22/var-let-dan-const-javascript-es6-cgf</link>
      <guid>https://dev.to/mahib22/var-let-dan-const-javascript-es6-cgf</guid>
      <description>&lt;p&gt;Pada artikel kali ini saya akan menjelaskan perbedaan dalam penggunaan var, let, dan const pada JavaScript ES6.&lt;/p&gt;

&lt;h2&gt;
  
  
  CONST
&lt;/h2&gt;

&lt;p&gt;Nilainya hanya dapat dibuat sekali dan hanya bisa dipakai di dalam scope.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(true){
 const nama = "John Doe";
 nama = "Steven"; // error, karena tidak boleh ganti nilai
}

console.log(nama); // error, karena di luar if
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  LET
&lt;/h2&gt;

&lt;p&gt;Nilainya bisa diubah dan hanya bisa dipakai di dalam scope.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(true){
 let nama = "John Doe";
 nama = "Steven"; // berhasil ganti nilai
}

console.log(nama); // error, karena di luar if
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  VAR
&lt;/h2&gt;

&lt;p&gt;Nilainya bisa diubah dan bisa dipakai di luar scope.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(true){
 var nama = "John Doe";
 nama = "Steven"; // berhasil ganti nilai
}

console.log(nama); // berhasil walaupun di luar if
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
    </item>
  </channel>
</rss>
