BAB 1: Dasar Backend Development
BAB 1: Dasar Backend Development
1.1 Pengenalan Backend Development
1.1.1 Apa itu Backend Development?
Backend development adalah bagian dari pengembangan aplikasi yang berfokus pada server, aplikasi, dan database. Backend developer bertanggung jawab untuk membuat logika, database relations, dan memastikan performa serta keamanan dari sebuah aplikasi.
1.1.2 Peran Backend Developer
Membuat dan mengelola API
Mendesain dan mengimplementasikan database
Mengatur autentikasi dan otorisasi
Memproses data dari frontend
Mengoptimasi performa server
Mengamankan data dan proses di server
1.1.3 Arsitektur Backend
Client (Frontend) <-> API <-> Server (Backend) <-> Database
1.2 Persiapan Development Environment
1.2.1 Software yang Dibutuhkan
Node.js
Download dari nodejs.org
Pilih LTS version
Cek instalasi dengan command:
node --version npm --version
Code Editor
Visual Studio Code
Ekstensi yang direkomendasikan:
ESLint
Prettier
Node.js Extension Pack
MySQL Extension
MySQL
Download MySQL Community Server
MySQL Workbench untuk GUI
Postman
Untuk testing API
Alternatif: Insomnia atau Thunder Client
1.2.2 Konfigurasi Development Environment
Konfigurasi VS Code
{ "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 2 }
Membuat Project Baru
mkdir my-backend-project cd my-backend-project npm init -y
Instalasi Package Dasar
npm install express mysql2 dotenv cors npm install --save-dev nodemon
1.3 Konsep REST API
1.3.1 Apa itu REST API?
REST (Representational State Transfer) adalah standar arsitektur komunikasi berbasis web yang sering diterapkan dalam pengembangan layanan web. REST menggunakan HTTP Protocol sebagai protokol komunikasi data.
1.3.2 HTTP Methods
GET
Mengambil data
Contoh:
/api/users
(mendapatkan daftar users)
POST
Membuat data baru
Contoh:
/api/users
(membuat user baru)
PUT/PATCH
Mengupdate data
PUT: Update keseluruhan data
PATCH: Update sebagian data
Contoh:
/api/users/1
(update user dengan id 1)
DELETE
Menghapus data
Contoh:
/api/users/1
(hapus user dengan id 1)
1.3.3 Status Codes
2xx (Success)
200: OK
201: Created
204: No Content
4xx (Client Error)
400: Bad Request
401: Unauthorized
403: Forbidden
404: Not Found
5xx (Server Error)
500: Internal Server Error
502: Bad Gateway
503: Service Unavailable
1.3.4 Request & Response Format
Request Format
// GET Request GET /api/users Headers: { "Authorization": "Bearer token123", "Content-Type": "application/json" } // POST Request POST /api/users Headers: { "Content-Type": "application/json" } Body: { "name": "John Doe", "email": "john@example.com" }
Response Format
// Success Response { "status": "success", "data": { "id": 1, "name": "John Doe", "email": "john@example.com" } } // Error Response { "status": "error", "message": "User not found" }
1.4 Struktur Project Backend
1.4.1 Basic Structure
my-backend-project/
├── node_modules/
├── src/
│ ├── config/
│ │ └── database.js
│ ├── controllers/
│ │ └── userController.js
│ ├── models/
│ │ └── userModel.js
│ ├── routes/
│ │ └── userRoutes.js
│ ├── middleware/
│ │ └── auth.js
│ └── app.js
├── .env
├── .gitignore
└── package.json
1.4.2 File Konfigurasi Dasar
package.json
{ "name": "my-backend-project", "version": "1.0.0", "scripts": { "start": "node src/app.js", "dev": "nodemon src/app.js" }, "dependencies": { "express": "^4.18.2", "mysql2": "^3.6.0", "dotenv": "^16.3.1", "cors": "^2.8.5" }, "devDependencies": { "nodemon": "^3.0.1" } }
.env
PORT=3000 DB_HOST=localhost DB_USER=root DB_PASSWORD=password DB_NAME=mydatabase
.gitignore
node_modules .env .DS_Store npm-debug.log
1.5 Membuat Server Sederhana
1.5.1 Basic Express Server
// src/app.js
const express = require('express');
const cors = require('cors');
require('dotenv').config();
const app = express();
// Middleware
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Routes
app.get('/', (req, res) => {
res.json({ message: 'Welcome to backend API' });
});
// Error handling
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({
status: 'error',
message: 'Something went wrong!'
});
});
// Start server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
1.6 Testing Server
1.6.1 Menggunakan Postman
Buat New Collection
Tambah Request Baru
Test Endpoint
GET http://localhost:3000
Verifikasi response
1.6.2 Menggunakan cURL
# Test GET endpoint
curl http://localhost:3000
# Test POST endpoint
curl -X POST http://localhost:3000/api/users \
-H "Content-Type: application/json" \
-d '{"name": "John", "email": "john@example.com"}'
Latihan
Buat server Express sederhana
Implementasi 4 endpoint dasar (GET, POST, PUT, DELETE)
Tambahkan error handling
Test menggunakan Postman
Dokumentasikan API yang telah dibuat
Review
Backend development adalah fondasi dari aplikasi web modern
REST API adalah standar dalam komunikasi client-server
Struktur project yang baik memudahkan pengembangan dan maintenance
Testing adalah bagian penting dalam development
Last updated
Was this helpful?