Penggunaan Middleware dalam Pengembangan Aplikasi Backend
1. Latar Belakang
Middleware hadir sebagai solusi dengan berperan sebagai lapisan perantara antara request pengguna dan logika utama aplikasi. Middleware dapat menangani autentikasi, otorisasi, validasi data, keamanan, dan pencatatan aktivitas secara terpusat, sehingga logika inti aplikasi tetap bersih dan terstruktur. Dengan penerapan middleware, aplikasi menjadi lebih aman, mudah dikembangkan, dan mudah dipelihara, sehingga pengembang dapat membangun sistem yang andal dan terorganisir.
2. Alat dan Bahan
a. Perangkat Lunak
- Web Browser (Chrome/Edge)
- Web Server (XAMPP)
- Text Editor (VS Code)
b. Perangkat Keras
- Laptop / Komputer.
3. Pembahasan
3.1 Pengertian Middleware
Middleware adalah komponen perantara dalam sebuah aplikasi yang berada di antara request (permintaan) dari user dan response (jawaban) dari sistem. Middleware berfungsi untuk memproses, memeriksa, atau memodifikasi request dan response sebelum diteruskan ke bagian utama aplikasi.
Sederhananya:
Middleware = penjaga + penyaring di tengah alur aplikasi
Analogi kehidupan sehari-hari:
Bayangkan kamu masuk ke gedung perkantoran.
- Kamu datang ke pintu depan (request dari user)
- Satpam memeriksa kartu identitas dan tujuan kamu (middleware)
- Jika lolos, kamu boleh masuk ke ruangan tujuan (controller / fitur aplikasi)
- Jika tidak lolos, kamu ditolak
Satpam itu adalah middleware karena dia tidak mengerjakan pekerjaan utama kantor, tetapi menentukan apakah kamu boleh lanjut atau tidak.
3.2 Arsitektur Middleware
Komponen utama dalam arsitektur middleware:
1. Client
Client adalah pihak yang mengirimkan request ke sistem, seperti browser atau aplikasi mobile. Request ini biasanya berupa HTTP request.
2. Web Server
Web server menerima request dari client dan meneruskannya ke aplikasi. Contohnya Apache atau Nginx.
3. Middleware Layer
Middleware layer adalah kumpulan middleware yang dieksekusi secara berurutan. Setiap middleware memiliki tanggung jawab khusus, seperti:
- Autentikasi
- Otorisasi
- Validasi data
- Logging
- Keamanan
4. Application Core (Controller / Service)
Bagian ini berisi logika utama aplikasi, seperti pengolahan data, perhitungan, dan akses database.
5. Response Handler
Setelah proses selesai, sistem mengembalikan response ke client melalui jalur yang sama.
3.3 Cara Kerja Middeware
Berikut bagaimana cara kerja middleware:
1. User mengirim request ke aplikasi
Request bisa berupa permintaan halaman, pengiriman data, atau pemanggilan API.
2. Request diterima oleh server
Server meneruskan request ke aplikasi backend.
3. Request masuk ke middleware pertama
Middleware mulai bekerja sesuai urutan yang telah ditentukan.
4. Middleware melakukan pengecekan
Middleware dapat mengecek autentikasi, otorisasi, validasi data, atau keamanan.
5. Keputusan middleware
Jika lolos → request diteruskan ke middleware berikutnya
Jika gagal → request dihentikan dan response dikirim
6. Request mencapai controller
Setelah semua middleware lolos, request diproses oleh controller atau logika utama aplikasi.
7. Aplikasi menghasilkan response
Hasil proses dikembalikan sebagai response.
8. Response melewati middleware (opsional)
Middleware dapat memodifikasi response sebelum dikirim ke user.
9. Response dikirim ke user
User menerima hasil akhir dari aplikasi.
3.4 Jenis - Jenis Middleware
1. Database Middleware
Memungkinkan aplikasi berinteraksi dengan berbagai sistem basis data seperti MySQL, PostgreSQL, atau MongoDB melalui antarmuka standar.
2. Message-Oriented Middleware (MOM)
Memfasilitasi komunikasi antar aplikasi secara asinkron melalui sistem antrian pesan, contohnya RabbitMQ, Kafka, dan ActiveMQ.
3. Remote Procedure Call (RPC) Middleware
Memungkinkan aplikasi menjalankan fungsi pada server jarak jauh seolah-olah fungsi tersebut berada secara lokal. Contoh implementasinya adalah gRPC.
4. Object Middleware
Mengelola komunikasi antar objek dalam sistem terdistribusi, seperti CORBA.
5. Transaction Middleware
Digunakan dalam sistem keuangan untuk memastikan transaksi berlangsung aman dan konsisten.
6. Web Middleware
Berperan dalam aplikasi berbasis web, misalnya Express.js pada Node.js atau middleware dalam framework Django untuk Python.
3.5 Fungsi Utama Middleware
Middleware memiliki peran penting dalam mengatur alur kerja aplikasi. Fungsi utama middleware adalah sebagai pengontrol dan penyaring request sebelum diproses oleh logika utama sistem. Dengan adanya middleware, berbagai proses pendukung dapat dipisahkan dari kode inti aplikasi sehingga sistem menjadi lebih terstruktur dan mudah dikelola.
Secara umum, fungsi utama middleware meliputi:
1. Melakukan autentikasi pengguna, yaitu memastikan bahwa pengguna telah login sebelum mengakses halaman atau fitur tertentu.
2. Melakukan otorisasi pengguna dengan mengecek role atau hak akses, sehingga pengguna hanya dapat mengakses fitur yang sesuai dengan kewenangannya.
3. Melakukan validasi data yang dikirim oleh user sebelum diproses lebih lanjut oleh aplikasi.
4. Menjaga keamanan sistem, seperti mencegah akses ilegal, serangan CSRF, dan penyalahgunaan request.
5. Mencatat aktivitas atau log request untuk keperluan monitoring dan audit sistem.
6. Memodifikasi request atau response, misalnya menambahkan header tertentu atau mengubah format data.
3.6 Kesimpulan
Middleware merupakan komponen penting dalam arsitektur aplikasi modern yang berfungsi sebagai lapisan perantara antara request pengguna dan logika utama sistem. Dengan middleware, proses seperti autentikasi, otorisasi, validasi, dan keamanan dapat dikelola secara terpusat tanpa mengganggu kode inti aplikasi. Penerapan middleware yang baik akan membuat sistem lebih aman, rapi, dan mudah dikembangkan, serta membantu pengembang dalam menjaga konsistensi dan kualitas aplikasi secara keseluruhan.
4. Daftar Pustaka
CodePolitan. (2024, Juni 28). Apa itu middleware? Pengertian, contoh dan fungsinya. CodePolitan. https://www.codepolitan.com/blog/apa-itu-middleware-pengertian-contoh-dan-fungsinya (codepolitan.com)
RevoU. (n.d.). Middleware. RevoU. https://www.revou.co/id/kosakata/middleware (revou.co)
Amazon Web Services. (n.d.). What is middleware? AWS. https://www.aws.amazon.com/id/what-is/middleware/ (Amazon Web Services, Inc.)
Telkom University BSE. (n.d.). Peran middleware dalam rekayasa perangkat lunak modern. BSE Telkom University. https://bse.telkomuniversity.ac.id/peran-middleware-dalam-rekayasa-perangkat-lunak-modern/
0 Komentar