Skip to main content

Fungsi Nz di MS Access

Di Access, fungsi Nz digunakan untuk menghasilkan nilai nol, nilai dengan panjang string nol (" "), atau nilai lain bila sebuah tipe data Variant bernilai Null. Sebagai contoh, kita bisa menggunakan fungsi Nz untuk mengkonversi nilai Null ke nilai lain, misalnya 0, untuk menghindari terjadinya kesalahan fungsi.
Fungsi Nz pada sebuah design view quer
Sintaks penulisan fungsi Nz adalah sebagai berikut:

Nz (Variant [, Valueifnull ] )

Keterangan:

Variant (variant), wajib diisi berupa data dengan tipe Variant, bisa sembarang nilai Variant atau formula yang menghasilkan nilai dengan tipe data Variant.

Valueifnull (nilai jika null), opsional (kecuali dalam sebuah query). Valueifnull berisi data jika Variant bernilai Null. Valueifnull memungkinkan kita menghasilkan nilai selain nol atau string dengan panjang nol.


Jika menggunakan fungsi Nz dalam sebuah field di sebuah query tanpa menyertakan valueifnull, maka field ini akan bernilai string dengan panjang nol.

Jika variant bernilai Null, fungsi Nz menghasilkan angka nol atau string dengan panjang nol, tergantung pada  apakah konteksnya menunjukkan nilai itu berupa angka atau string. Jika valueifnull dimasukkan, fungsi Nz menghasilkan nilai yang ditentukan oleh valueifnull jika variant bernilai Null. Bila digunakan di dalam query, fungsi Nz harus selalu menyertakan valueifnull.

Jika, misalnya, nilai variant X bukan Null, maka fungsi Nz menghasilkan nilai X itu sendiri.

Fungsi Nz berguna untuk variant yang mungkin menghasilkan nilai Null. Jadi, misalkan ada formula yang didalamnya mungkin bernilai Null, maka menggunakan fungsi Nz akan membantu menyelesaikan masalah Null. Contohnya seperti ini:

2 + varX

akan bernilai Null jika varX sama dengan Null. Padahal, kita ingin supaya 2 + varX, dengan asumsi bila varX bernilai Null maka varX bernilai 0, akan sama dengan 2. Jadi, dengan menggunakan fungsi Nz, kita bisa mengarahkan penambahan 2 + varX menjadi 2, dengan persamaan seperti ini:

2 + Nz(varX)

Nz(varX) berarti jika varX bernilai Null, maka Nz(varX) bernilai 0, sehingga

2 + Nz(varX) = 2 + 0 = 2

Pada contoh berikut ini, kita menggunakan fungsi Nz sebagai cara lain untuk meringkas fungsi IIf. Dua pernyataan di bawah ini melibatkan fungsi IIf. Pernyataan pertama digunakan untuk memeriksa bila ada nilai Null dan mengkonversinya menjadi 0.
  1. varTemp = IIf(IsNull(varFreight), 0, varFreight)
  2. varResult = IIf(varTemp > 50, "High", "Low")
Setelah itu pernyataan kedua masih berkaitan dengan pernyataan pertama, tetapi sudah tidak melibatkan nilai Null. Kedua pernyataan di atas bisa diringkas menjadi satu pernyataan dengan menggunakan fungsi Nz seperti berikut ini:

varResult = IIf(Nz(varFreight) > 50, "High", "Low")

Berikut ini adalah contoh fungsi Nz di VBA Access di atas:
Function contohNz(Optional varFreight = Null) 
  Dim varTemp, varResult As Variant

  varTemp = IIf(IsNull(varFreight), 0, varFreight)

  varResult = IIf(varTemp > 50, "High", "Low")
  Debug.Print "Sebelum diringkas, nilai varResult adalah: " & varResult

  varResult = IIf(Nz(varFreight) > 50, "High", "Low")
  Debug.Print "Setelah diringkas, nilai varResult adalah: " & varResult    

End Function
Bila dieksekusi di Immediate Window:
?contohNz1
Sebelum diringkas, nilai varResult adalah: Low
Setelah diringkas, nilai varResult adalah: Low

?contohNz1(Null)
Sebelum diringkas, nilai varResult adalah: Low
Setelah diringkas, nilai varResult adalah: Low

?contohNz1(60)
Sebelum diringkas, nilai varResult adalah: High
Setelah diringkas, nilai varResult adalah: High
Perhatikan bahwa cara IIf dengan Nz memberikan hasil yang sama
Contoh berikut ini, kita menghilangkan fungsi IIf dengan menyertakan nilai valueifnull dalam fungsi Nz pada pernyataan

varResult = IIf(IsNull(varFreight),"Gratis Ongkos Angkut", varFreight)

menjadi:

varResult = Nz(varFreight, "Gratis Ongkos Angkut")


Berikut ini adalah contoh fungsi Nz di VBA Access di atas:
Function contohNz2(Optional varFreight = Null) 
  Dim varTemp, varResult As Variant

  varResult = IIf(IsNull(varFreight), "Gratis Ongkos Angkut", varFreight)
  Debug.Print "Menggunakan IIf, nilai varResult adalah: " & varResult

  varResult = Nz(varFreight, "Gratis Ongkos Angkut")
  Debug.Print "Setelah diringkas menggunakan Nz, nilai varResult adalah: " & varResult

End Function
Bila dieksekusi di Immediate Window:
?contohNz2
Sebelum diringkas, nilai varResult adalah: Gratis Ongkos Angkut
Setelah diringkas, nilai varResult adalah: Gratis Ongkos Angkut

?contohNz2(Null)
Sebelum diringkas, nilai varResult adalah: Gratis Ongkos Angkut
Setelah diringkas, nilai varResult adalah: Gratis Ongkos Angkut

?contohNz2(60)
Sebelum diringkas, nilai varResult adalah: 60
Setelah diringkas, nilai varResult adalah: 60
Satu hal yang membedakan penggunaan Nz dengan IIf adalah bahwa Nz terlihat lebih sederhana dan mudah untuk dituliskan. Pada fungsi contohNz1 dan contohNz2, kita bisa melihat perbedaan itu.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access