## ARSITEKTUR CONTAINER DOCKER PADA APLIKASI EXPERT ASSIST DENGAN TEKNOLOGI NODE.JS, EXPRESS FRAMEWORK &
CLOUD DATABASE NoSQL MONGODB ATLAS
Sutanto 1 , Waliadi Gunawan 2 , Faeshal 3
Program Studi Teknik Informatika Universitas Banten Jaya Email: sutanto@unbaja.ac.id 1 , waliadigunawan@unbaja.ac.id 2 ,
Faeshal111 @gmail.com 3

## ABSTRACT
In  the  world  of  software  development,  the  crusial  thing  we  must  do  is  design  the architecture.  We can said the system is good if it has a good architecture too, because the system architecture will affect the performance of applications itself, from the architecture we can also read what technology is used until security aspect.  The main problems that i want  to  solve  are  two  things,  first  the  problem  in  the  process  of  software  development which will be solve by implementing Docker container architecture & Node.JS and second problems  is  in  society that  will  be solve by the  Expert Assist  application.  In the  case  of software development the problems is often when developing applications the architecture is  not  scalable,  conflicts  between  applications  in  the  system,  services  that  are  still centralized,  application  portability  issues,  security  optimization  problems and different environments between the development and production server that  will  affect  developer productivity, problems about not independent and robustless app, resource  efficiency  and the  problem  with  blocking  code  that  appear  in  server  side conventional programming languages.  The problem in society is the difficulty to finding a mentor who can help us to solve  the  problems  we  have,  that  is  why  Expert  Assist  application  was  made.      Expert Assist is a web based online platform that will help all people in various fields to finding a mentor  who  is  an  expert  in  his  field  because  not  all  problems  can  be  solved by independent research or self-taught, if the problem is very complex we need someone who can help us to provide advice in order to solve our problem .
Keyword : Architecture, Docker, Express, MongoDB, Node.JS

## PENDAHULUAN
Arsitektur  perangkat  lunak  adalah  sebuah  proses  untuk  mendefinisikan struktur dari suatu aplikasi  yang dapat  memenuhi  seluruh kriteria dari sisi  teknis dan juga operasional, dengan pertimbangan kualitas seperti performance , security dan Maintainability .  Seiring  perkembangan  zaman  teknologi  baru  terus bermunculan,  hal  ini  disebabkan  karena  teknologi  lama  sudah  kurang  relevan untuk  menangani  kebutuhan  pengguna  yang  semakin  banyak  juga  tentu menginginkan  respon  yang  semakin  cepat  dari  sistem.  Arsitektur  sangat  penting
disini,  karena  kita  tidak  mungkin  membuat  sistem  yang  punya  performa  bagus bila arsitektur yang dibuat masih kurang baik.
Penelitian ini difokuskan pada dua permasalahan utama yang sering dialami, pertama  permasalahan  pada  masyarakat  umum  dan  kedua  permasahan  dalam pengembangan  perangkat  lunak  ( software  development ).  Permasalahan  pada masyarakat  yang  sering  dialami  adalah  sulitnya  mencari  mentor  yang  ahli dibidangnya  yang  bisa  membantu  kita  memecahkan  masalah  yang  kita  hadapi. Karena pasti dalam hidup akan mendapati masalah yang kompleks dan kita tidak bisa  mengandalkan  riset  mandiri  atau auto didak  terus  menerus.  Karena  itu  kita perlu mentor yang bisa memberikan arahan untuk permasalahan yang kita hadapi. Urgensi dari pembuatan aplikasi Expert Assist adalah saat ini di Indonesia belum ada platform yang  menghubungkan  antara expert dan user ,  untuk  itulah  dirasa perlu dibuat platform untuk menghubungkan mereka. Expert Assist pada dasarnya adalah platform berbasis web yang  akan  mempertemukan  mentor  atau expert untuk  menyelesaikan  masalah user tanpa  harus  bertemu  secara  langung  karena dapat  langsung  berinteraksi  lewat platform Expert  Assist  sehingga  masyarakat tidak perlu bingung lagi kalau ada masalah yang kompleks ingin bertanya kepada siapa,  cukup  lewat  aplikasi  Expert  Assist  lalu  pilih  mentor  yang  sesuai  dengan masalah  yang  dihadapi  dan  lakukan  pembayaran.  Hal  ini  juga  akan  membuka peluang penghasilan tambahan untuk para expert disemua bidang bukan hanya IT yang bisa bergabung bersama sehingga saling menguntungkan bukan hanya bagi user dan  mentor  tetapi  kita  sebagai  pengembang  aplikasi  mendapat  keuntungan dari sistem bagi  hasil 95% untuk  mentor dan 5% untuk  pengelola. Expert Assist akan memastikan mentor yang ada sangat kompeten dengan serangkaian tes yang akan dilewati pada saat proses pendaftaran mentor. Sehingga kualitas mentor akan berbanding  lurus  dengan  kepuasan user .  Sedangkan  permasalahan  pada pengembangan  perangkat  lunak  khususnya  pada  pembuatan  arsitektur aplikasiyaitu  aplikasi  yang  dibangun  riskan  mengalami  konflik  dengan  aplikasi lain, karena berjalan disatu  mesin  yang sama dan hal  ini bisa jadi masalah besar yang  akan  menyebabkan  sistem  lumpuh,  masalah  kedua  muncul  saat  proses development khusunya  dalam  tim  aplikasi  yang  dikembangkan  tidak portable , masing  masing developer harus  menginstall environment yang  dibutuhkan aplikasi  untuk  bisa  berjalan.  Masalah  muncul  bila  aplikasi  yang  dikembangkan
bukan  hanya  satu,  sangat  merepotkan  dan  kurang  efisien  bila  kita  mengintall semua tools dan platform yang  dibutuhkan  semua  aplikasi  yang  berjalan  pada komputer developer .  Masalah  ketiga  adalah  permasalahan  keamanan,  tentu aplikasi  yang  kita  kembangkan  butuh  optimasi  kemanan  yang extra oleh  karena itu  kita  tidak  bisa  mengandalkan  konfigurasi  keamanan  yang  kita  buat  sendiri, harus  ada  perlindungan extra untuk  melindungi  aplikasi  kita  bila  sewaktu  waktu ada serangan masuk. Masalah lain adalah aplikasi sulit diperbesar dan diperkecil sesuai  kebutuhan  pengguna,  tidak  mungkin  kita  terus  menereus  melakukan upgrade hardware dari server karena  pasti  biaya  yang  ditimbulkan  akan  sangat besar,  oleh  karena  itu  kita  butuh  Docker  yang  akan  membantu  saat  proses horizontal  scaling .  Docker  juga  akan  mereplikasi  aplikasi  sesuai  dengan kebutuhan  pengguna,  bilamana  pengguna  yang  mengakses  aplikasi  sudah berkurang  maka  Docker  akan  mematikan Container untuk  menghemat  sumber daya tapi apabila pengguna yang mengakses aplikasi sangat banyak maka Docker secara  otomatis  akan  mereplikasi Container sehingga  kebutuhan  pengguna  akan terpenuhi  yang  kembali  lagi  akan  berdampak  pada  performa  sistem.  Masalah terakhir  pada  segi  arsitetktur  adalah  ketergantungan  antara  yang  aplikasi  satu dengan  aplikasi  yang  lainnya,  akan  jadi  masalah  dimana  apabila  satu  aplikasi mengalamai  kendala  maka  akan  mempengaruhi  aplikasi  lain  yang  berjalan disistem  yang  sama.  Semua  masalah  tadi  dapat  diatasi  dengan  implementasi teknologi Container Docker.  Docker  merupakan  teknologi Container yang menyediakan platform terbuka  untuk developer maupun sysadmin untuk  dapat membangun,  mengemas  dan  menjalankan  aplikasi  dimanapun  sebagai  sebuah wadah  ringan  yang  disebut  dengan Container .  Berbeda  dengan  virtualisasi  yang mana aplikasi berjalan diatas hypervisor dan guest OS. Docker dapat menjalankan aplikasi  langsung  tanpa  kedua  hal  tadi.  Hal  inilah  yang  membuat  Docker  lebih hemat sumber daya server .
Masalah  lain  dari  segi  teknologi  bahasa  pemrograman  yang  menganut blocking code seperti  PHP,  Pearl  dan  lainnya  adalah request yang  masuk  akan menunggu sampai selesai sebelum menjalankan request berikutnya. Ini membuat kerja  aplikasi  melambat  dan  juga  paradigma  jika  kita  mengembangkan  aplikasi web kita  menggunakan  bahasa  yang  berbeda  antara frontend dan backend ,  ini sedikit merepotkan karena environment antara client side dan server side berbeda.
Maka  disinilah  Node.JS  hadir  dengan  konsep  “satu  bahasa  untuk  mengatur semuanya”. Bila  selama  ini  kita  mengenal  JavaScript  sebagai  bahasa pemrograman  yang  berjalan  disisi client saja,  maka  Node.JS  ada  untuk melengkapi  peran  JavaScript  sehingga  bisa  juga  berlaku  sebagai  bahasa pemrograman  yang  berjalan  disisi server ,  seperti  halnya  PHP,  Ruby,  Perl  dan sebagainya.  Node.JS  memiliki  pustaka server HTTP  sendiri  sehingga memungkinkan untuk menjalankan web server tanpa menggunakan program web server seperti Apache atau Nginx. Untuk itu dengan adanya aplikasi Expert Assist yang  menggunakan  arsitektur Container Docker  ini  diharapkan  dapat memecahkan  dua  masalah  sekaligus  yaitu  masalah  di  masyarakat  dan  masalah dalam pengembangan perangkat lunak.
Pada penelitian ini akan dibahas aplikasi  expert  assist  yang bisa digunakan user  dengan  telah  memenuhi  persyaratan  tertentu  yang  secara  umum  terdiri beberapa  modul  sebagai  berikut:  register,  login,  test  mentor,  manajemen  profile, mencari  dan  memilih  mentor,  proses  pembayaran,  Chatting,  atur  jadwal  dann konfirmasi,  proses  mentoring,  mentor  review,  permintaan  Tarik  dana  dan konfirmasi  dan  proses  pencairan  dana  dengan  bebagai  sub  aktivitas  atau  sub modul  didalam  tiap  tiap  modul.  Secara  arsitektur  aplikasi  ini  menggunakan arsitektur  Container  Docker,  dan  dijalankan  pada  ekosistem  localhost,  dan  versi docker yang digunakan adalah 19.03.5. sedangkan databse yang digunakan adalah mongoDB  versi  4.2.0  dengan  menggunakan  layanan  cloud  database  Atlas. Payment Gateway yang digunakan yaitu Stripe dengan integrasi kartu kredit Visa, Master  Card,  American  Express,  Discover,  Dinner  Club  dan  JCB.  Tidak menggunakan payment gateway bank local. 5.Teknologi Backend yang digunakan adalah Node.JS versi 12.16 dan untuk Framework yaitu Express versi 4.17.1 dan untuk  teknologi  Frontend  yang  digunakan  adalah  Bootstrap  versi  4.4.4  dan  EJS versi 3.0.1.
Tujuan  dari  penelitian  ini  adalah:  membangun  arsitektur  sistem  yang berjalan  diatas  Container  sehingga  konflik  antar  aplikasi  bisa  diatasi  walaupun berjalan  disatu  mesin  yang  sama  ( independent ),      bisa  diperbesar  dan  diperkecil dengan  mudah  sesuai  kebutuhan  ( scalable ),  memiliki  tingkat  keamanan  tinggi ( secure ) dan portable yang akan mendorong produktivitas developer serta aplikasi dapat  berdiri  sendiri  sehingga  apabila  salah  satu  aplikasi  bermasalah  tidak  akan
mempengaruhi  aplikasi  lain  ( robust )  dan  sistem  tetap  berjalan  normal  dengan tetap  menghemat  sumber  daya,  mampu  mengimplementasikan  bahasa pemrograman  JavaScript  yang  berjalan  tidak  hanya  disisi frontend ( client  side ) tapi  juga  berjalan  disisi backend ( server  side )  dan  dapat  membuat  aplikasi  yang dapat  memecahkan  masalah  di  masyarakat  yaitu  sulitnya  mencari  mentor  yang ahli dibidangnya untuk membantu menyelesaiakan masalah yang dihadapi. Landasan Teori

## METODE PENELITIAN
Yang  menjadi  objek  penelitian  pada  penelitian  ini  adalah  adanya  aktivitas para user dalam interaksinya dengan expert di dunia maya yang belum terwadahi secara  khusus  terkait  dalam  penggunaan  Docker  Hosting  /  VPS  dan Cloud Database  Hosting. Selanjutnya  adalah  penjelasan  metodologi  penelitian  yang diterapkan pada penelitian ini:
a. Metode penelitian  adalah serangkaian tata cara atau langkah  yang sistematis atau terstruktur dan dilakukan oleh seorang peneliti dengan tujuan menjawab pertanyaan dari rumusan masalah yang ada.
b. Desain  penelitian:  desain  penelitian  yang  digunakan  dalam  penelitian  ini bersifat  deskriptif.  Penelitian  deskriptif  adalah  penelitian  yang  diarahkan untuk  memberikan  gejala-  gejala,  fakta-fakta,  atau  kejadian  kejadian  secara sistematis  dan  akurat  mengenai  sifat-sifat  populasi  atau  daerah  tertentu. Dalam  hal  ini  berupa  sistem  informasi  yang  sedang  berjalan  serta  entitas- entitas  yang  terkait  dalam  perusahaan  atau  instansi  yang  menjadi  objek penelitian.  Metode  deskriptif  dilakukan  dengan  cara  mengumpulkan informasi aktual secara rinci mengenai masalah yang akan diteliti.
c. Jenis  dan  metode  penelitian:  sumber  data  dan  informasi  penelitian  ini diperoleh dengan menggunakan metode tertentu dan dipilah berdasarkan jenis data  yang  diperlukan.    Sumber  data  primer  berasal  dari  wawancara  an observasi  sedangkan  Sumber  data  sekunder:  data  yang  diambil  dari  suatu sumber  dan  biasanya  data  tersebut  sudah  dikompilasi  lebih  dahulu  dari berbagai sumber pustaka termasuk internet.
d. Metode  Pendekatan  dan  pengembangan  Sistem  Infromasi,  metode  yang digunakan  adalah  SDLC  (Software  Development  Life  Cycle)  dengan
pendekatan  metode  waterfall.  Model  ini  mengusulkan  sebuah  pendekatan perkembangan perangkat lunak yang sistematik dan sekuensial  yang dimulai pada  tingkat  dan  kemajuan  sistem  pada  seluruh  analisis,  desain,  kode, pengujian  dan  pemeliharaan.  Menurut  Roger  S.  Pressman  (2019)  Waterfall adalah  model  klasik  yang  bersifat  sistematis,  berurutan  dalam  membangun software. Nama model ini sebenarnya adalah Linear Sequential Model. Model ini  sering  disebut  juga  dengan  classic  life  cycle.  Model  ini  melakukan pendekatan secara sistematis dan berurutan. Disebut dengan waterfall karena tahap demi tahap  yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Adapun tahap dalam metode waterfall adalah sebagai berikut :
Gambar 1. Tahapan Metode Waterfall
e. Pengujian Software
Pengujian software adalah  cara  atau  teknik  untuk  menguji  perangkat  lunak, mempunyai  mekanisme  untuk  menentukan  data  uji  yang  dapat  menguji perangkat  lunak  secara  lengkap  dan  mempunyai  kemungkinan  tinggi  untuk menemukan  kesalahan.  Metode/teknik  pengujian  software  yang  digunakan pada penelitian ini adalah metode black box . black box berusaha menemukan kesalahan dalam kategori:
•  Fungsi-fungsi yang tidak benar atau hilang,
•  Kesalahan interface,
•  Kesalahan dalam struktur data atau akses basisdata eksternal,
•  Validitasi fungsional,
•  Inisialisasi dan kesalahan terminasi.
•  Batasan dari suatu data

## PEMBAHASAN
1. Analisa Prosedur yang berjalan
Belum  adanya platform yang  memfasilitasi/menghubungkan user dengan expert /mentor  untuk  saling  bertukar  pikiran  menyelesaikan  masalah  yang sedang  dihadapi . Maka  dari  itu  dibuatnya  sistem  ini  karena  berdasarkan pengalaman  sulit  sekali  memecahkan  masalah  yang  kompleks  khususnya dalam  sisi technical secara  otodidak,  tentu  kita  memerlukan  seseorang  yang sudah  kompeten  dibidangnya  untuk  memberikan  masukan  dan  arahan  guna memecahkan masalah yang dihadapi.
2. Evaluasi Sistem yang berjalan
Setelah dilakukan penelitian dengan melakukan  analisa terhadap sistem  yang berjalan baik secara dokumen maupun Prosedur maka berikut adalah evaluasi terhadap permasalahan sistem yang ada:
Tabel .1 Pemetaan Masalah dan Solusi No Masalah Solusi 1 Masalah dalam pengembangan
perangkat  lunak  khususnya  dalam pembangunan  arsitektur  sistem, yaitu  masalah  konflik  aplikasi  bila berjalan  di  satu  mesin  yang  sama, sulitnya  aplikasi  diperbesar  dan diperkecil sesuai kebutuhan, masalah aplikasi yang tidak portable , environment yang
berbeda  antara development dan production server yang akan mempengaruhi produktivas
developer ,    aplikasi  yang  tidak independent  & kurang robust, masalah  optimasi  keamanan  serta efisiensi sumber daya server.
Node.JS  hadir  dengan  konsep  “satu bahasa  untuk  mengatur  semuanya”. Bila  selama  ini  kita  mengenal
JavaScript sebagai bahasa pemrograman  yang  berjalan  disisi client saja,  maka  Node.JS  ada  untuk melengkapi peran JavaScript sehingga bisa  juga  berlaku  sebagai  bahasa pemrograman  yang  berjalan  disisi server , seperti halnya PHP, Ruby, Perl dan  sebagainya.  Node.JS  memiliki pustaka server HTTP sendiri sehingga memungkinkan  untuk  menjalankan web server tanpa menggunakan
program web server seperti Apache atau Nginx.  Untuk  itu dengan  adanya  aplikasi  Expert  Assist
2 Masalah  dalam  masyarakat,  yaitu sulitnya  menemukan  mentor  yang bisa  mengarahkan  dan  membantu memecahkan masalah
yang kompleks,  karena  tidak  selalu masalah  itu  bisa  diselesaikan secara auto didak, kita butuh mentor  yang  ahli  dibidangnya
untuk  membimbing  kita  untuk membantu  memecahkan  masalah yang kita hadapi yang menggunakan arsitektur
Container Docker  ini  diharapkan dapat  memecahkan  dua  masalah sekaligus yaitu masalah di masyarakat dan  masalah  dalam  pengembangan perangkat lunak.

## 3. Perancangan Sistem
Sebelum pembuatan aplikasi, maka perlu dimodelkan terlebih alur dari Bisnis Proses  yang  terjadi  pada  Bagian  Survei.  Mengingat  rancangan  proses  yang akan dilakukan adalah secara Online, maka pemodelan yang dilakukan adalah menggunakan Unified  Modelling  Language (UML).  Dengan  bentuk  usecase diagram sebagai berikut:
Untuk menggambarkan  kelas-kelas  dalam  sebuah  sistem  dan  hubungannya antara satu dengan yang lain serta dimasukkan pula atribut dan operasi maka dibuatlah  class  diagram.  Berikut  adalah  gambar  class  diagram  sistem  yang dirancang pada penelitian ini:
Gambar 3. Class Diagram
4. Perancangan Antarmuka
Perancangan  antar  muka  adalah  merupakan  tahapan  desain  sistem  yang mempertimbangkan kemudahan user dalam menggunakan aplikasi sistem bisa user  friendly,  sehingga  pelibatan  user  dalam  proses  design  harus  dilakukan, dan berikut adalah hasil desain interface untuk Sistem Informasi Tracer Study di Universitas Banten Jaya.
a. Struktur menu
Stuktur  menu  digunakan  dalam  Digunakan  memetakan  aktifitas-aktifitas yang  ada  dalam  sistem  informasi,  sehingga  memudahkan  user  dalam berintekasi  dengan  sistem  informasi  yang.  Berikut  adalah  tampilan struktur menu pada penitilian ini :
Gambar 4. struktur fitur frontpage
Gambar 5. struktur fitur user
Gambar 6. struktur fitur mentor
b. Struktur Tampilan Input / Form Input
Untuk  Hak  akses  atau  fitur  yang  tersedia  bagi  admin  cukup  banyak diantara detailnya adalah sebagai berikut:
a) Dashboard :  Berisi  statistik  informasi  terkini  dari  sistem  secara keseluruhan
b) Mentor: Berisi semua informasi mengenai mentor
c) User : Berisi semua informasi mengenai user
d) Payment : Berisi semua informasi mengenai pembayaran
e) Withdraw : berisi semua informasi mengenai permintaan pencairan dana f) Mentoring:  Berisi  semua  informasi  tentang video call room yang digunakan untuk proses mentoring
g) Profile :  Berisi  semua  informasi  tentang profile admin  dan  perubahan password
h) Blog: Berisi informasi mengenai blog atau artikel
i) Exam : Berisi semua informasi mengenai link soal ujian untuk mentor
j) FAQ:  Berisi  semua  informasi  pertanyaan  dan  jawaban  yang  sering ditanyakan
k) News : Berisi semua informasi terkini yang ditujukan kepada user atau mentor terkait
l) Message: Berisi  semua  informasi  pesan  masuk  dan  keluar.  Berikut tampilan  aplikasi  messaging  yang  digunakan  admin  versi  web  dan mobilenya.
m) Payment  Gateway  : Berisi  semua  informasi  transaksi  lengkap  beserta report yang terintegrasi dengan aplikasi Expert Assist.
n) Container Portainer :  Aplikasi  ini  bisa  diakses  hanya  oleh  admin  dan terintegrasi dengan aplikasi Expert Assist.
o) Container Boatswain : Aplikasi ini bisa diakses hanya oleh admin dan terintegrasi dengan aplikasi Expert Assist.
Gambar 7. Dashboard Admin pada aplikasi Expert Assist
Gambar 9. Dashboard Stripe Payment Gateway
Gambar 10. Dashboard Container Portainer
Gambar 11. Dashboard Container Boatswain
c. Uji coba dan Hasil
Black box testing adalah  metode  pengujian  perangkat  lunak  yang digunakan untuk menguji perangkat lunak dengan menguji fungsionalitasnya  tanpa  menganlisa  struktur  internal  kode  program.
Berikut adalah hasil dari pengujian pada aplikasi Expert Assist :
Tabel 2. Tabel Skenario Black Box Testing FITUR SKENARIO HASIL Halaman Frontend Register Mendaftarkan akun ke semua level berikut uji coba validasi dan sanitasi data Sesuai Login Login akun di setiap level berikut uji coba validasi dan sanitasi data Sesuai Reset Password Reset Password berikut dengan uji validasi dan sanitasi data Sesuai FAQ Akses FAQ page Sesuai Mentor List & Detail Akses Mentor List & Detail setiap mentor Sesuai Blog & Comment Akses blog page , detail setiap blog dan melakukan komentar di setiap blog post Sesuai Halaman User Dashboard Akses dashboard dan memverifikasi validitas data Sesuai Profile Malakukan update p rofile & perubahan password Sesuai Payment Melakukan transaksi pembayaran Sesuai Schedule Melakukan permintaan jadwal mentoring dan pembatalan jadwal Sesuai Mentoring Melakukan video call dengan mentor Sesuai Review Melakukan transaksi pembayaran Sesuai Halaman Mentor Dashboard Akses dashboard dan memverifikasi validitas data Sesuai Profile Malakukan update Profile & perubahan password Sesuai Exam Melakukan ujian berdasarkan bidang keahlian yang dipilih Sesuai Payment Akses transaksi pembayaran yang sudah dilakukan berdasarkan mentorId Sesuai Schedule Melakukan persetujuan jadwal mentoring   Sesuai Mentoring Melakukan video call dengan user Sesuai Review Akses review page berdasarkan mentorId  Sesuai Withdraw Melakukan permintaan Tarik dana Sesuai Halaman Admin
Dashboard Akses dashboard dan memverifikasi validitas data Sesuai Profile Malakukan u pdate p rofile & perubahan password Sesuai Exam Melakukan penilaian ujian mentor dan akses data seluruh calon mentor Sesuai Mentor Melakukan akses data seluruh mentor yang sudah kompeten dan melakukan pemblokiran Sesuai User Melakukan akses data seluruh user yang dan melakukan pemblokiran Sesuai Payment Akses semua pembayaran yang masuk Sesuai Schedule Akses semua jadwal mentoring Sesuai Mentoring Akses semua video call room yang telah dibuat & memanipulasi datanya Sesuai Review Akses semua review yang telah dibuat user Sesuai Withdraw Menerima permintaan tarik dana dari mentor dan menolaknya Sesuai Blog Melakukan operasi CRUD pada blog page Sesuai News Melakukan operasi CRUD pada News Sesuai Message Akses pesan & membalas pesan yang masuk via mobile app & website Sesuai Comment Akses Comment yang masuk Sesuai FAQ Melakukan operasi CRUD pada FAQ page Sesuai

## KESIMPULAN
Berdasarkan  pembahasan  pada  bab-bab  sebelumnya,  maka  dapat  ditarik beberapa kesimpulan yaitu :
1. Teknologi Asynchronous atau Non  Blocking pada  Node.JS  terbukti  lebih cepat  dan  memiliki  performa  yang  jauh  lebih  baik  dibandingkan  bahasa pemrograman server side konvernsional yang menganut mekanisme Blocking Code.
2. Arsitektur  sistem  yang  dibangun  diatas Container Docker  terbukti  dapat membantu  proses  pengembangan  aplikasi  menjadi  lebih  cepat,  membuat aplikasi  lebih Portable , Secure,  Scalable,  Robust dengan  tetap  menghemat sumber daya, membantu menyamakan konfigurasi environment development dan production serta  menghindari  konflik  antar  aplikasi  yang  berjalan
dimesin yang sama sehingga akan meninggkakan produktifitas developer dan performa sistem yang dibangun.
3. Aplikasi  Expert  Assist  berhasil  menjawab  permasalahan  pada  masyarakat yaitu  belum  adanya  aplikasi  yang  mempertemukan  mentor/expert  dengan user . Aplikasi telah diuji dan semuanya berjalan sesuai harapan.

## DAFTAR PUSTAKA
Alauddin, M. F., Ijtihadie, R. M., & Husni, M. (2017). Implementasi Virtual Data Center Menggungakan Linux Container Berbasis Docker dan SDN. Jurnal Teknik ITS , 6 (2), 6–8. https://doi.org/10.12962/j23373539.v6i2.23755
Analysis  of  its  Performance. IJCSNS  International  Journal  of  Computer Science and Network Security , 17 (3), 228–235.
Bashari  Rad,  B.,  John  Bhatti,  H.,  &  Ahmadi,  M.  (2017).  An  Introduction  to Docker and
Bhatia,  G.  (2017). Available  Online  at  www.ijarcs.info  THE  ROAD  TO DOCKER : A SURVEY (Vol. 8, Issue 0976, pp. 83–88).
Christensson,  P.  (2017,  August  21). Container  Definition .  Retrieved  2020,  Sep
3, from https://techterms.com
Docker.com.  (2019).  What  is  a container ?  A  Standarized  unit  of  software, https://www.Docker.com/resources/what- container
G,  S.  (2019).  A  Novel  Approach  for  Remote  Compilation  using  Docker Containers. International  Journal  of  Computer  Communication  and Informatics . https://doi.org/10.34256/ijcci1918
Hamori,    Farenc,   Gergely   Nemeth,    (2019),    History    of   NodeJS   on   a Timeline, https://blog.risingstack.com/history-of-node-js/
Hibbard,  James,  Camilo  Reyes,  (2018),  NodeJS  The  Collection,  Melbourne  In Sitepoint
ID-Networkers, (2017), Operation & Administration Docker, Jakarta In IDN
Jain,  V.,  &  Upadhyay,  A.  (2017).  MongoDB  and  NoSQL  Databases. International  Journal  of  Computer  Applications , 167 (10),  16–20. https://doi.org/10.5120/ijca2017914385
Kleppmann,  M.  (2017).  Designing  Data-Intensive  Applications:  The  Big  Ideas behind  Reliable,  Scalable,  and  Maintainable  Systems.  In O’Reilly  Media, Inc.
Martin,  R.  C.  (2017).  Clean  Architecture:  A  Craftsman’s  Guide  to  Software Structure and Design. In Prentice Hall . https://doi.org/10.1177/1356389011400889
Matthias,  Karl,  Sean  P.Kane,  (2015),  Docker Up &  Running,California  In O’ReillyMead  Andrew,  (2018),  Learning  Node.JS  Development, Birmingham In Packt
MongoDB.com,              (2019).              MongoDB              Introduction              & Documentation https://docs.mongodb.com/
Mouat, A. (2015). Using Docker. In O’Reilly . www.allitebooks.com
Murugan,  P.,  Subramanian,  S.,  &  Rajinigirinath,  V.  P.  |  D.  D.  (2018).  Using Docker for Containerization in High Performance Computing Applications. International  Journal  of  Trend  in  Scientific  Research  and  Development , Volume - 2 (Issue-3), 2005–2009. https://doi.org/10.31142/ijtsrd11591
Raharjo,  Budi,  (2019),  Pemrograman  Web  Dengan  Node.JS  dan  JavaScript, Bandung In Informatika
ROMADLON BIK, M. (2017). Implementasi Docker Untuk Pengelolaan Banyak Aplikasi  Web  (Studi  Kasus :  Jurusan  Teknik  Informatika  Unesa). Jurnal Manajemen Informatika , 7 (2), 46–50.
Rompis,  A.  C.,  &  Aji,  R.  F.  (2018).  Perbandingan  Performa  Kinerja  Node.js, PHP, dan Python dalam Aplikasi REST. CogITo Smart Journal , 4 (1), 171. https://doi.org/10.31154/cogito.v4i1.92.171-187
Tankersley, Chris, (2016), Docker For Developers, British Columbia In Leanpub Sharma,  A.,  Kumar,  R.,  &  Mansotra,  V.  (2016).  Proposed  Stemming Algorithm  for  Hindi  Information  Retrieval. International  Journal  of Innovative  Research  in  Computer  an  Communication  Engineering  (An ISO Certified Organization) , 3297 (6), 11449–11455. https://doi.org/10.15680/IJIRCCE.2016
Williams,  Alex,  (2019),  The  Docker Container &  Ecosystem,  New  York  In The  New Stack