Lewati ke konten utama
Versi: 1.1.0

Unit

The View Unit API provides detailed information about a specific unit of measurement from BPS (Badan Pusat Statistik) Indonesia. Units of measurement provide standardized quantitative scales and metrics used across BPS statistical data collection, analysis, and reporting. They ensure consistency, comparability, and proper interpretation of numerical data.

Common units include Rupiah (currency), Orang (persons), Ton (metric tons), Persen (percent), Hektar (hectares), and Kilogram (kilograms).

Parameters

ParameterTypeDescription
idintRequired: The unique numerical identifier of the unit
domainStringRequired: The domain (region) code for the request
langDataLanguageOptional: Language preference (default: DataLanguage.id)

Examples

1. Basic Unit Retrieval

// Retrieve a specific unit of measurement
final unit = await StadataFlutter.instance.view.unit(
id: 1,
domain: '0000',
lang: DataLanguage.id,
);

if (unit != null) {
print('Unit ID: ${unit.id}');
print('Unit Name: ${unit.title}');
} else {
print('Unit not found');
}

2. Display Variable with Its Unit

// Get a variable and look up its unit details
final variable = await StadataFlutter.instance.view.variable(
id: 145,
domain: '0000',
);

if (variable != null) {
print('Variable: ${variable.title}');
print('Unit (from variable): ${variable.unit}');
}

// Alternatively, browse available units
final units = await StadataFlutter.instance.list.units(
domain: '0000',
variableID: 145,
);

print('Units for variable 145:');
for (final u in units.data) {
print('[${u.id}] ${u.title}');
}

3. Build a Unit Reference Dictionary

// Build a lookup dictionary of all available units
final units = await StadataFlutter.instance.list.units(
domain: '0000',
);

final unitLookup = <int, String>{};
for (final u in units.data) {
unitLookup[u.id] = u.title;
}

// Use the lookup to annotate variable values
print('Unit Reference:');
unitLookup.forEach((id, title) {
print(' [$id] $title');
});

Error Handling

try {
final unit = await StadataFlutter.instance.view.unit(
id: 1,
domain: '0000',
lang: DataLanguage.id,
);

if (unit != null) {
print('Unit: ${unit.title}');
} else {
print('Unit not found');
}

} on UnitException catch (e) {
print('Unit error: ${e.message}');

} on ApiException catch (e) {
print('API error: ${e.message}');

} on ApiKeyNotFoundException catch (e) {
print('Authentication required: ${e.message}');

} catch (e) {
print('Unexpected error: $e');
}

Properties (UnitData)

PropertyTypeDescription
idintUnique identifier for the unit of measurement (unit_id in API)
titleStringDescriptive name of the unit in Indonesian (unit in API response)