stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-10
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 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.

Tim Front-EndBangun tampilan React NativeDummy APIData contoh, siap dipanggilTim Back-EndBangun server & database asliAPI ProduksiGantikan dummy saat siap

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.

  1. Aplikasi mengirim request ke alamat URL dummy API (mis. GET /produk) — seperti mengetuk pintu dan bertanya "boleh minta daftar produk?"
  2. Server dummy API menerima permintaan dan mencari data yang sesuai dalam penyimpanannya.
  3. Server mengirim balik response berupa teks berformat JSON, berisi data yang diminta plus kode status (mis. 200 OK).
  4. 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.

FETCH (BAWAAN)
  • Sudah tersedia tanpa instalasi tambahan
  • Perlu .json() manual untuk membaca respons
  • Penanganan error butuh kode lebih panjang
AXIOS (PUSTAKA)
  • Perlu instalasi: npm install axios
  • Data JSON otomatis tersedia lewat .data
  • Penanganan error dan timeout lebih ringkas
fetch('URL').then(r => r.json())  |  axios.get('URL').then(r => r.data)

Async/Await: Menunggu Data dengan Sabar

Memanggil API butuh waktu (data melintasi internet) — kode harus menunggu tanpa membekukan seluruh aplikasi.

  1. Fungsi ditandai kata kunci async — artinya "fungsi ini boleh menunggu sesuatu selesai".
  2. Kata kunci await diletakkan di depan pemanggilan API — kode berhenti sejenak di baris itu tanpa membekukan seluruh aplikasi.
  3. Setelah data tiba, kode lanjut ke baris berikutnya seolah-olah tidak pernah menunggu.
  4. 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?

LangkahPerhitunganNilai
1. Request daftar produk (list)1 kali panggilan API200 ms
2. Jumlah produk butuh detailDitentukan desain UI5 produk
3. Total request detail (sekuensial)5 × 200 ms (dipanggil satu-per-satu)1.000 ms
4. Total waktu sekuensial200 ms + 1.000 ms1.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.

LOADING
Tampilkan spinner/teks "Memuat…" selagi menunggu response
SUKSES
Tampilkan data yang berhasil diambil ke dalam daftar
ERROR
Tampilkan pesan ramah, mis. "Gagal memuat, coba lagi"
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.

{ "id": "7", "nama": "Kopi Robusta Temanggung 250g", "harga": 35000, "stok": 42, "kategori": "Minuman" }
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)?

LangkahPerhitunganNilai
1. Total produk di dummy APIDiberikan (data contoh MockAPI)250 produk
2. Ukuran per halamanDitentukan desain UI20 produk/halaman
3. Total halaman dibutuhkan250 ÷ 20 = 12,5 → dibulatkan ke atas13 halaman
4. Total request bila semua halaman dimuat1 request/halaman × 1313 request
5. Total waktu (asumsi 150 ms/request, sekuensial)13 × 150 ms1.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.
  • 4. Tambahkan penanganan error: matikan Wi-Fi sesaat, pastikan aplikasi tidak crash.

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.