SlideShare a Scribd company logo
1 of 22
Download to read offline
Study Jam WEEK 6
(Simple E-Commerce App with React Part 2)
Referensi belajar
● (Official) https://beta.reactjs.org/
● (Free 11 hours course) https://scrimba.com/learn/learnreact
● (Dea Afrizal)
https://youtube.com/playlist?list=PLc6SEcJkQ6DxQmmUzUilxRUNrJyeHDmX7
● (Official) https://firebase.google.com/docs/guides
Apa itu React?
React adalah salah satu library JavaScript yang sangat populer dalam penggunaannya untuk
mempermudah pembuatan User Interface. React sendiri terkesan cukup mudah untuk dipelajari
oleh pengguna baru karena pada dasarnya kita hanya menuliskan perintah HTML namun
perintah tersebut kita tuliskan dalam file JSX (JavaScript XML). Ciri khas dari React adalah
penggunaan component based di mana kita tidak perlu menuliskan ulang kode-kode repetitif
melainkan tinggal memanggil component yang sudah dibuat.
Apa itu Firebase?
Firebase adalah layanan Backend gratis yang ditawarkan oleh Google. Firebase menyuguhkan
berbagai layanan mulai dari database secara cloud hingga hosting. Firebase sendiri dapat
diintegrasikan dengan Web, Mobile app, Unity game, dst.
Apa yang kita perlukan?
● Node.js - Untuk panduan instalasinya dapat dilihat pada modul persiapan study jam
● Vite - Dikarenakan proses pembuatan project awal React lumayan memakan waktu,
maka kita akan menggunakan bantuan dari Vite. Salah satu tools front end tercepat
1 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
Apa yang akan kita buat?
Website e-commerce yang telah kita buat minggu lalu akan kita coba integrasikan dengan
Google Firebase. Kita tidak perlu lagi menyiapkan data sepatu secara lokal, melainkan akan
kita siapkan secara cloud dengan bantuan Google Firebase.
Desain UI yang sudah dirancang
https://www.figma.com/file/BXOwghRMovNsCJyMBAJBBo/React-Simple-E-Commerce?node-id
=0%3A1&t=zlF2EA8rMDS8Z8Ty-1
File Starter untuk Study Jam 6
https://drive.google.com/file/d/1M6gkFGZzJYsqkDtE7Rm0zlJlexzHwGIq/view?usp=share_link
2 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
Langkah-langkah pembuatan
*Untuk yang telah mengikuti Study Jam 5, bisa abaikan step 1 sampai 4
1. Kita buat folder baru bernama react-ecommerce
2. Buka file rar yang sudah didownload tadi dan drag and drop semua file dan folder di
dalamnya menuju ke folder react-ecommerce
3. Buka folder react-ecommerce ke dalam Visual Studio Code
3 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
4. Jalankan perintah npm install pada terminal untuk mendownload dan menginstall semua
package yang belum lengkap
5. Kunjungi https://firebase.google.com/ lalu klik Go to console pada bagian pojok kanan
atas
4 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
6. Lalu piih tombol Add project untuk menambahkan project firebase baru
7. Beri nama project firebase kalian react-ecommerce
8. Untuk sementara, kita tidak perlu menggunakan fitur analytics yang ditawarkan oleh
Firebase. Klik Create project
5 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
9. Halaman dashboard nya seperti ini
10. Klik icon web (yang bersimbolkan </>). Lalu isikan nama aplikasi web kalian misalnya
adalah diberi nama yang sama yakni react-ecommerce
6 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
11. Kita perlu menginstall package firebase pada project React kita di Visual Studio Code.
Pada terminal, jalankan npm install firebase
12. Selanjutnya kita buat file baru bernama firebase.js di dalam folder src.
13. Kita copy pastekan semua perintah ini ke dalam file firebase.js
7 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
14. Karena kita akan menggunakan layanan firestore, kita perlu menambahkan beberapa
perintah tambahan
import { getFirestore } from "firebase/firestore";
export const db = getFirestore(app);
8 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
15. Kembali ke firebase, klik Continue to console
16. Pilih tombol Cloud Firestore untuk membuat database pertama kita dengan Firestore.
Lalu klik Create Database
17. Klik next
9 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
18. Ubah lokasi nya menjadi asia-southeast2 (Jakarta). Lalu klik Enable
19. Nanti tampilan awal dari Firestore adalah seperti ini
20. Klik Start collection
10 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
21. Lalu kita tambahkan data sepatu pertama kita, seperti ini
22. Hasilnya seperti ini
23. Selanjutnya kita akan mengubah rules yang ada pada Firestore, hal ini perlu dilakukan
agar data-data yang sudah kita buat pada Firestore dapat terbaca oleh browser. Klik tab
rules, ubah menjadi seperti ini.
11 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
24. Sekarang kita mencoba untuk menggunakan layanan Storage pada Firebase. Pada tab
kiri, klik tombol Build untuk mengexpand dropdown pilihannya. Dan klik Storage
25. Lalu klik Get Started
12 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
26. Tampilan nya akan seperti ini
27. Kita akan mencoba untuk mengupload sebuah gambar sepatu. Klik Upload file, lalu pilih
gambar yang akan diupload. Sebagai contoh, kita akan mengupload gambar
shoes1.jpg yang ada pada folder src/assets/
13 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
28. Nanti akan ada satu buah gambar di dalam storage kita
29. Lalu kita juga perlu mengubah rules yang ada pada Storage menjadi seperti ini
30. Kembali ke tab Files. Klik baris gambar shoes1.jpg. Nanti akan muncul tab di bagian
kanan. Seperti ini
14 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
31. Kita akan menampilkan gambar yang ada pada Storage dengan memanggil download
url pada gambar tersebut. Jadi pada dasarnya semua file yang kita upload ke dalam
Storage pasti akan memiliki download url masing-masing agar dapat ditampilkan pada
browser dsb.
32. Klik tulisan berwarna biru pada tab kanan
33. Url inilah yang akan kita tuliskan ke dalam field image pada Firestore
34. Copy pastekan url tersebut ke dalam field image pada Firestore. Seperti ini
35. Kembali ke Visual Studio Code. Pada file home.jsx, kita perlu menambahkan beberapa
perintah import. Tambahkan perintah ini
import { db } from '../firebase';
import { collection, onSnapshot } from "firebase/firestore";
15 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
36. Selanjutnya kita ubah initial value dari perintah useState menjadi dalam bentuk array
kosong. Seperti ini
const [dataSepatu, setDataSepatu] = React.useState([]);
37. Lalu kita perlu mereferensikan database yang telah kita buat pada Firestore. Data-data
yang ada pada Firestore biasa kita sebut dengan Collection. Kita tambahkan perintah ini
const shoesCollectionRef = collection(db, "shoes-list");
38. Lalu untuk memanggil data yang ada pada Firestore, kita bisa menggunakan salah satu
hooks yang ada pada React. Namanya adalah useEffect. Perintah yang ada di dalam
useEffect akan selalu dijalankan setiap pertama kali website kita berjalan atau load up
di browser.
https://beta.reactjs.org/apis/react/useEffect
39. Kita tambahkan perintah ini kedalam file home.jsx sebelum perintah return
React.useEffect(() => {
onSnapshot(shoesCollectionRef, snapshot => {
setDataSepatu(snapshot.docs.map(doc => {
return {
id: doc.id,
viewing: false,
...doc.data()
}
}))
console.log(snapshot);
})
}, [])
16 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
Di dalam useEffect, kita memanggil function onSnapshot yang merupakan bawaan dari
Firebase. Function onSnapshot digunakan untuk memanggil document yang ada pada
Cloud Firestore secara realtime.
https://firebase.google.com/docs/firestore/query-data/listen
Di dalam onSnapshot kita juga panggil ref atau reference yang sebelumnya sudah kita
buat. Lalu snapshot di sini kita set value nya dengan menggunakan nilai state
dataSepatu. Pada function setDataSepatu, kita memanggil function JavaScript Map
dengan menjabarkan isi dari object docs.
https://reactjs.org/docs/lists-and-keys.html
40. Selanjutnya, sementara kita comment dulu semua perintah tag Link di dalam perintah
return. Seperti ini
17 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
41. Coba kita jalankan dengan perintah npm run dev pada terminal. Lalu pada browser, kita
lihat bagian console nya dengan cara membuka inspector window atau dengan shortcut
CTRL + Shift + I.
42. Di dalam function setDataSepatu, kita sempat memanggil function map terhadap object
docs. Apabila kita expand salah satu object yang ada pada console window, kita bisa
mengetahui maksud dari function map tersebut. Seperti ini
18 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
43. Kita akan mencoba menampilkan state dataSepatu pada browser sebagai div card. Di
dalam lingkup HTML, kita bisa menuliskan perintah JavaScript dengan cara merangkap
perintah-perintah JavaScript pada simbol curly brackets { }.
44. Tambahkan perintah berikut di dalam tag div yang berada di bawah tag h1
{
dataSepatu.map((sepatu, index) => (
<Link to={`/product/${sepatu.id}`} state={{ data: sepatu }} key={index}>
<Card
title={sepatu.title}
image={sepatu.image}
price={sepatu.price}
/>
</Link>
))
}
19 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
45. Hasilnya seperti ini
46. Hanya ada satu card karena pada Cloud Firestore, kita masih mengisi satu document
saja (biasanya pada database bisa kita sebut sebagai row atau baris). Kita bisa
menambahkan card baru dengan cara menambahkan row pada Firestore.
47. Kita upload dulu gambar sepatu kedua pada Storage
20 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
48. Lalu pada Firestore, kita buat document atau row baru. Seperti ini
49. Karena kita menggunakan function onSnapshot, maka akan otomatis tersinkronisasi
secara real time tanpa harus merefresh page pada browser
What’s next?
● Try to add more functionality for this E-Commerce App
● Learn other React hooks (useContext, useRef, etc)
● Learn Next.js (5x faster than React)
● Learn TypeScript
● Learn Angular
● Learn Git and GitHub
● Create a stunning portfolio website
21 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
22 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1

More Related Content

Similar to Study Jam 6 Web.pdf

Belajar kilat asp.net
Belajar kilat asp.netBelajar kilat asp.net
Belajar kilat asp.netDona Alianda
 
Pocket book window builder eclipse
Pocket book window builder eclipsePocket book window builder eclipse
Pocket book window builder eclipseresarahadian
 
Belajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukBelajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukAgus Haryanto
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONDimas Prawira
 
Tugas 5 1300631006
Tugas 5 1300631006Tugas 5 1300631006
Tugas 5 1300631006Ghede
 
Tugas topik khusus
Tugas topik khususTugas topik khusus
Tugas topik khususwardandha
 
Jquery ppt
Jquery pptJquery ppt
Jquery ppt044249
 
Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Ridwan Fadjar
 
Jquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by YussanJquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by YussanYusuf A.H.
 
270610 arm pemrograman_java_dengan_netbean_ide
270610 arm pemrograman_java_dengan_netbean_ide270610 arm pemrograman_java_dengan_netbean_ide
270610 arm pemrograman_java_dengan_netbean_ideVera Lake
 
Tutorial Form login menggunakan MVC
Tutorial Form login menggunakan MVCTutorial Form login menggunakan MVC
Tutorial Form login menggunakan MVCNadiya Aynun
 
Article Pengenalan Konsep Xml Web Services
Article Pengenalan Konsep Xml Web ServicesArticle Pengenalan Konsep Xml Web Services
Article Pengenalan Konsep Xml Web ServicesFredy Budimansyah
 
Installasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhpInstallasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhpAde Hendini
 
Membuat Aplikasi Todo dengan IGNSDK
Membuat Aplikasi Todo dengan IGNSDKMembuat Aplikasi Todo dengan IGNSDK
Membuat Aplikasi Todo dengan IGNSDKRidwan Fadjar
 
Pengembangan aplikasi mobile learning menggunakan Intel XDK
Pengembangan aplikasi mobile learning menggunakan Intel XDKPengembangan aplikasi mobile learning menggunakan Intel XDK
Pengembangan aplikasi mobile learning menggunakan Intel XDKGilang Aziz
 
Belajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyBelajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyAgus Haryanto
 

Similar to Study Jam 6 Web.pdf (20)

Tutorial ci
Tutorial ciTutorial ci
Tutorial ci
 
Belajar kilat asp.net
Belajar kilat asp.netBelajar kilat asp.net
Belajar kilat asp.net
 
Pocket book window builder eclipse
Pocket book window builder eclipsePocket book window builder eclipse
Pocket book window builder eclipse
 
Belajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog ProdukBelajar Android Membuat Katalog Produk
Belajar Android Membuat Katalog Produk
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
 
Tugas 5 1300631006
Tugas 5 1300631006Tugas 5 1300631006
Tugas 5 1300631006
 
Tugas topik khusus
Tugas topik khususTugas topik khusus
Tugas topik khusus
 
Jquery ppt
Jquery pptJquery ppt
Jquery ppt
 
Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1
 
Jquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by YussanJquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by Yussan
 
270610 arm pemrograman_java_dengan_netbean_ide
270610 arm pemrograman_java_dengan_netbean_ide270610 arm pemrograman_java_dengan_netbean_ide
270610 arm pemrograman_java_dengan_netbean_ide
 
Tutorial Form login menggunakan MVC
Tutorial Form login menggunakan MVCTutorial Form login menggunakan MVC
Tutorial Form login menggunakan MVC
 
Article Pengenalan Konsep Xml Web Services
Article Pengenalan Konsep Xml Web ServicesArticle Pengenalan Konsep Xml Web Services
Article Pengenalan Konsep Xml Web Services
 
Installasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhpInstallasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhp
 
Membuat Aplikasi Todo dengan IGNSDK
Membuat Aplikasi Todo dengan IGNSDKMembuat Aplikasi Todo dengan IGNSDK
Membuat Aplikasi Todo dengan IGNSDK
 
Pengembangan aplikasi mobile learning menggunakan Intel XDK
Pengembangan aplikasi mobile learning menggunakan Intel XDKPengembangan aplikasi mobile learning menggunakan Intel XDK
Pengembangan aplikasi mobile learning menggunakan Intel XDK
 
Belajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan VolleyBelajar Android PHP MySQL Login dengan Volley
Belajar Android PHP MySQL Login dengan Volley
 
Pertemuan 1.pdf
Pertemuan 1.pdfPertemuan 1.pdf
Pertemuan 1.pdf
 
Pengertian yii framework
Pengertian yii frameworkPengertian yii framework
Pengertian yii framework
 
Jun stepbystep1
Jun stepbystep1Jun stepbystep1
Jun stepbystep1
 

Study Jam 6 Web.pdf

  • 1. Study Jam WEEK 6 (Simple E-Commerce App with React Part 2) Referensi belajar ● (Official) https://beta.reactjs.org/ ● (Free 11 hours course) https://scrimba.com/learn/learnreact ● (Dea Afrizal) https://youtube.com/playlist?list=PLc6SEcJkQ6DxQmmUzUilxRUNrJyeHDmX7 ● (Official) https://firebase.google.com/docs/guides Apa itu React? React adalah salah satu library JavaScript yang sangat populer dalam penggunaannya untuk mempermudah pembuatan User Interface. React sendiri terkesan cukup mudah untuk dipelajari oleh pengguna baru karena pada dasarnya kita hanya menuliskan perintah HTML namun perintah tersebut kita tuliskan dalam file JSX (JavaScript XML). Ciri khas dari React adalah penggunaan component based di mana kita tidak perlu menuliskan ulang kode-kode repetitif melainkan tinggal memanggil component yang sudah dibuat. Apa itu Firebase? Firebase adalah layanan Backend gratis yang ditawarkan oleh Google. Firebase menyuguhkan berbagai layanan mulai dari database secara cloud hingga hosting. Firebase sendiri dapat diintegrasikan dengan Web, Mobile app, Unity game, dst. Apa yang kita perlukan? ● Node.js - Untuk panduan instalasinya dapat dilihat pada modul persiapan study jam ● Vite - Dikarenakan proses pembuatan project awal React lumayan memakan waktu, maka kita akan menggunakan bantuan dari Vite. Salah satu tools front end tercepat 1 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 2. Apa yang akan kita buat? Website e-commerce yang telah kita buat minggu lalu akan kita coba integrasikan dengan Google Firebase. Kita tidak perlu lagi menyiapkan data sepatu secara lokal, melainkan akan kita siapkan secara cloud dengan bantuan Google Firebase. Desain UI yang sudah dirancang https://www.figma.com/file/BXOwghRMovNsCJyMBAJBBo/React-Simple-E-Commerce?node-id =0%3A1&t=zlF2EA8rMDS8Z8Ty-1 File Starter untuk Study Jam 6 https://drive.google.com/file/d/1M6gkFGZzJYsqkDtE7Rm0zlJlexzHwGIq/view?usp=share_link 2 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 3. Langkah-langkah pembuatan *Untuk yang telah mengikuti Study Jam 5, bisa abaikan step 1 sampai 4 1. Kita buat folder baru bernama react-ecommerce 2. Buka file rar yang sudah didownload tadi dan drag and drop semua file dan folder di dalamnya menuju ke folder react-ecommerce 3. Buka folder react-ecommerce ke dalam Visual Studio Code 3 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 4. 4. Jalankan perintah npm install pada terminal untuk mendownload dan menginstall semua package yang belum lengkap 5. Kunjungi https://firebase.google.com/ lalu klik Go to console pada bagian pojok kanan atas 4 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 5. 6. Lalu piih tombol Add project untuk menambahkan project firebase baru 7. Beri nama project firebase kalian react-ecommerce 8. Untuk sementara, kita tidak perlu menggunakan fitur analytics yang ditawarkan oleh Firebase. Klik Create project 5 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 6. 9. Halaman dashboard nya seperti ini 10. Klik icon web (yang bersimbolkan </>). Lalu isikan nama aplikasi web kalian misalnya adalah diberi nama yang sama yakni react-ecommerce 6 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 7. 11. Kita perlu menginstall package firebase pada project React kita di Visual Studio Code. Pada terminal, jalankan npm install firebase 12. Selanjutnya kita buat file baru bernama firebase.js di dalam folder src. 13. Kita copy pastekan semua perintah ini ke dalam file firebase.js 7 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 8. 14. Karena kita akan menggunakan layanan firestore, kita perlu menambahkan beberapa perintah tambahan import { getFirestore } from "firebase/firestore"; export const db = getFirestore(app); 8 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 9. 15. Kembali ke firebase, klik Continue to console 16. Pilih tombol Cloud Firestore untuk membuat database pertama kita dengan Firestore. Lalu klik Create Database 17. Klik next 9 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 10. 18. Ubah lokasi nya menjadi asia-southeast2 (Jakarta). Lalu klik Enable 19. Nanti tampilan awal dari Firestore adalah seperti ini 20. Klik Start collection 10 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 11. 21. Lalu kita tambahkan data sepatu pertama kita, seperti ini 22. Hasilnya seperti ini 23. Selanjutnya kita akan mengubah rules yang ada pada Firestore, hal ini perlu dilakukan agar data-data yang sudah kita buat pada Firestore dapat terbaca oleh browser. Klik tab rules, ubah menjadi seperti ini. 11 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 12. 24. Sekarang kita mencoba untuk menggunakan layanan Storage pada Firebase. Pada tab kiri, klik tombol Build untuk mengexpand dropdown pilihannya. Dan klik Storage 25. Lalu klik Get Started 12 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 13. 26. Tampilan nya akan seperti ini 27. Kita akan mencoba untuk mengupload sebuah gambar sepatu. Klik Upload file, lalu pilih gambar yang akan diupload. Sebagai contoh, kita akan mengupload gambar shoes1.jpg yang ada pada folder src/assets/ 13 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 14. 28. Nanti akan ada satu buah gambar di dalam storage kita 29. Lalu kita juga perlu mengubah rules yang ada pada Storage menjadi seperti ini 30. Kembali ke tab Files. Klik baris gambar shoes1.jpg. Nanti akan muncul tab di bagian kanan. Seperti ini 14 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 15. 31. Kita akan menampilkan gambar yang ada pada Storage dengan memanggil download url pada gambar tersebut. Jadi pada dasarnya semua file yang kita upload ke dalam Storage pasti akan memiliki download url masing-masing agar dapat ditampilkan pada browser dsb. 32. Klik tulisan berwarna biru pada tab kanan 33. Url inilah yang akan kita tuliskan ke dalam field image pada Firestore 34. Copy pastekan url tersebut ke dalam field image pada Firestore. Seperti ini 35. Kembali ke Visual Studio Code. Pada file home.jsx, kita perlu menambahkan beberapa perintah import. Tambahkan perintah ini import { db } from '../firebase'; import { collection, onSnapshot } from "firebase/firestore"; 15 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 16. 36. Selanjutnya kita ubah initial value dari perintah useState menjadi dalam bentuk array kosong. Seperti ini const [dataSepatu, setDataSepatu] = React.useState([]); 37. Lalu kita perlu mereferensikan database yang telah kita buat pada Firestore. Data-data yang ada pada Firestore biasa kita sebut dengan Collection. Kita tambahkan perintah ini const shoesCollectionRef = collection(db, "shoes-list"); 38. Lalu untuk memanggil data yang ada pada Firestore, kita bisa menggunakan salah satu hooks yang ada pada React. Namanya adalah useEffect. Perintah yang ada di dalam useEffect akan selalu dijalankan setiap pertama kali website kita berjalan atau load up di browser. https://beta.reactjs.org/apis/react/useEffect 39. Kita tambahkan perintah ini kedalam file home.jsx sebelum perintah return React.useEffect(() => { onSnapshot(shoesCollectionRef, snapshot => { setDataSepatu(snapshot.docs.map(doc => { return { id: doc.id, viewing: false, ...doc.data() } })) console.log(snapshot); }) }, []) 16 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 17. Di dalam useEffect, kita memanggil function onSnapshot yang merupakan bawaan dari Firebase. Function onSnapshot digunakan untuk memanggil document yang ada pada Cloud Firestore secara realtime. https://firebase.google.com/docs/firestore/query-data/listen Di dalam onSnapshot kita juga panggil ref atau reference yang sebelumnya sudah kita buat. Lalu snapshot di sini kita set value nya dengan menggunakan nilai state dataSepatu. Pada function setDataSepatu, kita memanggil function JavaScript Map dengan menjabarkan isi dari object docs. https://reactjs.org/docs/lists-and-keys.html 40. Selanjutnya, sementara kita comment dulu semua perintah tag Link di dalam perintah return. Seperti ini 17 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 18. 41. Coba kita jalankan dengan perintah npm run dev pada terminal. Lalu pada browser, kita lihat bagian console nya dengan cara membuka inspector window atau dengan shortcut CTRL + Shift + I. 42. Di dalam function setDataSepatu, kita sempat memanggil function map terhadap object docs. Apabila kita expand salah satu object yang ada pada console window, kita bisa mengetahui maksud dari function map tersebut. Seperti ini 18 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 19. 43. Kita akan mencoba menampilkan state dataSepatu pada browser sebagai div card. Di dalam lingkup HTML, kita bisa menuliskan perintah JavaScript dengan cara merangkap perintah-perintah JavaScript pada simbol curly brackets { }. 44. Tambahkan perintah berikut di dalam tag div yang berada di bawah tag h1 { dataSepatu.map((sepatu, index) => ( <Link to={`/product/${sepatu.id}`} state={{ data: sepatu }} key={index}> <Card title={sepatu.title} image={sepatu.image} price={sepatu.price} /> </Link> )) } 19 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 20. 45. Hasilnya seperti ini 46. Hanya ada satu card karena pada Cloud Firestore, kita masih mengisi satu document saja (biasanya pada database bisa kita sebut sebagai row atau baris). Kita bisa menambahkan card baru dengan cara menambahkan row pada Firestore. 47. Kita upload dulu gambar sepatu kedua pada Storage 20 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 21. 48. Lalu pada Firestore, kita buat document atau row baru. Seperti ini 49. Karena kita menggunakan function onSnapshot, maka akan otomatis tersinkronisasi secara real time tanpa harus merefresh page pada browser What’s next? ● Try to add more functionality for this E-Commerce App ● Learn other React hooks (useContext, useRef, etc) ● Learn Next.js (5x faster than React) ● Learn TypeScript ● Learn Angular ● Learn Git and GitHub ● Create a stunning portfolio website 21 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1
  • 22. 22 | Study Jam Web Week 5 - Simple E-Commerce App with React Part 1