Buatlah aplikasi website sesuai desain dan contoh data di atas dimana kita akan mengambil data dari 2 External API yaitu:
- jsonplaceholder untuk mengambil data post, author, dan comment
- unsplash untuk menggambil random picture yang akan kita gunakan sebagai thumbnail baik itu sebuah post ataupun photo profile
Terdapat beberapa aturan yang harus kalian patuhi dalam pengerjaan tugas kali ini yaitu:
- semua fungsi yang akan bertugas untuk mengambil data dari External API harus berada didalam file
helpers.js
- kamu dilarang untuk mengahapus atau merubah fungsi yang sudah tersedia secara lengkap
- kamu hanya diperbolehkan untuk mengubah baris kode apabila
- baca dokumentasi resmi dari tiap-tiap External API yang akan kita gunakan
Gunakan template yang sudah disediakan pada folder
template
. Kalian diminta untuk tidak melakukan perubahan pada variable yang telah tersedia.
Halaman utama berada pada file index.html
dan index.js
, kalian diminta untuk menampilkan 16 post
pertama yang dapat kita ambil melalui jsonplaceholder
. Apabila kita menekan salah satu post card
maka kita akan berpindah kehalaman detail post
, berikut merupakan langkah-langkah pengerjaannya:
- perbaiki tata cara pemanggilan Javascript yang kita gunakan pada file
index.html
, mengingat bahwa kita akan menggunakanasynchronous
danmodule
renderPosts
merupakan fungsi yang akan menampilkan seluruh postingan yang kita ambil melaluijsonplaceholder API
- buatlah sebuah fungsi dengan nama
getPosts
didalam filehelpers.js
dimana ia bertugas untuk mengambil seluruhpost
yang terdapat padajsonplaceholder API
- setelah semua data berhasil diambil saat-nya kita untuk menampilkan data tersebut kedalam
HTML
menggunakan fungsicreatePostElement
, fungsi tersebut akan membuat sebuahDOM Element
dan nanti-nya akan kita"tempelkan"
padaelement
denganid="daftar-berita"
- perbaiki fungsi
createPostElement
terlebih dahulu sebelum kita menggunakannya "pasang"
semuadata
yang sudah kita kirimkan melalui parameter kedalam masing-masingelement
cardTitle
=> judul dari post tersebutcardImg
=> gambar yang sudah kita ambil melaluiUnsplash API
cardBtn
=> dengan format link sebagai berikut/post.html?post_id=$POST_ID
, yang mana hal ini akan mengarahkan kita kepada halaman selanjutnya yaitupost.html
- perbaiki fungsi
- dikarnakan
jsonplaceholder
memiliki begitu banyak data, maka pada kesempatan kali ini kita hanya akan menggunakan 16 data saja
Halaman detail post
berada pada file post.html
dan post.js
, kalian diminta untuk menampilkan detail post
dari suatu kartu yang kita tekan pada halaman sebelumnya. Pada halaman ini kita akan menampilkan detail dari suatu post
beserta dengan author
dan comments
, untuk mendapatkan detail post
kita dapat menggambil post_id
yang berada didalam url
tepatnya query parameter
, berikut merupakan langkah-langkah pengerjaannya:
- perbaiki tata cara pemanggilan Javascript yang kita gunakan pada file
post.html
, mengingat bahwa kita akan menggunakanasynchronous
danmodule
renderPost
merupakan fungsi yang akan menampilkan detail post beserta dengan author dan comment yang kita ambil melaluijsonplaceholder API
- buatlah sebuah fungsi dengan nama
getPost
didalam filehelpers.js
dimana ia bertugas untuk mengambil sebuahpost
berdasarkanpost_id
yang ada didalam parameter, terdapat 2 kondisi pada saat kita mengambil data tersebut yaitu:- apabila data berhasil didapatkan, maka kita perlu menggambil beberapa data lainnya yaitu:
randomPic
=> gambar acak yang akan kita jadikan sebagai thumbnailrandomPicProfile
=> gambar acak yang akan kita jadikan sebagai photo profile dari sang authorpostComments
=> daftar komentar yang terdapat didalam sebuahpost
, untuk mengambil data tersebut kamu diminta untuk menuliskan sebuah fungsigetPostComments
didalam filehelpers.js
author
=> sang penulis daripost
tersebut, untuk mengambil data tersebut kamu diminta untuk menuliskan sebuah fungsigetAuthor
didalam filehelpers.js
- apabila kita gagal mendapatkan data tersebut maka kita akan menampilkan pesan
"Not Found"
, dengan cara menghilangkanclass="d-none"
pada suatuelement
yang memilikiid="not-found"
- apabila data berhasil didapatkan, maka kita perlu menggambil beberapa data lainnya yaitu:
Halaman author posts
berada pada file author.html
dan author.js
, kalian diminta untuk menampilkan seluruh post
yang ditelah ditulis oleh sang author N
, untuk mendapatkan seluruh posts
yang telah ditulis oleh salah satu author
kita dapat menggunakan user_id
sebagai identifier untuk mengambil author
melalui jsonplaceholder API
, berikut merupakan langkah-langkah pengerjaannya:
- perbaiki tata cara pemanggilan Javascript yang kita gunakan pada file
author.html
, mengingat bahwa kita akan menggunakanasynchronous
danmodule
renderPosts
merupakan fungsi yang akan menampilkan seluruhpost
yang telah ditulis oleh sangauthor
, untuk dapat mengambil seuluruhpost
yang dimiliki olehauthor
kita perlu untuk mendapatkanauthor
tersebut terlebih dahulu dengan cara:- ambil
author_id
yang berada didalamquery
padaurl
- ambil data
author
menggunakan fungsi yang sudah kamu buat pada page ke-02 yaitugetAuthor
yang terdapat pada filehelpers.js
, terdapat 2 kondisi disaat kita mengambil dataauthor
tersebut yaitu:- apabila data ditemukan, maka kita perlu mengmbil data
posts
yang dimiliki user dengan cara:- buatlah sebuah fungsi dengan nama
getPostsByAuthor
didalam filehelpers.js
dimana ia bertugas untuk mengambil sebuahpost
berdasarkanpost_id
yang ada didalam parameter, terdapat 2 kondisi pada saat kita mengambil data tersebut yaitu:- apabila kita berhasil mengambil seluruh
post
yang dibuat olehauthor
, maka kita akan langsung menampilkannya menggunakan fungsicreatePostElement
- apabila data tidak ditemukan atau
author
tidak memilikipost
, maka kita akan menampilkanEmpty Post
- apabila kita berhasil mengambil seluruh
- buatlah sebuah fungsi dengan nama
- apabila data ditemukan, maka kita perlu mengmbil data