Anda di halaman 1dari 5

Hitung Harga Pokok Penjualan

(Metode FIFO) dengan Ms.


Access
Persediaan barang dagangan merupakan salah satu komponen yang penting dalam sebuah perusahaan

yang bergerak dalam bidang perdagangan. Pada keadaan tertentu, perusahaan selalu membutuh nilai

beli yang terjual. Perusahaan yang barang dagangannya berupa barang yang sangat mudah diidentifikasi

seperti perdagangan mobil, sepeda motor, dan lain sebagainya mungkin masih mudah untuk

mengatahui harga beli dari barang-barang yang terjual.

Bagaimana jika barang-barang tersebut merupakan barang-barang yang tidak mudah diidentifikasi dan

jumlahnya sangat besar serta harga beli barang dagang yang sama bervariasi, maka akan membutuhkan

tenaga dan waktu yang banyak untuk mengetahui nilai beli barang yang terjual (harga pokok penjualan).

Dalam akuntansi, dikenal beberapa metode untuk menentukan nilai beli barang yang terjual:

1. Metode rata-rata, metode ini beranggapan bahwa nilai perunit barang dagangan yang terjual

adalah merupakan rata-rata harga beli dari semua barang dagangan, sehingga untuk

mengetahui nilai beli keseluruhan barang yang terjual, hanya mengalikan jumlah unit yang dijual

dikalikan rata-rata harga beli barang daganagn.

2. Metode FIFO (Fisrt In First Out), metode ini beranggapan bahwa bahwa barang yang pertama kali

dibeli maka pertama kali juga dijual (sekalipun dalam realitanya tidak demikian). Sehingga untuk

mengetahui nilai beli barang dagangan yang terjual dapat dilakukan dengan melakukan

pengurutan barang-barang yang dibeli dari yang pertama kali dibeli sampai yang terakhir.

Berdasarkan urutan tersebut maka diambil nilai-nilai barang yang dibeli, hingga jumlah unit yang

diambil sesuai dengan jumlah unit yang terjual.

3. Metode LIFO (Last In First Out), metode ini merupakan kontra dari metode FIFO, yang

beranggapan bahwa barang yang pertama dijual adalah barang yang terakhir masuk. Sehingga
untuk mengetahui nilai beli barang dagangan yang terjual dapat dilakukan dengan melakukan

pengurutan barang-barang yang dibeli dari yang terakhir dibeli sampai yang pertama.

Berdasarkan urutan tersebut maka diambil nilai-nilai barang yang dibeli, hingga jumlah unit yang

diambil sesuai dengan jumlah unit yang terjual.

Pada kesempatan ini Saya akan memberikan logika sederhana dan contohnya dengan menggunakan Ms.

Access, adapun contohnya merupakan model transaksi yang dalam setiap transaksi hanya satu jenis

barang yang dibeli, demikian juga pada proses penjualan. Dengan contoh ini rekan-rekan pembaca

dapat mengembangkan ke model transaksi yang setiap transaksi baik pembelian maupun penjualan

tidak hanya satu jenis barang dagangan.

1. Tabel untuk penyimpanan transaksi pembelian dan penjualan dibuat secara terpisah.

2. Dibuat pula sebuah table bantu yang akan menampung detail dari barang keluar, table ini akan

menampung dari pembelian mana saja yang digunakan untuk setiap barang yang dijual.

Contoh table BarangMasuk dan isinya

BarangMasuk
NoBeli Tgl KodeBrg Unit Harga
1 01/01/2008 A 3 1000
2 02/01/2008 B 20 1022
3 03/01/2008 A 30 1222

Contoh table BarangMasuk dan isinya

BarangKeluar
NoJual Tgl KodeBrg Unit Harga
1 05/01/2008 A 22 1000
2 05/01/2008 A 11 1500

Contoh table LogBarangKeliar

LogBarangKeluar
NoJual NoBeli KodeBrg Unit

3. Tabel LogBarangKeluar dapat diisi pada saat setiap transaksi penjualan disimpan (direcord),

namun dapat diga dilakukan pada waktu-waktu tertentu (jika akan mengetahui nilai beli barang
yang terjual. Jika dilakukan pada setiap terjadi transaksi penjualan, tentunya lebih bagus karena

nilai beli barang yang dijual dapat diketahui tanpa melakukan proses perbaikan nilai beli tetapi

kelemahaanya adalah jika ada transaksi-transaksi sebelum yang mengalami perbaikan maka nilai

tersebut tidak relevan lag. Pada kali ini saya akan menggukan cara yang kedua, yaitu dengan

menginput semua transaksi baik pembelian maupun penjualan terlebih dahulu, kemudian

melakukan proses perhitungan harga pokok (nilai beli barang yang terjual)

Penyelesaian:

1. Buat query yang akan merekap (RekapLogKeluar) jumlah unit dari table LogBarangKeluar

berdasrkan nomor pembelian dan kode barang

SELECT LogBarangKeluar.NoBeli, LogBarangKeluar.KodeBrg,


Sum(LogBarangKeluar.Unit) AS Unit
FROM LogBarangKeluar
GROUP BY LogBarangKeluar.NoBeli, LogBarangKeluar.KodeBrg

2. Buat query yang akan menghitung sisa setiap barang yang dibeli untuk setiap transaksi pembelian

(Selisih), pada query ini tampilkan semua transaksi pembelian sekalipun tidak memiliki pada

pada query RekapLogKeluar yang telah dibuat sebelumnya.

SELECT BarangMasuk.NoBeli, BarangMasuk.Tgl, BarangMasuk.KodeBrg,


BarangMasuk.Harga, BarangMasuk.Unit AS UniBeli,
IIf(IsNull(RekapLogKeluar!Unit),0,RekapLogKeluar!Unit) AS
UnitKeluar, BarangMasuk!Unit-[UnitKeluar] AS SISA
FROM BarangMasuk LEFT JOIN RekapLogKeluar ON (BarangMasuk.NoBeli
= RekapLogKeluar.NoBeli) AND (BarangMasuk.KodeBrg =
RekapLogKeluar.KodeBrg)

3. Buat Query untuk mengetahui nilai harga beli (HPPLogKeluar) dari setiap data pada table

LogBarangKeluar

SELECT LogBarangKeluar.NoJual, LogBarangKeluar.NoBeli,


LogBarangKeluar.KodeBrg, LogBarangKeluar.Unit, BarangMasuk.Harga,
LogBarangKeluar!Unit*BarangMasuk!Harga AS HPP
FROM LogBarangKeluar INNER JOIN BarangMasuk ON
(LogBarangKeluar.KodeBrg = BarangMasuk.KodeBrg) AND
(LogBarangKeluar.NoBeli = BarangMasuk.NoBeli)
ORDER BY LogBarangKeluar.NoJual, LogBarangKeluar.NoBeli
4. Buat query yang akan merekap dari HPPLogKeluar berdasarkan no penjualan

(HPPPerNoPenjualan)

SELECT HPPLogKeluar.NoJual, Sum(HPPLogKeluar.HPP) AS


HPPPerPenjulan
FROM HPPLogKeluar
GROUP BY HPPLogKeluar.NoJual

5. Buat query lengap yang akan menampilkan data penjualan dan harga pokok penjualannya

SELECT BarangKeluar.NoJual, BarangKeluar.Tgl,


BarangKeluar.KodeBrg, BarangKeluar.Unit, BarangKeluar.Harga,
BarangKeluar!Unit*BarangKeluar!Harga AS NilaiPenjualan,
IIf(IsNull(HPPPerNoPenjualan!HPPPerPenjulan),0,HPPPerNoPenjualan!
HPPPerPenjulan) AS HPPPerPenjulan, [NilaiPenjualan]-
[HPPPerPenjulan] AS LabaKotor
FROM BarangKeluar LEFT JOIN HPPPerNoPenjualan ON
BarangKeluar.NoJual = HPPPerNoPenjualan.NoJual

6.

Berikut ini adalah kode yang dibuat pada VBA

Option Compare Database


Dim con As ADODB.Connection
Dim rskeluar As ADODB.Recordset
Dim rsSisa As ADODB.Recordset
Private Sub Form_Load()
Set con = CurrentProject.Connection
Me.NavigationButtons = False
Me.DividingLines = False
Me.RecordSelectors = False
End Sub
Private Sub tbpros_Click()
Dim sqhapuslog As String
sqhapuslog = "delete from LogBarangKeluar"
con.Execute (sqhapuslog)
Dim sqkeluar As String
sqkeluar = "select * from barangkeluar order by tgl,nojual"
Set rskeluar = con.Execute(sqkeluar)
If Not rskeluar.EOF Then
rskeluar.MoveFirst
End If
Dim kb As String
Dim nojual As String
Dim jmlunit As Integer
Do While Not rskeluar.EOF
pb1.Value = pb1.Value + 1
kb = rskeluar!kodebrg
jmlunit = rskeluar!unit
nojual = rskeluar!nojual
Dim sqsisa
sqsisa = "select * from selisih where kodebrg='" & kb & "' and sisa
>'0' order by tgl,nobeli"
Set rsSisa = con.Execute(sqsisa)
Dim sqmasuklog As String
If Not rsSisa.EOF Then
rsSisa.MoveFirst
End If
Dim unitmasuklog As Integer
Dim nbelimasuklog As Integer
Do While jmlunit > 0
If rsSisa.EOF Then
If jmlunit > 0 Then
MsgBox "Jumlah barang " & kb & " tidak cukup, kurang: " & jmlunit
Exit Do
End If
End If
nbelimasuklog = rsSisa!nobeli
If jmlunit <= rsSisa!sisa Then
unitmasuklog = jmlunit
Else
unitmasuklog = rsSisa!sisa
End If
jmlunit = jmlunit - unitmasuklog
sqmasuklog = "insert into logbarangkeluar
(nojual,nobeli,kodebrg,unit) " & _
"values('" & nojual & "','" & nbelimasuklog & "','" & kb & "','" &
unitmasuklog & "')"
con.Execute (sqmasuklog)
If Not rsSisa.EOF Then
rsSisa.MoveNext
End If
Loop
If Not rskeluar.EOF Then
rskeluar.MoveNext
End If
Loop
'MsgBox "Proses telah selesai" & Chr(10) & Chr(13) & "Silahkan buka
Query HPPPenjualanAkhir untuk melihat HPP penjualan"
End Sub

2 komentar:

Anda mungkin juga menyukai