- slide/: 16 Marp slide files with inline UPB CSS theme (slide-01 through slide-16, covering all RTI-20252 topics) - slide/theme/: upb.css canonical theme + logo-upb.png - docs/AI-BOOK-PROMPT-TEMPLATE.md: RTI-20252 book authoring prompt
1448 lines
41 KiB
Markdown
1448 lines
41 KiB
Markdown
---
|
||
marp: true
|
||
paginate: true
|
||
class: bagian-ii
|
||
header: 'RTI — Riset Teknologi Informasi | Universitas Putra Bangsa Kebumen'
|
||
footer: 'Helmi Bahar Alim, S.Kom., M.Kom. | 2026'
|
||
---
|
||
|
||
|
||
|
||
|
||
|
||
<style>
|
||
/* UPB Theme (inline) */
|
||
|
||
/*
|
||
============================================================
|
||
UPB MARP THEME — Riset Teknologi Informasi
|
||
Universitas Putra Bangsa (UPB), Kebumen
|
||
Fak. Sains & Teknologi | Prodi Teknik Informatika
|
||
------------------------------------------------------------
|
||
Penggunaan di frontmatter slide:
|
||
theme: upb
|
||
class: bagian-ii ← opsional; ganti warna Bagian
|
||
|
||
Kelas per Bagian:
|
||
(kosong / default) = Bagian I — Biru #2563EB
|
||
bagian-ii = Bagian II — Hijau #059669
|
||
bagian-iii = Bagian III — Oranye #d97706
|
||
bagian-iv = Bagian IV — Ungu #7c3aed
|
||
|
||
Kelas layout khusus (gunakan via <!-- _class: ... -->):
|
||
cover = Cover / halaman judul
|
||
section-header = Pembatas antar-topik
|
||
integrative = Bab 8 (UTS — gradien biru-ungu)
|
||
fullcircle = Bab 16 penutup (gradien gelap)
|
||
============================================================
|
||
*/
|
||
|
||
/* ============================================================
|
||
1. CSS CUSTOM PROPERTIES — DEFAULT (Bagian I · Biru)
|
||
============================================================ */
|
||
section {
|
||
--accent: #2563EB;
|
||
--accent-dark: #1e3a5f;
|
||
--accent-light: #eff6ff;
|
||
--accent-border: #bfdbfe;
|
||
--cover-grad: linear-gradient(135deg, #1e3a5f 0%, #2563EB 100%);
|
||
--cover-sub: #bfdbfe;
|
||
--cover-meta: #93c5fd;
|
||
|
||
font-family: 'Segoe UI', Arial, sans-serif;
|
||
font-size: 1.1em;
|
||
color: #1e293b;
|
||
padding: 40px 60px;
|
||
}
|
||
|
||
/* ============================================================
|
||
2. VARIAN WARNA PER BAGIAN
|
||
============================================================ */
|
||
|
||
/* Bagian II — Hijau */
|
||
section.bagian-ii {
|
||
--accent: #059669;
|
||
--accent-dark: #064e3b;
|
||
--accent-light: #ecfdf5;
|
||
--accent-border: #a7f3d0;
|
||
--cover-grad: linear-gradient(135deg, #064e3b 0%, #059669 100%);
|
||
--cover-sub: #a7f3d0;
|
||
--cover-meta: #6ee7b7;
|
||
}
|
||
|
||
/* Bagian III — Oranye */
|
||
section.bagian-iii {
|
||
--accent: #d97706;
|
||
--accent-dark: #78350f;
|
||
--accent-light: #fffbeb;
|
||
--accent-border: #fde68a;
|
||
--cover-grad: linear-gradient(135deg, #78350f 0%, #d97706 100%);
|
||
--cover-sub: #fde68a;
|
||
--cover-meta: #fcd34d;
|
||
}
|
||
|
||
/* Bagian IV — Ungu */
|
||
section.bagian-iv {
|
||
--accent: #7c3aed;
|
||
--accent-dark: #3b0764;
|
||
--accent-light: #f5f3ff;
|
||
--accent-border: #ddd6fe;
|
||
--cover-grad: linear-gradient(135deg, #3b0764 0%, #7c3aed 100%);
|
||
--cover-sub: #ddd6fe;
|
||
--cover-meta: #c4b5fd;
|
||
}
|
||
|
||
/* ============================================================
|
||
3. LAYOUT: COVER
|
||
============================================================ */
|
||
section.cover {
|
||
background: var(--cover-grad);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
/* Logo dimuat dari CSS — tidak perlu tag img di markdown */
|
||
section.cover::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.cover h1 {
|
||
color: white;
|
||
font-size: 2em;
|
||
margin-bottom: 8px;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.cover h2 {
|
||
color: var(--cover-sub);
|
||
font-size: 1.1em;
|
||
font-weight: normal;
|
||
}
|
||
|
||
section.cover p { color: var(--cover-meta); font-size: 0.85em; }
|
||
section.cover strong { color: white; }
|
||
|
||
/* ============================================================
|
||
4. LAYOUT: SECTION HEADER (pembatas topik)
|
||
============================================================ */
|
||
section.section-header {
|
||
background: var(--accent);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.section-header h1 {
|
||
color: white;
|
||
font-size: 2.5em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.section-header h2 { color: rgba(255, 255, 255, 0.85); }
|
||
|
||
/* ============================================================
|
||
5. LAYOUT: INTEGRATIVE (Bab 8 — UTS Checkpoint)
|
||
============================================================ */
|
||
section.integrative {
|
||
background: linear-gradient(135deg, #1e3a5f 0%, #7c3aed 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.integrative::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.integrative h1 {
|
||
color: white;
|
||
font-size: 2.2em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.integrative h2 { color: #ddd6fe; font-size: 1.1em; }
|
||
section.integrative p { color: #c4b5fd; font-size: 0.85em; }
|
||
section.integrative strong { color: white; }
|
||
|
||
/* ============================================================
|
||
6. LAYOUT: FULLCIRCLE (Bab 16 — Penutup)
|
||
============================================================ */
|
||
section.fullcircle {
|
||
background: linear-gradient(135deg, #1e293b 0%, #1e3a5f 50%, #1e293b 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.fullcircle h1 {
|
||
color: #ddd6fe;
|
||
font-size: 2.2em;
|
||
border-bottom: 3px solid #7c3aed;
|
||
}
|
||
|
||
section.fullcircle blockquote {
|
||
border-left: 5px solid #7c3aed;
|
||
background: rgba(255, 255, 255, 0.08);
|
||
color: #ddd6fe;
|
||
font-style: italic;
|
||
}
|
||
|
||
/* ============================================================
|
||
7. ELEMEN KONTEN — menggunakan CSS vars dari bagian
|
||
============================================================ */
|
||
|
||
h1 {
|
||
color: var(--accent);
|
||
border-bottom: 3px solid var(--accent);
|
||
padding-bottom: 8px;
|
||
}
|
||
|
||
h2 { color: var(--accent-dark); font-size: 1.3em; }
|
||
h3 { color: var(--accent); font-size: 1.05em; }
|
||
|
||
blockquote {
|
||
border-left: 5px solid var(--accent);
|
||
background: var(--accent-light);
|
||
padding: 12px 20px;
|
||
margin: 16px 0;
|
||
color: var(--accent-dark);
|
||
font-style: italic;
|
||
border-radius: 0 8px 8px 0;
|
||
}
|
||
|
||
table { font-size: 0.82em; width: 100%; border-collapse: collapse; }
|
||
th { background: var(--accent); color: white; padding: 8px 12px; }
|
||
td { padding: 6px 12px; border-bottom: 1px solid var(--accent-border); }
|
||
tr:nth-child(even) td { background: var(--accent-light); }
|
||
|
||
code {
|
||
background: var(--accent-light);
|
||
color: var(--accent-dark);
|
||
padding: 2px 6px;
|
||
border-radius: 4px;
|
||
font-size: 0.9em;
|
||
}
|
||
|
||
pre {
|
||
background: #f1f5f9;
|
||
color: #1e293b;
|
||
padding: 16px;
|
||
border-radius: 8px;
|
||
border-left: 4px solid var(--accent-border);
|
||
}
|
||
|
||
ul li, ol li { margin-bottom: 6px; line-height: 1.6; }
|
||
|
||
/* ============================================================
|
||
8. HELPER CLASSES
|
||
============================================================ */
|
||
|
||
/* Status / penekanan */
|
||
.warn { color: #d97706; font-weight: bold; }
|
||
.good { color: #059669; font-weight: bold; }
|
||
.bad { color: #dc2626; font-weight: bold; }
|
||
|
||
/* Kotak pernyataan akhir */
|
||
.final {
|
||
background: #fef3c7;
|
||
border-left: 5px solid #d97706;
|
||
padding: 14px 20px;
|
||
border-radius: 0 8px 8px 0;
|
||
font-size: 1.1em;
|
||
}
|
||
|
||
/* Kotak highlight */
|
||
.highlight-box {
|
||
background: var(--accent);
|
||
color: white;
|
||
padding: 16px 20px;
|
||
border-radius: 8px;
|
||
margin: 12px 0;
|
||
}
|
||
|
||
/* Kotak checkpoint bab 8 */
|
||
.checkpoint {
|
||
background: #f5f3ff;
|
||
border: 2px solid #7c3aed;
|
||
border-radius: 8px;
|
||
padding: 16px 24px;
|
||
margin: 16px 0;
|
||
}
|
||
|
||
/* ============================================================
|
||
9. PAGINATION & HEADER/FOOTER
|
||
============================================================ */
|
||
section::after {
|
||
font-size: 0.7em;
|
||
color: #94a3b8;
|
||
}
|
||
|
||
section[data-marpit-advanced-background] > div:last-child { padding: 40px 60px; }
|
||
</style>
|
||
|
||
<style>
|
||
/* UPB Theme (inline) */
|
||
|
||
/*
|
||
============================================================
|
||
UPB MARP THEME — Riset Teknologi Informasi
|
||
Universitas Putra Bangsa (UPB), Kebumen
|
||
Fak. Sains & Teknologi | Prodi Teknik Informatika
|
||
------------------------------------------------------------
|
||
Penggunaan di frontmatter slide:
|
||
class: bagian-ii ← opsional; ganti warna Bagian
|
||
|
||
Kelas per Bagian:
|
||
(kosong / default) = Bagian I — Biru #2563EB
|
||
bagian-ii = Bagian II — Hijau #059669
|
||
bagian-iii = Bagian III — Oranye #d97706
|
||
bagian-iv = Bagian IV — Ungu #7c3aed
|
||
|
||
Kelas layout khusus (gunakan via <!-- _class: ... -->):
|
||
cover = Cover / halaman judul
|
||
section-header = Pembatas antar-topik
|
||
integrative = Bab 8 (UTS — gradien biru-ungu)
|
||
fullcircle = Bab 16 penutup (gradien gelap)
|
||
============================================================
|
||
*/
|
||
|
||
/* ============================================================
|
||
1. CSS CUSTOM PROPERTIES — DEFAULT (Bagian I · Biru)
|
||
============================================================ */
|
||
section {
|
||
--accent: #2563EB;
|
||
--accent-dark: #1e3a5f;
|
||
--accent-light: #eff6ff;
|
||
--accent-border: #bfdbfe;
|
||
--cover-grad: linear-gradient(135deg, #1e3a5f 0%, #2563EB 100%);
|
||
--cover-sub: #bfdbfe;
|
||
--cover-meta: #93c5fd;
|
||
|
||
font-family: 'Segoe UI', Arial, sans-serif;
|
||
font-size: 1.1em;
|
||
color: #1e293b;
|
||
padding: 40px 60px;
|
||
}
|
||
|
||
/* ============================================================
|
||
2. VARIAN WARNA PER BAGIAN
|
||
============================================================ */
|
||
|
||
/* Bagian II — Hijau */
|
||
section.bagian-ii {
|
||
--accent: #059669;
|
||
--accent-dark: #064e3b;
|
||
--accent-light: #ecfdf5;
|
||
--accent-border: #a7f3d0;
|
||
--cover-grad: linear-gradient(135deg, #064e3b 0%, #059669 100%);
|
||
--cover-sub: #a7f3d0;
|
||
--cover-meta: #6ee7b7;
|
||
}
|
||
|
||
/* Bagian III — Oranye */
|
||
section.bagian-iii {
|
||
--accent: #d97706;
|
||
--accent-dark: #78350f;
|
||
--accent-light: #fffbeb;
|
||
--accent-border: #fde68a;
|
||
--cover-grad: linear-gradient(135deg, #78350f 0%, #d97706 100%);
|
||
--cover-sub: #fde68a;
|
||
--cover-meta: #fcd34d;
|
||
}
|
||
|
||
/* Bagian IV — Ungu */
|
||
section.bagian-iv {
|
||
--accent: #7c3aed;
|
||
--accent-dark: #3b0764;
|
||
--accent-light: #f5f3ff;
|
||
--accent-border: #ddd6fe;
|
||
--cover-grad: linear-gradient(135deg, #3b0764 0%, #7c3aed 100%);
|
||
--cover-sub: #ddd6fe;
|
||
--cover-meta: #c4b5fd;
|
||
}
|
||
|
||
/* ============================================================
|
||
3. LAYOUT: COVER
|
||
============================================================ */
|
||
section.cover {
|
||
background: var(--cover-grad);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
/* Logo dimuat dari CSS — tidak perlu tag img di markdown */
|
||
section.cover::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.cover h1 {
|
||
color: white;
|
||
font-size: 2em;
|
||
margin-bottom: 8px;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.cover h2 {
|
||
color: var(--cover-sub);
|
||
font-size: 1.1em;
|
||
font-weight: normal;
|
||
}
|
||
|
||
section.cover p { color: var(--cover-meta); font-size: 0.85em; }
|
||
section.cover strong { color: white; }
|
||
|
||
/* ============================================================
|
||
4. LAYOUT: SECTION HEADER (pembatas topik)
|
||
============================================================ */
|
||
section.section-header {
|
||
background: var(--accent);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.section-header h1 {
|
||
color: white;
|
||
font-size: 2.5em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.section-header h2 { color: rgba(255, 255, 255, 0.85); }
|
||
|
||
/* ============================================================
|
||
5. LAYOUT: INTEGRATIVE (Bab 8 — UTS Checkpoint)
|
||
============================================================ */
|
||
section.integrative {
|
||
background: linear-gradient(135deg, #1e3a5f 0%, #7c3aed 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.integrative::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.integrative h1 {
|
||
color: white;
|
||
font-size: 2.2em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.integrative h2 { color: #ddd6fe; font-size: 1.1em; }
|
||
section.integrative p { color: #c4b5fd; font-size: 0.85em; }
|
||
section.integrative strong { color: white; }
|
||
|
||
/* ============================================================
|
||
6. LAYOUT: FULLCIRCLE (Bab 16 — Penutup)
|
||
============================================================ */
|
||
section.fullcircle {
|
||
background: linear-gradient(135deg, #1e293b 0%, #1e3a5f 50%, #1e293b 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.fullcircle h1 {
|
||
color: #ddd6fe;
|
||
font-size: 2.2em;
|
||
border-bottom: 3px solid #7c3aed;
|
||
}
|
||
|
||
section.fullcircle blockquote {
|
||
border-left: 5px solid #7c3aed;
|
||
background: rgba(255, 255, 255, 0.08);
|
||
color: #ddd6fe;
|
||
font-style: italic;
|
||
}
|
||
|
||
/* ============================================================
|
||
7. ELEMEN KONTEN — menggunakan CSS vars dari bagian
|
||
============================================================ */
|
||
|
||
h1 {
|
||
color: var(--accent);
|
||
border-bottom: 3px solid var(--accent);
|
||
padding-bottom: 8px;
|
||
}
|
||
|
||
h2 { color: var(--accent-dark); font-size: 1.3em; }
|
||
h3 { color: var(--accent); font-size: 1.05em; }
|
||
|
||
blockquote {
|
||
border-left: 5px solid var(--accent);
|
||
background: var(--accent-light);
|
||
padding: 12px 20px;
|
||
margin: 16px 0;
|
||
color: var(--accent-dark);
|
||
font-style: italic;
|
||
border-radius: 0 8px 8px 0;
|
||
}
|
||
|
||
table { font-size: 0.82em; width: 100%; border-collapse: collapse; }
|
||
th { background: var(--accent); color: white; padding: 8px 12px; }
|
||
td { padding: 6px 12px; border-bottom: 1px solid var(--accent-border); }
|
||
tr:nth-child(even) td { background: var(--accent-light); }
|
||
|
||
code {
|
||
background: var(--accent-light);
|
||
color: var(--accent-dark);
|
||
padding: 2px 6px;
|
||
border-radius: 4px;
|
||
font-size: 0.9em;
|
||
}
|
||
|
||
pre {
|
||
background: #f1f5f9;
|
||
color: #1e293b;
|
||
padding: 16px;
|
||
border-radius: 8px;
|
||
border-left: 4px solid var(--accent-border);
|
||
}
|
||
|
||
ul li, ol li { margin-bottom: 6px; line-height: 1.6; }
|
||
|
||
/* ============================================================
|
||
8. HELPER CLASSES
|
||
============================================================ */
|
||
|
||
/* Status / penekanan */
|
||
.warn { color: #d97706; font-weight: bold; }
|
||
.good { color: #059669; font-weight: bold; }
|
||
.bad { color: #dc2626; font-weight: bold; }
|
||
|
||
/* Kotak pernyataan akhir */
|
||
.final {
|
||
background: #fef3c7;
|
||
border-left: 5px solid #d97706;
|
||
padding: 14px 20px;
|
||
border-radius: 0 8px 8px 0;
|
||
font-size: 1.1em;
|
||
}
|
||
|
||
/* Kotak highlight */
|
||
.highlight-box {
|
||
background: var(--accent);
|
||
color: white;
|
||
padding: 16px 20px;
|
||
border-radius: 8px;
|
||
margin: 12px 0;
|
||
}
|
||
|
||
/* Kotak checkpoint bab 8 */
|
||
.checkpoint {
|
||
background: #f5f3ff;
|
||
border: 2px solid #7c3aed;
|
||
border-radius: 8px;
|
||
padding: 16px 24px;
|
||
margin: 16px 0;
|
||
}
|
||
|
||
/* ============================================================
|
||
9. PAGINATION & HEADER/FOOTER
|
||
============================================================ */
|
||
section::after {
|
||
font-size: 0.7em;
|
||
color: #94a3b8;
|
||
}
|
||
|
||
section[data-marpit-advanced-background] > div:last-child { padding: 40px 60px; }
|
||
</style>
|
||
|
||
<style>
|
||
/* UPB Theme (inline) */
|
||
|
||
/*
|
||
============================================================
|
||
UPB MARP THEME — Riset Teknologi Informasi
|
||
Universitas Putra Bangsa (UPB), Kebumen
|
||
Fak. Sains & Teknologi | Prodi Teknik Informatika
|
||
------------------------------------------------------------
|
||
Penggunaan di frontmatter slide:
|
||
class: bagian-ii ← opsional; ganti warna Bagian
|
||
|
||
Kelas per Bagian:
|
||
(kosong / default) = Bagian I — Biru #2563EB
|
||
bagian-ii = Bagian II — Hijau #059669
|
||
bagian-iii = Bagian III — Oranye #d97706
|
||
bagian-iv = Bagian IV — Ungu #7c3aed
|
||
|
||
Kelas layout khusus (gunakan via <!-- _class: ... -->):
|
||
cover = Cover / halaman judul
|
||
section-header = Pembatas antar-topik
|
||
integrative = Bab 8 (UTS — gradien biru-ungu)
|
||
fullcircle = Bab 16 penutup (gradien gelap)
|
||
============================================================
|
||
*/
|
||
|
||
/* ============================================================
|
||
1. CSS CUSTOM PROPERTIES — DEFAULT (Bagian I · Biru)
|
||
============================================================ */
|
||
section {
|
||
--accent: #2563EB;
|
||
--accent-dark: #1e3a5f;
|
||
--accent-light: #eff6ff;
|
||
--accent-border: #bfdbfe;
|
||
--cover-grad: linear-gradient(135deg, #1e3a5f 0%, #2563EB 100%);
|
||
--cover-sub: #bfdbfe;
|
||
--cover-meta: #93c5fd;
|
||
|
||
font-family: 'Segoe UI', Arial, sans-serif;
|
||
font-size: 1.1em;
|
||
color: #1e293b;
|
||
padding: 40px 60px;
|
||
}
|
||
|
||
/* ============================================================
|
||
2. VARIAN WARNA PER BAGIAN
|
||
============================================================ */
|
||
|
||
/* Bagian II — Hijau */
|
||
section.bagian-ii {
|
||
--accent: #059669;
|
||
--accent-dark: #064e3b;
|
||
--accent-light: #ecfdf5;
|
||
--accent-border: #a7f3d0;
|
||
--cover-grad: linear-gradient(135deg, #064e3b 0%, #059669 100%);
|
||
--cover-sub: #a7f3d0;
|
||
--cover-meta: #6ee7b7;
|
||
}
|
||
|
||
/* Bagian III — Oranye */
|
||
section.bagian-iii {
|
||
--accent: #d97706;
|
||
--accent-dark: #78350f;
|
||
--accent-light: #fffbeb;
|
||
--accent-border: #fde68a;
|
||
--cover-grad: linear-gradient(135deg, #78350f 0%, #d97706 100%);
|
||
--cover-sub: #fde68a;
|
||
--cover-meta: #fcd34d;
|
||
}
|
||
|
||
/* Bagian IV — Ungu */
|
||
section.bagian-iv {
|
||
--accent: #7c3aed;
|
||
--accent-dark: #3b0764;
|
||
--accent-light: #f5f3ff;
|
||
--accent-border: #ddd6fe;
|
||
--cover-grad: linear-gradient(135deg, #3b0764 0%, #7c3aed 100%);
|
||
--cover-sub: #ddd6fe;
|
||
--cover-meta: #c4b5fd;
|
||
}
|
||
|
||
/* ============================================================
|
||
3. LAYOUT: COVER
|
||
============================================================ */
|
||
section.cover {
|
||
background: var(--cover-grad);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
/* Logo dimuat dari CSS — tidak perlu tag img di markdown */
|
||
section.cover::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.cover h1 {
|
||
color: white;
|
||
font-size: 2em;
|
||
margin-bottom: 8px;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.cover h2 {
|
||
color: var(--cover-sub);
|
||
font-size: 1.1em;
|
||
font-weight: normal;
|
||
}
|
||
|
||
section.cover p { color: var(--cover-meta); font-size: 0.85em; }
|
||
section.cover strong { color: white; }
|
||
|
||
/* ============================================================
|
||
4. LAYOUT: SECTION HEADER (pembatas topik)
|
||
============================================================ */
|
||
section.section-header {
|
||
background: var(--accent);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.section-header h1 {
|
||
color: white;
|
||
font-size: 2.5em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.section-header h2 { color: rgba(255, 255, 255, 0.85); }
|
||
|
||
/* ============================================================
|
||
5. LAYOUT: INTEGRATIVE (Bab 8 — UTS Checkpoint)
|
||
============================================================ */
|
||
section.integrative {
|
||
background: linear-gradient(135deg, #1e3a5f 0%, #7c3aed 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.integrative::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.integrative h1 {
|
||
color: white;
|
||
font-size: 2.2em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.integrative h2 { color: #ddd6fe; font-size: 1.1em; }
|
||
section.integrative p { color: #c4b5fd; font-size: 0.85em; }
|
||
section.integrative strong { color: white; }
|
||
|
||
/* ============================================================
|
||
6. LAYOUT: FULLCIRCLE (Bab 16 — Penutup)
|
||
============================================================ */
|
||
section.fullcircle {
|
||
background: linear-gradient(135deg, #1e293b 0%, #1e3a5f 50%, #1e293b 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.fullcircle h1 {
|
||
color: #ddd6fe;
|
||
font-size: 2.2em;
|
||
border-bottom: 3px solid #7c3aed;
|
||
}
|
||
|
||
section.fullcircle blockquote {
|
||
border-left: 5px solid #7c3aed;
|
||
background: rgba(255, 255, 255, 0.08);
|
||
color: #ddd6fe;
|
||
font-style: italic;
|
||
}
|
||
|
||
/* ============================================================
|
||
7. ELEMEN KONTEN — menggunakan CSS vars dari bagian
|
||
============================================================ */
|
||
|
||
h1 {
|
||
color: var(--accent);
|
||
border-bottom: 3px solid var(--accent);
|
||
padding-bottom: 8px;
|
||
}
|
||
|
||
h2 { color: var(--accent-dark); font-size: 1.3em; }
|
||
h3 { color: var(--accent); font-size: 1.05em; }
|
||
|
||
blockquote {
|
||
border-left: 5px solid var(--accent);
|
||
background: var(--accent-light);
|
||
padding: 12px 20px;
|
||
margin: 16px 0;
|
||
color: var(--accent-dark);
|
||
font-style: italic;
|
||
border-radius: 0 8px 8px 0;
|
||
}
|
||
|
||
table { font-size: 0.82em; width: 100%; border-collapse: collapse; }
|
||
th { background: var(--accent); color: white; padding: 8px 12px; }
|
||
td { padding: 6px 12px; border-bottom: 1px solid var(--accent-border); }
|
||
tr:nth-child(even) td { background: var(--accent-light); }
|
||
|
||
code {
|
||
background: var(--accent-light);
|
||
color: var(--accent-dark);
|
||
padding: 2px 6px;
|
||
border-radius: 4px;
|
||
font-size: 0.9em;
|
||
}
|
||
|
||
pre {
|
||
background: #f1f5f9;
|
||
color: #1e293b;
|
||
padding: 16px;
|
||
border-radius: 8px;
|
||
border-left: 4px solid var(--accent-border);
|
||
}
|
||
|
||
ul li, ol li { margin-bottom: 6px; line-height: 1.6; }
|
||
|
||
/* ============================================================
|
||
8. HELPER CLASSES
|
||
============================================================ */
|
||
|
||
/* Status / penekanan */
|
||
.warn { color: #d97706; font-weight: bold; }
|
||
.good { color: #059669; font-weight: bold; }
|
||
.bad { color: #dc2626; font-weight: bold; }
|
||
|
||
/* Kotak pernyataan akhir */
|
||
.final {
|
||
background: #fef3c7;
|
||
border-left: 5px solid #d97706;
|
||
padding: 14px 20px;
|
||
border-radius: 0 8px 8px 0;
|
||
font-size: 1.1em;
|
||
}
|
||
|
||
/* Kotak highlight */
|
||
.highlight-box {
|
||
background: var(--accent);
|
||
color: white;
|
||
padding: 16px 20px;
|
||
border-radius: 8px;
|
||
margin: 12px 0;
|
||
}
|
||
|
||
/* Kotak checkpoint bab 8 */
|
||
.checkpoint {
|
||
background: #f5f3ff;
|
||
border: 2px solid #7c3aed;
|
||
border-radius: 8px;
|
||
padding: 16px 24px;
|
||
margin: 16px 0;
|
||
}
|
||
|
||
/* ============================================================
|
||
9. PAGINATION & HEADER/FOOTER
|
||
============================================================ */
|
||
section::after {
|
||
font-size: 0.7em;
|
||
color: #94a3b8;
|
||
}
|
||
|
||
section[data-marpit-advanced-background] > div:last-child { padding: 40px 60px; }
|
||
</style>
|
||
|
||
<style>
|
||
/* UPB Theme (inline) */
|
||
|
||
/*
|
||
============================================================
|
||
UPB MARP THEME — Riset Teknologi Informasi
|
||
Universitas Putra Bangsa (UPB), Kebumen
|
||
Fak. Sains & Teknologi | Prodi Teknik Informatika
|
||
------------------------------------------------------------
|
||
Penggunaan di frontmatter slide:
|
||
class: bagian-ii ← opsional; ganti warna Bagian
|
||
|
||
Kelas per Bagian:
|
||
(kosong / default) = Bagian I — Biru #2563EB
|
||
bagian-ii = Bagian II — Hijau #059669
|
||
bagian-iii = Bagian III — Oranye #d97706
|
||
bagian-iv = Bagian IV — Ungu #7c3aed
|
||
|
||
Kelas layout khusus (gunakan via <!-- _class: ... -->):
|
||
cover = Cover / halaman judul
|
||
section-header = Pembatas antar-topik
|
||
integrative = Bab 8 (UTS — gradien biru-ungu)
|
||
fullcircle = Bab 16 penutup (gradien gelap)
|
||
============================================================
|
||
*/
|
||
|
||
/* ============================================================
|
||
1. CSS CUSTOM PROPERTIES — DEFAULT (Bagian I · Biru)
|
||
============================================================ */
|
||
section {
|
||
--accent: #2563EB;
|
||
--accent-dark: #1e3a5f;
|
||
--accent-light: #eff6ff;
|
||
--accent-border: #bfdbfe;
|
||
--cover-grad: linear-gradient(135deg, #1e3a5f 0%, #2563EB 100%);
|
||
--cover-sub: #bfdbfe;
|
||
--cover-meta: #93c5fd;
|
||
|
||
font-family: 'Segoe UI', Arial, sans-serif;
|
||
font-size: 1.1em;
|
||
color: #1e293b;
|
||
padding: 40px 60px;
|
||
}
|
||
|
||
/* ============================================================
|
||
2. VARIAN WARNA PER BAGIAN
|
||
============================================================ */
|
||
|
||
/* Bagian II — Hijau */
|
||
section.bagian-ii {
|
||
--accent: #059669;
|
||
--accent-dark: #064e3b;
|
||
--accent-light: #ecfdf5;
|
||
--accent-border: #a7f3d0;
|
||
--cover-grad: linear-gradient(135deg, #064e3b 0%, #059669 100%);
|
||
--cover-sub: #a7f3d0;
|
||
--cover-meta: #6ee7b7;
|
||
}
|
||
|
||
/* Bagian III — Oranye */
|
||
section.bagian-iii {
|
||
--accent: #d97706;
|
||
--accent-dark: #78350f;
|
||
--accent-light: #fffbeb;
|
||
--accent-border: #fde68a;
|
||
--cover-grad: linear-gradient(135deg, #78350f 0%, #d97706 100%);
|
||
--cover-sub: #fde68a;
|
||
--cover-meta: #fcd34d;
|
||
}
|
||
|
||
/* Bagian IV — Ungu */
|
||
section.bagian-iv {
|
||
--accent: #7c3aed;
|
||
--accent-dark: #3b0764;
|
||
--accent-light: #f5f3ff;
|
||
--accent-border: #ddd6fe;
|
||
--cover-grad: linear-gradient(135deg, #3b0764 0%, #7c3aed 100%);
|
||
--cover-sub: #ddd6fe;
|
||
--cover-meta: #c4b5fd;
|
||
}
|
||
|
||
/* ============================================================
|
||
3. LAYOUT: COVER
|
||
============================================================ */
|
||
section.cover {
|
||
background: var(--cover-grad);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
/* Logo dimuat dari CSS — tidak perlu tag img di markdown */
|
||
section.cover::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.cover h1 {
|
||
color: white;
|
||
font-size: 2em;
|
||
margin-bottom: 8px;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.cover h2 {
|
||
color: var(--cover-sub);
|
||
font-size: 1.1em;
|
||
font-weight: normal;
|
||
}
|
||
|
||
section.cover p { color: var(--cover-meta); font-size: 0.85em; }
|
||
section.cover strong { color: white; }
|
||
|
||
/* ============================================================
|
||
4. LAYOUT: SECTION HEADER (pembatas topik)
|
||
============================================================ */
|
||
section.section-header {
|
||
background: var(--accent);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.section-header h1 {
|
||
color: white;
|
||
font-size: 2.5em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.section-header h2 { color: rgba(255, 255, 255, 0.85); }
|
||
|
||
/* ============================================================
|
||
5. LAYOUT: INTEGRATIVE (Bab 8 — UTS Checkpoint)
|
||
============================================================ */
|
||
section.integrative {
|
||
background: linear-gradient(135deg, #1e3a5f 0%, #7c3aed 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.integrative::before {
|
||
content: '';
|
||
display: block;
|
||
width: 90px;
|
||
height: 90px;
|
||
background: white url('theme/logo-upb.png') center / contain no-repeat;
|
||
border-radius: 8px;
|
||
padding: 6px;
|
||
margin: 0 auto 14px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
section.integrative h1 {
|
||
color: white;
|
||
font-size: 2.2em;
|
||
border-bottom: none;
|
||
}
|
||
|
||
section.integrative h2 { color: #ddd6fe; font-size: 1.1em; }
|
||
section.integrative p { color: #c4b5fd; font-size: 0.85em; }
|
||
section.integrative strong { color: white; }
|
||
|
||
/* ============================================================
|
||
6. LAYOUT: FULLCIRCLE (Bab 16 — Penutup)
|
||
============================================================ */
|
||
section.fullcircle {
|
||
background: linear-gradient(135deg, #1e293b 0%, #1e3a5f 50%, #1e293b 100%);
|
||
color: white;
|
||
justify-content: center;
|
||
text-align: center;
|
||
}
|
||
|
||
section.fullcircle h1 {
|
||
color: #ddd6fe;
|
||
font-size: 2.2em;
|
||
border-bottom: 3px solid #7c3aed;
|
||
}
|
||
|
||
section.fullcircle blockquote {
|
||
border-left: 5px solid #7c3aed;
|
||
background: rgba(255, 255, 255, 0.08);
|
||
color: #ddd6fe;
|
||
font-style: italic;
|
||
}
|
||
|
||
/* ============================================================
|
||
7. ELEMEN KONTEN — menggunakan CSS vars dari bagian
|
||
============================================================ */
|
||
|
||
h1 {
|
||
color: var(--accent);
|
||
border-bottom: 3px solid var(--accent);
|
||
padding-bottom: 8px;
|
||
}
|
||
|
||
h2 { color: var(--accent-dark); font-size: 1.3em; }
|
||
h3 { color: var(--accent); font-size: 1.05em; }
|
||
|
||
blockquote {
|
||
border-left: 5px solid var(--accent);
|
||
background: var(--accent-light);
|
||
padding: 12px 20px;
|
||
margin: 16px 0;
|
||
color: var(--accent-dark);
|
||
font-style: italic;
|
||
border-radius: 0 8px 8px 0;
|
||
}
|
||
|
||
table { font-size: 0.82em; width: 100%; border-collapse: collapse; }
|
||
th { background: var(--accent); color: white; padding: 8px 12px; }
|
||
td { padding: 6px 12px; border-bottom: 1px solid var(--accent-border); }
|
||
tr:nth-child(even) td { background: var(--accent-light); }
|
||
|
||
code {
|
||
background: var(--accent-light);
|
||
color: var(--accent-dark);
|
||
padding: 2px 6px;
|
||
border-radius: 4px;
|
||
font-size: 0.9em;
|
||
}
|
||
|
||
pre {
|
||
background: #f1f5f9;
|
||
color: #1e293b;
|
||
padding: 16px;
|
||
border-radius: 8px;
|
||
border-left: 4px solid var(--accent-border);
|
||
}
|
||
|
||
ul li, ol li { margin-bottom: 6px; line-height: 1.6; }
|
||
|
||
/* ============================================================
|
||
8. HELPER CLASSES
|
||
============================================================ */
|
||
|
||
/* Status / penekanan */
|
||
.warn { color: #d97706; font-weight: bold; }
|
||
.good { color: #059669; font-weight: bold; }
|
||
.bad { color: #dc2626; font-weight: bold; }
|
||
|
||
/* Kotak pernyataan akhir */
|
||
.final {
|
||
background: #fef3c7;
|
||
border-left: 5px solid #d97706;
|
||
padding: 14px 20px;
|
||
border-radius: 0 8px 8px 0;
|
||
font-size: 1.1em;
|
||
}
|
||
|
||
/* Kotak highlight */
|
||
.highlight-box {
|
||
background: var(--accent);
|
||
color: white;
|
||
padding: 16px 20px;
|
||
border-radius: 8px;
|
||
margin: 12px 0;
|
||
}
|
||
|
||
/* Kotak checkpoint bab 8 */
|
||
.checkpoint {
|
||
background: #f5f3ff;
|
||
border: 2px solid #7c3aed;
|
||
border-radius: 8px;
|
||
padding: 16px 24px;
|
||
margin: 16px 0;
|
||
}
|
||
|
||
/* ============================================================
|
||
9. PAGINATION & HEADER/FOOTER
|
||
============================================================ */
|
||
section::after {
|
||
font-size: 0.7em;
|
||
color: #94a3b8;
|
||
}
|
||
|
||
section[data-marpit-advanced-background] > div:last-child { padding: 40px 60px; }
|
||
</style>
|
||
|
||
<!-- _class: cover bagian-ii -->
|
||
|
||
|
||
# Bab 5 — Metric, Measurement & Data
|
||
|
||
## Operasionalisasi: Dari Konsep ke Angka yang Bermakna
|
||
|
||
*Pertemuan 5 (M5) | Sub-CPMK 2.1 | CPMK02 | CPL06*
|
||
|
||
Fase: **Designing** (M5–M7) · Bagian II: Measurement & Design
|
||
|
||
**Universitas Putra Bangsa** | Fak. Sains & Teknologi · Prodi Teknik Informatika
|
||
|
||
---
|
||
|
||
## Agenda Pertemuan 5
|
||
|
||
1. Bridge dari Fase Thinking — fondasi ke pengukuran
|
||
2. Measurement Alignment Model
|
||
3. Operasionalisasi: Concept → Variable → Metric
|
||
4. Empat skala data: Nominal, Ordinal, Interval, Ratio
|
||
5. Kriteria pemilihan metrik
|
||
6. Multi-metric evaluation — mengapa satu metrik tidak cukup
|
||
7. Data quality: 4 pilar
|
||
8. Cognitive Traps & Studi Kasus
|
||
9. Output Praktis: Definisi variabel + metrik + tipe data
|
||
|
||
---
|
||
|
||
## Capaian Pembelajaran
|
||
|
||
Setelah pertemuan ini, mahasiswa mampu:
|
||
|
||
- Menjelaskan proses **operasionalisasi** dari konsep abstrak ke variabel terukur
|
||
- Membedakan 4 skala data dan menentukan **analisis statistik** yang valid per skala
|
||
- Memilih metrik yang **representatif, sensitif, dan feasible** sesuai RQ
|
||
- Merancang **multi-metric evaluation** yang komprehensif
|
||
- Menilai **kualitas data** menggunakan 4 pilar
|
||
|
||
> Sub-CPMK 2.1 → Mendefinisikan metrik yang valid dan representatif (CPL06)
|
||
|
||
---
|
||
|
||
## Bridge — Dari Fase Thinking ke Designing
|
||
|
||
Di Bab 4, Anda menghasilkan:
|
||
- **RQ** yang tajam dan testable
|
||
- **Hipotesis** H0/H1 yang falsifiable
|
||
- **Contribution Statement** yang eksplisit
|
||
|
||
**Sekarang pertanyaannya:** Apa tepatnya yang akan **diukur**?
|
||
|
||
> "Sistem yang diusulkan memiliki performa lebih baik dibanding baseline."
|
||
|
||
- Performa diukur dari apa?
|
||
- Akurasi? Precision? Recall? F1? Latency? Throughput?
|
||
- Dan jika dipilih akurasi — apakah distribusi datanya seimbang?
|
||
|
||
**Keputusan memilih metrik harus dilakukan SEBELUM eksperimen berjalan** — bukan setelah melihat data. *(Wohlin et al., 2012)*
|
||
|
||
---
|
||
|
||
## Measurement Alignment Model
|
||
|
||
*Setiap angka harus bisa ditelusuri balik dari Problem*
|
||
|
||
```
|
||
Problem → Concept → Variable → Metric → Data → Result
|
||
↕ ↕ ↕ ↕ ↕ ↕
|
||
Abstraksi Konsep Operasionalisasi Kuantifikasi Pengumpulan Analisis
|
||
```
|
||
|
||
| Transisi | Pertanyaan Kunci | Kegagalan Umum |
|
||
|----------|-----------------|----------------|
|
||
| Problem → Concept | Konsep apa yang mewakili masalah ini? | Konsep terlalu abstrak |
|
||
| Concept → Variable | Bagaimana konsep ini bisa diobservasi? | Variabel tidak merepresentasikan konsep |
|
||
| Variable → Metric | Dengan satuan apa diukur? | Metrik tidak sensitif terhadap perubahan |
|
||
| Metric → Data | Bagaimana data dikumpulkan? | Bias dalam pengumpulan |
|
||
| Data → Result | Analisis statistik apa yang valid? | Asumsi statistik tidak dipenuhi |
|
||
|
||
> Jika rantai ini putus di mana saja → **construct validity** rusak.
|
||
|
||
---
|
||
|
||
## Operasionalisasi: Dari Konsep ke Angka
|
||
|
||
**Contoh operasionalisasi "User Engagement":**
|
||
|
||
<div class="highlight-box">
|
||
|
||
**Concept:** User Engagement (abstrak)
|
||
|
||
↓ Variable 1: Frekuensi penggunaan | Variable 2: Durasi sesi rata-rata | Variable 3: Breadth of feature usage
|
||
|
||
↓ Metric 1: Jumlah sesi/minggu | Metric 2: Durasi rata-rata sesi (menit) | Metric 3: Jumlah fitur unik/sesi
|
||
|
||
↓ **Data Type:** Ratio | Ratio | Ratio
|
||
|
||
</div>
|
||
|
||
> Keputusan tentang **apa yang mewakili apa** harus **didokumentasikan dan dijustifikasi**. Pembaca harus bisa memahami mengapa variabel ini dipilih (dan bukan variabel lain).
|
||
|
||
---
|
||
|
||
## Empat Skala Data
|
||
|
||
*(Field, 2018)*
|
||
|
||
| Skala | Urutan? | Jarak Seragam? | Nol Absolut? | Contoh | Analisis Valid |
|
||
|-------|---------|---------------|-------------|--------|----------------|
|
||
| **Nominal** | – | – | – | Jenis browser, bahasa pemrograman | Frekuensi, modus, Chi-square |
|
||
| **Ordinal** | ✓ | – | – | Skala Likert, severity bug | Median, percentile, Mann-Whitney |
|
||
| **Interval** | ✓ | ✓ | – | Suhu Celsius, skor IQ | Mean, SD, t-test |
|
||
| **Ratio** | ✓ | ✓ | ✓ | Waktu respons (ms), akurasi (%), throughput | Semua operasi, termasuk rasio |
|
||
|
||
> **Kesalahan paling umum:** memperlakukan **Ordinal** (Likert 1–5) seolah Interval, lalu menghitung rata-rata dan menggunakan t-test. Tidak valid secara statistik kecuali ada justifikasi khusus.
|
||
|
||
---
|
||
|
||
## Kriteria Pemilihan Metrik
|
||
|
||
Tiga kriteria utama *(Wohlin et al., 2012)*:
|
||
|
||
**1. Representatif** — Metrik benar-benar merepresentasikan konsep yang diteliti.
|
||
- Jika RQ tentang efektivitas deteksi → Recall lebih representatif daripada Accuracy
|
||
- Menggunakan Accuracy untuk dataset imbalance
|
||
|
||
**2. Sensitif** — Metrik cukup peka terhadap perubahan variabel independen.
|
||
- F1-score sensitif terhadap trade-off precision-recall
|
||
- Accuracy pada 99% imbalance tidak sensitif terhadap perubahan model
|
||
|
||
**3. Feasible** — Data yang dibutuhkan untuk menghitung metrik bisa diperoleh.
|
||
- Metrik yang bisa dihitung dari log sistem
|
||
- Metrik yang membutuhkan 10.000 human annotators dalam 1 semester
|
||
|
||
---
|
||
|
||
## Multi-Metric Evaluation
|
||
|
||
**Mengapa satu metrik tidak cukup?**
|
||
|
||
```
|
||
Problem ──→ Concept A ──→ Metric A1
|
||
└──→ Concept B ──→ Metric B1
|
||
└──→ Metric B2
|
||
```
|
||
|
||
| Kasus | Metrik Tunggal | Multi-Metrik |
|
||
|-------|---------------|-------------|
|
||
| Fraud detection | Accuracy: 98% (menyesatkan) | Recall + Precision + F2 + AUC-ROC |
|
||
| Rekomendasi | Precision@K | Precision@K + Diversity + Coverage + Serendipity |
|
||
| NLP model | F1-score agregat | F1 per kelas + Confusion Matrix + MCC |
|
||
| System performance | Throughput | Throughput + Latency P50/P95/P99 + Error rate |
|
||
|
||
> Setiap metrik mengukur satu aspek dari konsep. Gunakan minimal **2–3 metrik yang saling melengkapi** untuk gambaran yang komprehensif.
|
||
|
||
---
|
||
|
||
## Data Quality — 4 Pilar
|
||
|
||
Data berkualitas buruk menghasilkan hasil yang tidak dapat dipercaya, meskipun metodenya sempurna.
|
||
|
||
| Pilar | Definisi | Cara Cek |
|
||
|-------|---------|---------|
|
||
| **Completeness** | Tidak ada nilai yang hilang secara tidak terduga | % missing values per kolom |
|
||
| **Consistency** | Format dan logika data konsisten di seluruh dataset | Cross-field validation |
|
||
| **Accuracy** | Data merepresentasikan realitas yang sebenarnya | Bandingkan dengan ground truth / sumber asli |
|
||
| **Representativeness** | Distribusi data mencerminkan populasi target | Distribusi kelas, geografi, demografi |
|
||
|
||
**Dokumentasi kualitas data** wajib ada dalam laporan:
|
||
- Cara pengumpulan data
|
||
- Transformasi yang dilakukan
|
||
- Missing values: berapa? diapakan?
|
||
|
||
---
|
||
|
||
<!-- _class: section-header bagian-ii -->
|
||
|
||
# Cognitive Traps
|
||
## Bab 5 — Metric & Measurement
|
||
|
||
---
|
||
|
||
## Cognitive Traps — Bab 5
|
||
|
||
**"Accuracy adalah metrik universal"**
|
||
Accuracy misleading untuk imbalanced dataset. Model yang memprediksi "semua negatif" pada dataset 99% negatif mendapat accuracy 99%. Gunakan Precision, Recall, F1, MCC, atau AUC sesuai konteks.
|
||
|
||
**"Metrik dipilih setelah melihat hasil eksperimen"**
|
||
Ini adalah *outcome bias* — memilih metrik yang kebetulan menghasilkan nilai terbaik. Metrik harus ditetapkan dalam desain eksperimen, sebelum data dikumpulkan.
|
||
|
||
**"Data yang banyak pasti representatif"**
|
||
Volume ≠ representativeness. 1 juta record dari satu demografi tidak merepresentasikan populasi yang beragam. Periksa distribusi dan sumber data, bukan hanya ukurannya.
|
||
|
||
---
|
||
|
||
## Studi Kasus 1 — Accuracy Imbalance (Basic)
|
||
|
||
**Konteks:** Researcher menggunakan dataset fraud (99.5% normal, 0.5% fraud). Hasil: **Accuracy 99.6%**.
|
||
|
||
**Masalah:**
|
||
- Model memprediksi "semua normal" → accuracy 99.5% (hampir sama dengan "model terbaik")
|
||
- Recall fraud: **0%** — tidak satu pun fraud terdeteksi
|
||
- Laporan hanya menampilkan accuracy → pembaca tersesat
|
||
|
||
| Metrik | Nilai | Interpretasi |
|
||
|--------|-------|-------------|
|
||
| Accuracy | 99.6% | Tidak bermakna |
|
||
| Recall (fraud) | 0% | Gagal total |
|
||
| F2-score | 0.00 | Model tidak berguna |
|
||
| AUC-ROC | 0.50 | Sama dengan random |
|
||
|
||
**Solusi:** Gunakan F2-score, Recall, AUC-ROC. Tambahkan teknik resampling (SMOTE, class weighting). Laporkan semua metrik.
|
||
|
||
---
|
||
|
||
## Studi Kasus 2 — User Satisfaction vs System Metric (Advanced)
|
||
|
||
**Konteks:** Sistem rekomendasi baru — Precision@10 meningkat dari 72% ke 89%. Tapi user survey score turun.
|
||
|
||
**Gap Metrik:**
|
||
- Researcher hanya mengukur Precision@10 (teknis)
|
||
- User experience: semua rekomendasi mirip (filter bubble), tidak ada kejutan
|
||
- Metrik teknis tidak merepresentasikan kepuasan pengguna
|
||
|
||
**Pelajaran:**
|
||
```
|
||
Technical Metric ≠ User Experience
|
||
Precision@10 ≠ User Satisfaction
|
||
```
|
||
|
||
**Solusi:** Tambahkan **Beyond-Accuracy Metrics**:
|
||
- Diversity (keberagaman rekomendasi)
|
||
- Novelty (seberapa baru item yang direkomendasikan)
|
||
- Serendipity (kejutan positif)
|
||
- Coverage (berapa persen katalog yang bisa direkomendasikan)
|
||
|
||
---
|
||
|
||
## Research vs Engineering — Perspektif Measurement
|
||
|
||
| Aspek | Engineering | Research |
|
||
|-------|------------|---------|
|
||
| Memilih metrik | Yang paling mudah dihitung | Yang paling merepresentasikan konsep |
|
||
| Performa "bagus" | Lulus acceptance test | Signifikan secara statistik vs baseline |
|
||
| Data quality | Cukup untuk demo | Terdokumentasi, justified, reproducible |
|
||
| Baseline | Tidak ada (sistem baru) | Wajib ada, dipilih dari literatur |
|
||
| Laporan | Metrics terbaik saja | Semua metrics, termasuk yang buruk |
|
||
|
||
---
|
||
|
||
## Ringkasan Pertemuan 5
|
||
|
||
| Konsep | Inti |
|
||
|--------|------|
|
||
| Measurement Alignment | Problem → Concept → Variable → Metric → Data → Result |
|
||
| Operasionalisasi | Konsep abstrak → variabel observable → satuan terukur |
|
||
| 4 Skala Data | Nominal · Ordinal · Interval · Ratio (menentukan analisis statistik) |
|
||
| Pemilihan Metrik | Representatif + Sensitif + Feasible |
|
||
| Multi-Metric | 2–3 metrik saling melengkapi; tidak ada metrik universal |
|
||
| Data Quality | Completeness + Consistency + Accuracy + Representativeness |
|
||
|
||
---
|
||
|
||
## Final Statement & Output Praktis
|
||
|
||
<div class="final">
|
||
"Penelitian yang baik bukan hanya mengukur, tetapi memastikan bahwa apa yang diukur benar-benar merepresentasikan realitas."
|
||
</div>
|
||
|
||
### Output Praktis M5
|
||
|
||
Buat **dokumen definisi pengukuran**:
|
||
|
||
1. Tabel **Variable Operationalization**: Concept → Variable → Metric → Data Type → Statistical Test
|
||
2. **Justifikasi pemilihan metrik** (1 paragraf per metrik utama)
|
||
3. **Data quality plan**: bagaimana memastikan 4 pilar kualitas data terpenuhi
|
||
|
||
*Dokumen ini menjadi bagian "Metodologi — Pengukuran" dalam proposal riset.*
|
||
|
||
---
|
||
|
||
## Referensi Utama — Bab 5
|
||
|
||
- Field, A. (2018). *Discovering statistics using IBM SPSS statistics* (5th ed.). SAGE Publications.
|
||
|
||
- Shadish, W. R., Cook, T. D., & Campbell, D. T. (2002). *Experimental and quasi-experimental designs for generalized causal inference*. Houghton Mifflin.
|
||
|
||
- Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. (2012). *Experimentation in software engineering*. Springer.
|
||
|
||
- Herlocker, J. L., Konstan, J. A., Terveen, L. G., & Riedl, J. T. (2004). Evaluating collaborative filtering recommender systems. *ACM Transactions on Information Systems, 22*(1), 5–53.
|