Cara Menghitung Persentase Perubahan, Selisih, dan Kenaikan
Perhitungan persentase muncul di mana saja: pendapatan naik 23%, penggunaan CPU turun 15%, satu angka berapa persen dari angka lain. Rumusnya sederhana, tapi terminologinya membingungkan — "persentase perubahan" dan "selisih persentase" artinya berbeda, dan salah paham menghasilkan angka yang salah.
Persentase perubahan (naik atau turun)
Gunakan ini saat membandingkan nilai lama dengan nilai baru. Hasilnya positif untuk kenaikan, negatif untuk penurunan.
Persentase perubahan = ((baru - lama) / |lama|) × 100
Contoh:
- Pendapatan naik dari Rp 80.000.000 ke Rp 100.000.000 → ((100.000.000 - 80.000.000) / 80.000.000) × 100 = +25%
- Jumlah pengguna turun dari 500 ke 400 → ((400 - 500) / 500) × 100 = -20%
function percentageChange(oldValue, newValue) {
return ((newValue - oldValue) / Math.abs(oldValue)) * 100;
}
console.log(percentageChange(80000, 100000).toFixed(2)); // 25.00
console.log(percentageChange(500, 400).toFixed(2)); // -20.00
def percentage_change(old, new):
return ((new - old) / abs(old)) * 100
print(f"{percentage_change(80000, 100000):.2f}%") # 25.00%
print(f"{percentage_change(500, 400):.2f}%") # -20.00%
Rumus Excel:
=(B1-A1)/ABS(A1)*100
Di mana A1 adalah nilai lama dan B1 adalah nilai baru.
Kenapa pakai |lama| (nilai absolut)? Jika nilai lama negatif (misalnya rugi yang berubah jadi untung), nilai absolut menghasilkan tanda yang benar. Tanpa itu, tandanya akan salah.
Selisih persentase (antara dua nilai, tanpa arah)
Gunakan ini saat membandingkan dua nilai tanpa ada "sebelum" dan "sesudah" — seperti membandingkan dua toko, dua negara, atau dua produk. Hasilnya selalu positif.
Selisih persentase = (|nilai1 - nilai2| / ((nilai1 + nilai2) / 2)) × 100
Contoh: Toko A menjual 120 unit, Toko B menjual 80 unit. Selisih persentasenya:
(|120 - 80| / ((120 + 80) / 2)) × 100 = (40 / 100) × 100 = 40%
function percentageDifference(a, b) {
return (Math.abs(a - b) / ((a + b) / 2)) * 100;
}
console.log(percentageDifference(120, 80).toFixed(2)); // 40.00
def percentage_difference(a, b):
return (abs(a - b) / ((a + b) / 2)) * 100
print(f"{percentage_difference(120, 80):.2f}%") # 40.00%
Kapan menggunakan mana:
- "Penjualan naik dari Q1 ke Q2" → persentase perubahan (ada sebelum dan sesudah)
- "Wilayah A vs Wilayah B" → selisih persentase (simetris, tanpa arah)
Persentase dari total
Persentase = (bagian / total) × 100
Contoh:
- 45 dari 200 siswa lulus → (45 / 200) × 100 = 22,5%
- Rp 3.500.000 terpakai dari anggaran Rp 15.000.000 → (3.500.000 / 15.000.000) × 100 = 23,3%
function percentageOf(part, total) {
return (part / total) * 100;
}
console.log(percentageOf(45, 200).toFixed(1)); // 22.5
console.log(percentageOf(3500, 15000).toFixed(1)); // 23.3
def percentage_of(part, total):
return (part / total) * 100
print(f"{percentage_of(45, 200):.1f}%") # 22.5%
print(f"{percentage_of(3500, 15000):.1f}%") # 23.3%
Excel:
=A1/B1*100
Atau format sel sebagai Persentase (Excel mengalikan dengan 100 otomatis):
=A1/B1
Mencari nilai awal dari persentase
Anda tahu hasil setelah kenaikan atau penurunan persentase, dan perlu menemukan nilai aslinya.
Nilai asal = hasil / (1 + persentase/100) ← setelah kenaikan
Nilai asal = hasil / (1 - persentase/100) ← setelah penurunan
Contoh: Produk seharga Rp 130.000 setelah markup 30%. Harga aslinya:
130.000 / (1 + 30/100) = 130.000 / 1,30 = Rp 100.000
function originalAfterIncrease(result, percent) {
return result / (1 + percent / 100);
}
function originalAfterDecrease(result, percent) {
return result / (1 - percent / 100);
}
console.log(originalAfterIncrease(130, 30)); // 100
console.log(originalAfterDecrease(85, 15)); // 100
Poin persentase vs persentase
Keduanya berbeda dan sering membingungkan.
Jika suku bunga naik dari 2% ke 5%:
- Perubahan dalam poin persentase adalah 3 pp (5 - 2 = 3).
- Persentase perubahannya adalah 150% ((5 - 2) / 2 × 100 = 150%).
Keduanya benar — yang diukur berbeda. "Poin persentase" adalah selisih aritmatika absolut antara dua persentase. "Persentase perubahan" adalah perubahan relatif.
Perubahan persentase majemuk
Perubahan persentase tidak dijumlahkan — tapi digabungkan. Jika sesuatu naik 10% lalu turun 10%, hasilnya tidak sama dengan semula.
100 × 1,10 × 0,90 = 99
function compoundChange(percentages) {
return percentages.reduce((acc, p) => acc * (1 + p / 100), 1) - 1;
}
// +10% lalu -10%
console.log((compoundChange([10, -10]) * 100).toFixed(2)); // -1.00%
// +20% tiga tahun berturut-turut
console.log((compoundChange([20, 20, 20]) * 100).toFixed(2)); // 72.80%
Poin utama
- Persentase perubahan:
((baru - lama) / |lama|) × 100— gunakan saat ada sebelum dan sesudah. - Selisih persentase:
(|a - b| / rata-rata) × 100— gunakan saat membandingkan dua nilai simetris. - Persentase dari total:
(bagian / total) × 100— kasus yang paling umum. - Poin persentase dan persentase bukan hal yang sama.
- Perubahan persentase bersifat majemuk — kenaikan 10% diikuti penurunan 10% menghasilkan -1%.