Episode ini memperkenalkan Looker dan LookML: paradigma berbeda di mana definisi metrik ditulis sebagai kode, memahami explores, views, dan dimensi/measure LookML, serta praktik membangun explore pertama untuk data Superstore

Setelah di episode 8 dan 9 kalian mengenal Power BI dan Tableau, pada episode ini kita membahas tool ketiga yang mengusung filosofi berbeda: Looker. Jika Power BI dan Tableau menyimpan logika di dalam file dashboard, Looker menyimpan logika metrik di kode bernama LookML yang tersimpan di git.
Mengapa ini penting? Karena Looker memisahkan dua hal yang sering tercampur: definisi data (kode LookML) dan presentasi (dashboard). Satu definisi dipakai ribuan pengguna — inilah fondasi semantic layer enterprise yang akan kita dalami di episode 12. Memahami Looker berarti memahami cara enterprise BI menjaga metrik tetap konsisten di skala besar.
Looker tidak mengimpor data ke dirinya — ia mengirim SQL yang dihasilkan dari LookML ke database/warehouse, lalu menampilkan hasilnya. Konsekuensinya:
| Aspek | Power BI/Tableau | Looker |
|---|---|---|
| Lokasi data | Diimpor/cached ke tool | Tetap di warehouse, query dikirim |
| Definisi metrik | Di file report masing-masing | Di kode LookML (terpusat) |
| Version control | Sulit (file biner) | Git (kode) |
| Skalabilitas pengguna | Terbatas oleh model file | Ribuan user, satu definisi |
| Cocok untuk | Tim kecil-menengah | Enterprise dengan banyak analyst |
Karena definisi ada di kode, review code, audit perubahan, dan konsistensi metrik menjadi jauh lebih mudah. Inilah mengapa Looker disebut "semantic layer as a product".
Empat komponen dasar LookML:
| Komponen | Fungsi | Analogi |
|---|---|---|
| View | Deskripsi satu tabel/transformasi | dim_customer, fact_orders |
| Dimension | Kolom kategori yang dipakai filter/grouping | region, category |
| Measure | Agregasi numerik (setara measure DAX) | SUM(sales), COUNTD(order_id) |
| Explore | Kombinasi views untuk pengguna eksplorasi | "halaman kerja" yang dibuka user |
Alur pembangunan: definisikan views → hubungkan lewat explores → pengguna mengeksplorasi lewat UI.
Buat file model untuk Superstore di direktori Looker project:
connection: "bi_lab_postgres"
explore: orders {
view_name: orders
join: customer {
type: left_outer
sql_on: ${orders.customer_id} = ${customer.customer_id} ;;
relationship: many_to_one
}
join: product {
type: left_outer
sql_on: ${orders.product_id} = ${product.product_id} ;;
relationship: many_to_one
}
}Di sini orders adalah explore utama, dan kita menghubungkannya ke customer serta product lewat join. Format ${view.field} adalah sintaks referensi field LookML — dibaca sebagai "field dari view tertentu".
Definisikan view orders dengan dimension dan measure untuk metrik kita:
view: orders {
dimension: order_id {
type: string
sql: ${TABLE}.order_id ;;
}
dimension: order_date {
type: date
sql: ${TABLE}.order_date ;;
}
dimension: region {
type: string
sql: ${TABLE}.region ;;
}
measure: revenue {
type: sum
sql: ${TABLE}.sales ;;
value_format_name: usd
}
measure: profit {
type: sum
sql: ${TABLE}.profit ;;
}
measure: total_orders {
type: count_distinct
sql: ${TABLE}.order_id ;;
}
measure: margin {
type: number
sql: (${profit} / NULLIF(${revenue}, 0)) ;;
value_format_name: percent_2
}
}Perhatikan keindahannya: margin dihitung dari measure lain (${profit} dan ${revenue}) — definisi ini hidup satu tempat dan otomatis dipakai ulang di semua dashboard, laporan, dan explore. Inilah yang kita sebut konsistensi metrik.
Setelah file disimpan, klik "Validate" di Looker IDE untuk memastikan sintaks benar, lalu commit ke git.
Buka Explore di UI Looker:
orders.region (dimension) ke area baris.revenue, profit, margin (measures) ke area nilai.order_date untuk rentang waktu.Keuntungan besar bagi BI Analyst: pengguna akhir bisa bereksplorasi sendiri tanpa tahu SQL, sementara kalian cukup mengatur apa yang boleh dilihat (field mana yang ditampilkan, di-filter, atau disembunyikan). Inilah self-service BI yang akan kita bahas di episode 13.
Tip
LookML mendukung hidden: yes pada field yang tidak ingin ditampilkan ke user, serta access_filter untuk keamanan. Kombinasi keduanya membuat kalian bisa memberikan kebebasan eksplorasi tanpa kehilangan kendali — topik yang akan kita perdalam di episode 18 tentang row-level security.
relationship yang benar di definisi join.Inti yang harus dibawa pulang:
margin dihitung dari measure lain → satu sumber kebenaran metrik.orders Superstore berhasil dibangun dan dieksplorasi.Di episode 11 selanjutnya kita akan membahas dashboard UX & storytelling data — bagaimana menyusun layout, hierarki, dan narasi sehingga dashboard bukan sekadar kumpulan chart, melainkan cerita yang mendorong keputusan. Prinsip ini berlaku untuk Power BI, Tableau, Looker, dan tool apa pun. Pastikan tetap semangat!