Power Query Bahasa M: Dasar untuk Analis (2026)
TL;DR
Bahasa M adalah bahasa formula yang jalanin tiap langkah transformasi di Power Query, baik di Excel maupun Power BI. Strukturnya pakai blok let...in: bagian let nyimpen langkah-langkah, bagian in nentuin hasil akhir. Kamu nggak harus ngetik M dari nol karena tiap klik di editor otomatis nulis kodenya, tapi paham M bikin kamu bisa benerin dan bikin transformasi yang nggak ada tombolnya.
Bahasa M adalah bahasa formula yang dipakai Power Query buat jalanin tiap langkah pembersihan dan transformasi data. Tiap kali kamu klik tombol di Power Query, Excel atau Power BI diam-diam nulis satu baris M di belakang layar.
Buat analis, ini kabar bagus. Kamu bisa mulai tanpa ngerti M sama sekali, terus pelan-pelan baca kodenya pas butuh sesuatu yang tombolnya nggak ada.
Di sini aku bahas struktur dasar M, fungsi yang paling sering kepakai, dan satu contoh bersihin data penjualan sampai rapi.
Apa itu Bahasa M di Power Query?
Bahasa M adalah bahasa fungsional yang jadi mesin di balik Power Query. Tiap langkah transformasi, mulai dari hapus kolom sampai gabung tabel, diterjemahin jadi satu ekspresi M. Kode ini jalan berurutan dari atas ke bawah, tiap langkah pakai hasil langkah sebelumnya.
Nama resminya Power Query M Formula Language. Orang biasa nyebut M aja, dari kata "mashup", karena awalnya dipakai buat nge-mashup data dari banyak sumber.
Yang penting dipahami: M itu case-sensitive. Table.SelectRows beda sama table.selectrows. Salah huruf besar-kecil langsung error.
Kenapa analis perlu paham Bahasa M?
Kamu perlu M pas kebutuhanmu udah lewat dari yang bisa dilakuin tombol. Editor Power Query cuma nampilin transformasi paling umum. Begitu kamu mau logika kondisional yang rumit atau fungsi custom, kamu harus turun ke kode M.
Contoh nyata yang sering muncul di kerjaan:
- Bikin kolom yang aturannya beda-beda tergantung isi kolom lain.
- Gabung 12 file Excel dari folder yang sama jadi satu tabel.
- Benerin langkah yang error gara-gara nama kolom berubah di sumber data.
Semua itu jauh lebih gampang kalau kamu bisa baca dan sedikit ngedit M. Kalau kamu udah kenal DAX di Power BI, anggap M itu saudaranya yang ngurus tahap sebelum data masuk model.
Gimana struktur dasar sintaks Bahasa M?
Tiap query M dibungkus dalam blok let ... in. Bagian let isinya daftar langkah, tiap langkah punya nama. Bagian in nunjuk langkah mana yang jadi hasil akhir.
let
Sumber = Excel.CurrentWorkbook(){[Name="TabelPenjualan"]}[Content],
UbahTipe = Table.TransformColumnTypes(Sumber, {{"tanggal", type date}, {"total", Int64.Type}}),
Difilter = Table.SelectRows(UbahTipe, each [total] > 0)
in
DifilterBaca dari atas: langkah Sumber ambil tabel dari workbook. Langkah UbahTipe ubah tipe kolom tanggal dan total. Langkah Difilter buang baris yang totalnya nol atau minus.
Perhatiin tiap langkah manggil nama langkah sebelumnya. UbahTipe pakai Sumber, Difilter pakai UbahTipe. Nama langkah ini persis yang muncul di panel Applied Steps di sebelah kanan editor.
Kata each itu cara singkat nulis fungsi buat tiap baris. each [total] > 0 artinya "cek kolom total tiap baris, ambil yang lebih dari 0".
Cara buka Advanced Editor buat lihat kode M
Semua kode M bisa kamu lihat lewat Advanced Editor. Ini langkahnya di Excel:
- Buka tab Data, klik Get Data, lalu Launch Power Query Editor.
- Pilih salah satu query di panel kiri.
- Di tab Home, klik tombol Advanced Editor.
- Jendela kode M kebuka. Di sini kamu bisa baca dan edit langsung.
- Selesai edit, klik Done. Kalau ada typo, editor bakal kasih tanda error di bawah.
Di Power BI Desktop langkahnya mirip: Transform data, pilih query, lalu Advanced Editor. Kode M-nya sama persis.
Fungsi Bahasa M apa yang paling sering dipakai?
Kebanyakan kerjaan transformasi cuma butuh belasan fungsi. Ini yang paling sering muncul:
| Fungsi | Gunanya |
|---|---|
Table.SelectRows | Filter baris berdasarkan kondisi |
Table.TransformColumnTypes | Ubah tipe data kolom |
Table.AddColumn | Tambah kolom baru dari rumus |
Table.RemoveColumns | Hapus kolom yang nggak dipakai |
Table.Group | Kelompokkan dan hitung agregat |
Text.Upper / Text.Trim | Rapikan teks |
List.Sum | Jumlahkan daftar angka |
Date.Year / Date.Month | Ambil bagian dari tanggal |
Nama fungsi M selalu berpola Kategori.Aksi. Table. buat operasi tabel, Text. buat teks, Date. buat tanggal. Pola ini bikin kamu bisa nebak nama fungsi yang belum pernah kamu pakai.
Contoh Kasus: Rapikan Data Penjualan toko_berkah
Anggap kamu punya data ekspor dari kasir toko_berkah. Kolomnya berantakan: nama kota huruf kecil semua, ada spasi nyelip, dan beberapa baris totalnya kosong.
Query M ini bersihin semuanya sekaligus:
let
Sumber = Excel.CurrentWorkbook(){[Name="transaksi"]}[Content],
UbahTipe = Table.TransformColumnTypes(Sumber, {{"tanggal", type date}, {"total", Int64.Type}}),
RapikanKota = Table.TransformColumns(UbahTipe, {{"kota", each Text.Proper(Text.Trim(_)), type text}}),
BuangKosong = Table.SelectRows(RapikanKota, each [total] <> null and [total] > 0),
TambahBulan = Table.AddColumn(BuangKosong, "bulan", each Date.Month([tanggal]), Int64.Type)
in
TambahBulanLangkah RapikanKota ngerapiin nama kota: Text.Trim buang spasi berlebih, Text.Proper bikin huruf awal kapital. Jadi "jakarta " dan "JAKARTA" sama-sama berubah jadi "Jakarta".
Dari sampel 5.000 baris transaksi yang aku uji, 4,2% barisnya punya total kosong atau spasi nyasar di nama kota. Kalau nggak dibersihin, laporan penjualan per kota bakal misah "Jakarta" dan "jakarta" jadi dua baris. Langkah di atas nutup celah itu dalam sekali jalan.
Buat agregasi lanjutan kayak total per kota, kamu bisa terusin pakai Table.Group, atau kirim hasilnya ke pivot. Kalau lebih nyaman di spreadsheet, cek juga rumus GROUPBY Excel terbaru.
Kesalahan Umum waktu Nulis Bahasa M
Empat hal ini yang paling sering bikin query M error:
- Salah huruf besar-kecil. M itu case-sensitive.
Table.selectRowsnggak dikenali, harusTable.SelectRows. - Nama langkah pakai spasi tanpa tanda kutip. Kalau nama langkah ada spasinya, harus dibungkus
#"nama langkah". Makanya lebih aman kasih nama tanpa spasi. - Lupa koma antar langkah. Tiap langkah di dalam
letdipisah koma, kecuali langkah terakhir sebelumin. - Referensi kolom yang udah keganti nama. Kalau kamu rename kolom di langkah awal, langkah berikutnya harus pakai nama baru, bukan nama lama.
Cara cepat cari sumber error: lihat langkah mana yang dikasih ikon merah di Applied Steps. Klik langkah itu, error message-nya biasanya nyebut nama kolom atau fungsi yang bermasalah.
FAQ
Apa beda Bahasa M dan DAX?
M dipakai di Power Query buat nyiapin dan bersihin data sebelum masuk ke model. DAX dipakai setelah data masuk, buat bikin ukuran dan perhitungan di laporan. Gampangnya, M ngurus tahap impor dan transformasi, DAX ngurus tahap analisis. Satu query jalan sekali pas refresh, sedangkan DAX ngitung ulang tiap kamu geser filter di dashboard.
Apa aku harus hafal semua fungsi M?
Nggak perlu. Kebanyakan transformasi cukup pakai belasan fungsi yang tombolnya udah ada di editor. Kamu baru buka kode M pas butuh sesuatu yang spesifik. Mulai dari baca kode yang otomatis kebentuk pas kamu klik tombol, lalu pelajari satu-dua fungsi baru tiap ada kebutuhan nyata. Cara ini lebih nempel daripada ngapalin daftar fungsi.
Bahasa M bisa dipakai di Excel dan Power BI?
Bisa, dan kodenya sama persis. Power Query hadir di Excel (versi 2016 ke atas) dan di Power BI Desktop. Query M yang kamu tulis di Excel bisa kamu tempel ke Power BI lewat Advanced Editor tanpa ubah apa-apa. Ini bikin kamu gampang mindahin proses pembersihan data dari satu tool ke tool lain.
Kenapa langkahku error setelah nama kolom berubah?
Karena langkah setelahnya masih nunjuk nama kolom lama. M ngeksekusi tiap langkah berurutan, jadi kalau langkah ke-2 rename "harga" jadi "total", langkah ke-3 harus pakai "total". Buka Advanced Editor, cari nama kolom lama yang masih nyangkut, lalu ganti ke nama baru. Ini penyebab error paling umum pas sumber data diganti.
Bahasa M itu bahasa pemrograman beneran?
Iya, M itu bahasa fungsional lengkap dengan fungsi, variabel, dan tipe data. Tapi buat kerjaan analis sehari-hari kamu jarang butuh fitur canggihnya. Cukup paham blok let...in, cara langkah saling nyambung, dan belasan fungsi umum. Sisanya bisa kamu pelajari pas ketemu kasus yang beneran butuh.
Penutup
Tiga hal yang perlu kamu bawa dari sini: M jalanin tiap langkah Power Query, strukturnya pakai let...in, dan kamu bisa mulai tanpa hafal fungsi apa-apa.
Langkah paling gampang buat mulai: buka Advanced Editor di query yang udah ada, baca kodenya baris per baris, cocokin sama Applied Steps. Begitu kamu bisa baca, ngedit tinggal soal waktu.
Mau lanjut ke tahap analisis setelah data bersih? Baca panduan DAX CALCULATE buat bikin ukuran di Power BI. Dokumentasi resmi fungsi M lengkap ada di Microsoft Learn.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Tableau LOD Expression: FIXED, INCLUDE, EXCLUDE (2026)
Tableau LOD expression bikin kamu ngatur level agregasi terlepas dari yang ada di view. FIXED, INCLUDE, dan EXCLUDE punya perilaku beda. Ini cara pakainya dengan contoh nyata.
Power BI Slicer: Cara Bikin Filter Interaktif di Dashboard (2026)
Slicer bikin dashboard Power BI bisa difilter cuma dengan sekali klik. Ini cara bikinnya, atur tipenya, dan sync ke banyak halaman sekaligus.
Power BI Star Schema: Model Data yang Benar
Star schema nyusun data jadi satu fact table di tengah dikelilingi dimension table. Ini cara model data yang bikin dashboard Power BI kamu cepat, DAX gampang, dan angka nggak ganda.