\documentclass[draftmark]{thesis}
\title{Prediksi Lokasi Kerusakan dengan Machine Learning}
\author{Rifqi Damar Panuluh}
\date{\today}
\authorid{20210110224}
\firstadvisor{Ir. Muhammad Ibnu Syamsi, Ph.D.}
\secondadvisor{}
\headdepartement{Puji Harsanto, S.T., M.T., Ph.D.}
\headdepartementid{19740607201404123064}
\faculty{Fakultas Teknik}
\program{Program Studi Teknik Sipil}
\university{Universitas Muhammadiyah Yogyakarta}
 \newcommand{\eg}{\textit{e.g.},\ }
\newcommand{\ie}{\textit{i.e.},\ }
\newcommand{\etal}{\textit{et al.}}

\let\oldtableofcontents\tableofcontents 

\let\oldaddcontentsline\addcontentsline
\newcommand{\ADDCONTENTSLINE}[3]{\oldaddcontentsline{#1}{#2}{\MakeUppercase{#3}}}
\newcommand{\CAPinToC}{\let\addcontentsline\ADDCONTENTSLINE}
\newcommand{\noCAPinToC}{\let\addcontentsline\oldaddcontentsline}
 
\addbibresource{bibliography.bib}

\makeglossaries
\newacronym{ml}{ML}{machine learning}
\newacronym{stft}{STFT}{short-time fourier transform}
\newacronym{ai}{AI}{artificial intelligence}
\newacronym{dl}{DL}{deep learning}
\newacronym{nn}{NN}{neural network}
\newacronym{fft}{FFT}{fast fourier transform}
\newacronym{svm}{SVM}{support vector machine}
\newacronym{cnn}{CNN}{convolutional neural network}
\newacronym{rnn}{RNN}{recurrent neural network}
\newacronym{vbi}{VBI}{vibration-based inspection}
\newacronym{shm}{SHM}{structural health monitoring}
\newacronym{fea}{FEA}{finite element analysis}
\newacronym{1d-cnn}{1-D CNN}{\textit{One-Dimensional Convolutional Neural Network}}
 \newglossaryentry{jaringansaraf}{
  name=Jaringan Saraf,
  description={The Indonesian term for \gls{nn}}
}




\newglossaryentry{algoritma-genetika}{
  name={Algoritma Genetika},
  description={Kelas algoritma optimasi dan pencarian yang terinspirasi oleh proses evolusi biologis, seperti seleksi alam, mutasi, dan rekombinasi. Algoritma ini sering digunakan untuk menemukan solusi perkiraan untuk masalah yang kompleks dan sulit dipecahkan secara analitis.},
  sort={Algoritma Genetika}
}

\newglossaryentry{deep-learning}{
  name={\textit{deep learning}},
  description={Bagian dari keluarga metode pembelajaran mesin yang lebih luas berdasarkan jaringan saraf tiruan dengan banyak lapisan (deep neural networks). Arsitektur ini memungkinkan model untuk belajar representasi data secara hierarkis, mulai dari fitur tingkat rendah hingga konsep abstrak tingkat tinggi.},
  sort={Pembelajaran Mendalam}
}

\newglossaryentry{jaringan-saraf-tiruan}{
  name={Jaringan Saraf Tiruan (Artificial Neural Network)},
  description={Model komputasi yang terinspirasi oleh struktur dan fungsi jaringan saraf biologis di otak. JST terdiri dari unit pemrosesan yang saling terhubung (neuron) yang bekerja secara paralel untuk memproses informasi dan belajar dari data melalui penyesuaian bobot koneksi.},
  sort={Jaringan Saraf Tiruan}
}

\newglossaryentry{pemrosesan-bahasa-alami}{
  name={Pemrosesan Bahasa Alami (Natural Language Processing)},
  description={Cabang ilmu komputer dan kecerdasan buatan yang berfokus pada interaksi antara komputer dan bahasa manusia. Tujuannya adalah untuk memungkinkan komputer memproses, memahami, menafsirkan, dan menghasilkan bahasa manusia dengan cara yang bermakna dan berguna.},
  sort={Pemrosesan Bahasa Alami}
}

\newglossaryentry{pembelajaran-penguatan}{
  name={Pembelajaran Penguatan (Reinforcement Learning)},
  description={Area pembelajaran mesin yang berkaitan dengan bagaimana agen perangkat lunak harus mengambil tindakan dalam suatu lingkungan untuk memaksimalkan beberapa gagasan tentang imbalan kumulatif. Agen belajar melalui trial-and-error, menerima umpan balik berupa imbalan atau hukuman.},
  sort={Pembelajaran Penguatan}
}

\newglossaryentry{visi-komputer}{
  name={Visi Komputer (Computer Vision)},
  description={Bidang interdisipliner yang membahas bagaimana komputer dapat dibuat untuk mendapatkan pemahaman tingkat tinggi dari gambar atau video digital. Dari perspektif rekayasa, ia berupaya mengotomatiskan tugas-tugas yang dapat dilakukan oleh sistem visual manusia.},
  sort={Visi Komputer}
}

\newglossaryentry{model-generatif}{
  name={Model Generatif},
  description={Jenis model statistik dalam pembelajaran mesin yang bertujuan untuk mempelajari distribusi probabilitas dari data pelatihan. Setelah dilatih, model ini dapat menghasilkan sampel data baru yang mirip dengan data pelatihan, seperti membuat gambar, teks, atau suara baru.},
  sort={Model Generatif}
}

\newglossaryentry{heuristik}{
  name={Heuristik},
  description={Teknik pemecahan masalah yang menggunakan pendekatan praktis atau jalan pintas yang tidak dijamin optimal atau sempurna, tetapi cukup untuk mencapai tujuan jangka pendek atau perkiraan solusi. Heuristik sering digunakan ketika pencarian solusi optimal terlalu mahal secara komputasi.},
  sort={Heuristik}
}

\newglossaryentry{validasi-silang}{
  name={Validasi Silang (Cross-Validation)},
  description={Teknik statistik untuk mengevaluasi seberapa baik hasil analisis statistik (seperti model prediktif) akan generalisasi ke kumpulan data independen. Ini penting untuk menghindari overfitting dan mendapatkan estimasi kinerja model yang lebih andal pada data yang belum pernah dilihat.},
  sort={Validasi Silang}
}

\newglossaryentry{bias-algoritmik}{
  name={Bias Algoritmik},
  description={Mengacu pada kesalahan sistematis atau hasil yang tidak adil yang dihasilkan oleh sistem kecerdasan buatan karena asumsi yang salah dalam proses pembelajaran mesin atau karena data pelatihan yang bias. Bias ini dapat mereplikasi atau bahkan memperkuat prasangka sosial yang ada.},
  sort={Bias Algoritmik}
} 

\newglossaryentry{not:signal}{
    name={\ensuremath{S}},
    description={vektor sinyal akselerometer berdimensi 1$\times$262144},
    sort={s},
    type=notation,
}

\newglossaryentry{not:sampling_freq}{
    name={\ensuremath{f_s}},
    description={frekuensi dengan nilai \textit{sampling} ($s$) di mana sinyal kontinu didigitalkan},
    sort={fs},
    type=notation,
}

\newglossaryentry{not:time_length}{
    name={\ensuremath{t}},
    description={panjang waktu data dalam detik},
    sort={t},
    type=notation,
}

\newglossaryentry{not:dataset_A}{
    name={\ensuremath{\mathcal{A}}},
    description={matriks dataset A},
    sort={adataset},
    type=notation,
}

\newglossaryentry{not:dataset_B}{
    name={\ensuremath{\mathcal{B}}},
    description={matriks dataset B},
    sort={bdataset},
    type=notation,
}

\newglossaryentry{not:damage_file}{
    name={\ensuremath{\mathbf{D}}},
    description={matriks akselerometer untuk setiap berkas dengan bentuk $262144\times30$},
    sort={filedamage},
    type=notation,
}
\newglossaryentry{not:joint_index}{
    name={\ensuremath{n}},
    description={indeks atau nomor kerusakan \textit{joint}},
    sort={indexjoint},
    type=notation,
}
\newglossaryentry{not:damage_file_set_case}{
    name={\ensuremath{\mathbf{d}}},
    description={set matriks kerusakan},
    sort={damagefilesetcase},
    type=notation,
}

\newglossaryentry{not:k}{
  name={$k$},
  description={Index for measurement nodes, an integer ranging from 0 to 29.},
  sort={k},
  type=notation,
}

\newglossaryentry{not:Fk}{
  name={$F_{k}$},
  description={Filename string for the raw time-domain signal from node $k$. The specific format mentioned is \texttt{zzzAD}$k$\texttt{.TXT}.},
  sort={Fk},
  type=notation,
}

\newglossaryentry{not:nkFk}{
  name={$n_{k}^{F_{k}}$},
  description={Represents the measurement \textit{node} with index $k$. The raw time-domain signal data from this node, $x_k$, has a length of $L=262144$ samples.},
  sort={nkFk},
  type=notation,
}

\newglossaryentry{not:i}{
  name={$i$},
  description={Index for ``damage-case'' folders, an integer ranging from 0 to 5.},
  sort={i},
  type=notation,
}

\newglossaryentry{not:di}{
  name={$d_{i}$},
  description={Set representing the $i$-th damage scenario, containing data from five consecutive nodes: $\bigl\{\,n_{5i}^{F_{5i}},\;n_{5i+1}^{F_{5i+1}},\;\dots,\;n_{5i+4}^{F_{5i+4}}\bigr\}$. Cardinality: $|d_i|=5$ nodes.},
  sort={di},
  type=notation,
}

\newglossaryentry{not:diTD}{
  name={$d_{i}^{\mathrm{TD}}$},
  description={Time-domain subset of nodes from damage case $d_i$, containing only the first and last nodes: $\bigl\{\,n_{5i}^{F_{5i}},\;n_{5i+4}^{F_{5i+4}}\bigr\}$. Cardinality: $|d_{i}^{\mathrm{TD}}| = 2$ nodes.},
  sort={diTD},
  type=notation,
}

\newglossaryentry{not:calT}{
  name={$\mathcal{T}$},
  description={Short-Time Fourier Transform (STFT) operator. It maps a raw time-domain signal $n_k^{F_k}$ (or $x_k$) from $\mathbb{R}^{L}$ (with $L=262144$) to a magnitude spectrogram matrix $\widetilde{n}_k^{F_k}$ in $\mathbb{R}^{513 \times 513}$.},
  sort={Tcal},
  type=notation,
}

\newglossaryentry{not:L}{
  name={$L$},
  description={Length of the raw time-domain signal, $L=262144$ samples.},
  sort={L},
  type=notation,
}

\newglossaryentry{not:Nw}{
  name={$N_{w}$},
  description={Length of the Hanning window used in the STFT, $N_{w}=1024$ samples.},
  sort={Nw},
  type=notation,
}

\newglossaryentry{not:Nh}{
  name={$N_{h}$},
  description={Hop size (or step size) used in the STFT, $N_{h}=512$ samples.},
  sort={Nh},
  type=notation,
}

\newglossaryentry{not:wn}{
  name={$w[n]$},
  description={Value of the Hanning window function at sample index $n$. The window spans $N_w$ samples.},
  sort={wn},
  type=notation,
}

\newglossaryentry{not:n_summation}{
  name={$n$},
  description={Sample index within the Hanning window and for the STFT summation, an integer ranging from $0$ to $N_w-1$.},
  sort={n_summation},
  type=notation,
}

\newglossaryentry{not:xkm}{
  name={$x_k[m]$}, description={Represents the raw time-domain signal for node $k$. As a discrete signal, it consists of $L=262144$ samples. $x_k[m]$ would be the $m$-th sample.},
  sort={xkm},
  type=notation,
}

\newglossaryentry{not:Skpt}{
  name={$S_k(p,t)$},
  description={Complex-valued result of the STFT for node $k$ at frequency bin $p$ and time frame $t$. This is a scalar value for each $(p,t)$ pair.},
  sort={Skpt},
  type=notation,
}

\newglossaryentry{not:p}{
  name={$p$},
  description={Frequency bin index in the STFT or spectrogram, an integer ranging from $0$ to $512$.},
  sort={p},
  type=notation,
}

\newglossaryentry{not:t_stft}{ name={$t$},
  description={Time frame index in the STFT or spectrogram, an integer ranging from $0$ to $512$. Also used as the time slice index for extracting feature vectors $\mathbf{x}_{i,s,r,t}$ from spectrograms.},
  sort={t},
  type=notation,
}

\newglossaryentry{not:ntildekFk}{ name={$\widetilde{n}_k^{F_k}$},
  description={The magnitude spectrogram matrix for node $k$, obtained by applying the STFT operator $\mathcal{T}$ to the time-domain signal $n_k^{F_k}$. This matrix is an element of $\mathbb{R}^{513 \times 513}$.},
  sort={ntildekFk},
  type=notation,
}

\newglossaryentry{not:ntildekFkpt}{ name={$\widetilde{n}_k^{F_k}(p,t)$},
  description={Scalar value representing the magnitude of the STFT for node $k$ at frequency bin $p$ and time frame $t$; specifically, $\widetilde{n}_k^{F_k}(p,t) = |S_k(p,t)|$. This is an element of the spectrogram matrix $\widetilde{n}_k^{F_k}$.},
  sort={ntildekFkpt},
  type=notation,
}

\newglossaryentry{not:R}{
  name={$\mathbb{R}$},
  description={The set of real numbers. Used to denote vector spaces like $\mathbb{R}^{N}$ (N-dimensional real vectors) or $\mathbb{R}^{M \times N}$ (M-by-N real matrices).},
  sort={Rbb},
  type=notation,
}

\newglossaryentry{not:diFD}{
  name={$d_{i}^{\mathrm{FD}}$},
  description={Frequency-domain subset for damage case $i$. It contains two spectrogram matrices: $\bigl\{\,\widetilde{n}_{5i}^{F_{5i}},\; \widetilde{n}_{5i+4}^{F_{5i+4}}\,\bigr\}$, where each spectrogram $\widetilde{n}$ is in $\mathbb{R}^{513 \times 513}$. Cardinality: $|d_{i}^{\mathrm{FD}}| = 2$ spectrograms.},
  sort={diFD},
  type=notation,
}

\newglossaryentry{not:r_repetition}{
  name={$r$},
  description={Repetition index within a single damage case, an integer ranging from $0$ to $4$.},
  sort={r_repetition},
  type=notation,
}

\newglossaryentry{not:xboldisr}{
  name={$\mathbf{x}_{i,s,r,t}$},
  description={Feature vector (a row or column, often referred to as a time slice) taken from the $r$-th spectrogram repetition, for damage case $i$ and sensor side $s$, at time slice $t$. This vector is an element of $\mathbb{R}^{513}$.},
  sort={xisrt_bold},
  type=notation,
}

\newglossaryentry{not:s_sensor}{
  name={$s$},
  description={Index representing the sensor side (e.g., identifying Sensor A or Sensor B).},
  sort={s_sensor},
  type=notation,
}

\newglossaryentry{not:yi}{
  name={$y_{i}$},
  description={Scalar label for the damage case $i$, defined as $y_i = i$. This is an integer value from 0 to 5.},
  sort={yi},
  type=notation,
}

\newglossaryentry{not:Lambda}{
  name={$\Lambda(i,s,r,t)$},
  description={Slicing function that concatenates a feature vector $\mathbf{x}_{i,s,r,t} \in \mathbb{R}^{513}$ with its corresponding damage case label $y_i \in \mathbb{R}$, resulting in a combined vector $\bigl[\,\mathbf{x}_{i,s,r,t}, \;y_{i}\bigr] \in \mathbb{R}^{514}$.},
  sort={Lambda},
  type=notation,
}

\newglossaryentry{not:calDs}{
  name={$\mathcal{D}^{(s)}$},
  description={The complete dataset for sensor side $s$. It is a collection of $15390$ data points, where each point is a vector in $\mathbb{R}^{514}$ (513 features + 1 label). Thus, the dataset can be viewed as a matrix of size $15390 \times 514$.},
  sort={Dcal_s},
  type=notation,
}

%
 
\begin{document}
\frontmatter
\begin{titlepage}
\centering
\vspace*{1cm}

{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par}
\vspace{1.5cm}

{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par}
\vspace{1.5cm}

\includegraphics[width=5cm]{frontmatter/img/logo.png}
\vspace{1.5cm}

\textbf{Disusun oleh:} \\
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthorid}} \\

\vfill

{\fontsize{12pt}{14pt}\selectfont
\textbf{\MakeUppercase\theprogram} \\
\textbf{\MakeUppercase\thefaculty} \\
\textbf{\MakeUppercase\theuniversity} \\
}

\end{titlepage}

 \begin{titlepage}
\centering
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par}
\vspace{1.5cm}

{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par}
\vspace{1cm}
{\normalsize\selectfont Diajukan guna melengkapi persyaratan untuk memenuhi gelar Sarjana Teknik di Program Studi Teknik Sipil, Fakultas Teknik, Universitas Muhammadiyah Yogyakarta\par}
\vspace{1.5cm}

\includegraphics[width=5cm]{frontmatter/img/logo.png}
\vspace{1.5cm}


\textbf{Disusun oleh:} \\
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthorid}} \\


\vfill

{\fontsize{12pt}{14pt}\selectfont
\textbf{\MakeUppercase\theprogram} \\
\textbf{\MakeUppercase\thefaculty} \\
\textbf{\MakeUppercase\theuniversity} \\
}

\end{titlepage}

 \glsaddall[types={main,notation,\acronymtype}]

\printglossary[type=notation,style=altlong3customheader,title=Daftar Simbol dan Lambang]
\printglossary[type=\acronymtype,style=supercol,title=Daftar Singkatan]
\printglossary[type=main,style=mylistalt]
\chapter{Abstrak}
\singlespacing
\noindent Monitoring Kesehatan Struktur (SHM) secara tradisional membutuhkan banyak sensor dan model yang kompleks, sehingga tidak praktikal untuk pengaplikasian di lapangan. Studi ini menginvestigasi apakah sinyal yang direkam hanya pada sensor ujung atas dan bawah dari kolom-kolom grup sensor cukup untuk memberikan informasi yang akurat pada klasifikasi lokasi kerusakan. Pengujian dilakukan pada dataset QUGS, sebuhah struktur \textit{grid} baja dengan jumlah \textit{node} 6$\times$5 terpasang sensor akselerometer dan digetarkan pada \textit{white noise shaker}. Sinyal getaran dikonversi menjadi fitur frekuensi-waktu menggunakan STFT dan lima algoritma \textit{machine learning} digunakan untuk klasifikasi. Setiap kolom grup dievaluasi dengan \textit{cross-validation} untuk menguji generalisasi model. Hasil menunjukkan bahwa dengan jumlah sensor yang tereduksi, lima algoritma \textit{machine learning} mencapai akurasi klasifikasi lebih dari 90\%. Studi ini menunjukkan bahwa posisi sensor yang strategis dan ekstraksi fitur berbasis STFT cukup untuk mendeteksi lokasi kerusakan secara efektif dan menjadi alternatif yang simpel untuk pendekatan monitoring kesehatan struktur yang kompleks.

\cleardoublepage

\chapter{\textit{Abstract}}
\noindent \textit{Structural Health Monitoring (SHM) traditionally requires dense sensor arrays and complex models, which can be impractical for field deployment. This study investigates whether vibration signals captured from only the top and bottom sensors of grouped structural columns retain sufficient information for accurate damage location classification. Experiments are conducted on the QUGS dataset, which represents a 6$\times$5 steel-frame grid structure under controlled laboratory conditions. Vibration signals are converted into time-frequency features using the Short-Time Fourier Transform (STFT), and five classical machine learning algorithms, including Support Vector Machines (SVM), are used for classification. Each vertical column group is evaluated through cross-validation to test generalisation across paths. Results show that even with reduced sensor input, all five algorithms achieve over 90\% classification accuracy. These findings demonstrate that strategic sensor placement and STFT-based features are sufficient to detect structural damage effectively, offering a simple and interpretable alternative to more complex SHM approaches} \mainmatter
\clearpage{}\chapter{PENDAHULUAN}

\section{Latar Belakang}

\indent Asep Kesehatan Struktur (\textit{Structural Health Monitoring} atau SHM) merupakan riset penting yang tersebar di berbagai disiplin ilmu, termasuk teknik dirgantara, teknik sipil, dan teknik mesin. Tujuan utama dari monitor kesehatan struktur adalah memastikan keamanan dan keandalan struktur dengan mendeteksi kerusakan sedini mungkin. Dengan mengombinasikan teknologi sensor yang canggih serta pengolahan data secara \textit{real-time}, sistem monitor kesehatan struktur menjadi kekuatan para insinyur untuk memonitor integritas struktur, strategi optimisasi \textit{maintenance}, dan memprediksi sisa umur struktur. 

\indent Sistem SHM yang tangguh mengikuti \textit{framework} secara hierarkis untuk mengidentifikasi dan menilai kerusakan struktural. Menurut \textcite{rytter1993}, lima tahapan SHM tersebut adalah: 
\begin{enumerate}
    \item (Tingkat 1) Keberadaan Kerusakan: Menentukan apakah ada kerusakan pada struktur. Pada tahap ini, pengukuran getaran cukup untuk memastikan adanya kerusakan.
    \item (Tingkat 2) Lokasi Kerusakan: Mengidentifikasi lokasi geometris kerusakan, baik kerusakan tunggal maupun ganda.
    \item (Tingkat 3) Tipe Kerusakan: Mencirikan sifat kerusakan, yang dapat meliputi retakan, perubahan pada kondisi tumpuan, atau perubahan dalam sambungan struktur.
    \item (Tingkat 4) Tingkat Keparahan: Mengukur secara kuantitatif seberapa parah kerusakan terjadi. Biasanya melalui eksperimen atau model terkalibrasi yang menggambarkan efek kerusakan, seperti penurunan kekakuan atau panjang retakan.
    \item (Tingkat 5): Memprediksi sisa umur pakai struktur dengan mengandalkan pemantauan secara \textit{real-time} dan komprehensif serta model dengan fidelitas tinggi yang menggambarkan perkembangan kerusakan seiring waktu.
\end{enumerate}
Semakin tinggi tingkat identifikasi kerusakan, semakin besar pula kebutuhan akan sensor yang presisi, algoritma yang kompleks, serta parameter model yang akurat. Jika pada Tingkat 1 hanya diperlukan data yang terbatas untuk mendeteksi adanya kerusakan, maka Tingkat 5 membutuhkan akuisisi data secara \textit{real-time} dan canggih serta model prediktif yang memiliki fidelitas tinggi. 

\par Tantangan utama terletak pada pengembangan sistem \acrshort{shm} yang mampu mengakomodasi berbagai tahapan identifikasi kerusakan secara efektif, baik dalam kondisi operasional normal maupun dalam situasi ekstrem seperti gempa bumi.

\par Dalam konteks pengembangan sistem \acrshort{shm} yang efektif, perlu memperhatikan elemen struktural yang rentan terhadap kerusakan namun sering kali terabaikan dalam pemantauan konvensional. Salah satu komponen struktural yang umum digunakan dalam penyambungan adalah sambungan baut (\textit{bolt joint}), yang dikenal karena kemudahan dalam perakitan dan penggunaannya. Namun, 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. Pemantauan kondisi sambungan ini tidak hanya relevan dalam konteks deteksi dini (Tingkat 1), tetapi juga sangat penting untuk diagnosis kerusakan dan penentuan lokasi secara akurat (Tingkat 2), seiring dengan meningkatnya kebutuhan akan sistem \acrshort{shm} yang responsif dan adaptif terhadap dinamika kerusakan struktural. 

\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 \gls{deep-learning}, terutama dalam kondisi ruang yang sangat 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 baik 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 Penelitian oleh \textcite{abdeljaber2017} merupakan tonggak penting dalam sistem pemantauan kesehatan struktur (SHM), dengan menerapkan 30 model \acrlong{1d-cnn} pada 30 sensor akselerometer dalam struktur grid QUGS. Pendekatan ini menunjukkan bahwa metode pembelajaran mendalam sangat efektif dalam mendeteksi dan melokalisasi kerusakan dengan presisi tinggi. Namun, metode tersebut memerlukan sumber daya komputasi yang besar karena pemrosesan paralel data mentah berdimensi tinggi dari seluruh sensor \parencite{yang2020, liu2022}. 

\indent Menanggapi tantangan ini, studi lanjutan seperti \parencite{shahid2022, doi:10.1007/s13349-023-00715-3} memperkenalkan pendekatan VMD-HT-CNN yang menggabungkan teknik ekstraksi fitur berbasis Variational Mode Decomposition (VMD) dan Hilbert Transform (HT) sebelum klasifikasi CNN. Metode ini secara signifikan meningkatkan efisiensi pelatihan dan akurasi deteksi meskipun dengan jumlah sensor yang lebih sedikit. 

\indent Berdasarkan celah ini, penelitian ini mengadopsi strategi pengurangan jumlah sensor menjadi dua per jalur kolom (atas dan bawah), merepresentasikan sambungan vertikal seperti susunan baut, untuk menyederhanakan model tanpa kehilangan akurasi deteksi kerusakan. Data diubah melalui transformasi STFT sebelum diklasifikasikan menggunakan berbagai model pembelajaran mesin klasik. Dengan evaluasi antar berbagai pengklasifikasi dan validasi silang antar kolom, studi ini berkontribusi pada pengembangan sistem SHM yang efisien, hemat 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 pemelajaran mesin 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{Lingkup Penelitian}
Studi ini berfokus pada dataset yang tersedia secara publik didapat dari Qatar 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 Mengeksplorasi kemungkinan generalisasi satu model terhadap berbagai jalur kolom hanya dengan memanfaatkan data dari sensor pada kedua ujung kolom.
\end{enumerate}



\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 \gls{svm} \gls{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}\clearpage{}
\clearpage{}\chapter{TINJAUAN PUSTAKA DAN LANDASAN TEORI}
\section{Tinjauan Pustaka}
Metode monitor kesehatan struktur (SHM) tradisional sering kali mengandalkan fitur yang dibuat secara manual dan pengklasifikasi (\textit{classifier}) yang diatur secara manual, yang menimbulkan tantangan dalam hal generalisasi, keandalan, dan efisiensi komputasi. Seperti yang disorot oleh \textcite{abdeljaber2017}, pendekatan-pendekatan ini umumnya memerlukan proses \textit{trial-and-error} dalam pemilihan fitur dan pengklasifikasi yang tidak hanya mengurangi ketangguhan metode tersebut di berbagai jenis struktur, tetapi juga menghambat penerapannya dalam aplikasi \textit{real-time} karena beban komputasi pada fase ekstraksi fitur.

\textcite{abdeljaber2017} memperkenalkan pendekatan deteksi kerusakan struktur berbasis CNN yang divalidasi melalui \textit{large-scale grandstand simulator} di Qatar University. Struktur tersebut dirancang untuk mereplikasi stadion modern, dilengkapi dengan 30 akselerometer, dan dikenai kerusakan terkontrol melalui pelonggaran baut sambungan antara balok dan gelagar. Data percepatan yang dikumpulkan di bawah eksitasi \textit{band-limited white noise} dan disampel pada 1024 Hz, kemudian dibagi menjadi bingkai berukuran 128 sampel untuk melatih 1-D CNN yang dilokalkan—satu untuk setiap sambungan (\textit{joint})—menciptakan sistem deteksi terdesentralisasi. Dalam dua fase (skenario) eksperimen, yang melibatkan pemantauan sebagian dan seluruh struktur, metode ini menunjukkan akurasi tinggi dalam pelokalisasian kerusakan, dengan kesalahan klasifikasi saat pelatihan hanya sebesar 0.54\%. Meskipun performa tetap andal bahkan dalam skenario kerusakan ganda, beberapa salah klasifikasi terjadi pada kasus kerusakan yang simetris atau berdekatan. Secara keseluruhan, metode yang diusulkan ini menawarkan solusi yang sangat efisien dan akurat untuk aplikasi SHM secara \textit{real-time}.

\textcite{eraliev2022} memperkenalkan teknik baru untuk mendeteksi dan mengidentifikasi tahap awal kelonggaran pada sambungan baut ganda menggunakan algoritma pembelajaran mesin. Studi ini difokuskan pada sebuah motor yang dikencangkan dengan empat baut dan dioperasikan dalam tiga kondisi putaran berbeda (800 rpm, 1000 rpm, dan 1200 rpm) guna mengumpulkan data getaran yang cukup untuk dianalisis. Studi ini menyoroti keterbatasan metode inspeksi tradisional, seperti inspeksi visual dan teknik pukulan palu, yang dinilai memakan waktu dan rentan terhadap gangguan kebisingan lingkungan \parencite{j.h.park2015, kong2018}.

Untuk meningkatkan akurasi deteksi, \textcite{eraliev2022} menggunakan transformasi Fourier waktu-singkat (STFT) sebagai metode ekstraksi fitur, yang menghasilkan 513 fitur frekuensidari sinyal getaran. Berbagai pengklasifikasi model pemelajaran mesin dilatih dan dievaluasi, dengan hasil menunjukkan performa yang memuaskan dalam mendeteksi baut longgar serta mengidentifikasi baut spesifik yang mulai kehilangan tegangan awal (preload). Studi ini juga menekankan pentingnya penempatan sensor, karena posisi sensor sangat memengaruhi akurasi dari pengklasifikasi yang digunakan \parencite{pham2020}. Temuan penelitian ini menunjukkan bahwa pengklasifikasi pada studi ini dapat digunakan untuk sistem pemantauan baut yang longgar secara daring (\textit{online monitoring}) pada pengaplikasian di masa depan, sehingga berkontribusi dalam pengembangan sistem pemantauan kesehatan struktur yang lebih baik.

STFT diidentifikasi sebagai metode peningkatan sinyal yang efektif, bersanding dengan \textit{wavelet transform} dan \textit{fractional fourier transform}. Keunggulan STFT terletak pada kemampuannya dalam menganalisis sinyal non-stasioner secara lokal, yang dapat meningkatkan kualitas fitur dalam mengenali pola, termasuk dalam tugas-tugas klasifikasi berbasis respon getaran struktur \parencite{zhang2023}.

Lebih lanjut, pendekatan yang dikembangkan oleh \textcite{garrido2016} menunjukkan potensi untuk menjembatani efektivitas fitur domain waktu-frekuensi dengan efisiensi pemrosesan model \textit{end-to-end}. Model ini mengintegrasikan proses STFT langsung ke dalam arsitektur jaringan \textit{feedforward}, memungkinkan sistem untuk tetap menggunakan representasi waktu-frekuensi namun tanpa biaya komputasi berat dari transformasi eksplisit di luar jaringan. Dengan demikian, pendekatan ini menawarkan jalan tengah yang menjanjikan antara kompleksitas 1-D CNN berbasis \textit{real-time raw signal} dan keunggulan struktural dari representasi domain frekuensi. Dalam konteks penelitian ini, meskipun transformasi dilakukan secara eksplisit, gagasan ini mendukung hipotesis bahwa representasi STFT dapat menjadi alternatif yang efisien dan kompetitif dibanding pemrosesan sinyal mentah dalam skenario pembelajaran mesin dengan sensor terbatas.






\indent Teknik deteksi berbasis getaran terbukti efektif dalam mengidentifikasi tanda-tanda awal anomali pada sambungan. Hal ini dilakukan dengan menganalisis perubahan spektrum frekuensi atau energi getaran antar kondisi sehat dan rusak. Dalam praktiknya, data getaran biasanya dikumpulkan melalui akselerometer yang dipasang pada titik-titik tertentu dalam struktur. Perubahan karakteristik getaran, seperti penurunan amplitudo, pergeseran frekuensi dominan, atau pola spektral lainnya, menjadi indikator keberadaan dan lokasi kerusakan. Misalnya, studi oleh \textcite{zhao2019, eraliev2022} menunjukkan bahwa perubahan rotasi kepala baut akibat kelonggaran dapat dikaitkan dengan pola getaran tertentu. Sementara itu, pendekatan yang lebih umum dalam domain teknik sipil adalah memanfaatkan sinyal akselerasi dari sambungan kolom atau balok sebagai masukan untuk sistem klasifikasi kerusakan berbasis pembelajaran mesin.

\indent Kelebihan utama dari pendekatan berbasis getaran dibanding metode visual atau inspeksi manual adalah kemampuannya dalam mendeteksi kerusakan mikro secara lebih dini, bahkan sebelum tampak secara fisik. Namun, tantangan tetap ada, terutama dalam penempatan sensor yang optimal, pemrosesan sinyal, dan interpretasi pola dinamik yang kompleks dalam struktur grid. Oleh karena itu, kombinasi antara teknik transformasi sinyal seperti Short-Time Fourier Transform (STFT) dan algoritma pembelajaran mesin menjadi arah baru yang menjanjikan dalam riset SHM masa kini.

\section{Dasar Teori}
\subsection{Short-Time Fourier Transform (STFT)}

Short-Time Fourier Transform (STFT) adalah teknik fundamental yang digunakan untuk menganalisis sinyal non-stasioner, seperti yang diperoleh dari struktur dalam keadaan menerima beban dinamik atau eksitasi derau putih. Meskipun tradisional transformasi fourier memberikan informasi domain frekuensi, teknik ini tidak memiliki resolusi waktu. STFT mengatasi limitasi tersebut dengan menerapkan transformasi fourier segment-segment sinyal pendek yang tumpang tindih, dengan demikian diperoleh representasi waktu-frekuensi.

Secara matematis, STFT dari sinyal $x(t)$ diberikan sebagai berikut:
\begin{equation}
X(m, \omega) = \sum_{n=-\infty}^{\infty} x[n] \cdot w[n - m] \cdot e^{-j \omega n}
\end{equation}


dengan $w(\tau - t)$ adalah sebuah fungsi \textit{windowing} berpusat pada waktu $t$ dan $\omega$ adalah frekuensi angular.

Pada studi ini, STFT digunakan untuk mengekstrak domain waktu-frekuensi dari sinyal getaran yang diperoleh dari dari respon struktur terhadap getaran yang diberikan oleh mesin \textit{shaker}. Fitur-fitur ini kemudian digunakan sebagai input pada klasifikasi pemelajaran mesin. Proces ini merekap frekuensi lokal setiap waktu, yang dinilai krusial pada pengidentifikasian perubahan struktur akibat kerusakan. \subsubsection{Fungsi \textit{Windowing}}
Fungsi jendela $w(n)$ berfungsi untuk melokalisasi sinyal dalam domain waktu, dengan meruncingkan sinyal di kedua ujungnya guna meminimalkan diskontinuitas. Hal ini sangat penting untuk mengurangi kebocoran spektral—sebuah fenomena di mana energi sinyal menyebar ke bin frekuensi di sekitarnya akibat pemotongan sinyal secara tiba-tiba. Pemilihan jenis jendela sangat memengaruhi resolusi dan akurasi representasi waktu-frekuensi.
 \subsubsection{Hann window}
Salah satu fungsi \textit{windowing} yang paling umum digunakan dalam STFT adalah \textit{Hann window}. Jendela ni adalah jenis jendela kosinus yang memberikan hasil yang baik antara resolusi frekuensi dan kebocoran spektral. \textit{Hann windowing} diskret dengan panjang $N$ didefinisikan sebagai:

\begin{equation}
w(n) = 0{.}5 \left(1 - \cos\left( \frac{2\pi n}{N - 1} \right) \right), \quad 0 \leq n \leq N - 1
\end{equation}

Fungsi ini secara halus meruncingkan sinyal menjadi nol di kedua ujungnya, sehingga mengurangi \textit{side lobe} dalam domain frekuensi sambil mempertahankan lebar \textit{lobe} utama yang relatif sempit. Dibandingkan dengan jendela persegi (rectangular window) yang memiliki tepi tajam, jendela Hann mengurangi fenomena Gibbs dan sangat cocok untuk aplikasi yang melibatkan estimasi spektral.







 \subsection{Algoritma Klasifikasi}

Penelitian ini mengevaluasi lima algoritma pemelajaran mesin klasik untuk melakukan tugas pengklasifikasian terhadap lokalisasi kerusakan. Setiap algoritma memiliki keunggulan dan limitasi masing-masing, dan performa untuk setiap algoritma dijadikan tolok ukur untuk mengidentifikasi manakah algoritma yang paling sesuai untuk setiap \textit{dataset} yang diberikan.

\subsubsection{Support Vector Machine (SVM)}

Mesin vektor pendukung (SVM) adalah sebuah algoritma pemelajaran mesin terarah yang mencari \textit{hyperplane} optimal dengan cara memisahkan data ke dalam kelas-kelas dengan margin maksimum. SVM bekerja dengan baik pada ruang dimensi tinggi dan cukup kokoh terhadap \textit{overfitting}, terutama pada kasus yang membutuhkan batasan margin secara jelas \parencite{cortes1995}.

SVM sesuai untuk klasifikasi sinyal getaran karena kemampuannya untuk mengatasi keputusan batasan-batasan non-linier apabila dilengkapi dengan fungsi kernel, seperti fungsi kernel berbasis radial (RBF).

\subsubsection{K-Nearest Neighbors (KNN)}

KNN merupakan sebuah algoritma pemelajaran non-parametrik, berbasis contoh. Algoritma ini mengklasifikasi titik data yang berbasis pada pungutan suara terbanyak dari tetangga terdekat $k$ pada ruang fitur. Meskipun dinilai sederhana, KNN dapat dinilai efektif ketika datanya terdistribusi dengan baik dan batasan-batasan pada kelasnya merata.

Performa algoritma ini sensitif pada pemilihan $k$ dan jarak metriknya. Untuk data dengan dimensi tinggi seperti fitur STFT, mungkin diperlukan optimalisasi atau penskalaan dimensi.

\subsubsection{Decision Tree (DT)}

Decision Tree adalah algoritma pemelajaran terarah (\textit{supervised learning}) berbasis struktur pohon, di mana setiap \textit{node} internal mewakili suatu keputusan berdasarkan atribut tertentu, setiap cabang mewakili hasil dari keputusan tersebut, dan setiap daun (leaf node) mewakili label kelas. Algoritma ini secara rekursif membagi data ke dalam subset berdasarkan fitur yang memberikan informasi paling tinggi, seperti diukur dengan Gini index atau entropi (information gain).

Kelebihan dari Decision Tree adalah interpretabilitasnya yang tinggi dan kemampuannya menangani data numerik maupun kategorikal. Namun, pohon keputusan rentan terhadap \textit{overfitting}, terutama jika kedalaman pohon tidak dikontrol.

\subsubsection{Random Forest (RF)}

Random Forest adalah metode ensemble yang terdiri dari banyak Decision Tree yang dilatih pada subset data dan subset fitur yang diacak. Setiap pohon dalam hutan memberikan prediksi, dan hasil akhir ditentukan melalui agregasi (misalnya, voting mayoritas untuk klasifikasi).

Dengan menggabungkan banyak pohon, Random Forest mengurangi varian model dan meningkatkan generalisasi. Teknik ini efektif untuk dataset yang kompleks dan sangat cocok untuk menghindari \textit{overfitting} yang umum terjadi pada satu pohon keputusan tunggal.

\subsubsection{Bagged Trees (BT)}

\textit{Bagged Trees} atau \textit{Bootstrap Aggregated Trees} adalah pendekatan \textit{ensemble} yang mirip dengan Random Forest, namun perbedaannya terletak pada pemilihan fitur. Dalam \textit{Bagged Trees}, pohon-pohon dibangun dari sampel acak \textit{bootstrap} dari dataset pelatihan, tetapi tanpa pengacakan subset fitur seperti pada Random Forest.

\subsubsection{XGBoost (Extreme Gradient Boosting)}

XGBoost adalah algoritma pemelajaran mesin berbasis \textit{gradient boosting} yang dirancang untuk efisiensi dan performa tinggi. Algoritma ini bekerja dengan membangun model secara bertahap, di mana setiap pohon selanjutnya mencoba memperbaiki kesalahan dari pohon sebelumnya dengan mengoptimasi fungsi kerugian (\textit{loss function}) menggunakan metode gradien.

XGBoost menggabungkan beberapa teknik seperti regularisasi $L1$ dan $L2$, pemangkasan pohon (\textit{pruning}), dan pemrosesan paralel, sehingga menghindari terjadinya \textit{overfitting} dan unggul dalam akurasi prediksi dibanding metode pohon lainnya. Algoritma ini sangat populer dalam kompetisi data karena kemampuannya menangani data besar, fitur multivariat, dan klasifikasi multi-kelas secara efisien.

\subsubsection{Linear Discriminant Analysis (LDA)}

Linear Discriminant Analysis (LDA) adalah teknik klasifikasi dan reduksi dimensi yang mengasumsikan bahwa data berasal dari distribusi normal multivariat dan memiliki kovarians yang seragam untuk setiap kelas. LDA bertujuan untuk memproyeksikan data ke ruang berdimensi lebih rendah yang memaksimalkan pemisahan antar kelas (rasio varians antar kelas terhadap varians dalam kelas).

LDA sangat cocok ketika distribusi data mendekati normal dan jumlah fitur tidak terlalu besar dibanding jumlah sampel. Selain sebagai klasifikator, LDA juga sering digunakan sebagai teknik prapemrosesan untuk ekstraksi fitur sebelum digunakan dalam algoritma lain.

\bigskip 
Dasar teori ini memberikan kerangka metodologi untuk mengimplementasi dan mengevaluasi usulan sistem lokalisasi kerusakan pada penelitian ini. Kokmbinasi dari analisis waktu-frekuensi menggunakan STFT dan klasifikasi pemelajaran mesin klasik memungkinkan ketercapaian monitor kesehatan struktur yang efisien dan mudah diterapkan.\clearpage{}
\clearpage{}\chapter{METODE PENELITIAN}

\section{Benda Uji}

Penelitian ini menggunakan data sekunder dari \textcite{abdeljaber2017}, yang tersedia secara publik dan diperoleh melalui eksperimen menggunakan \textit{Qatar University Grandstand Simulator}. Adapun rincian data yang digunakan adalah sebagai berikut:

\begin{itemize}
    \item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer.
    \item Setiap skenario dalam dataset mencakup satu kasus struktur tanpa kerusakan (healthy) dan 30 kasus kerusakan tunggal pada masing-masing sambungan (\textit{single-joint damage}).
    \item Sinyal getaran direkam dengan frekuensi pengambilan sampel sebesar 1024 Hz selama durasi 256 detik untuk tiap skenario.
    \item Kerusakan struktur disimulasikan dengan cara mengendurkan baut pada sambungan-sambungan tertentu.
\end{itemize}

Struktur dataset yang digunakan ditampilkan pada Gambar~\ref{fig:specimen-photo}.



\begin{figure}[ht]
    \centering
    \includegraphics[width=0.75\linewidth]{chapters/img/specimen.png}
    \caption{Bentuk benda uji}
    \label{fig:specimen-photo}
\end{figure} \section{Alat}

\subsection{Alat Perangkat Keras}
Data getaran struktur yang digunakan dalam penelitian ini diperoleh dari penelitian oleh \textcite{abdeljaber2017}, yang dilakukan menggunakan simulator struktur baja Grandstand di Queen’s University. Dalam eksperimen tersebut, struktur baja dipasang dengan akselerometer pada setiap sambungan-sambungan (\textit{joints}). Rangkaian perangkat keras yang digunakan untuk pengambilan data meliputi:

\begin{itemize}
    \item \textbf{27 akselerometer PCB model 393B04} (Gambar~\ref{fig:accel393}) untuk merekam respons percepatan pada sebagian besar titik pengukuran.
    \item \textbf{3 akselerometer B\&K model 8344} (Gambar~\ref{fig:accel393}) digunakan pada beberapa lokasi untuk validasi tambahan.
    \item \textbf{Mounting magnetic PCB model 080A121} digunakan untuk menempelkan akselerometer secara aman pada struktur baja.
    \item \textbf{Modal shaker (Model 2100E11)} digunakan untuk memberikan eksitasi getaran terkontrol pada struktur (Gambar~\ref{fig:shaker}). Sinyal input untuk shaker dihasilkan melalui \textbf{penguat daya SmartAmp 2100E21-400}.
    \item \textbf{Dua perangkat akuisisi data 16-kanal (DT9857E-16)} digunakan secara simultan: satu untuk menghasilkan sinyal input ke shaker dan satu lagi untuk merekam data keluaran dari akselerometer (Gambar~\ref{fig:datalogger}).
\end{itemize}

Seluruh perangkat ini memungkinkan pengambilan data getaran dengan fidelitas tinggi, dengan laju pengambilan sampel sebesar 1024 Hz per kanal selama 256 detik untuk setiap skenario pengujian.

Adapun sumberdaya komputasi yang digunakan untuk pemrosesan semua data dan pemodelan pada skripsi ini, yaitu:

\begin{itemize}
    \item \textbf{\textit{Processor}:} Intel Core i7 11th-gen @ 2.8 GHz
    \item \textbf{RAM:} 2$\times$8 GB LPDDR4X
\item \textbf{Sistem Operasi:} Windows 10 64-bit
\end{itemize}

\begin{figure}[H]
    \centering
    \includegraphics[width=\textwidth]{chapters/img/accel393.png}
    \caption{Akselerometer yang digunakan: (a) PCB 393B04, (b) B\&K 8344}
    \label{fig:accel393}
\end{figure}
\begin{figure}[H]
    \centering
    \includegraphics[width=0.4\textwidth]{chapters/img/shaker.png}
    \caption{Modal shaker (TMS 2100E11) yang dipasang pada struktur uji}
    \label{fig:shaker}
\end{figure}
\begin{figure}[H]
    \centering
    \includegraphics[width=0.7\textwidth]{chapters/img/datalogger.png}
    \caption{Perangkat akuisisi data (DT9857E-16) dan penguat daya SmartAmp 2100E21-400}
    \label{fig:datalogger}
\end{figure}
 
\subsection{Alat Perangkat Lunak}
Berikut merupakan perangkat lunak yang digunakan selama proses penelitian ini:

\begin{itemize}
    \item \textbf{Python 3.11} – digunakan untuk proses pra-pemrosesan data, pemodelan, dan evaluasi.
    \item \textbf{NumPy 1.22.4} – digunakan untuk perhitungan deret numerik.
    \item \textbf{Pandas 1.5.1} – digunakan untuk memanipulasi struktur data.
    \item \textbf{Pandas 1.7.3} – digunakan untuk memproses sinyal.
    \item \textbf{Matplotlib 3.7.1} – digunakan untuk menghasilkan plot data.
    \item \textbf{Scikit-Learn 1.5.1} – digunakan untuk membangun dan melatih model dengan algoritma pemelajaran mesin klasik.
    \item \textbf{Jupyter Notebook} – digunakan untuk pelatihan model dan percobaan eksperimental secara interaktif.
\end{itemize}  \clearpage
\section{Tahapan Penelitian}
Alur keseluruhan penelitian ini dilakukan melalui tahapan-tahapan sebagai berikut:

\begin{figure}[H]
    \centering
    \includegraphics[width=0.3\linewidth]{chapters/img/flow.png}
    \caption{Diagram alir tahapan penelitian}
    \label{fig:flowchart}
\end{figure}

\begin{enumerate}
    \item \textbf{Akuisisi Data:} Mengunduh dataset dari \textcite{abdeljaber2017} yang berisi sinyal percepatan untuk 31 kondisi struktur (1 kondisi sehat dan 30 kondisi kerusakan tunggal).
    


    \item \textbf{Pra-pemrosesan:} Melakukan normalisasi dan mengubah sinyal domain waktu mentah menjadi domain waktu-frekuensi menggunakan metode Short-Time Fourier Transform (STFT).

    \item \textbf{Ekstraksi Fitur:} Menghasilkan \textit{data frame} frekuensi dalam domain waktu.

    \item \textbf{Pengembangan Model:} Membangun dan melatih model klasifikasi berbasis algoritma pemelajaran mesin klasik (SVM, LDA, Bagged Trees, Random Forest, XGBoost) untuk mengklasifikasikan lokasi kerusakan struktur.

    \item \textbf{Evaluasi:} Mengevaluasi kinerja model menggunakan metrik akurasi, presisi, dan confusion matrix pada berbagai skenario pengujian.
\end{enumerate}

\subsection{Akuisisi Data}
Dataset yang digunakan dalam penelitian ini bersumber dari basis data getaran yang dipublikasi oleh \textcite{abdeljaber2017}. Dataset tersebut dapat diakses dan diunduh melalui tautan DOI berikut:  
\url{https://doi.org/10.17632/52rmx5bjcr.1}

Dataset terdiri dari dua folder:
\begin{itemize}
  \item \texttt{Dataset A/} – digunakan untuk pelatihan (training)
  \item \texttt{Dataset B/} – digunakan untuk pengujian (testing)
\end{itemize}

Setiap folder berisi 31 berkas dalam format \texttt{.TXT}, yang dinamai sesuai dengan kondisi kerusakan struktur. Pola penamaan berkas adalah sebagai berikut:

\begin{itemize}
  \item \texttt{zzzAU.TXT}, \texttt{zzzBU.TXT} — struktur tanpa kerusakan (sehat)
  \item \texttt{zzzAD1.TXT}, \texttt{zzzAD2.TXT}, ..., \texttt{zzzAD30.TXT} — Dataset A, kerusakan pada sambungan 1–30
  \item \texttt{zzzBD1.TXT}, \texttt{zzzBD2.TXT}, ..., \texttt{zzzBD30.TXT} — Dataset B, kerusakan pada sambungan 1–30
\end{itemize}

Sepuluh baris pertama dari setiap berkas berisi metadata yang menjelaskan konfigurasi pengujian, laju sampling, dan informasi kanal. Oleh karena itu, data deret waktu percepatan dimulai dari baris ke-11 yang berisi 31 kolom:
\begin{itemize}
  \item \textbf{Kolom 1:} Waktu dalam detik
  \item \textbf{Kolom 2–31:} Magnitudo percepatan dari \textit{joint} 1 hingga 30
\end{itemize}

Setiap sinyal di-\textit{sampling} pada frekuensi $f_s = 1024$ Hz dan direkam selama $t = 256$ detik, sehingga menghasilkan:
\begin{align}
\gls{not:signal} &= \gls{not:sampling_freq} \cdot \gls{not:time_length} \nonumber \\
  &= 1024 \cdot 256 \nonumber \\
  &= 262144 \quad \text{sampel per kanal} \label{eq:sample}
\end{align}

Dengan demikian, setiap berkas \verb|zzzAD|$n$\verb|.TXT| dapat direpresentasikan sebagai matriks:
\begin{equation}
    \mathbf{D}^{(n)} \in \mathbb{R}^{262144 \times 30}, \quad n = 1, \dots, 30
\end{equation}
di mana $n$ mengacu pada indeks kasus (1–30 = kerusakan pada \textit{joint} ke-$n$), dan berkas tanpa kerusakan pada seluruh \textit{joint}, \verb|zzzAU|\verb|.TXT|, direpresentasikan dengan matriks:
\begin{equation}
    \mathbf{U} \in \mathbb{R}^{262144 \times 30}
\end{equation}


Kemudian \textit{dataset} A dapat direpresentasikan sebagai matriks:
\begin{equation}
  \gls{not:dataset_A}
  =
  \Bigl\{
      \mathbf{U} \in \mathbb{R}^{262144 \times 30}
  \Bigr\}
  \;\cup\;
  \Bigl\{
      \mathbf{D}^{(n)} \in \mathbb{R}^{262144 \times 30}
      \;\bigm|\;
      n = 1, \dots, 30
  \Bigr\}.
\end{equation}
 


 \section{Analisis Data}





\subsection{Grid, Kode \textit{Joint}, dan Nama File}

Masing-masing *sensor node* diberi nama menurut indeks \(n\) (dengan \(n = 0,1,\dots,29\)).  
Berkas data mentah tiap node disimpan dalam berkas teks berformat
\texttt{zzzAD<n>.TXT}; penamaannya dapat dirumuskan sebagai  

\[
Z_{n} \;=\; \texttt{``zzzAD}n\texttt{.TXT''}, 
\qquad n = 1,\dots,30.
\]

Pada pembahasan selanjutnya, simbol \(Z_{n}\) dipakai sebagai penunjuk
berkas data untuk node ke-\(n\). 
Untuk merujuk satu kanal (kolom) tertentu di dalam matriks
\(\mathbf{D}^{(n)}\), digunakan notasi

\[
\gls{not:damage_file}_{s}^{(\gls{not:joint_index})} \in \mathbb{R}^{262144},
\]

dengan ketentuan:

* superskrip \((\gls{not:joint_index})\) menandakan indeks kasus kerusakan
  (1–30),
* subskrip \(s\) menandakan indeks kanal sensor yang dipilih
  (\(s = 1,\dots,30\)).

Dengan demikian,
\(\gls{not:damage_file}_{s}^{(n)}\) merepresentasikan sebuah vektor
\(262144 \times 1\) yang berisi deret waktu hasil pengukuran kanal
\(s\) pada skenario kerusakan ke-\(n\).

\subsection{Pemetaan Sensor ke Dalam Folder (Damage-case)}

Semua tiga puluh \textit{node} dikelompokkan ke dalam enam folder yang merepresentasikan enam skenario kerusakan, masing-masing dilabeli \(d_{i}\) dengan \(i=0,\dots,5\). Setiap folder mengandung tepat lima \textit{node} berurutan, sehingga didefinisikan:
\begin{equation*}
\gls{not:damage_file_set_case}_{i} = \bigl\{
\,\mathbf{D}_{5i}^{(5i)},
\;\mathbf{D}_{5i+1}^{(5i+1)},
\;\mathbf{D}_{5i+2}^{(5i+2)},
\;\mathbf{D}_{5i+3}^{(5i+3)},
\;\mathbf{D}_{5i+4}^{(5i+4)}
\bigr\},
\quad i = 0,\dots,5.
\end{equation*}
\begin{equation}
    \mathcal{D}_i = \bigl\{
\end{equation}
Sebagai contoh secara konkrit,
\begin{align*}
d_0 &= \{n_{0}^{F_0},\;n_{1}^{F_1},\;n_{2}^{F_2},\;n_{3}^{F_3},\;n_{4}^{F_4}\},\\[1ex]
d_1 &= \{n_{5}^{F_5},\;n_{6}^{F_6},\;n_{7}^{F_7},\;n_{8}^{F_8},\;n_{9}^{F_9}\},\\[1ex]
&\;\;\vdots\\[1ex]
d_5 &= \{n_{25}^{F_{25}},\;n_{26}^{F_{26}},\;n_{27}^{F_{27}},\;n_{28}^{F_{28}},\;n_{29}^{F_{29}}\}.
\end{align*}

\subsection{Seleksi Sensor \textit{Node} Ujung-Ujung (Domain Waktu)}

Untuk mensimulasikan tata letak sensor terbatas, dari setiap folder kerusakan hanya diambil \textit{node} pertama dan terakhir. Subset domain waktu ini dilambangkan sebagai
\begin{equation*}
d_{i}^{\mathrm{TD}}
= \bigl\{\,n_{5i}^{F_{5i}},\;n_{5i+4}^{F_{5i+4}}\bigr\},
\quad |d_{i}^{\mathrm{TD}}| = 2.
\end{equation*}

\subsection{Ekstraksi Fitur}

Operator STFT \(\mathcal{T}\) didefinisikan untuk memetakan sinyal domain waktu mentah (vektor dengan panjang \(L=262144\)) menjadi spektrogram berukuran \(513\times513\). Langkah-langkahnya adalah:
\begin{equation*}
\begin{aligned}
\text{(1) Fungsi jendela:}\quad
w[n] &= \frac{1}{2}\Bigl(1 - \cos\frac{2\pi n}{N_w - 1}\Bigr),
\quad n=0,\ldots,N_w-1; \\[1ex]
\text{(2) STFT:}\quad
S_k(p,t)
&= \sum_{n=0}^{N_w-1}
x_k\bigl[t\,N_h + n\bigr]
\;w[n]\;
e^{-j2\pi p n / N_w},\\[1ex]
&\quad
p = 0,\ldots,512,\quad t = 0,\ldots,512.
\end{aligned}
\end{equation*}
Pengambilan magnitudo menghasilkan matriks spektrogram untuk \textit{node} \(k\) sebagai
\begin{equation*}
\widetilde n_{k}^{F_{k}}(p,t) \;=\; \bigl|S_{k}(p,t)\bigr|
\;\in\;\mathbb{R}^{513\times513}.
\end{equation*}
Dengan demikian operator STFT dapat dituliskan sebagai:
\begin{equation*}
\mathcal{T}:\; n_{k}^{F_{k}}\in\mathbb{R}^{262144}
\;\longmapsto\;
\widetilde n_{k}^{F_{k}}\in\mathbb{R}^{513\times513}.
\end{equation*}

\subsection{Subset Domain Frekuensi}

Operator \(\mathcal{T}\) diterapkan pada \textit{node} ujung-ujung yang telah dipilih, sehingga diperoleh:
\begin{equation*}
d_{i}^{\mathrm{FD}}
= \bigl\{\,
\widetilde n_{5i}^{F_{5i}},\;
\widetilde n_{5i+4}^{F_{5i+4}}
\,\bigr\},
\quad
|d_{i}^{\mathrm{FD}}| = 2.
\end{equation*}

\subsection{Pengelompokan Berdasarkan Letak Ujung Sensor}

Sensor-sensor ujung bagian bawah dilabeli sebagai Sensor A dan sensor-sensor ujung bagian atas dilabeli sebagai Sensor B. Semua data dari keenam kasus kerusakan digabungkan menjadi dua himpunan:
\begin{equation*}
\text{Sensor A}
=
\bigl\{\,
\widetilde n_{0}^{F_{0}},\,
\widetilde n_{5}^{F_{5}},\,
\dots,\,
\widetilde n_{25}^{F_{25}}
\bigr\},
\quad
\text{Sensor B}
=
\bigl\{\,
\widetilde n_{4}^{F_{4}},\,
\widetilde n_{9}^{F_{9}},\,
\dots,\,
\widetilde n_{29}^{F_{29}}
\bigr\}.
\end{equation*}

\subsection{Perakitan Baris dan Pelabelan}

Setiap spektrogram berukuran \(513\times513\) diartikan sebagai 513 vektor fitur berdimensi 513. Untuk setiap kasus kerusakan \(i\) dan sensor \(s\), vektor fitur ini direplikasi sebanyak 5 kali (indeks pengulangan \(r\in\{0,\dots,4\}\)) dan diambil masing-masing baris/kolom ke-\(t\) dengan
\begin{equation*}
\mathbf{x}_{i,s,r,t}\in\mathbb{R}^{513}.
\end{equation*}
Label skalar untuk kasus kerusakan dinyatakan sebagai
\begin{equation*}
y_{i} = i,\quad i=0,\dots,5.
\end{equation*}
Selanjutnya, fungsi \textit{slicing} didefinisikan sebagai
\begin{equation*}
\Lambda(i,s,r,t)
\;=\;
\bigl[\,
\mathbf{x}_{i,s,r,t},
\;y_{i}
\bigr]
\;\in\;\mathbb{R}^{513+1}.
\end{equation*}

\subsection{Bentuk Akhir Data untuk Pelatihan}

Seluruh baris dari enam kasus kerusakan, lima pengulangan, dan 513 potongan waktu digabungkan menjadi dataset untuk satu sisi sensor:
\begin{equation*}
\mathcal{D}^{(s)}
=
\bigl\{
\Lambda(i,s,r,t)
\;\big|\;
i=0,\dots,5,\;
r=0,\dots,4,\;
t=0,\dots,512
\bigr\}.
\end{equation*}
Karena terdapat total \(6\times5\times513 = 15\,390\) baris, dan setiap baris memiliki \(513\) fitur ditambah satu kolom label, maka bentuk akhir dari data untuk satu sisi sensor adalah:
\begin{equation*}
|\mathcal{D}^{(s)}| = 15\,390 \times 514.
\end{equation*} \clearpage{}


\printbibliography


\end{document}