Skip to main content

Fungsi DateSerial di MS Access dengan Keunikannya

Di Access, fungsi DateSerial digunakan untuk memperoleh tanggal tertentu yang diinginkan. Tanggal ini diperoleh dengan menggunakan angka tahun, bulan, dan hari. Pada prakteknya, ketiga angka itu tidak harus dituliskan dalam bentuk angka murni seutuhnya, tetapi bisa berbentuk formula tertentu sehingga proses perhitungannya menjadi unik.
Penggunaan fungsi DateSerial digabungkan dengan fungsi lain
yang berkaitan dengan tanggal, seperti Year, Month, dan Day.
Sintaks penulisan DateSerial adalah sebagai berikut:

DateSerial (Year, Month, Day)

Keterangan:

Year (tahun): wajib diisi, berupa angka dengan tipe data Integer, rangenya antara 100 s.d. 9999. Year bisa berupa angka atau formula, yang penting hasilnya terletak antara 100 s.d. 9999.

Month (bulan): wajib diisi, berupa angka dengan tipe data Integer, rangenya antara 1 s.d. 12. Month bisa berupa angka atau formula, yang penting hasilnya terletak antara 1 s.d. 12.

Day (hari): wajib diisi, berupa angka dengan tipe data Integer, rangenya antara 1 s.d. 31. Day bisa berupa angka atau formula, yang penting hasilnya terletak antara 1 s.d. 12. 

Keunikan fungsi DateSerial

Memasukkan angka di luar range yang disepakati

Kita dapat memasukkan angka di luar range yang disepakati di atas, tetapi hasilnya malah akan membingunkan, misalnya:

dateserial(2017,14,32) akan memberikan nilai 3/4/2018  (4 Maret 2018). Urutan perhitungannya sebagai berikut:
  1. Month 14 dianggap sebagai bulan 2 atau Februari yang berasal  dari14-12=2, di mana 12 adalah jumlah bulan dalam setahun. Karena sudah melebih 12 bulan dalam setahun, maka angka 12 dianggap setahun dan ditambahkan ke tahun 2017 menjadi 2018 sedangkan 2 sisanya dimasukkan sebagai bulan Februari. 
  2. Di sisi lain bulan Februari 2108 berakhir pada tanggal 28. Jadi Day 32-28 adalah 4 yang berarti 4 hari setelah tanggal 28 Februaru 2018 atau 4 Maret 2018. Inilah hasil perhitungan di atas. Bingung bukan?
dateserial(2017,11,0) akan memberikan nilai 10/31/2017 (31 Oktober 2017). Angka 0 pada Day dianggap mengurangi awal tanggal yang ada pada bulan November 2017, yaitu tanggal 1, sebanyak 1 hari. Dengan demikian, dateserial(2017,11,0) berarti tanggal 1 November 2017 dimundurkan satu hari menjadi tanggal 31 Oktober 2017.
dateserial(0,0,0) menghasilkan tanggal 11/30/1999 (30 November 1999) 
dateserial(0,0,1) menghasilkan tanggal 12/1/1999 (1 Desember 1999)
dateserial(2010,-1,1) menghasilkan tanggal 11/1/2009 (1 November 2009)
Bingung kan? Jadi supaya tidak membingunkan, masukkan angka sesuai dengan range yang disepakati di atas.

Memasukkan 2 digit untuk Year

Angka tahun dengan dua digit (00 s.d. 99) disesuaikan dengan pengaturan pada sistem operasi Windows. Secara default, nilai 00 s.d. 29 dianggap sebagai tahun 2000 s.d. 2029. Sedangkan nilai 30 s.d. 99 dianggap sebagai tahun 1930 s.d. 1999. Oleh karena itu, supaya tidak membingungkan, sebaiknya kita menuliskan angka tahun dengan menggunakan empat digit, misalnya 1929, 2001, 1898, dan seterusnya.

Memasukkan angka dengan formula

Berturut-turut, Access memproses Year, Month, dan terakhir Day. Jadi, bila kita memasukkan salah satu nilai dari Year, Month, atau Day dengan formula tertentu, Access memprosesnya dengan urutan itu. Misalnya seperti ini:

DateSerial (2020-3, 12 - 2, 1 - 1) hasilnya adalah 9/30/2017  (30 September 2017), urutan perhitungannya seperti ini:
  1. Awalnya, tahun 2020 dikurangi 3 menjadi 2017, bulannya masih 12, tanggal juga masih 1, sehingga fungsi DateSerial (2017, 12, 1) adalah tahun 2017, bulan Desember, tanggal 1. 
  2. DateSerial (2017, 12-2, 1) di mana bulan Desember 2017 dikurangi (dimundurkan) dua bulan jadi bulan Oktober 2017, dan tanggal 1. Setelah itu
  3. DateSerial (2017, 10, 1 - 1) tgl 1 Oktober 2017 dikurangi (dimundurkan) satu hari menjadi 30 September 2017.
DateSerial (2020-3, 1 - 2, 1 - 1)  hasilnya adalah 10/31/2016 (31 Oktober 2016), urutan hitungannya seperti ini:
  1. Awalnya, tahun 2020 dikurangi 3 menjadi 2017, bulannya masih 1, tanggalnya juga masih 1, sehinga fungsi DateSerial (2017, 1, 1) adalah tahun 2017, bulan Januari, tanggal 1. 
  2. DateSerial (2017, 1-2, 1 - 1) di mana bulan Januari 2017 dikurangi (dimundurkan) dua bulan jadi bulan November 2016. Setelah itu,
  3. DateSerial (2016, 11, 1 - 1) tgl 1 November 2016 dikurangi (dimundurkan) satu hari menjadi 30 Oktober 2016.
Berikut ini adalah beberapa contoh aplikasi DateSerial:
Fungsi Hasil
DateSerial (30, 1, 2) 02 Jan 1930
DateSerial (99, 1, 2) 02 Jan 1999
DateSerial (0, 1, 2) 02 Jan 2000
DateSerial (29, 1, 2) 02 Jan 2029
DateSerial (2017,11-2,4) 04 Sep 2017
DateSerial (2017,1,1-1) 31 Dec 2016
DateSerial (2017-1,1,1-1) 31 Dec 2015
DateSerial (2017-1,1-1,1-1) 30 Nov 2015
DateSerial (2017,11+1,31+1) 01 Jan 2018
Bila tanggal sekarang yang dinyatakan dengan fungsi Now() = 4-Dec-2017, maka:
  • 2 hari lalu ditulis: DateSerial (Year(Now()), Month(Now()),Day(Now())-2), hasilnya adalah 02 Dec 2017.
  • 2 bulan lalu ditulis: DateSerial (Year(Now()), Month(Now())-2,Day(Now())), hasilnya adalah 04 Oct 2017.
  • 2 tahun yang akan datang ditulis: DateSerial (Year(Now())+2, Month(Now()),Day(Now())), hasilnya adalah 04 Dec 2019.
Pengaturan fungsi DateSerial mengikuti properti Calendar di Control Panel. Bila properti Calendar di Control Panel menggunakan Gregorian, maka DateSerial yang digunakan juga menggunakan Gregorian, demikian pula bila menggunakan Hijri (Hijriah), maka penulisan di DateSerial juga menggunakan Hijri (Hijriah). Khusus untuk kalender Hijriah, nilai Year 0 s.d. 99 dikonversi ke tahun 1400-1499.

Comments

Posting Terpopuler

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access