Noval's Blog

Blog pribadi Noval

Sabtu, 29 Desember 2018

Tutorial CRUD REST API menggunakan Node.js, Express.js dan MongoDB Bahasa Indonesia

Assalamu'alaikum warahmatullahi wabarakatuh. Halo, perkenalkan nama saya Noval, ini adalah artikel pertama saya, semoga membantu. Baiklah untuk artikel pertama ini saya akan memberikan tutorial kepada teman-teman bagaimana caranya membuat CRUD RESTful API dengan ExpressJS menggunakan MongoDB dalam bahasa Indonesia agar mudah dipahami. Karena diluaran sana memang banyak tutorial ExpressJS bertebaran, namun dalam bahasa Inggris yang tidak semua orang bisa paham dengan mudah. Sebenarnya untuk menghasilkan RESTful API dari Node.js atau ExpressJS dengan database MongoDB itu cukup mudah, gak percaya? Coba pantengin tutorial saya yang sederhana ini.

Disini saya asumsikan teman-teman sudah pernah belajar dan paham dasar dari javascript. Sehingga untuk belajar CRUD RESTful API dengan ExpressJS MongoDB jadi lebih mudah dipahami. Saya akan coba jelaskan dengan bahasa yang mudah dimengerti. Lansung saja sebelum memulai tutorial nya, teman-teman harus terlebih dahulu menginstall :

1. Node.js
Node.js adalah perangkat lunak yang didesain untuk pengembangan web yang ditulis dalam Javascript. Apabila sebelumnya kita mengenal javascript sebagai client-side, maka Node.js hadir untuk menjadikan javascript sebagai server-side, sama halnya dengan PHP, Ruby dll. Node.js bisa dijalankan pada sistem operasi Windows, Linux, MacOS. 

2. MongoDB
MongoDB merupakan salah satu database dengan konsep NoSQL, yaitu tanpa adanya hubungan antar collections. Oh iya, perlu di ketahui, karna NoSQL, MongoDB tidak memiliki table. Beberapa istilahnya yaitu table bisa disebut collections, rows disebut documents.

3. Nodemon
Nodemon adalah aplikasi yang membantu developer dalam pengembangan web berbasis Node.js. Kegunaan Nodemon adalah menjalankan ulang server secara otomatis ketika kita melakukan perubahan kode.

4. Insomnia
Insomnia adalah semua aplikasi yang digunakan untuk melakukan test REST API yang telah kita buat atau disebut REST Client. Selain Insomnia ada juga Postman, mungkin kita lebih familiah dengan postman. Keuntungan postman yaitu bisa diinstall hanya dari plugin chrome, tapi kelebihan insomnia menurut saya tidak menyimpan cache.

5. VisualStudio Code
VisualStudio Code merupakan text editor buatan Microsoft. Sebenarnya banyak text editor lain seperti sublime, atom, notepad++. Tapi saya menyarankan menggunakan VisualStudio Code, karna mempunyai autocomplete yang sangat membantu. Dan itu kembali pada diri kita masing-masing lebih suka pakai yang mana.

Tutorial CRUD ExpressJS dan MongoDB Indonesia

Setelah semua aplikasi yang saya sebutkan diatas semuanya terinstall dan berjalan dengan baik, selanjutnya silahkan buat folder baru dengan nama terserah agan, saya disini membuat folder 'expressapp'.

Oh iya, sebelumnya saya beri tau, kalo ditutorial ini saya membuatnya di Linux, jadi bagi pengguna windows diharap bisa menyesuaikan.

Menginitial dan Menginstall ExpressJS

Masuk kedalam folder yang sudah dibuat tadi, dan open in Terminal disana, lalu ketikkan

~$ npm init -y
~$ npm i express

Itu akan menghasilkan  folder node_modules, file package.json dan package-lock.json

Jika agan buka file tersebut, disana akan terlihat pada bagian "depedencies" ada "express", jika seperti itu, berarti menginstall express nya berhasil.

Selanjutnya silahkan buka projectnya dalam text editor, lalu buat sebuah file dengan nama app.js. Kenapa app.js ? Karena dalam file ini kita akan mengatur server expressnya, route, konfigurasi ke MongoDB dll. Ketikkan script berikut :


const express = require("express");
const app = express();

app.listen(3000, function() {
  console.log("Expressapp sukses berjalan pada port 3000!");
});


Oke jika sudah, untuk menjalankannya

~$ nodemon app.js

Tutorial-CRUD-REST-API-menggunakan-Node.js-Express.js-dan-MongoDB-Bahasa-Indonesia

Yeayy!! Kita berhasil menjalankan ExpressJS. Sangat mudah sekali bukan? Hehehe

Gimana? Mulai tertarik makin semangat mempelajari ExpressJS ?

Okehh mari kita lanjutkan dengan route pertama kita, buka lagi app.js nya, silahkan tambahkan beberapa kode sehingga akan menjadi seperti berikut :

const express = require("express");
const app = express();

app.get("/", function(req, res) {
  res.send("Halo ExpressJS Noval!");
});

app.listen(3000, function() {
  console.log("Expressapp sukses berjalan pada port 3000!");
});

Nahh coba cek di browser, ketikkan : localhost:3000

Jika memberikan response 'Halo ExpressJS Noval!', berarti berhasil ya. 

Sedikit penjelasan : 
1. app.get -> Mendefenisikan kalau untuk route ini kita pakai method get 
2. "/" -> Name route nya, jika kita defenisikan "/home" maka untuk melihatnya menjadi localhost:3000/home, silahkan berekperiment sendiri, hehehe.
3. function(req, res) -> dalam setiap fungsi kita membutuhkan yang namanya request dan response, untuk kali ini kita belum menggunakan request nya
4. res.send("") -> Yap, saya yakin agan pasti tau itu untuk apa hehehe

Membuat Route, Controller dan Model pada ExpressJS

1. Route

Buat sebuah folder dengan nama routes, kemudian didalamnya buat sebuah file routes.js yang berfungsi mengatur rute dari aplikasi yang akan kita buat. Lansung saja ketikkan script berikut, saya yakin agan MENGETIK dan memahami ya, tidak COPAS :D

const routes = require("express").Router();

routes.get("/", function(req, res) {
  res.send("Halo ExpressJS Noval!");
});

module.exports = routes;

Setelah itu buka kembali file app.js dan ubah code nya menjadi seperti berikut :

const express = require("express");
const app = express();
const router = require("./routes/route");

app.use("/", router);

app.listen(3000, function() {
  console.log("Expressapp sukses berjalan pada port 3000!");
});

Dan coba jalankan, hasilnya akan tetap sama seperti sebelumnya, karna pada bagian ini kita memahami bagaimana alur route dibuat.

Yang perlu diperhatikan adalah :
1. Pada file routes.js jangan lupa untuk melakukan exports agar bisa kita panggil di file lainnya. Exports bisa kita artikan sebagai memberi izin.
2. Pada file app.js kita menggunakan "app.use", kenapa? agar semua method yang kita pakai dalam router bisa diakses.

Kalo sudah bisa jangan lupa untuk ber-eksperimen sendiri dengan ilmu yang ada, kalo udah bener" paham baru lanjut hehehe

2. Controller

Sama seperti route, buat sebuah folder controllers dan didalamnya juga buat file book.controller.js yang akan mengontrol berhubungan dengan buku. Untuk setiap file controller saya suka memberi embel" 'controller' agar lebih mudah diketahui, sama halnya dengan framework laravel dan yang lainnya.

Sebelumnya saya kasih tau untuk tutorial ini kita akan membuat CRUD RESTful API tentang buku ya. Nah ketikkan script berikut :

module.exports = {
  getBooks: function(req, res) {
    res.send("Hello, ini dari getBooks Noval!");
  }
};


Disini kita membuat exports nya di awal, berbeda dari routes.js tadi ya. Saya hanya ingin mengenalkan kepada agan ada teknik lain, silahkan pilih sesuai selera.

Buka lagi file routes.js dan lakukan modifikasi seperti berikut :

const routes = require("express").Router();
const books = require("../controllers/book.controller");

routes.get("/", books.getBooks);

module.exports = routes;

Yang perlu jadi perhatian :
1. Perbedaan exports di awal ya
2. Setelah memanggil file book.controller.js, untuk menggunakannya tinggal panggil nama function nya dalam hal ini "getBooks".

Nah untuk selanjutnya model, kita akan berurusan dengan database yaitu MongoDB

Silahkan Next-nya kesini ya, jangan ke yang lain huhuhu

Tutorial CRUD REST API menggunakan Node.js, Express.js dan MongoDB Bahasa Indonesia (Part 2)

Tidak ada komentar:

Posting Komentar