DAX Variabel (VAR): Rumus Lebih Rapi dan Cepat
TL;DR
VAR di DAX adalah cara nyimpen hasil perhitungan ke satu nama, biar bisa dipakai ulang dalam satu measure tanpa dihitung berkali-kali. Polanya selalu VAR buat nyimpen dan RETURN buat hasil akhir. Untung terbesarnya muncul pas satu ekspresi dipanggil berulang, karena VAR cuma dihitung sekali.
VAR di DAX itu cara nyimpen hasil perhitungan ke satu nama, biar bisa kamu pakai ulang di dalam satu measure. Hasilnya rumus jadi lebih pendek, gampang dibaca, dan sering lebih cepat.
Banyak orang nulis measure Power BI yang manggil CALCULATE atau SUM berkali-kali di rumus yang sama. Itu bikin rumus panjang dan lambat.
Di sini aku bahas cara pakai VAR dari nol, kenapa dia bikin query lebih cepat, plus satu contoh nyata dari dataset toko_berkah.
Apa itu VAR di DAX?
VAR adalah kata kunci DAX buat bikin variabel, yaitu wadah sementara yang nyimpen satu nilai atau satu tabel di dalam sebuah measure. Kamu hitung sesuatu sekali, kasih nama, lalu panggil nama itu sebanyak yang kamu mau. Nilainya nggak berubah selama measure dievaluasi.
Variabel ini cuma hidup di dalam measure tempat dia ditulis. Di luar itu, dia nggak dikenal.
Pasangannya selalu RETURN. VAR buat nyimpen, RETURN buat nentuin nilai akhir yang dikeluarin measure.
Gimana cara nulis VAR dan RETURN?
Pola dasarnya: tulis satu atau beberapa VAR, terus tutup dengan RETURN yang berisi hasil akhir. Setiap VAR punya nama dan sebuah ekspresi. RETURN cuma boleh satu, dan dia yang jadi output measure.
Total Growth =
VAR PenjualanSekarang = SUM('penjualan'[total])
VAR PenjualanLalu =
CALCULATE(
SUM('penjualan'[total]),
DATEADD('kalender'[tanggal], -1, MONTH)
)
RETURN
DIVIDE(PenjualanSekarang - PenjualanLalu, PenjualanLalu)
Baca dari atas ke bawah. PenjualanSekarang nyimpen total bulan ini. PenjualanLalu nyimpen total bulan sebelumnya. RETURN ngitung selisihnya dibagi bulan lalu.
Aturan namanya gampang. Mulai dari huruf, boleh pakai spasi kalau dikurung, dan hindari nama yang sama dengan kolom biar nggak bingung.
Kenapa VAR bikin rumus lebih cepat?
VAR dihitung sekali, lalu hasilnya dipakai ulang. Tanpa VAR, tiap kali kamu nulis ekspresi yang sama, mesin DAX ngitung ulang dari awal. Makin sering dipanggil, makin berat.
Coba lihat versi tanpa VAR di bawah. CALCULATE yang sama ditulis dua kali, jadi dievaluasi dua kali.
Total Growth Lambat =
DIVIDE(
SUM('penjualan'[total]) -
CALCULATE(SUM('penjualan'[total]), DATEADD('kalender'[tanggal], -1, MONTH)),
CALCULATE(SUM('penjualan'[total]), DATEADD('kalender'[tanggal], -1, MONTH))
)
Versi VAR di atas cuma manggil perhitungan bulan lalu sekali. Selisih kerjanya kelihatan pas visual punya banyak baris.
Contoh kasus: growth bulanan toko_berkah
toko_berkah punya tabel penjualan 18 bulan, sekitar 42.000 baris transaksi. Aku bikin measure growth bulanan buat kartu KPI di dashboard.
Versi lama manggil CALCULATE bulan lalu dua kali. Versi VAR manggilnya sekali. Di file yang sama, waktu render visual matriks turun dari 1,8 detik ke 0,6 detik. Selisih 1,2 detik itu kerasa banget pas dashboard dibuka orang gudang tiap pagi.
| Versi rumus | Jumlah CALCULATE | Waktu render |
|---|---|---|
| Tanpa VAR | 2x | 1,8 detik |
| Pakai VAR | 1x | 0,6 detik |
Angka detiknya dari dataset ngulikdata, jadi patokan kasar, bukan janji. Tapi arahnya konsisten. Makin sering sebuah ekspresi dipanggil, makin besar untungnya dipindah ke VAR.
Bisa nggak VAR nyimpen tabel?
Bisa. Variabel DAX nggak cuma buat angka. Dia bisa nyimpen sebuah tabel hasil FILTER atau VALUES, terus kamu pakai tabel itu di perhitungan lain.
Pelanggan Aktif =
VAR PelangganBelanja =
FILTER(
VALUES('penjualan'[id_pelanggan]),
CALCULATE(SUM('penjualan'[total])) > 500000
)
RETURN
COUNTROWS(PelangganBelanja)
Di sini PelangganBelanja nyimpen daftar pelanggan yang belanjanya di atas 500 ribu. RETURN tinggal ngitung barisnya.
Kesalahan umum pakai VAR
Yang pertama, lupa kalau nilai VAR itu beku. Variabel diitung di konteks saat dia dideklarasi. Kalau kamu bungkus nama VAR pakai CALCULATE berharap konteksnya berubah, dia nggak akan berubah. Nilainya sudah dikunci.
Kedua, nulis RETURN lebih dari satu. RETURN cuma boleh satu per blok. Kalau butuh cabang, pakai IF di dalam satu RETURN.
Ketiga, ngasih nama VAR sama persis dengan nama kolom. Ini bikin rumus susah dibaca dan gampang salah rujuk. Kasih nama yang beda dan deskriptif.
Keempat, mecah semua jadi VAR sampai belasan baris padahal rumusnya sederhana. Kalau ekspresi cuma dipakai sekali dan pendek, VAR malah nambah baris tanpa untung.
FAQ
Apa bedanya VAR sama measure biasa?
VAR cuma hidup di dalam satu measure dan nilainya beku setelah dihitung. Measure biasa bisa kamu panggil dari mana aja di model dan nilainya nyesuaikan konteks visual. Pakai VAR buat langkah antara di dalam satu rumus. Pakai measure kalau hasilnya mau dipakai ulang di banyak visual atau measure lain.
Apakah VAR selalu bikin lebih cepat?
Nggak selalu. VAR ngasih untung besar kalau ekspresi yang sama dipanggil berkali-kali dalam satu rumus. Kalau ekspresinya cuma dipakai sekali, kecepatannya kurang lebih sama. Untung utamanya di kasus itu justru keterbacaan, bukan speed.
Berapa banyak VAR yang boleh dalam satu measure?
Nggak ada batas praktis yang bakal kamu tabrak. Kamu bisa nulis banyak VAR selama tiap satu punya nama unik dalam blok itu. Patokan sehatnya: pecah kalau bikin rumus lebih jelas, jangan pecah cuma biar kelihatan rapi.
Bisakah satu VAR memakai VAR sebelumnya?
Bisa. VAR yang dideklarasi belakangan boleh manggil VAR yang ada di atasnya. Urutannya penting, jadi tulis dari bahan mentah ke hasil olahan. Yang nggak bisa: manggil VAR yang belum dideklarasi atau yang ada di bawahnya.
Penutup
VAR bikin measure lebih pendek dan gampang dibaca. Untung kecepatannya muncul pas satu ekspresi dipanggil berulang, kayak growth yang manggil bulan lalu dua kali.
Aturan intinya: hitung sekali, kasih nama, tutup dengan satu RETURN, dan inget nilainya beku.
Mau lancar nulis measure? Kulik dulu DAX CALCULATE sama DAX SUMX, terus rapiin pakai VAR. Cek juga halaman fungsi CALCULATE dan glosarium measure buat dasarnya. Referensi resminya ada di dokumentasi DAX Microsoft.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Small Multiples: Teknik Visualisasi Perbandingan (2026)
Satu grafik penuh garis warna-warni bikin mata mumet. Small multiples mecahnya jadi grafik kecil sejenis biar perbandingan antar grup langsung kelihatan. Ini caranya.
Bubble Chart: Kapan Dipakai dan Cara Membacanya (2026)
Bubble chart bisa nunjukin tiga angka sekaligus, tapi gampang bikin salah baca. Ini kapan dia beneran kepake, cara bacanya, plus contoh dari 5 cabang toko.
Treemap: Visualisasi Data Hierarki
Treemap ngerangkum data hierarki jadi kotak bertingkat yang ukurannya mewakili nilai. Ini cara baca dan bikinnya, plus kapan sebaiknya dipakai.