Temuan menjawab “apa yang terjadi”; rekomendasi menjawab “maka kita apa”. Di titik inilah banyak laporan data kehabisan tenaga: bagian analisisnya kuat, tetapi bagian akhirnya hanya menulis “perlu diteliti lebih lanjut” — kalimat yang tidak bisa ditindaklanjuti siapa pun. Rekomendasi yang kuat berdiri di atas bukti, memaparkan opsi beserta trade-off-nya, jujur terhadap biaya, dan tahu urutan prioritasnya. Pada chapter ini kita susun rekomendasi seperti itu untuk Toko Kopi Kita, lengkap dengan tabel prioritas dampak–usaha yang dihitung otomatis.

Rekomendasi yang Berdiri di Atas Bukti #

Setiap rekomendasi harus bisa ditelusuri balik ke temuan yang menopangnya. Strukturnya tiga lapis: temuan (apa yang kita lihat di data), implikasi (apa artinya bagi operasional), dan tindakan (apa yang diusulkan). Sebagai contoh dari chapter sebelumnya: temuannya “program stempel menaikkan transaksi harian 6,5% dalam dua pekan” (chapter Menyampaikan Temuan ), implikasinya “setara sekitar 290 gelas tambahan per bulan”, dan tindakannya “lanjutkan dan perluas program stempel”. Pembaca yang ingin menguji usulan kita tinggal menelusuri ketiga lapis tersebut.

Kebalikannya juga berlaku: usulan tanpa temuan penopang adalah preferensi pribadi yang memakai jas data. Kalimat “sebaiknya kafe ikut tren pesan-antar” bukan rekomendasi data sampai ada angka yang menunjukkan pelanggan Toko Kopi Kita memang berpindah ke kanal tersebut. Selaraskan pula dengan metrik keberhasilan yang sudah disepakati di awal proyek — materi chapter Menentukan Metrik Keberhasilan — supaya rekomendasi tidak menggeser sasaran di tengah jalan.

Selalu Sajikan Opsi beserta Trade-off-nya #

Rekomendasi satu pintu diam-diam mengambil alih keputusan yang bukan milik kita. Pengambil keputusan berhak melihat jalan-jalan yang tersedia beserta harga masing-masing, lalu memilih dengan informasi lengkap. Berikut empat opsi yang kita susun untuk menaikkan kapasitas dan penjualan Toko Kopi Kita:

InisiatifPerkiraan dampakBiayaWaktuTrade-off utama
Perluasan area duduk+400 gelas/bulanRp80 juta6 bulanDampak terbesar, tetapi modal dan waktu terbesar pula
Aplikasi pesan-antar sendiri+350 gelas/bulanRp45 juta3 bulanMenambah kanal, tetapi menambah beban perawatan jangka panjang
Tambah kasir jam sibuk+180 gelas/bulanRp18 juta2 mingguCepat terasa, tetapi biayanya berulang setiap bulan
Program stempel loyalty+290 gelas/bulanRp15 juta1 bulanTermurah per gelas, tetapi daya tariknya menurun saat sudah biasa

Angka dampak program stempel (+290 gelas/bulan) bersumber langsung dari pilot dua pekan yang kita hitung di chapter Menyampaikan Temuan; tiga lainnya adalah perkiraan konservatif. Perhatikan bahwa tidak ada satu pun baris yang menang di semua kolom — justru itu yang membuat tabel ini jujur. Rekomendasi kita bukan memilih menggantikan keputusan pembaca, melainkan memetakan pilihan.

Rekomendasi Bersyarat: Jika X, Maka Y #

Ketidakpastian yang kita kelola sejak chapter Menjelaskan Ketidakpastian tidak boleh berhenti di depan pintu rekomendasi. Alih-alih satu perintah kaku, rekomendasi yang matang berbentuk bersyarat: “jika hasil dibutuhkan secepatnya, mulai dari menambah kasir; jika yang diburu dampak terbesar dalam setahun, perluasan area duduk”. Bentuk ini menghormati konteks pembaca — anggaran, urgensi, dan selera risiko mereka — tanpa melonggarkan dasar buktinya.

Bentuk bersyarat juga melindungi kita dari ramalan berlebih. “Perluas program stempel karena terbukti di pilot” terdengar pasti, padahal pilotnya berjalan dua pekan; “jika pola pilot bertahan satu bulan ke depan, perluaskan program stempel” menyatakan syarat keberhasilannya secara terbuka. Pembaca yang kritis justru lebih percaya pada rekomendasi yang mengakui syaratnya.

Membuat Tabel Prioritas Dampak–Usaha secara Otomatis #

Tabel opsi di atas menjawab “apa saja jalannya”; tabel prioritas menjawab “mulai dari mana”. Cara klasiknya adalah matriks dampak–usaha: urutkan inisiatif berdasarkan hasil yang ditimbang biayanya, lalu lengkapi dengan rute kondisional untuk pembaca yang punya kendala berbeda. Karena peringkat harus ikut berbaris ulang setiap kali perkiraan dampak direvisi, kita bangun dengan kode:

python
import pandas as pd

opsi = pd.DataFrame({
    "inisiatif": [
        "Perluasan area duduk",
        "Aplikasi pesan-antar sendiri",
        "Tambah kasir jam sibuk",
        "Program stempel loyalty",
    ],
    "tambahan_gelas_bulan": [400, 350, 180, 290],
    "biaya_juta": [80, 45, 18, 15],
    "minggu_eksekusi": [26, 13, 2, 4],
})
opsi["gelas_per_juta"] = (opsi["tambahan_gelas_bulan"] / opsi["biaya_juta"]).round(1)
urut = opsi.sort_values("gelas_per_juta", ascending=False).reset_index(drop=True)

print(urut.to_string(index=False))
print()

utama = urut.iloc[0]
cepat = opsi.sort_values("minggu_eksekusi").iloc[0]
terbesar = opsi.sort_values("tambahan_gelas_bulan", ascending=False).iloc[0]

print(f"Rekomendasi utama: {utama['inisiatif']} "
      f"(+{utama['tambahan_gelas_bulan']} gelas/bulan, Rp{utama['biaya_juta']} juta).")
print(f"Jika hasil dibutuhkan secepatnya: mulai dari {cepat['inisiatif']} (sekitar {cepat['minggu_eksekusi']} minggu).")
print(f"Jika yang diburu dampak terbesar: {terbesar['inisiatif']} (+{terbesar['tambahan_gelas_bulan']} gelas/bulan, Rp{terbesar['biaya_juta']} juta).")

Output yang Dihasilkan:

text
                   inisiatif  tambahan_gelas_bulan  biaya_juta  minggu_eksekusi  gelas_per_juta
     Program stempel loyalty                   290          15                4            19.3
      Tambah kasir jam sibuk                   180          18                2            10.0
Aplikasi pesan-antar sendiri                   350          45               13             7.8
        Perluasan area duduk                   400          80               26             5.0

Rekomendasi utama: Program stempel loyalty (+290 gelas/bulan, Rp15 juta).
Jika hasil dibutuhkan secepatnya: mulai dari Tambah kasir jam sibuk (sekitar 2 minggu).
Jika yang diburu dampak terbesar: Perluasan area duduk (+400 gelas/bulan, Rp80 juta).

Mari kita telaah baris-baris kode di atas:

  1. Baris 3-10 (opsi = pd.DataFrame(...)): empat inisiatif beserta tiga atribut keputusannya — perkiraan dampak, biaya, dan waktu eksekusi dalam minggu. Kolom waktu sengaja numerik agar bisa diurutkan tanpa trik tambahan.
  2. Baris 11 (gelas_per_juta): satu kolom turunan memadatkan matriks dampak–usaha menjadi angka tunggal: berapa gelas tambahan yang “dibeli” setiap juta rupiah. Ini penyaring awal, bukan hakim akhir.
  3. Baris 12 (urut = ...): tabel diurutkan menurun berdasarkan rasio tersebut, lalu reset_index(drop=True) merapikan indeks untuk ditampilkan.
  4. Baris 19-21 (utama, cepat, terbesar): tiga kriteria keputusan yang berbeda mengambil juara yang berbeda dari tabel yang sama — iloc[0] setelah sort_values adalah pola “pilih yang teratas menurut kriteria tertentu”.
  5. Baris 23-26 (tiga print): kalimat rekomendasi dirakit dari baris tabel terpilih, sehingga setiap kalimat bersyarat otomatis benar sumbernya. Ubah satu angka di tabel, dan ketiga kalimat ikut menyesuaikan.

Perhatikan bagaimana keluaran tersebut merangkum seluruh bab ini: ada rekomendasi utama yang berdiri di atas bukti pilot, ada dua rute bersyarat untuk konteks pembaca yang berbeda, dan semuanya bisa ditelusuri balik ke tabel opsi lengkap dengan trade-off-nya. Rasio gelas per juta menempatkan program stempel di puncak bukan karena dampaknya terbesar, melainkan karena harganya paling efisien — dan itulah pesan yang perlu kita sampaikan apa adanya. Ketika daftar inisiatif tumbuh panjang dan tersimpan dalam format panjang lintas kategori (misalnya per cabang kota), tabel prioritas per cabang cukup diringkus dengan pivot_table, tanpa menulis ulang logika urutannya.

Rangkuman #

  • Rekomendasi berlapis tiga: temuan → implikasi → tindakan; usulan tanpa temuan penopang adalah preferensi pribadi berseragam data.
  • Sajikan opsi lengkap dengan trade-off-nya — dampak, biaya, waktu, dan risikonya; jangan menyembunyikan opsi yang tidak kita sukai.
  • Rekomendasi bersyarat (“jika X, maka Y”) menghormati konteks pembaca dan menyatakan syarat keberhasilan secara terbuka.
  • Tabel prioritas dampak–usaha dihitung otomatis dari tabel opsi; rasio dampak per biaya menjadi penyaring awal, dan kalimat rekomendasi dirakit dari baris tabel yang sama.

Kita kini memegang seluruh perangkat komunikasi: narasi, temuan, ketidakpastian, kejujuran kausal, dua bentuk laporan, dan rekomendasi. Tersisa satu dokumen yang menyatukan semuanya dalam satu halaman — dokumen yang dibaca orang paling sibuk di ruangan dan menentukan apakah seluruh kerja kita berujung keputusan. Kita rakit pada chapter penutup Section ini, Menyusun Ringkasan Eksekutif .

Referensi #

  1. pandas — Pandas User Guide
  2. pandas — API Reference: pandas.pivot_table