Laporan Penjualan Perusahaan Dagang: HPP, Retur, dan Margin Kotor
Blog/Tutorial Excel & Sheets/Laporan Penjualan Perusahaan Dagang: HPP, Retur, dan Margin Kotor

Laporan Penjualan Perusahaan Dagang: HPP, Retur, dan Margin Kotor

BimaBima
·19 Juli 2025·11 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Laporan penjualan perusahaan dagang punya tiga lapis: penjualan bruto dikurangi retur dan potongan jadi penjualan bersih, penjualan bersih dikurangi harga pokok penjualan jadi laba kotor, lalu laba kotor dibagi penjualan bersih jadi margin kotor. HPP-nya dihitung dari persediaan awal ditambah pembelian bersih dikurangi persediaan akhir. Semua lapisnya bisa disusun di Excel pakai SUMIFS dan satu tabel transaksi.

Laporan penjualan perusahaan dagang yang bener punya tiga lapis: penjualan bersih, harga pokok penjualan, dan laba kotor. Kalau laporanmu berhenti di angka omzet, kamu belum tau untung atau nggak.

Ini keluhan yang sering aku denger dari pemilik toko: omzet naik 18%, tapi duit di rekening nggak nambah.

Jawabannya hampir selalu di dua tempat. HPP yang naik lebih cepat dari harga jual, atau retur yang nggak pernah dicatat.

Aku bakal susun laporannya dari nol pakai data CV Sinar Terang, distributor alat tulis di Bekasi dengan 42 SKU.

Apa bedanya laporan penjualan perusahaan dagang sama perusahaan jasa?

Perusahaan dagang beli barang jadi lalu jual lagi tanpa ngubah bentuknya, jadi laporannya wajib punya baris harga pokok penjualan. Perusahaan jasa nggak punya barang, jadi nggak ada HPP dan nggak ada persediaan. Baris HPP inilah yang bikin struktur laporan dagang beda dan lebih panjang.

Urutan barisnya begini:

Penjualan bruto
(-) Retur penjualan
(-) Potongan penjualan
= Penjualan bersih
(-) Harga pokok penjualan (HPP)
= Laba kotor
(-) Beban operasional
= Laba usaha

Artikel ini fokus sampai baris laba kotor, karena di situ semua keputusan soal harga dan produk diambil.

Gimana cara ngitung penjualan bersih?

Penjualan bersih adalah penjualan bruto dikurangi retur penjualan dan potongan penjualan. Retur adalah barang yang balik dari pembeli. Potongan adalah diskon yang kamu kasih setelah faktur terbit, termasuk potongan tunai karena pembeli bayar cepat.

Contoh CV Sinar Terang, bulan Juni 2025:

KomponenNilaiRumus Excel
Penjualan brutoRp 412.800.000=SUMIFS(Data[nilai];Data[jenis];"jual")
Retur penjualanRp 18.640.000=SUMIFS(Data[nilai];Data[jenis];"retur_jual")
Potongan penjualanRp 9.310.000=SUMIFS(Data[nilai];Data[jenis];"potongan")
Penjualan bersihRp 384.850.000=B2-B3-B4

Retur 4,52% dari penjualan bruto. Ini angka yang layak dipelototin.

Setelah dipecah per alasan, 61% retur CV Sinar Terang datang dari satu penyebab: salah kirim ukuran kertas. Bukan barang rusak, bukan pembeli berubah pikiran. Salah pilih SKU waktu packing.

Perbaikan yang dilakukan cuma satu, nambahin foto ukuran di label rak gudang. Retur bulan berikutnya turun ke 2,71%, atau hemat Rp 7,4 juta.

Kalau kamu belum familiar sama SUMIFS, penjelasan argumennya ada di halaman fungsi SUMIFS.

Gimana cara ngitung HPP perusahaan dagang?

HPP dihitung dari persediaan awal ditambah pembelian bersih dikurangi persediaan akhir. Pembelian bersih adalah pembelian kotor ditambah ongkos angkut masuk, dikurangi retur pembelian dan potongan pembelian.

Susunannya di Excel:

Persediaan awal (1 Juni)          Rp 156.400.000

Pembelian                         Rp 298.200.000
(+) Ongkos angkut masuk           Rp   7.840.000
(-) Retur pembelian               Rp  11.300.000
(-) Potongan pembelian            Rp   5.960.000
= Pembelian bersih                Rp 288.780.000

Barang tersedia dijual            Rp 445.180.000
(-) Persediaan akhir (30 Juni)    Rp 118.900.000
= HPP                             Rp 326.280.000

Tiga hal yang sering salah di bagian ini.

Ongkos angkut masuk nambah HPP, ongkos angkut keluar nggak. Biaya kirim barang dari supplier ke gudangmu itu bagian dari harga perolehan barang. Biaya kirim dari gudangmu ke pembeli itu beban operasional, letaknya di bawah laba kotor.

Persediaan akhir harus dari hitung fisik, bukan dari catatan. Selisih antara catatan dan hitungan fisik itu informasi penting, biasanya soal barang hilang atau rusak.

Metode penilaian persediaan harus konsisten. Kalau kamu pakai rata-rata tertimbang bulan ini, pakai itu terus. Ganti metode di tengah jalan bikin margin kamu naik-turun palsu.

Gimana cara ngitung margin kotor per produk?

Laba kotor adalah penjualan bersih dikurangi HPP. Margin kotor adalah laba kotor dibagi penjualan bersih, dinyatakan dalam persen. Angka totalnya berguna buat lihat kesehatan usaha, tapi angka per produknya yang bisa dipakai ambil keputusan.

Total CV Sinar Terang Juni 2025:

BarisNilai
Penjualan bersihRp 384.850.000
HPPRp 326.280.000
Laba kotorRp 58.570.000
Margin kotor15,22%

Sekarang pecah per produk. Struktur sheet yang aku pakai:

KolomIsiRumus
AKode SKUmanual
BNama produkmanual
CQty terjual=SUMIFS(Trx[qty];Trx[sku];$A2;Trx[jenis];"jual")
DQty retur=SUMIFS(Trx[qty];Trx[sku];$A2;Trx[jenis];"retur_jual")
EQty bersih=C2-D2
FHarga jual rata-rata=SUMIFS(Trx[nilai];Trx[sku];$A2;Trx[jenis];"jual")/C2
GHarga pokok per unitdari kartu stok
HLaba kotor=E2*(F2-G2)
IMargin kotor=IFERROR((F2-G2)/F2;0)

Kolom I dibungkus IFERROR biar nggak keluar pesan pembagian nol buat produk yang nggak laku sama sekali bulan itu.

Contoh kasus: 6 SKU teratas CV Sinar Terang

ProdukQty bersihHarga jualHarga pokokLaba kotorMargin
Kertas HVS A4 70gr4.120 rimRp 48.500Rp 43.900Rp 18.952.0009,5%
Tinta printer isi ulang1.860 btlRp 32.000Rp 21.400Rp 19.716.00033,1%
Pulpen gel pak isi 122.940 pakRp 26.000Rp 19.800Rp 18.228.00023,8%
Map plastik6.180 pcsRp 4.200Rp 3.150Rp 6.489.00025,0%
Kertas HVS F4 70gr1.740 rimRp 52.000Rp 49.600Rp 4.176.0004,6%
Buku tulis 58 lbr3.310 pcsRp 5.800Rp 5.900-Rp 331.000-1,7%

Empat hal yang keluar dari tabel ini.

Buku tulis dijual rugi. Harga pokoknya Rp 5.900, dijual Rp 5.800. Ini terjadi karena harga beli naik bulan Mei dan daftar harga jual nggak ikut disesuaikan. Kerugiannya kecil, Rp 331.000, tapi ini bocor yang jalan terus tiap bulan.

Kertas HVS A4 nyumbang omzet terbesar dengan margin paling tipis kedua. Rp 199,8 juta omzet, laba kotornya cuma Rp 18,9 juta. Produk ini penting buat narik pelanggan, tapi jangan diandelin buat untung.

Tinta printer nyumbang laba kotor terbesar dari omzet nomor empat. Rp 59,5 juta omzet ngasih Rp 19,7 juta laba. Ini produk yang layak didorong.

Margin gabungan 15,22% nyembunyiin rentang 4,6% sampai 33,1%. Kalau CV Sinar Terang cuma lihat angka total, dua masalah di atas nggak akan ketahuan.

Setelah harga buku tulis dinaikin ke Rp 6.500 dan tinta printer dikasih posisi di katalog depan, margin gabungan Juli naik ke 17,08%. Dari penjualan bersih yang hampir sama, laba kotornya nambah Rp 7,1 juta.

Buat ngurutin produk berdasarkan laba kotor tanpa ngurutin manual tiap bulan, pivot table lebih cepat dari sortir biasa.

Cara nyusun sheet-nya biar nggak perlu diulang tiap bulan

Struktur file yang aku pakai cuma empat sheet.

  1. Sheet Transaksi. Satu baris satu transaksi. Kolom: tanggal, no_faktur, jenis (jual, retur_jual, potongan, beli, retur_beli), sku, qty, harga_satuan, nilai. Ubah jadi Table pakai Ctrl + T, kasih nama Trx.
  2. Sheet Master SKU. Kode, nama, kategori, harga pokok terkini, harga jual daftar.
  3. Sheet Persediaan. Stok awal dan stok akhir per SKU per bulan, hasil hitung fisik.
  4. Sheet Laporan. Semua rumus SUMIFS narik dari tiga sheet di atas.

Kuncinya di kolom jenis. Karena semua jenis transaksi ada di satu tabel dengan penanda, kamu cuma perlu ganti kriteria SUMIFS buat dapetin komponen yang beda. Nggak perlu sheet terpisah buat penjualan dan pembelian.

Tambahin dropdown bulan di sheet Laporan pakai data validation, lalu masukin sel bulan itu ke kriteria SUMIFS. Sekali disetel, laporan bulan berikutnya cuma butuh ganti dropdown.

Kesalahan umum

Retur dicatat sebagai biaya

Retur ngurangin penjualan, bukan nambah beban. Kalau kamu catat sebagai biaya, angka penjualan bersihmu ketinggian dan margin kotornya salah.

Ongkir keluar dimasukin ke HPP

Ongkos kirim ke pembeli itu beban operasional, posisinya di bawah laba kotor. Yang masuk HPP cuma ongkir dari supplier ke gudangmu.

Persediaan akhir pakai angka catatan

Hitung fisik minimal sebulan sekali. Di CV Sinar Terang, selisih hitung fisik bulan Juni Rp 2,8 juta, dan itu ketahuan karena ada barang rusak di gudang yang belum dihapus dari catatan.

Harga pokok nggak pernah diupdate

Ini yang bikin buku tulis dijual rugi. Harga beli naik, daftar harga jual nggak ikut. Set jadwal review harga tiap kali harga beli bergerak lebih dari 5%.

Cuma lihat margin total

Margin 15,22% keliatan aman sampai kamu tau ada produk yang minus di dalamnya. Selalu pecah per SKU minimal buat 20 produk teratas.

FAQ

Rumus HPP perusahaan dagang itu apa?

HPP dihitung dari persediaan awal ditambah pembelian bersih dikurangi persediaan akhir. Pembelian bersih sendiri adalah pembelian kotor ditambah ongkos angkut masuk, dikurangi retur pembelian dan potongan pembelian. Rumus ini beda sama perusahaan manufaktur yang harus ngitung biaya produksi dulu. Perusahaan dagang cuma beli barang jadi lalu jual lagi, jadi HPP-nya murni soal harga beli dan pergerakan stok.

Retur penjualan ngurangin omzet atau nambah biaya?

Ngurangin omzet. Retur penjualan dicatat sebagai pengurang penjualan bruto buat dapetin penjualan bersih, bukan dimasukin ke kelompok biaya. Alasannya, retur berarti transaksinya batal sebagian, jadi pendapatannya emang nggak pernah jadi hakmu. Kalau kamu catat retur sebagai biaya, angka omzetmu bakal keliatan lebih besar dari yang sebenernya dan margin kotormu jadi salah.

Margin kotor berapa persen yang dianggap sehat?

Sangat beda per jenis usaha, jadi jangan pakai satu angka buat semua. Toko sembako dan distributor bahan pokok sering main di 8-15 persen karena volumenya besar. Toko pakaian dan aksesoris bisa 40-60 persen. Yang lebih berguna dari patokan umum adalah tren margin kamu sendiri dari bulan ke bulan. Kalau margin turun sementara omzet naik, ada yang bocor di harga beli atau diskon.

Kenapa margin kotor per produk perlu dihitung terpisah?

Karena margin gabungan nyembunyiin produk yang rugi. Toko bisa punya margin total 14 persen sambil punya dua produk yang marginnya minus, tertutup produk lain yang marginnya tinggi. Begitu kamu pecah per produk, kelihatan produk mana yang layak didorong dan mana yang harus dinaikin harganya. Ini juga dasar buat mutusin produk apa yang berhenti distok.

Persediaan akhir dihitung pakai harga beli yang mana kalau harganya berubah?

Ada tiga metode umum: FIFO, rata-rata tertimbang, dan identifikasi khusus. FIFO nganggap barang yang masuk duluan keluar duluan, jadi persediaan akhir dinilai pakai harga beli terbaru. Rata-rata tertimbang bikin satu harga rata-rata dari semua pembelian. Buat toko kecil, rata-rata tertimbang paling gampang dijalanin di Excel. Yang penting metodenya konsisten dipakai tiap periode, jangan ganti-ganti.

Penutup

Tiga langkah yang bikin laporanmu langsung kepake:

  1. Tambahin baris retur dan potongan sebelum baris penjualan bersih. Di CV Sinar Terang, retur 4,52% dan 61% penyebabnya cuma salah ambil SKU.
  2. Hitung HPP pakai rumus persediaan awal ditambah pembelian bersih dikurangi persediaan akhir, dan hitung fisik stoknya beneran.
  3. Pecah margin per SKU. Angka total 15,22% nyembunyiin produk yang dijual rugi.

Kalau kamu mau mulai dari kerangka yang udah jadi, ambil template laporan penjualan Excel lalu tambahin sheet persediaan. Definisi resmi tiap komponen laporan laba rugi bisa kamu cek di Standar Akuntansi Keuangan yang diterbitkan IAI.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

INDEX MATCH Google Sheets: Lookup Lebih Fleksibel dari VLOOKUP (2026)
Tutorial Excel & Sheets
19 Juli 2026•9 menit baca

INDEX MATCH Google Sheets: Lookup Lebih Fleksibel dari VLOOKUP (2026)

INDEX MATCH gabung dua fungsi buat lookup yang bisa nyari ke kiri dan nggak gampang rusak. Ini alasan banyak analis pindah dari VLOOKUP.

BimaBima
SUMPRODUCT Google Sheets: Hitung Berbobot Tanpa Ribet (2026)
Tutorial Excel & Sheets
18 Juli 2026•8 menit baca

SUMPRODUCT Google Sheets: Hitung Berbobot Tanpa Ribet (2026)

SUMPRODUCT ngaliin dua kolom atau lebih baris per baris, terus jumlahin hasilnya. Cocok buat total qty kali harga sampai hitungan bersyarat.

BimaBima
REGEXMATCH Google Sheets: Cek Kecocokan Pola Teks (2026)
Tutorial Excel & Sheets
17 Juli 2026•8 menit baca

REGEXMATCH Google Sheets: Cek Kecocokan Pola Teks (2026)

REGEXMATCH ngecek apakah teks cocok sama pola tertentu dan balikin TRUE atau FALSE. Cocok buat validasi nomor HP, email, sampai filter data berantakan.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore