Domain
API Domain menyediakan akses ke wilayah administratif (domain) yang tersedia dalam sistem data BPS (Badan Pusat Statistik) Indonesia. Domain ini merepresentasikan struktur organisasi geografis pengumpulan data statistik Indonesia, mulai dari tingkat nasional hingga tingkat provinsi dan kabupaten/kota.
Memahami domain sangat penting untuk mengakses data BPS, karena sebagian besar endpoint API lainnya memerlukan kode domain untuk menentukan data wilayah geografis mana yang ingin Anda ambil. Setiap domain sesuai dengan kantor BPS regional yang mengumpulkan dan mengelola data statistik untuk wilayah masing-masing.
Jenis Domain yang Tersedia
Fungsionalitas domain menyediakan beberapa opsi filter untuk mengambil jenis wilayah administratif tertentu:
Opsi Jenis Domain
| Jenis | Deskripsi | Kasus Penggunaan |
|---|---|---|
DomainType.all | Semua domain yang tersedia | Mendapatkan daftar lengkap semua kantor BPS |
DomainType.province | Hanya domain tingkat provinsi | Mengakses data statistik provinsi |
DomainType.regency | Semua domain tingkat kabupaten/kota | Mengakses data statistik pemerintah daerah |
DomainType.regencyByProvince | Kabupaten/kota dalam provinsi tertentu | Memfilter domain lokal berdasarkan provinsi |
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
type | DomainType | Jenis domain yang akan diambil (default: DomainType.all) |
provinceCode | String? | Kode provinsi untuk memfilter domain (wajib diisi jika type = DomainType.regencyByProvince) |
Contoh
1. Mendapatkan Semua Domain yang Tersedia
// Mengambil semua domain dari BPS
final domainResult = await StadataFlutter.instance.list.domains(
type: DomainType.all,
);
final daftarDomain = domainResult.data;
final paginasi = domainResult.pagination;
// Menampilkan informasi paginasi
print('Halaman Saat Ini: ${paginasi.page}');
print('Total Halaman: ${paginasi.pages}');
print('Jumlah Data di Halaman Ini: ${paginasi.count}');
print('Per Halaman: ${paginasi.perPage}');
print('Total: ${paginasi.total}');
print('------------------------');
// Menampilkan data domain yang diambil
for (final domain in daftarDomain) {
print('ID Domain: ${domain.id}'); // Contoh: 0000 (Nasional), 3200 (Jawa Barat)
print('Nama: ${domain.name}'); // Contoh: Indonesia, Jawa Barat
print('URL: ${domain.url}'); // Contoh: https://www.bps.go.id, https://jabar.bps.go.id
print('------------------------');
}
2. Mendapatkan Hanya Domain Provinsi
// Mengambil hanya domain tingkat provinsi
final hasilProvinsi = await StadataFlutter.instance.list.domains(
type: DomainType.province,
);
// Mengakses kantor BPS provinsi
for (final provinsi in hasilProvinsi.data) {
print('Kode Provinsi: ${provinsi.id}'); // Contoh: 3200, 3300, 7300
print('Nama Provinsi: ${provinsi.name}'); // Contoh: Jawa Barat, Jawa Tengah, Sulawesi Selatan
print('URL Kantor BPS: ${provinsi.url}');
print('------------------------');
}
3. Mendapatkan Kabupaten/Kota dalam Provinsi Tertentu
// Mengambil kabupaten/kota di Jawa Barat (kode: 3200)
final hasilKabupaten = await StadataFlutter.instance.list.domains(
type: DomainType.regencyByProvince,
provinceCode: '3200', // Kode provinsi Jawa Barat
);
// Mengakses kantor BPS kabupaten/kota
for (final kabupaten in hasilKabupaten.data) {
print('Kode Kabupaten: ${kabupaten.id}'); // Contoh: 3201, 3202, 3271
print('Nama Kabupaten: ${kabupaten.name}'); // Contoh: Kab. Bogor, Kab. Sukabumi, Kota Bogor
print('URL Kantor BPS: ${kabupaten.url}');
print('------------------------');
}
Properti (DomainEntity)
| Properti | Tipe | Deskripsi |
|---|---|---|
id | String | Pengidentifikasi unik untuk domain (kode BPS) |
name | String | Nama domain (wilayah) |
url | String | URL website kantor BPS untuk domain ini |
Kode Domain Umum
Berikut adalah beberapa kode domain yang sering digunakan untuk referensi:
Tingkat Nasional dan Wilayah Khusus
| Kode Domain | Nama | Tingkat |
|---|---|---|
0000 | Indonesia | Nasional |