PanduanTutorial

Membuat konverter mata uang dengan React

Membuat konverter mata uang dengan React. Panduan praktis dengan kode, cache, dan metadata kesegaran.

20 Sep 2026 · 7 menit baca

Terapkan di server tanpa membocorkan kredensial serta simpan sumber dan waktu observasi.

  • Simpan kunci API hanya di server.
  • Validasi kode mata uang dan jumlah.
  • Cache respons yang berhasil.
  • Tampilkan sumber dan waktu observasi.

Langkah 1

Jalankan di server, validasi input, dan simpan metadata dari respons.

Contoh kode
import { NextRequest, NextResponse } from "next/server";export async function GET(request: NextRequest) {  const { searchParams } = request.nextUrl;  const from = searchParams.get("from")?.toUpperCase();  const to = searchParams.get("to")?.toUpperCase();  const amount = Number(searchParams.get("amount"));  if (!from || !to || !Number.isFinite(amount) || amount < 0) {    return NextResponse.json({ error: "invalid_input" }, { status: 400 });  }  const response = await fetch(    `https://api.exchangerate.dev/v1/convert/${from}/${to}/${amount}`,    {      headers: { Authorization: `Bearer ${process.env.EXCHANGERATE_API_KEY}` },      signal: AbortSignal.timeout(5000),      next: { revalidate: 60 },    },  );  return NextResponse.json(await response.json(), { status: response.status });}

Langkah 2

Contoh kode
"use client";import { FormEvent, useState } from "react";type ConversionResult = {  converted: string;  source: string;  data_updated_at: string;};export function CurrencyConverter() {  const [amount, setAmount] = useState("100");  const [result, setResult] = useState<ConversionResult | null>(null);  const [error, setError] = useState("");  const [loading, setLoading] = useState(false);  async function submit(event: FormEvent) {    event.preventDefault();    setLoading(true); setError("");    try {      const params = new URLSearchParams({ from: "USD", to: "EUR", amount });      const response = await fetch(`/api/convert?${params}`);      const body = await response.json();      if (!response.ok) throw new Error(body.error ?? "conversion_failed");      setResult(body);    } catch (caught) {      setError(caught instanceof Error ? caught.message : "conversion_failed");    } finally { setLoading(false); }  }  return <form onSubmit={submit}>    <input value={amount} onChange={(event) => setAmount(event.target.value)} inputMode="decimal" />    <button disabled={loading}>{loading ? "Converting…" : "Convert"}</button>    {error && <p role="alert">{error}</p>}    {result && <output>{result.converted} EUR · {result.source} · {result.data_updated_at}</output>}  </form>;}

Langkah 3

  • Simpan kunci API hanya di server.
  • Validasi kode mata uang dan jumlah.
  • Cache respons yang berhasil.
  • Tampilkan sumber dan waktu observasi.
Panduan

Kurs ini bersifat indikatif, bukan harga penyelesaian.

Pertanyaan

Membuat konverter mata uang dengan React

Menambahkan konversi mata uang dan kurs indikatif melalui kontrak JSON terdokumentasi.

Baca selanjutnya

Mulai dengan kunci API gratis

5.000 permintaan per bulan dengan paket gratis. Tanpa kartu kredit.

Dapatkan kunci gratis