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

  1. Node.js

    • Download dari nodejs.org

    • Pilih LTS version

    • Cek instalasi dengan command:

      node --version
      npm --version
  2. Code Editor

    • Visual Studio Code

    • Ekstensi yang direkomendasikan:

      • ESLint

      • Prettier

      • Node.js Extension Pack

      • MySQL Extension

  3. MySQL

    • Download MySQL Community Server

    • MySQL Workbench untuk GUI

  4. Postman

    • Untuk testing API

    • Alternatif: Insomnia atau Thunder Client

1.2.2 Konfigurasi Development Environment

  1. Konfigurasi VS Code

    {
      "editor.formatOnSave": true,
      "editor.defaultFormatter": "esbenp.prettier-vscode",
      "editor.tabSize": 2
    }
  2. Membuat Project Baru

    mkdir my-backend-project
    cd my-backend-project
    npm init -y
  3. 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

  1. GET

    • Mengambil data

    • Contoh: /api/users (mendapatkan daftar users)

  2. POST

    • Membuat data baru

    • Contoh: /api/users (membuat user baru)

  3. PUT/PATCH

    • Mengupdate data

    • PUT: Update keseluruhan data

    • PATCH: Update sebagian data

    • Contoh: /api/users/1 (update user dengan id 1)

  4. DELETE

    • Menghapus data

    • Contoh: /api/users/1 (hapus user dengan id 1)

1.3.3 Status Codes

  1. 2xx (Success)

    • 200: OK

    • 201: Created

    • 204: No Content

  2. 4xx (Client Error)

    • 400: Bad Request

    • 401: Unauthorized

    • 403: Forbidden

    • 404: Not Found

  3. 5xx (Server Error)

    • 500: Internal Server Error

    • 502: Bad Gateway

    • 503: Service Unavailable

1.3.4 Request & Response Format

  1. 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"
    }
  2. 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

  1. 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"
      }
    }
  2. .env

    PORT=3000
    DB_HOST=localhost
    DB_USER=root
    DB_PASSWORD=password
    DB_NAME=mydatabase
  3. .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

  1. Buat New Collection

  2. Tambah Request Baru

  3. 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

  1. Buat server Express sederhana

  2. Implementasi 4 endpoint dasar (GET, POST, PUT, DELETE)

  3. Tambahkan error handling

  4. Test menggunakan Postman

  5. 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