Back to IF3140 Sistem Basis Data
Arsitektur Dasar: Centralized & Client-Server
Questions/Cues
Apa itu Centralized System?
Apa beda single-user vs multi-user system?
Apa itu Client-Server System?
Apa peran front-end?
Apa peran back-end?
Apa interface antara front-end dan back-end?
Apa keuntungan (advantages) arsitektur Client-Server?
Reference Points
- Slides “13 - Database System Architectures.pdf” (Slide 4-7)
1. Centralized Systems (Sistem Terpusat)
Centralized System adalah arsitektur di mana seluruh database dan DBMS berjalan di satu sistem komputer (dalam satu “kotak”). Semua pemrosesan, manajemen data, dan I/O terjadi di satu tempat.
Arsitektur ini bisa berupa:
Single-User System:
Contoh: Personal Computer (PC) atau workstation.
Biasanya memiliki satu CPU, OS yang mungkin hanya mendukung satu pengguna, dan menjalankan aplikasi database lokal (misal: Microsoft Access).
Multi-User System:
Contoh: Mainframe atau Server perusahaan.
Memiliki spesifikasi lebih tinggi: banyak CPU, RAM besar, disk array.
Menjalankan OS multi-user (seperti Linux/Windows Server).
Melayani banyak pengguna yang terhubung melalui terminal (atau terminal emulator) ke server pusat. Seluruh pemrosesan tetap terjadi di server.
2. Client-Server Systems
Ini adalah evolusi dari centralized multi-user. Alih-alih menggunakan terminal “bodoh”, arsitektur ini membagi pekerjaan antara dua jenis komputer yang berbeda:
Server: Sistem back-end yang kuat, tugas utamanya adalah mengelola data.
Client: Sistem front-end yang digunakan oleh pengguna (misal: PC, laptop, smartphone).
Keduanya terhubung melalui jaringan (network).
Pembagian Fungsi: Front-End vs Back-End
Fungsionalitas database dibagi menjadi dua lapisan:
1. Front-End (Sisi Klien)
Tugas: Berinteraksi dengan pengguna.
Komponen: Tools antarmuka pengguna (GUI), forms, report-writer, aplikasi analisis, dll.
Contoh: Aplikasi perbankan di HP Anda, website e-commerce, software Tableau/PowerBI.
2. Back-End (Sisi Server)
Tugas: “Jantung” dari database.
Komponen: Query evaluation, query optimization, concurrency control, recovery system, manajemen struktur data.
Interface (Penghubung):
Klien dan Server berkomunikasi melalui sebuah standar.
Cara paling umum adalah melalui bahasa SQL.
Cara programatik adalah melalui API (Application Program Interface) seperti ODBC atau JDBC.
Keuntungan Arsitektur Client-Server
Mengganti model mainframe terpusat dengan Client-Server memberikan banyak keuntungan:
Biaya: Fungsionalitas yang lebih baik dengan biaya yang lebih rendah (menggunakan hardware komoditas).
Fleksibilitas: Mudah untuk menambah/mengurangi klien atau server (skalabilitas) dan menempatkan sumber daya di mana saja.
User Interface (UI): UI di sisi klien (PC/HP) jauh lebih baik dan interaktif daripada UI berbasis terminal.
Perawatan: Lebih mudah merawat sistem yang terpisah; server bisa di-upgrade tanpa mengganggu klien (selama interface-nya sama).
Arsitektur database berevolusi dari Centralized System (di mana semua pemrosesan terjadi di satu mesin, baik single-user seperti PC atau multi-user seperti mainframe) ke arsitektur Client-Server. Model Client-Server membagi tugas: Front-End (klien) menangani antarmuka pengguna (UI), sementara Back-End (server) fokus pada manajemen data inti (query, concurrency, recovery). Keduanya terhubung via jaringan menggunakan interface standar seperti SQL atau API (ODBC/JDBC), memberikan keuntungan besar dalam hal biaya, fleksibilitas, dan kualitas UI.
Additional Information
Pendalaman Teknis: Evolusi Arsitektur (2-Tier vs 3-Tier)
Arsitektur Client-Server yang dijelaskan di slide (Slide 6) secara teknis adalah model 2-Tier (Dua Lapis):
Tier 1: Klien (Menangani UI + Logika Aplikasi)
Tier 2: Server (Menangani Database)
Masalah: Model ini “gemuk” di klien (fat client). Setiap klien harus berisi logika bisnis. Jika ada perubahan aturan bisnis (misal: “minimum transfer naik dari 10.000 ke 15.000”), semua aplikasi klien harus di-update.
Solusi: Arsitektur modern hampir selalu menggunakan 3-Tier (Tiga Lapis):
Tier 1: Klien (Presentation Layer): “Klien tipis” (thin client) seperti browser web. Tugasnya hanya menampilkan UI.
Tier 2: Application Server (Business Logic Layer): Ini adalah server baru di tengah. Semua logika bisnis (validasi, aturan) ada di sini.
Tier 3: Database Server (Data Layer): Sama seperti back-end, tugasnya hanya menyimpan dan mengambil data.
Model 3-Tier inilah yang mendominasi pengembangan web modern. Front-end (React/Angular) adalah Tier 1, Back-end (Node.js/Python/Java) adalah Tier 2, dan Database (PostgreSQL/MongoDB) adalah Tier 3.
Sumber & Referensi Lanjutan:
Buku: Silberschatz, Korth, Sudarshan, “Database System Concepts”, 7th Ed, Chapter 20.1.
Konsep: “2-Tier vs 3-Tier Architecture”, “Fat Client vs Thin Client”.