Dalam asesmen risiko, prioritas biasanya ditentukan oleh kemungkinan dan dampak. Heatmap matriks membuat item mendesak terlihat jelas.
import numpy as np
import matplotlib.pyplot as plt
levels = ["Rendah", "Agak rendah", "Sedang", "Agak tinggi", "Tinggi"]
impact = ["Ringan", "Terbatas", "Sedang", "Berat", "Kritis"]
risk_matrix = np.array(
[
[1, 1, 2, 3, 4],
[1, 2, 2, 3, 4],
[2, 2, 3, 4, 4],
[2, 3, 4, 4, 5],
[3, 4, 4, 5, 5],
]
)
fig, ax = plt.subplots(figsize=(5.8, 5.2))
im = ax.imshow(risk_matrix, cmap="YlOrRd", vmin=1, vmax=5)
ax.set_xticks(range(len(levels)), labels=levels)
ax.set_yticks(range(len(impact)), labels=impact)
ax.set_xlabel("Kemungkinan")
ax.set_ylabel("Dampak")
ax.set_title("Matriks risiko")
for i in range(risk_matrix.shape[0]):
for j in range(risk_matrix.shape[1]):
risk = risk_matrix[i, j]
color = "white" if risk >= 4 else "#0f172a"
ax.text(j, i, risk, ha="center", va="center", color=color, fontsize=12)
cbar = fig.colorbar(im, ax=ax, fraction=0.046, pad=0.04)
cbar.set_label("Level prioritas", rotation=270, labelpad=15)
ax.set_xticks(np.arange(-0.5, 5, 1), minor=True)
ax.set_yticks(np.arange(-0.5, 5, 1), minor=True)
ax.grid(which="minor", color="white", linewidth=1.5)
ax.tick_params(which="minor", bottom=False, left=False)
fig.tight_layout()
plt.show()

Kiat membaca #
- Sel merah kanan atas adalah prioritas tertinggi untuk mitigasi.
- Tambahkan aturan seperti “monitor saja” untuk area risiko rendah.
- Penomoran sel memudahkan tautan ke tiket atau tabel detail.