Install Node.js, MySQL, dan Express di Linux (Ubuntu/Debian) untuk Pemula

Install Node.js, MySQL, dan Express di Linux (Ubuntu/Debian) untuk Pemula

Mengapa Linux Ideal untuk Pengembangan Backend ? Linux adalah platform yang sangat stabil dan efisien untuk mengembangkan aplikasi backend.

Mayoritas server production dunia menggunakan Linux karena performanya tinggi dan konsisten, sehingga belajar mengembangkan aplikasi di Linux menjadi keuntungan besar. Selain itu, hampir semua teknologi backend seperti Node.js, Express.js, dan MySQL tersedia dan berjalan optimal di Linux.

Persiapan Awal dan Update Sistem

Sebelum memulai instalasi apa pun, selalu pastikan sistem diperbarui agar tidak ada konflik paket.

sudo apt update
sudo apt upgrade -y

Update ini memastikan seluruh dependency terbaru telah terpasang dan sistem berada pada kondisi optimal.

Instalasi Node.js di Linux (Ubuntu/Debian)

Node.js tidak selalu hadir dalam versi terbaru di repository default Ubuntu. Karena itu, kita akan menggunakan NodeSource agar mendapatkan versi stabil terbaru.

Menambahkan Repository NodeSource

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

Script ini menambahkan repository resmi Node.js LTS ke sistem.

Menginstal Node.js

sudo apt install -y nodejs

Setelah itu, verifikasi instalasi:

node -v
npm -v

Menginstal Build Tools (Disarankan)

Beberapa modul Node.js memerlukan kompiler C/C++.

sudo apt install -y build-essential

Menginstal MySQL Server di Linux

MySQL adalah database relasional yang cocok untuk aplikasi skala kecil hingga besar.

Instalasi MySQL

sudo apt install mysql-server -y

Mengecek Status MySQL

sudo systemctl status mysql

Pastikan statusnya active (running).

Mengamankan Instalasi MySQL

Jalankan tool keamanan bawaan:

sudo mysql_secure_installation

Tool ini akan:

  • Menghapus user anonim

  • Menonaktifkan login root dari remote

  • Menghapus database test

  • Mengaktifkan password policy

Masuk ke MySQL

sudo mysql -u root -p

Membuat Database dan User

CREATE DATABASE testdb;
CREATE USER 'developer'@'localhost' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON testdb.* TO 'developer'@'localhost';
FLUSH PRIVILEGES;

Menginstal Express.js di Linux

Express.js adalah framework backend simpel dan fleksibel yang digunakan untuk membuat REST API.

Membuat Folder Project

mkdir my-express-app
cd my-express-app

Inisialisasi Project Node.js

npm init -y

Menginstal Express.js

npm install express

Membuat Server Express.js Pertama

Buat file index.js:

nano index.js

Isi dengan:

const express = require("express");
const app = express();
const port = 3000;app.get("/", (req, res) => { res.send("Hello from Express on Linux!"); }); app.listen(port, () => { console.log(`Server berjalan di http://localhost:${port}`); });

Jalankan server:

node index.js

Instalasi mysql2 dan Konfigurasi Pool Connection

Untuk performa lebih baik, Express.js harus menggunakan MySQL Connection Pool, bukan single connection. Pool lebih stabil, terutama menangani request banyak sekaligus.

Menginstal mysql2

npm install mysql2

Membuat File Konfigurasi Pool

Buat file db.js:

nano db.js

Isi file dengan:

const mysql = require("mysql2"); const pool = mysql.createPool({ host: "localhost", user: "developer", password: "password123", database: "testdb", waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); module.exports = pool.promise();

Mengapa Menggunakan Pool?

  • Menghindari koneksi habis (connection leak)

  • Lebih cepat karena koneksi digunakan ulang

  • Stabil untuk beban tinggi

  • Baik untuk aplikasi REST API

Menghubungkan Express.js dengan MySQL Pool

Edit file index.js:

const express = require("express");
const db = require("./db");const app = express(); app.use(express.json()); app.get("/users", async (req, res) => { try { const [rows] = await db.query("SELECT * FROM users"); res.json(rows); } catch (error) { res.status(500).json({ error: error.message }); } }); app.listen(3000, () => { console.log("Server berjalan di port 3000"); });

Bagian ini menggunakan MySQL Pool dengan async/await, jauh lebih aman dan modern.

Menggunakan nodemon untuk Auto Reload

nodemon mempermudah development karena otomatis restart server setiap file diedit.

Instalasi nodemon

sudo npm install -g nodemon

Menjalankan Server dengan nodemon

nodemon index.js

Menggunakan dotenv untuk Menyembunyikan Data Sensitif

Install dotenv

npm install dotenv

Buat file .env

DB_HOST=localhost
DB_USER=developer
DB_PASS=password123
DB_NAME=testdb
PORT=3000

Menggunakan environment variables

Edit db.js:

require("dotenv").config();
const mysql = require("mysql2");const pool = mysql.createPool({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASS, database: process.env.DB_NAME, waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); module.exports = pool.promise();

Edit index.js:

require("dotenv").config();
const express = require("express");
const db = require("./db");const app = express(); const port = process.env.PORT || 3000; app.use(express.json()); app.listen(port, () => { console.log(`Server berjalan di port ${port}`); });

Struktur Folder yang Direkomendasikan

project/
│ index.js
│ db.js
│ .env
├── routes/
├── controllers/
└── models/

Struktur ini memudahkan scaling aplikasi REST API.

Kesimpulan

Dengan mengikuti langkah-langkah di atas, kamu sudah membangun sistem backend modern di Linux:

  • Menginstal Node.js versi LTS dari NodeSource
  • Menginstal dan mengamankan MySQL
  • Membuat database dan user
  • Menginstal Express.js
  • Membuat server backend pertama
  • Menghubungkan Express.js ke MySQL menggunakan Connection Pool
  • Menggunakan nodemon & dotenv untuk meningkatkan workflow

Environment ini sudah sangat siap untuk membangun aplikasi backend profesional berbasis JavaScript.