posted by aryo tejo w on May 9, 2018

Suatu saat ada pengguna jasa yang menginginkan revisi pada hitungan di modul order. Hitungan ini terkait dengan kenyataan di lapangan bahwa suatu ukuran yang tanggung misal panjang 2,35 m maka akan dibulatkan menjadi 2,5 m. dengan rumus pembulatan: nilai  0,1 s.d 0,49 pembuatan ke 0,5 sedangkan nilai 0,51 s.d 0,99 ke 1. Hal ini dikarena beberapa pertimbangan, antara lain bahwa sisa yang tanggung, tidak bisa digunakan seoptimal mungkin untuk hal lain.

 

Yang menjadi hal unik dalam pengalaman membuat aplikasi adalah :

  1. dibuat agar informasi panjang dan lebar, sesuai dengan permintaan pelanggan.
  2. dilakukan hitungan pembulatan di kolom total

 

agar lebih mudah memahami, berikut saya buatkan contoh hitungannya:

P x L x harga x Qty

3,23  x 2,62 x 1000 x 2

Akan dihitung menjadi

3,5 x 3,0 x 1000 x 2


Dalam pembuatan program ini, memakai objek MSHFlexgrid untuk menampung data. Teknik coding harus bisa memisahkan pecahan dan angka bulatnya. Secara konsep hitungan adalah:

  1. pisahkan terlebih dulu pecahannya.
  2. setelah dapat pecahan, dikondisikan jika kurang dari 0,5 maka dijadikan 0,5 dan jika lebih 0,5 maka dibulatkan ke 1

 

Function TotalBulatan(pPjg, pLbr, pHrg, pQty)

'Dim vPanjang As Single, vPjgBulat As Single, vPjgPecahan As Single, VPjgBulatan As Single

'Dim vLebar As Single, vLbrBulat As Single, vLbrPecahan As Single, VLbrBulatan As Single

'

'Dim vTotalBulat As Single

 

vPanjang = pPjg

vPjgBulat = Int(vPanjang)

vPjgPecahan = Round(vPanjang - vPjgBulat, 2)

If vPjgPecahan < 0.5 Then

VPjgBulatan = vPjgBulat + 0.5

Else

VPjgBulatan = vPjgBulat + 1

End If

 

vLebar = pLbr

vLbrBulat = Int(vLebar)

vLbrPecahan = Round(vLebar - vLbrBulat, 2)

If vLbrPecahan < 0.5 Then

VLbrBulatan = vLbrBulat + 0.5

Else

VLbrBulatan = vLbrBulat + 1

End If

 

vTotalBulat = VPjgBulatan * VLbrBulatan * pHrg * pQty

End Function

Leave a Comment

Fields with * are required.

Please enter the letters as they are shown in the image above.
Letters are not case-sensitive.