Ujian_Back_End_JC07

Soal Ujian Purwadhika Back-End Dev

Lintang_Purwadhika

Materi Back End Web Dev dapat diakses di klik sini!

Soal 1 – MySQL Database

Tuliskan langkah-langkah/urutan query MySQL untuk membuat sebuah database “sekolahku” yang memiliki beberapa tabel: “users”, “courses” dan “userCourse”, dengan ketentuan di bawah ini:

  1. Buatlah tabel “users” yang memiliki struktur/model sebagai berikut. Tabel “users” merupakan kumpulan data peserta didik di sebuah sekolah.

    Soal_1.a

    Masukkan beberapa data berikut ke dalam tabel “users”. Hasil yang diharapkan adalah:

    Soal_1.b

  2. Buatlah tabel “courses” yang memiliki struktur/model sebagai berikut. Tabel “courses” merupakan kumpulan data mata kuliah yang diajarkan di sebuah sekolah.

    Soal_2.a

    Masukkan beberapa data berikut ke dalam tabel “courses”. Hasil yang diharapkan adalah:

    Soal_2.b

  3. Buatlah tabel “userCourse” yang memiliki struktur/model sebagai berikut. Tabel “userCourse” merupakan tabel penghubung/transaksi antara tabel “user” & “courses”.

    Soal_3.a

    Masukkan beberapa data berikut ke dalam tabel “userCourse”. Hasil yang diharapkan adalah:

    Soal_3.b

  4. Dari tabel “users”, “courses” dan “userCourse”, tampilkan semua daftar peserta didik beserta mata kuliah yang diikutinya, lengkap dengan nama & gelar mentornya. Hasil yang diharapkan adalah sebagai berikut:

    Soal_4

  5. Dari tabel “users”, “courses” dan “userCourse”, tampilkan daftar peserta didik beserta mata kuliah yang diikutinya, yang mentornya bergelar sarjana. Hasil yang diharapkan adalah sebagai berikut:

    Soal_5

  6. Dari tabel “users”, “courses” dan “userCourse”, tampilkan daftar peserta didik beserta mata kuliah yang diikutinya, yang mentornya bergelar selain sarjana. Hasil yang diharapkan adalah sebagai berikut:

    Soal_6

  7. Dari tabel “users”, “courses” dan “userCourse”, tampilkan jumlah peserta didik untuk setiap mata kuliah. Hasil yang diharapkan adalah sebagai berikut:

    Soal_7

  8. Dari tabel “users”, “courses” dan “userCourse”, tampilkan jumlah peserta didik beserta total fee untuk setiap mentor. Total fee dihitung dengan besaran Rp 2.000.000,- per peserta didik. Hasil yang diharapkan adalah sebagai berikut:

    Soal_8

Catatan: Soal ini hanya meminta Anda untuk menuliskan langkah-langkah/urutan query MySQL sesuai spesifikasi di atas. Ketik jawaban dalam sebuah file .txt & lampirkan via email lintang@purwadhika.com!

Soal 2 – Express & MongoDB

Buatlah sebuah project back-end NodeJS (Express.js) sederhana yang mampu mengakses database MongoDB (gunakan Mongoose!), dengan spesifikasi route sebagai berikut:

  • POST /data → tanpa mengirimkan data via body request, akan memasukkan data ke collection “data” di database “dataCPU”. Data yang tersimpan adalah data seputar sistem operasi yang digunakan user, mencakup: nama CPU, tipe OS, platform OS, versi rilis OS, RAM tersisa dan RAM total. Sekali lagi, data yang akan disimpan tidak perlu dideklarasikan di body request!

    POST /data

  • GET /data → akan memberikan response: menampilkan semua data dari collection “data” di database “dataCPU”. Data satuan yang ditampilkan diharapkan sebagai berikut:

    {   
        _id: 5b453fb83de88413bc523928,
        namacpu: 'Lintang_CPU',
        tipe: 'Windows_NT',
        platform: 'win32',
        rilis: '10.0.17134',
        ramSisa: 11338039296,
        ramTotal: 17063497728
    }
  • Gunakan Express Router untuk memisahkan code route ke MongoDB dengan code utama project.

Catatan: Upload source code project ke repo Github Anda, kemudian lampirkan url link repo Github Anda via email: lintang@purwadhika.com!

Soal 3 – Express & MySQL

Buatlah sebuah project back-end NodeJS (Express.js) sederhana yang mampu melakukan proses autentikasi (signup & login) dengan mengakses tabel “users” di database “sekolahku” (dari soal nomor 1), dengan spesifikasi route sebagai berikut:

  • POST /signup → akan melakukan proses signup: memasukkan data user baru ke tabel “users” di database “sekolahku”. Response yang diberikan setelah request memasukkan data sukses dilakukan adalah sebagai berikut:

    {
        "username": "Lintang",
        "email": "lintang@purwadhika.com",
        "status": "Signup sukses"
    }
  • POST /login → akan melakukan proses login. Client dapat melakukan proses login cukup dengan mengirimkan “username” ATAU “email” saja, beserta “password”-nya. Response yang diberikan setelah request login sukses dilakukan adalah sebagai berikut:

    {
        "login": "ok",
        "status": "Login sukses"
    }

    Jika “username” dan/atau “email” untuk login tidak terdaftar di tabel “users”, maka proses login gagal & response yang ditampilkan sebagai berikut:

    {
        "login": "failed",
        "status": "Akun tidak terdaftar"
    }

    Jika “username” dan/atau “email” untuk login sudah terdaftar di tabel “users”, namun “password” yang dimasukkan salah, maka proses login gagal & response yang ditampilkan sebagai berikut:

    {
        "login": "failed",
        "status": "Password salah"
    }
  • Gunakan Express Router untuk memisahkan code route autentikasi ke MySQL dengan code utama project.

Catatan: Upload source code project ke repo Github Anda, kemudian lampirkan url link repo Github Anda via email: lintang@purwadhika.com!

#HappyCoding ☺️

Lintang Wisesa 💌 lintangwisesa@ymail.com

Facebook | Twitter | Google+ | Youtube | :octocat: GitHub | Hackster

Visit original content creator repository https://github.com/LintangWisesa/Ujian_Back_End_JC07

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *