1. Home
  2. Docs
  3. Kurikulum NodeJS Backend Development with Adonis
  4. Pekan 2 – Tugas
  5. Asynchronous

Asynchronous

Petunjuk Pengerjaan

  1. Buatlah folder baru dengan nama “Tugas 8 – Asynchronous” pada repositori tugas kalian.
  2. Kerjakanlah soal berikut ini pada folder Tugas 8 tersebut.

Interface Bootcamp

Pada tugas ini kalian diminta membuat Command line interface untuk sebuah bootcamp. Program dibuat untuk mengolah data karyawan bootcamp dan peserta bootcamp. Terdapat tiga role yaitu : admin, trainer, dan student. Data dibaca dan ditulis ke dalam satu file dengan nama data.json. Kalian diminta menggunakan module fs dan fspromise untuk dapat membaca dan menulis data ke dalam file.

Setup

Sebelum memulai kita persiapkan terlebih dahulu program kita dengan langkah-langkah seperti berikut :

  • Buat project npm baru dengan perintah npm init
  • Install module Babel seperti berikut : npm install @babel/core @babel/cli @babel/preset-env core-js --save
  • Tambahkan script babel pada package.json. Jalankan babel pada folder src dengan output dir folder dist
  • Buat file .babelrc dan tuliskan preset babel/env di dalamnya.
  • Buat folder src yang didalamnya terdapat folder lib dan juga entry file index.js
  • Buat file data.json yang berisi data array kosong []

Release 0 Register Karyawan (Callback)

Perintah : node dist register <name>,<password>,<role>

Contoh Perintah : node dist register Bondra,123456,admin

Output: pada console akan muncul log "Berhasil register"

Output pada file data.json akan muncul data baru sebuah object dengan data sesuai yang diberikan pada perintah register

[ { name: "Bondra", password: "123456", role: "admin", isLogin: false } ]

Pada release ini kalian diminta untuk membuat proses register karyawan baru. Data karyawan baru dikirimkan melalui perintah node dan kemudian disimpan di sebuah file data.json.

Hint: Gunakan module fs readFile dan writeFile callback untuk membaca dan menulis data ke file.

Release 1 Login (Promise)

Perintah : node dist login <name>,<password>

Contoh Perintah : node dist login Bondra,123456

Output: pada console memberikan log "Berhasil Login"

Output pada data.json data isLogin karyawan yang melakukan login akan berubah menjadi true .

[ { name: "Bondra", password: "123456", role: "admin", isLogin: true} ]

Pada release ini dibuat mekanisme login untuk karyawan dengan memasukan name dan password pada perintah node. Program akan membaca file data.json dan mencari karyawan berdasarkan data tersebut. Jika ditemukan dan cocok, maka status isLogin berubah menjadi true.