Algoritma Perhitungan Saldo Tabungan dengan Window Functions pada PostgreSQL
Bismillah,
Ini adalah pengenalan Window Functions, salah satu dari fitur
penting pada PostgreSQL. Apa itu Window Functions, Window Functions
itu digunakan untuk mengakses baris lain yang berhubungan dengan
baris tertentu, sebagai contoh pada baris pertama perhitungan, dapat
mengakses baris kedua sehingga nilai baris pertama dapat dikurangi
nilai baris kedua.
Linus: Talk is cheap, show me the code
Disini akan langsung di contohkan
kode-kode sql dalam perhitungan saldo. Di bawah kode-kode
tersebut akan saya beri keterangan lanjutan. Sebelum itu akan
dibuat dulu user dan databasenya. OK, kita mulai
Disini saya menampilkan Operating System yang saya gunakan dalam penulisan
ini.
Menampilkan versi PostgreSQL yang saya gunakan saat ini
Kita buat dulu user saldo untuk akses ke database, biasakan menggunakan
user biasa dalam mengakses database dan tidak menggunakan user
administrator yaitu _postgresql kecuali untuk hal penting.
Disini di buat database db_saldo untuk perhitungan ini.
masuk ke database db_saldo
Disini saya membuat sebuah table bernama tabungan yang memiliki
field :
contoh memasukkan nilai 0, maka tidak bisa masuk ke table
Iya. saat ini table tidak memiliki satu baris pun. Kita akan memasukkan
beberapa baris dan menghitung saldo berjenjang sebagai berikut:
sebagaimana disampaikan di atas, bahwa
lalu kita cek isi table tabungan
OK, table sudah terisi, kita akan melakukan query ke table dengan Algoritma
sebagai berikut:
Iya, saya tampilkan kode sesuai algoritama diatas:
Algoritma no.1
Algoritma no.2
Algoritma no.3
disini terlihat bahwa tabel sudah tersusun dan ada
field hitung yang akan kita gunakan menghitung saldo
Algoritma no.4
terlihat kita sudah bisa mengakses view_saldo.
Algoritma no. 5
Algoritma no.6
Dengan view_tabungan kita dapat melihat saldo. Hasil akhir adalah menampilkan table
tabungan dan view_tabungan sebagai berikut:
Pada bagian akhir ini, saya tampilkan dump dari database db_saldo:
sebagai tambahan pengetahun, disini dikenalkan
PL/pgSQL - SQL Procedural Language, menggunakan
perintah CASE sebagai contoh, untuk memperbagus
tampilan bisa di gunakan Query sebagai berikut:
Terlihat bahwa perintah CASE melakukan pengecekan
pada field id_jenis_transaksi, bila bernilai 1
maka akan tampil ‘masuk’, dan selain 1 akan
tampil ‘keluar’.