‹ Daftar slidePertemuan 10: Penggunaan dummy API untuk simulasi pertukaran data dalam aplikasi
Program Studi Bisnis Digital • FEB
Laboratorium Pemrograman
Pertemuan 10 — Penggunaan Dummy API untuk Simulasi Pertukaran Data dalam Aplikasi
Sebelum backend sungguhan siap, aplikasi tetap bisa "hidup" — berkat data palsu yang berperilaku seperti data asli.
RPS MINGGU 11 • 2 × 50 MENIT
Tujuan Pembelajaran Hari Ini
Setelah pertemuan ini, Anda diharapkan mampu menggunakan dummy API untuk mensimulasikan pertukaran data dalam aplikasi React Native, tanpa bergantung pada backend yang sudah jadi.
KONSEP
3
Lapisan Pemahaman
Memahami apa itu dummy API, kapan dipakai dalam alur kerja tim, dan bagaimana bentuk data JSON yang dipertukarkan.
PRAKTIK
✓
Integrasi Nyata
Mampu mengambil data dari dummy API memakai fetch/axios, menampilkannya di layar, serta menangani status loading dan error.
Kemampuan ini adalah jembatan langsung menuju pertemuan berikutnya: mengganti dummy API dengan API dan database sungguhan untuk operasi CRUD.
Di Mana Posisi Kita Sekarang?
Dummy API adalah jembatan antara desain API/database (minggu lalu) dan integrasi backend sungguhan (dua minggu lagi).
P8–P9 (LALU)
Rancang REST API & struktur database
P10 (HARI INI)
Dummy API
Simulasi pertukaran data tanpa backend nyata
P11 (BERIKUTNYA)
Ganti dummy dengan CRUD & database sungguhan
Analogi: dummy API seperti manekin di etalase toko — bentuknya persis pakaian asli, cukup untuk latihan memajang dan menata, sebelum barang produksi masal tiba.
Bagian 1 dari 3
Mengapa Dummy API?
Konsep dasar, alasan penggunaan dalam alur kerja tim, dan layanan-layanan yang tersedia gratis.
Apa itu Dummy API?
Dummy API (atau mock API) adalah layanan API tiruan yang mengembalikan data contoh berformat JSON, dengan struktur dan perilaku menyerupai API sungguhan — tanpa perlu server backend yang benar-benar dibangun.
Analoginya: contoh soal ujian tahun lalu. Formatnya identik dengan soal ujian sesungguhnya, cukup untuk latihan menjawab, walau isinya bukan soal yang akan benar-benar keluar.
CIRI-CIRI DUMMY API
Alamat URL nyata — bisa dipanggil lewat internet seperti API sungguhan.
Format respons JSON — sama persis strukturnya dengan API produksi.
Data statis/acak — bukan data bisnis asli, hanya untuk simulasi dan latihan.
Kapan Dummy API Dipakai dalam Proyek?
Dalam tim pengembangan aplikasi, front-end dan back-end sering dikerjakan secara paralel — dummy API membuat keduanya tidak saling menunggu.
Saat tim back-end selesai, aplikasi tinggal mengganti alamat URL dummy API dengan URL API produksi — struktur kode tidak perlu diubah total.
Layanan Dummy API yang Populer
Anda tidak perlu membangun dummy API sendiri — banyak layanan gratis siap pakai untuk latihan.
JSONPLACEHOLDER
Data contoh siap pakai: pengguna, postingan, komentar — tanpa perlu daftar akun
MOCKAPI
Bisa membuat struktur data sendiri (mis. daftar produk toko) lewat antarmuka web
JSON-SERVER
Dijalankan di komputer sendiri dari satu file JSON — cocok untuk latihan offline
Untuk latihan hari ini, kita memakai MockAPI agar Anda bisa membuat struktur data sendiri, misalnya daftar produk UMKM dengan kolom nama, harga, dan stok — mirip data yang dijual di Tokopedia atau Shopee.
Anatomi Pertukaran Data: Request & Response
Setiap kali aplikasi "berbicara" dengan dummy API, terjadi pertukaran dua arah yang selalu mengikuti pola yang sama.
Aplikasi mengirim request ke alamat URL dummy API (mis. GET /produk) — seperti mengetuk pintu dan bertanya "boleh minta daftar produk?"
Server dummy API menerima permintaan dan mencari data yang sesuai dalam penyimpanannya.
Server mengirim balik response berupa teks berformat JSON, berisi data yang diminta plus kode status (mis. 200 OK).
Aplikasi menerima JSON tersebut, mengubahnya jadi objek JavaScript, lalu menampilkannya di layar.
Bagian 2 dari 3
Mengambil Data ke React Native
Dari konsep ke kode: memanggil dummy API dan menampilkan hasilnya di layar aplikasi.
Dua Cara Memanggil API: fetch vs axios
React Native menyediakan fetch() bawaan, sementara axios adalah pustaka tambahan yang lebih ringkas.
Memanggil API butuh waktu (data melintasi internet) — kode harus menunggu tanpa membekukan seluruh aplikasi.
Fungsi ditandai kata kunci async — artinya "fungsi ini boleh menunggu sesuatu selesai".
Kata kunci await diletakkan di depan pemanggilan API — kode berhenti sejenak di baris itu tanpa membekukan seluruh aplikasi.
Setelah data tiba, kode lanjut ke baris berikutnya seolah-olah tidak pernah menunggu.
Blok try...catch membungkus proses ini untuk menangkap kegagalan (mis. koneksi internet putus).
Menggabungkan dengan useState & useEffect
Data dari dummy API perlu disimpan di state agar tampilan otomatis diperbarui saat data tiba.
const [produk, setProduk] = useState([]);
useEffect(() => {
async function ambilData() {
const res = await fetch('https://mockapi.io/produk');
const data = await res.json();
setProduk(data);
}
ambilData();
}, []);
Array kosong [] di akhir useEffect berarti "jalankan kode ini satu kali saja, saat komponen pertama kali muncul di layar" — bukan berulang setiap kali tampilan me-render ulang.
Hitung dari Nol: Sekuensial vs Paralel
Aplikasi menampilkan daftar produk, lalu memanggil detail untuk 5 produk unggulan. Berapa total waktu tunggu pengguna?
Langkah
Perhitungan
Nilai
1. Request daftar produk (list)
1 kali panggilan API
200 ms
2. Jumlah produk butuh detail
Ditentukan desain UI
5 produk
3. Total request detail (sekuensial)
5 × 200 ms (dipanggil satu-per-satu)
1.000 ms
4. Total waktu sekuensial
200 ms + 1.000 ms
1.200 ms (1,2 detik)
5. Total waktu paralel (Promise.all)
200 ms + 200 ms (5 request serentak)
400 ms (0,4 detik)
HASIL
3× lebih cepat
1.200 ms ÷ 400 ms = 3 — memanggil API secara paralel jauh menghemat waktu tunggu pengguna
Coba Sendiri: Bandingkan Waktu Sekuensial vs Paralel
Ubah jumlah request dan waktu tiap request, lalu amati selisih total waktu tunggu sekuensial versus paralel.
Menangani Status Loading & Error
Pengguna butuh umpan balik visual saat data sedang dimuat atau saat terjadi kegagalan koneksi.
Aplikasi yang tidak menangani ketiga status ini akan terlihat "diam" atau bahkan seperti macet saat koneksi lambat — pengalaman buruk yang sering dikeluhkan pengguna aplikasi e-commerce saat sinyal lemah di daerah.
Bagian 3 dari 3
Praktik & Studi Kasus
Menerapkan seluruh konsep pada skenario aplikasi katalog produk mini, lengkap dengan latihan.
Studi Kasus: Katalog Produk UMKM Mini
Skenario: aplikasi katalog untuk UMKM lokal yang mengambil daftar produknya dari dummy API MockAPI.
Struktur JSON di atas dirancang meniru data produk sungguhan — begitu API produksi siap, front-end tinggal ganti alamat URL, karena bentuk datanya sudah cocok sejak awal.
Hitung dari Nol: Kebutuhan Request untuk Paginasi
Katalog UMKM punya 250 produk. Berapa banyak permintaan API dibutuhkan bila ditampilkan bertahap (paginasi)?
Langkah
Perhitungan
Nilai
1. Total produk di dummy API
Diberikan (data contoh MockAPI)
250 produk
2. Ukuran per halaman
Ditentukan desain UI
20 produk/halaman
3. Total halaman dibutuhkan
250 ÷ 20 = 12,5 → dibulatkan ke atas
13 halaman
4. Total request bila semua halaman dimuat
1 request/halaman × 13
13 request
5. Total waktu (asumsi 150 ms/request, sekuensial)
13 × 150 ms
1.950 ms (≈ 2 detik)
INSIGHT
13 request
Lebih baik dimuat bertahap per halaman daripada 1 request raksasa berisi 250 produk sekaligus
Kesalahan Umum Pemula & Cara Menghindarinya
KESALAHAN
Lupa await, sehingga data yang dipakai masih "kosong"
Tidak menangani catch saat koneksi gagal
Memanggil API berulang tanpa array kosong [] di useEffect
PRAKTIK BAIK
Selalu bungkus pemanggilan API dengan try...catch
Tampilkan status loading sejak permintaan dikirim
Uji aplikasi dalam kondisi koneksi lambat/terputus
Latihan Laboratorium Hari Ini
Kerjakan langsung di komputer Anda selama sisa waktu pertemuan.
INSTRUKSI
1. Buat struktur data di MockAPI: minimal 15 produk UMKM (nama, harga, stok, kategori).
2. Buat komponen React Native yang memanggil dummy API dengan fetch di dalam useEffect.
3. Tampilkan daftar produk memakai FlatList, lengkap dengan status loading.
Kumpulkan tautan repositori kode di akhir sesi lab. Dosen/asisten akan berkeliling membantu jika Anda menemui kendala.
Ringkasan & Menuju Pertemuan Berikutnya
HARI INI
Dummy API sebagai simulasi pertukaran data: definisi, fetch/axios, async/await, loading/error, paginasi
P11 — BERIKUTNYA
Integrasi GUI dengan komponen Python & operasi CRUD ke database sungguhan
Kode pemanggilan API yang Anda tulis hari ini tidak akan dibuang — pola fetch, async/await, dan penanganan loading/error akan dipakai ulang saat berpindah ke API produksi minggu depan.