Compare commits

...

37 Commits

Author SHA1 Message Date
nuluh
5b609e46a7 feat(latex): expand introduction chapter with detailed background and problem formulation 2025-05-22 21:49:22 +07:00
nuluh
44149d2f0e feat(latex): initialize novelty section to background chapter 2025-05-15 21:21:46 +07:00
nuluh
2ac7e45a10 feat(latex): initialize purpose section to background chapter 2025-05-15 21:21:30 +07:00
nuluh
106850b3df feat(latex): initialize scope section to background chapter 2025-05-15 21:20:48 +07:00
nuluh
75cfb25923 feat(latex): initialize key issues section to background chapter 2025-05-15 21:19:16 +07:00
nuluh
a78dc930c2 feat(latex): add initial content for background chapter on structural health monitoring 2025-05-15 21:18:12 +07:00
nuluh
144d381a2b feat(latex): restructure and initialize new introduction chapter background files structure 2025-05-15 21:16:14 +07:00
Rifqi D. Panuluh
2016f4e780 Merge pull request #69 from nuluh/latex/68-feat-refactor-chapter-two
[FEAT] Refactor Chapter Two
2025-05-15 05:51:01 +07:00
nuluh
0cf2834095 refactor(latex): remove unused figure from literature review chapter 2025-05-15 02:04:17 +07:00
nuluh
d5f43ba48b refactor(latex): refactor literature review and theoretical foundations files structure with placeholder 2025-05-15 02:03:39 +07:00
nuluh
a872ae144c feat(latex): initialize new literature review files for comprehensive analysis 2025-05-15 01:59:00 +07:00
Rifqi D. Panuluh
3d2432f26e Merge pull request #66 from nuluh/latex/initial-template
Add Initial LaTeX Template
2025-05-14 18:41:52 +07:00
nuluh
1533a6ce46 fix(latex): add TOC entries for approval and originality sections 2025-05-14 17:59:36 +07:00
nuluh
471eccb12c fix(latex): remove new macro \frontmattersection to manually add \addcontentsline into each frontmatter to make hyperlink ToC jumpt into correct page.
Closes #65
2025-05-14 17:58:06 +07:00
nuluh
74ea4d412c fix(latex): update TOC title to use the correct language dynamically 2025-05-14 17:37:17 +07:00
nuluh
9d526971d9 feat(latex): add polyglossia package and set main language to Bahasa Indonesia 2025-05-14 17:34:56 +07:00
nuluh
49adb273d8 fix(latex): fix equation numbering to include chapter prefix in arabic
Closes #62
2025-05-14 12:21:21 +07:00
nuluh
ee004e55f4 fix(latex): add figure and table numbering prefixes to TOC 2025-05-13 02:02:41 +07:00
nuluh
f97c58e114 feat(latex): add styling for List of Figures and List of Tables titles 2025-05-13 01:42:16 +07:00
nuluh
190cd0904e fix(latex): fix merge conflicts 2025-05-12 00:45:30 +07:00
nuluh
6105da57f0 Merge branch 'latex/57-feat-add-dynamic-page-style-for-chapter-page' into latex/initial-template 2025-05-12 00:36:34 +07:00
nuluh
63da3b6308 fix(latex): remove titlepage environment from frontmattersection macro to make the \frontmatter and \mainmatter pagination number type change properly
Closes #57
2025-05-12 00:31:24 +07:00
nuluh
5634776d26 fix(latex): fix wrong endorsement content by moving it into approval sheet 2025-05-12 00:08:40 +07:00
nuluh
e65026f9ca feat(latex): add originality statement content 2025-05-12 00:06:24 +07:00
nuluh
eb1d2a87b4 refactor(latex): move figure numbering declaration 2025-05-11 23:05:13 +07:00
nuluh
1f275fad42 feat(latex): add figure and table numbering to include chapter numbern arabic despite the chapter number using roman and dummy figures to test 2025-05-11 22:57:26 +07:00
nuluh
07ed6a9a13 fix(latex): reorder document structure by moving \frontmatter and \mainmatter for proper page numbering 2025-05-11 22:54:02 +07:00
nuluh
1b20376700 Merge branch 'latex/initial-template' into latex/57-feat-add-dynamic-page-style-for-chapter-page 2025-05-11 22:15:40 +07:00
nuluh
104b72e624 fix(latex): remove second \hfill in the \cftaftertoctitle to fix the \contentsname with book document class 2025-05-11 22:15:05 +07:00
nuluh
e9568583e4 fix(latex): change document class from report to book for having access to \frontmatter, \mainmatter, and \backmatter 2025-05-11 22:13:46 +07:00
nuluh
ae201d61fa Merge branch 'latex/initial-template' into latex/57-feat-add-dynamic-page-style-for-chapter-page 2025-05-11 21:56:14 +07:00
nuluh
921dc9245c fix(latex): add draft watermark functionality with conditional loading 2025-05-11 19:32:13 +07:00
nuluh
bf3c43639d fix(latex): update page layout margins to 3cm for all sides 2025-05-11 18:26:46 +07:00
nuluh
f38d44df1d fix(latex): add dummy introductory chapter and sections for doing unittest of new implemented page number and chapter numbering 2025-05-11 13:00:53 +07:00
nuluh
5c70d7db51 fix(latex): ensure fancyplain page style preset is applied before content inclusion so it use top right number for non-first-page chapter 2025-05-11 12:54:55 +07:00
nuluh
702760cc5e fix(latex): assign fancyhdr preset page style to frontmatter section macro 2025-05-11 12:52:52 +07:00
nuluh
43a0f40182 fix(latex): creating header and footer styles preset 2025-05-11 12:51:23 +07:00
16 changed files with 302 additions and 95 deletions

View File

@@ -0,0 +1,68 @@
\chapter{PENDAHULUAN}
\section{Latar Belakang}
\indent Monitor Kesehatan Struktur (\textit{Structural Health Monitoring} atau SHM) merupakan pendekatan penting untuk menjamin integritas dan keselamatan struktur teknik sipil secara berkelanjutan. Salah satu komponen struktural yang umum digunakan dalam penyambungan adalah sambungan baut (\textit{bolt joint}), yang dikenal karena kemudahan dalam perakitan dan penggunaan ulang. Namun demikian, sambungan berulir ini rentan mengalami kelonggaran akibat beban kejut atau getaran terus-menerus \parencite{chen2017}. Kelonggaran baut yang tidak terdeteksi sejak dini dapat menyebabkan kerusakan serius pada struktur, sehingga identifikasi dini terhadap kerusakan sambungan baut menjadi krusial dalam bidang teknik sipil, mesin, dan kedirgantaraan.
\indent Deteksi kelonggaran baut telah dilakukan melalui berbagai metode. Kelompok pertama adalah inspeksi \textit{in-situ}, seperti inspeksi visual atau penggunaan alat mekanis seperti kunci torsi dan palu. Meskipun sederhana dan murah, metode ini sulit untuk mendeteksi kerusakan pada tahap awal \parencite{j.h.park2015}. Metode palu lebih efektif dibanding visual untuk mendeteksi awal kelonggaran, tetapi akurasinya dapat terganggu oleh kebisingan lingkungan, serta memakan waktu bila diaplikasikan pada struktur dengan banyak sambungan seperti jembatan \parencite{j.h.park2015,wang2013}.
\indent Kelompok kedua menggunakan teknik berbasis penglihatan komputer seperti kamera dan pencitraan digital, termasuk deteksi rotasi kepala baut menggunakan CNN dan Faster R-CNN \parencite{zhang2020,zhao2019}. Meskipun teknik ini dapat mendeteksi kerusakan secara visual tanpa dipengaruhi oleh kebisingan akustik, tantangan tetap ada dalam hal penempatan kamera dan beban komputasi tinggi dari model deep learning, terutama dalam kondisi sempit seperti mesin kendaraan atau turbin.
\indent Kelompok ketiga dan yang menjadi fokus penelitian ini adalah teknik berbasis sensor, terutama pendekatan berbasis getaran (\textit{vibration-based}). Metode ini tidak hanya efektif dalam mengatasi keterbatasan teknik sebelumnya, tetapi juga mampu mendeteksi kelonggaran baut pada tahap awal secara andal dan akurat \parencite{nichols2004,razi2013}. Dalam penelitian ini, deteksi dilakukan melalui data akselerasi struktur yang diambil dari titik-titik sambungan dalam \textit{sistem grid} yang mewakili koneksi baut secara arah kolom.
\indent Pada penelitian sebelumnya oleh \textcite{abdeljaber2017}, deteksi kerusakan struktur menggunakan 1-D Convolutional Neural Network (1-D CNN) telah diterapkan secara efektif pada struktur grid dengan 30 titik sensor. Namun, keterbatasan tetap muncul dalam hal kebutuhan sumber daya komputasi yang tinggi ketika memproses data mentah berdimensi besar dari semua sensor secara simultan \parencite{yang2020, liu2022}. Beberapa studi menyarankan bahwa transformasi sinyal seperti STFT dapat digunakan sebagai alternatif ekstraksi fitur sebelum dilakukan klasifikasi \parencite{shahid2022}. Pendekatan ini tidak hanya mengurangi kompleksitas perhitungan tetapi juga dapat mempertahankan karakteristik penting dari sinyal yang tereduksi.
\indent Oleh karena itu, penelitian ini mengadopsi pendekatan pengurangan jumlah sensor menjadi hanya dua per jalur kolom (atas dan bawah), merepresentasikan sambungan vertikal seperti susunan baut, dengan tujuan menyederhanakan model tanpa kehilangan akurasi deteksi kerusakan. Data diproses melalui transformasi STFT sebelum diklasifikasikan menggunakan model algoritma pembelajaran mesin klasik. Dengan mengevaluasi berbagai pengklasifikasi dan validasi silang antar kolom, studi ini berkontribusi dalam menciptakan sistem SHM yang efisien, rendah biaya, dan mudah diimplementasikan.
\section{Rumusan Masalah}
Untuk memandu arah penelitian ini, beberapa permasalahan utama yang akan dibahas adalah sebagai berikut:
\begin{enumerate}
\item Apakah sinyal getaran yang hanya diperoleh dari sensor pada bagian atas dan bawah suatu jalur kolom masih mampu merepresentasikan fitur-fitur penting yang diperlukan untuk mengklasifikasikan kerusakan struktur secara akurat?
\item Apakah penggabungan data dari beberapa jalur kolom dapat meningkatkan kemampuan generalisasi model, meskipun jumlah sensor pada tiap jalur dibatasi?
\item Apakah algoritma machine learning klasik yang sederhana masih mampu menghasilkan model dengan kinerja yang cukup layak dibandingkan dengan model \textit{supervised} yang lebih kompleks ketika diterapkan pada skenario dengan input data sensor yang terbatas?
\end{enumerate}
% \section{Identifikasi Masalah}
% \begin{itemize}
% \item Kebanyakan kerangka kerja pada monitoring kesehatan struktur membutuhkan deretan sensor yang banyak, hal ini dibutuhkan biaya yang tinggi dan kurang praktikal untuk banyak pengaplikasian.
% \item Banyak model dengan performa tinggi bergantung pada teknik pemelajaran mendalam, sehingga dibutuhkan sumberdaya komputasi yang tinggi dan memungkinkan kurangnya kemudahan dan keterjangkauan untuk aplikasikan.
% \item Kurangnya kesederhanaan, pendeketan umum yang menyeimbangkan penggunaan sensor dengan keandalan dalam lokalisasi kerusakan.
% \end{itemize}
\section{Lingkup Penelitian}
Studi ini berfokus pada dataset yang tersedia secara publik didapat dari Queen's University Grandstand Simulator (QUGS), sebuah kerangka besi level laboratorium yang dipasang dengan tiga puluh titik sensor akselerometer dan \textit{white shaker noise}. Riset terdahulu telah dilakukan pengaplikasian pemelajaran mesin jaringan saraf terhadap seluruh sensor yang terpasang penuh pada setiap titik \textit{joint} untuk mencapai akurasi yang tinggi. Akan tetapi, pada praktiknya, instrumentasi penuh seperti ini terkadang kurang efektif dari segi biaya dan kurang layak dalam skala besar.
\section{Tujuan Penelitian}
\begin{enumerate}
\item Mengembangkan alur sistem (\textit{pipeline}) pemantauan kesehatan struktur (Structural Health Monitoring/SHM) yang disederhanakan dengan hanya menggunakan sepasang sensor di ujung-ujung struktur.
% \item Memperlakukan setiap grup kolom sensor sebagai elemen balok satu dimensi yang disederhanakan, dan mengevaluasi apakah karakteristik kerusakan tetap terjaga dalam energi getaran yang ditransmisikan antara kedua ujungnya.
% \item Menyusun setiap grup kolom sebagai satu dataset terpisah dan melakukan lima pengujian berbeda, di mana masing-masing grup kolom berperan sebagai data validasi secara bergantian.
% \item Menyertakan data dari setiap grup kolom ke dalam data pelatihan untuk membentuk satu model umum yang dapat digunakan untuk seluruh grup kolom.
\item Mengeksplorasi kemungkinan generalisasi satu model terhadap berbagai jalur kolom hanya dengan memanfaatkan data dari sensor pada kedua ujung kolom.
\end{enumerate}
% Dalam merespon hal tersebut, penelitian ini memperkenalkan pendekatan baru yang menekankan efisiensi pada penanganan data dan interpretasi fisik. Data pada sensor-sensor yang terpasang pada struktur grid ini dikelompokkan menjadi beberapa grup kolom, dan hanya menyisakan sensor awal dan sensor paling akhir dari setiap grup sensor sebagai input pengklasifikasian. Terdapat hipotesis bahwa energi getaran bergerak di sepanjang jalur kolom terjaga secara cukup baik antara ujung-ujung sensor untuk memungkinkan algoritma pemelajaran mesin, seperti Support-Vector Machine (SVM), Bagged Trees, Random Forest, Decision Tree, KNN, LDA, dan XGBoost, medeteksi dan mengklasifikasi secara akurat letak kerusakan.
\section{Manfaat Penelitian}
Penelitian ini memberikan beberapa manfaat yang diharapkan dapat berkontribusi dalam pengembangan sistem deteksi kerusakan struktur, antara lain:
\begin{enumerate}
\item Penelitian ini tidak berfokus pada pengembangan arsitektur model baru maupun penerapan \textit{transfer learning}, melainkan pada perancangan alur (\textit{pipeline}) klasifikasi yang sederhana dan mudah dipahami sebagai solusi tahap awal untuk pengembangan sistem monitor kesehatan struktur.
\item Dengan pemilihan titik sensor strategis yang terbatas (hanya di ujung atas dan bawah jalur kolom \textit{grid}) serta prapemrosesan berbasis transformasi STFT, penelitian ini menunjukkan bahwa efisiensi dapat dicapai tanpa mengorbankan akurasi secara signifikan.
\item Studi ini membuktikan bahwa algoritma pembelajaran mesin klasik seperti SVM, KNN, dan LDA masih mampu memberikan performa model yang kompetitif dalam klasifikasi kerusakan, apabila dipadukan dengan ekstraksi fitur yang tepat.
\item Hasil penelitian ini diharapkan dapat menjadi alternatif sistem SHM yang lebih terjangkau dan praktis untuk diterapkan pada struktur nyata, khususnya dalam kondisi keterbatasan sumber daya.
\item Rangkaian eksperimen dan pendekatan sistematis dalam penelitian ini dapat dijadikan tolok ukur atau \textit{baseline} untuk studi komparatif selanjutnya dan pengembangan model arsitektur yang lebih kompleks.
\end{enumerate}

View File

@@ -0,0 +1 @@
Monitor Kesehatan Struktur (SHM) merupakan aspek penting dalam melakukan pemeliharaan keamanan dan kelayakan operasional pada struktur. Dari berbagai macam strategi SHM, metode berbasis getaran sudah menjadi opsi paling banyak dijumpai karena kemampuannya untuk mendeteksi perubahan struktur internal secara non-invasif. Penemuan baru-baru ini pada pemelajaran mesin (\textit{machine learning}) telah memberi wawasan luas pada penggunaan model pemelajaran mendalam (\textit{deep learning}), seperti satu dimensi jaringan saraf konvolusional (1-D CNN), untuk deteksi lokalisasi kerusakan. Model-model ini biasanya memebutuhkan data dari susunan sensor penuh dan dataset latih besar. Hal ini terkadang membuat metode tersebut membutuhkan komputasi yang intensif dan kurang memungkinkan untuk diaplikasikan pada sumber daya yang terbatas. (Need more past research)

View File

@@ -0,0 +1,7 @@
\chapter{PENDAHULUAN}
\input{background}
\input{key_issue}
\input{scope}
\input{purpose}
\input{novelty}

View File

@@ -0,0 +1,10 @@
\section{Rumusan Masalah}
Untuk memandu arah penelitian ini, beberapa permasalahan utama yang akan dibahas adalah sebagai berikut:
\begin{enumerate}
\item Apakah sinyal getaran yang hanya diperoleh dari sensor pada bagian atas dan bawah suatu jalur kolom masih mampu merepresentasikan fitur-fitur penting yang diperlukan untuk mengklasifikasikan kerusakan struktur secara akurat?
\item Apakah penggabungan data dari beberapa jalur kolom dapat meningkatkan kemampuan generalisasi model, meskipun jumlah sensor pada tiap jalur dibatasi?
\item Apakah algoritma machine learning klasik yang sederhana masih mampu memberikan kinerja yang kompetitif dibandingkan dengan model yang lebih kompleks ketika diterapkan pada skenario dengan input data sensor yang terbatas?
\end{enumerate}

View File

@@ -0,0 +1,2 @@
\section{Manfaat Penelitian}
Kontribusi utama dalam penelitian ini bukan untuk mengenalkan model arsitektur baru atau pembuatan kerangka kerja untuk \textit{transfer learning}, melainkan pembuatan saluran pipa klasifikasi yang mudah digunakan dan dipahami pada tahap awal. Saluran pipa ini mendemonstrasikan bahwa dengan pemilihan titik sensor yang tepat dan prapemrosesan yang baik, algoritma klasik masih mmampu memberi akurasi yang tinggi pada lokalisasi kerusakan dengan menyeimbangkan antara kesederhanaan, efisiensi, dan performa. Hasil dari penelitian ini diharapkan dapat bermanfaat sebagai sistem monitor kesehatan struktur rendah biaya dan tolok ukur untuk studi komparatif selanjutnya yang melibatkan model arsitektur kompleks.

View File

@@ -0,0 +1,12 @@
\section{Tujuan Penelitian}
\begin{enumerate}
\item Mengembangkan alur sistem pemantauan kesehatan struktur (Structural Health Monitoring/SHM) yang disederhanakan dengan hanya menggunakan sepasang sensor (bagian atas dan bawah) dari grup kolom sensor (contoh: kolom (1,6,11,16,21,26)).
\item Memperlakukan setiap grup kolom sensor sebagai elemen balok satu dimensi yang disederhanakan, dan mengevaluasi apakah karakteristik kerusakan tetap terjaga dalam energi getaran yang ditransmisikan antara kedua ujungnya.
\item Menyusun setiap grup kolom sebagai satu dataset terpisah dan melakukan lima pengujian berbeda, di mana masing-masing grup kolom berperan sebagai data validasi secara bergantian.
\item Menyertakan data dari setiap grup kolom ke dalam data pelatihan untuk membentuk satu model umum yang dapat digunakan untuk seluruh grup kolom.
\item Mengeksplorasi kemungkinan generalisasi satu model terhadap berbagai jalur kolom hanya dengan memanfaatkan data dari sensor pada kedua ujung kolom.
\end{enumerate}

View File

@@ -0,0 +1,2 @@
\section{Lingkup Penelitian}
Studi ini berfokus pada dataset yang tersedia secara publik didapat dari Queen's University Grandstand Simulator (QUGS), sebuah kerangka besi level laboratorium yang dipasang dengan tiga puluh titik sensor akselerometer. Riset terdahulu telah dilakukan pengaplikasian \textit{deep learning} terhadap seluruh sensor yang terpasang penuh pada setiap titik joint untuk mencapai akurasi yang tinggi. Akan tetapi, pada praktiknya, instrumentasi penuh seperti ini terkadang tidak efektif dari segi biaya dan tidak layak secara logis.

View File

@@ -0,0 +1,7 @@
\chapter{TINJAUAN PUSTAKA DAN LANDASAN TEORI}
\section{Tinjauan Pustaka}
\input{chapters/id/02_literature_review/abdeljaber2017.tex}
\section{Dasar Teori}
\input{chapters/id/theoritical_foundation/stft.tex}
\input{chapters/id/theoritical_foundation/machine_learning.tex}

View File

@@ -0,0 +1 @@
\subsection{Machine Learning}

View File

@@ -0,0 +1 @@
\subsection{Short-Time Fourier Transform}

View File

@@ -0,0 +1,65 @@
% frontmatter/endorsement.tex
\setmainfont{Times New Roman}
\addcontentsline{toc}{chapter}{LEMBAR PERSETUJUAN TUGAS AKHIR}
\begin{center}
\textbf{\Large LEMBAR PERSETUJUAN TUGAS AKHIR} \\[0.5em]
\textit{APPROVAL SHEET}
\end{center}
\vspace{1em}
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{llp{10cm}}
\textbf{Judul} & : & \thesistitle \\
\textit{Title} & & \\
\textbf{Mahasiswa} & : & \studentname \\
\textit{Student} & & \\
\textbf{Nomor Mahasiswa} & : &\studentid \\
\textit{Student ID.} & & \\
\textbf{Dosen Pembimbing} & : & 1. \firstadvisor \\
\textit{Advisors} & & 2. \secondadvisor
\end{tabular}
\vspace{1em}
\textbf{Telah disetujui oleh Tim Penguji:} \\
\textit{Approved by the Committee on Oral Examination}
\vspace{1em}
\begin{tabular}{lp{5cm}}
\textbf{\firstadvisor} &:
% \vspace{2cm} % signature space
% \\[1em] % pull up next row
\\
\textit{Ketua Tim Penguji} &
\noindent\makebox[5cm]{\hrulefill}\\[-0.5em]
\textit{\small Chair} & \small Yogyakarta, \dotfill 2020
\\
\textbf{\secondadvisor} &:
% \vspace{2cm} % signature space
% \\[1em] % pull up next row
\\
\textit{Ketua Tim Penguji} &
\noindent\makebox[5cm]{\hrulefill}\\[-0.5em]
\textit{\small Chair} & \small Yogyakarta, \dotfill 2020 \\
\end{tabular}
\vspace{1em}
\noindent
\textbf{Diterima dan disetujui sebagai persyaratan untuk memperoleh gelar Sarjana Teknik} \\
\textit{Accepted in partial fulfillment of the requirements for the degree of Bachelor of Engineering}
\vspace{2em}
\begin{center}
\textbf{Ketua Program Studi} \\
\textit{Head of Department}
\end{center}
\vspace{3em}
\begin{center}
\textbf{\headdepartement} \\
NIK. \headdepartementid
\end{center}

View File

@@ -1,64 +1,7 @@
% frontmatter/endorsement.tex % frontmatter/endorsement.tex
\setmainfont{Times New Roman} \setmainfont{Times New Roman}
\chapter*{LEMBAR PENGESAHAN TUGAS AKHIR}
\begin{center} \begin{center}
\textbf{\Large LEMBAR PENGESAHAN TUGAS AKHIR} \\[0.5em] {\normalsize\textit{ENDORSEMENT SHEET}}
\textit{APPROVAL SHEET}
\end{center}
\vspace{1em}
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{llp{10cm}}
\textbf{Judul} & : & \thesistitle \\
\textit{Title} & & \\
\textbf{Mahasiswa} & : & \studentname \\
\textit{Student} & & \\
\textbf{Nomor Mahasiswa} & : &\studentid \\
\textit{Student ID.} & & \\
\textbf{Dosen Pembimbing} & : & 1. \firstadvisor \\
\textit{Advisors} & & 2. \secondadvisor
\end{tabular}
\vspace{1em}
\textbf{Telah disetujui oleh Tim Penguji:} \\
\textit{Approved by the Committee on Oral Examination}
\vspace{1em}
\begin{tabular}{lp{5cm}}
\textbf{\firstadvisor} &:
% \vspace{2cm} % signature space
% \\[1em] % pull up next row
\\
\textit{Ketua Tim Penguji} &
\noindent\makebox[5cm]{\hrulefill}\\[-0.5em]
\textit{\small Chair} & \small Yogyakarta, \dotfill 2020
\\
\textbf{\secondadvisor} &:
% \vspace{2cm} % signature space
% \\[1em] % pull up next row
\\
\textit{Ketua Tim Penguji} &
\noindent\makebox[5cm]{\hrulefill}\\[-0.5em]
\textit{\small Chair} & \small Yogyakarta, \dotfill 2020 \\
\end{tabular}
\vspace{1em}
\noindent
\textbf{Diterima dan disetujui sebagai persyaratan untuk memperoleh gelar Sarjana Teknik} \\
\textit{Accepted in partial fulfillment of the requirements for the degree of Bachelor of Engineering}
\vspace{2em}
\begin{center}
\textbf{Ketua Program Studi} \\
\textit{Head of Department}
\end{center}
\vspace{3em}
\begin{center}
\textbf{\headdepartement} \\
NIK. \headdepartementid
\end{center} \end{center}

View File

@@ -0,0 +1,40 @@
% frontmatter/originality.tex
\setmainfont{Times New Roman}
\chapter*{PERNYATAAN KEASLIAN}
\addcontentsline{toc}{chapter}{PERNYATAAN KEASLIAN}
% \begin{center}
% {\normalsize\textit{ORIGINALITY STATEMENT}}
% \end{center}
Saya yang bertanda tangan di bawah ini:
\renewcommand{\arraystretch}{1.2}
\begin{center}
\begin{tabular}{llp{10cm}}
\textbf{Nama} & : & \studentname \\
\textbf{Nomor Mahasiswa} & : & \studentid \\
\textbf{Judul} & : & \thesistitle \\
\end{tabular}
\end{center}
Menyatakan dengan sebenarnya bahwa tugas akhir ini merupakan karya says sendiri. Apabila terdapat karya orang lain yang saya kutip, maka saya akan mencantumkan sumber secara jelas. Jika dikemudian hari ditemukan dengan ketidakbenaran dalam pernyataan in, maka saya bersedia menerima sanksi dengan aturan yang berlaku. Demikian pernyataan ini saya buat tanpa ada paksaan dari pihak mana pun.\par
\begin{flushright}
\begin{minipage}{0.5\textwidth}
\centering
Yogyakarta, \today \\[1em]
Yang membuat pernyataan, \\[0.5cm] % space for signature
% Materai box
\hspace*{-2cm}% shift the box slightly left
\begin{tabular}{@{}c@{}}
\fbox{
\begin{minipage}[c][2cm][c]{2.5cm}
\centering
Materai\\
6000
\end{minipage}
}
\end{tabular}
\\[1cm]
% \rule{6cm}{0.4pt} % signature line
Rifqi Damar Panuluh
\end{minipage}
\end{flushright}

View File

@@ -1,4 +1,4 @@
\documentclass{thesis} \documentclass[draftmark]{thesis}
% Title Information % Title Information
\setthesisinfo \setthesisinfo
@@ -18,11 +18,14 @@
\begin{document} \begin{document}
\maketitle \maketitle
\theendorsementpage{toc} \frontmatter
\originalitystatement{toc} \input{frontmatter/approval}\clearpage
\input{frontmatter/originality}\clearpage
\input{frontmatter/acknowledgement}\clearpage
\tableofcontents \tableofcontents
\clearpage \clearpage
\mainmatter
\pagestyle{fancyplain}
% Include content % Include content
\include{content/abstract} \include{content/abstract}
\include{content/introduction} \include{content/introduction}

View File

@@ -1,9 +1,15 @@
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesClass{thesis}[2025/05/10 Bachelor Thesis Class] \ProvidesClass{thesis}[2025/05/10 Bachelor Thesis Class]
\LoadClass[a4paper,12pt]{report} \newif\if@draftmark
\@draftmarkfalse
\DeclareOption{draftmark}{\@draftmarktrue}
\ProcessOptions \relax
\LoadClass[a4paper,12pt,oneside]{book}
% Load common packages % Load common packages
\RequirePackage{polyglossia}
\RequirePackage{fontspec} \RequirePackage{fontspec}
\RequirePackage{titlesec} \RequirePackage{titlesec}
\RequirePackage{fancyhdr} \RequirePackage{fancyhdr}
@@ -15,8 +21,22 @@
\RequirePackage{tocloft} \RequirePackage{tocloft}
\RequirePackage{tocbibind} \RequirePackage{tocbibind}
% Polyglossia set language
\setmainlanguage{bahasai}
% \setotherlanguage{english}
% Conditionally load the watermark package and settings
\if@draftmark
\RequirePackage{draftwatermark}
\SetWatermarkText{Draft: \today [wip]}
\SetWatermarkColor[gray]{0.7}
\SetWatermarkFontSize{2cm}
\SetWatermarkAngle{90}
\SetWatermarkHorCenter{1.5cm}
\fi
% Page layout % Page layout
\geometry{margin=1in} \geometry{left=3cm, top=3cm, right=3cm, bottom=3cm}
\setlength{\parskip}{0.5em} \setlength{\parskip}{0.5em}
\setlength{\parindent}{0pt} \setlength{\parindent}{0pt}
\onehalfspacing \onehalfspacing
@@ -28,7 +48,7 @@
\setmonofont{Courier New} \setmonofont{Courier New}
% Metadata commands % Metadata commands
\input{metadata} % Load metadata from external file \input{metadata}
\newcommand{\setthesisinfo}[7]{% \newcommand{\setthesisinfo}[7]{%
\renewcommand{\thesistitle}{#1}% \renewcommand{\thesistitle}{#1}%
@@ -40,19 +60,35 @@
\renewcommand{\yearofsubmission}{#7}% \renewcommand{\yearofsubmission}{#7}%
} }
% Header and footer % % Header and footer
\pagestyle{fancy} \fancypagestyle{fancy}{%
\fancyhf{} \fancyhf{}
\fancyhead[R]{\nouppercase{\rightmark}} \fancyhead[R]{\nouppercase{\rightmark}}
\fancyhead[L]{\nouppercase{\leftmark}} \fancyhead[L]{\nouppercase{\leftmark}}
\fancyfoot[C]{\thepage} \fancyfoot[C]{\thepage}
}
\fancypagestyle{fancyplainfrontmatter}{%
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\thepage}
}
\fancypagestyle{fancyplain}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[R]{\thepage}
}
% Chapter formatting % Chapter formatting
\titlespacing{\chapter}{0pt}{0pt}{*1.5}
\titleformat{\chapter}[display] \titleformat{\chapter}[display]
{\bfseries\Large\centering} {\normalsize\bfseries\centering}
{BAB~\Roman{chapter}} % << display format {BAB~\Roman{chapter}} % << display format
{1ex} {1ex}
{\MakeUppercase} {\MakeUppercase}
\titleformat{\section}
{\normalsize\bfseries}{\thesection}{1em}{}
\titleformat{\subsection}
{\normalsize\bfseries}{\thesubsection}{1em}{}
% Ensure chapter reference in TOC matches % Ensure chapter reference in TOC matches
\renewcommand{\cftchappresnum}{BAB~} \renewcommand{\cftchappresnum}{BAB~}
@@ -64,7 +100,7 @@
\renewcommand{\maketitle}{\input{frontmatter/maketitle}} \renewcommand{\maketitle}{\input{frontmatter/maketitle}}
% Chapter & Section format % Chapter & Section format
\renewcommand{\cftchapfont}{\bfseries\MakeUppercase} \renewcommand{\cftchapfont}{\normalsize\MakeUppercase}
% \renewcommand{\cftsecfont}{} % \renewcommand{\cftsecfont}{}
% \renewcommand{\cftsubsecfont}{\itshape} % \renewcommand{\cftsubsecfont}{\itshape}
% \renewcommand{\thesection}{\textup{\Roman{chapter}}.\arabic{section}} % \renewcommand{\thesection}{\textup{\Roman{chapter}}.\arabic{section}}
@@ -74,38 +110,47 @@
\setlength{\cftbeforechapskip}{0em} \setlength{\cftbeforechapskip}{0em}
\setlength{\cftchapindent}{0pt} \setlength{\cftchapindent}{0pt}
\setlength{\cftsecindent}{0em} \setlength{\cftsecindent}{0em}
\setlength{\cftsubsecindent}{3em} \setlength{\cftsubsecindent}{2.5em}
\setlength{\cftchapnumwidth}{4em} \setlength{\cftchapnumwidth}{3.5em}
\setlength{\cftsecnumwidth}{2.5em} \setlength{\cftsecnumwidth}{3.5em}
\setlength{\cftsubsecnumwidth}{2.5em} \setlength{\cftsubsecnumwidth}{2.5em}
\setlength{\cftfignumwidth}{5em}
\setlength{\cfttabnumwidth}{4em}
\renewcommand \cftchapdotsep{4.5} % https://tex.stackexchange.com/a/273764 \renewcommand \cftchapdotsep{4.5} % https://tex.stackexchange.com/a/273764
\renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftsecdotsep}} \renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftsecdotsep}}
\renewcommand{\cftchappagefont}{\normalfont} \renewcommand{\cftchappagefont}{\normalfont}
\renewcommand{\cftfigpresnum}{\figurename~}
\renewcommand{\cfttabpresnum}{\tablename~}
% Ensure TOC and References Respect Custom Numbering % Ensure TOC and References Respect Custom Numbering
\renewcommand{\thechapter}{\Roman{chapter}} \renewcommand{\thechapter}{\Roman{chapter}}
\renewcommand\thesection{\arabic{chapter}.\arabic{section}} \renewcommand\thesection{\arabic{chapter}.\arabic{section}}
% Change figure numbering to include chapter (e.g., Figure 1.1, 1.2...)
\renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}}
\renewcommand{\thetable}{\arabic{chapter}.\arabic{table}}
\renewcommand{\theequation}{\arabic{chapter}.\arabic{equation}}
% Table of Contents (TOC) Title styling % Table of Content (TOC) Title styling
\renewcommand{\contentsname}{DAFTAR ISI} \renewcommand{\cfttoctitlefont}{\hfill\bfseries\MakeUppercase}
\renewcommand{\cfttoctitlefont}{\bfseries\MakeUppercase} \renewcommand{\cftaftertoctitle}{\hfill} % https://tex.stackexchange.com/a/255699/394075
\renewcommand{\cftaftertoctitle}{\hfill\hfill} % https://tex.stackexchange.com/a/255699/394075 % List of Figures (LOF) Title styling
\renewcommand{\cftloftitlefont}{\hfill\bfseries\MakeUppercase}
\renewcommand{\cftafterloftitle}{\hfill}
% List of Tables (LOT) Title styling
\renewcommand{\cftlottitlefont}{\hfill\bfseries\MakeUppercase}
\renewcommand{\cftafterlottitle}{\hfill}
% \renewcommand{\cfttoctitlefont}{\bfseries\MakeUppercase}
% \renewcommand{\cftaftertoctitle}{\vskip 2em} % \renewcommand{\cftaftertoctitle}{\vskip 2em}
% Frontmatter Macro (Toggle TOC Inclusion) % % Apply a custom fancyhdr layout only on the first page of each \chapter, and use no header/footer elsewhere
\newcommand{\frontmattersection}[3]{% % % \let\oldchapter\chapter
\begin{titlepage} % % \renewcommand{\chapter}{%
\centering % % \cleardoublepage
\ifstrequal{#1}{toc}{\addcontentsline{toc}{chapter}{#2}}{\chapter*{#2}}% % % \pagestyle{fancyplainchapter}%
\input{frontmatter/#3} % % \oldchapter
\end{titlepage} % % \thispagestyle{fancyplainchapter} % ensure chapter start page uses it
\clearpage % % \pagestyle{fancyplain}% switch for subsequent pages
} % % }
% Wrapper Command for Each Page
\newcommand{\theendorsementpage}[1]{\frontmattersection{#1}{Pengesahan}{endorsement}}
\newcommand{\originalitystatement}[1]{\frontmattersection{#1}{Pernyataan Keaslian}{originality}}
\endinput \endinput