HPP (Harga Pokok Penjualan) adalah angka paling menentukan di laporan keuangan apotek: salah hitung HPP, maka laba kotor, margin, dan harga jual ikut salah semua. Masalahnya, harga beli obat berubah-ubah tiap faktur — kadang naik, kadang ada diskon, kadang ada bonus barang. Ini cara menghitungnya dengan benar, empat rumus dari yang paling sederhana sampai yang paling presisi.

Rumus 1 — HPP periodik (metode fisik)

HPP = Persediaan Awal + Pembelian Bersih − Persediaan Akhir

Metode "hitung mundur" tradisional: nilai stok awal ditambah semua pembelian, dikurangi nilai stok akhir hasil opname. Contoh: stok awal Rp 60 juta + pembelian Rp 70 juta − stok akhir Rp 65 juta = HPP Rp 65 juta.

Kelemahannya fatal: barang hilang, rusak, atau kedaluwarsa ikut "tersembunyi" di dalam HPP — Anda tidak pernah tahu berapa kerugian sebenarnya. Misal dari HPP Rp 65 juta itu ternyata Rp 2 juta adalah barang hilang dan ED yang tak pernah terjual: laporan Anda menyebutnya "harga pokok penjualan", padahal sebagian adalah kerugian yang seharusnya diusut. Metode ini juga sepenuhnya bergantung pada ketelitian opname — opname meleset, HPP ikut meleset. Hanya layak untuk apotek yang belum punya sistem.

Rumus 2 — HPP per unit (dasar semua perhitungan)

HPP per Unit = (Harga Faktur − Diskon) ÷ Isi Kemasan

Contoh: 1 box Amoxicillin isi 100 tablet, harga faktur Rp 45.000, diskon 5%. HPP per box = 45.000 × 0,95 = Rp 42.750 → HPP per tablet = Rp 427,5.

Jebakan #1: diskon faktur. Kalau diskon 5% itu tidak dipotong dan HPP dicatat Rp 450/tablet, margin Anda terlihat lebih tipis dari kenyataan — dan saat menaikkan harga jual "mengejar margin", harga Anda kalah bersaing.

Jebakan #2: PPN. Apotek PKP yang bisa mengkreditkan PPN masukan → HPP tanpa PPN. Apotek non-PKP → PPN faktur ikut jadi HPP karena memang beban Anda. Konsistenkan satu aturan.

Jebakan #3: bonus barang. Beli 10 box bonus 1 box gratis? HPP per unit dihitung dari total bayar dibagi total barang yang diterima. Dengan harga faktur Rp 45.000/box: bayar 10 × 45.000 = Rp 450.000 untuk 11 box → HPP per box = Rp 40.909, bukan Rp 45.000. Kalau bonus dicatat sebagai "barang gratis HPP nol" atau tidak dicatat sama sekali, stok dan margin dua-duanya kacau.

Jebakan #4: kemasan bertingkat. Obat yang dijual per box, per strip, dan per tablet harus punya konversi isi yang benar di sistem (1 box = 10 strip = 100 tablet). Salah isi kemasan — misalnya tercatat 1 box = 10 tablet — membuat HPP per tablet melenceng sepuluh kali lipat, dan itu kesalahan input yang paling sering ditemukan saat audit data apotek.

Rumus 3 — Rata-rata tertimbang (saat harga beli berubah)

HPP Rata-rata = (Qty₁×Harga₁ + Qty₂×Harga₂) ÷ (Qty₁ + Qty₂)

Contoh kasus: stok Paracetamol 200 tablet @Rp 300 (batch lama). Datang faktur baru 300 tablet @Rp 360.

BatchQtyHPP/unitNilai
Stok lama200Rp 300Rp 60.000
Faktur baru300Rp 360Rp 108.000
Rata-rata tertimbang500Rp 336Rp 168.000

HPP baru = 168.000 ÷ 500 = Rp 336/tablet — bukan Rp 330 (rata-rata biasa), karena qty tiap batch berbeda. Perhatikan: kalau Anda tetap jual Rp 400/tablet, margin turun dari 25% jadi 16% tanpa terasa. Inilah kenapa harga jual perlu ditinjau tiap kali HPP naik — cara menghitung harga jual baru dari target margin ada di artikel margin vs markup obat.

Catatan: rata-rata tertimbang adalah metode penilaian yang paling umum dipakai sistem apotek di Indonesia karena harga beli obat naik-turun dalam rentang kecil dan frekuensi tinggi. Alternatifnya, FIFO murni menilai barang keluar persis pada harga batch masuk pertama — hasil akhirnya mirip untuk barang yang perputarannya cepat, dan yang jauh lebih penting daripada memilih metodenya adalah konsisten memakai satu metode dari waktu ke waktu.

Rumus 4 — HPP penjualan (COGS) per transaksi

HPP Transaksi = Σ (Qty Terjual × HPP Batch yang Keluar)

Sistem modern mencatat HPP per batch yang benar-benar keluar (FEFO — batch ED terdekat duluan, seperti dibahas di panduan FEFO). Jual 250 tablet dari kasus di atas saat batch lama masih ada: 200 tablet memakai HPP Rp 300 + 50 tablet memakai HPP Rp 360 = 60.000 + 18.000 = Rp 78.000 — presisi sampai ke rupiahnya, dan nilainya dikunci saat transaksi sehingga laporan laba tidak berubah-ubah walau harga beli bulan depan naik.

Kata kuncinya "dikunci". Tanpa penguncian, laporan laba bulan Januari bisa ikut berubah saat harga beli naik di bulan Maret — dan Anda tidak akan pernah bisa mempercayai laporan historis sendiri. Konsekuensinya: kalau ada HPP yang terlanjur salah (misal faktur diinput tanpa diskon), perbaikannya harus lewat mekanisme koreksi yang tercatat, bukan mengedit diam-diam.

Retur pembelian: jangan lupa menariknya kembali

Retur barang ke distributor mengurangi pembelian bersih pada harga beli barang itu — bukan pada harga rata-rata terbaru. Kalau retur dicatat asal-asalan (atau tidak dicatat), nilai persediaan menggelembung dan HPP periodik ikut kacau. Sistem per-batch menangani ini otomatis: retur mengeluarkan qty dari batch asalnya dengan HPP batch itu juga.

Mana yang sebaiknya dipakai apotek?

  • Masih manual / Excel: rumus periodik + opname rutin — sadari batasannya.
  • Pakai sistem POS: HPP per batch (rumus 4) dengan rata-rata tertimbang saat penerimaan — otomatis, dan selisih barang hilang/ED terlihat terpisah dari HPP.
  • Apapun metodenya: disiplin potong diskon faktur & konsisten soal PPN.

Tanya jawab singkat

  • Barang ED atau rusak masuk HPP? Idealnya tidak — catat sebagai kerugian persediaan tersendiri supaya kelihatan berapa uang yang hangus karena ED, terpisah dari harga pokok barang yang benar-benar terjual. Di metode periodik, sayangnya keduanya melebur.
  • HPP di sistem beda dengan harga faktur terakhir — mana yang benar? Bisa dua-duanya: HPP rata-rata tertimbang memang tidak sama dengan harga faktur terakhir bila masih ada stok lama berharga beda. Yang perlu dicurigai adalah selisih yang besar — biasanya jejak faktur lama yang diinput tanpa diskon atau salah isi kemasan.
  • Berapa dampak HPP salah ke laba? Satu banding satu: HPP tercatat lebih tinggi Rp 5 juta = laba kotor terlapor lebih rendah Rp 5 juta. Alur lengkapnya dari HPP ke laba bersih ada di artikel rumus laporan laba rugi apotek.

HPP otomatis per batch di Farmalite

Terima faktur → HPP per unit terhitung (termasuk diskon & bonus), harga jual bisa auto-menyesuaikan target margin, dan tiap penjualan mengunci HPP batch yang keluar. Ada juga menu Koreksi HPP kalau ada salah input — perbaikan tercatat, bukan diedit diam-diam.

💬 Konsultasi & demo gratis via WhatsApp