DAX Data Analysis Expressions

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:

  1. 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.

  1. 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.

  1. 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.

 

Leave a Reply