{% extends 'base.html' %} {% block title %}Detail Analisis — {{ sesi.nama_sesi }}{% endblock %} {% block topbar_title %}Detail Analisis{% endblock %} {% block extra_css %} {% endblock %} {% block content %}
{{ sesi.nama_sesi }}
{{ sesi.tahap }} {{ 'K-Means' if sesi.metode == 'kmeans' else 'Hierarchical' }} {{ 'Z-Score' if sesi.normalisasi == 'zscore' else 'Min-Max' }} {{ sesi.created_at.strftime('%d %B %Y %H:%M') }} — {{ sesi.creator.nama if sesi.creator else '-' }}
Jumlah Data Diproses
{{ sesi.jumlah_data or '-' }}
Metode Normalisasi
{{ 'Z-Score' if sesi.normalisasi == 'zscore' else 'Min-Max Scaling' }}
Jumlah Cluster
{{ sesi.n_cluster }}
Silhouette Score
{{ '%.4f' % sesi.silhouette_score if sesi.silhouette_score else '-' }}
{% if sesi.metode == 'hierarchical' and sesi.linkage_method %}
Metode Linkage
{{ sesi.linkage_method.title() }}
{% endif %}
Fitur Digunakan
{% if sesi.fitur %} {{ sesi.fitur | join(', ') | replace('_enc','') | replace('_',' ') | title }} {% else %}-{% endif %}
Kesimpulan
{{ sesi.kesimpulan or 'Tidak tersedia.' }}
Rekomendasi Prioritas
{% if sesi.rekomendasi %} {% for line in sesi.rekomendasi.split('\n') %} {% if line.startswith('•') %} {% set clean_line = line | replace('• ', '') %} {# Ambil teks sebelum "(Prioritas..." #} {% set teks = clean_line.split('(Prioritas')[0].strip() %}
{% if 'Prioritas Tinggi' in line %} Tinggi {% elif 'Prioritas Sedang' in line %} Sedang {% elif 'Prioritas Rendah' in line %} Rendah {% endif %} {{ teks }}
{% elif line %}

{{ line }}

{% endif %} {% endfor %} {% else %} Tidak tersedia. {% endif %}
{% if sesi.metode == 'kmeans' and sesi.centroids %}
Centroid K-Means (Ruang Ternormalisasi)
{% if sesi.fitur %} {% for f in sesi.fitur %} {% endfor %} {% endif %} {% for c in sesi.centroids %} {% for val in c %} {% endfor %} {% endfor %}
Cluster{{ f | replace('_enc','') | replace('_',' ') | title }}
Cluster {{ loop.index }}{{ '%.4f' % val }}
{% endif %} {% if sesi.metode == 'hierarchical' and sesi.dendrogram_img %}
Dendrogram Hierarchical Clustering
Dendrogram
{% endif %}
Hasil Cluster
{% for cl, group in cluster_groups.items() %} {% set prio = group.prioritas %}
Cluster {{ cl + 1 }}
{{ prio }}
{{ group.count }}
anggota
{{ (group.count / results | length * 100) | round(1) }}% dari total
{% endfor %}
{% for cl, group in cluster_groups.items() %}
Cluster {{ cl + 1 }} {{ group.prioritas }} {{ group.count }} anggota
{% for r in group.members %} {% endfor %}
# Nama RT/RW Kelurahan Kecamatan Pendidikan Status Pekerjaan Status Rumah Disabilitas
{{ loop.index }} {{ r.penduduk.nama }} {{ r.penduduk.rt }}/{{ r.penduduk.rw }} {{ r.penduduk.kelurahan or '-' }} {{ r.penduduk.kecamatan or '-' }} {{ r.penduduk.pendidikan or '-' }} {{ r.penduduk.status_pekerjaan or '-' }} {{ r.penduduk.status_rumah or '-' }} {% if r.penduduk.jenis_disabilitas and r.penduduk.jenis_disabilitas != 'Tidak Ada' %} {{ r.penduduk.jenis_disabilitas }} {% else %} - {% endif %}
{% endfor %}
{% if has_map %}
Peta Distribusi Prioritas per RW Layar Penuh
{% else %}

Data peta belum tersedia untuk sesi ini.

{% endif %} {% endblock %} {% block extra_js %} {% endblock %}