Apa itu DAX?
DAX atau Data Analysis Expressions menggerakkan semua perhitungan yang dapat Anda lakukan di Power BI. Rumus DAX serbaguna, dinamis, dan sangat kuat – memungkinkan Anda membuat field dan tabel baru dalam model Anda. DAX adalah bahasa rumus yang digunakan di Power BI, Power Pivot, dan model SSAS Tabular
Rumus DAX tersusun dari 3 komponen inti, dan tutorial ini akan membahas masing-masing:
- Sintaks – Sintaks DAX yang benar terdiri dari berbagai elemen, beberapa di antaranya umum untuk semua rumus.
- Fungsi – Fungsi DAX adalah rumus yang telah ditentukan sebelumnya yang menerima beberapa parameter dan melakukan perhitungan tertentu.
- Konteks – DAX menggunakan konteks untuk menentukan baris mana yang harus digunakan untuk melakukan perhitungan.
Mengapa DAX Penting di Power BI?
Rumus DAX memungkinkan Anda memaksimalkan data dan Power BI untuk menyelesaikan masalah bisnis secara efisien.
Anda dapat melakukan perhitungan sederhana (seperti jumlah atau rata-rata) dan membuat sebagian besar visual tanpa menyentuh DAX. Misalnya, jika Anda ingin membuat bagan sederhana yang menampilkan total laba, Anda bisa menyeret field laba ke bagian Values pada bagan, dan itu akan menjumlahkan baris pada field tersebut. Namun, ada dua kasus ketika lebih baik membuat rumus DAX:
- Jika Anda ingin menggunakan kembali suatu rumus di beberapa tempat, seperti di beberapa bagan atau sebagai ekspresi dalam rumus DAX lainnya. Dalam hal ini, menggunakan rumus DAX akan membuat laporan Anda lebih efisien dan lebih mudah diubah di masa mendatang karena Anda hanya perlu mengubah satu rumus, bukan mengubah banyak rumus individual di setiap tempat rumus itu digunakan.
- Jika Anda ingin membuat rumus yang kompleks atau disesuaikan di mana
SUMatauAVERAGEsederhana tidak cukup untuk masalah bisnis yang ingin Anda selesaikan.
Di Mana Rumus DAX Digunakan di Power BI?
Ada tiga cara Anda dapat menggunakan rumus DAX di Power BI:
- Tabel Terhitung (Calculated Tables) - Perhitungan ini akan menambahkan tabel tambahan ke laporan berdasarkan sebuah rumus.
- Kolom Terhitung (Calculated Columns) - Perhitungan ini akan menambahkan kolom tambahan ke sebuah tabel berdasarkan sebuah rumus. Kolom-kolom ini diperlakukan seperti field lain di dalam tabel.
- Measure - Perhitungan ini akan menambahkan ringkasan atau ukuran agregat ke sebuah tabel berdasarkan sebuah rumus.
Perbedaan utama antara ketiga jenis perhitungan ini adalah konteksnya (lebih lanjut nanti) dan keluaran yang dihasilkan.
Untuk menambahkan salah satu jenis perhitungan ini ke model, buka tab Modeling pada pita. Di sini, Anda akan menemukan tiga pilihan untuk menambahkan measure baru, kolom terhitung, atau tabel. Sebagai alternatif, Anda dapat mengklik kanan sebuah tabel di panel Fields dan mendapatkan opsi untuk menambahkan measure baru atau kolom terhitung di menu drop-down.

Mulai Belajar Power BI Secara Gratis
DAX Functions in Power BI
Cara Menulis Rumus DAX
Rumus DAX intuitif dan mudah dibaca. Ini memudahkan untuk memahami dasar-dasar DAX sehingga Anda dapat mulai menulis rumus sendiri dengan cukup cepat. Mari kita bahas blok bangunan dari sintaks DAX yang benar.

- Nama measure atau kolom terhitung
- Operator sama dengan (“=”) menunjukkan awal rumus
- Sebuah fungsi DAX
- Tanda kurung buka (dan tutup) (“()”)
- Referensi kolom dan/atau tabel
- Perhatikan bahwa setiap parameter berikutnya dalam sebuah fungsi dipisahkan dengan koma (“,”)
Fungsi DAX juga dapat disarang satu sama lain untuk melakukan beberapa operasi secara efisien. Ini dapat menghemat banyak waktu saat menulis rumus DAX. Misalnya, sering kali berguna memiliki beberapa pernyataan IF bersarang atau menggunakan fungsi IFERROR untuk membungkus fungsi lain sehingga kesalahan apa pun dalam rumus direpresentasikan oleh nilai yang Anda tentukan.
Beberapa fungsi DAX yang paling umum digunakan dalam laporan adalah:
- Perhitungan sederhana:
COUNT,DISTINCTCOUNT,SUM,AVERAGE,MIN,MAX. SUMMARISE: Mengembalikan sebuah tabel yang biasanya digunakan untuk menerapkan agregasi lebih lanjut pada berbagai pengelompokan.CALCULATE: Melakukan agregasi bersama satu atau lebih filter. Saat Anda menentukan lebih dari satu filter, fungsi akan melakukan perhitungan di mana semua filter bernilai true.IF: Berdasarkan suatu kondisi logis, fungsi ini akan mengembalikan nilai berbeda jika true atau false. Ini mirip dengan operasiCASE WHENdi SQL.IFERROR: Mencari kesalahan pada fungsi di dalamnya dan mengembalikan hasil yang ditentukanISBLANK: Fungsi ini memeriksa apakah baris dalam sebuah kolom kosong dan mengembalikan true atau false. Berguna bersama fungsi lain seperti IF.EOMONTH: Mengembalikan hari terakhir pada bulan dari tanggal tertentu (referensi kolom dalam format tanggal) untuk sejumlah bulan di masa lalu atau masa depan.DATEDIFF: mengembalikan selisih antara dua tanggal (keduanya sebagai referensi kolom dalam format tanggal) dalam hari, bulan, kuartal, tahun, dan seterusnya.
Memahami Konteks dalam Rumus DAX
Rumus DAX di Power BI bersifat dinamis dan berubah sesuai dengan konteks tempat rumus dibuat. Penting untuk memahami cara kerja konteks di DAX, karena dapat membantu Anda menghindari banyak kebingungan saat menemui kesalahan dalam rumus Anda.
Ada dua jenis konteks utama dalam DAX: konteks baris dan konteks filter.
Konteks baris
Ini mengacu pada “baris saat ini” di semua kolom pada suatu tabel dan meluas ke semua kolom di tabel terkait. Jenis konteks ini memberi tahu rumus DAX baris mana yang akan digunakan untuk rumus tertentu.
Berikut contoh rumus untuk kolom terhitung yang memiliki konteks baris:
Cost Price Per Unit = financials[COGS] / financials[Units Sold]

Pada contoh ini, Cost Price Per Unit dihitung per baris. Artinya DAX perlu mengetahui baris saat ini saat memproses dataset, melakukan perhitungan, dan mengisi kolom baru dengan hasilnya.
Konteks baris bersifat implisit dalam kolom terhitung. Ini karena perhitungan yang dilakukan dalam kolom terhitung dilakukan per baris; dengan demikian, konteks baris ditetapkan secara default. Namun, ini tidak berlaku pada measure karena agregasi diterapkan untuk semua baris dalam sebuah tabel. Perhitungan ini tidak perlu mengetahui baris saat ini karena semua baris diagregasikan bersama.
Sebagai contoh sebuah measure, pertimbangkan rumus DAX berikut:
Profit margin = SUM ( financials[Profit] ) / SUM ( financials[Sales] )
Dalam hal ini, seluruh kolom Profit dijumlahkan untuk menghasilkan satu angka, lalu dibagi dengan jumlah seluruh kolom Sales. DAX tidak perlu mengetahui baris saat ini karena melakukan agregasi. Jadi, measure ini tidak memiliki konteks baris.
Untuk secara eksplisit menetapkan konteks baris dalam sebuah measure, Anda perlu menggunakan fungsi khusus yang disebut iterator. Contoh fungsi iterator adalah SUMX, AVERAGEX, dan COUNTX. Fungsi-fungsi ini terlebih dahulu melakukan perhitungan per baris, kemudian melakukan agregasi akhir pada hasilnya (misalnya jumlah, rata-rata, hitung, dan sebagainya). Dengan cara ini, konteks baris ditetapkan secara eksplisit menggunakan iterator ini.
Mari kita lihat contoh fungsi iterator yang digunakan:
Average Cost Per Unit = AVERAGEX ( financials, financials[COGS] / financials[Units Sold] )
Contoh ini melakukan dua perhitungan: pertama, ekspresi dievaluasi per baris, kemudian hasilnya diterapkan ke fungsi AVERAGE. Cara alternatif untuk mencapai hasil yang sama adalah dengan terlebih dahulu membuat kolom terhitung Cost Price Per Unit seperti di atas, lalu membuat measure AVERAGE terpisah untuk kolom tersebut. Namun, mengetahui kapan harus menggunakan fungsi iterator ini dapat membuat laporan Anda lebih efisien dan menggunakan lebih sedikit memori, karena Anda dapat secara efektif melakukan dua perhitungan hanya dengan satu rumus.
Konteks filter
Konteks filter diterapkan di atas konteks baris dan mengacu pada subset baris atau kolom yang ditentukan sebagai filter dalam laporan. Filter dapat diterapkan dengan beberapa cara:
- Langsung di dalam rumus DAX
- Menggunakan panel filter
- Menggunakan visual slicer
- Melalui field yang membentuk sebuah visual (seperti baris dan kolom dalam matriks)
Contoh yang baik dalam menambahkan konteks filter ke rumus DAX adalah menggunakan fungsi CALCULATE, yang memungkinkan Anda menambahkan satu atau lebih parameter filter ke measure. Pada contoh di bawah, kita membuat measure margin laba yang difilter untuk USA saja:
USA Profit Margin = CALCULATE ( SUM ( financials[Profit] ) / SUM ( financials[Sales] ), financials[Country] = "United States of America")
Tantangan Umum dan Kesalahan Pemula dalam DAX
Saat mempelajari DAX, pemula sering menemui jebakan umum yang dapat membuat pemahaman dan debug rumus menjadi lebih menantang. Berikut beberapa masalah dan kiat untuk mengatasinya:
1. Tertukar antara konteks baris dan filter: Banyak pemula kesulitan membedakan konteks baris dan filter. Ingat bahwa konteks baris mengacu pada operasi yang dilakukan per baris (misalnya, kolom terhitung). Sebaliknya, konteks filter menerapkan filter tambahan pada perhitungan (misalnya, slicer atau filter dalam laporan). Kiat: Gunakan fungsi iterator seperti SUMX atau AVERAGEX untuk secara eksplisit menetapkan konteks baris dalam measure.
2. Terlalu sering menggunakan kolom terhitung: Meskipun kolom terhitung berguna, sering kali kolom ini dapat digantikan oleh measure, yang lebih hemat memori dan dinamis. Membuat kolom terhitung yang tidak perlu dapat membengkakkan model data Anda. Kiat: Gunakan measure sebisa mungkin, karena dihitung saat dibutuhkan dan tidak secara permanen menambah ukuran model data Anda.
3. Mengabaikan konvensi penamaan yang baik: Measure atau kolom terhitung yang diberi nama kurang baik dapat cepat membingungkan dalam laporan yang kompleks. Kiat: Terapkan konvensi penamaan yang konsisten dan deskriptif untuk menata rumus DAX Anda.
4. Mengabaikan optimasi kinerja: Rumus DAX bisa menjadi lambat pada dataset besar jika tidak dioptimalkan. Rumus yang terlalu rumit atau penggunaan fungsi bersarang berlebihan dapat menimbulkan masalah kinerja. Kiat: Gunakan alat seperti DAX Studio untuk menganalisis dan mengoptimalkan rumus Anda, dan pertimbangkan menyederhanakan perhitungan jika memungkinkan.
Praktik Terbaik untuk Mengoptimalkan Rumus DAX
Untuk meningkatkan kinerja rumus DAX, terutama pada dataset besar, ikuti praktik terbaik berikut:
| Praktik terbaik | Deskripsi |
|---|---|
| Gunakan measure dibanding kolom terhitung | Measure bersifat dinamis dan dihitung saat diminta, sehingga mengonsumsi lebih sedikit memori daripada kolom terhitung. |
| Hindari iterasi bersarang | Minimalkan penggunaan fungsi bersarang yang kompleks (misalnya, SUMX, AVERAGEX) untuk mencegah hambatan kinerja. |
| Filter sejak awal | Terapkan filter di sumber data atau dalam rumus DAX untuk mengurangi jumlah baris yang diproses. |
| Manfaatkan variabel | Gunakan VAR untuk menyimpan hasil antara dan menghindari perhitungan berulang dalam satu rumus. |
| Sederhanakan relasi | Pastikan model data memiliki relasi yang jelas dan tabel yang diindeks dengan tepat untuk pemrosesan yang lebih cepat. |
| Optimalkan kardinalitas | Kurangi jumlah nilai unik pada kolom yang digunakan untuk pemfilteran atau penggabungan guna meningkatkan kinerja. |
Kesimpulan
Sekarang Anda memiliki beberapa alat dasar DAX untuk dicoba, dan ini baru permukaan dari semua yang dapat dilakukan DAX. Dengan lebih dari 250 fungsi, perjalanan menuju penguasaan DAX itu menantang sekaligus bermanfaat. Anda dapat mulai meningkatkan keterampilan DAX Anda hari ini dengan kursus Introduction to DAX in Power BI kami!
FAQ
Apa itu DAX di Power BI?
DAX atau Data Analysis Expressions memungkinkan Anda melakukan perhitungan yang membuat field baru bahkan tabel baru dalam model Anda.
Apa kepanjangan DAX di Power BI?
Data Analysis Expressions
Bagaimana cara menulis rumus DAX di Power BI?
Rumus DAX dimasukkan ke bilah rumus tepat di bawah pita di Power BI. Mulailah dengan memberi nama rumus lalu ikuti dengan tanda sama dengan (“=”). Kemudian tuliskan rumus Anda menggunakan fungsi, konstanta, atau string.
Bagaimana cara menulis measure DAX di Power BI?
Buat measure DAX dengan memilih ‘New Measure’ dari tab Modeling pada pita atau dengan mengklik kanan sebuah tabel di panel Fields dan memilih ‘New Measure’ dari menu drop-down.
Bagaimana cara membuat rumus ‘case when’ menggunakan DAX di Power BI?
Rumus ‘case when’ dibuat menggunakan fungsi IF dalam rumus DAX.
Bagaimana cara menggabungkan dua tabel di Power BI menggunakan DAX?
Cara termudah untuk menggabungkan dua tabel adalah memanfaatkan relasi yang sudah ada di antara tabel dan menggunakan fungsi ADDCOLUMNS untuk menambahkan kolom tambahan ke sebuah tabel. Fungsi ini melakukan left join.
Bagaimana cara menggunakan klausa where menggunakan DAX di Power BI?
Klausa where mudah diterapkan menggunakan parameter filter di DAX. Misalnya, fungsi CALCULATE menerima suatu ekspresi dan beberapa parameter filter opsional. Ini membantu mengendalikan bagaimana bagan dan masukan pengguna memengaruhi fungsi-fungsi tersebut.
Bagaimana cara membuat tabel statis di Power BI menggunakan fungsi DAX DATATABLE?
Fungsi DATATABLE adalah cara yang mudah dan praktis untuk membuat tabel statis yang tidak akan menyegarkan kecuali fungsi DAX secara eksplisit diubah. Sintaks DATATABLE adalah:
DATATABLE (
<column1_name>, <column1_datatype>,
<column2_name>, <column2_datatype>,
{
{ <value1_row1>, <value2_row1> },
{ <value1_row2>, <value2_row2> }
}
)
Bagaimana cara mengganti nilai di Power BI menggunakan DAX?
Ada dua cara untuk mengganti nilai string dalam sebuah kolom menggunakan DAX, yaitu dengan fungsi REPLACE dan SUBSTITUTE. Fungsi REPLACE akan mengganti string berdasarkan posisi tepat dan jumlah karakter yang Anda tentukan. Di sisi lain, fungsi SUBSTITUTE akan mengganti string yang cocok persis, terlepas dari posisinya.
Bagaimana cara saya belajar menggunakan DAX di Power BI?
DAX in Power BI dari DataCamp. Kursus ini mengajarkan beragam perhitungan DAX dari tingkat awal hingga lanjutan dan cara terbaik menggunakannya dalam laporan Anda.

