Akses kelas selamanya

Ambil Promo
flash sale
hamburger-menu

Tips All

Meningkatkan skills menjadi 1% lebih baik

Reset
Kelas 5 UX Metriks yang perlu dikuasai sebagai Product Designer di BuildWithAngga

5 UX Metriks yang perlu dikuasai sebagai Product Designer

Sebagai seorang Product Designers, Product Manager, maupun UI/UX Designer. Kekuatan UX sangatlah berdampak pada pertumbuhan bisnis dan users pada produk yang sedang kita kembangkan, tentunya kita tidak dapat mengetahui dampak dari UX yang sedang kita kerjakan tanpa adanya UX metriks. UX metriks sendiri merupakan sebuah metode pengukuran untuk menilai interaksi di antara users dan produk. UX metriks memiliki banyak metode pengukuran dalam bentuk kuantitatif yang bisa kamu pakai sesuai dengan kebutuhan dan kondisi produk kamu. Dengan data-data tersebut, kamu bisa mengambil keputusan berdasarkan fakta dan bukan berdasarkan opini. Pada artikel ini, saya akan menjelaskan beberapa UX Metriks yang perlu kamu kuasai untuk meningkatkan produk yang kamu kerjakan berdampak secara efektif & efisien. System Usability Scale (SUS) System Usability Scale merupakan metode pengukuran kuantitatif dengan memberikan beberapa pertanyaan survey, lalu pertanyaan tersebut berisikan 5 opsi jawaban untuk responden menjawab; dari “Sangat setuju” ke “Sangat tidak setuju”. Berikut beberapa steps sederhana untuk kamu memulai SUS: Membuat pertanyaan kuisioner minimal 10 pertanyaan di Google Form ataupun Form lainnya.Distribusikan survey tersebut kepada users yang memakai produk kamu (minimal 10 users yang diluar tim) untuk mendapatkan jawaban yang objektif.Kalkukasikan hasil dari survey tersebut dengan cara mencari rata-rata dari 10 pertanyaan tersebut. Jika hasil dari rata-rata mendapatkan angka diatas 68, maka kamu berhasil membuat produk yang aksesibel terhadap users. Time on Task Metriks ini mengukur seberapa lama users mengerjakan suatu task di dalam produk kita. Mengukur waktu ini sangatlah penting untuk kita mengetahui apakah seberapa efisien users dalam mengerjakan flow yang kita buat, terlalu lama users mengerjakan sebuah task, maka akan berdampak pada users frustation dan probabilitas mereka meninggalkan produk kita akan semakin besar. Untuk melakukan Time on Task, kamu dapat menggunakan tools analytics seperti Google Analytics, maupun Maze. Jika kita telah mengetahui waktu saat users mengerjakan sesuatu dan ada harapan untuk mempersingkat waktu tersebut, maka bisnis di dalam produk kita akan berjalan lebih baik lagi, dan memberikan kepuasan terhadap users itu sendiri. Namun perlu diingat, singkat atau lamanya waktu sangat bergantung pada Task yang kita berikan, tidak ada waktu yang ideal di dalam mengerjakan task itu sendiri. Completion Rates Hampir mirip dengan Time on Task, namun metode pengukuran ini mengukur users dengan hasil yang binary seperti “berhasil” atau “tidak berhasil. Pengukuran ini biasanya diperlukan dalam aksi yang memiliki beberapa tahap, seperti checkout barang, create account, menambah credit card, dan masih banyak lagi. Untuk melakukan UX metriks seperti completion rates, kamu dapat menggunakan tools analytics seperti Google Analytics, atau kamu juga dapat menggunakan Maze. Hasil dari pengukuran ini biasanya digunakan untuk mengetahui beberapa bottleneck dari produk yang kita kembangkan, seperti mengetahui dimana users meninggalkan produk kita, bahkan system errors sendiri. Net Promotion Scores (NPS) Net Promotion Scores merupakan metriks yang mengukur loyalitas users untuk produk kita. Berdasarkan data, NPS Ratings yang buruk biasanya banyak ditemukan dalam kasus yang berhubungan dengan UX yang buruk dan banyak bugs. Oleh karena itu, penting untuk mengetahui NPS dengan cara bertanya kepada users dalam beberapa pertanyaan simple seperti: “Pada skala 0 hingga 10, seberapa mungkin Anda merekomendasikan produk kami kepada teman atau rekan kerja?”“Pada skala 0 hingga 10, seberapa puas Anda dengan pengalaman menggunakan produk kami?”“Apa yang membuat Anda memberikan skor tersebut?” Feature Usage Rate Untuk mengetahui fitur yang sangat dibutuhkan oleh users, kamu dapat menggunakan UX metriks Feature Usage Rate. Feature Usage Rate merupakan metode pengukuran kualitatif yang dimana memberikan insights berupaka user behavior untuk kamu mengetahui lebih dalam fitur produk yang paling dibutuhkan oleh users. UX Metriks ini sangat berguna untuk kamu dalam akuisisi users, dimana kamu dapat dibantu untuk menemukan customers baru dengan fitur yang relevan dengan kebutuhan mereka. Kesimpulan Well, berikut adalah beberapa UX Metriks sederhana yang wajib kamu kuasai agar dapat meningkatkan produk yang sedang kamu kembangkan lebih memberikan services yang efektif & efisien lagi. Memutuskan UX Metriks yang tepat dapat memberikan kamu fokus kepada hal yang penting, memberikan objektif yang jelas untuk dicapai dan mengarahkan keputusan kepada yang lebih efektif: System Usability Scale (SOS) metode pengukuran survey aksesibilitas terhadap produk kamu.Time on Task mengukur durasi users dalam mengerjakan task yang diberikan di dalam produk.Completion Rates mengetahui apakah users dalam menyelesaikan task yang kita berikan di dalam produk.Net Promotion Scores (NPS) mengukur loyalitas users dalam mempromosikan produk.Feature Usage Rate mengetahui fitur dari sebuah produk yang sangat dibutuhkan oleh users. Bagi kamu yang yang ingin mempelajari UI/UX Design dengan lebih baik lagi, kamu dapat mempelajari beberapa kelas yang tersedia di website BuildWithAngga.com dalam mempersiapkan karir high-demand skill dan dapat survive dengan kompetitor lainnya. Sampai jumpa di artikel & tips selanjutnya. Goodluck!

Kelas 5 AI Tools Canggih Untuk Freelancers di BuildWithAngga

5 AI Tools Canggih Untuk Freelancers

Dengan dunia yang serba cepat seperti ini, seorang freelancers sangatlah membutuhkan produktivitas & efisiensi yang tinggi untuk terus kompetitif dan memberikan output terbaik bagi client. Dengan produktivitas yang tinggi, seorang freelancer tentunya akan mendapatkan banyak benefit seperti kepuasaan client yang tinggi, on-time delivery, dan masih banyak lagi. Dengan tuntuntan tersebut, kamu sebagai client tentunya sangat membutuhkan platform yang dapat dengan baik menjalankan perintah repetitif ataupun kebutuhan kreatifitas saat sedang creative block. AI bisa jadi salah satu tool untuk kamu terus dapat berkembang secara efisien, dan tentunya tingkat produktivitas yang tinggi. Berikut ini saya merangkum 5 AI tools canggih untuk kamu sebagai freelancers: ChatGPT Tentunya AI Tools yang satu ini akan selalu dapat diandalkan. ChatGPT merupakan AI dari OpenAI untuk memproses bahasa alami manusia melalui algoritma machine learning. AI Tools satu ini merupakan AI yang sangat fleksibel dan dapat diandalkan untuk kasus apa saja. Semua freelancers dapat menggunakan tools seperti: Membuat email atau respon dari clientBrainstorming IdeaMembuat kontenDan masih banyak lagi! Kamu cukup dengan memberikan sebuah prompt sesuai dengan apa yang kamu butuhkan, ChatGPT akan berusaha membantu apapun itu. ChatGPT untuk saat ini tersedia versi gratis secara unlimited. Namun, apabila kamu ingin membuat AI menerima input seperti image atau video, kamu harus upgrade versi ChatGPT kamu, ya! RescueTime Sebagai freelancers, kamu pasti mempunyai banyak tasks untuk dikerjakan, RescueTime dapat menjadi tools andalan untuk membantu kamu meningkatkan produktivitas dengan memberikan kamu value dan insights agar kamu dapat optimasi workflow lebih efektif lagi. Berikut beberapa kelebihan fitur RescueTime yang dapat kamu gunakan: Automatic Time-TrackingDistraction BlockingData Analysis Dengan begitu, RescueTime akan memberikan kamu beberapa statistik untuk kamu pelajari apa saja yang menjadi distraksi kamu. Setelah itu, kamu dapat mengetahui dan menghindari pekerjaan yang dapat mengganggu kamu. Grammarly Dunia freelancers tentunya tidak jauh dari dunia komunikasi, baik itu komunikasi dengan client ataupun kolega. Dengan itu, Grammarly sangat cocok untuk membantu kamu dalam hal komunikasi agar yang disampaikan jelas dan tidak bertele-tele. Grammarly juga tidak hanya dapat membantu kamu dalam hal komunikasi, namun dapat memberikan ide dan mempersingkat proses kamu dalam membuat artikel atau email. Berikut beberapa fitur unggulan Grammarly: Kustomisasi bahasaSecara real-time memberikan improvement terhadap tulisan kamuNotifikasi untuk improvementPenjelasan real-time dari yang kamu baca Grammarly gratis untuk kamu coba dan gunakan untuk keseharian kamu menulis baik itu email secara profesional maupun membuat proposal. Namun, apabila kamu ingin mendapatkan lebih banyak fitur, saya sarankan untuk meng-upgrade plan kamu, ya! ClickUp ClickUp merupakan all-in-one AI Tools untuk membantu kamu dalam keseharian menjadi freelancer. Tools seperti membantu kamu komunikasi, membuat konten, hingga summarize brief dari client. Berikut beberapa fitur terbaik yang ClickUp sediakan untuk kamu: AI tools yang dapat digunakan dari berbagai profesi seperti marketing, sales, product design, engineering, writer, dan masih banyak lagi.Membantu menulis untuk artikel, email, dan lainnya hanya dalam beberapa klik.Membantu summarize berbagai dokumen seperti brief dari client. Dengan begitu, untuk kamu yang memiliki lebih dari 1 pekerjaan. ClickUp mungkin sangat cocok untuk kamu, cukup dengan beberapa klik dan adjustment, kamu dapat memberikan output yang terbaik untuk meningkatkan produktivitas kamu. Durable Freelancers tidak hanya dituntut baik untuk melakukan pekerjaan. Namun, freelancers juga harus baik dalam melakukan personal branding agar kamu dapat meningkatkan client lebih banyak lagi. Durable sangat cocok untuk membantu kamu membuat website secara simple dan tidak membutuhkan waktu yang banyak. Beberapa fitur terbaik dari Durable: Menyediakan banyak library untuk dipakaiMembuat Website secara simple dan cepatKustomisasi font dan warna yang luas Dengan kamu mempunyai website pribadi, Client dapat sangat mudah menemukan kamu dan melihat pekerjaan kamu. Kesimpulan Well, berikut adalah beberapa AI Tools untuk membantu kamu meningkatkan produktivitas dan efisiensi waktu sebagai freelancers. Kamu dapat menggunakan tools tersebut secara gratis, namun tentunya ada beberapa limitasi. Kalau kamu ingin mempelajari bagaimana cara menjadi freelancers dan mendapatkan banyak client. Kamu dapat berkunjung ke website BuildWithAngga.com dalam mempersiapkan karir menjadi freelancers dan dapat survive dengan kompetitor lainnya. Sampai jumpa di artikel & tips selanjutnya. Good Luck!

Kelas Langkah Membuat Desain UI Homepage Aplikasi Travel di BuildWithAngga

Langkah Membuat Desain UI Homepage Aplikasi Travel

Hi everyone, kamu pernah gak sih mau bikin desain user interface tapi bingung mulai dari mana? Yuk sini, baca penjelasan berikut! Pada kesempatan kali ini aku akan berbagi langkah mudah untuk kamu membuat desain tampilan halaman Home dari langkah yang paling awal! Langkah 1 : Mencari Referensi dan Menentukan Konten Sebelum kamu membuat desain suatu tampilan, kamu harus menentukan konten tampilan desain akan seperti apa. Aplikasi atau website apa yang akan kamu buat. Pada tahap ini kamu bisa terlebih dahulu mencari referensi dari desain. Karena tahap ini akan memberikan kamu lebih banyak ide tentang tampilan yang akan kamu buat. Kamu bisa mencari referensi melalui Pinterest.com, Dribbble.com, Behance.net dan Shaynakit.com. Langkah 2: Menentukan Warna dan Gaya Desain Setelah menentukan tema dan referensi yang cocok, kamu bisa mulai menentukan pilihan warna yang akan digunakan untuk desain kamu. Pilihan warna yang bisa kamu tentukan adalah warna primary, secondary dan warna neutral. Warna-warna ini akan digunakan pada aset desainmu seperti button, icon, navigation bar dan lain-lain. Dengan menentukan warna yang akan digunakan, desainmu akan menjadi lebih konsisten dan rapi. Langkah 3: Memilih Ukuran Frame yang Akan Digunakan Membuat Frame pada figma bisa dilakukan dengan menekan huruf F pada keyboard, lalu akan muncul pilihan ukuran Frame. Saat ini mengikuti ukuran yang biasa digunakan adalah Iphone 14 Pro dengan ukuran 393 x 852px. Langkah 4: Membuat Header Langkah selanjutnya adalah memasukan konten header yang telah ditentukan. Untuk contoh kali ini aku memasukan konten berupa foto profil, notif dan detail nama serta kalimat ucapan seperti “Good Morning”. Membuat profile dapat dilakukan dengan menggunakan objek ellips dengan menekan huruf O pada keyboard. Lalu pada pengaturan Fill diubah menjadi image dan kamu dapat memilih gambar yang diinginkan. Selanjutnya kamu dapat membuat text dengan menekan huruf T dan dilanjut dengan menuliskan kalimat “good morning” dengan menggunakan ukuran 12pt dan “Marilyn Dokidis” dengan menggunakan ukuran 18pt. Pembuatan tombol notif di sini menggunakan icon yang ditaruh ke dalam ellips serta digabungkan menjadi group dengan select kedua object dan klik ctrl+G. Jangan lupa untuk menyesuaikan warna icon dan ellips. Icon yang aku gunakan di sini yaitu Iconly. Langkah 5: Membuat Input Field Booking Flight Pada tampilan card ini terdapat beberapa komponen yang harus dibuat untuk melengkapinya. Langkah awal dalam pembuatan ini adalah dengan membuat card terlebih dahulu. Tahap ini dapat dilakukan dengan menggunakan rectangle dengan menekan R. Buat kotak dengan ukuran 353 x 401px dan atur corner radius menjadi 24. Membuat button untuk “One-way” dan “Multi-city” dapat dilakukan dengan text yaitu T dan memasukan texttersebut ke dalam Frame (click F) dengan ukuran 156,5 x 41 pixels. Jangan lupa untuk mengatur corner radius pada Frame untuk mendapat bentuk yang diinginkan. Membuat form untuk “tujuan dan keberangkatan” dengan menggunakan text dan juga menambahkan icon. Untuk form ini digabungkan ke dalam satu Frame dan diberikan batas dengan menggunakan Line dengan menekan huruf L. Jangan lupa untuk tambahkan button dengan menggunakan icon panah yang digabungkan ke dalam ellips. Lalu ubah ukuran corner radius menjadi 12. Form untuk tanggal, kamu dapat menggunakan tahapan yang sama seperti sebelumnya hanya saja Frame yang digunakan memiliki ukuran yang berbeda. Untuk tambahan terdapat icon switch yang bisa kamu dapatkan melalui Figma Community atau dapat kamu buat sendiri dengan ellips dan rectangle. Masih dengan tahap yang sama yaitu Text dan Frame, pada form ke 4 ini yaitu penumpang dan kelas perbedaannya hanyalah ukuran panjang. Selanjutnya kamu dapat membuat “Search Flight” CTA button dengan cara yang sama yaitu menggabungkan text dan icon ke dalam Frame. Selanjutnya atur ukuran tinggi dan panjang dari button tersebut. Langkah 6: Membuat Special Price Pada bagian ini akan dibagi menjadi dua yaitu “Judul” dan bagian "Card". Pada judul menggunakan ukuran font 18pt untuk title dan 12pt untuk subtitle. Selanjutnya untuk button “See more” bisa menggunakan ukuran 12pt yang selanjutnya akan dimasukan ke dalam Frame dengan ukuran 79 x 36px. Untuk card “Promo”, pertama kamu dapat membuat Frame dengan ukuran 287 x 118px terlebih dahulu dan mengatur corner radius menjadi 12px. Langkah selanjutnya menyiapkan icon destination pesawat. Dengan menggunakan dua objek yaitu ellips dan line dash. Bentuk pesawat bisa kita ambil dari icon. Lalu kita dapat membuat text data-data yang dibutuhkan untuk dimasukan ke dalam info card tersebut sepeperti tanggal, tujuan, durasi dan jam penerbangan. Dengan menggunakan ukuran huruf seperti di atas. Langkah selanjutnya adalah menambahkan tampilan promo pada card yaitu dengan icon promo ukuran 32 x 32px dan Frame ukuran 66 x 118px dan corner radius 12 x 12px. Setelah selesai kamu bisa menggabungkan kedua card dengan cara group yaitu klik kanan dan pilih group selection. Langkah 7: Membuat Background Untuk Header Kamu dapat membuat background untuk bagian header agar lebih menarik dengan tahap-tahap berikut ini: Membuat background kali ini menggunakan Frame dengan menekan huruf F. Gunakan ukuran 393 x 291px dan atur corner radius 40px untuk dua sudut saja. Oiya, jangan lupa untuk ceklist clip content. Setelah itu ubah Fill menjadi Linear dengan kode warna #3079D9 dan #1E73E4. Lalu kamu bisa mencari tampilan “Map” pada figma community. Kali ini aku menggunakan melalui link berikut World Map SVG Illustration . Langkah terakhir adalah memasukan map tersebut ke dalam Frame background yang telah dibuat dan ubah opacity map menjadi 40%. Selesai tahap ini kamu bisa langsung taruh background tersebut pada bagian header. Langkah terakhir gabungkan background dengan header, taruh background pada posisi di belakang header yang telah kita buat dengan click kanan dan send to back. Langkah 8: Bottom Navigation Bar Untuk melengkapi tampilan dan fitur pada aplikasi maka akan ditambahkan navigation bar. alasan penggunaan text pada navigation bar adalah untuk mempermudah pengguna mengetahui fungsi bottom tersebut. Tahap pembuatan bottom navigation bar yaitu dengan menggunakan Frame 393 x 107px. Setelahnya, buat fitur yang akan dimasukan ke dalam  navigation bar dengan menggunakan teks dan juga icon seperti contoh di atas. Navigation bar telah selesai dan siap digabung bersama aset lainnya. Langkah 9: Colors Jika keseluruhan desain telah selesai, kamu bisa mulai memeriksa penggunaan warna yang digunakan dan menyesuaikannya. Tentukan Primary Color dan Secondary Color yang akan digunakan. Pada UI design kali ini, aku menggunakan #3079D9 sebagai primary color dan #FFD88F untuk secondary color. Yeay sekarang kamu sudah berhasil membuat tampilan UI homepage untuk aplikasi travel! Semoga langkah pembuatan desain UI untuk Home ini dapat dimengerti yaa dan menambah semangat ya belajar UI. Oiya, kamu juga bisa loh belajar lebih dalam lagi mengenai UI melalui website BuildWithAngga ;)

Kelas Pengenalan Dasar Typescript di BuildWithAngga

Pengenalan Dasar Typescript

Typescript merupakan superset dari Javascript. Apa yang dilakukan oleh Javascript tentu bisa dilakukan Typescript, namun sebaliknya apa yang dilakukan Typescript belum tentu bisa dilakukan Javascript. Terdapat fitur-fitur dasar yang akan sering kita gunakan ketika menggunakan Typescript, pada artikel kali ini kita membahas dasar dan bagaimana menuliskan sintaks Typescript dan implementasi contoh sederhananya. 1. Tipe Data Seperti penjelasan di awal, Typescript merupakan superset dari Javascript yang dimana semua yang dilakukan oleh Javascript tentu saja bisa dilakukan Typescript. Berikut ini tipe data yang akan sering digunakan ketika menggunakan Typescript: Tipe DataContohstringIni bertipe data stringnumber1,2,3,4booleantrue/false 2. Variabel Terdapat fitur ekstra yang bisa kita tetapkan ketika ingin membuat sebuah variabel pada Typescript, yaitu kita bisa menetapkan tipe data apa yang akan ditampung pada variabel tersebut. Sebagai contoh: let username:string = 'John Doe' username = 30 console.log(username) // Output: Type 'number' is not assignable to type 'string'. Hal merupakan sebuah benefit ketika menggunakan Typescript, karena menjadikan program kita akan lebih konsisten dan meminimalisir terjadinya error akibat perubahan variabel yang tidak inginkan. 3. Type and Interface Type pada Typescript dapat kita manfaatkan untuk mendefinisikan tipe data yang akan digunakan. type UserType = { name: string age: number } const userObject:UserType = { name:'John Doe', age:10 } Pada kode di atas, UserType didefinisikan sebagai sebuah type yang memiliki dua property: name dengan tipe string dan age dengan tipe number. Kemudian, kita membuat object userObject dibuat berdasarkan tipe UserType yang telah didefinisikan sebelumnya. Lalu terdapat interface, yaitu aturan yang berbentuk object untuk mendefinisikan tipe data yang akan digunakan. Contoh penggunaan: interface UserInterface{ name: string age: number } const someUserObject:UserInterface = { name:'Doe', age:10 } Terlihat pada kedua contoh di atas, baik Type ataupun Interface sama-sama diwajibkan untuk mengisi property yang kita definisikan. Apabila kamu ingin membuat property tersebut bersifat opsional, maka kamu bisa mendapatkannya dengan cara menambahkan Opsional Mark (?) pada property tersebut. interface UserInterface{ name: string age: number address?:string // Property yang bersifat opsional, maka Typescript menghiraukan apabila tidak terdapat nilai ini. } const someUserObject:UserInterface = { name:'Doe', age:10 } 4. Intersection and Union Type Intersection (&) pada Typescript memungkinkan kita untuk menggabungkan beberapa tipe data menjadi satu. // Definisikan Type type UserType={ name:string username:string } type BioType= { age:number } // Gunakan Type pada object const user:BioType & UserType={ name:'John Doe', username:'johndoe', age:30 } Pertama, kita definisikan UserType dengan property name dan username sebagai string.Lalu, kita definisikan juga BioType dengan property age sebagai number.Kemudian kita melakukan penggabungan antara UserType dan BioType dengan intersection (&) untuk membuat tipe data baru pada variabel user, dan hal ini membuat objek user wajib memiliki semua property dari kedua tipe data tersebut. Berbeda dengan Intersection Type yang dimana kita harus mengisi semua nilai pada tipe data tersebut, Union Type (|) digunakan untuk menyatakan bahwa sebuah nilai dapat memiliki salah satu dari beberapa tipe data yang didefinisikan. // Definisikan Type type UserType={ name:string username:string } type BioType= { age:number } // Gunakan Type pada object const user:BioType | UserType={ name:'John Doe', username:'johndoe', } Kode di atas valid, dikarenakan kita menggunakan Union Type yang dimana pada variabel tersebut dapat memiliki salah hanya satu nilai saja yang dari kita definisikan. 5. Array and Object Pada Typescript, kita bisa mendefinisikan tipe data array menggunakan sintaks khusus. Ada beberapa cara untuk melakukannya: Notasi Type: Menggunakan tanda kurung siku [] untuk mendefinisikan tipe array dari suatu tipe data tertentu. // array string let fruits: string[] = ['Jeruk', 'Pisang', 'Pepaya']; // array number let age: number[] = [20, 14, 33, 36,]; Generic Type: Kita juga bisa menggunakan generic Array untuk mendefinisikan tipe array dengan lebih eksplisit. // array string let fruits: Array = ['Jeruk', 'Pisang', 'Pepaya']; // array number let age: Array = [20, 14, 33, 36,]; Union: Kita juga bisa menggunakan Union Type (|) untuk mendefinisikan tipe array yang dapat menyimpan beberapa tipe data. // array string atau number let data: (string | number)[] = ['Jeruk', 30, 'Pisang', 456]; Tuple: Tuple adalah tipe khusus array yang memungkinkan kita mendefinisikan tipe data untuk setiap elemen dalam array pada posisi yang telah ditentukan. // Tuple dengan tipe data spesifik untuk setiap elemen let tuple: [string, number, boolean] = ['Jeruk', 30, true]; Sedangkan untuk mendefinisikan objek pada Typescript, ada beberapa cara yang dapat kita gunakan, yaitu: Notasi Object: Kita bisa menggunakan notasi objek langsung dengan menetapkan tipe data untuk setiap property dalam objek. let bio: { name: string; age: number } = { name: 'John Doe', age: 30 }; Interface: Menggunakan interface memungkinkan kita mendefinisikan struktur objek yang lebih kompleks dengan menentukan tipe data untuk setiap property. interface PersonInterface { name: string; age: number; } let person: PersonInterface = { name: 'John Doe', age: 30 }; Type: Kita juga bisa menggunakan type untuk digunakan pada tipe data objek, dengan cara yang serupa seperti menggunakan interface. type TypePerson = { name: string; age: number; }; let person: TypePerson = { name: 'John Doe', age: 30 }; 6. Function Terdapat perbedaan dalam membuat function ketika menggunakan Javascript dan Typescript. Apabila kita membuat function dan terdapat parameter didalamnya, kita diwajibkan untuk mendefinisikan tipe data dari parameter tersebut. function somFunction(x: number, y: number) { // rest of code } Kemudian kita juga dapat memberikan informasi tambahkan pada tipe data dari kembalian fungsi tersebut, sebagai contoh: function sum(x: number, y: number):number { return x+y } Parameter: Fungsi sum memiliki dua parameter yang memiliki tipe data number.Tipe Kembalian: Dengan adanya :number setelah parameter fungsi, ini menandakan bahwa fungsi ini akan mengembalikan nilai bertipe number.Operasi: Fungsi ini menjumlahkan nilai x dan y, lalu mengembalikan hasil penjumlahan tersebut sebagai nilai kembalian. Kesimpulan Kesimpulannya dengan Typescript, kita dapat dengan jelas mendefinisikan struktur tipe data yang diharapkan, baik untuk objek, fungsi, atau jenis data lainnya. Penggunaan type, interface, dan konsep seperti union, intersection memungkinkan kita untuk membuat kode yang lebih aman dan mudah dipahami. Apabila ingin belajar lebih banyak mengenai Typescript, Di BuildWithAngga kita punya kelas gratis dan mudah dipahami untuk keperluan belajar kalian. So tunggu apalagi? Sampai jumpa dikelas dan good luck!

Kelas Pengenalan Dasar Javascript di BuildWithAngga

Pengenalan Dasar Javascript

Berdasarkan hasil survey Stack Overflow Developer Survey 2023, Javascript menempati posisi pertama dalam urutan “Most Popular Technology”. Javascript digunakan hampir 95% untuk semua website yang kita digunakan baik itu pada skala besar ataupun kecil. Terdapat banyak framework Javascript yang bisa digunakan secara gratis untuk mengembangkan aplikasi dan website sesuai kebutuhan. Namun kemampuan fundamental dasar Javascript sangat dibutuhkan apabila ingin menggunakan framework tersebut secara maksimal dan efisien. Maka dari itu sebelum mengenal dan menggunakan framework lebih jauh, alangkah baiknya kita memahami dasar-dasar fundamental nya terlebih dahulu. 1. Variabel Seperti matematika, variabel merupakan tempat menyimpan data. Javascript menyediakan tiga cara untuk membuat variabel, yakni: Menggunakan var Kata kunci ini bersifat Global Scope, dikarenakan variabel tersebut dapat di akses secara global dan diberikan nilai berulang kali. Perhatikan kode berikut: var age = 20 { var age = 40 } var age = 50 console.log(age) // Output: 50 Pada kode tersebut terdapat tiga variabel dengan nama yang sama yaitu age, dan diberikan nilai awal berupa 20 lalu di update menjadi 40 hingga terakhir menjadi 50. Baris kode tersebut merupakan kode yang valid dan tidak terdapat error. Namun ada kalanya kita membuat variabel dengan nama yang sama akan tetapi berada dalam ruang lingkup yang berbeda. Contohnya: var name = 'John' function sayMyName() { var name = 'Heisenberg' console.log(name) } console.log(name) // John sayMyName() // Fungsi dijalankan dan memiliki output: Heisenberg console.log(name) // Value dari variabel pertama berubah menjadi: Heisenberg Pada kode di atas, kita mendefinisikan variabel name yang memiliki value ‘John’. Kemudian pada baris berikutnya terdapat fungsi sayMyName yang memiliki nama variabel yang sama namun dengan value ‘Heisenberg’.Apabila kita console variabel pertama, akan didapatkan output berupa ‘John’.Namun ketika fungsi sayMyName dijalankan, kemudian kita console variabel name yang pertama, maka nilai yang semula ‘John’ berubah menjadi ‘Heisenberg’. Hal ini tentu tidak kita inginkan, karena dapat mengakibatkan sistem yang dibangun menjadi tidak konsisten karena nilai variabel yang berubah-ubah. Untuk mengatasi hal tersebut Javascript menyediakan dua kata kunci lainnya yaitu let dan const. Menggunakan let Ketika menggunakan kata kunci let, maka kita mendapatkan variabel yang bersifat Local Scope dan dapat diubah nilainya namun tidak dapat dideklarasikan ulang. Perhatikan kode berikut: let age = 30 age = 50 // Melakukan perubahan nilai { age = 30 // Tetap bernilai 30 } console.log(age) // Output: 50 Kode tersebut berjalan tanpa adanya error, namun berbeda jika kita mendeklarasikan ulang variabel tersebut: let age = 30 let age = 40 console.log(age) // SyntaxError:Identifier 'age' has already been declared Terjadi error dikarenakan kata kunci let tidak mengizinkan kita untuk mendeklarasikan ulang variabel dengan nama yang sama. Menggunakan const Sama seperti let, kata kunci const menghasilkan variabel yang memiliki sifat Local Scope namun tidak dapat diubah nilainya dan tidak bisa dideklarasikan ulang. Hal ini sesuai dengan namanya yaitu Constanta. Ketika menggunakan kata kunci const, variabel yang dihasilkan akan menjadi lebih strict dan membuatnya konsisten. Berikut ini contoh penerapannya: // 1. Kita mendeklarasikan ulang variabel dan melakukan update terhadap valuenya const data = 'John' const data = 'Doe' console.log(data) // SyntaxError: Identifier 'data' has already been declared // 2. Kita melakukan update data terhadap variabel const const data = 'John' data = 'Doe' console.log(data) // TypeError: Assignment to constant variable. Berdasarkan point di atas, apabila ingin membuat variabel direkomendasikan menggunakan kata kunci let ataupun const. Hal ini bertujuan untuk meminimalisir terjadinya duplikasi dan perubahan nilai pada variabel yang tidak kita inginkan. Lalu bagaimana jika kita ingin membuat variabel yang dapat menyimpan banyak nilai dan tipe data secara bersamaan? Untuk menjawab hal tersebut, maka kita akan berkenalan dengan Array. 2. Array Array merupakan struktur data pada Javascript yang bertujuan untuk menyimpan beberapa nilai dan tipe data dalam satu variabel. Contohnya: const fruits = ['apel', 'pisang', 'jeruk'] Pada kode di atas kita membuat variabel yang memiliki tipe data array dan menampung value berupa apel, pisang, dan jeruk. Lalu bagaimana cara kita mengakses value dari array tersebut? Untuk mengakses value yang berada di dalam array, kita bisa memanfaatkan indeks array. Indeks atau Index dalam array akan selalu dimulai dari 0, maka apabila ingin mengakses value dalam array tersebut, kita bisa melakukannya seperti ini: const fruits = ['apel', 'pisang', 'jeruk'] console.log(fruits[0]) // Output: apel console.log(fruits[1]) // Output: pisang console.log(fruits[2]) // Output: jeruk Array juga dapat menyimpan beberapa tipe data kompleks sekaligus seperti yang diterangkan di awal. const someArray = ['String', true, 3, { name: "John", age: 30, address: "123 Main St", sayHello: function () { console.log("Hello, my name is " + this.name); }, isLogin: true }, [1, 2, 3, 4, 5], function () { console.log("Hello World"); }] 3. Method Array Pada langkah sebelumnya, didapatkan data array sebagai berikut: const fruits = ['apel', 'pisang', 'jeruk'] Dan apabila kita ingin mengakses value yang berada di dalam array tersebut, kita bisa menggunakan indeks. Maka didapatkan: console.log(fruits[0]) // apel console.log(fruits[1]) // pisang console.log(fruits[2]) // jeruk Lalu terdapat pertanyaan, bagaimana jika pada array tersebut terdapat ribuan data yang kita tidak tahu persis indeks nya? Tentu hal ini sangat tidak efisien jika kita console satu persatu untuk mengecek nilainya. Untuk menjawab masalah tersebut, Javascript menyediakan fungsi khusus yang berkaitan dengan array, salah satunya ialah fungsi map. fruits.map((result) => { console.log(result) }) Pertama kita panggil nama array yang kita miliki, yaitu array bernama fruits.Kemudian kita melakukan proses chaining method dengan memanggil fungsi map.Fungsi map bertujuan untuk membuat array baru dan hasil dari fungsi tersebut akan ditampung kedalam variabel yang kita beri nama result.Kemudian pada langkah terakhir kita cetak nilai dari variabel result tersebut. Maka kita telah berhasil mencetak nilai secara keseluruhan dari dalam array tanpa harus melakukannya satu persatu dengan indeks. Selain menggunakan kata kunci map, Javascript menyediakan beberapa fungsi lainnya, seperti: forEach()length()pop()push()shift() Untuk lebih jelasnya silakan kamu cek dokumentasinya di sini: Array - Javascript MDN. 4. Object Object merupakan struktur data pada Javascript yang memiliki property dan value untuk menyimpan beberapa tipe data sekaligus. Perbedaan antara array dan object ialah, array diawali dengan kurung siku [] sedangkan untuk object diawali dengan kurung kurawal {}. const user = { property:"value", name: "John", age: 30, address: "123 Main St", isLogin: true } Terlihat kita membuat sebuah object yang berisikan property dan value yang memiliki tipe data berbeda-beda. Lantas bagaimana cara kita mengakses value dari object tersebut? Berikut implementasinya: console.log(user.property) // Output: "value" console.log(user.name) // Output: "John" console.log(user.age) // Output: 30 console.log(user.address) // Output: "123 Main St" console.log(user.isLogin) // Output: true Kalau diperhatikan pada kode tersebut, kita memanggil nama object berulang kali setiap ingin mencetak nilainya. Kemudian muncul pertanyaan lainnya yaitu, apakah kita bisa memanggil nama property nya saja tanpa perlu melakukan chaining dengan nama object tersebut? Jawabannya adalah bisa dan kita akan memanfaatkan salah satu fitur magic Javascript yaitu Destructuring Object. const { property, name, age, address, isLogin } = user // Mereferensikan dengan nama object terkait console.log(property) // Output: "value" console.log(name) // Output: "John" console.log(age) // Output: 30 console.log(address) // Output: "123 Main St" console.log(isLogin) // Output: true Terlihat pada kode di atas kita melakukan proses Destructuring Object dengan cara mengeluarkan property dari object tersebut, kemudian menampungnya ke dalam sebuah variabel yang sesuai dengan nama property nya. Hal tersebut valid dan kita bisa membuktikannya dengan membuka browser console, maka didapatkan hasil yang sama seperti di awal namun dengan kode yang lebih clean dan mudah dibaca. 5. Perulangan Perulangan pada Javascript merupakan salah satu basic yang wajib kamu kuasai, kenapa demikian? Perhatikan kode berikut: console.log(1) console.log(2) console.log(3) console.log(4) console.log(5) Terlihat kita ingin mencetak nilai console secara berulang sebanyak 5 kali. Namun bagaimana jika ingin mencetak nilai console tersebut hingga sampai 100 atau bahkan 1000 percobaan? Tentu apabila menuliskannya satu persatu maka akan menghabiskan waktu dan sangat tidak efisien. Untuk mengatasi hal tersebut, kita akan memanfaatkan fitur perulangan pada Javascript yaitu menggunakan kata kunci for. for (let index = 0; index <= 100; index++) { console.log(index) } Kita melakukan perulangan dengan kata kunci for.Pada fungsi for tersebut menerima tiga parameter yakni:Parameter pertama: Merupakan inisialisasi variabel dan parameter ini akan selalu berjalan satu kali sebelum perulangan di mulai. Pada kode di atas kita mendefinisikan sebuah variabel dengan nama index dan bernilai 0.Parameter kedua: Merupakan kondisi mengapa perulangan tersebut terjadi. Pada parameter kedua, kita definisikan kondisi yaitu variabel pada parameter pertama tidak boleh lebih atau sama dengan 100.Parameter ketiga: Merupakan sebuah kondisi yang di mana akan selalu di-eksekusi setiap kali perulangan tersebut dijalankan. Pada parameter ketiga, kita melakukan modifikasi variabel index dengan melakukan proses increment variabel dengan operator ++, yang dimana berfungsi untuk menambahkan satu nilai setiap perulangan. Maka outputnya adalah nilai dari variabel tersebut akan terus bertambah sesuai dengan kondisi yang kita atur pada parameter kedua.Apabila kita console ke dalam browser maka didapatkan nilai yang sesuai dengan kondisi pada parameter kedua fungsi tersebut. Selain kata kunci for, Javascript menyediakan juga beberapa kata kunci lainnya yaitu: WhileDo WhileFor InFor Of Untuk lebih jelasnya silakan kamu cek dokumentasinya di sini: Loop and Iteration - Javascript MDN. 6. Percabangan Percabangan atau pengecekan kondisi adalah cara agar program yang kita bangun berjalan sesuai dengan kondisi yang diinginkan. Javascript menyediakan beberapa kata kunci untuk melakukan percabangan yang salah satunya adalah if else statement. if (condition) { // Blok kode ketika kondisi bernilai true } else { // Blok kode ketika kondisi bernilai false } Pada point sebelumnya kita berhasil membuat perulangan sebanyak 100 kali. Namun perbedaannya kali ini kita akan melakukan kondisi yang dimana jika variabel index tersebut merupakan angka genap, maka tampilkan console ‘Angka tersebut Genap’. Namun jika kondisi pertama tidak terpenuhi maka tampilkan console ‘Angka tersebut Ganjil’. for (let index = 0; index <= 100; index++) { if (index % 2 == 0) { console.log(`Angka ${index} adalah Genap`) } else { console.log(`Angka ${index} adalah Ganjil`) } } Dari kode di atas kita mengkombinasikan tiga point yaitu: Melakukan perulangan sebanyak 100 percobaan.Lalu melakukan percabangan dimana, jika hasil sisa bagi variabel index dengan 2 adalah 0, maka kita cetak isi dari variabel tersebut dengan pesan angka tersebut genap.Namun jika hasil pada kondisi pertama tidak memenuhi syarat, bisa dipastikan angka tersebut merupakan bilangan ganjil. Pada langkah di atas, kita telah berhasil melakukan percabangan sederhana menggunakan Javascript. Tentu banyak contoh lainnya yang biasa kita temui, seperti ketika ingin mengakses halaman tertentu, namun belum melakukan proses login, maka kita akan diarahkan ke halaman login terlebih dahulu. Berikut ini beberapa kata kunci yang sering digunakan untuk melakukan percabangan atau pengecekan kondisi: if elseswitch caseternary operator Untuk lebih jelasnya silakan kamu cek dokumentasinya: Conditional Javascript - MDN 6. Function Function pada Javascript adalah kumpulan dari baris kode yang berfungsi untuk menyelesaikan task tertentu. Pada point-point sebelumnya kita sudah menggunakan fungsi seperti melakukan perulangan kata kunci for atau melakukan percabangan dengan kata kunci if. Namun bagaimana jika kita ingin membuat fungsi kita sendiri? Javascript menjawab pertanyaan tersebut dengan cara: Menggunakan function function sum(a, b) { return a + b } console.log(sum(1, 2)) // Output: 3 Menggunakan Arrow Function const sum = (a, b) => { return a + b; } console.log(sum(1, 2)); // Output: 3 Terlihat kita berhasil membuat fungsi dengan dua cara yang berbeda dan keduanya merupakan kode yang valid. Namun terdapat perbedaan diantara keduanya. Perhatikan kode berikut: const total = sum(10, 30) // Memanggil fungsi sebelum dideklarasikan console.log(total) // Output: 40 // Mendeklarasikan fungsi dengan kata kunci function function sum(a, b) { return a + b } Pada kode di atas kita membuat variabel yang menampung data dari hasil fungsi sum, kemudian kita melakukan console dan didapatkan kode tersebut valid. Kok bisa? Karena ketika membuat fungsi dengan kata kunci function, Javascript memberikan sifat Global Scope yang dimana kita bisa mengakses fungsi tersebut sebelum dideklarasikan. Berbeda ketika kita menggunakan arrow function, maka akan terjadi error karena arrow function tidak memiliki sifat Global Scope. const total = sum(10, 30) console.log(total) // Output: ReferenceError: Cannot access 'sum' before initialization const sum = (a, b) => { return a + b; } Namun pada akhirnya, kita tetap akan direkomendasikan untuk menuliskan fungsinya terlebih dahulu baru mengakses nya, hal ini bertujuan agar kode yang kita buat tetap konsisten untuk menghindari terjadinya error di kemudian hari. 7. Operator Berikut ini beberapa operator yang akan sering kamu temui ketika menggunakan Javascript: JavaScript Arithmetic Operators OperatorNamaContohHasil-Subtractionx= 5x = 5+Additionx = 5 + 1x = 6*Multiplicationx = 6 * 2x = 12++Incrementx++x = 13--Decrementx—x= 12%Modulus (Sisa bagi)x = 10 % 2 == 0true JavaScript Arithmetic Operators OperatorNamaContohHasil==Equal tox == 8false===Equal value and typex === "5"false!=Not equalx != 8true!==Not equal value or typex !== "5"true>Greater thanx > 8false<Less thanx < 8true>=Greater or equal tox >= 8false<=Less or equal tox <= 8true JavaScript Arithmetic Operators OperatorNamaContoh&&AND(x < 10 && y > 1) is true||OR(x === 5 || y === 5) is false!NOT!(x === y) is true Kesimpulan Dari artikel “Pengenalan Dasar Javascript” dapat kita simpulkan beberapa point berikut: Apabila ingin membuat variabel, direkomendasikan menggunakan kata kunci const atau let untuk menghindari terjadinya duplikasi dan perubahan nilai secara tidak disengaja.Array dan object sama-sama menyimpan berbagai tipe data secara bersamaan, namun memiliki sifat yang berbeda.Kita bisa memanfaatkan fungsi array apabila ingin melakukan sebuah manipulasi data yang berkaitan di dalamnya.Kata kunci if else merupakan salah satu cara agar kita bisa melakukan pengkondisian dengan syarat yang kita hendaki.Apabila melakukan sebuah task, dan baris kode tersebut berulang dan kompleks, kita bisa memecah task tersebut menjadi bagian yang lebih kecil dan mempunyai fungsi tersendiri. Untuk membuat fungsi tersebut, kita bisa dengan menggunakan kata kunci function ataupun menggunakan arrow function. Ok that’s it. Saya harap kamu belajar banyak dalam tulisan kali ini, dan apabila kamu ingin belajar tentang web development, kamu bisa bergabung dalam kelas gratis yang disediakan oleh BuildWithAngga. Dengan mengikuti kelas yang ada di BuildWithAngga kamu juga dapat menambah portfolio dan menambah ilmu untuk memulai karir sebagai Web Developer. Jadi tunggu apalagi? Mari bergabung dan sampai jumpa di kelas.

Kelas 5 UI Design Resources Terbaik Untuk Mempermudah Para Designer! di BuildWithAngga

5 UI Design Resources Terbaik Untuk Mempermudah Para Designer!

Dalam dunia UI design, ada teman-teman seru yang bikin desain jadi lebih asyik! Figma Community, Open Peeps, Daily UI, 404 Illustrations, dan Iconscout, mereka seperti superhero desain UI. Dengan bantuan mereka, desainer seperti kit_a jadi punya senjata rahasia untuk menciptakan tampilan yang keren dan fungsional. Yuk, kita kenalan lebih dekat sama mereka! 😉 Figma Community Figma Community adalah tool terbaik desainer UI. Dengan beragam komponen dan templat gratis, Figma memudahkan kolaborasi tim secara langsung. Keunggulannya juga terletak pada plugin dan penggabungan yang membuat proses desain semakin lancar. Keunggulan Figma Community adalah: Kolaborasi Real-Time: Figma Community memungkinkan kamu untuk bekerja bersama secara langsung, memfasilitasi kolaborasi yang efisien dan tanpa hambatan dalam pengembangan desain.Gratis dan Beragam: Dengan komponen dan templat yang dapat diakses secara gratis, Figma Community menyediakan berbagai resources desain yang beragam, membantu desainer menghemat waktu dan upaya.Plugin dan Integrasi: Figma Community dilengkapi dengan plugin dan penggabungan yang memperkaya pengalaman desain, memudahkan kamu untuk menyesuaikan toool mereka sesuai kebutuhan, meningkatkan produktivitas secara keseluruhan. Open Peeps (Illustrations) Open Peeps merupakan koleksi ilustrasi karakter yang dapat disesuaikan, membantu menciptakan desain UI yang lebih menarik dan bersahabat. Kelebihannya terletak pada kemudahan penggunaan dan fleksibilitas, memungkinkan desainer untuk dengan cepat menyusun visual yang unik. Dengan variasi yang kaya, Open Peeps membantu “menghidupkan” desain tanpa perlu menghabiskan waktu berlebih. Keunggulan Open Peeps sebagai berikut: Karakter Dapat Disesuaikan: Open Peeps menawarkan ilustrasi karakter yang dapat disesuaikan, memungkinkan desainer untuk menciptakan visual yang unik sesuai dengan kebutuhan proyek mereka.Mudah Digunakan: Dengan interface yang sederhana, Open Peeps mudah digunakan bahkan bagi pemula sekalipun, mempercepat proses desain tanpa perlu menghabiskan waktu berlebih.Fleksibilitas Desain: Open Peeps memberikan fleksibilitas tinggi, memungkinkan desainer untuk dengan mudah menggabungkan karakter Open Peeps ke dalam desain mereka, memberikan sentuhan easy to use. Daily UI Daily UI memberikan daily challenge yang mengasah kemampuan desain UI. Dengan fokus pada elemen UI, desainer dapat terus berkembang. Keuntungan utamanya adalah memberikan latihan kreatif harian, memperkaya keterampilan desain secara konsisten. Keunggulan Dailyui adalah seperti: Daily Challenge: Daily UI memberikan tantangan desain harian, membantu desainer mengasah keterampilan mereka dalam merancang elemen UI dengan konsisten.Meningkatkan Kreativitas: Dengan fokus pada elemen UI yang berbeda setiap hari, membantu desainer mengembangkan yang lebih beragam dalam desain mereka.Mengembangkan Keterampilan: Mengikuti tantangan ini secara teratur membantu designer mempercepat developing keterampilan desain UI-mu, membuat mereka lebih siap menghadapi proyek-proyek yang complex. 404 Illustrations 404 Illustrations adalah sumber daya desain yang khusus dirancang untuk mempercantik halaman 404, yang biasanya muncul ketika pengguna mengunjungi halaman yang tidak dapat ditemukan. 404 Illustrations ini menawarkan berbagai ilustrasi yang penuh kreativitas untuk menggantikan pesan kesalahan standar. Ilustrasinya tidak hanya menarik perhatian, tetapi juga memiliki tujuan untuk membuat pengalaman kesalahan menjadi lebih bersahabat dan keren. Keunggulan 404 Illustrations antara lain: Kreatif dan Ramah: 404 Illustrations menawarkan ilustrasi yang kreatif dan ramah untuk error page, menjadikan masa yang seharusnya menjengkel menjadi lebih bersahabat.Jelas dan Menarik: Ilustrasinya tidak hanya menarik perhatian, tetapi juga memberikan pesan yang jelas tentang kesalahan yang terjadi, membantu pengguna memahami situasi dengan mudah.Menghidupkan Error Page: Dengan 404 Illustrations, error page tidak lagi terlihat membosankan. Ilustrasinya memberikan sentuhan visual yang menyenangkan, menciptakan pengalaman yang lebih positif bagi pengguna. Iconscout [Iconscout](https://https://www.figma.com/community/plugin/744098704933821409/iconscout-icons-illustrations-3d-assets-lottie-animations.fun/) adalah sumber ikon yang luas. Dengan beragam ikon dan gaya, Iconscout memenuhi kebutuhan desainer dengan berbagai selera. Integrasi yang mudah membuatnya menjadi tempat yang efisien untuk menemukan ikon-ikon yang sesuai. Keunggulan Iconscout antara lain: Beragam Pilihan: Iconscout menawarkan beragam ikon dengan gaya yang berbeda, memudahkan desainer untuk menemukan ikon yang sesuai dengan tampilan project mereka.Integrasi Mudah: Dengan integrasi yang simpel ke berbagai alat desain, Iconscout memastikan desainer dapat dengan cepat mengakses dan menggunakan ikon-ikon berkualitas tanpa hambatan.Sumber Ikon yang Luas: Iconscout memiliki database ikon yang luas, menjadikannya resources yang mudah untuk memenuhi kebutuhan desainer dengan berbagai selera dan gaya desain. Kesimpulan 💬 Resources Desain Penting: Figma Community, Open Peeps, Daily UI, 404 Illustrations, dan Iconscout membuktikan diri sebagai tools yang sangat mampu diandalkan bagi UI designer.Beragam dan Gratis: Keunggulan Figma Community dan Iconscout terletak pada kemampuan mereka menyediakan sumber daya yang beragam dan gratis, membantu kamu sebagai designer untuk menghemat waktu dan biaya.Kreativitas Terus Berkembang: Dailyui memberikan tantangan harian/daily challenge, memacu desainer untuk terus berkembang dan meningkatkan keterampilan desain UI-mu.Mengatasi Kesalahan dengan Kreativitas: 404 Illustrations tidak hanya mempercantik error page, tetapi juga membuat experience error menjadi lebih bersahabat dengan ilustrasi yang eye-catching.Efisiensi dan Fleksibilitas: Iconscout terkenal dengan menyediakan ikon-ikon beragam dan mudah diakses, memastikan designer dapat bekerja dengan efisien tanpa mengorbankan fleksibilitas. Dalam dunia UI design, memiliki akses sumber daya yang tepat sangatlah penting. Figma Community, Open Peeps, Daily UI, 404 Illustrations, dan Iconscout membuktikan diri sebagai “senjata” tak tergantikan bagi UI designer. Dengan beragamnya resources dan daily challenge dari Daily UI, desainer dapat terus mengasah kreativitas mereka. 404 Illustrations memberikan kesan ramah pada error, sedangkan Iconscout dengan koleksi ikonnya yang beragam memudahkan desainer dalam mencari yang sesuai. Semuanya ini membuktikan bahwa kualitas desain dapat ditingkatkan dengan memanfaatkan berbagai resources yang ada.

Kelas Tutorial Melakukan Fetching Data Menggunakan JavaScript di BuildWithAngga

Tutorial Melakukan Fetching Data Menggunakan JavaScript

Fetching data merupakan teknik bagaimana sebuah aplikasi melakukan permintaan resource pada server tertentu dan mengembalikan data tersebut sesuai dengan permintaan. Pada artikel kali ini kita akan membahas bagaimana melakukan Fetching data menggunakan Javascript menggunakan kata kunci fetch. Syntax fetch('url') .then(result => { // handle result here }).catch(error => { // handle error here }) Mari kita analisis: Fungsi fetch pada JavaScript menerima satu parameter bertipe data string, yaitu endpoint atau URL dimana kita akan melakukan proses permintaan data pada resource tertentu.Kemudian karena fungsi fetch merupakan sebuah Promise, maka kita perlu melakukan proses chaining dengan fungsi then agar mendapatkan data yang diinginkan.Ketika melakukan sebuah permintaan data menggunakan fetch, terkadang data yang diinginkan tidak dikembalikan sesuai permintaan. Hal tersebut terjadi karena server ataupun endpoint tersebut mengalami error yang tidak kita ketahui. Untuk mengatasi hal tersebut kita wajib melakukan error handling, yaitu dengan cara memanggil fungsi catch. Fungsi catch ini mendapatkan semua error baik saat melakukan proses pemanggilan data ataupun kesalahan saat proses development. Implementasi Kita akan mencoba untuk hit endpoint yang disediakan oleh website JSONPlaceholder untuk melakukan proses fetching sederhana menggunakan kata kunci fetch. Jadi mari kita mulai. Inisialisasi Project Silakan kamu buat folder dengan nama learn-fetching-data, kemudian buat file HTML dengan nama index.html dan script.js hal ini bertujuan agar kita memisahkan antara bagian logic dan proses render menjadi file terpisah. Dalam project kali ini kita akan menggunakan Tailwind CSS sebagai proses styling, maka didapatkan: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Sample API Data</title> <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&display=swap" rel="stylesheet" /> <style> body { font-family: "Poppins", sans-serif; } </style> <script src="https://cdn.tailwindcss.com"></script> </head> <body> <div class="container mx-auto px-5 mt-10"> <h1 class="text-2xl font-bold mb-5">Belajar Fetching Data</h1> <div id="container" class="flex flex-col gap-5"> <!-- Semua data akan dirender disini --> </div> </div> <script src="script.js"></script> </body> </html> Maka didapatkan hasil: 2. Lakukan Fetching Data Silakan kamu buka file script.js, kemudian kita akan melakukan proses fetching data dengan URL yang sudah kita siapkan sebelumnya, maka didapatkan: const fetchAllTodos = () => { return fetch("https://jsonplaceholder.typicode.com/posts") .then((response) => { if (!response.ok) { throw new Error('Network response was not ok.'); } return response.json(); }) .then((data) => { console.log(data); return data; }) .catch((error) => { return error; }); }; fetchAllTodos(); Maka apabila kita buka browser dan pada bagian console akan didapatkan data sebagai berikut: Seperti keterangan console di atas, kita sudah berhasil melakukan proses pengambilan data dengan menggunakan kata kunci fetch pada JavaScript. Selanjutnya kita akan menampilkan data tersebut ke dalam bentuk komponen UI yang sederhana. 3. Implementasikan Kedalam UI Untuk membuat hasil fetching data menjadi sebuah komponen HTML dan mudah dibaca, kita perlu membuat design nya terlebih dahulu. Berikut komponen Card yang akan kita gunakan untuk menampilkan data tersebut: <div class="border rounded-md p-4 flex justify-between items-start gap-x-3"> <div> <h1 class="font-bold mb-3">Lorem ipsum dolor sit amet.</h1> <span class="text-sm text-gray-500">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Eum, suscipit?</span> </div> <div> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" /> </svg> </div> </div> Maka apabila kita padukan dengan baris HTML pada langkah pertama, didapatkan kode sebagai berikut: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Sample API Data</title> <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&display=swap" rel="stylesheet" /> <style> body { font-family: "Poppins", sans-serif; } </style> <script src="https://cdn.tailwindcss.com"></script> </head> <body> <div class="container mx-auto px-5 mt-10"> <h1 class="text-2xl font-bold mb-5">Belajar Fetching Data</h1> <div id="container" class="flex flex-col gap-5"> <!-- Semua data akan dirender disini --> <div class="border rounded-md p-4 flex justify-between items-start gap-x-3"> <div> <h1 class="font-bold mb-3">Lorem ipsum dolor sit amet.</h1> <span class="text-sm text-gray-500">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Eum, suscipit?</span> </div> <div> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" /> </svg> </div> </div> </div> </div> <script src="script.js"></script> </body> </html> Pada langkah ini kita sudah berhasil membuat design komponen Card, hanya saja data tersebut belum sesuai dengan hasil fetching kita. Maka kita perlu menjadikannya dinamis dengan cara membuat fungsi yang me-render komponen Card yang barusan kita dibuat. Silahkan kamu buka file script.js dan tambahkan kode berikut: // Ambil tag id container const containerDisplay = document.getElementById('container') // Komponen Card untuk render semua data const cardComponent = (title, body) => { // Buat Card const data = ` <div class="border rounded-md p-4 flex justify-between items-start gap-x-3"> <div> <h1 class="font-bold mb-3">${title}</h1> <span class="text-sm text-gray-500">${body}</span> </div> <div> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" /> </svg> </div> </div> ` // Tambahkan kedalam elemen container yang sudah kita definisikan sebelumnya containerDisplay.insertAdjacentHTML('afterbegin', data) } Kemudian kita buat sebuah fungsi bernama render untuk menggabungkan antara fungsi fetchAllTodos yang sudah kita definisikan sebelumnya dengan fungsi cardComponent yang barusan kita buat. function render() { fetchAllTodos() .then((response) => { response.forEach(result => { cardComponent(result.title, result.body); }); }) .catch((error) => { console.error('Error rendering data:', error); }); } render(); Maka apabila kita buka browser akan didapatkan hasil seperti ini: Taraa! Selamat kalian telah berhasil melakukan fetching data dan menampilkannya ke dalam komponen HTML yang mudah dibaca. Pada langkah selanjutnya kita akan mencoba melakukan Handle Error untuk mengantisipasi terjadinya kesalahan baik itu dari aplikasi kita maupun dari sisi server. 4. Handle Error Pertama kita buat komponen HTML nya terlebih dahulu dan kita sebut sebagai komponen Alert: <div class="m-10 border border-red-700 text-red-700 bg-red-100 p-10 rounded-lg flex flex-col items-center gap-3"> <div class="flex gap-x-3"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" /> </svg> <h1 class="font-bold text-center md:text-xl lg:text-2xl">Terjadi Kesalahan</h1> </div> <span class="text-sm text-center text-red-600"><span class="font-bold">Error Message :</span> Some Error</span> </div> Didapatkan bentuk seperti ini: Lalu buat fungsi untuk menampung komponen Alert tersebut seperti komponen Card sebelumnya, didapatkan: // Komponen Alert jika terdapat error const alertComponent = (message) => { const data = ` <div class="m-10 border border-red-700 text-red-700 bg-red-100 p-10 rounded-lg flex flex-col items-center gap-3"> <div class="flex gap-x-3"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" /> </svg> <h1 class="font-bold text-center md:text-xl lg:text-2xl">Terjadi Kesalahan</h1> </div> <span class="text-sm text-center text-red-600"><span class="font-bold">Error Message :</span> ${message}</span> </div> ` containerDisplay.insertAdjacentHTML('afterbegin', data) } Kemudian kita implementasikan ke dalam fungsi render sebelumnya, didapatkan: function render() { fetchAllTodos() .then((response) => { response.forEach(result => { cardComponent(result.title, result.body); }); }) .catch((error) => { alertComponent(error.message) }); } render(); Maka dengan ini apabila terdapat error, maka fungsi AlertComponent akan berjalan dan menampilkannya sebagai komponen HTML sesuai dengan yang kita harapkan. Berikut ini kode keseluruhan file index.html dan script.js yang telah kita buat: File index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Sample API Data</title> <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&display=swap" rel="stylesheet" /> <style> body { font-family: "Poppins", sans-serif; } </style> <script src="https://cdn.tailwindcss.com"></script> </head> <body> <div class="container mx-auto px-5 mt-10"> <h1 class="text-2xl font-bold mb-5">Belajar Fetching Data</h1> <div id="container" class="flex flex-col gap-5"></div> </div> <script src="script.js"></script> </body> </html> File script.js // Ambil tag id container const containerDisplay = document.getElementById('container') // Komponen Card untuk render semua data const cardComponent = (title, body) => { // Buat Card const data = ` <div class="border rounded-md p-4 flex justify-between items-start gap-x-3"> <div> <h1 class="font-bold mb-3">${title}</h1> <span class="text-sm text-gray-500">${body}</span> </div> <div> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" /> </svg> </div> </div> ` // Tambahkan kedalam elemen container yang sudah kita definisikan sebelumnya containerDisplay.insertAdjacentHTML('afterbegin', data) } // Komponen Alert jika terdapat error const alertComponent = (message) => { const data = ` <div class="m-10 border border-red-700 text-red-700 bg-red-100 p-10 rounded-lg flex flex-col items-center gap-3"> <div class="flex gap-x-3"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" /> </svg> <h1 class="font-bold text-center md:text-xl lg:text-2xl">Terjadi Kesalahan</h1> </div> <span class="text-sm text-center text-red-600"><span class="font-bold">Error Message :</span> ${message}</span> </div> ` containerDisplay.insertAdjacentHTML('afterbegin', data) } // Fungsi untuk mendapatkan semua data fetch const fetchAllTodos = () => { return fetch("https://jsonplaceholder.typicode.com/posts") .then((response) => { if (!response.ok) { throw new Error('Network response was not ok.'); } return response.json(); }) .catch((error) => { return error; }); }; function render() { fetchAllTodos() .then((response) => { response.forEach(result => { cardComponent(result.title, result.body); }); }) .catch((error) => { alertComponent(error.message) }); } render(); Kesimpulan Tentu saja artikel ini hanya mencakup dasar fetching data dan bagaimana implementasinya dalam project sederhana. Kita juga dapat mengkombinasikan fetching data menggunakan framework JavaScript seperti React atau Vue untuk membangun sebuah website yang lebih interaktif dan efisien. Kalian bisa mulai latihan menggunakan framework JavaScript dengan cara mempelajari beberapa kelas online di BuildWithAngga. Jadi tunggu apa lagi? Mari bergabung dan sampai jumpa di kelas!

Kelas Mengenal Maze: Software UI UX Design Beserta Fitur Unggulan di BuildWithAngga

Mengenal Maze: Software UI UX Design Beserta Fitur Unggulan

User Experience Research merupakan hal yang sangat vital bagi keberlangsungan perusahaan untuk terus kompetitif dan menyediakan pelayanan terbaik kepada user. Dengan memberikan kebutuhan yang sesuai dengan kehendak User, maka perusahaan tersebut mendapatkan banyak benefit seperti User retention, Customer Satifcation Score yang tinggi, maupun Conversion Rate yang baik. Dengan kebutuhan tersebut, tentunya perusahaan sangat membutuhkan platform yang dapat dengan advanced membantu perusahaan untuk melakukan User Experience Research. Maze bisa jadi salah satu platform terbaik untuk kamu melakukan User Research. Maze merupakan software User Research yang dapat membantu tim mengumpulkan, mengatur, bahkan analisis data dalam satu platform. Maze juga dapat membantu mengumpulkan data berupa Kuantitatif dan Kualitatif pada Web, Mobile App, maupun Desktop App. Berikut beberapa Manfaat atau kegunaan Maze yang bisa kamu pakai: User Journey MappingA/B TestingUsability TestingAccessibility TestingPre-release Product TestingUsability Benchmarking Dan masih banyak lagi! Manfaat tersebut dapat membantu kamu mengiterasi produk kamu lebih baik secara cepat. Namun, bagi kamu yang baru memulai User Research. Maze menyediakan banyak sekali template yang siap pakai untuk kamu. Fitur Unggulan Maze Usability Testing Maze memfasilitasi usability testing yang efisien dan efektif untuk evaluasi produk kamu. Kamu dapat melakukan Usability Testing dengan bantuan tim kamu secara real-time. Partisipan dapat melakukan user interaction dengan prototype yang telah kamu berikan. Pada akhirnya, maze dapat memberikan kamu beberapa insights yang sangat membantu seperti, Heatmap, Task Time, dan lainnya. Maze juga dapat bekerja secara baik dengan yang disediakan seperti: Video RecordingsParticipants ManagementIn-product prompts Fitur-fitur tersebut dapat memberikan insights berharga untuk kamu memahami User Behavior dan Preferences. Dengan ini, kamu dan tim dapat memulai peningkatan dalam produk yang kamu sedang kerjakan. Validasi Konsep dan Ide Konsep dan Ide merupakan hal yang sangat vital dalam Product Development. Dengan begitu, Maze menyediakan tools yang dapat mengvalidasi ide dan konsep kalian secara cepat dengan Users asli. Tidak hanya itu, Maze juga menyediakan analisis yang sangat detail dan juga metriks untuk mengukur user research kalian seperti time-on task, heatmap, dan lainnya. Hasil dari analisis tersebut dapat kamu pakai untuk iterasi membuat keputusan design lebih baik lagi. Kamu dapat menggunakan fitur tersebut seperti: A/B Testing: Komparasi versi prototype yang berbeda.5-second tests: Secara cepat mendapatkan feedback.Tree Testing: Identifikasi user flows dan optimasi navigasi.Heat Map: Memahami perilaku pengguna. Dengan fitur-fitur tersebut, tentunya kamu melakukan validasi dan ide sangat efektif dan efisien. Content Testing Disamping dari validasi konsep dan prototype testing, kamu juga dapat melakukan content testing untuk keperluan kamu melakukan Information Architecture (IA). Content Testing merupakan cara yang sangat membantu kamu untuk memberikan informasi yang sangat dibutuhkan oleh users. Kamu dapat melakukan Content Testing ini dengan fitur berikut: Card Sorting: Optimasi Information Architecture (IA)Text Analysis: Analisis Copywriting dan KonsepSurvey Creation: Membuat survey untuk memahami Users. Dengan begitu, kamu dapat mengetahui content tersebut apakah dibutuhkan users atau tidak. Kesimpulan Well, pada dasarnya, kamu dapat menggunakan Maze untuk keperluan apapun dalam stage manapun produk kamu berada. Platform yang menyediakan hampir semua tools untuk keperluan mulai dari research hingga usability testing. Maze mempunyai user interface yang mudah digunakan, dan juga Maze dapat kamu pakai secara gratis dengan beberapa limitasi. Berikut pro dan kontra pengalaman saya menggunakan Maze dalam User Experience Research: Pro Fitur yang lengkap dan komprehensif untuk user research.Integrasi dengan Tools terbaik seperti Figma.Easy-to-use.Analisis yang sangat detail untuk mengukur Key Performace Indicator (KPI) ataupun metrics lainnya.Banyak Template yang bisa kamu pakai. Kontra Free Plan sangat terbatas. Sedangkan Rencana berbayar tergolong relatif mahal untuk digunakan.Tester kadang mempunyai masalah saat menggunakan maze. Kalau kamu ingin mempelajari cara User Experience Research dengan baik lagi, kamu dapat berkunjung ke website BuildWithAngga.com dalam mempersiapkan karir UI/UX Designer dan dapat survive dengan kompetitor lainnya. Sampai jumpa di artikel & tips selanjutnya. Good Luck!

Kelas Mengenal Framework Tailwind CSS Serta Fitur Unggulannya di BuildWithAngga

Mengenal Framework Tailwind CSS Serta Fitur Unggulannya

Cascade Style Sheet (CSS) sangat penting digunakan apabila kita ingin membuat projek website menjadi lebih menarik dalam meningkatkan user interface dan user experience sehingga pengguna yang menggunakan website tersebut menjadi lebih betah dan dapat meningkatkan keuntungan dari perusahaan tersebut. Pada CSS terdapat banyak property yang bisa digunakan seperti tinggi, lebar, warna latar belakang, efek shadows, warna gradient, border, rata kanan dan kiri, dan juga sebagainya. Apabila kita menulis property tersebut satu per satu dari awal maka akan membutuhkan waktu yang begitu banyak dalam menyelesaikan sebuah tampilan projek website. Mengenal Framework Tailwind CSS Saat ini terdapat banyak framework CSS yang dapat kita gunakan untuk mempercepat kinerja kita sebagai website developer dalam mengembangkan website yang modern disertai tampilan menarik, saya akan coba memberikan rekomendasi untuk kamu segera mencoba framework CSS yang sedang popular saat ini yaitu adalah Tailwind CSS. Tailwind adalah sebuah framework CSS yang mengedepankan konsep utility-first, yang dimaksud dari utility-first adalah Tailwind telah menyediakan ratusan Class CSS yang dapat kita panggil dengan mudah pada dokumen HTML, sehingga kita tidak perlu lagi melakukan penulisan CSS secara custom karena class CSS yang disediakan oleh tailwind sudah sangat lengkap. Beberapa Class pada framework Tailwind CSS yang sering digunakan oleh website developer adalah sebagai berikut: w-10 = mengatur lebarh-10 = mengatur tinggitext-white = mengatur warna teksbg-indigo-500 = mengatur warna latar belakangflex flex-col = mengatur layout menjadi verticalgrid grid-cols-3 = mengatur layout menjadi terbagi 3 bagian (DIV) Perbedaan Tailwind CSS dengan traditional framework CSS lainnya Jika sebelumnya kamu pernah pakai Bootstrap atau Semantic UI maka ketika mulai menggunakan Tailwind CSS, kamu akan melihat perbedaan yang besar yaitu pada Tailwind CSS tidak tersedia predefined components yang siap digunakan seperti btn-primary, navbar, form-group, dan juga sebagainya layaknya tersedia pada traditional framework CSS. Konsep utility-first pada tailwind css memberikan kebebasan tak terbatas kepada website developer untuk menggunakan kreatifitas mereka dalam mengembangkan sebuah website yang modern disertai tampilan sangat menarik. Selain itu juga untuk mengurangi bloated pada projek tersebut sehingga perfomance pada website menjadi lebih cepat karena tidak menggunakan Class yang tidak terpakai. Tips mempelajari framework Tailwind CSS dengan baik Kamu perlu memperdalam property utama yang tersedia pada CSS sebelum langsung menggunakan Tailwind CSS dikarenakan seperti yang saya bilang sebelumnya kalau menggunakan Tailwind tidak akan tersedia predefined component sehingga kita perlu paham untuk mengatur tinggi, lebar, warna background, dan sebagainya menggunakan property apa saja sehingga hasilnya lebih maksimal. Setelah mengenal seluruh property penting pada CSS maka bisa dilanjutkan untuk memahami dokumen resmi framework Tailwind CSS untuk mempelajari bagaimana cara install, pemakaian class, dan juga sebagainya sehingga kita bisa lebih hafal dalam menggabungkan setiap utility yang telah disediakan oleh framework Tailwind CSS untuk membuat layout yang kompleks. Perbanyak slicing tampilan website untuk berlatih Saya biasanya memperdalam keahlian dalam menggunakan Tailwind CSS adalah dengan cara melakukan slicing berbagai layout dari mulai yang mudah sampai dengan sulit. Beberapa template Figma tersebut dapat saya download gratis sebagai bahan latihan pada website Shaynakit, seluruh design pada Shaynakit dibuat oleh designer lokal dalam membantu website developer memiliki projek yang menarik sebagai portfolio mereka kedepannya nanti. Kesimpulan menggunakan framework Tailwind CSS Tailwind CSS memberikan kebebasan dan perfomance yang baik dalam membangun website yang memiliki tampilan modern dan eye-catching. Kita dapat mengkombinasikan Tailwind CSS dengan framework JavaScript seperti React atau Vue JS dalam membangun website yang interaktif demi meningkatkan pertumbuhan bisnis perusahaan. Kamu bisa mulai latihan menggunakan framework tailwind css dengan cara mempelajari beberapa kelas online gratis tailwind css buatan mentor expert di BuildWithAngga.

Kelas Cara Membuat Website Menarik Dengan Biaya Gratis di BuildWithAngga

Cara Membuat Website Menarik Dengan Biaya Gratis

Sebuah website dapat membantu kita untuk meningkatkan sumber penghasilan sebagai pembisnis atau juga pekerja freelancer. Biasanya biaya membangun website tergolong cukup mahal sehingga masih banyak bisnis UMKM atau individual yang kesulitan dalam memiliki sebuah website yang menarik, modern, dan dapat mendatangkan sumber penghasilan. Pada kali ini saya akan membagikan langkah-langkah terbaru dalam membuat sebuah website tanpa harus mengeluarkan biaya, selain itu juga kita tidak perlu memiliki keahlian programming (coding) karena nantinya kita hanya perlu drag and drop saja menggunakan beberapa komponen dan template yang telah disediakan oleh software yang akan kita pelajari nanti. Beberapa contoh website yang dapat kita bangun Software tersebut dapat membangun beberapa kategori website yang saat ini sangat dibutuhkan oleh orang-orang dan perusahaan kecil atau besar di Indonesia. Berikut beberapa kategori website yang dapat kita buat: Ecommerce, website ini digunakan untuk membantu pembisnis kecil atau individu dalam menjual produk buatan mereka secara online dan menjangkau lebih banyak calon pembeli dengan kemudahan dalam membeli produk tersebut.Company profile, kategori yang satu ini dibutuhkan oleh perusahaan dan startup dalam mempromosikan vision mereka yang di dalamnya tersedia jasa atau produk yang mereka jual dalam membangun pertumbuhan bisnis perusahaan lain.Personal portfolio, website dengan kategori ini digunakan oleh para freelancer seperti software engineer atau ui/ux designer dalam mempromosikan jasa mereka dan menjangkau lebih banyak calon klien atau rekruiter untuk memberikan projek. Beberapa website di atas dapat kita bangun tanpa harus menggunakan coding, dan faktanya kita bisa selesaikan website tersebut hanya dalam beberapa hari saja dibandingkan dengan ketika ngoding sendiri yang dapat menghabiskan waktu paling cepat adalah satu bulan. Langkah untuk membuat website dengan biaya gratis 1) Menggunakan Framer atau Webflow Framer dan Webflow adalah sebuah software yang sering digunakan oleh orang-orang ketika ingin membuat website tanpa koding dengan biaya gratis. Kedua software tersebut juga telah menyediakan ratusan template gratis yang sesuai dengan kebutuhan kita seperti toko online, company profile, landing page, dan sebagainya. Pada kali ini kita coba praktikkan menggunakan software Framer ya karena lebih mudah diadaptasi oleh seorang pemula terutama yang tidak punya background design atau coding, well, mari kita mulai pembelajarannya dengan baik. 2) Kunjungi Framer lalu periksa template Kamu bisa coba kunjungi website resmi Framer lalu pilih menu templates untuk melihat seluruh template dengan design modern dan juga memberikan user experience yang bagus untuk bisnis kita. 3) Melakukan duplicate pada template tersebut Setelah kita menemukan template yang cocok maka selanjutnya dapat kita duplicate saja kepada akun Framer kita. Alasan utama kita langsung menggunakan template yang tersedia dibandingkan bikin dari awal adalah agar kita bisa terbiasa dulu dengan cara kerja software Framer dari beberapa template gratisan yang telah dibuat oleh orang-orang handal. 4) Memodifikasi sesuai kebutuhan projek website Kita perlu modifikasi template yang telah kita duplicate sebelumnya sehingga akan terlihat lebih natural karena sudah sesuai dengan kebutuhan bisnis online yang kita jalani saat ini. Dimulai dengan mengubah seluruh copywriting pada setiap halamannya menggunakan bahasa Indonesia (sesuai dengan target audience). Setelah itu kita juga bisa mengubah beberapa image yang dibutuhkan misalnya kita berfokus jualan skincare online maka kita perlu ubah seluruh foto pada website tersebut dengan foto-foto berkualitas tinggi produk skincare kita saat ini. 5) Mempublish website agar dapat diakses online Apabila projek website tersebut sudah sesuai dengan keinginan dan kebutuhan bisnis kita maka selanjutnya adalah mempublish-nya agar orang-orang dapat segera mengunjungi website kita secara online untuk membeli produk dan jasa yang kita jual saat ini. Sebenarnya untuk mempublish sebuah website biasanya membutuhkan biaya besar untuk membeli hosting dan domain, tapi karena kita menggunakan Framer, jadi kita tidak perlu mengeluarkan biaya besar tersebut karena Framer telah menyediakan domain dan hosting berkualitas tinggi dengan biaya gratis, wow. Kesimpulan dan penutup Bikin website modern yang menarik di zaman sekarang sudah lebih mudah dibandingkan beberapa tahun sebelumnya, tugas kita saat ini adalah memanfaatkan teknologi tersebut dan berfokus kepada dari segi business model yang kita jalankan secara online. Apabila kamu juga tertarik untuk belajar membangun website dengan full-stack coding dalam membangun fitur yang lebih kompleks lagi maka saya sarankan mengikuti beberapa kelas online gratis website development buatan mentor-mentor handal di BuildWithAngga. Setelah itu juga kamu bisa pelajari kelas-kelas gratis UI UX design untuk meningkatkan user experience dan user interface pada website yang kamu bangun saat ini. Semoga bisa bermanfaat dan sampai jumpa pada tips menarik lainnya.