Perkenalan Node.js dan Contoh CRUD Projek Rumah Sakit

Mengenal Node.JS sebagai web developer

Node.js adalah platform runtime yang dibangun di atas JavaScript V8 milik Google Chrome. Node.js memungkinkan developer untuk menjalankan kodingan JavaScript dari sisi server, sehingga menciptakan lingkungan yang efisien dan mudah diperbesar (scalable) untuk develop web.

Perbedaan utama Node.js dan framework Laravel

Node.js dan Laravel adalah dua alat yang sangat berbeda untuk pengembangan web, meskipun keduanya digunakan untuk membangun aplikasi server-side.

  1. Bahasa Pemrograman: Node.js menggunakan JavaScript, sementara Laravel menggunakan PHP. Ini adalah perbedaan paling mendasar dan mempengaruhi cara pengembangan, ekosistem, dan komunitas masing-masing.
  2. Paradigma: Laravel adalah framework berbasis MVC (Model-View-Controller) yang menyediakan struktur yang ketat dan berfokus pada arsitektur yang jelas. Node.js lebih fleksibel dan tidak mengikat pengembang pada satu arsitektur tertentu, meskipun ada banyak framework yang dapat digunakan dengan Node.js seperti Express.js yang membantu membangun aplikasi MVC.
  3. Performa: Node.js dikenal karena kemampuannya untuk menangani operasi I/O yang tinggi dengan non-blocking I/O model, yang membuatnya sangat cepat untuk aplikasi real-time seperti chat atau game online. Laravel, dengan arsitektur MVC-nya, lebih cocok untuk aplikasi yang membutuhkan pengolahan data yang kompleks dan tidak terlalu mementingkan performa real-time.
  4. Ekosistem dan Komunitas: Ekosistem npm (Node Package Manager) Node.js adalah salah satu yang terbesar di dunia pengembangan perangkat lunak, dengan jutaan paket yang dapat digunakan. Laravel juga memiliki komunitas yang kuat dan banyak paket melalui Composer, tetapi ekosistemnya tidak sebesar npm.

Waktu yang tepat memilih pake node.js

Node.js adalah pilihan yang sangat baik untuk mengerjakan aplikasi tertentu:

  1. Aplikasi Real-Time: Seperti aplikasi chat, kolaborasi langsung, atau permainan online, di mana kecepatan dan kemampuan untuk menangani banyak koneksi secara bersamaan sangat penting.
  2. API RESTful: Node.js sangat efisien untuk membuat API karena model I/O yang non-blocking dan dukungan JSON yang kuat.
  3. Aplikasi Berbasis Event: Karena arsitektur berbasis event-driven, Node.js sangat cocok untuk aplikasi yang harus merespons banyak event.
  4. Microservices: Node.js dapat digunakan untuk membangun arsitektur microservices, yang memerlukan pengolahan cepat dan komunikasi antar layanan yang efisien.

Sebelum belajar Node.js, persiapkan hal-hal berikut

  1. Pemahaman Dasar JavaScript: Pahami konsep dasar JavaScript, seperti variabel, fungsi, dan asinkronitas.
  2. Instalasi Node.js: Unduh dan instal Node.js dari situs resminya (nodejs.org).
  3. Editor Kode: Gunakan editor teks seperti VS Code atau Sublime Text.
  4. NPM: Familiarisasi dengan npm (Node Package Manager) untuk mengelola paket dan dependensi.
  5. Dasar-Dasar Terminal: Pahami perintah dasar terminal atau command line.
  6. Dokumentasi: Sediakan akses ke dokumentasi resmi Node.js dan Express.js.

Fitur Unggulan dari Menggunakan Node.js

  1. Non-Blocking I/O: Model I/O non-blocking memungkinkan Node.js menangani banyak operasi secara bersamaan tanpa menunggu operasi I/O selesai, meningkatkan performa aplikasi.
  2. Single Programming Language: Dengan Node.js, pengembang dapat menggunakan JavaScript di sisi klien dan server, menyederhanakan proses pengembangan.
  3. Ekosistem npm: Ekosistem npm menyediakan akses ke jutaan paket yang dapat digunakan untuk menambahkan berbagai fitur dan fungsi ke aplikasi dengan mudah.
  4. Skalabilitas: Node.js dirancang untuk membangun aplikasi yang scalable, baik secara horizontal maupun vertikal.
  5. Cepat dan Efisien: Mesin V8 yang digunakan oleh Node.js memungkinkan eksekusi kode yang sangat cepat.

Node.js gratis untuk kita gunakan projek freelance

Node.js adalah open-source dan gratis untuk digunakan. Node.js memiliki lisense di bawah Lisensi MIT, yang memungkinkan developer untuk menggunakannya, memodifikasi, dan mendistribusikan tanpa biaya.

Framework Node.js

Ada beberapa framework yang dapat digunakan bersama Node.js untuk mempercepat pengembangan aplikasi:

  1. Express.js: Framework minimalis dan fleksibel untuk membuat aplikasi web dan API. Express.js adalah salah satu framework paling populer untuk Node.js.
  2. Koa.js: Dibuat oleh tim yang sama yang membuat Express.js, Koa.js menawarkan fitur modern dan ringan untuk pengembangan web.
  3. NestJS: Framework yang sangat cocok untuk membangun aplikasi server-side yang skalabel dan dapat dipelihara, menggunakan TypeScript.
  4. Sails.js: Framework MVC yang kuat untuk membangun aplikasi web skala besar, mirip dengan Laravel namun untuk Node.js.

CRUD dengan Node.js projek Rumah Sakit

Berikut adalah contoh sederhana bagaimana membangun aplikasi CRUD (Create, Read, Update, Delete) untuk mengelola data rumah sakit menggunakan Node.js dan Express.js.

1. Instalasi dan Persiapan projek

Pertama, pastikan Anda sudah menginstal Node.js dan npm. Kemudian, buat direktori baru untuk proyek dan inisialisasi npm pada terminal:

mkdir hospital-crud
cd hospital-crud
npm init -y

Instal Express.js:

npm install express

2. Struktur projek

Buat struktur proyek seperti berikut:

hospital-crud/
|-- node_modules/
|-- public/
|-- routes/
|   |-- index.js
|-- app.js
|-- package.json

3. Buat Server dengan Express.js

Buat file app.js dan tambahkan kode berikut untuk mengatur server:

const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

const indexRouter = require('./routes/index');
app.use('/', indexRouter);

app.listen(port, () => {
  console.log(`Server running at <http://localhost>:${port}`);
});

4. Rute CRUD

Buat file routes/index.js dan tambahin kodingan untuk mengatur routing CRUD:

const express = require('express');
const router = express.Router();

let patients = [];

// Create a new patient
router.post('/patients', (req, res) => {
  const patient = req.body;
  patients.push(patient);
  res.status(201).json(patient);
});

// Read all patients
router.get('/patients', (req, res) => {
  res.json(patients);
});

// Read a single patient
router.get('/patients/:id', (req, res) => {
  const patient = patients.find(p => p.id === parseInt(req.params.id));
  if (!patient) return res.status(404).send('Patient not found');
  res.json(patient);
});

// Update a patient
router.put('/patients/:id', (req, res) => {
  const patient = patients.find(p => p.id === parseInt(req.params.id));
  if (!patient) return res.status(404).send('Patient not found');

  patient.name = req.body.name;
  patient.age = req.body.age;
  patient.diagnosis = req.body.diagnosis;

  res.json(patient);
});

// Delete a patient
router.delete('/patients/:id', (req, res) => {
  const patientIndex = patients.findIndex(p => p.id === parseInt(req.params.id));
  if (patientIndex === -1) return res.status(404).send('Patient not found');

  patients.splice(patientIndex, 1);
  res.status(204).send();
});

module.exports = router;

Kesimpulan utamanya

Node.js adalah platform runtime yang kuat dan efisien untuk pengembangan aplikasi web server-side. Dengan fitur-fitur unggulannya seperti non-blocking I/O dan ekosistem npm yang banyak dan mendukung, Node.js menawarkan solusi yang scalable dan cepat untuk berbagai jenis projek, seperti aplikasi real-time dan API.

Dengan berbagai framework yang tersedia, seperti Express.js, develop website dengan Node.js menjadi lebih mudah dan terstruktur. Contoh CRUD di atas menunjukkan bagaimana membangun aplikasi sederhana untuk mengelola data rumah sakit dengan Node.js.

Apabila tertarik belajar lebih lanjut maka bisa periksa katalog kelas terbaru BuildWithAngga untuk memulai belajar node js dan membangun portfolio berkualitas tinggi sebagai modal bekerja!