Akses kelas selamanya

Ambil Promo
flash sale
hamburger-menu

Tips Frontend Development

Meningkatkan skills menjadi 1% lebih baik

Kelas Cara Membuat Loading di Next.js  App Router di BuildWithAngga

Cara Membuat Loading di Next.js App Router

Hallo teman-teman developer web! Kamu pernah ngalamin nggak, waktu buka suatu halaman di web, tapi loading-nya lama banget, bikin kesel? Nah, jangan khawatir! Kali ini kita bakal bahas tentang cara bikin loading yang keren di aplikasi web pake Next.js. Dalam dunia pengembangan web, loading itu penting banget, lho! Bayangin aja, kamu buka halaman, trus loading-nya lama, bosen banget kan? Nah, dengan bikin loading yang keren, pengalaman pengguna bisa jadi lebih nyaman. Makanya, yuk kita pelajari cara bikin loading yang keren! Di artikel ini, kita bakal bahas step-by-step cara bikin loading yang keren abis pake Next.js. Jadi, simak terus ya🚀 Membuat State Loading Ketika kamu menjelajahi sebuah aplikasi, seringkali kamu melihat tanda putar-putar kecil atau mungkin skeleton yang muncul sebelum halaman benar-benar dimuat. Nah, itu disebut loading state, teman-teman! Loading state itu penting banget, lho! Dia memberitahu kita bahwa aplikasi sedang bekerja, sedang memuat sesuatu untuk kita lihat. Jadi, bagaimana sih cara bikin loading state itu? Gampang banget! Kamu cukup buat file baru dengan nama loading.js di dalam folder route yang ingin kamu gunakan. Sebagai contohnya saya ingin membuat loading untuk halaman home. Langsung saja kita bahas langkah-langkahnya: Langkah Pertama: Membuat File loading.js Kamu perlu bikin sebuah function di dalam file loading.js yang akan memberitahu aplikasi bagaimana tampilan loading state-nya. Misalnya, kamu bisa bikin gambar skeleton, atau mungkin tanda putar-putar yang keren. Contohnya begini, kamu bisa juga copy kode di bawah: export default function Loading() { return ( <main className="px-20 flex justify-between items-center flex-wrap p-10"> {Array.from({ length: 10 }).map(() => <div role="status" className="max-w-sm w-[300px] p-4 border border-gray-200 rounded shadow animate-pulse md:p-6 mb-4"> <div className="flex items-center justify-center h-48 mb-4 bg-gray-300 rounded "> <svg className="w-10 h-10 text-gray-200 " aria-hidden="true" xmlns="<http://www.w3.org/2000/svg>" fill="currentColor" viewBox="0 0 16 20"> <path d="M14.066 0H7v5a2 2 0 0 1-2 2H0v11a1.97 1.97 0 0 0 1.934 2h12.132A1.97 1.97 0 0 0 16 18V2a1.97 1.97 0 0 0-1.934-2ZM10.5 6a1.5 1.5 0 1 1 0 2.999A1.5 1.5 0 0 1 10.5 6Zm2.221 10.515a1 1 0 0 1-.858.485h-8a1 1 0 0 1-.9-1.43L5.6 10.039a.978.978 0 0 1 .936-.57 1 1 0 0 1 .9.632l1.181 2.981.541-1a.945.945 0 0 1 .883-.522 1 1 0 0 1 .879.529l1.832 3.438a1 1 0 0 1-.031.988Z" /> <path d="M5 5V.13a2.96 2.96 0 0 0-1.293.749L.879 3.707A2.98 2.98 0 0 0 .13 5H5Z" /> </svg> </div> <div className="h-2.5 bg-gray-200 rounded-full w-48 mb-4"></div> <div className="h-2 bg-gray-200 rounded-full mb-2.5"></div> <div className="h-2 bg-gray-200 rounded-full mb-2.5"></div> <div className="h-2 bg-gray-200 rounded-full "></div> <div className="flex items-center mt-4"> <div> <div className="h-2.5 bg-gray-200 rounded-full w-32 mb-2"></div> <div className="w-48 h-2 bg-gray-200 rounded-full "></div> </div> </div> <span className="sr-only">Loading...</span> </div>)} </main> ) } Nah, begitu kamu bikin file loading.js, dia bakal masuk ke dalam layout.js. Nah, layout.js ini yang membungkus semua halaman-halaman dan layout-layout kamu di aplikasi Next.js. Sebenarnya jika kamu sudah membuat file loading.js dan memberikan return function artinya kamu sudah membuat loading untuk halaman home beserta children-nya. Namun kali ini, kita akan mencoba latihan melakukan implementasi fetching data dan menampilkan loading sebelum data di-render. Langkah Kedua: Melakukan Fetching Data Nah, untuk implementasi kali ini, kita akan mencoba melakukan fetching data dari fake api. Kamu bisa copy dan paste pada file page.js : const getData = async () => { try { const response = await fetch('<https://fakestoreapi.com/products>', { cache: "no-store" }) if (response.ok) { const data = await response.json() return data } } catch (error) { console.log(error) } } Langkah Ketiga: Menampilkan Data ke User Interface Jika kita sudah membuat function untuk memanggil sebuah data dari fake api. Selanjutnya adalah menampilkannya ke user interface. Kamu bisa copy dan paste kode ini di bawahnya function getData() : export default async function Home() { const products = await getData() return ( <main className="flex justify-between flex-wrap p-10"> {products.map((product, idx) => <div key={idx + 1} className="max-w-sm w-[300px] bg-white border border-gray-200 rounded-lg shadow mb-4"> <div className="flex justify-center items-center object-contain"> <img className="rounded-t-lg w-[300px] h-[300px]" src={product.image} alt="" /> </div> <div className="p-5"> <a href="#"> <h5 className="mb-2 text-2xl font-bold tracking-tight text-gray-900 truncate">{product.title}</h5> </a> <p className="mb-3 font-normal text-gray-700 truncate">{product.description}</p> <a href="#" className="inline-flex items-center px-3 py-2 text-sm font-medium text-center text-white bg-blue-700 rounded-lg hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300"> Read more <svg className="rtl:rotate-180 w-3.5 h-3.5 ms-2" aria-hidden="true" xmlns="<http://www.w3.org/2000/svg>" fill="none" viewBox="0 0 14 10"> <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 5h12m0 0L9 1m4 4L9 9" /> </svg> </a> </div> </div> )} </main> ) } Nah, sekarang kamu sudah bisa menampilkan sebuah data yang di-render setelah proses loading selesai. Saat kamu membuka halaman home. Halaman home akan menampilkan loading terlebih dahulu sebelum me-render data seperti gambar di bawah ini: Nah, jika loading selesai baru akan menampilkan data-nya seperti gambar di bawah ini: Kesimpulan Salah satu keuntungan bikin loading yang keren ini adalah bikin pengalaman pengguna jadi lebih nyaman. Mereka tidak akan ngerasa jengkel nungguin halaman aplikasimu dimuat. Dengan loading state yang bermakna, kamu bisa memberi tahu mereka bahwa sesuatu sedang terjadi di belakang layar. Jadi, apa yang bisa kamu dapet dari artikel ini? Pertama, kamu udah bisa bikin loading state yang keren di aplikasi Next.js-mu. Kedua, kamu udah tau cara mengambil data dan menampilkannya dengan baik di halaman web. Buat kamu yang ingin mempelajari fitur-fitur selanjutnya, kamu bisa ikut kelas di BuildWithAngga. Salah satunya yaitu, Kelas Online Gratis NextJS Basic ataupun yang berupa project base yaitu, Kelas Online Modern JavaScript: Bikin Projek Website Seperti Twitter. Sampai jumpa di artikel selanjutnya, ya! Teruslah belajar dan kembangkan skill kamu dalam mengembangkan aplikasi web yang keren. Semangat! 🚀

Kelas 5 CSS Framework yang Bikin Desain Website Lebih Menarik dan Responsif di BuildWithAngga

5 CSS Framework yang Bikin Desain Website Lebih Menarik dan Responsif

Ketika berbicara tentang menata situs web dan aplikasi web, ada berbagai teknologi CSS yang dapat kita gunakan. Kita dapat tetap menggunakan vanilla CSS, CSS preprosesor seperti SaaS dan Less, atau CSS-in-JS tools, seperti Emotion dan Styled Components. Selain metode tersebut, kita juga dapat menata situs web dengan menggunakan CSS frameworks. Masalahnya adalah, sampai saat ini, sudah lebih dari 40 CSS frameworks yang tersedia! Dengan beragam opsi yang tersebut, memilih frameworks yang tidak hanya membuat desain lebih menarik tetapi juga responsif dapat menjadi tantangan tersendiri. Jika kalian mengalami kebingungan memilih di antara CSS frameworks tersebut, artikel ini mungkin sesuai dengan yang kalian butuhkan! Dalam artikel ini, kita akan menjelajahi apa saja kerangka kerja CSS yang bisa bikin tampilan web kalian makin eye-catching dan responsif. Let’s dive in🚀 1. Bootstrap Bootstrap merupakan open-source web development framework yang menyediakan kumpulan komponen dan styles untuk HTML, CSS, dan Javascript. Bootstrap menyediakan serangkaian template dan komponen yang dapat digunakan kembali, seperti navigasi, tombol, formulir, dan grid, yang dapat disesuaikan sesuai dengan kebutuhan. Alasan menggunakan Bootstrap: Kerangka Kerja Frontend Paling Populer: Bootstrap diakui sebagai salah satu kerangka kerja frontend sumber terbuka paling populer. Penggunaannya yang luas memastikan kalian dapat dengan mudah menemukan dan mengakses berbagai template yang sesuai untuk berbagai jenis proyek.Fitur Lengkap: Bootstrap tidak hanya sekadar menjadi kerangka pengembangan; ia juga berfungsi sebagai template dinamis yang telah siap pakai dengan berbagai komponen yang luas. Mulai dari alerts, modal hingga bar navigasi. Hal ini memudahkan pengembang, bahkan yang tidak memiliki pengalaman frontend sebelumnya, untuk membuat halaman yang terstruktur dengan baik.Mudah untuk Kostumisasi: Bootstrap dapat di-custom menggunakan SASS (Syntactically Awesome Stylesheets). Belajar cara melakukan kostumisasi situs web Bootstrap dengan SASS dapat secara signifikan mempercepat waktu pengembangan kalian.Dukungan Komunitas: Dukungan berkelanjutan membuat Bootstrap dapat diandalkan. Diperkenalkan oleh Twitter, Bootstrap kini dikelola oleh komunitas besar pengembang, memastikan rilis yang stabil dan dukungan jangka panjang. Kekurangan: Sulit untuk override: Bootstrap memiliki desain dan tampilan yang sangat spesifik, yang sulit untuk dikecualikan jika kalian menginginkan style yang berbeda. Karena menggunakan aturan CSS !important secara luas, mengesampingkan nilai default dapat menjadi rumit.Terlalu Sering Digunakan: Alasan utama mengapa orang tidak menyukai Bootstrap adalah penggunaannya yang luas. Hal ini menyebabkan muncul tampilan yang begitu sering digunakan sehingga para pengembang menciptakan frasa "semua situs web Bootstrap terlihat sama".Bergantung pada jQuery: Berbeda dengan kerangka kerja lain yang hanya menggunakan CSS, Bootstrap 4 bergantung pada jQuery untuk banyak fitur interaktifnya. Ini membuatnya lebih sulit, tetapi tidak tidak mungkin, untuk menggunakannya bersama dengan kerangka kerja JavaScript seperti React atau Vue. Untungnya, Bootstrap 5, yang akan segera dirilis, akan menghapus ketergantungan jQuery.Membutuhkan Memori yang Besar: Semua fitur Bootstrap datang dengan harga — cukup memakan memori untuk dimasukkan ke dalam proyek kalian. Meskipun, dapat mengimpor bagian-bagian dari proyek tersebut, tetapi tidak se-ringan atau modular seperti framework lain. 2. Tailwind CSS Tailwind CSS adalah salah satu framework CSS yang juga populer saat ini. Framework ini dikenal dengan pendekatan utility-first, yang menyediakan serangkaian kelas utilitas untuk mengatur tata letak, tipografi, warna, ruang, dan lainnya. Pendekatan ini menghilangkan kebutuhan untuk menulis CSS tambahan kecuali untuk skenario unik seperti ketika memerlukan animasi kustom. Meskipun merupakan salah satu framework terbaru, Tailwind CSS berhasil membuktikan diri sebagai pesaing utama di antara kerangka kerja CSS terkenal lainnya. Data dari State of CSS 2023 menunjukkan bahwa Tailwind CSS memiliki tingkat retensi tertinggi (75,5%) di antara kerangka kerja CSS lainnya. Alasan Menggunakan Tailwind: Atomic CSS: Memusatkan elemen, membuat tata letak fleksibel, atau menggunakan warna teks tertentu adalah hal-hal yang biasanya kalian kodekan dalam CSS. Tailwind membuat semua gaya umum ini mudah diimplementasikan dengan menawarkan kelas utilitas. Metodologi ini terkadang disebut CSS Atomik di mana kelas elemen HTML dengan jelas menjelaskan seperti apa tampilannya. Misalnya, <div class="m-1 text-center bg-black">...</div> akan menampilkan elemen dengan margin 1 (yaitu margin kecil), teks yang terpusat, dan latar belakang hitam.No-Desain: Tailwind tidak dilengkapi dengan komponen yang sudah dibuat atau bahasa desain tertentu. Artinya, kalian tidak perlu mengganti gaya yang sudah ada dan dapat lebih produktif saat mengimplementasikan desain kustom.Komponen yang Dapat Digunakan Kembali: Meskipun Tailwind tidak menyertakan komponen yang sudah dirancang sebelumnya, tetap memungkinkan kalian membuat komponen kustom sendiri yang dapat digunakan ulang di seluruh proyek. Kalian juga dapat menemukan beberapa contoh komponen di situs web resmi yang dapat digunakan sebagai titik awal.Integrasi PostCSS/SAS: Untuk memanfaatkan framework ini dengan lebih baik, kalian perlu menginstal dan mengimpornya ke proyek SASS atau PostCSS. Hal ini memungkinkan kalian memanfaatkan semua fitur Tailwind untuk menulis CSS yang lebih efektif. Kekurangan: Kurva Pembelajaran yang Curam: Tailwind bukanlah pilihan terbaik untuk pengembang yang kurang berpengalaman. Karena tidak menyediakan komponen siap pakai, kalain perlu sepenuhnya memahami bagaimana teknologi front-end bekerja. Kurva pembelajaran Tailwind agak agak sulit karena harus memahami sintaks untuk dapat produktif dengan framework ini.Tidak Dapat Digunakan Langsung: Tailwind dapat ditambahkan ke proyek sebagai file CSS yang digabungkan, mirip dengan kerangka kerja lainnya. Namun, panduan instalasi resmi menjelaskan bahwa jika kalian menambahkan dengan cara seperti ini, banyak fiturnya akan tidak tersedia. Untuk memanfaatkan sepenuhnya Tailwind, kalian perlu tahu cara menggunakan Webpack, Gulp, atau alat pengembangan frontend lainnya. 3. Bulma Bulma adalah alternatif untuk Bootstrap karena memiliki kode yang modern dan estetis. Mudah digunakan dan diimpor ke dalam proyek kalian, Bulma dilengkapi dengan berbagai komponen siap pakai. Bulma sangat diacungi jempol karena sintaksisnya yang sederhana dan desain minimalis namun estetis. Bulma benar-benar merupakan framework yang dapat membuat halaman web yang monoton terlihat lebih menarik. Alasan Menggunakan Bulma: Desain Estetis: Bulma dilengkapi dengan desain yang bersih dan modern — bahkan jika kalian tidak mengubah pengaturan default, kalian akan mendapatkan halaman web yang tampak menarik.Modern: Teknologi terus berkembang, dan apa yang dulunya rumit mungkin sekarang menjadi sederhana. Modul layout flexbox pada CSS memudahkan pembuatan tata letak responsif, dan Bulma adalah salah satu framework berbasis flexbox yang menerapkan prinsip-prinsip baru ini.Developer-friendly: Front-end developers memiliki tujuan untuk membuat tampilan yang memberikan pengalaman yang hebat kepada end-user, Sedangkan pencipta Bulma bertujuan untuk memberikan pengalaman yang hebat kepada developer. Dengan mempertimbangkan hal itu, Bulma dilengkapi dengan konvensi penamaan yang mudah digunakan dan diingat.Mudah Dikustomisasi: Warna, padding, dan banyak properti default Bulma dapat disesuaikan menggunakan SASS. Dengan cara ini, kalian dapat mengatur default proyek kalian dalam waktu beberapa menit.Tanpa Javascript: Bulma tidak menyertakan fitur Javascript. Karena hanya menggunakan CSS, Bulma dapat dengan mudah diintegrasikan dengan kerangka kerja JavaScript seperti Vue atau React. Kekurangan: Gaya yang Khas: Gaya yang unik dari Bulma dapat menjadi pisau bermata dua. Dikarenakan style-nya cukup khas, jika digunakan secara berlebihan, kita bisa mendapatkan situs web yang terlihat sangat mirip, seperti yang terjadi dengan Bootstrap.Kurang Lengkap: Bulma bersaing dengan Bootstrap dalam banyak hal, tetapi tidak se-lengkap Bootstrap dalam hal aksesibilitas dan fitur berkelas enterprise lainnya. 4. Pure.CSS Framework Pure CSS berasal dari pesaing tak terduga di dunia open source — Yahoo. Kerangka mikro ini sangat kecil, hanya memerlukan 3.7 KB (setelah dikompresi) ketika semua modul digunakan. Framework ini menyediakan modul CSS yang dapat digunakan ulang dan responsif yang dapat ditambahkan ke proyek web apa pun. Alasan Menggunakan Pure: Memori yang Kecil: Setiap baris CSS dipertimbangkan dan ditulis dengan cermat untuk membuat kerangka kerja ini ringan dan performa tinggi.Dapat Disesuaikan: Kalian dapat mengimpor Pure secara modular dan mengimplementasikan hanya apa yang kalian butuhkan.Community Support : Berbeda dengan proyek komunitas, Pure didukung oleh Yahoo, sehingga menjadikan proyek ini pilihan yang aman untuk penggunaan jangka panjang.Komponen Siap Pakai: Pure dilengkapi dengan komponen-komponen siap pakai yang responsif dan dibangun untuk web modern. Kekurangan: Untuk Pengembang Berpengalaman: Pure tidak cocok untuk pengembang yang kurang berpengalaman atau tim kecil, karena kalian perlu membuat desain sendiri untuk menggunakan framework ini. 5. Materialize CSS Material design adalah bahasa desain yang dikembangkan oleh Google dan digunakan di seluruh proyek-proyek mereka untuk banyak situs web dan tema admin. Materialize CSS adalah open-source framework CSS yang memudahkan implementasi tampilan dan nuansa material design dalam proyek kalian. Materialize CSS menampilkan banyak komponen interaktif yang mempercepat pengembangan dan membantu memberikan pengalaman hebat kepada pengguna. Animasi digunakan di seluruh framework untuk memberikan umpan balik visual kepada pengguna, dengan cara yang mudah digunakan oleh developers. Alasan Menggunakan Materialize: Desain Material: Bahasa desain ini banyak digunakan dan dikenal oleh orang. Hal ini dapat membuat kreasimu mudah digunakan oleh audiens targetmu.Fitur Lengkap: Materialize CSS menyertakan komponen-komponen siap pakai untuk hampir semua hal, juga dilengkapi dengan fitur-fitur Javascript yang lebih canggih untuk mendukung interaksi.Mobile-friendly: Kalian dapat membuat aplikasi web progresif menggunakan komponen-komponen mobile seperti floating navigation dan swipe interactions. Kekurangan: Bahasa Desain yang Ketat: Jika kalian ingin melakukan sesuatu yang tidak sesuai dengan material design, lebih baik hindari Materialize.Proyek Independen: Meskipun memiliki basis pengguna yang aktif, Materialize tidak didukung secara korporat, yang berarti proyek ini lebih bergantung pada kontribusi dan dukungan dari komunitas. Kesimpulan Kita telah menjelajahi berbagai opsi kerangka kerja CSS yang populer untuk pengembangan web, termasuk di dalamnya framework Bootstrap, Tailwind CSS, Pure CSS, Bulma, dan Materialize CSS. Masing-masing memiliki karakteristik unik yang dapat memenuhi kebutuhan proyek web kalian. Setelah mendalami kelima framework tersebut kita dapat mempertimbangkan hal-hal penting ketika memilih framework CSS, seperti dukungan dari komunitas, pembaruan, integrasi dengan teknologi lain, performa, ukuran serta dokumentasi yang baik. Pilihan mana framework yang terbaik tergantung pada kebutuhan spesifik dan preferensi desain proyek kalian. Dengan pemahaman yang baik tentang kelebihan dan kekurangan masing-masing kerangka kerja, kalian dapat membuat keputusan yang tepat untuk menciptakan tampilan web yang tidak hanya menarik tetapi juga responsif. And don’t forget to learn this framework. You can learn it from scratch with BuildWithAngga! Terdapat kelas-kelas framework CSS yang dapat kalian ikuti, seperti Kelas Online CSS Bootstrap 4 Web Design dan Kelas Online Belajar Tailwind CSS Untuk Pemula Website Designer. Keep learning and see you at class!✨

Kelas Konsep OOP Sebagai Landasan Pemrograman Bagi Frontend Developer di BuildWithAngga

Konsep OOP Sebagai Landasan Pemrograman Bagi Frontend Developer

Hello, fellow learners! Have you ever questioned how important the OOP concept is for frontend developers? Ketika pertama kalian bertemu dengan istilah ini, mungkin kalian merasa sedikit bingung. Diperlukan waktu untuk sepenuhnya memahami pentingnya OOP dalam dunia pemrograman. Namun, hal ini juga merupakan peluang untuk memahami konsep-konsep utama dan betapa vitalnya OOP bagi seorang pengembang serta kemampuannya dalam menyelesaikan berbagai tantangan. Memahami pentingnya konsep OOP atau Pemrograman Berbasis Objek menjadi sebuah jalan bagi kalian sebagai frontend developer untuk mengembangkan kode yang lebih terstruktur dan efisien. Di dunia pengembangan frontend, di mana fokus utamanya adalah menciptakan antarmuka pengguna yang interaktif, prinsip-prinsip OOP memberikan fondasi yang kuat. Selain itu, konsep OOP membuktikan kebermanfaatannya ketika berhadapan dengan framework frontend terkemuka seperti React, Angular, atau Vue.js. Pemahaman ini memberikan landasan kepada kalian untuk memanfaatkan framework tersebut dengan lebih baik. So now, let’s get to know about this concept!😊 Apa itu Object-Oriented Programming (OOP)? Pemrograman Berorientasi Objek (OOP) adalah paradigma pemrograman yang berfokus pada konsep class dan object. Dalam dunia pemrograman, kita menggunakan class untuk membuat blok-blok kode yang dapat digunakan berulang, seolah-olah class adalah blueprints untuk menciptakan suatu object. Mirip ketika kita membangun sesuatu menggunakan balok-balok Lego. Sebagai analogi, class dapat diibaratkan sebagai kumpulan petunjuk atau buku instruksi membangun Lego, dan object adalah struktur Lego nyata yang kita bangun dengan mengikuti petunjuk itu. Kita dapat memiliki beberapa set Lego berbeda - satu untuk membuat rumah, satu untuk mobil, dan satu untuk pesawat luar angkasa. Setiap set dilengkapi dengan petunjuk khusus (class) untuk membangun suatu object tertentu (rumah, mobil, atau pesawat luar angkasa). Setiap struktur Lego (object) memiliki karakteristik dan fungsi unik berdasarkan petunjuk (class) yang kita gunakan. Jadi, dalam dunia pemrograman, OOP memungkinkan kita membuat kumpulan petunjuk (class) yang dapat digunakan berulang kali untuk membangun sesuatu (object) dengan karakteristik unik. Dengan konsep seperti ini, kalian dapat menciptakan program-program yang lebih fleksibel, mudah dikelola, dan dapat digunakan berulang kali untuk membangun aplikasi yang lebih kompleks. Struktur Pemrograman Berorientasi Objek Struktur dasar dalam OOP terdiri dari empat elemen utama: Class, Object, Attribute dan Method. Berikut penjelasan dari masing-masing elemen: Class Class merupakan tipe data yang didefinisikan oleh pengguna dan berfungsi sebagai blueprint atau cetak biru untuk menciptakan object. Class menentukan atribut (data) dan metode (fungsi) yang dimiliki oleh object yang akan dibuat berdasarkan class ini.Object object adalah instansiasi dari sebuah class, yang memiliki atribut dan metode sesuai dengan yang telah ditentukan oleh class tersebut.Attribute Attribute adalah variabel yang dideklarasikan di dalam class dan digunakan untuk menyimpan data atau informasi tentang objek. Attribute berperan menyimpan karakteristik atau state dari suatu objek yang dihasilkan dari class.Method Method adalah fungsi atau tindakan yang dapat dilakukan oleh objek, yang didefinisikan di dalam class. Method ini yang menentukan perilaku atau aksi yang dapat dilakukan oleh object yang dibuat berdasarkan class. Implementasi sederhana dari Class, Object, Attribute, dan Method dapat diilustrasikan dengan membuat sebuah class "Car" yang memiliki atribut seperti "model" dan "color," serta metode seperti "start" dan "stop”. Berikut contohnya: class Car { // Atribut constructor(model, color) { this.model = model; this.color = color; this.isStarted = false; } // Metode untuk memulai mesin start() { if (!this.isStarted) { this.isStarted = true; console.log(`${this.color} ${this.model} has started.`); } else { console.log(`${this.color} ${this.model} is already running.`); } } // Metode untuk mematikan mesin stop() { if (this.isStarted) { this.isStarted = false; console.log(`${this.color} ${this.model} has stopped.`); } else { console.log(`${this.color} ${this.model} is not running.`); } } } // Membuat objek menggunakan class Car const myCar = new Car("Sedan", "Blue"); const anotherCar = new Car("SUV", "Red"); // Memanggil metode pada objek myCar.start(); anotherCar.start(); myCar.stop(); Dalam contoh ini, class "Car" digunakan sebagai blueprint untuk menciptakan dua object, yaitu myCar dan anotherCar. Objek-objek ini memiliki atribut "model" dan "color," serta dapat memanggil metode "start" dan "stop" untuk mengendalikan status mesin. Konsep inilah yang membentuk dasar dari Pemrograman Berorientasi Objek. Prinsip Pemrograman Berorientasi Objek Untuk menulis kode OOP yang baik, kita perlu memahami 4 pilar OOP yang harus kita patuhi: 1. Encapsulation (Enkapsulasi) Encapsulation mengacu pada konsep menyembunyikan rincian implementasi internal suatu objek dan hanya mengekspos fungsionalitas yang diperlukan. Ini dilakukan dengan menggunakan private dan public access modifiers agar objek dapat beroperasi tanpa perlu memahami seluruh kompleksitas internalnya. 2. Abstraction (Abstraksi) Abstraksi melibatkan penyederhanaan kompleksitas dengan menentukan dan mengekspos fungsionalitas yang esensial, serta menyembunyikan detail yang tidak diperlukan. Class dan objek dalam OOP menyediakan tingkat abstraksi untuk merepresentasikan ide atau konsep secara lebih terfokus. 3. Inheritance (Pewarisan) Pewarisan memungkinkan suatu class untuk mewarisi sifat atau perilaku dari class lainnya. Hal ini memungkinkan kita untuk memanfaatkan dan memperluas fungsionalitas yang sudah ada tanpa perlu menulis ulang kode. Class yang mewarisi disebut subclass atau child class, sedangkan class yang diwarisi disebut superclass atau parent class. 4. Polymorphism (Polimorfisme) Polimorfisme memungkinkan suatu objek untuk memiliki banyak bentuk atau perilaku. Dengan menggunakan konsep ini, objek dapat diolah dengan cara yang berbeda tergantung pada konteks atau tipe data. Polimorfisme dapat mencakup overriding (penggantian) metode dan overloading (pembuatan beberapa versi) metode. Kesimpulan Konsep Pemrograman Berorientasi Objek (OOP) sangat penting, tak hanya bagi frontend developer tapi juga keseluruhan para developer. Pada artikel ini, kita telah membahas dasar-dasar OOP mulai dari definisi OOP, struktur dasar seperti class, object, atribut, dan metode, hingga prinsip-prinsip utama OOP, seperti encapsulation, abstraction, inheritance, dan polymorphism. Dengan memahami OOP, pengembang dapat membangun kode yang lebih terstruktur, mudah dimanajemen, dan dapat digunakan kembali. Kesadaran akan konsep ini memungkinkan pengembang untuk membuat solusi yang lebih efisien dan memahami cara bekerja dengan berbagai teknologi terkini dalam pengembangan frontend. Dengan demikian, pemahaman mendalam terhadap OOP dapat memberikan landasan yang kuat untuk kesuksesan dalam pengembangan aplikasi web. Pelajari lebih lanjut konsep OOP dengan mengikuti Kelas Gratis di BuildWithAngga seperti Kelas Online Vanilla JavaScript Pada Website Development atau dapatkan pemahaman praktikal dengan mengikuti kelas berbentuk project base seperti Kelas Online Vanilla JavaScript OOP & LocalStorage: Web Task Management. Keep learning and see you at class!✨

Kelas Berkenalan Dengan Layout pada Next.js App Router di BuildWithAngga

Berkenalan Dengan Layout pada Next.js App Router

Hallo, teman-teman developer web! Dalam artikel kali ini, kita akan membahas tentang layout yang merupakan salah satu feature dari Next JS versi App Router. Pada kali ini kita akan berkenalan dan sekaligus mempraktekkan penggunaan layout. Yap, langsung saja kita mulai ke pembahasan🚀 Apa itu Layout? Layout dalam aplikasi web merupakan user interface yang digunakan di beberapa route atau halaman. Ini memungkinkan elemen-elemen antarmuka seperti header, navigasi, atau footer untuk digunakan secara konsisten di seluruh route. Selama pengguna berpindah dari satu halaman ke halaman lain, layout tetap mempertahankan statusnya. Misalnya, jika ada beberapa input pengguna yang telah diisi, data tersebut tetap ada meskipun pengguna berpindah halaman, sehingga menjaga aplikasi tetap interaktif dan responsif. Hal yang menarik, layout tidak melakukan proses rendering ulang saat pengguna berpindah halaman, yang memungkinkan aplikasi untuk mempertahankan kinerja yang baik dan memberikan pengalaman pengguna yang mulus. Proses pembuatan layout dilakukan dengan mendefinisikan sebuah komponen React dalam sebuah file yang biasanya bernama layout.js. Komponen ini harus menerima prop children, yang merupakan komponen atau halaman anak yang akan dimasukkan ke dalam layout tersebut saat proses rendering. Selain itu, layout juga dapat bersarang, yang berarti sebuah layout dapat mengandung layout lain di dalamnya. Sebagai contoh, layout akan digunakan bersama pada halaman /dashboard dan /dashboard/settings. Root Layout (Required) Root Layout didefinisikan di tingkat atas direktori aplikasi kamu dan berlaku untuk semua route. Layout ini penting dan harus berisi tag html dan body, sehingga kamu bisa mengubah HTML awal yang dikembalikan dari server. Contoh kode: export default function RootLayout({ children }) { return ( <html lang="en"> <body> {/* Layout UI */} <main>{children}</main> </body> </html> ) } Dalam kode ini, kita membuat sebuah layout dasar dengan tag <html> dan <body> yang dibutuhkan. Tag ini membungkus konten utama aplikasi, yang ditandai dengan props {children}. Nesting Layout Nesting Layout berarti kamu bisa menempatkan satu layout di dalam layout lainnya. Jadi, layout-layout ini bisa bertingkat. Contohnya, bayangkan kamu punya sebuah situs web dengan beberapa bagian, seperti halaman utama dan halaman dashboard. Nah, contohnya begini. Kamu buat file baru dengan nama layout.js di dalam folder dashboard. Di dalam file tersebut, kamu bisa menentukan bagaimana tampilan halaman dashboard akan ditampilkan. Contoh kode untuk layout dashboard: export default function DashboardLayout({ children }) { return <section>{children}</section> } Jadi, ketika kamu buat layout untuk halaman utama dan halaman dashboard, layout dashboard tersebut akan dibungkus oleh layout utama. Jadi, layout utama (misalnya app/layout.js) akan membungkus layout dashboard (misalnya app/dashboard/layout.js), yang nantinya akan membungkus segmen route di dalam app/dashboard/. Jadi, layout-layout ini bisa berada di dalam satu sama lain, membentuk hierarki. Itu artinya, kamu bisa mengatur tampilan halaman dengan lebih terorganisir dan terstruktur. Kesimpulan Penggunaan layout dalam pengembangan aplikasi web dengan Next JS memberikan keuntungan besar dalam menyusun tampilan yang konsisten di seluruh halaman. Dengan menggunakan layout, developer dapat dengan mudah memelihara interaktivitas aplikasi tanpa perlu merender ulang halaman secara berulang. Ingatlah bahwa layout dalam Next JS dapat di-nested, yang berarti kamu dapat menempatkan layout di dalam layout lainnya. Ini memberimu fleksibilitas untuk mengatur struktur halaman webmu sesuai kebutuhan. Buat kamu yang ingin mempelajari fitur-fitur selanjutnya, kamu bisa ikut kelas di BuildWithAngga. Salah satunya yaitu, Kelas Online Gratis NextJS Basic ataupun yang berupa project base yaitu, Kelas Online Bootcamp Full-Stack JavaScript Developer MERN: Website Event. So, ayo kita menjadi expert bersama BuildWithAngga🚀 See you guys!

Kelas Proyek JavaScript yang Dapat Tingkatkan Skill Coding-mu! | Part 2 di BuildWithAngga

Proyek JavaScript yang Dapat Tingkatkan Skill Coding-mu! | Part 2

Hello, fellow learners! Melanjutkan pembahasan pada artikel sebelumnya yaitu “Proyek Javascript yang Dapat Tingkatkan Skill Codingmu! | Part 1”, we will continue to provide you with more recommendations for Javascript projects that can lift your proggramming skills up! Pada bagian kedua ini, kita akan membahas proyek-proyek Javascript yang menarik dan memberikan tantangan lebih dalam pengembangan keterampilan pemrograman kalian. So, let’s begin! 🚀 1. Countdown Timer using JavaScript contoh proyek Countdown Timer (source: dribbble.com/hijinnam) Membuat Proyek Countdown Timer dengan Javascript dapat menjadi pengalaman pembelajaran yang menarik! Countdown Timer berguna untuk memberikan penghitungan mundur hingga waktu tertentu, dan dapat diterapkan dalam berbagai konteks, seperti peluncuran produk, acara khusus, atau tugas dengan batas waktu. Proyek ini tidak hanya melatih kalian dalam manipulasi waktu dengan Javascript, tetapi juga memberikan pengalaman dalam menyusun struktur HTML dan memberikan gaya dengan CSS. Selain itu, proyek ini dapat diperluas dengan menambahkan fitur-fitur seperti pengaturan waktu target melalui input pengguna atau efek visual tambahan. Bagi kalian yang ingin mencoba membuat proyek ini, tapi masih bingung mulai dari mana. Tak usah khawatir! karena kalian bisa menemukan berbagai tutorial yang dapat mempermudah pembuatan proyek Countdown Timer kalian. BuildWithAngga juga menyediakan kelas gratis seputar HTML5 Dasar, CSS Dasar, dan Vanilla Javascript yang dapat membantu kalian meningkatkan pemahaman programming kalian. 2. Palindrome Checker App contoh proyek Palindrome Checker App Palindrome Checker App menggunakan JavaScript adalah aplikasi sederhana yang memeriksa apakah sebuah kata atau kalimat merupakan palindrome atau bukan. Palindrome adalah kata atau frasa yang dapat dibaca sama baik dari depan maupun dari belakang, tanpa memperhatikan spasi, tanda baca, dan kapitalisasi. Aplikasi ini dapat digunakan sebagai proyek tingkat pemula untuk memperkuat konsep manipulasi string, penggunaan array, dan menerapkan logika kondisional dalam pengembangan website. Selain itu, proyek ini membuka peluang untuk eksplorasi lebih lanjut terhadap konsep-konsep dasar pemrograman melalui hands-on experience yang lebih menyenangkan. Cobalah untuk mencari referensi seperti, tutorial video atau source code yang sesuai dengan kemampuan kalian agar mempermudah kalian memahami script kode yang kalian tuliskan. Kalian juga dapat mempelajari terlebih dahulu mengenai dasar-dasar pemrograman HTML, CSS dan Javascript di Kelas HTML5 Dasar, CSS Dasar, dan Vanilla Javascript bersama BuildWithAngga. 3. Currency Converter With Javascript contoh proyek Currency Converter (source: dribbble.com/ErriGarcia) Currency Converter dengan Javascript adalah aplikasi web sederhana yang memungkinkan pengguna mengonversi jumlah uang dari satu mata uang ke mata uang lainnya. Dalam proyek ini, Javascript digunakan untuk melakukan perhitungan konversi berdasarkan nilai tukar mata uang yang ditentukan. Kalian dapat menambahkan fungsi, seperti: Input Pengguna: Pengguna dapat memasukkan jumlah uang dan memilih mata uang sumber dan mata uang tujuan melalui antarmuka pengguna.Perhitungan Konversi: Javascript digunakan untuk menghitung jumlah yang setara dalam mata uang tujuan berdasarkan nilai tukar yang telah ditentukan.Tampilan Hasil: Hasil konversi ditampilkan secara dinamis kepada pengguna, memberikan informasi yang jelas tentang jumlah uang dalam mata uang tujuan. Tersedia berbagai referensi tutorial dan source code yang dapat kalian temukan di internet. Cobalah referensi-referensi tersebut dan eksplorasi berbagai kodingannya untuk mendapatkan wawasan yang lebih luas tentang proyek yang kalian buat. Selain itu kalian dapat mengakses web BuildWithAngga. untuk mendapatkan Kelas Gratis seputar HTML5 Dasar, CSS Dasar, dan Vanilla Javascript yang dapat meningkatkan pemahaman pemrograman web kalian lebih dalam. 4. Text Similarity Checker contoh proyek Text Similarity Checker Proyek Text Similarity Checker menggunakan JavaScript adalah aplikasi ini memungkinkan pengguna membandingkan tingkat kemiripan antara dua teks. Dalam proyek ini, Javascript digunakan untuk menganalisis dan memproses teks pengguna guna menghasilkan skor kemiripan. Berikut adalah penjelasan singkat mengenai proyek ini: Input Pengguna: Pengguna dapat memasukkan dua teks yang ingin dibandingkan melalui antarmuka pengguna.Pemrosesan Teks: JavaScript digunakan untuk memproses teks, menghilangkan karakter khusus, mengonversi huruf kecil, dan mengidentifikasi kata-kata kunci.Perhitungan Kemiripan: Algoritma dibangun untuk menghitung tingkat kemiripan antara dua teks berdasarkan kata-kata kunci yang diidentifikasi.Visualisasi Hasil: Hasil skor kemiripan ditampilkan secara interaktif kepada pengguna. Kalian dapat mengeksplorasi berbagai sumber di internet untuk membantu memahami pembuatan proyek ini. Dengan melibatkan diri kalian dalam sumber-sumber tersebut, kalian dapat mendapatkan berbagai perspektif dan metode yang berbeda dalam mengembangkan proyek Text Similarity Checker menggunakan JavaScript. Selain itu, kalian dapat mengikuti kelas-kelas yang tersedia di BuildWithAngga, seperti kelas HTML5 Dasar, CSS Dasar, dan Vanilla Javascript untuk mendapatkan pemahaman mendasar. 5. Quiz App Javascript contoh proyek Quiz App (source: dribbble.com/devbykajalsharma) Proyek Quiz App dengan JavaScript adalah aplikasi web interaktif yang menyajikan pengguna dengan serangkaian pertanyaan dan memungkinkan mereka untuk memilih jawaban. Setelah menjawab semua pertanyaan, aplikasi mengevaluasi respons dan memberikan umpan balik, seperti total skor dan jawaban yang benar. Proyek ini lebih disarankan untuk pembelajar yang sudah mencapai tingkat intermediate yang sudah memiliki pemahaman mendasar mengenai pemrograman Javasript. Dengan pemahaman yang lebih mendalam tentang konsep-konsep dasar Javascript, pembelajar di tingkat intermediate dapat mengambil tantangan proyek ini untuk memperluas pengetahuan dan keterampilan. Tak perlu khawatir bagi kalian yang belum memiliki pemahaman dasar terkait pemrograman Javascript karena BuildWithAngga menyediakan Kelas Gratis Vanilla Javascript untuk memperdalam pemahaman kalian dalam pemrograman Javascript. Kesimpulan Proyek-proyek Javascript yang disebutkan di atas memberikan peluang pembelajaran yang menarik untuk berbagai tingkatan kemampuan. Countdown Timer memberikan pemahaman tentang manipulasi waktu dan struktur HTML, sementara Palindrome Checker App mengasah keterampilan manipulasi string dan logika kondisional. Currency Converter With Javascript memperkenalkan konsep perhitungan dan interaksi pengguna dengan menggunakan Javascript untuk mengonversi mata uang. Proyek Text Similarity Checker membawa pemahaman lebih dalam tentang pemrosesan teks dan algoritma perbandingan. Dan terakhir, Quiz App Javascript memberikan tantangan yang lebih tinggi untuk pembelajar tingkat intermediate dengan menyajikan pengguna dengan serangkaian pertanyaan dan penilaian respons. Dengan melibatkan diri dalam berbagai proyek Javascript yang telah dijelaskan diatas, diharapkan kalian dapat memperluas wawasan dan keterampilan dalam pengembangan web. Ingatlah, proses pembelajaran adalah perjalanan yang tak ada akhirnya. Jangan ragu untuk terus mengeksplorasi dan mencoba hal-hal baru. Semakin banyak proyek yang kalian kerjakan, semakin kuat fondasi pemrograman kalian. If you want more project recommendations, you can take a look at this article “5 Ide Projek Pemula Menggunakan JavaScript”. Jangan lupa untuk bergabung di berbagai kelas Gratis di BuildWithAngga, seperti kelas HTML5 Dasar, CSS Dasar, dan Vanilla Javascript untuk memperdalam kemampuan pemrograman kalian! Keep learning and see you at class! 🌟🚀

Kelas Cara Membuat Routing Pada Next.js App Router di BuildWithAngga

Cara Membuat Routing Pada Next.js App Router

Hallo teman-teman! Dalam artikel ini, kita akan membahas langkah-langkah yang perlu kamu ketahui untuk membuat routing dengan mudah menggunakan Next JS App Router. Routing adalah konsep penting dalam dunia pengembangan web yang memungkinkan kamu mengarahkan pengguna dari satu halaman ke halaman lainnya dengan lancar dan teratur. Yap, langsung saja kita eksekusi🚀 Menentukan Route Untuk membuat atau menentukan routing pada Next JS App Router itu sangat mudah sekali. Dalam contoh kali ini, kita akan membuat routing yang isinya berupa halaman detail product atau kelas. Ikuti langkah-langkah berikut: Langkah Pertama: Membuat Folder Saat kita ingin membuat routing kita harus membuat folder terlebih dahulu di dalam folder app. Ketika kamu membuat folder, maka folder tersebut akan mendefinisikan nama routing yang akan kamu gunakan. Dalam contoh kali ini, kita akan membuat folder bernama detail: Namun, jika hanya membuat folder saja itu belum cukup untuk membuat sebuah routing. Mari kita lanjut langkah selanjutnya🚀 Langkah Kedua: Membuat File page.tsx Setelah kita membuat folder, selanjutnya adalah kita harus membuat file bernama page.tsx di dalam folder detail. Perlu diingat bahwa ketika ingin mendefinisikan routing atau pages baru, kita harus beri nama file page.tsx pada folder. Jika kita memberi nama file selain page.tsx maka file tersebut hanya akan menjadi komponen biasa dan tidak akan menjadi sebuah routing atau pages. Langkah Ketiga: Membuat Konten Setelah kita selesai membuat routing, Sekarang mari kita mencoba membuat konten dari routing tersebut. Kamu bisa langsung copy kode di bawah ini: import React from 'react' const DetailPages = () => { return ( <section className="h-screen w-full flex flex-col justify-center items-center"> <div className='bg-gray-50 w-[1000px] flex px-8 py-12 space-x-4'> <div className='w-[500px] flex justify-center'> <img src="<https://buildwithangga.com/storage/assets/thumbnails/thumbnail%20kelas%20web%20development%20microservice%20buildwith%20angga.png>" className='w-[300px] h-[200px]' alt="img" /> </div> <div className='w-[500px]'> <h3 className='font-semibold text-3xl'>Kelas Online Web Development Microservice: Website Kelas Online</h3> <p className='text-slate-400 mt-2'>Learn how to build a real project from scratch</p> <div className='mt-6 flex items-center space-x-3'> <button className='bg-[#335EF7] px-6 py-2 rounded-full text-white font-semibold'>Beli Kelas</button> <button className='bg-[#E5E9F2] px-6 py-2 rounded-full text-gray-700 font-semibold'>Lihat Benefit</button> </div> </div> </div> </section> ) } export default DetailPages Sesuaikan isi kontenmu sesuai kebutuhan ya. Setelah kita membuat konten, sekarang kamu bisa akses routing atau pages baru kamu di http://localhost:3000/detail. Berikut adalah gambar review dari kode di atas: Gimana, mudah bukan membuat routing pada Next JS App Router? Kamu sekarang dapat membuat routing sesuai kebutuhan kamu. Kesimpulan Next JS App Router menawarkan kinerja yang tinggi dengan pendekatan yang optimal dalam mengelola routing. Dengan kemampuan ini, aplikasi web kamu dapat berjalan lebih cepat dan responsif. Dukungan yang diberikan untuk prerendering secara alami membantu aplikasi web memuat halaman-halaman dengan cepat, meningkatkan pengalaman pengguna dan optimasi mesin pencari. Membuat routing dalam aplikasi web menggunakan Next JS App Router sebenarnya tidak sesulit yang dibayangkan, kan? Dalam artikel ini, kamu telah belajar langkah-langkah dasar untuk membuat routing yang lancar dan teratur. Buat kamu yang ingin mempelajari fitur-fitur selanjutnya, kamu bisa ikut kelas di BuildWithAngga. Salah satunya yaitu, Kelas Online Gratis NextJS Basic ataupun yang berupa project base yaitu, Kelas Online Web Development Microservice: Website Kelas Online. So, ayo kita menjadi expert bersama BuildWithAngga🚀 See you guys!

Kelas Berkenalan Dengan Next.js Untuk Website Development di BuildWithAngga

Berkenalan Dengan Next.js Untuk Website Development

Halo, teman-teman! Kali ini kita akan berkenalan dengan Next JS, sebuah framework yang memudahkan kita dalam mengembangkan aplikasi web menggunakan React JS. Jangan khawatir, kita akan bahas dengan santai, ya! Next JS bukan hanya sekadar tambahan untuk React, tapi lebih dari itu. Mari kita mulai pembelajaran kita dengan Next JS dan lihat apa yang bisa kita pelajari bersama-sama! 🚀 Apa itu Next JS? Next JS adalah sebuah framework JavaScript, diciptakan secara khusus untuk bekerja bersama dengan React JS. Dalam analogi pengembangan web, Next JS dapat dianggap sebagai sekutu setia bagi React, yang membantu mengatasi berbagai tantangan yang muncul dalam proses pengembangan aplikasi web modern. Berikut adalah poin-poin penting tentang Next JS: Framework Full-Stack: Next JS bukan hanya membangun tampilan website front-end, tetapi juga menangani proses rendering dan pengelolaan database back-end. Dengan Next JS, kita tidak perlu menggunakan dua framework terpisah untuk mengembangkan website.Siap Produksi: Ketika kita melakukan setup proyek Next JS, proyek tersebut langsung siap untuk dijalankan tanpa perlu mengubah mode dari pengembangan ke produksi.Optimasi: Next JS mendukung pre-rendering (static generation dan server-side rendering) untuk meningkatkan performa dan SEO. Selain itu, Next JS memiliki fitur code splitting dan routing yang intuitif.Dukungan CSS: Next JS menyediakan dukungan untuk CSS dan Sass, serta berbagai library.Digunakan oleh Perusahaan Besar: Banyak perusahaan besar seperti TikTok, Hulu, Nike, AT&T, Ticketmaster, dan Marvel menggunakan Next JS untuk website mereka. Jadi, Next JS adalah framework yang membantu kita membangun website dengan lebih efisien dan handal. Yuk, bangun website dengan Next JS 🚀 Cara Install Project Next JS Setelah kita berkenalan dengan Next JS, sekarang saatnya kita mencoba meng-install project Next JS. Kamu bisa memasukkan perintah di bawah ini pada terminal: npx create-next-app@latest Pada saat instalasi, kamu harus mengisi pertanyaan berikut: What is your project named? my-app Would you like to use TypeScript? No / Yes Would you like to use ESLint? No / Yes Would you like to use Tailwind CSS? No / Yes Would you like to use `src/` directory? No / Yes Would you like to use App Router? (recommended) No / Yes Would you like to customize the default import alias (@/*)? No / Yes What import alias would you like configured? @/* Jika terminalnya sudah seperti gambar di bawah, maka instalasi sudah selesai. Menjalankan Project Next JS Setelah kita melakukan instalasi, sekarang kita akan mencoba menjalankan project. Sebelum menjalankan project kamu harus ada di dalam folder project nya terlebih dahulu. Jika belum, kamu bisa memasukkan perintah di bawah ini pada terminal: cd nama-project Jika kita sudah di dalam project-nya, sekarang mari kita jalankan project kita dengan memasukkan perintah di bawah ini pada terminal: npm run dev Berikut review gambar pada terminal jika kita menjalankan project-nya: Pada terminal di atas artinya kita sudah berhasil menjalankan project-nya dan bisa diakses melalui http://localhost:3000. Berikut adalah review gambar tampilan project pertama kita: Yeah, akhirnya kita sudah membuat first project kita menggunakan Next JS. Sekarang kamu bisa ubah tampilan web kamu sesuai kebutuhan kamu ya!. Kelebihan dan Kekurangan Next JS Next JS memiliki beberapa kelebihan yang patut diperhatikan: Lebih SEO Friendly: Pada Next JS, halaman website sudah terbentuk dalam format HTML saat browser memuatnya. Ini memudahkan mesin pencari seperti Google untuk mengindeks konten website. Jadi, website kita lebih ramah terhadap SEO.Setup Proyek Mudah: Next JS memudahkan setup project dan menghilangkan kebutuhan untuk konfigurasi manual. Ketika kita membuat project Next JS, project tersebut langsung siap untuk dijalankan tanpa perlu mengubah mode dari pengembangan ke produksi.Performa yang Baik: Dukungan pre-rendering (static generation dan server-side rendering) pada Next JS mengoptimalkan kecepatan loading halaman. Selain itu, fitur code splitting dan routing yang intuitif juga membantu meningkatkan performa.Deploy Mudah: Next JS dapat dengan mudah di-deploy di berbagai platform hosting. Ini memudahkan kita untuk mempublikasikan website dengan cepat. Namun, seperti halnya segala sesuatu, Next JS juga memiliki beberapa keterbatasan: Kurva Pembelajaran: Bagi developer yang baru mengenal React, ada sedikit kurva pembelajaran saat menggunakan Next JS, terutama jika kita ingin memanfaatkan server-side rendering secara optimal. Meskipun begitu, dengan kelebihan-kelebihan yang dimilikinya, Next JS tetap menjadi pilihan yang kuat untuk mengembangkan aplikasi web dengan React. Kesimpulan Next JS menonjol dengan kelebihan seperti kemudahan setup project, performa yang optimal berkat pre-rendering, dan kemudahan dalam deploy di berbagai platform hosting. Fitur SEO friendly memastikan indexabilitas konten oleh mesin pencari seperti Google, meningkatkan visibilitas situs. Namun, tantangan terletak pada kurva pembelajaran, terutama bagi pengembang baru dalam memahami konsep-konsep seperti server-side rendering. Meskipun demikian, dengan kelebihan yang ditawarkan, Next JS tetap menjadi pilihan menarik bagi developer yang mengutamakan performa dan efisiensi dalam pengembangan web modern. Jadi, setelah kita mengenal Next JS lebih dalam, kita sudah tau bahwa Next JS adalah pilihan yang kuat untuk mengembangkan aplikasi web dengan React. Dengan fitur-fitur unggul dan dukungan dari perusahaan besar, Next JS memudahkan pengembangan website yang efisien dan handal. Buat kamu yang ingin mempelajari fitur-fitur selanjutnya, kamu bisa ikut kelas di BuildWithAngga. Salah satunya yaitu, Kelas Online Gratis NextJS Basic ataupun yang berupa project base yaitu, Kelas Online Full-Stack JavaScript Developer 2021: Website Top Up Voucher Game. So, ayo kita menjadi expert bersama BuildWithAngga🚀 See you guys!

Kelas Cara Membuat Carousel Menggunakan shadcn-ui di BuildWithAngga

Cara Membuat Carousel Menggunakan shadcn-ui

Hallo, temen-temen developer web. Dalam artikel ini, kita akan membahas langkah demi langkah tentang bagaimana membuat carousel menggunakan shadcn-ui. Mulai dari instalasi hingga penggunaan komponen carousel, kamu akan mendapatkan pemahaman kuat tentang bagaimana mengimplementasikannya dalam proyek web kamu. Buat kamu yang belum melakukan instalasi shadcn-ui di Proyek, kamu bisa melakukan instalasi terlebih dahulu pada artikel sebelumnya, yaitu "Cara Install shadcn-ui Pada Project Next JS". Mari kita mulai!🔥 Instalasi Carousel dan Card Untuk menggunakan komponen carousel pada shadcn-ui tentunya kamu harus instal terlebih dahulu. Kamu bisa menjalankan kode di bawah menggunakan terminal: npx shadcn-ui@latest add carousel Karena kita akan membuat carousel sebuah card maka kita perlu juga untuk instalasi card juga. Silahkan jalankan kode di bawah ini: npx shadcn-ui@latest add card Jika sudah berhasil di-install maka akan ada file carousel.tsx , card.tsx dan button.tsx pada folder components\ui seperti gambar di bawah ini: Jika sudah seperti gambar di atas maka instalasi sudah selesai. Penggunaan Komponen Carousel Sekarang, saatnya kita bahas bagaimana menggunakan carousel dari shadcn-ui. Ketika kamu sudah berhasil meng-install-nya, langkah berikutnya adalah memulai penggunaannya. 1. Langkah Pertama: Import Semua Komponen Carousel dan Card Jika kamu menggunakan Next JS versi App Router, kamu bisa memulai dari file page.tsx . Lalu import semua komponen dari carousel dan card, kamu bisa copy dan paste kode di bawah ini dan simpan paling atas: import { Card, CardContent } from "@/components/ui/card" import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "@/components/ui/carousel" 2. Langkah Kedua: Gunakan Komponen Carousel Setelah kita import semua komponen dari carousel, selanjutnya adalah menggunakan komponen tersebut ke dalam user interface. Silahkan kamu copy kode di bawah: export default function Home() { return ( <main className="h-screen w-full flex flex-col justify-center items-center "> <Carousel className="w-full max-w-xs"> <CarouselContent> </CarouselContent> <CarouselPrevious /> <CarouselNext /> </Carousel> </main> ) } Pada kode di atas yang paling penting adalah kita harus masukan konten kita di dalam tag <CarouselContent></CarouselContent> . 3. Langkah Ketiga: Gunakan Komponen Card Ke Dalam Konten Carousel Pada contoh kali ini kita akan memasukkan sebuah card ke dalam konten yang akan di-jadikan sebuah carousel. Silahkan kamu copy kode di bawah ini dan paste di dalam tag <CarouselContent></CarouselContent> {Array.from({ length: 5 }).map((_, index) => ( <CarouselItem key={index}> <div className="p-1"> <Card> <CardContent className="flex flex-col aspect-square items-center justify-center p-6"> <img src="<https://buildwithangga.com/storage/assets/thumbnails/cnbbxwi2-Thumbnail%20(2).jpg>" /> <h6 className="my-4 font-semibold">Kelas Online Full-Stack JavaScript NextJS 2024 Developer: Bikin Website Toko Online</h6> <p>Konten ke {index + 1}</p> </CardContent> </Card> </div> </CarouselItem> ))} Lalu, di atas ada sebuah kode Array.from dengan diberikan panjang 5 lalu di-iterasi atau perulangan menggunakan map() . Artinya, Sebuah komponen card yang ada di dalam kode map() akan dilakukan perulangan, yang dimana hasil perulangan tersebut menghasilkan 5 komponen card yang akan dimunculkan di user interface. Jadi kita tidak perlu menulis banyak kode. Buat kamu yang belum paham penggunaan map() , alangkah baiknya kamu membaca artikel "Penggunaan Method Map pada Array JavaScript" terlebih dahulu agar tidak bingung. Berikut review sebuah gambar dari hasil kode di atas: Setelah mencoba praktek penggunaan carousel, sekarang kamu sudah bisa menampilkan konten dengan cara yang menarik dan interaktif di halaman web kamu. Dengan menguasai cara menggunakan carousel, kamu dapat dengan mudah membuat tampilan yang dinamis dan memikat bagi pengunjung situs web kamu. Penutup Salah satu keuntungan menggunakan carousel adalah memberikan pengalaman pengguna yang lebih interaktif dan menarik. Dengan menggunakan carousel, kamu dapat menampilkan banyak konten dalam satu area tanpa harus mengorbankan ruang pada halaman. Sudah selesai, ya! Kamu telah mengeksplorasi cara membuat carousel menggunakan shadcn-ui. Itu adalah langkah besar dalam membangun situs web yang menarik dan interaktif bagi pengunjung. Dengan carousel, kamu bisa menampilkan konten dengan cara yang menarik dan dinamis. Buat kamu yang ingin cepat-cepat menjadi expert, di BuildWithAngga telah menyediakan kelas-kelas berupa project base dari yang gratis hingga berbayar!. Yang dimana kamu akan mendapatkan materi-materi yang belum pernah kamu pelajari dan bisa dijadikan sebuah portfolio. Jika kamu ingin tau bagaimana cara membuat website e-commerce, langsung saja cek Kelas Online Full-Stack JavaScript NextJS 2024 Developer: Bikin Website Toko Online. So, ayo kita menjadi expert bersama BuildWithAngga🚀 See you guys!

Kelas Cara Membuat Hover Card Menggunakan shadcn-ui di BuildWithAngga

Cara Membuat Hover Card Menggunakan shadcn-ui

Hallo, temen-temen developer web. Dalam artikel ini, kita akan membahas langkah demi langkah tentang bagaimana membuat hover card menggunakan shadcn-ui. Mulai dari instalasi hingga penggunaan komponen hover card. Dengan hover card, pengguna bisa melihat informasi tambahan atau detail tentang suatu item hanya dengan mengarahkan kursor mouse ke atasnya. Misalnya, saat kamu me-navigasi ke gambar produk di toko online, hover card bisa menampilkan detail harga, ulasan, dan opsi pembelian tanpa harus mengklik lebih lanjut. Buat kamu yang belum melakukan instalasi shadcn-ui di Proyek, kamu bisa melakukan instalasi terlebih dahulu pada artikel sebelumnya, yaitu "Cara Install shadcn-ui Pada Project Next JS". Instalasi Hover Card Agar kita bisa menggunakan hover card, kita harus meng-install-nya terlebih dahulu komponen hover card. Kamu bisa jalankan teks di bawah ini menggunakan terminal: npx shadcn-ui@latest add hover-card Jika sudah berhasil di-install maka otomatis akan generate folder baru bernama components\ui dan berisikan file bernama hover-card.tsx seperti gambar di bawah ini: Jika sudah seperti gambar di atas maka instalasi sudah selesai. Penggunaan Komponen Hover Card Sekarang saatnya kita bahas bagaimana menggunakan hover card dari shadcn-ui. Ketika kamu sudah berhasil meng-install-nya, langkah berikutnya adalah memulai penggunaannya. 1. Langkah Pertama: Import Semua Komponen Hover Card Jika kamu menggunakan Next JS versi App Router, kamu bisa memulai dari file page.tsx . Lalu import semua komponen dari hover card, kamu bisa copy dan paste kode di bawah ini dan simpan paling atas: import { HoverCard, HoverCardContent, HoverCardTrigger, } from "@/components/ui/hover-card" Sebelum kita menggunakan komponennya, mari kita bahas terlebih dahulu komponen HoverCard , HoverCardContent , dan HoverCardTrigger : HoverCard: Kamu bisa memikirkan HoverCard sebagai wadah untuk semua informasi atau konten tambahan yang ingin kamu tampilkan kepada pengguna saat mereka melakukan hover.HoverCardContent: HoverCardContent adalah bagian dari HoverCard yang berisi konten tambahan atau informasi yang ingin kamu tampilkan kepada pengguna. Ini bisa berupa teks, gambar, atau bahkan kombinasi keduanya. Isi HoverCardContent akan muncul ketika pengguna mengarahkan kursor mouse ke HoverCard.HoverCardTrigger: HoverCardTrigger adalah elemen yang memicu atau mengaktifkan tampilan HoverCardContent saat pengguna melakukan hover di atasnya. Sudah pahamkan? Mari kita lanjut ke penggunaan🔥 2. Langkah Kedua: Gunakan Komponen Hover Card Setelah kita import semua komponen hover card, selanjutnya adalah menggunakan komponen tersebut ke dalam user interface. Silahkan kamu copy kode di bawah: export default function Home() { return ( <main className="h-screen w-full flex flex-col justify-center items-center"> <HoverCard> <HoverCardTrigger>What Is BuildWithAngga?</HoverCardTrigger> <HoverCardContent> </HoverCardContent> </HoverCard> </main> ) } Pada kode di atas kita telah menggunakan komponen dari hover card dan hanya baru mengisikan komponen tag <HoverCardTrigger> </HoverCardTrigger> 3. Langkah Ketiga: Buat Konten Hover Card Selanjutnya adalah kita harus membuat konten hover card di dalam tag <HoverCardContent></HoverCardContent> . Kamu bisa copy kode di bawah ini: <div className="flex space-x-4 p-4"> <img src="<https://buildwithangga.com/themes/front/images/logo_bwa_new.svg>" className="w-[60px] h-[60px]" alt="logo" /> <div> <h6 className="font-semibold text-sm mb-1">BuildWithAngga</h6> <p className="text-sm text-muted-foreground">BuildWithAngga menyediakan kelas UI/UX design, Web Development, dan Freelancer untuk pemula.</p> </div> </div> Berikut review sebuah gambar dari hasil kode di atas: Penutup Hover card memiliki keunggulan yang memungkinkan pengguna untuk melihat informasi tambahan dengan cepat tanpa harus meninggalkan halaman. Selain itu, hover card juga membantu mengatur tata letak halaman dengan cara yang lebih estetis dan efisien, memastikan informasi penting tetap terlihat namun tidak mengganggu pengalaman pengguna secara keseluruhan. Nah, begitulah cara kamu bisa membuat hover card menggunakan shadcn-ui! Gimana, gampang kan? Dengan langkah-langkah yang udah kamu ikuti tadi, sekarang kamu udah bisa bikin situs web-mu makin keren dengan hover card yang interaktif. Buat kamu yang ingin tidak sabar menjadi expert! Di BuildWithAngga telah menyediakan kelas-kelas berupa project base dari yang gratis hingga berbayar!. Yang dimana kamu akan mendapatkan materi-materi yang belum pernah kamu pelajari dan bisa dijadikan sebuah portfolio. Jika kamu ingin tau bagaimana cara membuat website Job Portal, langsung saja cek Kelas Online Full-Stack JavaScript Next JS Developer: Build Job Portal Website. So, ayo kita menjadi expert bersama BuildWithAngga🚀 See you guys!

Kelas Penggunaan Method forEach pada Array JavaScript di BuildWithAngga

Penggunaan Method forEach pada Array JavaScript

Pada artikel kali ini kita akan membahas penggunaan method forEach() yang ada pada Array Prototype JavaScript. Buat kamu yang belum belajar JavaScript dasar, kamu bisa belajar terlebih dahulu ya di Kelas JavaScript ES6 Dasar dan buat kamu yang ingin belajar method forEach() alangkah baiknya membaca artikel sebelumnya, yaitu "Memahami Array Prototype dalam JavaScript". Kamu pernah engga terjebak dalam aliran data di dalam array JavaScript dan bertanya-tanya ada cara yang efisien untuk menangani setiap elemennya? Nah, kamu harus tau bahwa ada method JavaScript untuk melakukan iterasi dengan efisien dan mudah, yaitu dengan method forEach. Di dunia pemrograman JavaScript, terkadang kita berhadapan dengan tumpukan data yang membingungkan. Namun, jangan khawatir! Metode forEach adalah method terbaik kamu dalam menavigasi array dan melakukan tugas-tugas yang diperlukan pada setiap elemennya. Pengenalan Method forEach Nah, mari kita mulai dengan pembicaraan tentang method forEach . Jadi, bayangkan kamu punya sebuah tim yang terdiri dari sekelompok orang. Sekarang, kamu ingin memberi tugas kepada setiap orang dalam tim tersebut, tapi kamu tidak ingin capek-capek menyuruh mereka satu-satu. Nah, itulah saat nya method forEach digunakan! Jadi, dalam dunia JavaScript. Method forEach adalah cara efisien untuk memberikan tugas kepada setiap elemen pada dalam sebuah array. Ini seperti kamu memberi tugas ke setiap orang dalam tim kamu dengan satu perintah, dan kemudian mereka semua melakukannya tanpa kamu perlu berkali-kali menginstruksi satu per satu. Sangat praktis, bukan? Pokoknya, dengan forEach, kamu bisa menjalankan sebuah fungsi untuk setiap elemen dalam array. Jadi, tidak perlu repot-repot menggunakan loop atau instruksi berulang kali. Semua dilakukan dengan mudah dan cepat! Penggunaan Method forEach Method forEach memungkinkan kamu untuk menjalankan sebuah fungsi pada setiap elemen dalam sebuah array. Ini sangat berguna ketika kamu ingin melakukan operasi pada setiap elemen dalam array tanpa perlu menuliskan loop for secara manual. Contohnya, kita punya sebuah array numbers yang berisi beberapa angka: let numbers = [1, 2, 3, 4, 5]; Sekarang, kita ingin menampilkan setiap angka dalam array tersebut ke dalam console. Kita bisa menggunakan forEach untuk melakukannya: numbers.forEach(function(number) { console.log(number); }); Gambar dari hasil console di atas Dalam contoh di atas, forEach akan menjalankan function yang diberikan pada setiap elemen dalam array numbers. Function tersebut akan menerima satu argumen, yaitu nilai dari elemen saat ini dalam iterasi. Kita menyebutnya number di sini, tetapi kamu bisa memberikan nama apa pun yang kamu inginkan. Fungsi tersebut kemudian memanggil console.log(number) untuk menampilkan setiap angka ke dalam console. Ini sangat berguna karena kita tidak perlu repot membuat variabel iterator dan mengelola iterasi secara manual. Method forEach menangani semuanya untuk kita. Contoh Penggunaan Method forEach Selanjutnya Misalkan kamu memiliki sebuah aplikasi yang menampilkan daftar buah-buahan favorit pengguna. Dalam kode JavaScript, kamu memiliki array yang berisi nama-nama buah seperti apple, banana, mango, dan orange. Sekarang, kamu ingin mengubah format penampilan nama-nama tersebut dengan nembahkan kata I Like di depan setiap nama buah, sehingga hasil nya menjadi lebih ramah dan menarik bagi pengguna. Mari kita buat sebuah array fruits yang berisikan daftar nama-nama buah: Let's write code🚀 const fruits = ['apple', 'banana', 'mango', 'orange']; Sekarang, kamu ingin menampilkan setiap nama buah dalam array tersebut dengan tambahan kata I Like di depan setiap nama buahnya. Kamu dapat melakukannya dengan menggunakan method forEach seperti ini: fruits.forEach((fruitName) => { console.log('I like ' + fruitName); }); Gambar dari hasil console di atas Dalam contoh ini, forEach digunakan untuk melakukan iterasi pada setiap elemen dalam array fruits. Function yang diberikan kepada forEach kemudian dipanggil untuk setiap elemen dalam array, di mana kita menambahkan kata I Like di depan setiap nama buah dan menampilkannya menggunakan console.log. Keuntungan Menggunakan Method forEach Nah, alasan utama kamu mungkin ingin menggunakan method forEach di JavaScript adalah kemudahan dan kejelasannya. Bayangkan aja, dengan forEach, kamu bisa melewati setiap elemen dalam array tanpa perlu repot mengatur variabel iterasi atau mengkhawatirkan batasan loop. Misalnya, daripada harus menghitung dari 0 sampai panjang array untuk mengakses setiap elemennya, kamu bisa langsung memanggil forEach dan melakukan sesuatu pada setiap elemen. Ini membuat kode jadi lebih bersih dan lebih mudah dipahami. Selain itu, dengan menggunakan forEach, kamu juga mengurangi kemungkinan terjadinya kesalahan. Saat kamu menggunakan loop tradisional seperti for atau while, terkadang kamu bisa lupa untuk menambah atau mengurangi variabel iterasi, atau bahkan bisa lupa menambah tanda kurung kurawal dengan benar. Tapi dengan forEach, semua itu diatur oleh JavaScript untuk kamu, jadi kamu bisa lebih fokus pada apa yang ingin kamu lakukan dengan setiap elemen array. Jadi, singkatnya, menggunakan method forEach bisa membuat kode kamu lebih bersih, lebih mudah dipahami, dan lebih rentan terhadap kesalahan. Jadi, ngapain pake loop yang ribet kalau ada forEach, kan? Kesimpulan Setelah membahas berbagai aspek tentang penggunaan method forEach pada array JavaScript, kita dapat menyimpulkan bahwa method ini sangat berguna dalam memanipulasi dan mengelola data dalam sebuah array. Dengan menggunakan forEach, kamu dapat dengan mudah menjalankan sebuah function pada setiap elemen dalam array tanpa perlu repot dengan pengaturan index atau kondisi loop. Dengan demikian, penggunaan method forEach menjadi salah satu praktik terbaik dalam pengembangan JavaScript modern. Dengan memahami dan menguasai method ini, kamu dapat meningkatkan produktivitas dalam menulis kode dan membuat aplikasi JavaScript yang lebih baik dan lebih efisien. Semoga penjelasan dan contoh yang telah diberikan dapat memberikan manfaat dan menginspirasi kamu untuk terus mengeksplorasi bahasa pemrograman JavaScript. See you guys! ✨