Bab 3: Pemrograman untuk Backend
3.1. Pemilihan Bahasa: Node.js, Python, PHP, Ruby, Go, dll.
Faktor Pemilihan Bahasa Backend
-
Kebutuhan Proyek: Skala aplikasi, kebutuhan performa, atau kompatibilitas.
-
Komunitas dan Dokumentasi: Kemudahan mencari solusi dan dukungan.
-
Ketersediaan Library dan Framework: Mengurangi waktu pengembangan.
Bahasa Kelebihan Kekurangan Node.js Cepat, berbasis JavaScript, cocok untuk aplikasi real-time Tidak optimal untuk komputasi berat Python Mudah dipelajari, cocok untuk data science dan AI Performa lebih lambat dibanding Go atau Java PHP Banyak digunakan untuk web development tradisional (WordPress, Laravel) Kurang populer untuk aplikasi modern Ruby Framework Rails sangat produktif Tidak ideal untuk aplikasi berskala besar Go Performa tinggi, cocok untuk aplikasi berskala besar Relatif baru, dokumentasi dan komunitas lebih kecil dibanding lainnya
3.2. Dasar-Dasar Node.js
Apa itu Node.js?
Node.js adalah runtime JavaScript berbasis Chrome V8 Engine yang digunakan untuk membangun aplikasi server-side.
Kelebihan Node.js
-
Non-Blocking I/O: Mendukung asynchronous programming, meningkatkan performa.
-
Single Language: Backend dan frontend dapat menggunakan JavaScript.
-
Ekosistem Luas: NPM menyediakan ribuan library siap pakai.
Contoh Program Sederhana:const http = require("http"); const server = http.createServer((req, res) => { res.writeHead(200, { "Content-Type": "text/plain" }); res.end("Hello, World!"); }); server.listen(3000, () => { console.log("Server running at http://localhost:3000/"); });
3.3. Framework Populer
1. Express.js (Node.js)
-
Kelebihan: Minimalis, fleksibel, cocok untuk membangun REST API.
-
Contoh:
const express = require("express"); const app = express(); app.get("/", (req, res) => res.send("Hello, Express!")); app.listen(3000, () => console.log("Server running on http://localhost:3000") );
2. Django (Python)
-
Kelebihan: Framework full-stack, keamanan bawaan, cocok untuk aplikasi skala besar.
-
Contoh:
from django.http import HttpResponse def index(request): return HttpResponse("Hello, Django!")
3. Laravel (PHP)
-
Kelebihan: Sintaks elegan, fitur lengkap untuk autentikasi, routing, dan ORM (Eloquent).
-
Contoh:
Route::get('/', function () { return "Hello, Laravel!"; });
4. Spring Boot (Java)
-
Kelebihan: Skalabilitas tinggi, cocok untuk aplikasi enterprise.
-
Contoh:
@RestController public class HelloController { @GetMapping("/") public String index() { return "Hello, Spring Boot!"; } }
3.4. Asynchronous Programming
Apa itu Asynchronous Programming?
-
Teknik pemrograman yang memungkinkan kode berjalan tanpa menunggu proses lain selesai.
-
Meningkatkan performa server dengan menangani banyak permintaan sekaligus.
Asynchronous di Node.js -
Callback: Fungsi yang dipanggil setelah tugas selesai.
fs.readFile("file.txt", (err, data) => { if (err) throw err; console.log(data.toString()); });
-
Promise: Menghindari callback hell.
fs.promises .readFile("file.txt") .then(data => console.log(data.toString())) .catch(err => console.error(err));
-
Async/Await: Menulis kode asynchronous seperti kode synchronous.
const readFile = async () => { try { const data = await fs.promises.readFile("file.txt"); console.log(data.toString()); } catch (err) { console.error(err); } };
3.5. Penggunaan Middleware
Apa itu Middleware?
Middleware adalah fungsi yang berjalan antara permintaan (request) masuk dari client dan respons (response) dari server.
Jenis-Jenis Middleware
-
Middleware Global: Digunakan untuk semua route.
-
Middleware Spesifik Route: Hanya untuk route tertentu.
-
Middleware Bawaan: Seperti
express.json()
untuk parsing body. -
Middleware Kustom: Dibuat sesuai kebutuhan.
Contoh Middleware dengan Express.js:const express = require("express"); const app = express(); // Middleware Global app.use((req, res, next) => { console.log(`${req.method} ${req.url}`); next(); }); // Route dengan Middleware Spesifik app.get( "/admin", (req, res, next) => { if (!req.query.auth) { return res.status(403).send("Forbidden"); } next(); }, (req, res) => { res.send("Welcome, Admin!"); } ); app.listen(3000, () => console.log("Server running on http://localhost:3000") );
Kesimpulan:
Bab ini membahas bahasa pemrograman, framework, dan konsep penting seperti asynchronous programming dan middleware, yang merupakan dasar pengembangan backend modern. Dengan memahami elemen-elemen ini, pengembang dapat memilih teknologi yang sesuai dan menerapkan praktik pemrograman yang efektif.