/**
 * Tahap pipeline beserta biaya unit simulasi untuk memroses satu item.
 * Angka biaya adalah model tetap — bukan hasil pengukuran jam dinding —
 * sehingga seluruh perhitungan performa pada Bagian 4 bersifat deterministik.
 */
public enum TahapPipeline {
    BACA("baca", 2),
    VALIDASI("validasi", 5),
    TRANSFORMASI("transformasi", 12),
    AGREGASI("agregasi", 5),
    TULIS("tulis", 2);

    private final String label;
    private final long biayaUnit;

    TahapPipeline(String label, long biayaUnit) {
        this.label = label;
        this.biayaUnit = biayaUnit;
    }

    /** Nama tahap untuk laporan profil. */
    public String label() {
        return label;
    }

    /** Biaya unit simulasi per satu item yang diproses tahap ini. */
    public long biayaUnit() {
        return biayaUnit;
    }
}
