stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-08
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 8: Perancangan dan pengujian REST API untuk mendukung fungsionalitas aplikasi
Mata Kuliah Lab Pemrograman • Bisnis Digital

Merancang & Menguji REST API

Pertemuan 8 — Perancangan dan Pengujian REST API untuk Mendukung Fungsionalitas Aplikasi

Selama ini aplikasi Anda hanya menampilkan data yang ditulis langsung di kode. Hari ini kita membuka jalan agar aplikasi bisa "berbicara" dengan server sungguhan — mengambil, mengirim, dan mengubah data lewat jembatan bernama REST API.

RPS MINGGU 9 • 2X50 MENIT

Tujuan Pembelajaran Hari Ini

Melanjutkan navigasi dan routing dari Pertemuan 7, hari ini Anda akan menyambungkan aplikasi ke sumber data nyata:

CAPAIAN 1 — RANCANG
MERANCANG REST API
Memahami struktur endpoint, method HTTP, dan format data JSON untuk merancang permintaan data yang rapi dan konsisten.
CAPAIAN 2 — UJI
MENGUJI REST API
Mampu memanggil API dari React Native serta menguji endpoint dengan Postman untuk memastikan fungsionalitas berjalan benar.
Sub-CPMK Minggu 9: mahasiswa mampu merancang dan menguji REST API untuk mendukung fungsionalitas aplikasi yang telah dibangun.
Bagian 1 dari 3
Apa Itu REST API?
Bagaimana aplikasi mobile "berbicara" dengan server untuk mengambil dan mengirim data.

Analogi: Pelayan Restoran

ANDA (KLIEN)
APLIKASI MOBILE
Anda duduk di meja dan memesan lewat pelayan — Anda tidak masuk ke dapur sendiri untuk mengambil makanan.
DAPUR (SERVER)
DATABASE & LOGIKA
Dapur menyimpan bahan dan resep (data), lalu menyiapkan pesanan sesuai permintaan yang diterima pelayan.
Glosarium — REST API: aturan standar yang mengatur bagaimana aplikasi (klien) meminta atau mengirim data ke server lewat alamat tertentu, menggunakan format permintaan dan jawaban yang konsisten — seperti pelayan yang menjembatani pesanan Anda ke dapur.

Anatomi Alamat: Endpoint

Setiap permintaan data punya alamat tujuan, disebut endpoint — mirip alamat rumah agar kurir tahu ke mana harus mengantar.

https://api.tokoumkm.com/produk?kategori=batik&limit=10
BASE URL
Alamat utama server: api.tokoumkm.com
PATH
Sumber data yang dituju: /produk
QUERY PARAM
Filter tambahan setelah tanda ?: kategori, limit

HTTP Method → Operasi CRUD

Selain alamat, setiap permintaan punya method yang menyatakan jenis aksi — mirip empat tombol dasar pada sistem kasir.

MethodAksi (CRUD)Contoh Kasus UMKM
GETMengambil data (Read)Menampilkan daftar produk batik
POSTMenambah data (Create)Mendaftarkan produk baru ke katalog
PUTMengubah data (Update)Mengubah harga produk yang sudah ada
DELETEMenghapus data (Delete)Menghapus produk yang sudah tidak dijual
Glosarium — CRUD: singkatan dari Create, Read, Update, Delete — empat operasi dasar yang hampir selalu dibutuhkan aplikasi untuk mengelola data.

Kode Status: Jawaban dari Server

Setiap kali server menjawab permintaan, ia menyertakan status code — angka tiga digit penanda hasil, seperti lampu indikator.

2XX • SUKSES
200 OK data berhasil diambil.
201 Created data baru berhasil dibuat.
4XX • KESALAHAN KLIEN
400 permintaan tidak valid.
404 data/endpoint tidak ditemukan.
5XX • KESALAHAN SERVER
500 server mengalami error internal saat memproses permintaan.

Format Data: JSON

Data yang dikirim dan diterima REST API dibungkus dalam format JSON — pasangan kunci dan nilai yang mudah dibaca manusia maupun mesin.

{
  "id": 12,
  "nama": "Kaos UMKM",
  "harga": 75000,
  "tersedia": true
}
Glosarium — JSON (JavaScript Object Notation): format pertukaran data berbasis teks yang menyusun informasi sebagai pasangan kunci: nilai di dalam kurung kurawal, dipakai hampir semua REST API modern karena ringan dan mudah diproses JavaScript.

Hitung dari Nol: Merancang Pagination

Katalog UMKM punya 47 produk. Agar tidak diambil sekaligus, data dipecah per halaman lewat query parameter page dan limit.

LangkahPerhitunganNilai
Total data produkdiketahui dari database47
Item per halaman (limit)ditentukan tim10
Total halaman dibutuhkan47 ÷ 10 = 4,7 → dibulatkan ke atas5
Offset untuk ambil halaman 3(3 − 1) × 1020
ENDPOINT HALAMAN 3
/produk?page=3&limit=10
Server melompati 20 data pertama, lalu mengambil 10 berikutnya

Coba Sendiri: Rancang Pagination API Anda

Ubah total data dan limit per halaman, lalu amati jumlah halaman dan offset tiap halaman yang dihasilkan.

Bagian 2 dari 3
Memanggil REST API dari Aplikasi
Dari rancangan endpoint di atas kertas menuju kode React Native yang benar-benar mengambil data dari server.

Mengambil Data dengan fetch

React Native menyediakan fungsi fetch untuk mengirim permintaan HTTP. Dipasangkan dengan async/await agar kode menunggu jawaban server sebelum melanjutkan.

// Fungsi async menunggu jawaban server
async function ambilProduk() {
  const respons = await fetch('https://api.tokoumkm.com/produk');
  const data = await respons.json();
  return data;
}
Glosarium — async/await: pola penulisan kode yang membuat program "menunggu" hasil suatu proses (seperti permintaan ke server) sebelum menjalankan baris berikutnya, tanpa membekukan seluruh tampilan aplikasi.

Menangani Jawaban & Kegagalan

Koneksi internet bisa putus, server bisa error — kode yang baik selalu siap menangani kegagalan dengan try/catch.

async function ambilProduk() {
  try {
    const respons = await fetch('https://api.tokoumkm.com/produk');
    if (!respons.ok) throw new Error('Gagal: ' + respons.status);
    return await respons.json();
  } catch (error) {
    console.log('Terjadi kesalahan:', error.message);
  }
}

Studi Kasus: Kirim Data Login

Berbeda dari GET, method POST mengirim data lewat body — misalnya email dan kata sandi saat pengguna login.

async function login(email, sandi) {
  const respons = await fetch('https://api.tokoumkm.com/login', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ email, sandi })
  });
  return await respons.json();
}
Glosarium — headers & body: headers adalah "amplop" berisi info tambahan tentang permintaan (mis. jenis data yang dikirim); body adalah "isi surat" berupa data sesungguhnya yang dikirim ke server.

Alur Lengkap: Permintaan → Jawaban

AplikasiReact Native (klien)REST APIendpoint + methodServer & Databasemenyimpan datafetch(GET/POST)JSON + status code
Panah penuh = permintaan (request) berjalan; panah putus-putus = jawaban (response) berisi JSON dan status code kembali ke aplikasi.
Bagian 3 dari 3
Menguji REST API
Sebelum disambungkan ke tampilan aplikasi, endpoint perlu diuji langsung — tanpa harus membuka aplikasi mobile.

Alat Uji: Postman

Postman memungkinkan Anda mengirim permintaan ke endpoint dan memeriksa jawabannya tanpa harus membuka aplikasi mobile terlebih dahulu.

1 • PILIH METHOD
Pilih GET, POST, PUT, atau DELETE sesuai aksi yang ingin diuji.
2 • ISI ENDPOINT & BODY
Masukkan alamat endpoint, lalu isi data JSON di body bila diperlukan.
3 • KIRIM & PERIKSA
Tekan Send, lalu periksa status code dan isi JSON pada jawaban.
Menguji lewat Postman lebih cepat daripada lewat aplikasi mobile karena Anda tidak perlu menunggu tampilan dibangun ulang setiap kali mencoba.

Hitung dari Nol: Success Rate Pengujian

Tim menguji 25 permintaan ke berbagai endpoint toko UMKM lewat Postman. Mari hitung tingkat keberhasilannya.

LangkahPerhitunganNilai
Total permintaan diujidiketahui dari log Postman25
Berhasil (status 200/201)dihitung dari log21
Gagal (404 + 500)3 + 14
Success rate21 ÷ 25 × 10084%
HASIL PENGUJIAN
84%
4 endpoint perlu diperbaiki sebelum rilis

Kesalahan Umum Pemula

KESALAHAN 1
Lupa menulis await sebelum fetch atau respons.json(). Akibatnya kode membaca data yang belum selesai diambil, sehingga hasilnya kosong atau error.
KESALAHAN 2
Tidak memeriksa status code sebelum memakai data jawaban. Kode langsung mengasumsikan sukses, padahal server bisa saja membalas 404 atau 500.
Ingat: selalu gunakan await pada proses fetch, dan selalu periksa respons.ok atau status code sebelum menampilkan data ke pengguna.

Latihan Praktik (30 Menit)

Rancang dan uji satu endpoint REST API untuk katalog UMKM pilihan Anda sendiri, lalu panggil dari kode React Native.

Instruksi
  • Rancang endpoint GET /produk lengkap dengan query parameter page dan limit.
  • Uji endpoint tersebut di Postman, catat status code yang muncul.
  • Tulis fungsi fetch dengan async/await dan try/catch untuk memanggilnya dari React Native.
  • Hitung success rate dari minimal 5 kali percobaan pengujian Anda sendiri.
Kerjakan berpasangan. Dosen akan berkeliling untuk memeriksa hasil pengujian Postman dan kode fetch Anda.

Rangkuman & Tugas Mandiri

MERANCANG
ENDPOINT & JSON
Alamat endpoint, method HTTP (GET/POST/PUT/DELETE), status code, dan format JSON adalah bahasa dasar REST API.
MENGUJI
FETCH & POSTMAN
fetch + async/await memanggil API dari React Native; Postman menguji endpoint sebelum disambungkan ke tampilan.
Tugas Sebelum Pertemuan 9
  • Selesaikan latihan praktik dan unggah ke repository proyek masing-masing.
  • Uji tambahan satu endpoint POST (mis. tambah produk), catat success rate-nya.