Memvisualisasikan Perubahan Persentase Antar Bulan (MoM) dengan Grafik Piano

Artikel ini menyediakan panduan langkah demi langkah untuk mereplikasi grafik “Piano” atau “Delta”, sebuah visualisasi kreatif yang menunjukkan perubahan antara dua titik waktu, di dalam Power BI. Grafik ini, yang awalnya dibuat di Tableau oleh Guido Jongbloed, sangat efektif untuk menekankan perubahan persentase antar bulan (month-over-month).

Langkah 1:

Memvisualisasikan Tren Penjualan Bulanan Menggunakan Grafik Garis dan Kolom Berkelompok

Grafik ini menggabungkan grafik garis dan kolom berkelompok. Sumbu y-axis nantinya akan berfungsi sebagai referensi untuk menampilkan label data perubahan bulan-ke-bulan (MoM). Kita mulai dengan mendefinisikan measure [Total Sales] untuk memvisualisasikan tren penjualan bulanan.

Measure #01: [Total Sales]

				
					Total Sales = SUM('Sample - Superstore_Orders'[Sales])
				
			

Guna menampilkan perubahan bulan-ke-bulan (MoM) di atas kolom, termasuk perubahan persentase dan panah penunjuk arah (mengindikasikan kenaikan atau penurunan), kita akan mendefinisikan kalkulasi-kalkulasi tambahan untuk menghitung nilai penjualan bulan sebelumnya dan selisih persentase.

Measure #02: [Total Sales PM]

				
					Total Sales PM = 
CALCULATE(
    [Total Sales],
    PREVIOUSMONTH(DimDate[Date])
)
				
			

Measure #03: [% MoM Change_Icon]

				
					% MoM Sales_Icon = 
VAR MoMChange =
    DIVIDE(
        [Total Sales] - [Total Sales PM],
        [Total Sales PM],
        0
    )
RETURN
    IF(
        MoMChange < 0,
       "▼ " & FORMAT(MoMChange, "0.0%"),
        "▲ " & FORMAT(MoMChange, "0.0%") 
    )
				
			

Terakhir, letakkan bulan pada sumbu x dan measure [Total Sales] pada sumbu y, kemudian konfigurasikan kolom-kolomnya sebagai berikut:

Konfigurasi Grafik Kolom (Column Chart)

 

 

 

Langkah 2: 

Membuat Garis Referensi untuk Memposisikan Label Data MoM di Atas Kolom

Untuk menambahkan garis referensi bagi label data perubahan bulan-ke-bulan (MoM) di atas setiap kolom, kita perlu membuat ruang vertikal. Hal ini dicapai dengan membuat measure: mengalikan nilai penjualan maksimum dengan faktor skala. Ruang yang dihasilkan ini memisahkan kolom dari garis referensi dan label.

Measure #04: [Reference Line for Data Labels]

				
					Reference Line for Data Labels = 
VAR _MaxValue =
    MAXX(
        ALL(DimDate), -- Ignores all filters on DimDate
        [Total Sales]
    )
RETURN
    _MaxValue * 4.6
				
			

Berikutnya, tambahkan measure ini pada batas atas batang galat (error bars) dari measure [Total Sales]. Demi kejelasan visual, lakukan penyelarasan nilai nol dan nilai maksimum pada kedua sumbu, sumbu primer dan sumbu sekunder. Hal ini membutuhkan suatu measure tambahan guna menjamin keselarasan yang akurat antara sumbu kolom dan sumbu garis.

Measure #05: [Y-Axis Max]

				
					Y-Axis Max = 
VAR _MaxValue =
    MAXX(
        ALL(DimDate), -- Ignores all filters on DimDate
        [Total Sales]
    )
RETURN
    _MaxValue * 5
				
			
Pembentukan Garis Referensi Guna Memposisikan Label Data MoM di Atas Kolom

Grafik kemudian akan menyerupai tuts piano dengan menambahkan persegi panjang di sekelilingnya:

Penambahan Batas Berbentuk Persegi Panjang pada Grafik

 

 

Langkah 3: 

Menambahkan dan Memusatkan Label Data MoM2: Membuat Garis Referensi untuk Memposisikan Label Data MoM di Atas Kolom

Power BI tidak memiliki opsi bawaan untuk memusatkan label data pada garis. Untuk mengatasi keterbatasan ini, kita akan membuat garis referensi sekunder yang diposisikan sedikit di bawah garis referensi utama kita. Hal ini dicapai dengan menduplikasi measure [Garis Referensi untuk Label Data] kita dengan pengganda yang lebih kecil, memungkinkan kita untuk memposisikan label data di tengah garis referensi utama.

Kalkulasi #06: [Reference Line for Data Labels_Duplicate]

				
					Reference Line Data Label_Duplicate = 
VAR _MaxValue =
    MAXX(
        ALL(DimDate), -- Ignores all filters on DimDate
        [Total Sales]
    )
RETURN
    _MaxValue * 4.42
				
			

Perlu diperhatikan bahwa meskipun Power BI mendukung pemformatan kondisional (conditional formatting) untuk warna font label data, fitur serupa tidak tersedia untuk warna latar belakang. Oleh karena itu, diperlukan pembuatan measure terpisah guna menampilkan kenaikan dan penurunan dengan warna yang berbeda.

Perubahan Positif: Buatlah measure yang menampilkan nilai [Reference Line for Data Labels_Duplicate] hanya apabila total penjualan bulan berjalan melebihi total penjualan bulan sebelumnya; jika tidak, measure tersebut akan mengembalikan nilai kosong.

Measure #07: [Positive MoM Data Label]

				
					Positive MoM Data Label = 
    IF(
        [Total Sales] > [Total Sales PM],
        [Reference Line Data Label_Duplicate]
    )
				
			

Perubahan Negatif: Buatlah measure yang serupa yang menampilkan nilai [Reference Line Data Label_Duplicate] hanya apabila total penjualan bulan berjalan kurang dari total penjualan bulan sebelumnya; jika tidak, measure tersebut akan mengembalikan nilai kosong.

Measure #08: [Negative MoM Data Label]

				
					Negative MoM Data Label = 
    IF(
        [Total Sales] < [Total Sales PM],
        [Reference Line Data Label_Duplicate]
    )
				
			

Dengan menempatkan measure tersebut pada y-axis dan mengaktifkan label data (menggunakan measure “[% MoM Sales_Icon]”), label-label akan tampak terpusat. Mengingat ketersediaan measure terpisah untuk perubahan positif dan negatif, kita dapat mengaplikasikan warna yang berbeda. Dalam contoh ini, #81B29A (hijau) untuk kenaikan dan #E07A5F (merah) untuk penurunan. Warna latar belakang yang berkorespondensi adalah #E6EFEB untuk nilai positif dan #F8E3DD untuk nilai negatif.

Pengaturan Konfigurasi Label Data Penjualan % MoM

 

Hasil akhir yang dicapai adalah sebuah visualisasi dinamis di mana baik gelembung maupun label data terpusatnya mengalami pembaruan secara otomatis berdasarkan seleksi pemotong (slicer), menyajikan pandangan yang jernih terhadap perubahan bulan-ke-bulan disertai kodifikasi warna yang relevan guna mengindikasikan tren performa secara instan.

Konsultasikan kebutuhanmu

Masih bingung dan ada yang ingin dikonsultasikan?
Hubungi admin melalui tombol di bawah ini