Bab 2: Fundamental Backend Development
2.1. HTTP dan REST API
Apa itu HTTP?
HTTP (Hypertext Transfer Protocol) adalah protokol komunikasi yang memungkinkan transfer data antara client (browser) dan server.
-
Metode HTTP:
GET
: Untuk mengambil data.POST
: Untuk mengirim atau membuat data baru.PUT
: Untuk memperbarui data secara penuh.PATCH
: Untuk memperbarui sebagian data.DELETE
: Untuk menghapus data.
Apa itu REST API?
REST (Representational State Transfer) adalah arsitektur API yang menggunakan HTTP untuk komunikasi antara client dan server.
-
Prinsip REST:
-
Berbasis Sumber Daya (Resource-based): Setiap entitas seperti
user
atauproduct
dianggap sebagai sumber daya. -
Stateless: Setiap permintaan tidak tergantung pada permintaan sebelumnya.
-
Menggunakan HTTP Status Code: Contoh,
200 OK
,404 Not Found
,500 Internal Server Error
.
Contoh Endpoint REST API:Endpoint HTTP Method Aksi /api/products
GET Mengambil semua produk /api/products/:id
GET Mengambil produk spesifik /api/products
POST Menambahkan produk baru /api/products/:id
PUT Memperbarui produk /api/products/:id
DELETE Menghapus produk
-
2.2. CRUD Operations
CRUD adalah singkatan dari Create, Read, Update, Delete, yang merupakan operasi dasar pada backend.
Operasi | HTTP Method | Contoh SQL Query | Fungsi |
---|---|---|---|
Create | POST | INSERT INTO users ... | Menambahkan data baru |
Read | GET | SELECT * FROM users | Mengambil data |
Update | PUT / PATCH | UPDATE users SET ... WHERE id = ? | Memperbarui data |
Delete | DELETE | DELETE FROM users WHERE id = ? | Menghapus data |
Contoh Implementasi Node.js dengan Express: |
app.post("/users", (req, res) => {
/* Create user */
});
app.get("/users/:id", (req, res) => {
/* Get user by ID */
});
app.put("/users/:id", (req, res) => {
/* Update user */
});
app.delete("/users/:id", (req, res) => {
/* Delete user */
});
2.3. Autentikasi dan Otorisasi (JWT, OAuth2)
Autentikasi vs Otorisasi
-
Autentikasi: Memverifikasi identitas pengguna.
-
Otorisasi: Memastikan pengguna memiliki izin untuk mengakses sumber daya tertentu.
JWT (JSON Web Token)
-
Apa itu JWT?
JWT adalah token berbentuk string yang digunakan untuk autentikasi stateless. Token ini memuat tiga bagian:- Header: Berisi informasi tentang algoritma enkripsi.
- Payload: Berisi data (misal:
id
,email
). - Signature: Untuk memverifikasi keaslian token.
-
Alur Kerja JWT:
-
Client login dan server menghasilkan token.
-
Client menyimpan token dan menggunakannya untuk setiap permintaan.
-
Server memverifikasi token sebelum memberikan akses.
OAuth2
-
-
Apa itu OAuth2?
OAuth2 adalah protokol otorisasi yang memungkinkan aplikasi pihak ketiga untuk mengakses data tanpa membagikan kredensial pengguna. -
Alur Kerja:
- Pengguna login melalui penyedia identitas (misalnya Google).
- Penyedia identitas memberikan token akses ke aplikasi.
- Aplikasi menggunakan token untuk mengakses sumber daya pengguna.
2.4. Basis Data Relasional vs Non-Relasional
Aspek | Basis Data Relasional | Basis Data Non-Relasional |
---|---|---|
Struktur Data | Berbasis tabel dengan baris dan kolom | Dokumen, key-value, grafik, dll. |
Contoh | MySQL, PostgreSQL, SQLite | MongoDB, Firebase, Redis |
Keuntungan | Konsistensi tinggi, cocok untuk data terstruktur | Skalabilitas tinggi, fleksibel |
Kelemahan | Kurang fleksibel untuk data tidak terstruktur | Konsistensi data lebih rendah |
2.5. Pengelolaan Server
Konsep Dasar
-
Server: Komputer yang menangani permintaan dari client.
-
Hosting: Menyediakan tempat untuk aplikasi di server.
Alat dan Teknik Populer
-
Web Server: Nginx, Apache.
-
Containerization: Docker, untuk memudahkan deployment.
-
Cloud Platforms: AWS, Azure, Google Cloud, Heroku.
Praktik Terbaik
- Optimasi Performa: Gunakan caching untuk mengurangi waktu respons.
- Monitoring: Pantau performa aplikasi dengan tools seperti Grafana.
- Keamanan: Terapkan firewall dan HTTPS.
Kesimpulan:
Bab ini memberikan fondasi tentang HTTP, REST API, operasi CRUD, autentikasi, jenis basis data, dan manajemen server. Dengan memahami elemen-elemen ini, pembaca siap untuk mengeksplorasi konsep yang lebih kompleks di bab berikutnya.