DAX (Data Analysis Expressions) adalah bahasa formula yang digunakan di Power BI untuk melakukan perhitungan dan analisis data tingkat lanjut. Sederhananya, DAX memungkinkan Anda membuat informasi baru dari data yang sudah ada di model Power BI Anda.
Fungsi DAX:
DAX memiliki banyak fungsi bawaan yang dapat digunakan untuk berbagai tujuan, seperti:
- Agregasi: Menghitung nilai total, rata-rata, minimum, maksimum, dan lainnya dari suatu kolom.
- Filter: Memfilter data berdasarkan kriteria tertentu.
- Tanggal dan Waktu: Melakukan operasi pada tanggal dan waktu, seperti menghitung selisih hari atau mengekstrak bulan dari tanggal.
- Logika: Menggunakan pernyataan IF, AND, OR untuk membuat perhitungan bersyarat.
- Teks: Memanipulasi teks, seperti menggabungkan string atau mengekstrak substring.
Kegunaan DAX:
DAX sangat berguna untuk:
- Membuat kolom terhitung: Menambahkan kolom baru ke tabel yang berisi nilai yang dihitung berdasarkan kolom lain.
- Membuat measure: Menghitung metrik yang tidak tersedia di data asli, seperti rasio, persentase, atau pertumbuhan year-over-year.
- Membuat tabel terhitung: Membuat tabel baru berdasarkan data yang ada, seperti tabel ringkasan atau tabel yang memfilter data tertentu.
Contoh Penggunaan DAX:
- Menghitung Total Penjualan:
Misalkan Anda memiliki tabel “Penjualan” dengan kolom “Jumlah” dan “Harga”. Anda dapat membuat measure dengan DAX untuk menghitung total penjualan:
Total Penjualan = SUMX(Penjualan, Penjualan[Jumlah] * Penjualan[Harga])
Formula ini akan mengalikan “Jumlah” dengan “Harga” untuk setiap baris di tabel “Penjualan” dan menjumlahkan hasilnya.
- Menghitung Persentase Penjualan:
Anda dapat membuat measure lain untuk menghitung persentase penjualan setiap produk terhadap total penjualan:
Persentase Penjualan =
DIVIDE(
SUMX(Penjualan, Penjualan[Jumlah] * Penjualan[Harga]),
CALCULATE(SUMX(Penjualan, Penjualan[Jumlah] * Penjualan[Harga]), ALL(Penjualan))
)
Formula ini membagi total penjualan produk dengan total penjualan keseluruhan, memberikan persentase kontribusi setiap produk.
- Membuat Kolom Kategori Usia:
Anda dapat membuat kolom terhitung untuk mengkategorikan pelanggan berdasarkan usia:
Kategori Usia =
IF(
Usia < 25, “Muda”,
IF(
Usia < 45, “Dewasa”,
“Tua”
)
)
Formula ini akan memeriksa usia pelanggan dan menetapkan kategori “Muda”, “Dewasa”, atau “Tua” berdasarkan rentang usia.
Manfaat Menggunakan DAX:
- Fleksibilitas: DAX memungkinkan Anda melakukan perhitungan yang kompleks dan dinamis yang tidak dapat dilakukan dengan fungsi Excel biasa.
- Efisiensi: DAX dioptimalkan untuk bekerja dengan model data tabular, sehingga perhitungannya cepat dan efisien.
- Reusable: Rumus DAX dapat digunakan kembali di berbagai laporan dan visualisasi, sehingga menghemat waktu dan tenaga.
Lebih Lanjut tentang DAX:
Meskipun contoh-contoh sebelumnya menunjukkan dasar-dasar DAX, bahasa ini memiliki kemampuan yang jauh lebih luas. Berikut beberapa aspek DAX yang lebih mendalam:
Konteks dalam DAX:
Pemahaman tentang konteks sangat penting dalam DAX. Konteks mengacu pada lingkungan di mana ekspresi DAX dievaluasi. Ada dua jenis konteks utama:
- Konteks Baris: Setiap rumus DAX dievaluasi untuk setiap baris dalam tabel. Ini berarti bahwa rumus dapat mengakses nilai dari kolom lain dalam baris yang sama.
- Konteks Filter: Filter yang diterapkan pada visualisasi atau slicer juga memengaruhi hasil perhitungan DAX. DAX akan menghitung ekspresi hanya untuk data yang memenuhi filter tersebut.
Fungsi DAX Lanjutan:
DAX menyediakan berbagai fungsi lanjutan untuk analisis data yang lebih kompleks, seperti:
- Fungsi Time Intelligence: TOTALYTD, SAMEPERIODLASTYEAR, DATEADD untuk menganalisis data time series.
- Fungsi Iterasi: SUMX, AVERAGEX, RANKX untuk melakukan perhitungan berulang pada tabel.
- Fungsi Table Manipulation: FILTER, UNION, INTERSECT untuk memanipulasi tabel dan membuat tabel baru.
Variabel dalam DAX:
Variabel dapat digunakan untuk menyimpan hasil perhitungan sementara dan meningkatkan keterbacaan rumus DAX.
Contoh:
Total Penjualan = VAR HargaRataRata = AVERAGE(Penjualan[Harga])
RETURN
SUMX(Penjualan, Penjualan[Jumlah] * HargaRataRata)
Optimasi DAX:
Penulisan rumus DAX yang efisien sangat penting untuk kinerja laporan Power BI. Beberapa tips optimasi:
- Gunakan fungsi yang tepat: Pilih fungsi yang paling efisien untuk tugas tertentu.
- Hindari perhitungan berlebihan: Hindari menghitung nilai yang sama berulang kali. Gunakan variabel untuk menyimpan hasil perhitungan.
- Minimalkan penggunaan CALCULATE: Fungsi CALCULATE dapat memengaruhi kinerja jika digunakan secara berlebihan.
DAX dan Relasi Antar Tabel:
DAX memungkinkan Anda memanfaatkan relasi antar tabel dalam model data untuk melakukan analisis yang lebih mendalam. Anda dapat menggunakan fungsi seperti RELATED dan RELATEDTABLE untuk mengakses data dari tabel terkait.
Sumber Daya Belajar DAX:
- Dokumentasi Microsoft: Microsoft menyediakan dokumentasi DAX yang komprehensif di situs web mereka.
- Komunitas Power BI: Forum dan komunitas online adalah tempat yang bagus untuk bertanya, berbagi pengetahuan, dan belajar dari pengguna DAX lainnya.
- Buku dan Kursus Online: Ada banyak buku dan kursus online yang mengajarkan DAX, baik untuk pemula maupun pengguna tingkat lanjut.
Catatan:
DAX adalah bahasa yang sangat kuat dan fleksibel untuk analisis data di Power BI. Dengan mempelajari dan menguasai DAX, Anda dapat membuka potensi penuh Power BI dan membuat laporan yang lebih insightful dan efektif untuk pengambilan keputusan bisnis.
Rumus DAX di Power BI beserta deskripsi singkatnya, yang disusun dalam format tabel.
Rumus DAX di Power BI
Kategori | Rumus | Deskripsi |
---|---|---|
Agregasi | SUM | Menjumlahkan semua angka dalam kolom. |
AVERAGE | Menghitung rata-rata dari semua angka dalam kolom. | |
MIN | Mengembalikan nilai terkecil dalam kolom. | |
MAX | Mengembalikan nilai terbesar dalam kolom. | |
COUNT | Menghitung jumlah baris dalam kolom. | |
COUNTA | Menghitung jumlah baris dalam kolom yang tidak kosong. | |
DISTINCTCOUNT | Menghitung jumlah nilai unik dalam kolom. | |
Logika | IF | Mengembalikan satu nilai jika kondisi benar dan nilai lain jika kondisi salah. |
AND | Mengembalikan TRUE jika semua argumen bernilai TRUE. | |
OR | Mengembalikan TRUE jika setidaknya satu argumen bernilai TRUE. | |
NOT | Membalikkan nilai logika dari argumennya. | |
Teks | CONCATENATE | Menggabungkan dua string teks. |
LEFT | Mengembalikan sejumlah karakter tertentu dari awal string teks. | |
RIGHT | Mengembalikan sejumlah karakter tertentu dari akhir string teks. | |
MID | Mengembalikan sejumlah karakter tertentu dari posisi tertentu dalam string teks. | |
LEN | Mengembalikan panjang string teks. | |
UPPER | Mengubah string teks menjadi huruf besar. | |
LOWER | Mengubah string teks menjadi huruf kecil. | |
Tanggal dan Waktu | TODAY | Mengembalikan tanggal saat ini. |
NOW | Mengembalikan tanggal dan waktu saat ini. | |
YEAR | Mengembalikan tahun dari tanggal. | |
MONTH | Mengembalikan bulan dari tanggal. | |
DAY | Mengembalikan hari dari tanggal. | |
HOUR | Mengembalikan jam dari waktu. | |
MINUTE | Mengembalikan menit dari waktu. | |
SECOND | Mengembalikan detik dari waktu. | |
Filter | FILTER | Mengembalikan tabel yang difilter. |
ALL | Menghapus semua filter dari tabel. | |
ALLEXCEPT | Menghapus semua filter dari tabel kecuali filter pada kolom yang ditentukan. | |
Informasi | ISBLANK | Memeriksa apakah nilai kosong. |
ISNUMBER | Memeriksa apakah nilai adalah angka. | |
ISTEXT | Memeriksa apakah nilai adalah teks. | |
Matematika | ABS | Mengembalikan nilai absolut dari angka. |
ROUND | Membulatkan angka ke jumlah desimal tertentu. | |
SQRT | Mengembalikan akar kuadrat dari angka. | |
POWER | Mengembalikan angka yang dipangkatkan. |
Catatan:
- Ini hanyalah sebagian kecil dari rumus DAX yang tersedia di Power BI.
- Untuk daftar lengkap dan penjelasan lebih rinci tentang setiap rumus, Anda dapat mengunjungi situs web Microsoft Power BI.
- Beberapa rumus mungkin memiliki argumen opsional yang tidak dicantumkan dalam tabel ini.
- Ada juga kategori rumus lain seperti Tabel, Relasi, dan Iterasi yang tidak saya cantumkan di sini.
Rumus DAX lagi ke dalam tabel:
Kategori | Rumus | Deskripsi |
---|---|---|
Tabel | SUMMARIZE | Membuat tabel ringkasan yang mengelompokkan data berdasarkan satu atau lebih kolom. |
ADDCOLUMNS | Menambahkan kolom terhitung ke tabel. | |
SELECTCOLUMNS | Memilih kolom tertentu dari tabel. | |
UNION | Menggabungkan dua atau lebih tabel menjadi satu tabel. | |
INTERSECT | Mengembalikan baris yang sama dari dua tabel. | |
EXCEPT | Mengembalikan baris dari tabel pertama yang tidak ada di tabel kedua. | |
Relasi | RELATED | Mengembalikan nilai dari tabel terkait. |
RELATEDTABLE | Mengembalikan tabel terkait. | |
Iterasi | SUMX | Menjumlahkan ekspresi untuk setiap baris dalam tabel. |
AVERAGEX | Menghitung rata-rata ekspresi untuk setiap baris dalam tabel. | |
MAXX | Mengembalikan nilai maksimum ekspresi untuk setiap baris dalam tabel. | |
MINX | Mengembalikan nilai minimum ekspresi untuk setiap baris dalam tabel. | |
RANKX | Memberikan peringkat pada baris dalam tabel berdasarkan ekspresi. | |
Waktu Intelijen | TOTALYTD | Menghitung total year-to-date. |
TOTALMTD | Menghitung total month-to-date. | |
TOTALQTD | Menghitung total quarter-to-date. | |
DATEADD | Menambahkan atau mengurangi jumlah interval waktu ke tanggal. | |
DATESBETWEEN | Mengembalikan tabel yang berisi tanggal antara dua tanggal. | |
PARALLELPERIOD | Mengembalikan periode paralel dari tanggal yang ditentukan. |
Contoh Penggunaan:
- SUMMARIZE(Penjualan, Penjualan[Kategori], “Total Penjualan”, SUM(Penjualan[Jumlah])): Membuat tabel ringkasan yang mengelompokkan data penjualan berdasarkan kategori dan menghitung total penjualan untuk setiap kategori.
- ADDCOLUMNS(Produk, “Harga Diskon”, Produk[Harga] * 0.9): Menambahkan kolom “Harga Diskon” ke tabel Produk, di mana harga diskon dihitung sebagai 90% dari harga asli.
- RELATED(Pelanggan[Nama]): Mengembalikan nama pelanggan dari tabel Pelanggan yang terkait dengan tabel Penjualan.
- SUMX(Penjualan, Penjualan[Jumlah] * Penjualan[Harga]): Menghitung total penjualan dengan mengalikan jumlah dan harga untuk setiap baris dalam tabel Penjualan.
Tips:
- Gunakan IntelliSense di Power BI Desktop untuk membantu Anda menulis rumus DAX dengan benar.
- Pelajari tentang konteks baris dan konteks filter dalam DAX untuk memahami bagaimana rumus dievaluasi.
- Gunakan fungsi CALCULATE untuk memodifikasi konteks filter dan melakukan perhitungan yang lebih kompleks.