Scalar Valued Function pada MS SQL Server

Dalam Microsoft SQL Server, function merupakan salah satu objek database yang digunakan untuk mengenkapsulasi logika bisnis tertentu agar dapat digunakan kembali (reusable). Salah satu jenis function yang umum digunakan adalah Scalar Valued Function (SVF).

Scalar Valued Function adalah fungsi yang mengembalikan satu nilai tunggal (single value) dengan tipe data tertentu, seperti INT, VARCHAR, atau DECIMAL. Fungsi ini sangat berguna untuk melakukan perhitungan atau manipulasi data yang bersifat berulang.

Konsep Dasar Scalar Valued Function

Karakteristik utama Scalar Valued Function:

Mengembalikan satu nilai tunggal (scalar).
Menggunakan perintah RETURNS.
Harus diakhiri dengan perintah RETURN.
Dapat digunakan dalam query seperti fungsi bawaan SQL (GETDATE(), LEN(), dll).
Dapat menerima parameter sebagai input.

Struktur Umum Scalar Valued Function

Sintaks dasar:

CREATE FUNCTION nama_fungsi (parameter)
RETURNS tipe_data
AS
BEGIN
DECLARE variabel
— proses logika
RETURN nilai
END

Implementasi Scalar Valued Function

Dengan menggunakan tabel pada materi inner join akan dibuat fungsi untuk mengambil nilai siswa berdasarkan ID_Siswa sebagai berikut:

CREATE FUNCTION dbo.GetNilaiSiswa (@ID_Siswa INT)
RETURNS INT
AS
BEGIN
    DECLARE @Nilai INT;

    SELECT @Nilai = Nilai
    FROM Nilai_Siswa
    WHERE ID_Siswa = @ID_Siswa;

    RETURN @Nilai;
END;

Penjelasan:
Parameter: @ID_Siswa
Variabel lokal: @Nilai
Mengambil nilai dari tabel Nilai_Siswa
Mengembalikan nilai tunggal

Penggunaan Fungsi

Fungsi GetNilaiSiswa dapat dipanggil untuk menampilkan nilai per siswa dalam query SQL sebagai berikut:

SELECT 
    Nama_Siswa,
    dbo.GetNilaiSiswa(ID_Siswa) AS Nilai
FROM Siswa;

Hasil:

Nama_SiswaNilai
Andi85
Budi90
CitraNULL

Analisis:

Citra tidak memiliki data nilai sehingga menghasilkan NULL. Untuk meningkatkan kualitas fungsi, dapat ditambahkan penanganan NULL.

Setelah dimodifikasi fungsi sebagai berikut:

CREATE FUNCTION dbo.GetNilaiSiswaDefault (@ID_Siswa INT)
RETURNS INT
AS
BEGIN
    DECLARE @Nilai INT;

    SELECT @Nilai = Nilai
    FROM Nilai_Siswa
    WHERE ID_Siswa = @ID_Siswa;

    RETURN ISNULL(@Nilai, 0);
END;

Kelebihan dan Kekurangan Scalar Valued Function

Kelebihan:

  • Modularisasi logika (kode lebih rapi)
  • Reusability tinggi
  • Mempermudah maintenance

Kekurangan:

  • Dapat menurunkan performa jika digunakan dalam query besar
  • Dieksekusi per baris (row-by-row execution)
  • Kurang optimal dibandingkan JOIN dalam beberapa kasus

Perbandingan dengan Query Biasa

Tanpa function:

SELECT s.Nama_Siswa, n.Nilai
FROM Siswa s
LEFT JOIN Nilai_Siswa n ON s.ID_Siswa = n.ID_Siswa;

Dengan function:

SELECT Nama_Siswa, dbo.GetNilaiSiswa(ID_Siswa)
FROM Siswa;

Kesimpulan

  • Scalar Valued Function merupakan fitur penting dalam MS SQL Server yang memungkinkan pengembang untuk membuat fungsi khusus yang mengembalikan satu nilai.
  • Scalar Valued Function cocok untuk logika sederhana dan reusable
  • Scalar Valued Function harus digunakan secara bijak untuk menghindari penurunan performa
  • Alternatif seperti JOIN tetap perlu dipertimbangkan untuk efisiensi

Slide materi dapat dilihat di sini.

Mungkin Anda Menyukai

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *