- 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
1423 lines
40 KiB
Markdown
1423 lines
40 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 6 — System Design sebagai Experimental Artifact
|
||
|
||
## Sistem sebagai Alat Uji, Bukan Tujuan Akhir
|
||
|
||
*Pertemuan 6 (M6) | Sub-CPMK 2.2 | CPMK02 | CPL06*
|
||
|
||
Fase: **Designing** (M5–M7) · Bagian II: Measurement & Design
|
||
|
||
**Universitas Putra Bangsa** | Fak. Sains & Teknologi · Prodi Teknik Informatika
|
||
|
||
---
|
||
|
||
## Agenda Pertemuan 6
|
||
|
||
1. Perubahan paradigma: sistem sebagai alat uji hipotesis
|
||
2. System as Experiment Model
|
||
3. 4 Prinsip desain sistem riset: Traceability, Modularity, Controllability, Measurability
|
||
4. Mapping RQ → System Component
|
||
5. Pentingnya control & isolation variabel
|
||
6. Dokumentasi arsitektur sebagai bagian metodologi
|
||
7. Cognitive Traps & Studi Kasus
|
||
8. Output Praktis: Diagram arsitektur + mapping ke variabel
|
||
|
||
---
|
||
|
||
## Capaian Pembelajaran
|
||
|
||
Setelah pertemuan ini, mahasiswa mampu:
|
||
|
||
- Menjelaskan perbedaan antara **sistem engineered** dan **sistem sebagai artefak penelitian**
|
||
- Memetakan **RQ → System Component** secara eksplisit
|
||
- Merancang sistem yang memenuhi **4 prinsip**: Traceability, Modularity, Controllability, Measurability
|
||
- Menjelaskan pentingnya **variabel control** dan **isolation** dalam desain eksperimen
|
||
- Mendokumentasikan arsitektur sebagai bagian metodologi riset
|
||
|
||
> Sub-CPMK 2.2 → Merancang sistem sebagai artefak eksperimen (CPL06)
|
||
|
||
---
|
||
|
||
## Perubahan Paradigma Fundamental
|
||
|
||
| Pertanyaan | Engineering View | Research View |
|
||
|-----------|-----------------|--------------|
|
||
| **Untuk apa sistem ini dibangun?** | Agar pengguna bisa menggunakannya | Agar hipotesis bisa diuji |
|
||
| **Ukuran keberhasilan utama** | Sistem berjalan sesuai requirement | Hipotesis terjawab secara signifikan |
|
||
| **Yang diprioritaskan** | Fitur lengkap, UX bagus | Kontrol variabel, reproducibility |
|
||
| **Arsitektur dirancang berdasarkan** | Kebutuhan fungsional | RQ dan variabel eksperimen |
|
||
| **Dokumentasi terpenting** | User manual, API docs | Experimental setup, parameter log |
|
||
|
||
> "Dalam penelitian, sistem bukan dibangun untuk digunakan, tetapi untuk **membuktikan sesuatu secara ilmiah**."
|
||
|
||
---
|
||
|
||
## System as Experiment Model
|
||
|
||
*RQ menentukan arsitektur, bukan sebaliknya*
|
||
|
||
<div class="highlight-box">
|
||
|
||
**Research Question** ↓ Variable (Independent & Dependent) ↓ System Component (apa yang perlu dibangun?) ↓ Experimental Setup (bagaimana dijalankan?) ↓ **Output / Measured Data**
|
||
|
||
</div>
|
||
|
||
Setiap komponen sistem harus bisa dijawab: **"Komponen ini mendukung variabel/hipotesis yang mana?"**
|
||
|
||
---
|
||
|
||
## 4 Prinsip Desain Sistem Riset
|
||
|
||
### 1. Traceability — setiap komponen bisa ditelusuri ke RQ
|
||
|
||
Setiap modul atau komponen sistem harus punya kaitan eksplisit ke variabel dalam RQ.
|
||
|
||
<div class="highlight-box">
|
||
|
||
**RQ:** "Apakah attention mechanism meningkatkan F1-score NER?"
|
||
- Modul A: BiLSTM encoder (baseline)
|
||
- Modul B: Attention layer (variabel independen)
|
||
- Modul C: CRF decoder (output)
|
||
- Modul D: Evaluasi F1 per entity (variabel dependen)
|
||
|
||
</div>
|
||
|
||
Jika ada komponen yang tidak bisa ditelusuri ke RQ → pertanyakan apakah komponen itu diperlukan.
|
||
|
||
---
|
||
|
||
## 4 Prinsip Desain Sistem Riset (lanjutan)
|
||
|
||
### 2. Modularity — komponen yang diuji harus bisa diswap
|
||
|
||
Sistem harus dirancang sehingga variabel yang diuji bisa diubah secara independen.
|
||
|
||
**Monolith:** Semua logika dalam satu fungsi besar → tidak bisa isolasi perubahan
|
||
|
||
**Modular:** Setiap komponen terpisah, bisa diganti tanpa mengubah yang lain
|
||
|
||
### 3. Controllability — bisa mengontrol kondisi eksperimen
|
||
|
||
Harus bisa mengatur: seed random, hyperparameter, ukuran dataset, split ratio — secara konsisten dan reproducible.
|
||
|
||
### 4. Measurability — output bisa langsung diukur
|
||
|
||
Output sistem harus langsung menghasilkan data dalam format yang bisa dievaluasi dengan metrik yang sudah didefinisikan.
|
||
|
||
---
|
||
|
||
## Mapping RQ → System Component
|
||
|
||
*Template traceability matrix*
|
||
|
||
| RQ / Hipotesis | Variabel | Komponen Sistem | Cara MengukurNya |
|
||
|----------------|---------|----------------|-----------------|
|
||
| H1: attention meningkatkan F1 NER | IndepVar: ada/tidaknya attention layer | Modul attention (swappable) | F1 per entity type |
|
||
| | DepVar: F1-score NER | Evaluation module | Seqeval library |
|
||
| H2: batch size pengaruhi training speed | IndepVar: batch size (16/32/64/128) | Training config (YAML) | Training time per epoch |
|
||
| | DepVar: convergence speed | Logger | Loss curve per epoch |
|
||
|
||
> **Traceability matrix** ini adalah bagian wajib dari bab Metodologi dalam laporan riset.
|
||
|
||
---
|
||
|
||
## Control & Isolation Variabel
|
||
|
||
**Prinsip eksperimen ilmiah:** Ubah **satu variabel pada satu waktu**, kontrol semua yang lain.
|
||
|
||
**Variabel yang harus dikontrol (contoh ML):**
|
||
|
||
| Variabel Kontrol | Cara Mengontrol |
|
||
|-----------------|----------------|
|
||
| Dataset split | Fixed seed, stratified split |
|
||
| Hyperparameter | Config file yang di-version control |
|
||
| Hardware | Sama untuk semua eksperimen |
|
||
| Random seed | Set di semua library (numpy, torch, sklearn) |
|
||
| Data preprocessing | Pipeline identik untuk semua kondisi |
|
||
| Jumlah epoch/run | Fixed, sama untuk semua kondisi |
|
||
|
||
> Mengubah lebih dari satu variabel dalam satu eksperimen → tidak bisa mengidentifikasi variabel mana yang menyebabkan perubahan output.
|
||
|
||
---
|
||
|
||
<!-- _class: section-header bagian-ii -->
|
||
|
||
# Cognitive Traps
|
||
## Bab 6 — System Design
|
||
|
||
---
|
||
|
||
## Cognitive Traps — Bab 6
|
||
|
||
**"Semakin kompleks sistem, semakin besar kontribusi"**
|
||
Kompleksitas bukan kontribusi. Sistem sederhana yang terkontrol dengan baik lebih kuat secara ilmiah daripada sistem kompleks yang tidak bisa diisolasi variabelnya. Reviewer menilai kontrol eksperimen, bukan jumlah fitur.
|
||
|
||
**"Arsitektur bisa ditentukan setelah RQ"**
|
||
Dalam engineering, RQ ≠ yang menentukan arsitektur. Dalam research, RQ **adalah** yang menentukan arsitektur. Desain tanpa traceability ke RQ akan sulit dipertahankan saat sidang.
|
||
|
||
**"Sistem monolith lebih mudah, jadi pakai itu saja"**
|
||
Monolith tidak bisa diisolasi. Jika Anda tidak bisa mematikan/menghidupkan satu komponen tanpa mengubah yang lain, Anda tidak bisa menguji pengaruh variabel secara independen.
|
||
|
||
---
|
||
|
||
## Studi Kasus 1 — Monolith vs Modular (Basic)
|
||
|
||
**Konteks:** Model ML untuk text classification. RQ: "Apakah pre-trained embedding meningkatkan F1?"
|
||
|
||
**Desain monolith:**
|
||
```python
|
||
def train_and_evaluate(data):
|
||
# 500 baris kode: preprocessing + embedding + model + training + eval
|
||
# semua dalam satu fungsi
|
||
```
|
||
Masalah: tidak bisa mengisolasi efek embedding. Preprocessing berubah → semua berubah.
|
||
|
||
**Desain modular:**
|
||
```python
|
||
preprocessor = TextPreprocessor(config) # modul terpisah
|
||
embedder = EmbeddingLayer(type="pretrained" | "random") # swappable
|
||
model = ClassificationModel(embedder) # depend on embedder interface
|
||
evaluator = F1Evaluator() # independent
|
||
```
|
||
|
||
*Sekarang bisa swap `type="pretrained"` ↔ `type="random"` tanpa mengubah yang lain.*
|
||
|
||
---
|
||
|
||
## Studi Kasus 2 — Multiple Feature Change (Advanced)
|
||
|
||
**Konteks:** Peneliti melaporkan: "Model baru 15% lebih baik dari baseline."
|
||
|
||
**Masalah — terlalu banyak perubahan sekaligus:**
|
||
- Menambahkan attention mechanism ✚
|
||
- Mengubah optimizer dari Adam ke AdamW ✚
|
||
- Menambahkan dropout layer ✚
|
||
- Mengubah learning rate schedule ✚
|
||
|
||
Pertanyaan reviewer: *"Peningkatan 15% berasal dari yang mana?"*
|
||
|
||
**Pendekatan yang benar: Ablation Study**
|
||
|
||
| Eksperimen | Attention | AdamW | Dropout | F1-score |
|
||
|-----------|-----------|-------|---------|----------|
|
||
| Baseline | – | – | – | 74.2% |
|
||
| + Attention | ✓ | – | – | 81.5% (+7.3%) |
|
||
| + AdamW | ✓ | ✓ | – | 82.1% (+0.6%) |
|
||
| + Dropout | ✓ | ✓ | ✓ | 85.7% (+3.6%) |
|
||
|
||
*Sekarang jelas: attention yang berkontribusi terbesar.*
|
||
|
||
---
|
||
|
||
## Research vs Engineering — System Design
|
||
|
||
| Aspek | Engineering | Research |
|
||
|-------|------------|---------|
|
||
| Tujuan rancangan | Sistem berfungsi | Hipotesis dapat diuji |
|
||
| Kompleksitas | Bisa kompleks jika diperlukan | Sesederhana mungkin agar terkontrol |
|
||
| Dokumentasi | User manual | Experimental setup (reproducibility) |
|
||
| Perubahan komponen | Untuk perbaikan fitur | Untuk ablation study |
|
||
| Evaluasi | Acceptance testing | Uji statistik vs baseline |
|
||
| Portability | Nice to have | Wajib (reproducibility) |
|
||
|
||
---
|
||
|
||
## Ringkasan Pertemuan 6
|
||
|
||
| Konsep | Inti |
|
||
|--------|------|
|
||
| Paradigma shift | Sistem **bukan** tujuan → alat uji hipotesis |
|
||
| System as Experiment | RQ → Variable → Component → Setup → Output |
|
||
| 4 Prinsip | Traceability · Modularity · Controllability · Measurability |
|
||
| Mapping RQ | Setiap komponen harus bisa ditelusuri ke variabel |
|
||
| Control | Ubah 1 variabel, kontrol semua → ablation study |
|
||
| Dokumentasi | Traceability matrix wajib dalam metodologi |
|
||
|
||
---
|
||
|
||
## Final Statement & Output Praktis
|
||
|
||
<div class="final">
|
||
"Dalam penelitian, sistem bukan dibangun untuk digunakan, tetapi untuk membuktikan sesuatu secara ilmiah."
|
||
</div>
|
||
|
||
### Output Praktis M6
|
||
|
||
Buat **2 dokumen**:
|
||
|
||
1. **Diagram Arsitektur Sistem** (Mermaid/draw.io) — annotated dengan label variabel:
|
||
- Tandai: `[IndepVar]`, `[DepVar]`, `[Control]` pada setiap komponen
|
||
2. **Traceability Matrix** (tabel: RQ/Hipotesis → Variabel → Komponen → Cara Ukur)
|
||
|
||
*Dokumen ini menjadi bagian "System Design" dalam bab Metodologi.*
|
||
|
||
---
|
||
|
||
## Referensi Utama — Bab 6
|
||
|
||
- Hevner, A. R., March, S. T., Park, J., & Ram, S. (2004). Design science in information systems research. *MIS Quarterly, 28*(1), 75–105.
|
||
|
||
- Wieringa, R. J. (2014). *Design science methodology for information systems and software engineering*. Springer.
|
||
|
||
- Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. (2012). *Experimentation in software engineering*. Springer.
|
||
|
||
- Peffers, K., Tuunanen, T., Rothenberger, M. A., & Chatterjee, S. (2007). A design science research methodology for information systems research. *Journal of Management Information Systems, 24*(3), 45–77.
|