Kamis, 10 November 2011
Rabu, 02 November 2011
Pembulatan Angka per 100 Ribu
Assalamu'alaikum
Suatu hari sya punya kasus pemrograman Visual Basic + Sql server, project Software Koperasi Simpan Pinjam,
Manager Koperasi meminta agar perhitungan Bunga Tabungan di buat per kelipatan 100 ribu
dan dibuat per saldo yg paling kecil
Misal :
Nasabah : A mempunyai Saldo akhir 125.000 maka yg terhitung bunga hanya 100.000
jadi range antara 100.000 - 200.000 bunga yg terhitung hanya 100.000 dan seterusnya per
kelipatan 100 ribu
Rumus 100.000 * 0.5 /100 (0,5 adalah bunga Tabungan)
Setelah googling ketemu dengan Function pembulatan seperti ini :
Private Function RoundINT(ByVal Number As Double, _
Optional ByVal NumDigitsToRound As Double = 0) As Double
Dim Factor As Double
Dim ResultRound As Double
Dim Temp As Double
Factor = 1 / Val("1" & Replace(Space(NumDigitsToRound), " ", "0"))
ResultRound = Round(Number * Factor, 0)
If Right(Round(Number * Factor, 1), 1) = 5 And _
Int(Round(Number * Factor, 1)) = ResultRound Then
ResultRound = ResultRound + 1
End If
RoundINT = ResultRound / Factor
End Function
Suatu hari sya punya kasus pemrograman Visual Basic + Sql server, project Software Koperasi Simpan Pinjam,
Manager Koperasi meminta agar perhitungan Bunga Tabungan di buat per kelipatan 100 ribu
dan dibuat per saldo yg paling kecil
Misal :
Nasabah : A mempunyai Saldo akhir 125.000 maka yg terhitung bunga hanya 100.000
jadi range antara 100.000 - 200.000 bunga yg terhitung hanya 100.000 dan seterusnya per
kelipatan 100 ribu
Rumus 100.000 * 0.5 /100 (0,5 adalah bunga Tabungan)
Setelah googling ketemu dengan Function pembulatan seperti ini :
Private Function RoundINT(ByVal Number As Double, _
Optional ByVal NumDigitsToRound As Double = 0) As Double
Dim Factor As Double
Dim ResultRound As Double
Dim Temp As Double
Factor = 1 / Val("1" & Replace(Space(NumDigitsToRound), " ", "0"))
ResultRound = Round(Number * Factor, 0)
If Right(Round(Number * Factor, 1), 1) = 5 And _
Int(Round(Number * Factor, 1)) = ResultRound Then
ResultRound = ResultRound + 1
End If
RoundINT = ResultRound / Factor
End Function
tetapi function diatas tdk bisa menyelesaikan masalah saya,.... puyeng.com
setelah dipikir2 sambil tiduran, terinspirasi dari saran temen saya Nurkholis Majid
untuk membuat kelipatan 100.000 ke dalam sebuah database (Sql Server)
Ok Kita Mulai : siapkan dulu rokok dan camilan nya ... jangan lupa Asbak nya juga ....wkwkwkwk
kita buat function loop kelipatan 100.000 kedalam database sehinga terbentuk table RANGE_BUNGA
lalu kita masuk ke project vb kita buat script sedikit manipulasi :
Dim JumlahSaldoKecil as double
' Mencari saldo terkecil punya nasabah
Private Sub SumJumlahSaldoKecil()
Set Ado_Data = New ADODB.Recordset
SqlCmd = "select min(min_saldo) as min_saldo from tabungan where ac_nasabah ='" & txtAcNasabah.Text & "' and month(tgl_efektif) = '" & Mid(TglEfek.Value, 4, 2) & "' and year(tgl_efektif) = '" & Right(TglEfek.Value, 4) & "'and min_saldo > 0"
Ado_Data.Open SqlCmd, Adocon, adOpenKeyset, adLockOptimistic
If Not ((Ado_Data.BOF) Or (Ado_Data.EOF) Or IsNull(Ado_Data(0))) Then
JumlahSaldoKecil = Ado_Data!min_saldo
End If
End Sub
Private Sub SelectRange()
' Saldo dibawah 100.000 tidak dapat bunga
If JumlahSaldoKecil < "100000" Then
SqlCmd = "update nasabah set update_saldo_kecil = " & Val(0) & ""
SqlCmd = SqlCmd & " where ac_nasabah ='" & Trim(txtAcNasabah.Text) & "'"
Adocon.Execute SqlCmd
Else
' Menangkap Range Bunga
lsquery = "SELECT awal,akhir "
lsquery = lsquery & " From range_bunga"
lsquery = lsquery & " where awal <= " & JumlahSaldoKecil & " and akhir > " & JumlahSaldoKecil & " "
Set recRinci = Adocon.Execute(lsquery)
Do While Not recRinci.EOF
' Update saldo terkecil yg nantinya terhitung jadi bunga, Rumus Bunga (update_saldo_kecil
* bunga/100 )
SqlCmd = "update nasabah set update_saldo_kecil = " & Val(recRinci!awal) & ""
SqlCmd = SqlCmd & " where ac_nasabah ='" & Trim(txtAcNasabah.Text) & "'"
Adocon.Execute SqlCmd
recRinci.MoveNext
Loop
End If
End Sub
akhirnya ketemu seperti ini:
jadi yang terhitung dapat bunga hanya 100.000 bukan 125.000
Alhamdulilah bisa tidur nyenyak lagi dech... tks sobat (Nurkholis Majid)
Semoga bisa membantu temen2 yang ketemu kasus yg sama
Salam dari banyuwangi
Selasa, 01 November 2011
Langganan:
Postingan (Atom)