Teknologi
Back-End dan Arsitektur Web
Back
End
Back-end adalah bagian dari pengembangan aplikasi
yang bekerja di sisi server untuk menangani logika bisnis, pengelolaan data,
dan komunikasi antar server. Sederhananya, back-end bertanggung jawab atas
segala proses yang terjadi di belakang layar untuk mendukung fungsi aplikasi
agar berjalan dengan baik dan sesuai permintaan pengguna.
Contoh peran back-end dalam aplikasi web:
- Mengelola
data yang disimpan dalam database.
- Memastikan
keamanan data melalui autentikasi pengguna.
- Memproses
permintaan pengguna, seperti menyimpan atau menampilkan data tertentu.
Perbedaan antara Front-End dan Back-End:
- Front-End:
Bagian aplikasi yang terlihat dan dapat digunakan langsung oleh pengguna
(disebut juga client-side).
- Back-End:
Bagian aplikasi yang bekerja di server dan tidak terlihat oleh pengguna.
Ini termasuk server, database, dan API.
Komponen Utama Teknologi Back-End
- Server:
Tempat penyimpanan file aplikasi dan data yang mengelola permintaan klien.
- Database:
Tempat penyimpanan data aplikasi (misalnya, data pengguna, produk,
transaksi).
- API:
Interface yang memungkinkan komunikasi antara front-end dan back-end.
- Server-Side
Programming: Bahasa pemrograman yang digunakan untuk menulis kode di
sisi server.
Bahasa Pemrograman untuk Back-End
- PHP:
Sering digunakan di berbagai aplikasi web, terutama CMS seperti WordPress.
- Python
(Django, Flask): Memiliki sintaks yang mudah dipelajari, dengan Django
sebagai framework populer.
- JavaScript
(Node.js): Memungkinkan JavaScript untuk berjalan di server dengan
performa yang baik.
- Ruby
(Ruby on Rails): Fokus pada kemudahan dan produktivitas pengembang.
- Java:
Banyak digunakan di aplikasi perusahaan besar dan berbasis Android.
- C#
(.NET Core): Sangat cocok untuk aplikasi berbasis Windows dan sering
digunakan dalam skala besar.
Contoh Framework
Back-End
- Express.js
(Node.js): Minimalis, fleksibel, dan mendukung aplikasi server-side
JavaScript.
- Django
(Python): Framework "baterai terpasang" dengan banyak fitur
bawaan.
- Laravel
(PHP): Memiliki fitur lengkap untuk pengembangan aplikasi web PHP
dengan struktur yang rapi.
- Spring
Boot (Java): Memudahkan pengembangan aplikasi Java dengan konfigurasi
minimal.
- ASP.NET
Core (C#): Dikembangkan oleh Microsoft dan mendukung aplikasi
cross-platform.
Database yang Sering Digunakan
- SQL
Databases: MySQL, PostgreSQL, SQL Server – berorientasi pada data
terstruktur.
- NoSQL
Databases: MongoDB, Cassandra – cocok untuk data tidak terstruktur,
cocok untuk aplikasi besar atau real-time.
Contoh Studi Kasus
E-commerce Platform
- Fitur
Utama: Pengelolaan produk, keranjang belanja, dan transaksi.
- Bahasa
& Framework: PHP dengan Laravel atau Python dengan Django.
- Database:
MySQL untuk data produk dan pengguna.
- API:
RESTful API untuk menghubungkan front-end dengan back-end.
Peranan
Back-End dalam Arsitektur Web
Dalam sebuah aplikasi web, back-end memiliki peranan yang
penting untuk menjalankan berbagai logika dan alur yang kompleks. Berikut
adalah beberapa peran utama dari back-end dalam arsitektur web:
a. Mengelola Data dengan Database
Back-end terhubung dengan database untuk menyimpan dan
mengambil data yang dibutuhkan oleh aplikasi. Contoh data yang sering dikelola
adalah:
- Informasi
pengguna (username, password, profil)
- Data
produk atau layanan (dalam aplikasi e-commerce)
- Konten
artikel atau berita (dalam portal berita)
Teknologi database yang umum digunakan:
- SQL
Databases: Seperti MySQL, PostgreSQL, yang menyimpan data dalam bentuk
tabel.
- NoSQL
Databases: Seperti MongoDB, yang menyimpan data dalam bentuk dokumen
JSON.
b. Proses Logika Bisnis
Logika bisnis adalah aturan dan proses yang mengatur
bagaimana aplikasi bekerja. Misalnya:
- Menghitung
harga akhir setelah diskon dan pajak dalam aplikasi e-commerce.
- Memverifikasi
status pembayaran sebelum menampilkan informasi layanan yang aktif.
c. Otentikasi dan Keamanan Data
Back-end bertanggung jawab atas keamanan data pengguna
dengan menerapkan sistem autentikasi, seperti:
- Token-based
Authentication (menggunakan JSON Web Token atau JWT).
- OAuth
untuk akses terhubung ke aplikasi pihak ketiga (misalnya login dengan akun
Google). Ini memastikan bahwa hanya pengguna yang sah yang dapat mengakses
data dan fungsi tertentu.
d. Menyediakan API untuk Berkomunikasi dengan Front-End
Back-end menyediakan Application Programming Interface
(API), yaitu perantara yang memungkinkan front-end untuk mengambil atau
mengirim data ke server. API biasanya disusun dalam bentuk:
- RESTful
API: Menggunakan HTTP untuk komunikasi dan sering kali bekerja dengan
data JSON.
- GraphQL:
Membolehkan klien untuk menentukan jenis data yang dibutuhkan dalam satu
permintaan.
Arsitektur
Web dan Hubungan antara Front-End dan Back-End
Arsitektur web adalah kerangka yang mendefinisikan
cara komponen back-end dan front-end berinteraksi dalam sebuah aplikasi web.
Arsitektur ini melibatkan:
- Client
(Browser): Di mana pengguna mengakses aplikasi (front-end).
- Server:
Di mana logika aplikasi dijalankan dan data diolah (back-end).
- Database:
Penyimpanan data aplikasi.
Interaksi antara Front-End dan Back-End:
Front-end mengirim permintaan ke back-end untuk mengambil
atau memanipulasi data. Proses ini terjadi dalam beberapa langkah, yaitu:
- Permintaan
(Request) dari Front-End ke Back-End
Ketika pengguna melakukan tindakan, seperti mengklik tombol “Lihat Produk”, front-end akan mengirim permintaan HTTP ke back-end. - Pemrosesan
di Back-End
Back-end menerima permintaan tersebut dan menjalankan logika bisnis yang sesuai, misalnya mengambil daftar produk dari database. - Pengiriman
Balasan (Response) dari Back-End ke Front-End
Setelah data diproses, back-end mengirim respons berisi data (misalnya daftar produk) kembali ke front-end untuk ditampilkan ke pengguna.
Contoh jenis permintaan HTTP yang digunakan:
- GET:
Untuk mengambil data.
- POST:
Untuk menambah data baru.
- PUT/PATCH:
Untuk memperbarui data.
- DELETE:
Untuk menghapus data.
Contoh Skenario Interaksi Back-End dan Front-End
Misalkan kita memiliki aplikasi e-commerce sederhana dengan
fitur pencarian produk. Ketika pengguna mengetik kata kunci produk dan menekan
tombol "Cari", berikut langkah yang terjadi:
- Front-End:
- Front-end
mengambil input kata kunci dari pengguna.
- Front-end
mengirim permintaan (request) GET ke endpoint API di back-end,
misalnya /api/products?query=keyword.
- Back-End:
- Back-end
menerima permintaan, memeriksa apakah query ada di database.
- Jika
data produk ditemukan, back-end mengirim hasilnya kembali ke front-end
dalam format JSON.
- Kembali
ke Front-End:
- Front-end
menerima data produk dari back-end.
- Front-end
menampilkan daftar produk ke pengguna.