Mungkin teman-teman developer banyak yang tahu bahwa sekarang selain SQL ada tipe database baru yang bernama NoSQL. Jadi apakah itu NoSQL? Show
Intro to NoSQL Kalau mungkin teman-teman yang sekolah dulu di jurusan Teknologi Informasi atau Computer Information akan di ajarkan SQL menggunakan MYSQL, MSSQL atau ORACLE. Semua sistem database ini menggunakan prinsip SQL yaitu Structured Query Language dimana untuk mencari data di dalam database ini ada beberapa peraturan yang harus di turuti seperti relationships, normalizations dan sebagainya. peraturan-peraturan ini di ciptakan untuk menjaga konsistensi data di dalam database tersebut. Tapi peraturan tersebut membuat processing di dalam SQL database lebih “pelan” di bandingkan saudaranya NoSQL. Enter NoSQL NoSQL adalah sebuah konsep database dengan kemampuannya yang tidak perlu menggunakan relationship untuk menjaga ke konsistensian data. NoSQL menggunakan prinsip Document Object sehingga kecepatan querynya bisa seperti mencari di dalam sebuah array. Bagaimana mendapatkan NoSQL? dengan berbagai macam jenis NOSQL yang beredar di pasaran, MongoDB adalah salah satu pelopor NOSQL di dunia. MongoDB mulai terkenal karena di adopsi oleh Facebook. salah satu cara untuk menggunakan MongoDB dengan cepat adalah menggunakan Docker. Setelah anda menginstal docker di komputer anda, anda tinggal menggunakan: sudo docker run -d -p 27017:27017 -v ~/mongo-data:/data/db mongo Collection pada NoSQL itu mirip dengan tabel pada SQL. Baris dan Record pada SQL disebut Document di NoSQL. Kolom pada SQL kita sebut Field di NoSQL. Menghubungkan Aplikasi Node dengan Database MongoDB
Mongoose ORMMongoose mempermudah kita dalam melakukan struktur data. Kita dapat melakukan validasi pada data menggunakan mongoose. 1. Install Mongoose1 npm mongoose@5.4.9 --save 2. Buat server.jsBuat folder baru ‘server’ dan file ‘server.js’ di dalam direktori tersebut. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 const mongoose = require('mongoose');
mongoose.Promise = global.Promise; mongoose.connect('mongodb://localhost:27017/TodoApp',{ useNewUrlParser: true });
const Todo = mongoose.model('Todo', { text: { type: String }, completed: { type: Boolean }, completedAt: { type: Number } });
const newTodo = new Todo({ text: 'Cook lunch' });
newTodo.save().then((doc) => { console.log('Saved to do',(doc)) }, (e) => { console.log('Unable to save',e); });
const otherTodo = new Todo({ text: 'Feed the cat', completed: true, completedAt: 123 });
otherTodo.save().then((doc) => { console.log(JSON.stringify(doc, undefined, 2)) }, (e) => { console.log('Unable to save',e) }); 3. Jalankan fileGunakan perintah : 1 node server/server.js Menggunakan Postman1. Buka getpostman.comDownload postman yang akan kita gunakan untuk tools api https://getpostman.com kemudian install. 2. Buka postman dan silahkan dicoba-cobaMenambahkan Route POST /todos1. Install express dan body-parserKita akan menginstall dua buah tools untuk bekerja dengan api. Tools tersebut adalah express dan body-parser. Buka terminal, masuk ke direktori kerja dan ketik : 1 npm i express@4.16.4 body-parser@1.18.3 --save 2. Refactor server.jsKita akan memodifikasi server.js untuk merapihkan kode. Pertama-tama, buat folder ‘db’ di dalam folder server, dan buat mongoose.js di dalam folder db. mongoose.js 1 2 3 4 5 6 const mongoose = require('mongoose');
mongoose.Promise = global.Promise; mongoose.connect('mongodb://localhost:27017/TodoApp',{ useNewUrlParser: true });
module.exports = {mongoose}; Selanjutnya di dalam folder server buat folder baru bernama ‘models’ dan buat dua file di dalamnya, todos.js dan user.js todos.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 const mongoose = require('mongoose');
const Todo = mongoose.model('Todo', { text: { type: String, required: true, minlength: 1, trim: true }, completed: { type: Boolean, default: false }, completedAt: { type: Number, default: null } });
module.exports = {Todo}; user.js 1 2 3 4 5 6 7 8 9 10 11 12 const mongoose = require('mongoose');
const User = mongoose.model('User', { email: { type: String, required: true, trim: true, minlength: 1 } });
module.exports = {User}; Sekarang, modifikasi server.js : server.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 const express = require('express'); const bodyParser = require('body-parser');
const {mongoose} = require('./db/mongoose'); const {Todo} = require('./models/todo'); const {User} = require('./models/user');
const app = express();
app.use(bodyParser.json());
app.post('/todos',(req,res) => { var todo = new Todo({ text: req.body.text });
todo.save().then((doc) => { res.send(doc); }, (e) => { res.status(400).send(e); }); });
app.listen(3000, () => { console.log('Started on port 3000'); }); 3. Membuat Todo dengan PostmanJalankan server dengan perintah node server/server.js di dalam direktori kerja. Jangan lupa menjalankan mongodb server (masuk ke folder mongo/bin folder dan aktifkan dengan perintah : ./mongod –dbpath ~/mongo-data/). Buka Postman dan ketikkan endpoint : localhost:3000/todos. Buka tab Body, pilih raw dan pilih JSON(application/json) dari menu dropdown dropdown. Coba untuk memasukkan satu record baru: Kita akan mendapatkan todo baru di dalam database. Route GET /todosRoute berikutnya digunakan untuk mengambil semua todo yang berada di dalam database. 1. Modifikasi server.js untuk menambahkan route GET :1 2 3 4 5 6 7 app.get('/todos', (req,res) => { Todo.find().then((todos) => { res.send({todos}); },(e) => { res.status(400).send(e); }); }); 2. Buka Postman dan coba untuk tarik data menggunakan GETMengambil satu todo menggunakan route GET /todos1. Modifikasi server.js dengan menambahkan route berikut:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 app.get('/todos/:id',(req,res) => { const id = req.params.id;
if(!ObjectID.isValid(id)){ return res.status(404).send(); }
Todo.findById(id).then((todo)=>{ if(!todo){ return res.status(404).send(); } res.send({todo}); }).catch((e) => { res.status(400).send(); }); }); 2. Buka Postman dan coba untuk ambil data menggunakan GETMenghapus dokumen menggunakan route DELETE /todos/:id1. Modifikasi server.js dengan menambahkan route DELETE:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 app.delete('/todos/:id',(req,res) => { var id = req.params.id;
if(!ObjectID.isValid(id)){ return res.status(404).send(); }
Todo.findByIdAndRemove(id).then((todo)=>{ if(!todo){ return res.status(404).send(); } res.send({todo}); }).catch((e) => { res.status(400).send(); }); }); 2. Buka Postman dan cobalah untuk menghapus sebuah todoUpdate data menggunakan route PUT /todos/:id1. Install lodashKita akan menggunakan method “pick” dari lodash, sehingga kita perlu menginstallnya terlebih dahulu : Bagaimana cara kerja node?Cara Kerja Node.js
Node.js menggunakan operasi I/O non-blocking. Artinya, saat client mengirim permintaan ke web server, event loop single-threaded Node JS akan mengambil permintaan tersebut lalu mengirimkannya ke worker thread untuk diproses.
Apa yang bisa dilakukan Nodejs?Node.js merupakan platform yang diciptakan secara khusus untuk membantu pengembangan aplikasi berbasis web. Walau demikian, Node.js bukan bahasa pemrograman yang baru, tetapi runtime envinronment atau interpreter untuk menjalankan bahasa pemrograman JavaScript sebagai kebutuhan back-end developing.
MongoDB menggunakan bahasa apa?MongoDB sendiri ditulis dengan bahasa C++ dan telah tersedia untuk berbagai jenis bahasa pemrograman. Fitur utama dari mongoDB antara lain: model document-oriented storage.
Apa itu node dalam programming?Node.js merupakan sebuah runtime environment yang bersifat open source dan juga cross-platform di mana kita bisa mengeksekusi Javascript di luar environment browser. Node.js berjalan pada V8 yaitu sebuah Javascript engine yang memungkinkan kita untuk mengeksekusi kode Javascript di dalamnya.
|