Repository ini berisi serangkaian pertanyaan wawancara teknis yang dirancang untuk menilai kemampuan pelamar dalam Pengembangan Frontend. Melalui pertanyaan-pertanyaan ini, kami bertujuan untuk memperoleh gambaran yang jelas mengenai kemampuan dan keahlian kandidat dalam Pengembangan Frontend.
Sebelum memulai tugas ini, pastikan Anda telah memenuhi prasyarat sebagai berikut:
- Sudah memiliki pengetahuan dasar mengenai frontend development
- Sudah mempunyai perangkat komputer yang memenuhi spesifikasi untuk menjalankan aplikasi React
- Sudah menginstal Node.js dan NPM pada komputer Anda
- Lakukan clone repository ini ke komputer Anda
- Jawab semua pertanyaan yang ada pada file
README.md
- Simpan perubahan pada file
App.js
danREADME.md
yang sudah Anda buat - Kirim file
App.js
danREADME.md
(dalam bentuk zip) yang sudah Anda jawab melalui email ke [email protected] dengan Subject "TEST_FE_[NAMA]"
Pastikan Anda telah membaca dengan cermat instruksi dan pertanyaan yang ada sebelum memulai tugas.
Apa itu React Hook? Jelaskan masing-masing contoh penggunaannya yang pernah kamu pakai.
...
Apa itu lifecycle methods di React? Jelaskan urutan lifecycle methods.
...
Pernahkah kamu menggunakan State Management tool di react? Ceritakan mengapa kamu memakai State Management tool yang kamu pakai?
...
Tolong tulis pengetahuanmu tentang Search Engine Optimization (SEO)?
...
Tolong tulis pengetahuanmu tentang Progresive Web Application (PWA)?
...
Ada beberapa tehnik untuk membangun dan mendeliver sebuah web app, salah satu yang biasa digunakan adalah Client Side Rendering (CSR). Apakah kamu pernah menggunakan tehnik lainnya? Jika pernah berikan penjelasan dan kelebihan dari tehnik yang pernah kamu pakai.
...
Pernahkan kamu memakai tehnik Lazy Load? Jika pernah apa kelebihan dalam menggunakan tehnik Lazy Load?
...
Tolong tulis pengetahuanmu tentang Service Worker?
...
Tolong tulis pengetahuanmu tentang Event Driven?
...
Sebelumnya jalankan Applikasi React diatas. Dalam page /
terdapat button increment
pada ChildComponent
yang bertujuan untuk menambah Total count pada ParentComponent
.
Ketika button increment
di-klik terjadi delay selama 2 detik dikarenakan ChildComponent
terdapat "heavy-process" (divisualisasikan menggunakan function sleep()
).
Kita dapat mengimprove kode ini agar ChildComponent
tidak melakukan re-render sehingga "heavy-process" tersebut hanya dilakukan sekali.
Improve kode tersebut agar ketika tombol increment
ditekan tidak terjadi re-render pada ChildComponent
. Karena ketika ChildComponent
melakukan re-render maka "heavy-process" akan di jalankan lagi.
Hint: Lihat Console
pada browser untuk visualisai re-render, React.memo dan useCallback
Anda diberikan sebuah string yang berisi ekspresi matematika sebagai berikut: '(2x5)+10/5x(9-10)' [Result = 8]. Tugas Anda adalah mengevaluasi ekspresi tersebut.
Catatan: Anda tidak boleh menggunakan fungsi eval() atau fungsi sejenis yang ada dalam bahasa pemrograman apapun. Anda harus menyelesaikan tugas ini dengan menggunakan pemrograman yang kreatif.
function evaluateExpression(expression) {
// Langkah-langkah penyelesaian tugas di sini
}
const expression = '(2x5)+10/5x(9-10)';
const result = evaluateExpression(expression);
console.log(result); // 8