KLP 3
KLP 3
DISUSUN OLEH:
- Calvin Bonar Sarumpet (13214013)
- Hidayatul Fajri (13214017)
- Muh Yusuf Pratama (13214007)
- Muh Fadli Gozali (132140)
2. Database
Basis Data Relasional (misalnya MySQL, PostgreSQL) : Basis
data ini menggunakan skema terstruktur dan cocok untuk aplikasi
yang hubungan datanya terdefinisi dengan baik.
Basis Data NoSQL (misalnya MongoDB, Cassandra) : Basis
data ini bersifat non-relasional dan menawarkan fleksibilitas lebih
besar dalam menangani data tidak terstruktur. Mereka sering
digunakan dalam aplikasi yang mengutamakan skalabilitas dan
kinerja.
BAB 2
INTEGRASI API DAN LAYANAN CLOUD
B. Integrasi API dan layanan cloud pada pemrograman backend dan kinerja aplikasi
mobile
Integrasi API dan Layanan Cloud dalam Pemrograman Backend
Materi ini memberikan landasan untuk pemahaman integrasi API dan layanan cloud dalam
konteks pengembangan backend serta kinerja aplikasi mobile.
2. API dalam Pemrograman Backend
- GraphQL:
- Mengizinkan klien untuk meminta hanya data yang diperlukan, menghindari over-fetching
atau under-fetching data.
- Operasi yang efisien dan fleksibel untuk kebutuhan spesifik klien.
- GraphQL Playground untuk eksplorasi dan pengujian API dengan mudah.
- Skalabilitas:
- Modularitas dari API memudahkan skalabilitas aplikasi dengan menambahkan atau
memperbarui fungsionalitas tanpa mempengaruhi seluruh sistem.
- Pendaftaran API:
- Mendapatkan kunci API atau token otentikasi dari penyedia API.
- Mendaftar dan mendapatkan akses ke endpoint API yang diperlukan.
- Menentukan Endpoint:
- Memahami struktur dan endpoint yang akan diakses untuk mendapatkan atau mengirim data.
- Menggunakan dokumentasi API untuk referensi.
- Membuat HTTP Requests:
- Menggunakan metode HTTP (GET, POST, PUT, DELETE) sesuai kebutuhan.
- Mengatur header dan payload sesuai dengan kebutuhan permintaan.
- Node.js:
- Memanfaatkan library seperti `axios` untuk melakukan HTTP requests.
- Non-blocking I/O memastikan kinerja yang baik dalam skenario asinkron.
- Python:
- Menggunakan library `requests` atau framework seperti Flask atau Django.
- Kode yang bersih dan mudah dipahami.
- Java:
- Memanfaatkan library Apache HttpClient atau framework Spring.
- Kuat dan andal dalam skala besar.
- Optimasi Fungsionalitas:
- Menambahkan fungsionalitas tanpa mengembangkan ulang seluruh sistem, meningkatkan
efisiensi pengembangan.
- Integration Testing:
- Melibatkan pengujian lintas modul untuk memastikan bahwa API berinteraksi dengan
komponen lain dengan benar.
3.6 Dokumentasi
- Dokumentasi Internal:
- Menyediakan dokumentasi yang jelas untuk tim pengembang internal agar dapat
menggunakan API dengan efektif.
- Dokumentasi Eksternal:
- Memberikan dokumentasi publik yang rinci untuk pengembang eksternal yang mungkin
menggunakan API.
- Efisiensi Biaya:
- Model pembayaran berbasis penggunaan menghindarkan biaya kapasitas tetap yang mahal.
- Ketersediaan Tinggi:
- Layanan cloud umumnya menawarkan tingkat ketersediaan tinggi dan kehandalan.
- Database Cloud:
- Layanan database yang dikelola, seperti Amazon RDS atau Azure Cosmos DB, untuk
menyimpan dan mengelola data.
4.4 Komputasi Serverless
- Fungsi Serverless:
- Pengembangan tanpa harus mengelola infrastruktur fisik atau virtual.
- Keuntungan Serverless:
- Pembayaran berbasis penggunaan, skalabilitas otomatis, dan fokus pada kode tanpa
memikirkan infrastruktur.
- Multi-Cloud Strategy:
- Penggunaan lebih dari satu penyedia cloud untuk mengurangi risiko vendor lock-in.
- Manajemen Kunci:
- Pengelolaan kunci enkripsi dengan baik untuk melindungi data sensitif.
- Penjadwalan Tugas:
- Menggunakan layanan penjadwalan untuk menjalankan tugas otomatis, seperti AWS Lambda
atau Azure Functions.
- Manajemen Ressource:
- Mengelola dan mengoptimalkan penggunaan sumber daya untuk menghindari biaya yang
tidak perlu.
- Database Cloud:
- Pemilihan database cloud seperti Firebase Realtime Database atau AWS DynamoDB untuk
menyimpan dan mengelola data aplikasi mobile.
- Keuntungan Serverless:
- Mengoptimalkan biaya dan meningkatkan kinerja dengan hanya membayar untuk sumber
daya yang digunakan.
- Manajemen File:
- Menggunakan layanan penyimpanan file cloud, seperti Amazon S3 atau Google Cloud
Storage, untuk menyimpan dan mengelola file aplikasi.
- Personalisasi Konten:
- Mengimplementasikan personalisasi konten berdasarkan data pengguna, menggunakan
layanan cloud seperti Amazon Personalize atau Google Cloud AI Platform.
5.7 Keamanan
- Pemantauan Keamanan:
- Menggunakan alat pemantauan keamanan cloud untuk mendeteksi dan merespons ancaman,
seperti AWS GuardDuty atau Azure Security Center.
- Otentikasi Multi-Faktor:
- Menerapkan otentikasi multi-faktor untuk meningkatkan keamanan akses pengguna.
- Pengiriman Pesan:
- Menggunakan layanan pengiriman pesan seperti Firebase Cloud Messaging atau Amazon
Simple Notification Service (SNS) untuk notifikasi push.
- Optimasi Ressource:
- Mengoptimalkan penggunaan sumber daya melalui layanan cloud untuk menghindari
pemborosan dan meningkatkan efisiensi.
6.1 Caching
- Caching Data:
- Menggunakan mekanisme caching untuk menyimpan data yang sering diakses secara lokal,
mengurangi latensi dan meningkatkan respons aplikasi.
- CDN untuk Caching Konten:
- Memanfaatkan Content Delivery Network (CDN) untuk menyimpan dan mendistribusikan
konten statis secara efisien, mempercepat pengambilan data.
- Cache-aside Pattern:
- Menggunakan pola cache-aside untuk menempatkan dan mengambil data dari cache secara
manual.
- Deteksi Anomali:
- Menggunakan deteksi anomali untuk memberikan peringatan dini terhadap potensi masalah
kinerja.
- Korrelasi Log:
- Menggunakan alat untuk mengaitkan dan melacak log yang berkaitan dengan permintaan atau
kejadian tertentu.