Fungsi SUM dalam DAX Power BI

Memulai Perjalanan dengan Fungsi SUM: Lebih dari Sekadar Penjumlahan

Kalau kita bicara soal Power BI, biasanya hal pertama yang kita lakukan setelah berhasil menarik data adalah mencoba melihat totalnya. Entah itu total penjualan, total biaya, atau total jumlah karyawan. Rasanya seperti insting alami, kan? Mirip waktu kita pertama kali belajar Excel, fungsi pertama yang kita ketik hampir pasti adalah =SUM().

Dulu, saya sempat berpikir kalau fungsi SUM di DAX (Data Analysis Expressions) itu bakal sama persis dengan yang ada di Excel. Ternyata, setelah beberapa bulan bergulat dengan laporan yang angkanya kadang “aneh”, saya baru sadar kalau ada nuansa yang berbeda. SUM di Power BI itu sederhana, tapi punya peran yang sangat krusial dalam menentukan bagaimana laporan kita bercerita.

Mari kita santai sejenak dan mengobrol tentang fungsi yang paling sering kita pakai ini. Saya ingin berbagi sedikit pengalaman tentang bagaimana memahami SUM dengan cara yang lebih manusiawi, bukan sekadar rumus matematika.

Dasar yang Sering Terlupakan

Secara teknis, fungsi SUM di DAX itu tugasnya cuma satu: menjumlahkan semua angka dalam satu kolom. Penulisannya simpel sekali:

Total Penjualan = SUM(Penjualan[Nilai_Transaksi])

Satu hal yang perlu kita ingat, SUM di DAX hanya mau menerima satu kolom sebagai argumennya. Dia tidak mau kalau kita kasih dua kolom sekaligus, atau kita kasih operasi perkalian di dalamnya. Kalau kita coba ketik SUM(Harga * Jumlah), Power BI bakal protes dan memberikan garis bawah merah yang ikonik itu.

Kenapa begitu? Karena SUM adalah fungsi agregasi standar. Dia melihat satu kolom secara utuh, lalu menjumlahkan semua baris yang terlihat olehnya. Tapi, “apa yang terlihat olehnya” inilah yang sering membuat kita bingung di awal-awal belajar.

Kenapa Kita Butuh Measure, Bukan Sekadar Tarik Kolom?

Waktu saya baru mulai, saya sering sekali langsung menarik kolom “Sales” ke dalam visual tabel di Power BI. Power BI secara otomatis akan menjumlahkannya. Ini yang sering disebut sebagai Implicit Measure. Memang cepat, tapi jujur saja, ini kebiasaan yang kurang baik kalau kita mau membangun laporan yang rapi.

Biasanya saya menyarankan teman-teman untuk selalu menuliskan rumusnya secara eksplisit, alias membuat Explicit Measure. Kenapa? Karena dengan menuliskan Total Penjualan = SUM(...), kita punya kontrol penuh. Kita bisa memberi nama yang jelas, kita bisa mengatur format angkanya (misalnya jadi Rupiah dengan nol di belakang koma), dan yang paling penting, measure ini bisa kita pakai berkali-kali di visual yang berbeda tanpa harus mengatur ulang formatnya.

Memahami “Kekuatan” SUM Melalui Filter Context

Inilah bagian yang paling seru sekaligus sering bikin dahi berkerut. Di Power BI, angka yang dihasilkan oleh fungsi SUM itu sifatnya dinamis. Dia sangat penurut pada filter yang kita pasang di laporan.

Bayangkan Anda punya toko kelontong. Anda punya catatan penjualan dari Januari sampai Desember. Kalau Anda meletakkan measure SUM(Penjualan[Total]) di sebuah kartu (Card), dia akan menunjukkan total setahun penuh. Tapi, begitu Anda klik “Bulan Maret” di sebuah slicer, angka di kartu itu akan langsung berubah mengikuti penjualan di bulan Maret saja.

Inilah yang kita sebut dengan Filter Context. SUM tidak menjumlahkan seluruh isi tabel di database secara buta. Dia akan bertanya dulu, “Hei, user lagi lihat kategori apa? Bulan apa? Wilayah mana?”. Setelah dia tahu filternya, barulah dia bekerja menjumlahkan baris-baris yang tersisa setelah difilter.

“SUM di DAX itu bukan sekadar rumus, dia adalah cerminan dari apa yang sedang dilihat oleh pengguna laporan kita.”

Kadang saya merasa SUM itu seperti asisten gudang yang sangat patuh. Kalau kita bilang “Tolong jumlahkan semua stok,” dia akan hitung semua. Tapi kalau kita bilang “Tolong jumlahkan stok yang merknya A saja,” dia cuma akan menghitung rak yang isinya merk A. Sesederhana itu cara kerjanya.

Kapan SUM Saja Tidak Cukup?

Ada satu momen dalam perjalanan saya belajar Power BI di mana saya merasa terjebak. Waktu itu saya diminta menghitung total omzet, tapi di tabel saya cuma ada kolom “Harga Satuan” dan “Jumlah Terjual”. Tidak ada kolom “Total Per Baris”.

Insting pertama saya adalah mencoba SUM(Harga * Jumlah). Tapi seperti yang saya bilang tadi, itu tidak bisa. SUM cuma mau satu kolom. Lalu saya terpikir untuk membuat kolom baru di tabel (Calculated Column) yang berisi hasil perkalian itu, baru kemudian di-SUM. Cara ini berhasil, tapi ternyata ini bukan cara yang paling efisien, apalagi kalau data kita jutaan baris.

Di sinilah kita bertemu dengan “kakak” dari SUM, yaitu SUMX.

Analogi Belanja di Pasar

Supaya mudah membedakan SUM dan SUMX, saya sering pakai analogi belanja.

SUM itu seperti Anda sudah punya struk belanja yang di sana sudah tertulis harga total setiap barang. Anda tinggal menjumlahkan total-total tersebut untuk tahu berapa uang yang harus dibayar di kasir.

SUMX itu beda. SUMX itu seperti Anda sedang berdiri di depan rak, membawa catatan. Anda lihat: “Oh, saya beli 3 kaleng susu seharga 15 ribu. Berarti 45 ribu. Simpan di ingatan. Terus beli 2 bungkus roti seharga 10 ribu. Berarti 20 ribu. Tambahkan ke yang tadi, jadi 65 ribu.”

SUMX melakukan perhitungan baris demi baris dulu (perkalian antara Harga dan Jumlah), lalu setelah semuanya selesai, dia menjumlahkan hasilnya. Kodenya biasanya seperti ini:

Total Omzet = SUMX(Penjualan, Penjualan[Harga] * Penjualan[Jumlah])

Kalau data Anda sudah punya kolom “Total” per baris, pakai SUM saja karena lebih ringan performanya. Tapi kalau datanya masih “mentah” dan butuh dikalikan dulu, SUMX adalah sahabat terbaik Anda.

Menghadapi Data yang Tidak Sempurna

Pernah tidak, Anda melakukan SUM tapi hasilnya kosong (Blank)? Atau hasilnya nol padahal Anda tahu ada datanya? Saya sering mengalaminya, dan biasanya itu bukan salah rumusnya, tapi salah datanya.

Satu hal yang sering saya cek adalah tipe data. Kadang kolom yang harusnya angka malah terbaca sebagai teks (String). SUM tidak bisa menjumlahkan kata-kata. Jadi, pastikan di bagian Data View, kolom tersebut tipenya adalah Decimal Number atau Whole Number.

Lalu soal nilai Blank. Power BI itu cukup pintar, dia akan mengabaikan nilai Blank saat menjumlahkan. Tapi kalau seluruh baris yang difilter itu Blank, maka hasilnya akan Blank juga. Kalau Anda lebih suka melihat angka 0 daripada kotak kosong di laporan, Anda bisa sedikit “mengakali” rumusnya menjadi:

Total Penjualan = SUM(Penjualan[Nilai]) + 0

Trik sederhana “+ 0” ini akan memaksa Power BI menampilkan angka 0 jika hasil penjumlahannya tidak ada atau kosong. Kecil, tapi sangat berguna untuk kerapihan visual.

Tips untuk Performa yang Lebih Cepat

Mungkin teman-teman pernah mendengar kalau Power BI itu lambat saat datanya besar. Sebenarnya, DAX itu dirancang untuk sangat cepat kalau kita tahu cara pakainya. Untuk urusan penjumlahan, SUM adalah fungsi yang sangat dioptimalkan.

Saran saya, sebisa mungkin gunakan SUM daripada SUMX kalau memang datanya memungkinkan. SUM bekerja pada level mesin penyimpanan (Storage Engine) yang sangat cepat. Sementara SUMX, karena dia harus menghitung satu-satu setiap baris, dia bekerja di mesin formula (Formula Engine) yang sedikit lebih lambat.

Tentu saja, kalau datanya cuma puluhan ribu baris, perbedaannya tidak akan terasa. Tapi kalau sudah menyentuh angka jutaan, efisiensi ini akan mulai terasa saat user mengklik slicer dan menunggu visualnya berubah.

Contoh Kasus Nyata: Perbandingan Tahun Ini vs Tahun Lalu

Agar lebih membumi, mari kita lihat bagaimana fungsi SUM ini menjadi fondasi untuk analisis yang lebih keren. Misalnya, kita ingin membandingkan penjualan tahun ini dengan tahun lalu.

Langkah pertama, kita buat dulu basic-nya:

Total Penjualan = SUM(Sales[Amount])

Lalu, kita gunakan fungsi CALCULATE untuk memanipulasi filter context-nya supaya SUM tadi menghitung data tahun lalu:

Penjualan Tahun Lalu = CALCULATE([Total Penjualan], SAMEPERIODLASTYEAR('Calendar'[Date]))

Lihat betapa cantiknya kolaborasi ini. Kita tidak perlu menulis ulang rumus SUM-nya. Kita cukup memanggil measure yang sudah kita buat sebelumnya. Inilah alasan kenapa saya selalu cerewet soal membuat Explicit Measure di awal. Ia membuat hidup kita jauh lebih mudah saat laporan mulai berkembang jadi kompleks.

Penutup dari Meja Kerja Saya

Menulis tentang fungsi SUM ini mengingatkan saya pada masa-masa awal saya bingung membedakan antara Calculated Column dan Measure. Dulu saya pikir semuanya sama saja asal hasilnya benar. Tapi seiring berjalannya waktu, saya sadar bahwa memahami hal-hal mendasar seperti SUM dengan benar adalah pondasi untuk menjadi praktisi data yang handal.

Jangan merasa minder kalau Anda masih sering salah klik atau bingung kenapa angkanya tidak muncul. Itu bagian dari proses belajar. Yang penting, jangan berhenti bereksperimen. Coba buat satu measure, lihat bagaimana angkanya berubah saat Anda memfilter kategori yang berbeda, dan coba pahami “kenapa” angka itu muncul.

Dunia data itu luas, tapi semuanya dimulai dari hal sederhana: menjumlahkan satu kolom dengan benar. Semoga obrolan singkat ini bisa membantu Anda lebih pede saat besok membuka Power BI lagi.

Semangat terus belajarnya, dan sampai ketemu di pembahasan DAX lainnya!

Leave a Reply