Biasanya untuk membuat simulasi Perhitungan Angsuran Kredit (Pokok, Bunga dan Jumlah Cicilan) kita biasa menggunakan rumus PMT di Excel, nah kali ini saya akan coba share bagaimana sih membuat rumus tersebut di SQL Server ?
Caranya sangat mudah, lho kok mudah ? ya mudah orang anda tinggal Copy Paste dari sini hehe...
Pertama anda buat dulu Scalar Function didalam SQL Server, Gmn Caranya ? gampang kok tinggal copy paste Query di bawah ini lalu tinggal anda running dengan menekan tombol F5 pada Keyboard.
Future Value :
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Fv] (@r decimal(18,18), @nper INT, @c float, @pv float, @type INT)
RETURNS NUMERIC(18,0)
AS
BEGIN
DECLARE @fv NUMERIC(18,2)
IF @type = 1
SET @c = @c * (1 + @r);
SET @fv = -(@c * (Power(1 + @r, @nper) - 1) / @r + @pv
* Power(1 + @r, @nper))
RETURN @fv
END
IPMT :
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Ipmt] (@r decimal(18,18), @per INT, @nper INT, @pv float, @fv float, @type INT)
RETURNS NUMERIC(20,2)
AS
BEGIN
DECLARE @ipmt NUMERIC(20,2)
SET @ipmt = dbo.Fv(@r, @per - 1, dbo.Pmt(@r, @nper, @pv, @fv, @type), @pv, @type) * @r
if @type = 1
SET @ipmt = @ipmt / (1 + @r)
RETURN @ipmt
END
GO
PMT :
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Pmt] (@r decimal(18,18), @nper INT, @pv float, @fv float, @type INT)
RETURNS NUMERIC(18,2)
AS
BEGIN
DECLARE @pmt NUMERIC(18,0)
SET @pmt = @r / (Power(1.0 + @r, @nper) - 1.0) * -(@pv * Power(1.0 + @r, @nper) + @fv)
if @type = 1
SET @pmt = @pmt / (1 + @r)
RETURN @pmt
END
GO
PPMT :
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Ppmt] (@r NUMERIC(18,4), @per INT, @nper INT, @pv NUMERIC(18,4), @fv NUMERIC(18,4), @type INT)
RETURNS NUMERIC(18,4)
AS
BEGIN
RETURN dbo.Pmt(@r, @nper, @pv, @fv, @type) - dbo.Ipmt(@r, @per, @nper, @pv, @fv, @type);
END
GO
Setelah semua Query di atas Berhasil di Running, maka untuk menggunakannya seperti ini :
Mencari Jumlah Angsuran perbulan (Bunga Efektif )
Contoh :
Nasabah : Andi Susanty
Jumlah Pinjaman (Plafond) : Rp. 35.000.000
Suku Bunga Efektif : 39,429% Per Tahun
Tenor : 3 Tahun (36 Bulan)
Untuk mencari jumlah angsuran yg harus Andi bayar perbulan yaitu :
PMT(SukuBunga/12,Tenor,JumlahPinjaman,0,0)
select -dbo.pmt(0.39429 / 12, 36,35000000,0,0)
= Rp. 1.672.212,-
untuk mencari porsi Bunga / Interest dalam tenor yg sedang berjalan ialah :
IPMT(SukuBunga/12,Angsuranke,Tenor,JumlahPinjaman,0,0)yaitu : Rp. 1.150.012,50
Pokok dan bunga itu berpengaruh terhadap jumlah angsuran yang telah di bayarkan, karena porsi pokok dan bunga itu setiap bulan akan berubah tergantung Angsuran ke Berapanya jika menggunakan suku bunga efektif.
Selamat berhitung...:)
Izin copy paste master..., terima kasih atas ilmu nya..
ReplyDeletemaaf min future value fungsinya untuk apa ya?
ReplyDelete