Aplikasi web untuk menarik data Kamus Farmasi dan Alat Kesehatan (KFA) dari SATUSEHAT Kemkes RI. Mendukung KFA v2 dan KFA v3 (ALKES) dengan dual-theme UI (terang/gelap).
- Tarik Data — Tarik data Obat, Alkes, dan BMHP dari KFA SATUSEHAT.
- KFA v2 — Mendukung semua tipe (obat, alkes, bmhp) via
GET /kfa-v2/products/all. - KFA v3 / ALKES — Mendukung alkes & bmhp via
POST /kfa-v3/alkes/products. - Mode Tarik — Pilih tarik semua data atau hanya data terbaru (1 halaman).
- Pencarian & Filter — Cari data dengan filter per kolom.
- Export Excel — Export data ke file
.xlsx. - Dual Theme — Toggle tema terang/gelap, tersimpan di localStorage.
- PHP 8.1+
- MySQL 8.0
- Composer
- Client ID & Client Secret SATUSEHAT
import-kfa/
├── assets/
│ ├── css/
│ │ └── style.css # Stylesheet dual-theme
│ └── js/
│ └── main.js # JavaScript (theme toggle, alert auto-dismiss)
├── partials/
│ ├── header.php # <head>, meta, CSS, buka <body>
│ ├── navbar.php # Navbar + toggle tema + dropdown API version
│ └── footer.php # Tutup main, footer, JS
├── src/
│ ├── auth.php # OAuth2 token (get/refresh)
│ ├── config.php # Konfigurasi, env, versi API
│ ├── database.php # Koneksi DB, query helper
│ ├── export.php # Export ke Excel (PhpSpreadsheet)
│ ├── functions.php # Normalize data, helpers
│ └── kfa_api.php # Fetch dari KFA v2 & v3
├── sql/
│ └── schema.sql # Struktur database
├── storage/
│ ├── .gitkeep
│ └── exports/ # File export Excel
├── views/ # (cadangan)
├── .env.example # Contoh konfigurasi (copy ke .env)
├── .gitignore
├── composer.json
├── composer.lock
├── docker-compose.yml # Docker setup (app + MySQL)
├── Dockerfile
├── index.php # Dashboard
├── fetch.php # Halaman tarik data
├── list.php # Data list + search + filter
├── detail.php # Detail item (modal/full page)
├── export.php # Form export Excel
├── login.php # Konfigurasi credentials
├── CHANGELOG.md
└── README.md
git clone https://github.com/your-username/import-kfa.git
cd import-kfa
composer installcp .env.example .envIsi .env dengan credentials SATUSEHAT dan konfigurasi database:
KFA_CLIENT_ID=your_client_id
KFA_CLIENT_SECRET=your_client_secret
DB_HOST=localhost
DB_PORT=3306
DB_NAME=kfa_db
DB_USER=root
DB_PASS=Penting: File
.envberisi credentials dan tidak boleh ikut di-commit ke repository (sudah ada di.gitignore).
Jalankan sql/schema.sql ke MySQL:
mysql -u root -p kfa_db < sql/schema.sqlphp -S localhost:8080 -t .docker compose up -dAkses di http://localhost:8081.
Buka http://localhost:8080/login.php, masukkan Client ID dan Client Secret dari portal SATUSEHAT.
- Dashboard (
index.php) — Lihat statistik data & riwayat penarikan. - Tarik Data (
fetch.php) — Pilih tipe data, mode (semua/terbaru), mulai tarik. - Data List (
list.php) — Cari, filter, sortir data. - Export Excel (
export.php) — Download data ke Excel. - Ganti API — Dropdown navbar untuk pilih KFA v2 atau v3.
- Ganti Tema — Klik tombol sun/moon di navbar.
| Versi | Method | Endpoint | Tipe Data |
|---|---|---|---|
| KFA v1 | GET |
/kfa/farmalkes-price-jkn |
Hanya harga JKN (tidak support bulk fetch) |
| KFA v2 | GET |
/kfa-v2/products/all |
Obat, Alkes, BMHP |
| KFA v3 | POST |
/kfa-v3/alkes/products |
Alkes, BMHP |
Dikembangkan oleh IT RSU Martha Friska Multatuli © 2026.
Open source — bebas digunakan, dimodifikasi, dan dikembangkan oleh pihak lain.