100% Refund

Lihat Kelas
flash sale
hamburger-menu

Tips front-end

Meningkatkan skills menjadi 1% lebih baik

Kelas Tutorial Fetching Data Menggunakan Alpine JS di BuildWithAngga

Tutorial Fetching Data Menggunakan Alpine JS

Setelah artikel sebelumnya yaitu Berkenalan Dengan Alpine JS dan Membuat Modal Dengan Alpine JS maka dalam artikel kali ini kita akan membahas studi kasus penggunaannya agar kita memahami keunggulan dari teknologi yang satu ini. Alpine JS sendiri 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 kedalam file HTML tanpa perlu menuliskannya secara terpisah. Maka dari itu dalam artikel kali ini kita akan melakukan studi kasus yaitu Fetching Data Menggunakan Alpine JS. So let’s start the code! Persiapan Silahkan kamu buat file HTML dengan nama index.html, kemudian sisipkan kode berikut kedalam file HTML kamu. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Tutorial Fetching Data Menggunakan Alpine JS</title> <!-- Import Alpine JS --> <script defer src="<https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js>"></script> <!-- Fonts Google --> <link rel="preconnect" href="<https://fonts.googleapis.com>" /> <link rel="preconnect" href="<https://fonts.gstatic.com>" crossorigin /> <link href="<https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap>" rel="stylesheet" /> <link href="<https://fonts.googleapis.com/css2?family=Inter&display=swap>" rel="stylesheet" /> <!-- Tailwind --> <script src="<https://cdn.tailwindcss.com>"></script> <!-- Font Awesome --> <link rel="stylesheet" href="<https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css>" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <style> body { font-family: "Poppins", sans-serif; } </style> </head> <body> <div class="container mx-auto h-96 p-3 w-full max-w-screen-md"> <h1 class="font-bold md:text-3xl mb-3">Fetching Data Menggunakan Alpine JS</h1> </div> </body> </html> Akan didapatkan hasil seperti ini: Nothing special, mari kita lanjutkan lebih dalam. Lets’ Code Slicing Komponen Card Setelah mempersiapkan project, kita akan membuat komponen card menggunakan Tailwind CSS, berikut kode yang akan kita gunakan: <div> <div class="grid grid-cols-4 gap-4"> <div> <div class="card h-full w-64 bg-white border rounded-md p-2 flex flex-col justify-between"> <div class="card-image mb-3"> <img src="<https://placeholder.com/100x100>" alt="Product Image" class="w-full rounded-md h-32" /> </div> <div class="card-title"> <h1 class="font-bold">Title</h1> </div> <div class="card-body my-3"> <p class="text-gray-500 my-3 text-xs">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Suscipit, natus?</p> </div> <div class="card-footer"> <button class="rounded-md py-2 px-5 bg-sky-500 text-white text-xs">See More</button> </div> </div> </div> </div> </div> Akan didapatkan komponen seperti ini: Fetching Data Setelah membuat komponen card, mari kita melakukan proses pengambilan data atau fetching data menggunakan Alpine JS. Link URL endpoint API yang akan digunakan bisa kamu lihat disini, maka akan didapatkan: <https://dummyjson.com/docs/products> Kemudian kita akan melakukan fetching data dengan membuat fungsi bernama fetchProduct dan menggunakan kata kunci fetch yang disertai dengan proses chaining dengan method then: <script> function fetchProduct() { fetch("<https://dummyjson.com/products>") .then((res) => res.json()) .then((result) => { const data = result.products; console.log(data); }); } fetchProduct(); </script> Apabila apabila dijalankan akan didapatkan hasil sebagai berikut: Tapi sampai disini kita belum menampilkan data tersebut kedalam komponen card yang sudah dibuat sebelumnya. Langkah selanjutnya mari tampilkan data tersebut menjadi sebuah tampilan yang dimengerti pengguna. Tampilkan Ke Pengguna Untuk menampilkan data tersebut kita harus memindahkan proses logic sebelumnya kedalam container / pembungkus dari komponen card sebelumnya. Untuk lebih jelasnya perhatikan kode berikut: <div x-data="{ products: [] }" x-init="fetch('<https://dummyjson.com/products>') .then(response => response.json()) .then(data => { products = data.products })" > <!-- Komponen Card --> </div> Pada kode tersebut kita menggunakan dua directive yang disediakan oleh Alpine JS, yaitu: x-data berfungsi untuk menampung data logic Javascript agar berjalan langsung pada tag HTML tersebut. Pada kode tersebut kita membuat satu variabel dengan nama products yang bertipe data array. Variabel ini bertujuan untuk menampung data hasil fetching pada fungsi tersebut. x-init 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 products yang sudah dideklarasikan di awal. Langkah terakhir kita akan melakukan proses perulangan dari data tersebut agar bisa ditampilkan menjadi sebuah halaman yang dapat dimengerti pengguna. Untuk mencapai hal tersebut kita akan menggunakan directive dari Alpine JS yaitu x-for. <div class="grid grid-cols-4 gap-4"> <template x-for="product in products"> <div class="card bg-white border rounded-md p-2 flex flex-col justify-between"> <div class="card-image mb-3"> <img x-bind:src="product.thumbnail" x-bind:alt="product.description" class="w-full rounded-md h-32" /> </div> <div class="card-title"> <h1 class="font-bold text-md" x-text="product.title"></h1> </div> <div class="card-body my-3"> <p class="text-gray-500 my-3 truncate text-sm" x-text="product.description"></p> </div> <div class="card-footer"> <button class="rounded-md py-2 px-5 bg-sky-500 text-white">See More</button> </div> </div> </template> </div> Pada kode tersebut kita melakukan proses perulangan dari variabel products kemudian ditampung kembali dalam variabel product. Apabila kamu perhatikan, kita menggunakan directive bernama x-bind untuk menampilkan gambar berdasarkan data yang disediakan oleh endpoint tersebut. ... <img x-bind:src="product.thumbnail" x-bind:alt="product.description" class="w-full rounded-md h-32" /> ... Directive ini bertujuan agar kita dapat mencetak nilai dari Javascript langsung kedalam atribut HTML yang diinginkan. Kita juga menggunakan directive x-text untuk mencetak langsung data kedalam tampilan HTML. Apabila kita cek hasilnya akan didapatkan seperti ini: Selamat! kamu telah berhasil melakukan proses fetching dengan menggunakan Alpine JS dan langsung menampilkannya kepada pengguna tanpa harus menggunakan framework besar seperti React atau Vue. Kesimpulan Cukup simple bukan? Ketika menggunakan framework ini, kita dapat dengan mudah membuat website yang dinamis hanya dengan memanfaatkan HTML sebagai file utama dan tentunya ini sangat mempercepat waktu development website kamu. Oiya satu lagi, apabila kamu ingin mendalami dunia web development lebih jauh, yuk bergabung dalam kelas premium yang disediakan oleh BuildWithAngga. Di dalamnya kamu dapat belajar lebih banyak studi kasus dan dapat menambah portfolio kamu untuk menunjang karir yang akan datang. Mari bergabung dan sampai jumpa dikelas!

Kelas Membuat Elemen Card Dengan SCSS di BuildWithAngga

Membuat Elemen Card Dengan SCSS

Pada artikel kali ini kita akan menerapkan studi kasus dengan membuat elemen card sederhana setelah Berkenalan Dengan SCSS dan SASS dan bagaimana Menggunakan SCSS/SASS pada file HTML kita. Persiapan Kita akan membuat project ini dengan menggunakan Vs Code. Apabila kamu belum menginstallnya maka bisa men-download disini. Lalu untuk referensi design akan menggunakan dari link figma community disini. Let’s Code 1. Untuk menyamakan project yang akan dibangun, silakan kamu ikuti pembuatan struktur folder dan file berikut: Untuk file image bisa kamu ganti dengan sesuai yang kamu inginkan. Apabila ingin sama persis silakan download image tersebut pada link figma community sebelumnya. 2. Kemudian pastikan sudah menginstall extension Live Sass Compiler pada Vs Code kamu karena kita akan melakukan kompilasi/perubahan dari file SCSS ke format CSS dengan menggunakan extension ini. 3. Lalu pada file index.html, silakan buat struktur HTML berikut: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Belajar Elemen Card Dengan SCSS</title> <!-- Font Inter --> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" /> <!-- CSS hasil kompilasi --> <link rel="stylesheet" href="./scss/style.css" /> </head> <body> <div class="card"> <div class="card-image"> <img src="./image/image.png" alt="Card Image" /> </div> <div class="card-body"> <div class="card-body-title">Headline</div> <p> Write an amazing description in this dedicated card section. Each word counts. </p> </div> <div class="card-footer"> <button>See More</button> </div> </div> </body> </html> Apabila kita buka file tersebut ke browser akan didapatkan: Masih belum nyaman dilihat bukan, maka pada langkah selanjutnya mari kita proses styling elemen tersebut🖌 Styling It Setelah membuat struktur HTML, maka pada langkah ini kita akan melakukan proses styling. Silakan kamu buka file style.scss nya dan ikuti langkah di bawah. 1. Buka file style.scss kamu, dan klik tanda Watch SASS, pada bagian bawah bar Vs Code Jika sudah maka akan muncul 2 buah file sebagai berikut: Maka sampai sini kamu sudah berhasil melakukan proses kompilasi dari file SCSS ke file CSS. 2. Persiapkan Variabel Color dan Font Weight Pada langkah ini kita mempersiapkan variabel yang akan kita gunakan pada elemen card tersebut: // Color Variabel $background-color: #e5e5e5; $gray: #425466; $purple: #4c6fff; // Font Weight $regular: 400; $semi-bold: 600; 3. Lakukan persiapan styling pada background dan semua elemen // Global * { box-sizing: border-box; } // Styling Body body { background-color: $background-color; } Pada kode tersebut terdapat selector universal yaitu *, selector tersebut akan memengaruhi semua elemen di dalam halaman file HTML dan didalamnya terdapat aturan yaitu penggunaan box-sizing: border-box; untuk memastikan bahwa lebar dan tinggi elemen mencakup padding dan border, bukan hanya content di dalamnya. 3. Styling Elemen Card .card { width: 350px; height: 400px; padding: 8px; border-radius: 16px; background-color: white; font-family: "Inter", sans-serif; ... } Kode tersebut merupakan aturan standar pada CSS yang dapat digunakan untuk menerapkan styling pada elemen card. Maka apabila kita buka file HTML tersebut kedalam browser didapatkan: Sudah mulai terlihat design nya bukan? Lalu coba kamu perhatikan kode HTML card sebelumnya: <div class="card"> <div class="card-image"> <img src="./image/image.png" alt="Card Image" /> </div> <div class="card-body"> <div class="card-body-title">Headline</div> <p> Write an amazing description in this dedicated card section. Each word counts. </p> </div> <div class="card-footer"> <button>See More</button> </div> </div> Terlihat pada elemen card tersebut memiliki children/items di dalamnya, maka dengan ini bisa kita manfaatkan fitur ajaib dari SCSS yaitu Nesting. 4. Proses styling dengan fitur Nesting Kita akan melakukan styling pada class .card-image maka dengan SCSS dapat kita implementasikan sebagai berikut: .card { width: 350px; height: 400px; padding: 8px; border-radius: 16px; background-color: white; font-family: "Inter", sans-serif; // Manfaatkan fitur nesting pada SCSS // &-image = card-image , karena berada dalam satu elemen dengan parent yang sama &-image { width: 100%; } ... } Tanda & dalam kode SCSS digunakan untuk merujuk pada "parent selector". Hal ini memungkinkan kamu untuk menyatukan selector parent dengan selector children untuk modifikasi di dalam file SCSS. Jadi ketika file SCSS di compile, maka tanda &-image akan menjadi .card-image. Mulai paham kan? Mari kita manfaatkan fitur ini untuk bagian .card-bodydan .card-footer maka implementasinya: // Styling Card .card { ... &-body { margin: 24px; &-title { font-weight: $semi-bold; } p { color: $gray; font-size: 14px; } } &-footer { margin: 24px; button { width: 95px; height: 36px; border-radius: 10px; background-color: $purple; border: none; color: white; } } } Hingga didapatkan kode lengkap style.scss sebagai berikut: // Color Variabel $background-color: #e5e5e5; $gray: #425466; $purple: #4c6fff; // Font Weight $regular: 400; $semi-bold: 600; // Global * { box-sizing: border-box; } // Styling Body body { background-color: $background-color; } // Styling Card .card { width: 350px; height: 400px; padding: 8px; border-radius: 16px; background-color: white; font-family: "Inter", sans-serif; // Manfaatkan fitur nesting pada SCSS &-image { width: 100%; } &-body { margin: 24px; &-title { font-weight: $semi-bold; } p { color: $gray; font-size: 14px; } } &-footer { margin: 24px; button { width: 95px; height: 36px; border-radius: 10px; background-color: $purple; border: none; color: white; } } } Lalu apabila kamu cek file style.css hasil kompilasi file SCSS tersebut, didapatkan: * { -webkit-box-sizing: border-box; box-sizing: border-box; } body { background-color: #e5e5e5; } .card { width: 350px; height: 400px; padding: 8px; border-radius: 16px; background-color: white; font-family: "Inter", sans-serif; } .card-image { width: 100%; } .card-body { margin: 24px; } .card-body-title { font-weight: 600; } .card-body p { color: #425466; font-size: 14px; } .card-footer { margin: 24px; } .card-footer button { width: 95px; height: 36px; border-radius: 10px; background-color: #4c6fff; border: none; color: white; }/*# sourceMappingURL=style.css.map */ Terlihat extension tersebut sudah berhasil melakukan proses kompilasi dan apabila kita buka file HTML kita pada browser didapatkan hasil berikut: Terlihat extension tersebut sudah berhasil melakukan proses kompilasi dan apabila kita buka file HTML kita pada browser didapatkan hasil berikut: Kesimpulan Sampai sini mulai seru bukan menggunakan SCSS? Maka saran saya kamu harus lebih banyak melakukan studi kasus berbeda agar lebih terbiasa dalam menggunakan fitur-fitur yang disediakan oleh SCSS ini. Oiya saya juga menyarankan apabila kamu ingin lebih expert dalam bidang web development, bisa bergabung pada kelas-kelas yang disediakan oleh BuildWithAngga. Kamu bisa mengakses nya secara gratis disini dan apabila ingin memperdalam lebih lanjut silakan bergabung pada kelas pro yang sudah disediakan. Tunggu apalagi dan saya tunggu kamu dikelas yaa😍

Kelas Cara Menggunakan SCSS/SASS Pada HTML di BuildWithAngga

Cara Menggunakan SCSS/SASS Pada HTML

Secara default browser yang kita gunakan hanya mensupport proses styling menggunakan CSS saja. Maka dari itu setelah kita belajar Berkenalan Dengan SCSS/SASS, langkah selanjutnya ialah kita akan melakukan kompilasi atau merubah file SCSS tersebut menjadi file CSS agar bisa digunakan oleh browser. 1. Menggunakan Extension Jika kamu menggunakan VS Code, maka kamu bisa langsung melakukan proses kompilasi dengan menginstal extension yang sudah disediakan yaitu: Live Sass Compiler Kemudian buka file SCSS/SASS kamu, lalu perhatikan pada pojok bawah kanan pada tampilan VS Code akan terlihat button bernama Watch SASS. Tinggal kamu klik button tersebut maka secara otomatis extension ini akan melakukan proses kompilasi file SCSS/SASS menjadi file CSS. Setelah berhasil akan dihasilkan file berikut: Kamu perlu menggunakan file bernama style.css saja karena file lainnya hanya berfungsi untuk melakukan proses kompilasi ulang ketika terjadi perubahan pada file SCSS kamu. 2. Menggunakan Compiler Online Cara kedua yaitu kamu bisa menggunakan compiler online untuk merubah file SCSS menjadi CSS dengan cara mengunjungi website berikut: https://sass-lang.com/playground/ Maka kode SCSS kita sudah di kompilasi oleh website tersebut dan bisa langsung copy paste lalu kita gunakan pada file CSS kita. 3. Menggunakan Command Line Cara terakhir yaitu kita bisa menggunakan command line untuk melakukan proses kompilasi dengan instalasi library: sass npm install -g sass Kemudian lakukan proses watching yaitu agar proses compile file akan terus berjalan walau terjadi perubahan pada file SCSS tersebut. sass style.scss style.css Maka didapatkan file seperti ini: Dan apabila kita perhatikan, hasilnya sama seperti langkah nomor satu bukan? Karena behind the scene apa yang dilakukan pada langkah pertama dan ketiga adalah mereka melakukan proses kompilasi yang sama. Maka dari hasil kompilasi tersebut, kamu bisa menggunakan **style.css** sebagai file utama CSS yang akan digunakan pada HTML. Namun perlu diperhatikan ketika menggunakan command line pastikan pada device kamu sudah terpasang aplikasi NodeJS, dan jika belum kamu bisa mendownload nya disini: https://nodejs.org/en Kesimpulan Selamat, sampai disini kamu telah berhasil menggunakan file SCSS/SASS kedalam file HTML. Langkah selanjutnya ialah kamu tetap perlu mengembangkan skill styling web development agar dapat menghasilkan website yang eye catching dan nyaman digunakan oleh pengguna. Berbicara tentang website, pada BuildWithAngga terdapat kelas yang dapat digunakan untuk membantu dan mendukung perkembangan skill web development. Kamu bisa akses kelas tersebut secara gratis disini atau jika ingin memperdalam lebih lanjut kamu bisa bergabung pada kelas premium yang disediakan BuildWithAngga. Tunggu apalagi ayo bergabung dan sampai jumpa dikelas!

Kelas Berkenalan Dengan SCSS/SASS di BuildWithAngga

Berkenalan Dengan SCSS/SASS

SCSS atau SASS merupakan singkatan dari Syntactically Awesome Stylesheets yang merupakan preprocessor dari CSS. Ketika menggunakan preprocessor kita dapat memiliki keleluasaan lebih dalam melakukan proses styling seperti pembuatan variabel, nesting, partials, mixins dan lain-lain yang tentu tidak bisa dilakukan oleh CSS biasa. Perbedaan antara SCSS dan SASS Terdapat dua cara dalam apabila ingin menggunakan SCSS atau SASS, yaitu: 1. SCSS Apabila ingin membuat file SCSS, maka kita perlu membuat sebuah file dengan berekstensikan .scss. Dan untuk penulisan sintaks-nya sama seperti CSS native pada umumnya. .container { max-width: 576px; margin: auto; } .button { padding: 10px; border-radius: 2px; border: 1px solid black; } 2. SASS Kemudian apabila ingin menggunakan SASS, kita perlu membuat file tersebut dengan berekstensikan .sass. Perbedaan antara SCSS dan SASS terletak pada penulisannya. Untuk SCSS menggunakan kurung kurawal seperti CSS pada umumnya, sedangkan untuk SASS menggunakan identasi seperti python dalam penulisannya. .container max-width: 576px; margin: auto; .button padding: 10px; border-radius: 2px; border: 1px solid black; Fitur Yang Dimiliki Berikut ini beberapa fitur dari SCSS/SASS yang dapat kita manfaatkan: 1. Variabel Apabila ingin membuat sebuah variabel dalam SCSS, kita dengan mudah dapat melakukannya seperti ini: $red-100: #fee2e2; $red-200: #fecaca; $red-300: #fca5a5; $red-400: #f87171; Apabila ingin menggunakannya: button{ background-color: $red-300; } Dan perlu diingat dalam membuat variabel, kamu harus membuatnya dengan menggunakan tanda $ kemudian diikuti dengan nama variabel nya lalu ditutup dengan titik koma. 2. Nesting Kemudian terdapat fitur Nesting, yaitu memungkinkan kita melakukan grouping dalam proses styling. Berikut contoh penggunaan nesting untuk membuat navbar sederhana: index.html <nav> <ul> <li> <a href="">Dashboard</a> </li> <li> <a href="">Profile</a> </li> </ul> </nav> Maka apabila menggunakan SCSS didapatkan: SCSS nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } CSS nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; } Terlihat pada file CSS tersebut, kita melakukan proses pemanggilan berulang pada kata kunci nav, sedangkan ketika menggunakan SCSS kita dapat melakukan proses grouping dengan mudah sehingga tidak perlu memanggil kata kunci tersebut. Hal ini menghasilkan kode yang lebih clean dan nyaman dibaca. Perlu diingat ketika menggunakan fitur nesting pastikan elemen children di bawahnya masih dalam satu lingkup yang sama. 3. Partials / Modules Menganut prinsip Separate of Concern, kita dapat membuat sebuah module atau file SCSS terpisah untuk setiap bagian elemen HTML. Untuk mencapai hal tersebut kita dapat dengan mudah membuat module pada SCSS dengan cara menambahkan tanda underscore lalu diikuti dengan nama file tersebut. Sebagai contoh: _navbar.scss // _navbar.scss nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } style.scss // style.scss @use "navbar"; .container { max-width: 576px; margin: auto; } Terlihat pada kode di atas apabila kita ingin menggunakan module, kita dapat memanggilnya dengan kata kunci @use, dan pastikan file tersebut masih berada dalam satu folder yang sama. Apabila terdapat perbedaan hierarki pada file tersebut, maka relative path berlaku seperti CSS pada umumnya. 4. Mixins Mixin memungkinkan kita membuat sebuah block styling yang dapat digunakan secara berulang pada satu elemen dan elemen lainnya. Berikut ini contohnya: SCSS @mixin button($theme:red) { background-color: ($theme); padding: 2px 10px 2px 10px; border-radius: 3px; text-align: center; font-weight: bold; border: 1px solid black; } .button-info { @include button('blue'); } .button-danger{ @include button('red'); } CSS .button-info { background-color: "blue"; padding: 2px 10px 2px 10px; border-radius: 3px; text-align: center; font-weight: bold; border: 1px solid black; } .button-danger { background-color: "red"; padding: 2px 10px 2px 10px; border-radius: 3px; text-align: center; font-weight: bold; border: 1px solid black; } Terlihat pada kode di atas kita hanya perlu membuat satu block khusus yang memuat segala jenis styling yang akan digunakan, lalu memanggil block tersebut dengan kata kunci @include pada elemen yang ingin diterapkan styling-nya. Hal ini membuat proses development menjadi lebih cepat dan block CSS yang dihasilkan dapat digunakan kembali pada elemen selanjutnya. Dengan menggunakan mixin kita dapat menyisipkan sebuah parameter, sehingga membuatnya unik satu sama yang lain. Hal ini mirip seperti function dalam bahasa pemrograman pada umumnya. 5. Extended / Inheritance Sama seperti mixin kita dapat membuat sebuah block khusus yang menyimpan property dan value css yang dapat kita gunakan secara berulang dengan mudah. Namun terdapat perbedaannya, perhatikan kode di bawah: // Membuat parent yang berisikan property dan value CSS %button { padding: 2px 10px 2px 10px; border-radius: 3px; text-align: center; font-weight: bold; border: 1px solid black; } // Digunakan dalam variant button .button-danger { @extend %button; background-color: red; } .button-success { @extend %button; background-color: green; } Perbedaan antara mixin dan sifat pewarisan yaitu, apabila kita menggunakan mixin maka kita perlu membuat sebuah parameter di dalamnya agar menjadikan elemen tersebut dinamis. Sedangkan untuk pewarisan sifat hanya menurunkan property dan value dari block styling tersebut terhadap elemen lainnya tanpa kita dapat menyisipkan parameter di dalamnya. 6. Operator Apabila ingin menggunakan operator seperti +, -, , math.div(), dan %, maka kita perlu menyisipkan kode seperti di bawah ini: SCSS **@use "sass:math";** .container { display: flex; } article[role="main"] { width: math.div(600px, 960px) * 100%; } aside[role="complementary"] { width: math.div(300px, 960px) * 100%; margin-left: auto; } SCSS .container { display: flex; } article[role=main] { width: 62.5%; } aside[role=complementary] { width: 31.25%; margin-left: auto; } Terlihat pada kode SCSS di atas, kita memanggil salah satu module bawaan dari SCSS yaitu use:math, maka dengan ini bisa menerapkan fungsi matematika dalam proses styling yang akan diterapkan. Kesimpulan Mulai tertarik menggunakan preprocessor CSS ini? Tentu saja untuk dapat menggunakannya kita hanya perlu memahami dasar-dasar CSS agar bisa diterapkan pada project yang akan dibangun. Dan kamu perlu memperbanyak latihan agar lebih terbiasa dengan fitur-fitur yang disediakan oleh preprocessor ini. Apabila kamu tertarik dan ingin belajar lebih lanjut tentang web development, saya merekomendasikan untuk bergabung pada kelas gratis di BuildWithAngga, karena di dalamnya terdapat mentor-mentor berkualitas yang mendukung proses belajar hingga menjadikan kita sebagai developer yang dapat bersaing dalam dunia industri. Semoga beruntung dan sampai jumpa di kelas!