Compare commits

...

61 Commits

Author SHA1 Message Date
bb6f71277a feat(latex): update refine thesis title 2025-11-05 01:07:26 +07:00
f2e1668718 feat(latex): update title page layout and improve logo positioning 2025-11-03 20:41:20 +07:00
58f89b1302 feat(latex): add common AI/ML acronyms with proper names and improve formatting 2025-11-03 15:53:47 +07:00
d9506fcfc8 fix(documentclass): update hyperref package options and correct chapter dot leader definition 2025-11-03 15:53:29 +07:00
9be2afb558 feat(documentclass): add auto page number width option and improve TOC dot leaders 2025-11-02 02:46:59 +07:00
0530ce0cea feat(documentclass): enhance cover page options and redefine \maketitle behavior to embed cover layout as default while still giving custom user-defined cover page layout 2025-10-31 22:57:13 +07:00
03afd709ca refactor(documentclass): implement key-value options for skripsi class 2025-10-31 20:40:58 +07:00
5fa6d8fecc feat(documentclass): rename thesis.cls to skripsi.cls 2025-10-31 18:10:00 +07:00
bf6b91fa1c feat(documentclass): add fallback to default \maketitle when custom files missing
Add file existence checks for frontmatter templates with graceful
fallback to original \maketitle when frontmatter/maketitle.tex is
not found. Includes class warnings for missing files.
2025-10-30 21:36:17 +07:00
Rifqi D. Panuluh
9565847b3a feat(latex): add appendix input 2025-10-17 13:43:09 +00:00
Rifqi D. Panuluh
6b5a00dc63 refactor(documentclass): refactor keywords command 2025-10-17 13:43:09 +00:00
Rifqi D. Panuluh
9fac156c36 feat(latex): add hyperxmp package and update PDF metadata settings 2025-10-17 13:43:09 +00:00
Rifqi D. Panuluh
8252f99f01 feat(latex): enhance keywords command to update PDF keywords metadata 2025-10-17 13:43:09 +00:00
Rifqi D. Panuluh
f561998871 feat(documentclass): enhance keywords macro for abstract to support alphabetical sorting 2025-10-17 13:43:09 +00:00
nuluh
1d33aae225 Update image assets with new versions for improved quality and consistency 2025-10-16 12:35:43 +07:00
nuluh
aeef32fe9f Update image assets with new versions for improved quality and consistency 2025-10-16 12:35:41 +07:00
nuluh
e347b63e6e fix(src): update damage base path and adjust STFT processing parameters 2025-10-16 12:32:22 +07:00
nuluh
511014d37d feat(src): implement data processing for dataset_B and export to CSV 2025-10-16 12:32:21 +07:00
nuluh
b1be3a8b6f feat(src): add grid result summary function to export DataFrame to LaTeX 2025-10-16 12:32:20 +07:00
nuluh
06f158f143 feat(notebooks): refactor and add rectangle of prev grid search 2025-10-16 12:32:16 +07:00
nuluh
df38c00935 feat(src): enhance heatmap and plotting functions for sensor data visualization 2025-10-16 12:32:15 +07:00
Rifqi D. Panuluh
59793e83de feat(latex): refactor tables in chapter 4 2025-10-16 03:41:54 +00:00
Rifqi D. Panuluh
e1376b6d03 feat(latex): add new glossary entries for explained variance ratio, standard scaler, grid search, and stratified k-fold and add efficiency metrics and SVM hyperparameters to notations 2025-10-15 12:03:17 +00:00
Rifqi D. Panuluh
866799fb65 fix(latex): add comment to clarify customization of plain page style for chapter pages 2025-10-15 10:23:14 +00:00
Rifqi D. Panuluh
52c38d13c0 feat(latex): add grid search results table as appendices 2025-10-15 10:23:14 +00:00
nuluh
33f154837c Merge branch 'dev' of https://github.com/nuluh/thesis into dev 2025-10-15 13:14:34 +07:00
nuluh
9e3e234ef6 feat(notebooks): major changes 2025-10-15 13:14:17 +07:00
Rifqi D. Panuluh
6570480277 feat(latex): add appendix package and customize appendix names for improved formatting 2025-10-15 06:06:54 +00:00
Rifqi D. Panuluh
eb539e32b9 feat(latex): add keywords command for abstract in polyglossia-compatible format 2025-10-15 05:48:12 +00:00
Rifqi D. Panuluh
fe3f636a0c fix(latex): add missing label for hardware section in methodology 2025-10-15 05:47:47 +00:00
Rifqi D. Panuluh
74fdcf2c66 feat(latex): add conclusion and recommendations section with key findings and future research suggestions 2025-10-15 05:47:11 +00:00
Rifqi D. Panuluh
af31affe07 fix(latex): clarify PCA component determination and enhance grid-search results presentation 2025-10-15 05:46:28 +00:00
Rifqi D. Panuluh
06ddea8162 fix(latex): adjust fancyhdr pagestyle 2025-10-15 01:15:00 +00:00
Rifqi D. Panuluh
9bbe990b22 fix(latex): refine problem statements and enhance clarity in research scope 2025-10-15 01:13:46 +00:00
Rifqi D. Panuluh
d541300916 fix(latex): adjust headheight to avoid fancyhdr warning 2025-10-14 14:37:01 +00:00
Rifqi D. Panuluh
34e2143daa fix(latex): update advisor and headdepartment 2025-10-14 14:26:41 +00:00
Rifqi D. Panuluh
95c3356b4d fix(latex): use polyglossia-compatible for \abstractname 2025-10-14 14:25:40 +00:00
Rifqi D. Panuluh
b277d3cda6 fix(documentclass): update chapter title prefix and toc chapter presnum to be babel/polyglossia-compatible 2025-10-14 14:07:02 +00:00
Rifqi D. Panuluh
9e22db4665 feat(latex): add preface section and update advisor references in approval and originality documents 2025-10-14 13:49:29 +00:00
Rifqi D. Panuluh
ab472f19f0 fix(latex): minor fix figure and table references for accuracy in results section 2025-10-14 11:52:28 +00:00
Rifqi D. Panuluh
423d1efad4 fix(latex): translate 'Author' to 'Penulis' for consistency 2025-10-14 11:48:06 +00:00
Rifqi D. Panuluh
76969f9311 feat(latex): add paper summary appendix 2025-10-14 11:47:14 +00:00
Rifqi D. Panuluh
d5bf0c6fc9 fix(biblatex): disable URL, DOI, and ISBN in bib 2025-10-14 11:45:55 +00:00
Rifqi D. Panuluh
2a9cf2cc3d fix(documentclass): consolidate watermark settings for improved clarity and customization 2025-10-14 05:09:39 +00:00
Rifqi D. Panuluh
117f17d6a2 fix(latex): remove Heisenberg uncertainty principle explanation for clarity 2025-10-13 16:26:44 +00:00
Rifqi D. Panuluh
f9a125092a fix(latex): add missing notations for damaged and undamaged data matrices 2025-10-13 16:26:04 +00:00
Rifqi D. Panuluh
39e4dc67bf feat(latex): add new book reference for discrete-time signal processing
and clarify mathematical definition with citation
2025-10-13 16:25:37 +00:00
Rifqi D. Panuluh
719ae8e297 fix(documentclass): remove commented page reference from glossentry description 2025-10-13 14:29:11 +00:00
Rifqi D. Panuluh
ce8cd8bf36 feat(documentclass): add new glossary style 'supercolnoloc' for corrected format 2025-10-13 14:26:53 +00:00
Rifqi D. Panuluh
ae49c61ff0 fix(documentclass): adjust figure number width and remove one-and-a-half spacing 2025-10-13 14:07:55 +00:00
Rifqi D. Panuluh
720db42041 feat(latex): enhance hyperparameter optimization description and clarify cross-validation process 2025-10-13 08:51:32 +00:00
Rifqi D. Panuluh
e90f9a07a6 feat(latex): add new major literature review 2025-10-13 08:51:32 +00:00
Rifqi D. Panuluh
3d9223a565 feat: major add content to introductions and literature review 2025-10-13 08:51:32 +00:00
Rifqi D. Panuluh
0017d686b6 feat(images): add inference and scree plot images for model evaluation 2025-10-13 08:51:32 +00:00
Rifqi D. Panuluh
e1e0b07944 Proof reads and minor change 2025-10-13 08:31:07 +07:00
Rifqi D. Panuluh
c54094f248 Merge branch 'feature/chapter-4-results' into dev 2025-10-12 14:38:48 +00:00
Rifqi D. Panuluh
a0659e7892 feat: chapter 3 figures 2025-10-10 02:33:43 +00:00
nuluh
c2aa68d2e9 feat(src): refactor file dir 2025-10-07 06:05:17 +07:00
nuluh
d8482988ff feat(ml): add classification report generation to model evaluation to show all metrics during training 2025-08-31 13:01:04 +07:00
nuluh
cdcd056102 feat(notebooks): update magnitude units to use 'm/s²' instead of LaTeX to prevent inkscape misrendered from SVG 2025-08-30 11:39:32 +07:00
nuluh
30ecb6a88a feat(notebooks): Add matplotlib configuration for SVG font rendering in plots to use string only with no embedded fonts 2025-08-30 08:11:29 +07:00
93 changed files with 4891 additions and 1261 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ import re
import sys import sys
import numpy as np import numpy as np
from colorama import Fore, Style, init from colorama import Fore, Style, init
from typing import TypedDict, Dict, List from typing import TypedDict, Tuple, List
from joblib import load from joblib import load
from pprint import pprint from pprint import pprint
@@ -35,8 +35,8 @@ def complement_pairs(n, prefix, extension):
if a != orig_a: # skip original a if a != orig_a: # skip original a
yield (filename, [a, a + 25]) # use yield instead of return to return a generator of tuples yield (filename, [a, a + 25]) # use yield instead of return to return a generator of tuples
def generate_df_tuples(prefix: str, total_dfs: int=30, extension: str="TXT", first_col_start: int=1, last_col_offset: int=25, def generate_df_tuples(prefix: str, extension: str="TXT", first_col_start: int=1, last_col_offset: int=25,
group_size: int=5, special_groups: list=None, group: bool=True): group_size: int=5, special_groups: list=None, group: bool=True, undamage_file: str=None) -> List[Tuple[str, List[int]]]:
""" """
Generate a structured list of tuples containing DataFrame references and column indices. Generate a structured list of tuples containing DataFrame references and column indices.
@@ -78,6 +78,12 @@ def generate_df_tuples(prefix: str, total_dfs: int=30, extension: str="TXT", fir
# Add special groups at specified positions (other than beginning) # Add special groups at specified positions (other than beginning)
if special_groups: if special_groups:
result.insert(0, special_groups) result.insert(0, special_groups)
if undamage_file:
for i in range (1, 6):
n = 5 + i
bottom_end = i
top_end = bottom_end + 25
result[0].append((undamage_file, [bottom_end, top_end]))
return result return result

View File

@@ -1,12 +1,12 @@
from joblib import load from joblib import load
import pandas as pd import pandas as pd
from src.data_preprocessing import * import numpy as np
from src.process_stft import compute_stft from process_stft import compute_stft
from typing import List, Tuple from typing import List, Tuple
from sklearn.base import BaseEstimator from sklearn.base import BaseEstimator
import json
def probability_damage(pred: Tuple[np.ndarray, np.ndarray], model_classes: BaseEstimator, percentage=False) -> Dict[str, int]:
def probability_damage(pred: Tuple[np.ndarray, np.ndarray], model_classes: BaseEstimator, percentage=False) -> dict[str, int]:
""" """
Process the prediction output to return unique labels and their counts. Process the prediction output to return unique labels and their counts.
""" """
@@ -14,7 +14,7 @@ def probability_damage(pred: Tuple[np.ndarray, np.ndarray], model_classes: BaseE
label_counts = dict(zip(labels, counts)) label_counts = dict(zip(labels, counts))
# init all models classes probability of damage with 0 in dictionary # init all models classes probability of damage with 0 in dictionary
pod: Dict[np.ndarray, int] = dict.fromkeys(model_classes.classes_, 0) pod: dict[np.ndarray, int] = dict.fromkeys(model_classes.classes_, 0)
# update corresponding data # update corresponding data
pod.update(label_counts) pod.update(label_counts)
@@ -92,7 +92,7 @@ def inference(model_sensor_A_path: str, model_sensor_B_path: str, file_path: str
final_res = {"data": res, "case": case_name} final_res = {"data": res, "case": case_name}
return final_res return final_res
def heatmap(result, damage_classes: list[int] = [1, 2, 3, 4, 5, 6]): def heatmap(result, damage_classes: list[int] = [1, 2, 3, 4, 5, 6], sensor: str = 'Sensor_A'):
from scipy.interpolate import RectBivariateSpline from scipy.interpolate import RectBivariateSpline
resolution = 300 resolution = 300
y = list(range(1, len(damage_classes)+1)) y = list(range(1, len(damage_classes)+1))
@@ -103,7 +103,7 @@ def heatmap(result, damage_classes: list[int] = [1, 2, 3, 4, 5, 6]):
# X, Y = np.meshgrid(x, y) # X, Y = np.meshgrid(x, y)
Z = [] Z = []
for _, column_data in result["data"].items(): for _, column_data in result["data"].items():
sensor_a_pod = column_data['Sensor_A']['PoD'] sensor_a_pod = column_data[sensor]['PoD']
Z.append([sensor_a_pod.get(cls, 0) for cls in damage_classes]) Z.append([sensor_a_pod.get(cls, 0) for cls in damage_classes])
Z = np.array(Z).T Z = np.array(Z).T
@@ -115,13 +115,18 @@ def heatmap(result, damage_classes: list[int] = [1, 2, 3, 4, 5, 6]):
X2, Y2 = np.meshgrid(x2, y2) X2, Y2 = np.meshgrid(x2, y2)
# breakpoint() # breakpoint()
c = plt.pcolormesh(X2, Y2, Z2, cmap='jet', shading='auto') plt.figure(figsize=(9, 6))
# Change the window title
plt.gcf().canvas.manager.set_window_title(f"Heatmap {sensor} - {result['case']}")
c = plt.pcolormesh(X2, Y2, Z2, cmap='jet', shading='auto', vmin=0, vmax=1)
# Add a colorbar # Add a colorbar
plt.colorbar(c, label='Probability of Damage (PoD)') plt.colorbar(c, label='Probability of Damage (PoD)', fraction=0.05)
plt.gca().invert_xaxis() plt.gca().invert_xaxis()
plt.grid(True, linestyle='-', alpha=0.7) plt.grid(True, linestyle='-', alpha=0.7)
plt.xticks(np.arange(int(X2.min()), int(X2.max())+1, 1)) plt.xticks(np.arange(0, 5, 1), np.arange(1, 6, 1))
plt.xlabel("Column Index") plt.xlabel("Column Index")
plt.ylabel("Damage Index") plt.ylabel("Damage Index")
plt.title(result["case"]) plt.title(result["case"])
@@ -129,62 +134,66 @@ def heatmap(result, damage_classes: list[int] = [1, 2, 3, 4, 5, 6]):
# plt.gca().xaxis.set_major_locator(MultipleLocator(65/4)) # plt.gca().xaxis.set_major_locator(MultipleLocator(65/4))
plt.show() plt.show()
def plot_sensor_pod(result, sensor: str = 'Sensor_A', damage_classes: list[int] = [1, 2, 3, 4, 5, 6]):
"""
Plot Probability of Damage (PoD) for all columns for a specific sensor.
Args:
result: Dictionary containing inference results
sensor: Sensor name ('Sensor_A' or 'Sensor_B')
damage_classes: List of damage class labels
"""
x_values = list(range(len(damage_classes)))
# Define colors for different columns
colors = plt.cm.tab10(np.linspace(0, 1, len(result['data'])))
# Create figure
plt.figure(figsize=(9, 6))
# Create a figure
# Change the window title
plt.gcf().canvas.manager.set_window_title(f"PoD {sensor} - {result['case']}")
# line_styles = ['-', '--', '-.', ':'] # Solid, dashed, dash-dot, dotted
markers = ['o', 's', '^', 'D', 'x'] # Circle, square, triangle, diamond, cross
# Loop through each column in the data
for row_idx, (column_name, column_data) in enumerate(result['data'].items()):
sensor_pod = column_data[sensor]['PoD']
y_values = [sensor_pod.get(cls, 0) for cls in damage_classes]
# Cycle through line styles and markers
# line_style = line_styles[row_idx % len(line_styles)]
marker = markers[row_idx % len(markers)]
plt.plot(x_values, y_values, linestyle='-', marker=marker, linewidth=2, markersize=8,
color=colors[row_idx], label=column_name, alpha=0.8)
# Configure plot
# plt.title(f"{sensor}", fontsize=14, fontweight='bold')
plt.xticks(x_values, damage_classes)
plt.ylim(0, 1.05)
plt.ylabel('Probability', fontsize=12)
plt.xlabel('Damage Class', fontsize=12)
plt.grid(True, linestyle='-', alpha=0.3)
plt.legend(loc='best', fontsize=10)
plt.show()
if __name__ == "__main__": if __name__ == "__main__":
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import json import json
from scipy.interpolate import UnivariateSpline # from scipy.interpolate import UnivariateSpline
result = inference( result = inference(
"D:/thesis/models/Sensor A/SVM with StandardScaler and PCA.joblib", "D:/thesis/models/Sensor A/finegrid_pca32_c8_g-8.joblib",
"D:/thesis/models/Sensor B/SVM with StandardScaler and PCA.joblib", "D:/thesis/models/Sensor B/finegrid_pca16_c3_g-5.5.joblib",
"D:/thesis/data/dataset_B/zzzBD19.TXT" "D:/thesis/data/dataset_B/zzzBD30.TXT"
) )
# heatmap(result) heatmap(result, sensor='Sensor_A')
# Convert all keys to strings before dumping to JSON heatmap(result, sensor='Sensor_B')
# result_with_string_keys = convert_keys_to_strings(result)
# print(json.dumps(result_with_string_keys, indent=4))
# Create a 5x2 subplot grid (5 rows for each column, 2 columns for sensors)
fig, axes = plt.subplots(nrows=5, ncols=2, figsize=(5, 50))
# # Define damage class labels for x-axis
damage_classes = [1, 2, 3, 4, 5, 6]
# # Loop through each column in the data
for row_idx, (column_name, column_data) in enumerate(result['data'].items()):
# Plot Sensor A in the first column of subplots
sensor_a_pod = column_data['Sensor_A']['PoD']
x_values = list(range(len(damage_classes)))
y_values = [sensor_a_pod.get(cls, 0) for cls in damage_classes]
# x2 = np.linspace(1, 6, 100)
# interp = UnivariateSpline(x_values, y_values, s=0)
axes[row_idx, 0].plot(x_values, y_values, '-', linewidth=2, markersize=8)
axes[row_idx, 0].set_title(f"{column_name} - Sensor A", fontsize=10)
axes[row_idx, 0].set_xticks(x_values)
axes[row_idx, 0].set_xticklabels(damage_classes)
axes[row_idx, 0].set_ylim(0, 1.05)
axes[row_idx, 0].set_ylabel('Probability')
axes[row_idx, 0].set_xlabel('Damage Class')
axes[row_idx, 0].grid(True, linestyle='-', alpha=0.5)
# Plot Sensor B in the second column of subplots
sensor_b_pod = column_data['Sensor_B']['PoD']
y_values = [sensor_b_pod.get(cls, 0) for cls in damage_classes]
axes[row_idx, 1].plot(x_values, y_values, '-', linewidth=2, markersize=8)
axes[row_idx, 1].set_title(f"{column_name} - Sensor B", fontsize=10)
axes[row_idx, 1].set_xticks(x_values)
axes[row_idx, 1].set_xticklabels(damage_classes)
axes[row_idx, 1].set_ylim(0, 1.05)
axes[row_idx, 1].set_ylabel('Probability')
axes[row_idx, 1].set_xlabel('Damage Class')
axes[row_idx, 1].grid(True, linestyle='-', alpha=0.5)
# Adjust layout to prevent overlap
fig.tight_layout(rect=[0, 0, 1, 0.96]) # Leave space for suptitle
plt.subplots_adjust(hspace=1, wspace=0.3) # Adjust spacing between subplots
plt.suptitle(f"Case {result['case']}", fontsize=16, y=0.98) # Adjust suptitle position
plt.show()
plot_sensor_pod(result, sensor='Sensor_A')
plot_sensor_pod(result, sensor='Sensor_B')

View File

@@ -2,7 +2,7 @@ import numpy as np
import pandas as pd import pandas as pd
import os import os
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, classification_report
from joblib import load from joblib import load
def create_ready_data( def create_ready_data(
@@ -159,6 +159,7 @@ def train_and_evaluate_model(
# Continue despite export error # Continue despite export error
result["success"] = True result["success"] = True
result["classification_report"] = classification_report(y_test, y_pred, output_dict=True)
return result return result
except Exception as e: except Exception as e:

View File

@@ -8,7 +8,7 @@ import multiprocessing # Added import for multiprocessing
from typing import Union, Tuple from typing import Union, Tuple
# Define the base directory where DAMAGE_X folders are located # Define the base directory where DAMAGE_X folders are located
damage_base_path = 'D:/thesis/data/converted/raw' damage_base_path = 'D:/thesis/data/converted/raw_B'
# Define output directories for each sensor # Define output directories for each sensor
output_dirs = { output_dirs = {
@@ -77,7 +77,7 @@ def process_damage_case(damage_num):
damage_folder = os.path.join(damage_base_path, f'DAMAGE_{damage_num}') damage_folder = os.path.join(damage_base_path, f'DAMAGE_{damage_num}')
if damage_num == 0: if damage_num == 0:
# Number of test runs per damage case # Number of test runs per damage case
num_test_runs = 120 num_test_runs = 125
else: else:
num_test_runs = 5 num_test_runs = 5
# Check if the damage folder exists # Check if the damage folder exists
@@ -122,12 +122,12 @@ def process_damage_case(damage_num):
# only inlcude 21 samples vector features for first 45 num_test_runs else include 22 samples vector features # only inlcude 21 samples vector features for first 45 num_test_runs else include 22 samples vector features
if damage_num == 0: if damage_num == 0:
print(f"Processing damage_num = 0, test_num = {test_num}") print(f"Processing damage_num = 0, test_num = {test_num}")
if test_num <= 45: if test_num <= 60:
df_stft = df_stft.iloc[:22, :] df_stft = df_stft.iloc[:20, :]
print(f"Reduced df_stft shape (21 samples): {df_stft.shape}") print(f"Reduced df_stft shape (20 samples): {df_stft.shape}")
else: else:
df_stft = df_stft.iloc[:21, :] df_stft = df_stft.iloc[:21, :]
print(f"Reduced df_stft shape (22 samples): {df_stft.shape}") print(f"Reduced df_stft shape (21 samples): {df_stft.shape}")
# Append to the aggregated list # Append to the aggregated list
aggregated_stft.append(df_stft) aggregated_stft.append(df_stft)

View File

@@ -0,0 +1,68 @@
import pandas as pd
import numpy as np
def grid_result_summary(df: pd.DataFrame, output_path: str, include_efficiency: bool = True, verbose=False) -> None:
"""
Export a DataFrame to a LaTeX file with optional inclusion of the efficiency column.
Parameters:
-----------
df : pd.DataFrame
The DataFrame to export.
output_path : str
The file path where the LaTeX file will be saved.
include_efficiency : bool, optional
Whether to include the efficiency column (E_i) in the output. Default is True.
Returns:
--------
None
"""
# Define the columns to include
columns: list[str] = [
"param_pca__n_components",
"param_svc__C",
"param_svc__gamma",
"mean_test_score",
"mean_fit_time"
]
# Filter DataFrame to include only the best mean_test_score for each param_pca__n_components
df = df.loc[df.groupby('param_pca__n_components')['mean_test_score'].idxmax()][columns]
# Convert C and gamma to log2 scale
df['param_svc__C'] = np.log2(df['param_svc__C']).astype(int)
df['param_svc__gamma'] = np.log2(df['param_svc__gamma']).astype(int)
if include_efficiency:
columns.append("time_score_ratio")
df['time_score_ratio'] = df['mean_test_score'] / df['mean_fit_time'] * 1e3
# Rename columns for LaTeX formatting
column_names = {
"param_pca__n_components": r"$n_{\text{components}}$",
"param_svc__C": r"$C (\log_2)$",
"param_svc__gamma": r"$\gamma (\log_2)$",
"mean_test_score": r"$S_i$",
"mean_fit_time": r"$T_i$",
"time_score_ratio": r"$E_i (\times 10^{-3})$"
}
# Filter and rename columns
df_filtered = df[columns].rename(columns=column_names)
# Export to LaTeX
latex_table = df_filtered.to_latex(
index=False,
float_format="%.5f",
column_format="cccccc" if include_efficiency else "ccccc",
# caption="Best hyperparameters for each PCA component size.",
# label="tab:best_hyperparams"
)
# Save to file
with open(output_path, "w") as f:
f.write(latex_table)
if verbose:
print(latex_table)
print(f"LaTeX table exported to '{output_path}'")

52
code/src/test.py Normal file
View File

@@ -0,0 +1,52 @@
from data_preprocessing import *
from joblib import dump, load
# b = generate_damage_files_index(
# num_damage=6,
# file_index_start=1,
# col=5,
# base_path="D:/thesis/data/dataset_B",
# prefix="zzzBD",
# # undamage_file="zzzBU.TXT"
# )
# Example: Generate tuples with a special group of df0 at the beginning
# special_groups_A = [
# {'df_name': 'zzzAU.TXT', 'position': 0, 'size': 5} # Add at beginning
# ]
# special_groups_B = [
# {'df_name': 'zzzBU.TXT', 'position': 0, 'size': 5} # Add at beginning
# ]
# Generate the tuples with the special group
# a_complement = [(comp)
# for n in range(1, 31)
# for comp in complement_pairs(n, prefix="zzzAD", extension="TXT")]
# a = generate_df_tuples(special_groups=a_complement, prefix="zzzAD", undamage_file="zzzAU.TXT")
b_complement = [(comp)
for n in range(1, 31)
for comp in complement_pairs(n, prefix="zzzBD", extension="TXT")]
b = generate_df_tuples(special_groups=b_complement, prefix="zzzBD", undamage_file="zzzBU.TXT")
# a = generate_damage_files_index(
# num_damage=6,
# file_index_start=1,
# col=5,
# base_path="D:/thesis/data/dataset_A",
# prefix="zzzAD",
# # undamage_file="zzzBU.TXT"
# )
# data_A = DataProcessor(file_index=a, base_path="D:/thesis/data/dataset_A", include_time=True)
# data_A.create_vector_column(overwrite=True)
# # data_A.create_limited_sensor_vector_column(overwrite=True)
# data_A.export_to_csv("D:/thesis/data/converted/raw")
data_B = DataProcessor(file_index=b, base_path="D:/thesis/data/dataset_B", include_time=True)
# data_B.create_vector_column(overwrite=True)
# # data_B.create_limited_sensor_vector_column(overwrite=True)
data_B.export_to_csv("D:/thesis/data/converted/raw_B")
# a = load("D:/cache.joblib")
# breakpoint()

1
foam Submodule

Submodule foam added at 175ecbbdb2

View File

@@ -0,0 +1,242 @@
\begin{rlandscape}
% \chapter*{Grid Search}
% \section*{Hasil Coarse Grid Search}
\centering
\begin{longtable}{
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}}
\caption{Hasil \textit{Coarse Grid-Search} Sensor A diurutkan berdasarkan \textit{rank test score}}
\label{tab:coarse grid results A}
\\
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param pca n components & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endfirsthead
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param pca n components & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endhead
\midrule
\multicolumn{11}{r}{\textit{berlanjut di halaman berikutnya}}
\endfoot
\bottomrule
\bottomrule
\endlastfoot
% Start of table content
31.24 & 1.08 & 2.15 & 0.30 & 512 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 1 \\
26.66 & 0.66 & 1.81 & 0.04 & 512 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 1 \\
28.55 & 0.65 & 2.01 & 0.23 & 512 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 1 \\
17.84 & 0.57 & 0.87 & 0.09 & 256 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 4 \\
18.42 & 0.74 & 0.98 & 0.18 & 256 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 4 \\
17.89 & 0.38 & 0.89 & 0.13 & 256 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 4 \\
13.44 & 0.14 & 0.41 & 0.03 & 128 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 7 \\
16.85 & 0.45 & 0.52 & 0.08 & 128 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 7 \\
13.16 & 0.07 & 0.46 & 0.04 & 128 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 7 \\
13.47 & 0.58 & 0.26 & 0.05 & 64 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 10 \\
10.86 & 0.38 & 0.22 & 0.01 & 64 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 10 \\
29.77 & 1.96 & 2.46 & 0.15 & 512 & 0.00 & -10.00 & rbf & 1.00 & 0.00 & 12 \\
19.85 & 1.19 & 1.26 & 0.06 & 256 & 0.00 & -10.00 & rbf & 1.00 & 0.00 & 13 \\
10.46 & 0.05 & 0.15 & 0.01 & 32 & 10.00 & -10.00 & rbf & 0.99 & 0.00 & 14 \\
14.95 & 1.06 & 0.66 & 0.05 & 128 & 0.00 & -10.00 & rbf & 0.99 & 0.00 & 15 \\
12.48 & 0.53 & 0.19 & 0.05 & 32 & 5.00 & -10.00 & rbf & 0.99 & 0.00 & 16 \\
18.00 & 0.49 & 0.52 & 0.05 & 256 & 10.00 & -15.00 & rbf & 0.99 & 0.00 & 17 \\
12.51 & 1.25 & 0.16 & 0.01 & 32 & 15.00 & -10.00 & rbf & 0.99 & 0.00 & 18 \\
18.76 & 0.99 & 0.51 & 0.05 & 256 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 19 \\
27.92 & 0.95 & 1.16 & 0.08 & 512 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 20 \\
29.16 & 0.99 & 1.08 & 0.12 & 512 & 10.00 & -15.00 & rbf & 0.99 & 0.00 & 21 \\
13.58 & 0.52 & 0.19 & 0.01 & 64 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 22 \\
14.78 & 0.52 & 2.43 & 0.24 & 32 & 15.00 & -5.00 & rbf & 0.99 & 0.00 & 23 \\
12.06 & 0.10 & 2.08 & 0.08 & 32 & 10.00 & -5.00 & rbf & 0.99 & 0.00 & 23 \\
14.54 & 0.60 & 2.53 & 0.21 & 32 & 5.00 & -5.00 & rbf & 0.99 & 0.00 & 23 \\
15.50 & 0.71 & 0.18 & 0.04 & 32 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 26 \\
11.84 & 0.07 & 2.08 & 0.04 & 32 & 0.00 & -5.00 & rbf & 0.99 & 0.00 & 27 \\
28.30 & 1.53 & 1.51 & 0.17 & 512 & 5.00 & -15.00 & rbf & 0.99 & 0.00 & 28 \\
17.53 & 0.48 & 0.73 & 0.02 & 256 & 5.00 & -15.00 & rbf & 0.99 & 0.00 & 29 \\
10.54 & 0.41 & 0.49 & 0.09 & 16 & 0.00 & -5.00 & rbf & 0.99 & 0.00 & 30 \\
14.07 & 0.34 & 0.26 & 0.03 & 128 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 31 \\
10.48 & 0.19 & 0.42 & 0.02 & 16 & 5.00 & -5.00 & rbf & 0.99 & 0.00 & 32 \\
12.53 & 0.80 & 0.48 & 0.09 & 16 & 15.00 & -5.00 & rbf & 0.99 & 0.00 & 33 \\
10.44 & 0.20 & 0.41 & 0.04 & 16 & 10.00 & -5.00 & rbf & 0.99 & 0.00 & 33 \\
13.33 & 0.32 & 0.48 & 0.11 & 64 & 0.00 & -10.00 & rbf & 0.99 & 0.00 & 35 \\
10.67 & 0.09 & 0.13 & 0.02 & 16 & 10.00 & -10.00 & rbf & 0.99 & 0.00 & 36 \\
17.23 & 1.02 & 0.31 & 0.06 & 128 & 10.00 & -15.00 & rbf & 0.99 & 0.01 & 37 \\
15.70 & 0.96 & 0.14 & 0.03 & 16 & 15.00 & -10.00 & rbf & 0.99 & 0.00 & 38 \\
10.26 & 0.22 & 0.18 & 0.03 & 16 & 5.00 & -10.00 & rbf & 0.99 & 0.00 & 39 \\
13.18 & 0.44 & 0.44 & 0.04 & 128 & 5.00 & -15.00 & rbf & 0.98 & 0.00 & 40 \\
17.16 & 0.96 & 0.17 & 0.02 & 16 & 15.00 & -15.00 & rbf & 0.98 & 0.00 & 41 \\
11.53 & 0.14 & 0.23 & 0.02 & 64 & 5.00 & -10.00 & rbf & 0.98 & 0.01 & 42 \\
10.60 & 0.13 & 2.04 & 0.04 & 16 & -5.00 & -5.00 & rbf & 0.98 & 0.00 & 43 \\
13.92 & 1.42 & 0.24 & 0.04 & 64 & 10.00 & -15.00 & rbf & 0.98 & 0.01 & 44 \\
10.27 & 0.10 & 0.31 & 0.03 & 32 & 0.00 & -10.00 & rbf & 0.98 & 0.00 & 45 \\
11.37 & 0.28 & 0.31 & 0.02 & 64 & 5.00 & -15.00 & rbf & 0.97 & 0.00 & 46 \\
10.98 & 0.14 & 0.19 & 0.01 & 32 & 10.00 & -15.00 & rbf & 0.97 & 0.00 & 47 \\
10.88 & 0.36 & 0.23 & 0.02 & 8 & 5.00 & -5.00 & rbf & 0.97 & 0.00 & 48 \\
11.69 & 0.23 & 0.35 & 0.02 & 8 & 0.00 & -5.00 & rbf & 0.97 & 0.00 & 49 \\
30.52 & 1.52 & 0.13 & 0.02 & 8 & 15.00 & -10.00 & rbf & 0.96 & 0.01 & 50 \\
11.52 & 0.15 & 0.16 & 0.01 & 8 & 10.00 & -10.00 & rbf & 0.96 & 0.00 & 51 \\
12.01 & 0.30 & 0.24 & 0.02 & 8 & 10.00 & -5.00 & rbf & 0.96 & 0.00 & 52 \\
24.88 & 1.70 & 7.56 & 1.13 & 256 & -5.00 & -10.00 & rbf & 0.96 & 0.00 & 53 \\
27.66 & 2.04 & 12.21 & 0.98 & 512 & -5.00 & -10.00 & rbf & 0.96 & 0.00 & 54 \\
15.40 & 0.45 & 4.28 & 0.33 & 128 & -5.00 & -10.00 & rbf & 0.96 & 0.00 & 55 \\
19.85 & 0.15 & 6.14 & 0.48 & 64 & 15.00 & -5.00 & rbf & 0.96 & 0.00 & 56 \\
23.47 & 0.57 & 5.70 & 0.07 & 64 & 10.00 & -5.00 & rbf & 0.96 & 0.00 & 56 \\
19.63 & 0.16 & 5.54 & 0.14 & 64 & 5.00 & -5.00 & rbf & 0.96 & 0.00 & 56 \\
29.58 & 1.50 & 7.94 & 0.36 & 512 & 0.00 & -15.00 & rbf & 0.95 & 0.00 & 59 \\
19.24 & 0.80 & 4.87 & 0.43 & 256 & 0.00 & -15.00 & rbf & 0.95 & 0.00 & 60 \\
9.82 & 0.09 & 0.35 & 0.02 & 16 & 0.00 & -10.00 & rbf & 0.95 & 0.00 & 61 \\
10.24 & 0.07 & 1.33 & 0.01 & 8 & -5.00 & -5.00 & rbf & 0.95 & 0.00 & 62 \\
17.52 & 1.08 & 0.23 & 0.03 & 8 & 15.00 & -5.00 & rbf & 0.95 & 0.00 & 63 \\
10.21 & 0.16 & 0.21 & 0.01 & 16 & 10.00 & -15.00 & rbf & 0.95 & 0.00 & 64 \\
21.87 & 0.29 & 5.73 & 0.08 & 64 & 0.00 & -5.00 & rbf & 0.95 & 0.00 & 65 \\
12.06 & 0.80 & 0.37 & 0.04 & 32 & 5.00 & -15.00 & rbf & 0.95 & 0.00 & 66 \\
14.26 & 0.57 & 3.25 & 0.32 & 128 & 0.00 & -15.00 & rbf & 0.95 & 0.00 & 67 \\
12.17 & 0.08 & 2.76 & 0.07 & 64 & -5.00 & -10.00 & rbf & 0.95 & 0.00 & 68 \\
11.07 & 0.25 & 0.22 & 0.02 & 8 & 5.00 & -10.00 & rbf & 0.95 & 0.00 & 69 \\
16.92 & 1.59 & 0.19 & 0.02 & 8 & 15.00 & -15.00 & rbf & 0.94 & 0.00 & 70 \\
13.37 & 0.75 & 2.57 & 0.19 & 64 & 0.00 & -15.00 & rbf & 0.94 & 0.00 & 71 \\
11.83 & 0.16 & 0.41 & 0.03 & 16 & 5.00 & -15.00 & rbf & 0.93 & 0.00 & 72 \\
11.84 & 0.52 & 2.21 & 0.09 & 32 & -5.00 & -10.00 & rbf & 0.93 & 0.00 & 73 \\
10.99 & 0.12 & 1.90 & 0.07 & 32 & 0.00 & -15.00 & rbf & 0.92 & 0.00 & 74 \\
10.78 & 0.69 & 0.75 & 0.12 & 8 & 0.00 & -10.00 & rbf & 0.91 & 0.00 & 75 \\
9.66 & 0.10 & 0.33 & 0.02 & 8 & 10.00 & -15.00 & rbf & 0.90 & 0.00 & 76 \\
12.32 & 0.30 & 0.71 & 0.13 & 8 & 5.00 & -15.00 & rbf & 0.88 & 0.00 & 77 \\
10.62 & 0.12 & 2.16 & 0.09 & 16 & -5.00 & -10.00 & rbf & 0.87 & 0.01 & 78 \\
10.55 & 0.08 & 1.96 & 0.07 & 16 & 0.00 & -15.00 & rbf & 0.87 & 0.01 & 79 \\
21.82 & 0.43 & 7.86 & 0.32 & 128 & 5.00 & -5.00 & rbf & 0.81 & 0.01 & 80 \\
24.90 & 0.62 & 10.09 & 0.39 & 128 & 15.00 & -5.00 & rbf & 0.81 & 0.01 & 80 \\
22.31 & 0.65 & 8.05 & 0.27 & 128 & 10.00 & -5.00 & rbf & 0.81 & 0.01 & 80 \\
11.22 & 0.09 & 0.41 & 0.01 & 4 & 5.00 & -5.00 & rbf & 0.81 & 0.01 & 83 \\
9.93 & 0.15 & 0.66 & 0.04 & 4 & 0.00 & -5.00 & rbf & 0.81 & 0.00 & 84 \\
41.20 & 0.45 & 0.37 & 0.02 & 4 & 10.00 & -5.00 & rbf & 0.80 & 0.01 & 85 \\
112.24 & 4.87 & 0.50 & 0.03 & 4 & 15.00 & -10.00 & rbf & 0.80 & 0.01 & 86 \\
10.58 & 0.08 & 2.60 & 0.06 & 8 & -5.00 & -10.00 & rbf & 0.79 & 0.01 & 87 \\
13.87 & 0.22 & 2.50 & 0.21 & 4 & 0.00 & 0.00 & rbf & 0.79 & 0.01 & 88 \\
516.82 & 20.58 & 0.27 & 0.11 & 4 & 15.00 & -5.00 & rbf & 0.79 & 0.01 & 89 \\
27.24 & 0.86 & 8.13 & 0.20 & 128 & 0.00 & -5.00 & rbf & 0.79 & 0.01 & 90 \\
11.86 & 0.10 & 4.70 & 0.08 & 32 & -5.00 & -5.00 & rbf & 0.78 & 0.01 & 91 \\
10.34 & 0.06 & 2.62 & 0.20 & 8 & 0.00 & -15.00 & rbf & 0.78 & 0.01 & 92 \\
10.50 & 0.14 & 2.22 & 0.23 & 4 & -5.00 & -5.00 & rbf & 0.78 & 0.01 & 93 \\
17.73 & 0.80 & 0.83 & 0.04 & 4 & 10.00 & -10.00 & rbf & 0.77 & 0.01 & 94 \\
17.00 & 0.32 & 4.34 & 0.08 & 8 & 15.00 & 0.00 & rbf & 0.76 & 0.00 & 95 \\
18.86 & 0.56 & 5.68 & 0.24 & 8 & 10.00 & 0.00 & rbf & 0.76 & 0.00 & 95 \\
17.76 & 0.19 & 4.33 & 0.09 & 8 & 5.00 & 0.00 & rbf & 0.76 & 0.00 & 95 \\
21.32 & 0.61 & 5.04 & 0.20 & 8 & 0.00 & 0.00 & rbf & 0.74 & 0.00 & 98 \\
15.82 & 0.16 & 2.15 & 0.06 & 4 & 5.00 & 0.00 & rbf & 0.73 & 0.01 & 99 \\
17.37 & 0.63 & 2.10 & 0.09 & 4 & 10.00 & 0.00 & rbf & 0.72 & 0.01 & 100 \\
17.18 & 0.51 & 1.98 & 0.06 & 4 & 15.00 & 0.00 & rbf & 0.72 & 0.01 & 101 \\
10.20 & 0.17 & 1.08 & 0.03 & 4 & 5.00 & -10.00 & rbf & 0.71 & 0.01 & 102 \\
22.02 & 1.38 & 0.93 & 0.08 & 4 & 15.00 & -15.00 & rbf & 0.68 & 0.01 & 103 \\
10.80 & 0.53 & 1.95 & 0.06 & 4 & 0.00 & -10.00 & rbf & 0.62 & 0.01 & 104 \\
30.25 & 1.39 & 15.70 & 0.63 & 256 & 10.00 & -5.00 & rbf & 0.62 & 0.01 & 105 \\
26.77 & 0.36 & 12.15 & 0.34 & 256 & 15.00 & -5.00 & rbf & 0.62 & 0.01 & 105 \\
30.58 & 1.02 & 15.26 & 0.44 & 256 & 5.00 & -5.00 & rbf & 0.62 & 0.01 & 105 \\
11.07 & 0.34 & 1.73 & 0.09 & 4 & 10.00 & -15.00 & rbf & 0.62 & 0.01 & 108 \\
32.02 & 0.63 & 12.66 & 0.56 & 256 & 0.00 & -5.00 & rbf & 0.56 & 0.01 & 109 \\
12.40 & 0.16 & 5.08 & 0.27 & 4 & -5.00 & 0.00 & rbf & 0.55 & 0.01 & 110 \\
11.04 & 0.52 & 2.32 & 0.06 & 4 & 5.00 & -15.00 & rbf & 0.48 & 0.01 & 111 \\
44.42 & 1.45 & 24.44 & 1.18 & 512 & 15.00 & -5.00 & rbf & 0.46 & 0.00 & 112 \\
37.44 & 0.43 & 22.61 & 0.71 & 512 & 10.00 & -5.00 & rbf & 0.46 & 0.00 & 112 \\
42.09 & 1.07 & 21.07 & 0.85 & 512 & 5.00 & -5.00 & rbf & 0.46 & 0.00 & 112 \\
17.35 & 0.23 & 4.71 & 0.11 & 16 & 5.00 & 0.00 & rbf & 0.42 & 0.01 & 115 \\
17.59 & 0.35 & 4.71 & 0.05 & 16 & 15.00 & 0.00 & rbf & 0.42 & 0.01 & 115 \\
17.22 & 0.12 & 4.61 & 0.04 & 16 & 10.00 & 0.00 & rbf & 0.42 & 0.01 & 115 \\
44.66 & 1.22 & 23.29 & 0.56 & 512 & 0.00 & -5.00 & rbf & 0.39 & 0.01 & 118 \\
19.51 & 0.47 & 5.86 & 0.32 & 16 & 0.00 & 0.00 & rbf & 0.38 & 0.01 & 119 \\
10.71 & 0.13 & 3.63 & 0.06 & 4 & -5.00 & -10.00 & rbf & 0.37 & 0.01 & 120 \\
13.53 & 0.42 & 4.00 & 0.35 & 4 & 0.00 & -15.00 & rbf & 0.36 & 0.02 & 121 \\
17.12 & 0.50 & 4.44 & 0.34 & 4 & 5.00 & 5.00 & rbf & 0.34 & 0.01 & 122 \\
16.78 & 0.30 & 4.05 & 0.18 & 4 & 10.00 & 5.00 & rbf & 0.34 & 0.01 & 122 \\
18.46 & 2.10 & 5.13 & 0.75 & 4 & 15.00 & 5.00 & rbf & 0.34 & 0.01 & 122 \\
16.10 & 0.76 & 4.60 & 0.33 & 4 & 0.00 & 5.00 & rbf & 0.32 & 0.01 & 125 \\
18.63 & 0.21 & 4.84 & 0.05 & 32 & 10.00 & 0.00 & rbf & 0.19 & 0.00 & 126 \\
20.68 & 0.70 & 4.92 & 0.07 & 32 & 5.00 & 0.00 & rbf & 0.19 & 0.00 & 126 \\
22.36 & 0.58 & 5.87 & 0.18 & 32 & 15.00 & 0.00 & rbf & 0.19 & 0.00 & 126 \\
16.64 & 0.24 & 5.32 & 0.29 & 32 & 0.00 & 0.00 & rbf & 0.18 & 0.00 & 129 \\
20.19 & 1.12 & 6.95 & 0.70 & 64 & 15.00 & 0.00 & rbf & 0.16 & 0.00 & 130 \\
19.28 & 0.16 & 6.36 & 0.77 & 64 & 5.00 & 0.00 & rbf & 0.16 & 0.00 & 130 \\
21.26 & 1.52 & 5.85 & 0.21 & 64 & 10.00 & 0.00 & rbf & 0.16 & 0.00 & 130 \\
17.34 & 0.63 & 6.00 & 0.17 & 64 & 0.00 & 0.00 & rbf & 0.16 & 0.00 & 133 \\
21.99 & 1.49 & 8.32 & 0.58 & 128 & 5.00 & 0.00 & rbf & 0.15 & 0.00 & 134 \\
21.12 & 0.60 & 7.80 & 0.21 & 128 & 10.00 & 0.00 & rbf & 0.15 & 0.00 & 134 \\
25.10 & 0.71 & 9.52 & 1.36 & 128 & 15.00 & 0.00 & rbf & 0.15 & 0.00 & 134 \\
11.56 & 0.17 & 4.78 & 0.11 & 16 & -5.00 & -15.00 & rbf & 0.15 & 0.00 & 137 \\
16.92 & 0.06 & 4.50 & 0.07 & 8 & 15.00 & 5.00 & rbf & 0.15 & 0.00 & 138 \\
20.18 & 0.78 & 5.25 & 0.82 & 8 & 10.00 & 5.00 & rbf & 0.15 & 0.00 & 138 \\
16.83 & 0.38 & 4.40 & 0.08 & 8 & 5.00 & 5.00 & rbf & 0.15 & 0.00 & 138 \\
13.43 & 0.94 & 5.94 & 0.18 & 64 & -5.00 & -15.00 & rbf & 0.15 & 0.00 & 141 \\
17.33 & 0.83 & 8.54 & 0.77 & 128 & -5.00 & -15.00 & rbf & 0.15 & 0.00 & 142 \\
13.30 & 0.34 & 5.40 & 0.56 & 32 & -5.00 & -15.00 & rbf & 0.15 & 0.00 & 142 \\
16.80 & 0.50 & 5.29 & 0.38 & 8 & 0.00 & 5.00 & rbf & 0.15 & 0.00 & 144 \\
23.54 & 0.92 & 15.98 & 0.91 & 256 & -5.00 & -15.00 & rbf & 0.15 & 0.00 & 145 \\
11.36 & 0.07 & 4.45 & 0.06 & 8 & -5.00 & -15.00 & rbf & 0.15 & 0.00 & 146 \\
19.85 & 1.52 & 7.99 & 0.28 & 128 & 0.00 & 0.00 & rbf & 0.15 & 0.00 & 147 \\
27.08 & 0.77 & 19.92 & 0.43 & 512 & -5.00 & -15.00 & rbf & 0.15 & 0.00 & 148 \\
11.03 & 0.20 & 4.36 & 0.09 & 4 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 149 \\
16.95 & 0.42 & 4.92 & 0.05 & 32 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
19.52 & 1.29 & 5.37 & 0.27 & 32 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
21.07 & 0.47 & 8.03 & 0.12 & 128 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
12.91 & 0.19 & 6.00 & 0.08 & 64 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
12.93 & 0.15 & 5.88 & 0.16 & 64 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
17.89 & 0.42 & 5.02 & 0.12 & 32 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
15.22 & 1.12 & 6.18 & 0.61 & 32 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
12.13 & 0.03 & 5.16 & 0.08 & 32 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
20.80 & 0.44 & 7.74 & 0.34 & 64 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
12.13 & 0.05 & 5.16 & 0.06 & 32 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
17.84 & 0.55 & 8.08 & 0.55 & 128 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
38.17 & 2.80 & 21.36 & 0.56 & 512 & 0.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
33.34 & 1.27 & 22.83 & 0.43 & 512 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
30.86 & 0.80 & 25.89 & 0.73 & 512 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 150 \\
34.99 & 2.30 & 23.40 & 1.80 & 512 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
37.55 & 1.17 & 23.33 & 1.97 & 512 & 5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
34.88 & 1.47 & 22.61 & 1.22 & 512 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
40.39 & 1.06 & 21.87 & 0.57 & 512 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
38.87 & 2.02 & 23.14 & 1.56 & 512 & 10.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
42.60 & 3.30 & 22.25 & 0.58 & 512 & 15.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
40.82 & 1.90 & 23.89 & 0.86 & 512 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
13.18 & 0.23 & 5.91 & 0.09 & 64 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 150 \\
23.83 & 0.54 & 7.85 & 0.12 & 128 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
23.83 & 0.66 & 9.33 & 0.02 & 128 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
15.58 & 0.08 & 6.02 & 0.11 & 64 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
18.70 & 0.26 & 7.46 & 0.30 & 64 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
19.33 & 0.06 & 5.78 & 0.13 & 64 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
21.27 & 0.37 & 12.29 & 0.42 & 256 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
20.72 & 0.16 & 12.10 & 0.61 & 256 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
39.33 & 1.20 & 22.44 & 1.24 & 512 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
21.07 & 0.34 & 12.95 & 0.50 & 256 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 150 \\
23.94 & 1.20 & 12.06 & 0.47 & 256 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
25.49 & 1.69 & 12.61 & 0.57 & 256 & 0.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
30.38 & 1.31 & 14.00 & 1.13 & 256 & 5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
28.18 & 0.53 & 12.44 & 0.57 & 256 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
30.23 & 0.82 & 12.85 & 0.31 & 256 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
31.85 & 0.82 & 14.05 & 1.43 & 256 & 10.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
15.27 & 0.74 & 8.05 & 0.35 & 128 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
27.91 & 1.12 & 13.14 & 1.15 & 256 & 15.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
30.68 & 1.11 & 13.80 & 0.45 & 256 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
15.13 & 0.36 & 8.07 & 0.33 & 128 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
15.73 & 0.41 & 8.12 & 0.28 & 128 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 150 \\
16.97 & 0.17 & 4.76 & 0.09 & 16 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
13.94 & 0.71 & 5.44 & 0.14 & 4 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
11.32 & 0.11 & 4.71 & 0.10 & 16 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
11.39 & 0.11 & 4.74 & 0.06 & 16 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
17.03 & 0.51 & 5.33 & 0.58 & 16 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
17.13 & 0.22 & 4.67 & 0.18 & 16 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
17.36 & 0.30 & 5.20 & 0.57 & 16 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
11.03 & 0.10 & 4.49 & 0.14 & 8 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 150 \\
11.15 & 0.07 & 4.44 & 0.09 & 8 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 150 \\
\end{longtable}
\end{rlandscape}

View File

@@ -0,0 +1,240 @@
\begin{rlandscape}
\centering
\begin{longtable}{
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}}
\caption{Hasil \textit{Coarse Grid-Search} Sensor B diurutkan berdasarkan \textit{rank test score}}
\label{tab:coarse grid results B}
\\
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param pca n components & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endfirsthead
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param pca n components & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endhead
\midrule
\multicolumn{11}{r}{\textit{berlanjut di halaman berikutnya}}
\endfoot
\bottomrule
\bottomrule
\endlastfoot
% Start of table content
39.63 & 1.65 & 2.88 & 0.23 & 512 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 1 \\
30.49 & 1.15 & 2.16 & 0.19 & 512 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 1 \\
29.69 & 0.62 & 1.86 & 0.16 & 512 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 1 \\
20.28 & 1.59 & 1.00 & 0.10 & 256 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 4 \\
22.79 & 0.62 & 1.25 & 0.10 & 256 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 4 \\
23.17 & 0.46 & 1.06 & 0.07 & 256 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 4 \\
11.41 & 0.74 & 0.21 & 0.04 & 64 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 7 \\
14.55 & 0.81 & 0.44 & 0.03 & 128 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 8 \\
11.39 & 0.82 & 0.22 & 0.04 & 64 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 9 \\
12.25 & 0.39 & 0.25 & 0.04 & 64 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 9 \\
15.41 & 1.24 & 0.48 & 0.05 & 128 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 11 \\
14.47 & 0.53 & 0.44 & 0.04 & 128 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 11 \\
41.95 & 1.36 & 3.28 & 0.27 & 512 & 0.00 & -10.00 & rbf & 1.00 & 0.00 & 13 \\
19.77 & 0.88 & 1.10 & 0.06 & 256 & 0.00 & -10.00 & rbf & 1.00 & 0.00 & 14 \\
13.43 & 0.24 & 0.22 & 0.04 & 32 & 5.00 & -10.00 & rbf & 1.00 & 0.00 & 15 \\
11.48 & 1.05 & 0.16 & 0.01 & 32 & 10.00 & -10.00 & rbf & 1.00 & 0.00 & 16 \\
13.80 & 2.12 & 0.21 & 0.02 & 32 & 15.00 & -10.00 & rbf & 1.00 & 0.00 & 16 \\
13.82 & 0.43 & 0.58 & 0.09 & 128 & 0.00 & -10.00 & rbf & 1.00 & 0.00 & 18 \\
32.47 & 4.05 & 1.22 & 0.14 & 512 & 10.00 & -15.00 & rbf & 1.00 & 0.00 & 19 \\
29.99 & 2.05 & 1.12 & 0.10 & 512 & 15.00 & -15.00 & rbf & 1.00 & 0.00 & 20 \\
15.26 & 1.09 & 0.16 & 0.03 & 32 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 21 \\
10.31 & 0.81 & 0.47 & 0.09 & 16 & 15.00 & -5.00 & rbf & 0.99 & 0.00 & 22 \\
10.91 & 0.79 & 0.46 & 0.08 & 16 & 5.00 & -5.00 & rbf & 0.99 & 0.00 & 22 \\
10.91 & 0.32 & 0.41 & 0.02 & 16 & 10.00 & -5.00 & rbf & 0.99 & 0.00 & 22 \\
12.04 & 1.08 & 0.53 & 0.22 & 16 & 0.00 & -5.00 & rbf & 0.99 & 0.00 & 25 \\
21.33 & 2.50 & 0.55 & 0.07 & 256 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 26 \\
12.21 & 0.68 & 2.08 & 0.24 & 32 & 10.00 & -5.00 & rbf & 0.99 & 0.00 & 27 \\
13.43 & 1.14 & 1.80 & 0.16 & 32 & 5.00 & -5.00 & rbf & 0.99 & 0.00 & 27 \\
14.51 & 1.63 & 2.15 & 0.23 & 32 & 15.00 & -5.00 & rbf & 0.99 & 0.00 & 27 \\
12.05 & 0.86 & 1.90 & 0.21 & 32 & 0.00 & -5.00 & rbf & 0.99 & 0.00 & 30 \\
21.03 & 1.59 & 0.57 & 0.05 & 256 & 10.00 & -15.00 & rbf & 0.99 & 0.00 & 31 \\
32.57 & 2.21 & 1.44 & 0.10 & 512 & 5.00 & -15.00 & rbf & 0.99 & 0.00 & 32 \\
21.09 & 1.19 & 0.72 & 0.06 & 256 & 5.00 & -15.00 & rbf & 0.99 & 0.00 & 33 \\
11.04 & 0.86 & 0.12 & 0.02 & 16 & 10.00 & -10.00 & rbf & 0.99 & 0.00 & 34 \\
12.41 & 0.67 & 0.38 & 0.05 & 64 & 0.00 & -10.00 & rbf & 0.99 & 0.00 & 35 \\
14.88 & 0.46 & 0.30 & 0.03 & 128 & 10.00 & -15.00 & rbf & 0.99 & 0.00 & 36 \\
13.66 & 0.29 & 0.16 & 0.04 & 64 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 37 \\
14.38 & 0.46 & 0.26 & 0.04 & 128 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 38 \\
10.82 & 0.53 & 0.18 & 0.03 & 16 & 5.00 & -10.00 & rbf & 0.99 & 0.00 & 39 \\
12.27 & 1.03 & 0.17 & 0.04 & 16 & 15.00 & -10.00 & rbf & 0.99 & 0.00 & 40 \\
18.20 & 0.48 & 0.17 & 0.05 & 16 & 15.00 & -15.00 & rbf & 0.99 & 0.00 & 41 \\
11.42 & 0.55 & 0.32 & 0.06 & 32 & 0.00 & -10.00 & rbf & 0.99 & 0.00 & 42 \\
16.15 & 0.73 & 0.53 & 0.12 & 128 & 5.00 & -15.00 & rbf & 0.99 & 0.00 & 43 \\
11.11 & 1.00 & 2.01 & 0.21 & 16 & -5.00 & -5.00 & rbf & 0.99 & 0.00 & 44 \\
12.20 & 0.69 & 0.19 & 0.04 & 32 & 10.00 & -15.00 & rbf & 0.98 & 0.00 & 45 \\
12.52 & 0.63 & 0.30 & 0.05 & 8 & 0.00 & -5.00 & rbf & 0.98 & 0.00 & 46 \\
11.20 & 0.12 & 0.31 & 0.06 & 64 & 5.00 & -15.00 & rbf & 0.98 & 0.00 & 47 \\
12.93 & 1.15 & 0.22 & 0.03 & 64 & 10.00 & -15.00 & rbf & 0.98 & 0.01 & 48 \\
35.29 & 5.11 & 0.17 & 0.05 & 8 & 15.00 & -10.00 & rbf & 0.98 & 0.00 & 49 \\
10.76 & 0.47 & 0.29 & 0.07 & 8 & 5.00 & -5.00 & rbf & 0.98 & 0.01 & 50 \\
20.97 & 2.37 & 0.24 & 0.09 & 8 & 10.00 & -10.00 & rbf & 0.97 & 0.00 & 51 \\
21.67 & 1.24 & 0.52 & 0.10 & 8 & 10.00 & -5.00 & rbf & 0.97 & 0.00 & 52 \\
11.56 & 0.74 & 0.27 & 0.03 & 8 & 15.00 & -5.00 & rbf & 0.97 & 0.00 & 53 \\
10.98 & 0.41 & 1.36 & 0.17 & 8 & -5.00 & -5.00 & rbf & 0.97 & 0.00 & 54 \\
10.89 & 1.19 & 0.42 & 0.07 & 16 & 0.00 & -10.00 & rbf & 0.97 & 0.00 & 55 \\
10.76 & 0.56 & 0.23 & 0.04 & 16 & 10.00 & -15.00 & rbf & 0.96 & 0.00 & 56 \\
11.71 & 1.25 & 0.39 & 0.13 & 32 & 5.00 & -15.00 & rbf & 0.96 & 0.00 & 57 \\
9.87 & 0.67 & 0.22 & 0.02 & 8 & 5.00 & -10.00 & rbf & 0.96 & 0.01 & 58 \\
20.68 & 0.69 & 6.92 & 0.40 & 256 & -5.00 & -10.00 & rbf & 0.96 & 0.00 & 59 \\
54.74 & 4.07 & 23.94 & 3.67 & 512 & -5.00 & -10.00 & rbf & 0.96 & 0.00 & 60 \\
18.02 & 0.81 & 5.02 & 0.70 & 128 & -5.00 & -10.00 & rbf & 0.95 & 0.00 & 61 \\
19.49 & 1.06 & 5.78 & 0.29 & 64 & 5.00 & -5.00 & rbf & 0.95 & 0.01 & 62 \\
23.89 & 1.21 & 6.69 & 0.32 & 64 & 10.00 & -5.00 & rbf & 0.95 & 0.01 & 62 \\
23.50 & 0.74 & 6.74 & 0.85 & 64 & 15.00 & -5.00 & rbf & 0.95 & 0.01 & 62 \\
43.30 & 1.96 & 12.07 & 0.52 & 512 & 0.00 & -15.00 & rbf & 0.95 & 0.00 & 65 \\
21.28 & 1.21 & 4.60 & 0.07 & 256 & 0.00 & -15.00 & rbf & 0.95 & 0.00 & 66 \\
13.36 & 0.42 & 2.99 & 0.13 & 64 & -5.00 & -10.00 & rbf & 0.95 & 0.00 & 67 \\
22.03 & 0.37 & 6.06 & 0.34 & 64 & 0.00 & -5.00 & rbf & 0.95 & 0.01 & 68 \\
15.26 & 0.59 & 2.88 & 0.15 & 128 & 0.00 & -15.00 & rbf & 0.95 & 0.00 & 69 \\
19.18 & 2.32 & 0.24 & 0.04 & 8 & 15.00 & -15.00 & rbf & 0.94 & 0.01 & 70 \\
13.60 & 0.79 & 2.30 & 0.11 & 32 & -5.00 & -10.00 & rbf & 0.94 & 0.00 & 71 \\
12.06 & 0.47 & 2.24 & 0.19 & 64 & 0.00 & -15.00 & rbf & 0.94 & 0.00 & 72 \\
10.80 & 0.94 & 0.41 & 0.07 & 16 & 5.00 & -15.00 & rbf & 0.94 & 0.00 & 73 \\
11.32 & 0.36 & 1.85 & 0.19 & 32 & 0.00 & -15.00 & rbf & 0.93 & 0.00 & 74 \\
12.67 & 0.51 & 0.75 & 0.12 & 8 & 0.00 & -10.00 & rbf & 0.91 & 0.00 & 75 \\
11.22 & 0.47 & 2.37 & 0.26 & 16 & -5.00 & -10.00 & rbf & 0.90 & 0.01 & 76 \\
9.97 & 0.57 & 0.41 & 0.05 & 8 & 10.00 & -15.00 & rbf & 0.89 & 0.02 & 77 \\
10.36 & 1.08 & 2.16 & 0.34 & 16 & 0.00 & -15.00 & rbf & 0.88 & 0.01 & 78 \\
13.77 & 0.36 & 0.40 & 0.05 & 4 & 5.00 & -5.00 & rbf & 0.88 & 0.01 & 79 \\
10.10 & 0.54 & 0.50 & 0.11 & 4 & 0.00 & -5.00 & rbf & 0.87 & 0.01 & 80 \\
10.38 & 0.95 & 0.58 & 0.09 & 8 & 5.00 & -15.00 & rbf & 0.87 & 0.00 & 81 \\
16.12 & 0.79 & 2.85 & 0.23 & 4 & 0.00 & 0.00 & rbf & 0.86 & 0.01 & 82 \\
26.82 & 2.04 & 0.27 & 0.04 & 4 & 10.00 & -5.00 & rbf & 0.86 & 0.02 & 83 \\
88.21 & 4.01 & 0.32 & 0.03 & 4 & 15.00 & -10.00 & rbf & 0.85 & 0.01 & 84 \\
287.33 & 21.19 & 0.14 & 0.03 & 4 & 15.00 & -5.00 & rbf & 0.85 & 0.02 & 85 \\
15.10 & 0.25 & 0.46 & 0.08 & 4 & 10.00 & -10.00 & rbf & 0.84 & 0.01 & 86 \\
11.62 & 0.69 & 1.85 & 0.11 & 4 & -5.00 & -5.00 & rbf & 0.84 & 0.00 & 87 \\
13.25 & 1.11 & 4.40 & 0.32 & 32 & -5.00 & -5.00 & rbf & 0.83 & 0.01 & 88 \\
19.04 & 0.51 & 2.53 & 0.25 & 4 & 5.00 & 0.00 & rbf & 0.82 & 0.00 & 89 \\
16.86 & 1.29 & 2.60 & 0.23 & 4 & 10.00 & 0.00 & rbf & 0.81 & 0.00 & 90 \\
15.92 & 1.29 & 2.48 & 0.40 & 4 & 15.00 & 0.00 & rbf & 0.81 & 0.00 & 91 \\
12.75 & 1.08 & 0.99 & 0.18 & 4 & 5.00 & -10.00 & rbf & 0.79 & 0.01 & 92 \\
10.57 & 0.60 & 2.52 & 0.23 & 8 & -5.00 & -10.00 & rbf & 0.79 & 0.01 & 93 \\
11.79 & 1.31 & 2.99 & 0.33 & 8 & 0.00 & -15.00 & rbf & 0.78 & 0.01 & 94 \\
28.25 & 0.68 & 10.82 & 0.49 & 128 & 10.00 & -5.00 & rbf & 0.78 & 0.01 & 95 \\
23.91 & 0.24 & 9.31 & 0.32 & 128 & 15.00 & -5.00 & rbf & 0.78 & 0.01 & 95 \\
22.74 & 1.25 & 8.30 & 0.37 & 128 & 5.00 & -5.00 & rbf & 0.78 & 0.01 & 95 \\
23.04 & 1.83 & 0.80 & 0.07 & 4 & 15.00 & -15.00 & rbf & 0.76 & 0.01 & 98 \\
31.40 & 1.74 & 6.17 & 0.29 & 8 & 10.00 & 0.00 & rbf & 0.76 & 0.00 & 99 \\
18.01 & 0.70 & 4.37 & 0.23 & 8 & 5.00 & 0.00 & rbf & 0.76 & 0.00 & 99 \\
23.46 & 2.44 & 6.29 & 0.69 & 8 & 15.00 & 0.00 & rbf & 0.76 & 0.00 & 99 \\
22.90 & 0.83 & 8.79 & 0.48 & 128 & 0.00 & -5.00 & rbf & 0.76 & 0.01 & 102 \\
18.40 & 0.65 & 4.71 & 0.15 & 8 & 0.00 & 0.00 & rbf & 0.74 & 0.01 & 103 \\
11.46 & 0.25 & 1.50 & 0.12 & 4 & 0.00 & -10.00 & rbf & 0.72 & 0.00 & 104 \\
11.15 & 0.41 & 1.16 & 0.05 & 4 & 10.00 & -15.00 & rbf & 0.70 & 0.01 & 105 \\
31.21 & 0.84 & 12.67 & 0.54 & 256 & 10.00 & -5.00 & rbf & 0.62 & 0.01 & 106 \\
29.16 & 0.72 & 13.20 & 0.91 & 256 & 5.00 & -5.00 & rbf & 0.62 & 0.01 & 106 \\
31.63 & 1.84 & 12.80 & 0.43 & 256 & 15.00 & -5.00 & rbf & 0.62 & 0.01 & 106 \\
11.71 & 0.92 & 2.31 & 0.17 & 4 & 5.00 & -15.00 & rbf & 0.59 & 0.01 & 109 \\
28.37 & 0.86 & 13.04 & 0.37 & 256 & 0.00 & -5.00 & rbf & 0.58 & 0.01 & 110 \\
12.91 & 0.17 & 5.06 & 0.26 & 4 & -5.00 & 0.00 & rbf & 0.57 & 0.01 & 111 \\
38.95 & 1.03 & 22.99 & 0.93 & 512 & 15.00 & -5.00 & rbf & 0.52 & 0.01 & 112 \\
43.47 & 1.32 & 21.46 & 1.80 & 512 & 10.00 & -5.00 & rbf & 0.52 & 0.01 & 112 \\
56.13 & 1.93 & 33.40 & 1.80 & 512 & 5.00 & -5.00 & rbf & 0.52 & 0.01 & 112 \\
12.08 & 0.95 & 3.63 & 0.28 & 4 & -5.00 & -10.00 & rbf & 0.49 & 0.01 & 115 \\
59.39 & 3.21 & 37.12 & 2.83 & 512 & 0.00 & -5.00 & rbf & 0.48 & 0.01 & 116 \\
11.15 & 0.54 & 3.39 & 0.30 & 4 & 0.00 & -15.00 & rbf & 0.45 & 0.01 & 117 \\
18.29 & 1.10 & 5.17 & 0.36 & 16 & 5.00 & 0.00 & rbf & 0.41 & 0.04 & 118 \\
18.70 & 0.76 & 5.89 & 0.13 & 16 & 10.00 & 0.00 & rbf & 0.41 & 0.04 & 118 \\
18.46 & 1.11 & 4.63 & 0.34 & 16 & 15.00 & 0.00 & rbf & 0.41 & 0.04 & 118 \\
21.28 & 0.87 & 6.36 & 0.73 & 16 & 0.00 & 0.00 & rbf & 0.37 & 0.04 & 121 \\
20.26 & 1.35 & 4.68 & 0.28 & 4 & 5.00 & 5.00 & rbf & 0.35 & 0.01 & 122 \\
19.26 & 1.28 & 4.61 & 0.50 & 4 & 10.00 & 5.00 & rbf & 0.35 & 0.01 & 122 \\
17.60 & 1.57 & 3.77 & 0.28 & 4 & 15.00 & 5.00 & rbf & 0.35 & 0.01 & 122 \\
17.67 & 1.23 & 5.26 & 0.67 & 4 & 0.00 & 5.00 & rbf & 0.33 & 0.01 & 125 \\
18.94 & 1.56 & 5.17 & 0.14 & 32 & 10.00 & 0.00 & rbf & 0.19 & 0.00 & 126 \\
19.43 & 0.91 & 5.23 & 0.69 & 32 & 5.00 & 0.00 & rbf & 0.19 & 0.00 & 126 \\
19.68 & 0.96 & 5.32 & 0.58 & 32 & 15.00 & 0.00 & rbf & 0.19 & 0.00 & 126 \\
17.64 & 1.11 & 5.61 & 0.50 & 32 & 0.00 & 0.00 & rbf & 0.18 & 0.00 & 129 \\
23.99 & 1.88 & 6.74 & 0.31 & 64 & 15.00 & 0.00 & rbf & 0.16 & 0.00 & 130 \\
19.78 & 0.82 & 5.87 & 0.59 & 64 & 5.00 & 0.00 & rbf & 0.16 & 0.00 & 130 \\
24.28 & 1.97 & 6.50 & 0.72 & 64 & 10.00 & 0.00 & rbf & 0.16 & 0.00 & 130 \\
19.46 & 0.69 & 6.47 & 0.76 & 64 & 0.00 & 0.00 & rbf & 0.15 & 0.00 & 133 \\
22.83 & 0.85 & 6.11 & 0.08 & 8 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 134 \\
25.67 & 2.30 & 5.26 & 0.62 & 8 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 134 \\
18.09 & 1.21 & 4.88 & 0.40 & 8 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 134 \\
26.87 & 2.05 & 9.54 & 0.96 & 128 & 10.00 & 0.00 & rbf & 0.14 & 0.00 & 137 \\
22.82 & 0.80 & 8.18 & 0.34 & 128 & 5.00 & 0.00 & rbf & 0.14 & 0.00 & 137 \\
25.45 & 2.61 & 9.58 & 0.52 & 128 & 15.00 & 0.00 & rbf & 0.14 & 0.00 & 137 \\
14.62 & 0.59 & 4.54 & 0.39 & 8 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 140 \\
21.15 & 1.40 & 9.55 & 0.28 & 128 & 0.00 & 0.00 & rbf & 0.14 & 0.00 & 141 \\
18.70 & 0.74 & 5.94 & 0.31 & 64 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
18.29 & 0.64 & 6.10 & 0.61 & 64 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
19.14 & 1.33 & 6.94 & 0.48 & 64 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
19.40 & 1.95 & 5.37 & 0.34 & 32 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
11.49 & 0.29 & 4.88 & 0.55 & 16 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
19.08 & 1.05 & 5.64 & 0.93 & 32 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
18.01 & 1.11 & 5.22 & 0.55 & 32 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
13.01 & 0.61 & 5.39 & 0.42 & 32 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
16.10 & 0.62 & 6.27 & 0.71 & 32 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
12.40 & 0.63 & 5.41 & 0.49 & 32 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
16.16 & 1.74 & 5.41 & 0.32 & 32 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
22.09 & 0.67 & 8.40 & 0.34 & 64 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
14.87 & 0.62 & 6.54 & 0.79 & 64 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
14.19 & 0.50 & 6.77 & 0.44 & 64 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 142 \\
15.11 & 1.67 & 6.90 & 0.78 & 64 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
28.10 & 1.07 & 9.40 & 0.43 & 128 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
27.71 & 0.36 & 12.87 & 0.48 & 256 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
17.81 & 0.82 & 8.55 & 0.44 & 128 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 142 \\
21.35 & 1.03 & 10.15 & 0.30 & 128 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
24.11 & 1.69 & 14.50 & 0.49 & 256 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
25.28 & 0.52 & 14.40 & 0.46 & 256 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
24.03 & 1.90 & 13.31 & 0.63 & 256 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
21.57 & 0.26 & 13.40 & 0.23 & 256 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 142 \\
45.39 & 1.01 & 22.44 & 0.21 & 512 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
39.60 & 1.70 & 21.35 & 0.61 & 512 & 10.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
37.37 & 1.35 & 22.79 & 0.81 & 512 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
41.59 & 2.41 & 22.59 & 0.84 & 512 & 15.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
51.53 & 1.28 & 34.79 & 2.38 & 512 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
61.98 & 2.19 & 44.70 & 5.92 & 512 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
51.97 & 2.36 & 37.98 & 1.31 & 512 & -5.00 & -5.00 & rbf & 0.14 & 0.00 & 142 \\
54.09 & 1.95 & 34.66 & 1.89 & 512 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
50.43 & 13.46 & 23.31 & 3.95 & 512 & 0.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
34.60 & 0.87 & 25.44 & 1.06 & 512 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
59.12 & 1.76 & 31.10 & 1.85 & 512 & 5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
58.71 & 2.68 & 24.94 & 0.90 & 512 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
14.93 & 0.19 & 6.10 & 0.33 & 64 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
23.19 & 0.99 & 8.43 & 0.42 & 128 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
22.54 & 0.35 & 8.50 & 0.09 & 128 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
28.93 & 1.50 & 12.57 & 0.59 & 256 & 10.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
27.90 & 0.85 & 16.03 & 0.28 & 256 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
25.92 & 1.36 & 13.94 & 1.43 & 256 & 0.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
28.25 & 0.66 & 13.30 & 1.44 & 256 & 5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
28.43 & 1.21 & 14.84 & 0.52 & 256 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
28.60 & 1.12 & 14.25 & 0.72 & 256 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
16.56 & 0.55 & 8.44 & 0.26 & 128 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
16.56 & 0.28 & 8.63 & 0.52 & 128 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
16.76 & 0.18 & 9.79 & 1.45 & 128 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
28.98 & 1.34 & 12.71 & 0.38 & 256 & 15.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
12.07 & 0.43 & 4.74 & 0.50 & 8 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
12.12 & 0.80 & 4.90 & 0.50 & 16 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
17.73 & 0.90 & 4.94 & 0.44 & 16 & 5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
12.43 & 0.77 & 4.76 & 0.41 & 4 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
14.85 & 0.74 & 5.38 & 0.50 & 4 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
12.12 & 0.91 & 5.04 & 0.45 & 16 & -5.00 & 0.00 & rbf & 0.14 & 0.00 & 142 \\
20.29 & 1.26 & 5.73 & 0.74 & 16 & 10.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
11.72 & 0.21 & 4.94 & 0.22 & 8 & -5.00 & -15.00 & rbf & 0.14 & 0.00 & 142 \\
18.29 & 1.29 & 4.66 & 0.41 & 16 & 15.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
12.07 & 0.86 & 4.80 & 0.71 & 8 & -5.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
16.08 & 1.41 & 5.43 & 0.94 & 16 & 0.00 & 5.00 & rbf & 0.14 & 0.00 & 142 \\
\end{longtable}
\end{rlandscape}

View File

@@ -0,0 +1,122 @@
\begin{rlandscape}
% \section*{Hasil Fine Grid Search}
\centering
\begin{longtable}{
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}}
\caption{Hasil \textit{Fine Grid-Search} Sensor A (PCA=32) diurutkan berdasarkan \textit{rank test score}}
\label{tab:fine grid results A}
\\
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endfirsthead
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endhead
\midrule
\multicolumn{10}{r}{\textit{berlanjut di halaman berikutnya}}
\endfoot
\bottomrule
\bottomrule
\endlastfoot
% Start of table content
11.51 & 0.20 & 0.29 & 0.07 & 8.00 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
11.35 & 0.20 & 0.26 & 0.04 & 8.50 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
14.04 & 0.73 & 0.35 & 0.08 & 9.00 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
10.47 & 0.36 & 0.21 & 0.02 & 9.50 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
11.00 & 0.19 & 0.23 & 0.03 & 10.50 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
11.13 & 0.50 & 0.25 & 0.05 & 11.00 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
10.96 & 0.39 & 0.22 & 0.02 & 10.00 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
11.00 & 0.22 & 0.25 & 0.04 & 11.50 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
10.05 & 0.68 & 0.15 & 0.04 & 12.00 & -8.00 & rbf & 1.00 & 0.00 & 1 \\
11.64 & 0.79 & 0.17 & 0.02 & 8.00 & -9.00 & rbf & 0.99 & 0.00 & 10 \\
11.72 & 0.49 & 0.20 & 0.01 & 8.00 & -8.50 & rbf & 0.99 & 0.00 & 11 \\
11.91 & 0.37 & 0.17 & 0.03 & 10.00 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
10.69 & 0.57 & 0.18 & 0.02 & 9.50 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
12.79 & 0.19 & 0.21 & 0.01 & 9.00 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
12.04 & 0.21 & 0.21 & 0.05 & 11.00 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
10.73 & 0.17 & 0.22 & 0.05 & 10.50 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
11.07 & 0.62 & 0.21 & 0.06 & 11.50 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
11.90 & 0.40 & 0.18 & 0.04 & 12.00 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
10.83 & 0.48 & 0.19 & 0.03 & 8.50 & -8.50 & rbf & 0.99 & 0.00 & 12 \\
10.83 & 0.43 & 0.20 & 0.05 & 8.50 & -9.00 & rbf & 0.99 & 0.00 & 20 \\
11.66 & 0.29 & 0.22 & 0.02 & 9.00 & -9.00 & rbf & 0.99 & 0.00 & 21 \\
13.20 & 0.48 & 0.20 & 0.02 & 11.00 & -9.00 & rbf & 0.99 & 0.00 & 21 \\
12.11 & 0.50 & 0.18 & 0.03 & 10.00 & -9.00 & rbf & 0.99 & 0.00 & 21 \\
10.78 & 0.48 & 0.16 & 0.01 & 9.50 & -9.00 & rbf & 0.99 & 0.00 & 21 \\
11.37 & 0.35 & 0.18 & 0.02 & 10.50 & -9.00 & rbf & 0.99 & 0.00 & 21 \\
13.46 & 0.73 & 0.20 & 0.02 & 12.00 & -9.00 & rbf & 0.99 & 0.00 & 21 \\
11.13 & 0.50 & 0.18 & 0.03 & 11.50 & -9.00 & rbf & 0.99 & 0.00 & 21 \\
11.21 & 0.46 & 0.21 & 0.03 & 9.00 & -9.50 & rbf & 0.99 & 0.00 & 28 \\
10.93 & 1.39 & 0.16 & 0.02 & 8.50 & -9.50 & rbf & 0.99 & 0.00 & 29 \\
11.35 & 0.22 & 0.16 & 0.02 & 9.50 & -9.50 & rbf & 0.99 & 0.00 & 30 \\
13.34 & 0.95 & 0.19 & 0.01 & 11.00 & -9.50 & rbf & 0.99 & 0.00 & 31 \\
11.74 & 0.72 & 0.18 & 0.04 & 10.50 & -9.50 & rbf & 0.99 & 0.00 & 31 \\
14.65 & 0.45 & 0.21 & 0.04 & 12.00 & -9.50 & rbf & 0.99 & 0.00 & 31 \\
11.41 & 0.80 & 0.17 & 0.04 & 11.50 & -9.50 & rbf & 0.99 & 0.00 & 31 \\
12.80 & 0.94 & 0.20 & 0.06 & 8.50 & -11.50 & rbf & 0.99 & 0.00 & 35 \\
11.17 & 0.33 & 0.17 & 0.04 & 10.00 & -9.50 & rbf & 0.99 & 0.00 & 36 \\
15.20 & 0.66 & 0.19 & 0.04 & 9.50 & -12.00 & rbf & 0.99 & 0.00 & 37 \\
11.93 & 0.84 & 0.21 & 0.05 & 10.50 & -10.00 & rbf & 0.99 & 0.00 & 37 \\
10.62 & 0.21 & 0.14 & 0.01 & 10.00 & -10.00 & rbf & 0.99 & 0.00 & 39 \\
11.53 & 0.57 & 0.15 & 0.02 & 9.00 & -11.50 & rbf & 0.99 & 0.00 & 40 \\
11.73 & 0.14 & 0.17 & 0.02 & 11.00 & -10.50 & rbf & 0.99 & 0.00 & 41 \\
12.91 & 1.20 & 0.15 & 0.03 & 12.00 & -11.00 & rbf & 0.99 & 0.00 & 41 \\
11.08 & 0.53 & 0.18 & 0.05 & 9.50 & -10.00 & rbf & 0.99 & 0.00 & 43 \\
11.17 & 0.32 & 0.16 & 0.02 & 8.00 & -10.50 & rbf & 0.99 & 0.00 & 44 \\
11.45 & 0.62 & 0.17 & 0.03 & 8.00 & -9.50 & rbf & 0.99 & 0.00 & 45 \\
11.25 & 0.34 & 0.15 & 0.03 & 10.00 & -12.00 & rbf & 0.99 & 0.00 & 46 \\
11.58 & 0.19 & 0.19 & 0.05 & 11.50 & -10.50 & rbf & 0.99 & 0.00 & 47 \\
11.53 & 0.28 & 0.15 & 0.02 & 11.50 & -11.00 & rbf & 0.99 & 0.00 & 48 \\
12.31 & 1.04 & 0.20 & 0.02 & 11.00 & -10.00 & rbf & 0.99 & 0.00 & 49 \\
11.49 & 0.54 & 0.19 & 0.03 & 10.50 & -10.50 & rbf & 0.99 & 0.00 & 49 \\
13.31 & 1.17 & 0.19 & 0.01 & 9.50 & -11.50 & rbf & 0.99 & 0.00 & 51 \\
13.78 & 0.61 & 0.24 & 0.03 & 12.00 & -10.00 & rbf & 0.99 & 0.00 & 52 \\
10.78 & 0.44 & 0.17 & 0.03 & 11.50 & -10.00 & rbf & 0.99 & 0.00 & 52 \\
11.03 & 0.14 & 0.15 & 0.02 & 8.00 & -11.50 & rbf & 0.99 & 0.00 & 54 \\
12.36 & 1.21 & 0.14 & 0.01 & 8.50 & -10.00 & rbf & 0.99 & 0.00 & 55 \\
11.25 & 0.54 & 0.16 & 0.04 & 10.50 & -12.00 & rbf & 0.99 & 0.00 & 56 \\
11.56 & 0.84 & 0.17 & 0.03 & 9.00 & -12.00 & rbf & 0.99 & 0.00 & 57 \\
11.44 & 0.41 & 0.17 & 0.02 & 9.00 & -10.00 & rbf & 0.99 & 0.00 & 58 \\
11.88 & 0.68 & 0.15 & 0.02 & 9.00 & -11.00 & rbf & 0.99 & 0.00 & 59 \\
12.35 & 1.43 & 0.18 & 0.03 & 12.00 & -10.50 & rbf & 0.99 & 0.00 & 60 \\
10.89 & 0.17 & 0.17 & 0.01 & 10.00 & -10.50 & rbf & 0.99 & 0.00 & 61 \\
10.95 & 0.37 & 0.14 & 0.01 & 10.00 & -11.50 & rbf & 0.99 & 0.00 & 62 \\
10.82 & 0.49 & 0.19 & 0.04 & 9.50 & -10.50 & rbf & 0.99 & 0.00 & 63 \\
11.50 & 0.29 & 0.17 & 0.02 & 10.50 & -11.50 & rbf & 0.99 & 0.00 & 64 \\
11.41 & 0.31 & 0.17 & 0.04 & 9.50 & -11.00 & rbf & 0.99 & 0.00 & 64 \\
11.56 & 0.38 & 0.15 & 0.02 & 11.50 & -12.00 & rbf & 0.99 & 0.00 & 66 \\
11.47 & 0.55 & 0.19 & 0.04 & 10.50 & -11.00 & rbf & 0.99 & 0.00 & 66 \\
13.02 & 0.60 & 0.17 & 0.04 & 8.50 & -10.50 & rbf & 0.99 & 0.00 & 66 \\
11.64 & 0.06 & 0.16 & 0.03 & 11.50 & -11.50 & rbf & 0.99 & 0.00 & 66 \\
11.95 & 0.27 & 0.17 & 0.02 & 11.00 & -12.00 & rbf & 0.99 & 0.00 & 70 \\
11.08 & 0.49 & 0.16 & 0.03 & 8.00 & -10.00 & rbf & 0.99 & 0.00 & 70 \\
12.28 & 0.59 & 0.15 & 0.01 & 12.00 & -11.50 & rbf & 0.99 & 0.00 & 70 \\
11.46 & 0.36 & 0.15 & 0.02 & 11.00 & -11.00 & rbf & 0.99 & 0.00 & 73 \\
11.19 & 0.58 & 0.20 & 0.05 & 9.00 & -10.50 & rbf & 0.99 & 0.00 & 74 \\
12.88 & 0.29 & 0.16 & 0.02 & 8.50 & -12.00 & rbf & 0.99 & 0.00 & 75 \\
10.91 & 0.09 & 0.14 & 0.01 & 10.00 & -11.00 & rbf & 0.99 & 0.00 & 76 \\
11.80 & 0.22 & 0.16 & 0.02 & 11.00 & -11.50 & rbf & 0.99 & 0.00 & 77 \\
11.41 & 0.18 & 0.18 & 0.02 & 12.00 & -12.00 & rbf & 0.99 & 0.00 & 78 \\
10.92 & 0.12 & 0.17 & 0.03 & 8.00 & -12.00 & rbf & 0.99 & 0.00 & 79 \\
14.04 & 0.35 & 0.19 & 0.03 & 8.50 & -11.00 & rbf & 0.99 & 0.01 & 80 \\
10.82 & 0.20 & 0.18 & 0.03 & 8.00 & -11.00 & rbf & 0.98 & 0.02 & 81 \\
\end{longtable}
\end{rlandscape}

View File

@@ -0,0 +1,121 @@
\begin{rlandscape}
\centering
\begin{longtable}{
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}
p{0.1\textwidth}}
\caption{Hasil \textit{Fine Grid-Search} Sensor B (PCA=16) diurutkan berdasarkan \textit{rank test score}}
\label{tab:fine grid results A}
\\
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endfirsthead
\toprule
\toprule
mean fit time & std fit time & mean score time & std score time & param svc C & param svc gamma & param svc kernel & mean test score & std test score & rank test score \\
\midrule
\endhead
\midrule
\multicolumn{10}{r}{\textit{berlanjut di halaman berikutnya}}
\endfoot
\bottomrule
\bottomrule
\endlastfoot
% Start of table content
15.05 & 2.17 & 0.51 & 0.10 & 3.00 & -5.50 & rbf & 0.99 & 0.00 & 1 \\
15.58 & 0.88 & 0.66 & 0.16 & 3.00 & -5.00 & rbf & 0.99 & 0.00 & 1 \\
17.69 & 1.83 & 0.86 & 0.18 & 3.50 & -5.00 & rbf & 0.99 & 0.00 & 1 \\
17.31 & 2.43 & 0.81 & 0.27 & 4.00 & -5.00 & rbf & 0.99 & 0.00 & 4 \\
14.79 & 1.40 & 1.23 & 0.21 & 3.00 & -4.50 & rbf & 0.99 & 0.00 & 5 \\
16.52 & 1.10 & 0.58 & 0.21 & 3.50 & -5.50 & rbf & 0.99 & 0.00 & 6 \\
15.97 & 2.50 & 0.42 & 0.12 & 3.00 & -6.00 & rbf & 0.99 & 0.00 & 7 \\
17.13 & 1.43 & 1.42 & 0.29 & 3.50 & -4.50 & rbf & 0.99 & 0.00 & 8 \\
15.20 & 1.24 & 0.53 & 0.16 & 4.00 & -5.50 & rbf & 0.99 & 0.00 & 9 \\
17.55 & 2.71 & 1.51 & 0.44 & 4.00 & -4.50 & rbf & 0.99 & 0.00 & 10 \\
13.33 & 0.43 & 1.04 & 0.12 & 5.00 & -4.50 & rbf & 0.99 & 0.00 & 10 \\
14.88 & 0.76 & 1.17 & 0.10 & 4.50 & -4.50 & rbf & 0.99 & 0.00 & 10 \\
15.24 & 1.19 & 1.12 & 0.22 & 5.50 & -4.50 & rbf & 0.99 & 0.00 & 10 \\
15.48 & 1.94 & 1.15 & 0.08 & 6.00 & -4.50 & rbf & 0.99 & 0.00 & 10 \\
15.71 & 1.53 & 1.30 & 0.17 & 7.00 & -4.50 & rbf & 0.99 & 0.00 & 10 \\
17.31 & 1.39 & 1.49 & 0.16 & 6.50 & -4.50 & rbf & 0.99 & 0.00 & 10 \\
14.48 & 1.24 & 0.47 & 0.15 & 4.00 & -6.00 & rbf & 0.99 & 0.00 & 17 \\
13.91 & 1.43 & 0.33 & 0.07 & 4.00 & -6.50 & rbf & 0.99 & 0.00 & 18 \\
14.88 & 0.72 & 0.45 & 0.08 & 4.50 & -5.50 & rbf & 0.99 & 0.00 & 18 \\
14.17 & 0.99 & 0.64 & 0.05 & 5.00 & -5.00 & rbf & 0.99 & 0.00 & 20 \\
14.58 & 0.84 & 0.70 & 0.02 & 4.50 & -5.00 & rbf & 0.99 & 0.00 & 20 \\
13.31 & 0.80 & 0.68 & 0.14 & 7.00 & -5.00 & rbf & 0.99 & 0.00 & 20 \\
19.03 & 2.56 & 0.68 & 0.17 & 6.00 & -5.00 & rbf & 0.99 & 0.00 & 20 \\
14.79 & 1.28 & 0.68 & 0.05 & 5.50 & -5.00 & rbf & 0.99 & 0.00 & 20 \\
17.23 & 1.01 & 0.77 & 0.09 & 6.50 & -5.00 & rbf & 0.99 & 0.00 & 20 \\
13.35 & 1.06 & 0.23 & 0.05 & 4.50 & -7.00 & rbf & 0.99 & 0.00 & 26 \\
15.12 & 1.35 & 0.26 & 0.05 & 5.00 & -7.00 & rbf & 0.99 & 0.00 & 27 \\
13.77 & 0.96 & 0.40 & 0.07 & 5.00 & -6.00 & rbf & 0.99 & 0.00 & 27 \\
13.31 & 0.72 & 0.31 & 0.05 & 4.50 & -6.50 & rbf & 0.99 & 0.00 & 29 \\
14.02 & 0.96 & 0.28 & 0.04 & 3.50 & -7.00 & rbf & 0.99 & 0.00 & 29 \\
13.48 & 1.41 & 0.39 & 0.10 & 5.00 & -6.50 & rbf & 0.99 & 0.00 & 29 \\
15.94 & 3.48 & 0.36 & 0.12 & 3.00 & -6.50 & rbf & 0.99 & 0.00 & 29 \\
14.91 & 0.68 & 0.38 & 0.03 & 3.50 & -6.50 & rbf & 0.99 & 0.00 & 33 \\
19.28 & 3.10 & 0.30 & 0.07 & 3.00 & -7.00 & rbf & 0.99 & 0.00 & 34 \\
13.49 & 0.87 & 0.23 & 0.06 & 4.00 & -7.00 & rbf & 0.99 & 0.00 & 35 \\
13.84 & 0.70 & 0.48 & 0.05 & 5.00 & -5.50 & rbf & 0.99 & 0.00 & 36 \\
16.10 & 0.82 & 0.50 & 0.13 & 3.50 & -6.00 & rbf & 0.99 & 0.00 & 37 \\
14.78 & 1.20 & 0.61 & 0.06 & 5.50 & -5.50 & rbf & 0.99 & 0.00 & 38 \\
16.82 & 2.34 & 0.52 & 0.12 & 6.00 & -5.50 & rbf & 0.99 & 0.00 & 38 \\
14.90 & 1.36 & 0.46 & 0.06 & 6.50 & -5.50 & rbf & 0.99 & 0.00 & 38 \\
12.47 & 0.28 & 0.41 & 0.03 & 7.00 & -5.50 & rbf & 0.99 & 0.00 & 38 \\
14.96 & 0.84 & 0.25 & 0.02 & 6.00 & -7.00 & rbf & 0.99 & 0.00 & 42 \\
13.57 & 1.58 & 0.38 & 0.11 & 4.50 & -6.00 & rbf & 0.99 & 0.00 & 43 \\
17.85 & 1.20 & 0.26 & 0.04 & 5.50 & -7.00 & rbf & 0.99 & 0.00 & 44 \\
17.20 & 0.40 & 0.41 & 0.05 & 5.50 & -6.50 & rbf & 0.99 & 0.00 & 45 \\
18.66 & 1.06 & 0.58 & 0.06 & 6.00 & -6.00 & rbf & 0.99 & 0.00 & 46 \\
16.02 & 0.88 & 0.39 & 0.12 & 6.00 & -6.50 & rbf & 0.99 & 0.00 & 47 \\
14.46 & 1.11 & 0.24 & 0.05 & 6.50 & -7.00 & rbf & 0.99 & 0.00 & 48 \\
13.45 & 1.56 & 0.39 & 0.05 & 6.50 & -6.50 & rbf & 0.99 & 0.00 & 49 \\
13.74 & 1.04 & 0.21 & 0.03 & 7.00 & -7.00 & rbf & 0.99 & 0.00 & 50 \\
15.99 & 1.92 & 1.70 & 0.27 & 3.50 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
15.82 & 1.46 & 1.69 & 0.19 & 5.50 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
14.77 & 0.73 & 1.63 & 0.17 & 5.00 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
16.90 & 0.93 & 1.99 & 0.20 & 4.50 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
17.19 & 1.39 & 1.73 & 0.16 & 6.50 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
18.28 & 1.01 & 2.04 & 0.42 & 7.00 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
14.20 & 1.10 & 1.50 & 0.10 & 6.00 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
16.36 & 2.05 & 1.91 & 0.40 & 3.00 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
16.89 & 0.94 & 1.79 & 0.41 & 4.00 & -4.00 & rbf & 0.99 & 0.00 & 51 \\
12.72 & 0.90 & 0.31 & 0.07 & 7.00 & -6.50 & rbf & 0.99 & 0.00 & 60 \\
15.35 & 2.01 & 0.43 & 0.07 & 5.50 & -6.00 & rbf & 0.99 & 0.00 & 61 \\
14.36 & 0.67 & 0.41 & 0.05 & 6.50 & -6.00 & rbf & 0.99 & 0.00 & 62 \\
13.48 & 0.75 & 0.36 & 0.06 & 7.00 & -6.00 & rbf & 0.99 & 0.00 & 63 \\
15.55 & 0.98 & 2.57 & 0.25 & 6.00 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
16.90 & 2.86 & 3.15 & 0.54 & 3.50 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
20.47 & 0.65 & 3.69 & 0.67 & 4.50 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
17.26 & 2.11 & 3.20 & 0.25 & 4.00 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
16.86 & 1.06 & 2.80 & 0.35 & 3.00 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
16.37 & 0.57 & 2.73 & 0.23 & 5.50 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
15.84 & 1.13 & 2.65 & 0.22 & 6.50 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
18.78 & 1.67 & 2.97 & 0.92 & 7.00 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
16.36 & 0.32 & 3.23 & 0.69 & 5.00 & -3.50 & rbf & 0.99 & 0.00 & 64 \\
17.62 & 0.96 & 3.91 & 0.46 & 6.00 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
18.16 & 0.90 & 4.26 & 0.21 & 5.50 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
21.16 & 1.28 & 4.15 & 0.45 & 4.50 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
20.53 & 2.31 & 4.70 & 0.50 & 5.00 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
19.49 & 0.88 & 3.72 & 0.96 & 3.50 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
18.95 & 0.97 & 4.17 & 0.30 & 3.00 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
19.88 & 1.32 & 3.57 & 0.35 & 4.00 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
17.70 & 1.30 & 3.50 & 0.29 & 6.50 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
17.71 & 2.48 & 2.51 & 0.12 & 7.00 & -3.00 & rbf & 0.98 & 0.00 & 73 \\
\end{longtable}
\end{rlandscape}

View File

@@ -1,41 +1,18 @@
2 %Nomor % No.
\thecustomcounter
%for mult rows & % Judul
Real-Time Vibration-Based Structural Damage Detection Using One-Dimensional Convolutional Neural Networks
& %Judul Jurnal &
Real-time vibration-based structural damage detection using one-dimensional convolutional neural networks \href{https://doi.org/10.1016/j.jsv.2016.10.043}{10.1016/j.jsv. O. Abdeljaber, et al (2017)
2016.10.043} & % Konteks paper
%for mult rows
% & %Author
% % Satish B Satpal; Yogesh Khandare; Anirban Guha; Sauvik Banerjee
% %for mult rows
% & %Nama Jurnal
% International Journal of Advanced Structural Engineering (IJASE)
% %for mult rows
% & %Sumber
% \href{http://dx.doi.org/10.1186/2008-6695-5-2}{ResearchGate}
% %for mult rows
% & %Tahun
% 2020
% %for mult rows
& %Tujuan penelitian
Mengidentifikasi lokasi kerusakan struktur secara \textit{real-time} dengan memproses sinyal getaran mentah yang diambil dari jaringan-jaringan akselerometer pada setiap titik tanpa proses tambahan atau ekstraksi fitur.
& %Kesimpulan
% Studi ini menilai kemampuan mesin vektor pendukung untuk memprediksi intensitas kerusakan dan lokasi pada balok kantilever. Meskipun berhasil memprediksi kerusakan dengan sedikit kesalahan, tingkat kebisingan dan lokasi kerusakan memengaruhi keakuratan. Tingkat kebisingan yang tinggi mempengaruhi kinerja secara signifikan, terutama pada intensitas kerusakan yang lebih rendah.
& % Gap Research
\begin{enumerate} \begin{enumerate}
\item Riset ini hanya dilakukan dengan \textit{full-grid array} akselerometer yang diletakkan pada setiap \textit{node} kerusakan, sehingga memerlukan banyak perangkat akselerometer. \item Data percepatan dari 30 sensor akselerometer
\item Menghasilkan 30 model CNN terpisah
\item Tidak ada komparasi performa efisiensi dan akurasi dengan algoritma pembelajaran mesin lain yang lebih populer sebelumnya. \item Deteksi kerusakan struktur grid menggunakan 1D-CNN dengan raw data
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Data percepatan hanya dari 5 sensor ujung-ujung
\item 2 model SVM untuk deteksi multi-lokasi
\item SVM + STFT dengan PCA untuk pendekatan ringan dan cepat
\end{enumerate} \end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Structural Damage Identification Based on Variational Mode DecompositionHilbert Transform and CNN
&
Y. Diao, et al (2023)
& % Konteks paper
\begin{enumerate}
\item Deteksi kerusakan menggunakan kombinasi VMD dan Hilbert Transform
\item Fitur hasil ekstraksi digunakan untuk CNN
\item Tujuan: efisiensi tinggi dan akurasi deteksi kerusakan
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Gunakan STFT sebagai alternatif VMD-HT
\item Fokus pada sensor terbatas dan model ringan
\item Kombinasi PCA dan SVM untuk efisiensi training
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Vibration-Based Loosening Detection of a Multi-Bolt Structure Using Machine Learning Algorithms
&
O. Eraliev, et al (2022)
& % Konteks paper
\begin{enumerate}
\item Deteksi kelonggaran baut pada motor multi-baut
\item Data getaran pada berbagai kondisi operasi (8001200 rpm)
\item Ekstraksi fitur menggunakan STFT
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Deteksi kerusakan pada struktur grid, bukan motor
\item Dataset dengan skenario multi-lokasi (joint)
\item Optimasi STFT dan reduksi dimensi PCA untuk efisiensi komputasi
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Data-Driven Support Vector Machine with Optimization Techniques for Structural Health Monitoring and Damage Detection
&
G. Gui, et al (2017)
& % Konteks paper
\begin{enumerate}
\item Deteksi kerusakan struktur sipil berskala besar
\item Optimasi SVM menggunakan \textit{grid-search}, PSO, dan GA
\item Fitur diperoleh dari model autoregresif (AR)
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Optimasi multi-objektif akurasi vs efisiensi komputasi
\item Fitur berbasis domain waktu-frekuensi (STFT + PCA)
\item SVM-RBF dengan parameter dioptimasi melalui grid-search halus
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Vibration Data Feature Extraction and Deep Learning-Based Preprocessing Method for Highly Accurate Motor Fault Diagnosis
&
J. G. Jang, et al (2023)
& % Konteks paper
\begin{enumerate}
\item Diagnosis kegagalan motor listrik berbasis getaran
\item Preprocessing menggunakan \textit{denoising autoencoder}
\item Klasifikasi dengan \textit{one-class SVM}
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Fokus pada sistem SHM struktural, bukan mesin berputar
\item Menggunakan PCA sebagai denoising
\item Klasifikasi multi-class SVM dalam kondisi sensor terbatas
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Image-based Bolt-loosening Detection Technique of Bolt Joint in Steel Bridges %2
&
J. H. Park, et al (2015)
& % Konteks paper
\begin{enumerate} %7
\item Deteksi rotasi baut-baut yang longgar pada joint jembatan baja
\item Data citra digital (\textit{computer vision})
\item Ekstraksi fitur dengan Hough transform
\end{enumerate}
& % Gap research yang akan dilakukan berdasarkan konteks tujuan dan kesimpulan penelitian yang di "mention" di atas
\begin{enumerate}
\item Inspeksi anomali/kerusakan joint % <- mentioning: Deteksi rotasi baut yang longgar pada jembatan baja
\item Data \textit{vibration-based} % <- mentioning: citra digital
\item Ekstraksi fitur dengan STFT % <- mentioning: Ekstraksi fitur dengan Hough transform
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Machine Learning-Driven Structural Health Monitoring: STFT-based Feature Extraction for Damage Detection
&
R. Katam, et al (2025)
& % Konteks paper
\begin{enumerate}
\item Deteksi kerusakan pada balok kantilever skala kecil
\item Data getaran dianalisis dengan FFT dan STFT
\item Reduksi dimensi menggunakan \textit{autoencoder}, klasifikasi SVM
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Aplikasi pada struktur grid dengan banyak sambungan
\item Reduksi dimensi menggunakan PCA, bukan \textit{autoencoder}
\item Evaluasi efisiensi STFT + SVM untuk sensor terbatas
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Hardware Acceleration for 1D-CNN Based Real-Time Edge Computing
&
X. Liu, et al (2022)
& % Konteks paper
\begin{enumerate}
\item Akselerasi perangkat keras untuk CNN 1D di sistem \textit{edge computing}
\item Fokus pada pemrosesan data getaran real-time
\item Optimasi performa model melalui paralelisasi
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Pengurangan kebutuhan komputasi melalui metode klasik
\item Fokus pada optimasi perangkat lunak (SVM-RBF + PCA)
\item Desain sistem efisien tanpa akselerator khusus
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Bolt-Loosening Monitoring Framework Using an Image-Based Deep Learning and Graphical Model
&
H. C. Pham, et al (2020)
& % Konteks paper
\begin{enumerate}
\item Deteksi kelonggaran baut menggunakan model grafis dan citra sintetis
\item Pelatihan model \textit{deep learning} dengan data sintetik
\item Aplikasi pada jembatan baja berskala penuh
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Penggunaan sinyal getaran untuk pengujian realistik
\item Fokus pada deteksi multi-lokasi menggunakan data fisik
\item Model efisien tanpa kebutuhan data citra besar
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Performance Comparison of 1D and 2D Convolutional Neural Networks for Real-Time Classification of Time Series Sensor Data
&
S. M. Shahid, et al (2022)
& % Konteks paper
\begin{enumerate}
\item Perbandingan arsitektur 1D dan 2D CNN untuk klasifikasi data sensor
\item Fokus pada kecepatan inferensi dan akurasi real-time
\item Data getaran multi-kanal sebagai input
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Substitusi CNN dengan SVM untuk efisiensi komputasi
\item Integrasi STFT sebagai fitur domain waktufrekuensi
\item Evaluasi trade-off akurasi vs waktu latih
\end{enumerate}

View File

@@ -1,68 +1,18 @@
1 % No.
\thecustomcounter
%for mult rows & % Judul
Statistical Feature Extraction in Machine Fault Detection Using Vibration Signal
&
Statistical Feature Extraction in Machine Fault Detection using Vibration Signal (\href{https://doi.org/10.1109/ICTC49870.2020.9289285}{10.1109/ICTC49870.
2020.9289285})
%for mult rows
% &
% Donghui Xu; Xiang Xu; Michael C. Forde; Antonio Caballero
%for mult rows
% &
% Construction and Building Materials
% %for mult rows
% &
% \href{https://doi.org/10.1016/j.conbuildmat.2023.132596}{ScienceDirect}
% %for mult rows
% &
% 2023
% %for mult rows
&
\begin{enumerate}[series=enum]
\item Menginvestigasi cara mengklasifikasi kondisi \textit{gearbox} normal dan rusak menggunakan sinyal getaran berbasis pada kombinasi antara analisis statistik dan FFT dengan algoritma pembelajaran mesin (ANN, Logistic Regression, dan SVM)
\item Mengurangi waktu latih dan kompleksitas kalkulasi dengan analisis statistik sebagai input data meliputi sembilan fitur: mean, median, min, max, kurtosis, \textit{skewness}, \textit{standard deviation}, and \textit{range}.
\end{enumerate}
&
\begin{enumerate}[series=enum2]
\item Nilai \textit{maximum} dan kurtosis adalah fitur yang paling signifikan untuk mengklasifikasi kelas label pembelajaran mesin.
\item ANN meraih akurasi 100\% pada input FFT penuh dan analisis statistik, sedangkan Regresi Logistik (LR) dan SVM meraih akurasi 100\% dengan input FFT penuh namun hanya mendapat akurasi 91\% dengan input analisis statistik
\end{enumerate}
& &
B. Van, et al (2020)
& % Konteks paper
\begin{enumerate} \begin{enumerate}
\item Lorem \item Deteksi kerusakan \textit{gearbox} menggunakan sinyal getaran
\item Ipsum \item Ekstraksi fitur statistik dari hasil FFT
\item Klasifikasi menggunakan ANN, LR, dan SVM
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Fokus pada struktur sipil dengan sambungan multi-joint
\item Gunakan STFT untuk representasi waktufrekuensi
\item Evaluasi SVM-RBF dengan optimasi hyperparameter
\end{enumerate} \end{enumerate}
%-------------page break----------------
% \\
% &
% &
% &
% &
% &
% &
% &
% \begin{enumerate}[resume=enum]
% \item Menyajikan berbagai perkembangan penelitian, mendiskusikan dan membandingkannya kelebihan dan kekurangannya
% \item Meringkas kesesuaian berbagai metode pembelajaran mesin untuk masalah SHM yang berbeda
% \item Terakhir, tren masa depan
% \end{enumerate}
% &
% \begin{enumerate}[resume=enum2]
% \item SVM dan hutan acak kurang mendapat perhatian dibandingkan dengan jaringan saraf. Ini digunakan untuk klasifikasi kerusakan. Namun, pemrosesan awal data jauh lebih rumit.
% \end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Review of Bolted Connection Monitoring
&
T. Wang, et al (2013)
& % Konteks paper
\begin{enumerate}
\item Tinjauan metode pemantauan sambungan baut
\item Teknik akustoelastik dan piezoelektrik untuk mendeteksi kelonggaran
\item Fokus pada metode non-destruktif berbasis sensor aktif
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Perluasan ke deteksi anomali berbasis getaran
\item Penggunaan sensor pasif untuk efisiensi sistem
\item Implementasi pembelajaran mesin untuk klasifikasi kerusakan
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Data-Driven Feature Extraction for Analog Circuit Fault Diagnosis Using 1-D CNN
&
H. Yang, et al (2020)
& % Konteks paper
\begin{enumerate}
\item Ekstraksi fitur otomatis menggunakan CNN 1D
\item Data sinyal dari sirkuit analog untuk diagnosis kerusakan
\item Model berbasis \textit{data-driven feature learning}
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Gunakan fitur terinterpretable (STFT) untuk deteksi kerusakan struktural
\item Pendekatan berbasis \textit{feature engineering}, bukan \textit{feature learning}
\item Optimasi model klasik (SVM) untuk efisiensi dan akurasi tinggi
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Autonomous Bolt Loosening Detection Using Deep Learning
&
Y. Zhang, et al (2020)
& % Konteks paper
\begin{enumerate}
\item Deteksi kelonggaran baut menggunakan citra dan \textit{Faster R-CNN}
\item Dataset gambar dengan dua kondisi (kencang vs longgar)
\item Validasi deteksi real-time berbasis kamera
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Pendekatan berbasis sinyal getaran, bukan citra
\item Deteksi multi-lokasi pada struktur kompleks
\item Integrasi STFT + PCA + SVM untuk efisiensi komputasi
\end{enumerate}

View File

@@ -0,0 +1,18 @@
% No.
\thecustomcounter
& % Judul
Bolt Loosening Angle Detection Technology Using Deep Learning
&
X. Zhao, et al (2019)
& % Konteks paper
\begin{enumerate}
\item Deteksi sudut rotasi kepala baut menggunakan \textit{deep learning}
\item Sistem berbasis \textit{convolutional neural network} (CNN)
\item Mengandalkan data visual dari orientasi baut
\end{enumerate}
& % Gap research
\begin{enumerate}
\item Beralih ke data getaran untuk menghindari keterbatasan visual
\item Deteksi kelonggaran multi-sambungan dengan sinyal percepatan
\item Penggunaan fitur waktufrekuensi (STFT) untuk klasifikasi SVM
\end{enumerate}

View File

@@ -1,54 +1,18 @@
\documentclass[12pt,a4paper]{report} \begin{rlandscape}
\usepackage{hyperref} \begin{customcounterenv}
\usepackage[top=1cm,right=3cm,bottom=1cm,left=3cm]{geometry}
\usepackage{multirow}
\usepackage{array}
% \usepackage{makecell}
\usepackage{pdflscape}
\usepackage{longtable,booktabs}
\usepackage{colortbl,xcolor}
\usepackage{enumitem}
\usepackage{pdfpages}
\usepackage{caption}
\usepackage[bahasa]{babel}
\usepackage{xpatch,csquotes}
\usepackage[backend=biber]{biblatex}
\addbibresource{export.bib}
\DeclareSourcemap{
\maps[datatype = bibtex]{
\map{
\step[fieldsource = abstract,
match = \regexp{([^\\])\%},
replace = \regexp{\$1\\\%}]
}
}
}
% \usepackage{tablefootnote}
% \usepackage{showframe}
\definecolor{Gray}{gray}{0.95}
\newcolumntype{a}{>{\columncolor{Gray}}p}
\renewcommand{\thefootnote}{\textit{\alph{footnote}}}
% \newcolumntype{b}{>{\raggedright\arraybackslash}p}
\title{Tugas 2 \\ Metode Penelitian}
\author{Rifqi Damar Panuluh \\ 20210110224}
\begin{document}
\maketitle
\begin{landscape}
% Table generated by Excel2LaTeX from sheet 'Sheet1' % Table generated by Excel2LaTeX from sheet 'Sheet1'
% \begin{table}[h] % \begin{table}[h]
\centering \centering
\begin{longtable}{ \begin{longtable}{
>{\raggedleft\arraybackslash}p{0.02\linewidth} %1 >{\raggedleft\arraybackslash}p{0.02\linewidth} %1
>{\raggedright\arraybackslash}a{0.1\linewidth} %2 >{\raggedright\arraybackslash}a{0.2\linewidth} %2
% >{\raggedright\arraybackslash}p{0.1\linewidth} %3 % >{\raggedright\arraybackslash}p{0.1\linewidth} %3
% >{\raggedright\arraybackslash}a{0.075\linewidth} %4 % >{\raggedright\arraybackslash}a{0.075\linewidth} %4
% p{0.065\linewidth} %5 % p{0.065\linewidth} %5
% >{\raggedleft\arraybackslash}p{0.05\linewidth} %6 % >{\raggedleft\arraybackslash}p{0.05\linewidth} %6
>{\raggedright\arraybackslash}p{0.25\linewidth} %7 >{\raggedright\arraybackslash}p{0.1\linewidth} %7
>{\raggedright\arraybackslash}a{0.25\linewidth} %8 >{\raggedright\arraybackslash}a{0.275\linewidth} %8
>{\raggedright\arraybackslash}p{0.25\linewidth} %9 >{\raggedright\arraybackslash}p{0.275\linewidth} %9
} }
\caption{Tinjauan pustaka, topik: pemanfaatan data getaran untuk monitor kesehatan struktur jembatan} \caption{Tinjauan pustaka, topik: pemanfaatan data getaran untuk monitor kesehatan struktur jembatan}
@@ -60,20 +24,12 @@
No. %1 No. %1
& &
Judul %2 Judul %2
% &
% Nama Penulis %3
% &
% Nama Jurnal %4
% &
% Sumber %5
% &
% Tahun %6
& &
Tujuan Penelitian %7 Penulis
& &
Kesimpulan %8 Konteks Penelitian %7
& &
Gap Research %9 Konteks Penelitian yang akan dilakukan %8
\\\midrule \\\midrule
\endfirsthead \endfirsthead
@@ -82,399 +38,69 @@
No. %1 No. %1
& &
Judul %2 Judul %2
% &
% Nama Penulis %3
% &
% Nama Jurnal %4
% &
% Sumber %5
% &
% Tahun %6
& &
Tujuan Penelitian %7 Penulis
& &
Kesimpulan %8 Konteks Penelitian %7
&
Konteks Penelitian yang akan dilakukan %8
\\\midrule \\\midrule
\endhead \endhead
\midrule \midrule
\multicolumn{4}{r}{\textit{berlanjut di halaman berikutnya}} \multicolumn{5}{r}{\textit{berlanjut di halaman berikutnya}}
\endfoot \endfoot
\bottomrule \bottomrule
\bottomrule \bottomrule
\endlastfoot \endlastfoot
% %-------------page break----------------
\input{appendix/important/jhpark2015.tex}
\\
%-----1 %-----1
\input{important/van2020} \input{appendix/important/van2020}
\\ \\
%-----2 %-----2
\input{important/abdeljaber2017} \input{appendix/important/abdeljaber2017}
\\ \\
%------3 %-----3
\input{appendix/important/diao2023.tex}
\\ \\
3 %-----4
\input{appendix/important/eraliev2022.tex}
& %Judul Jurnal
Real-time nondestructive structural health monitoring using support vector machines and wavelets (Ahmet Bulut; Ambuj K. Singh; Peter Shin; Tony Fountain; Hector Jasso; Linjun Yan; Ahmed Elgamal)
%for mult rows
% & %Author
% Ahmet Bulut; Ambuj K. Singh; Peter Shin; Tony Fountain; Hector Jasso; Linjun Yan; Ahmed Elgamal
%for mult rows
% & %Nama Jurnal
% Case Studies in Construction Materials 13 (2020) e00406
% %for mult rows
% & %Sumber
% SPIE
% %for mult rows
% & %Tahun
% 2005
%for mult rows
& %Tujuan penelitian
Eksplorasi efektivitas SVM dalam deteksi kerusakan; Validasi model SVM dengan data nyata jembatan
& %Kesimpulan
\begin{enumerate} [series=enum]
\item SVM menunjukkan akurasi tinggi dalam mengidentifikasi lokasi kerusakan
\item Rekomendasi untuk penyetelan parameter SVM
\end{enumerate}
%-----------4
\\ \\
4 %-----5
\input{appendix/important/gui2017.tex}
& %Judul Jurnal
A novel approach of Structural Health Monitoring by the application of FFT and wavelet transform using an index of frequency dispersion (Fragkiskos P. Pentaris; John Stonham; John P. Makris)
%for mult rows
% & %Author
% Fragkiskos P. Pentaris; John Stonham; John P. Makris
%for mult rows
% & %Nama Jurnal
% International Journal of Geology
% %for mult rows
% & %Sumber
% Research Gate
% %for mult rows
% & %Tahun
% 2013
%for mult rows
& %Tujuan penelitian
\begin{enumerate}
\item Memeriksa peran FFT dalam pemrosesan awal data getaran
\item Menilai dampak FFT terhadap keakuratan deteksi kerusakan
\end{enumerate}
& %Kesimpulan
\begin{enumerate} [series=enum]
\item FFT meningkatkan rasio \textit{signal-to-noise} dan meningkatkan deteksi kerusakan.
\item Menyarankan integrasi dengan algoritme lain untuk meningkatkan akurasi.
\end{enumerate}
\\ %-------------page break----------------
%-----------4
\\ \\
5 %-----6
\input{appendix/important/jang2023.tex}
& %Judul Jurnal
Review of Vibration-Based Structural Health Monitoring Using Deep Learning (Gyungmin Toh; Junhong Park)
%for mult rows
% & %Author
% Gyungmin Toh;
% Junhong Park
% %for mult rows
% & %Nama Jurnal
% Apllied Sciences
% %for mult rows
% & %Sumber
% MDPI
% %for mult rows
% & %Tahun
% 2020
%for mult rows
& %Tujuan penelitian
\begin{enumerate}
\item ringkasan studi penerapan algoritma pembelajaran mesin untuk kesalahan pemantauan (\textit{monitoring}) menggunakan faktor getaran untuk mengkategorikan penelitian.
\item Menyediakan interpretasi singkat tentang jaringan saraf dalam untuk pengaplikasian lebih lanjut dalam analisis getaran struktural.
\end{enumerate}
& %Kesimpulan
\begin{enumerate} [series=enum]
\item Deep learning has the advantage of being able to perform health monitoring on complex structures with high accuracy.
\end{enumerate}
%-------------page break----------------
%-----------4
\\ \\
6 %-----7
\input{appendix/important/katam2025.tex}
& %Judul Jurnal \\
A deep learning approach to condition monitoring of cantilever beams via time-frequency extended signatures (Habil. Darian M. Onchis) %-----8
\input{appendix/important/liu2022.tex}
%for mult rows \\
%-----9
% & %Author \input{appendix/important/pham2020.tex}
% Habil. Darian M. Onchis \\
%-----10
% %for mult rows \input{appendix/important/shahid2022.tex}
\\
% & %Nama Jurnal %-----11
% Computers in Industry \input{appendix/important/wang2013.tex}
\\
% %for mult rows %-----12
\input{appendix/important/yang2020.tex}
% & %Sumber \\
% Science Direct %-----13
\input{appendix/important/zhang2020.tex}
% %for mult rows \\
%-----14
% & %Tahun \input{appendix/important/zhao2019.tex}
% 2019
%for mult rows
& %Tujuan penelitian
\begin{enumerate}
\item ringkasan studi penerapan algoritma pembelajaran mesin untuk kesalahan pemantauan (\textit{monitoring}) menggunakan faktor getaran untuk mengkategorikan penelitian.
\item Menyediakan interpretasi singkat tentang jaringan saraf dalam untuk pengaplikasian lebih lanjut dalam analisis getaran struktural.
\end{enumerate}
& %Kesimpulan
\begin{enumerate} [series=enum]
\item Deep learning has the advantage of being able to perform health monitoring on complex structures with high accuracy.
\end{enumerate}
\\ %-------------page break----------------
% %------------5
% 5
% & %Judul Jurnal
% Advances and development trends in eco-friendly pavements
% %for mult rows
% & %Author
% Aimin Sha, Zhuangzhuang Liu, Wei Jiang, Lin Qi, Liqun Hu, Wenxiu Jiao ,Diego Maria Barbieri
% %for mult rows
% & %Nama Jurnal
% Journal of Road Engineering 1 (2021)
% %for mult rows
% & %Sumber
% ScienceDirect
% %for mult rows
% & %Tahun
% 2021
% %for mult rows
% & %Tujuan penelitian
% Mengembangkan solusi teknis untuk mengatasi tantangan yang terkait dengan penciptaan infrastruktur hijau dan berkelanjutan, misalnya, pengurangan dampak lingkungan, peningkatan keselamatan lalu lintas, dan efisiensi transportasi, dll.\cite{Sha2021}
% &
% \begin{enumerate} [series=enum]
% \item Temuan penelitian terbaru terkait jalan ramah lingkungan
% trotoar diringkas dan dibahas sesuai dengan enam kunci yang berbeda
% karakteristik: permeabel, pengurangan kebisingan, luminescence diri, knalpot
% dekomposisi, penyerapan panas rendah serta \textit{anti-icing} / \textit{de-icing}.\cite{Sha2021}
% \end{enumerate}
% \\
% & %Judul Jurnal
% Advances and development trends in eco-friendly pavements
% %for mult rows
% & %Author
% Aimin Sha, Zhuangzhuang Liu, Wei Jiang, Lin Qi, Liqun Hu, Wenxiu Jiao ,Diego Maria Barbieri
% %for mult rows
% & %Nama Jurnal
% Journal of Road Engineering 1 (2021)
% %for mult rows
% & %Sumber
% ScienceDirect
% %for mult rows
% & %Tahun
% 2021
% %for mult rows
% & %Tujuan penelitian
% Mengembangkan solusi teknis untuk mengatasi tantangan yang terkait dengan penciptaan infrastruktur hijau dan berkelanjutan, misalnya, pengurangan dampak lingkungan, peningkatan keselamatan lalu lintas, dan efisiensi transportasi, dll.\cite{Sha2021}
% &
% \begin{enumerate}[resume=enum]
% \item Teknologi ini dapat memecahkan beberapa tantangan utama yang terkait dengan konstruksi jalan dan lalu lintas (misalnya, kebisingan, efek pulau panas, dan pembangkitan polusi). Sebagian besar solusi saat ini hanya tersedia menampilkan satu fungsi ramah lingkungan pada satu waktu.\cite{Sha2021}
% \end{enumerate}
% %-----------5
% \\
% 5
% & %Judul Jurnal
% Micromobility injury events: Motor vehicle crashes and other transportation systems factors
% %for mult rows
% & %Author
% Kevin Fang
% %for mult rows
% & %Nama Jurnal
% Transportation Research Interdisciplinary Perspectives 14 (2022) 100574
% %for mult rows
% & %Sumber
% ScienceDirect
% %for mult rows
% & %Tahun
% 2022
% %for mult rows
% & %Tujuan penelitian
% Menginformasikan transportasi strategi kebijakan untuk mencoba dan meningkatkan kinerja keselamatan, Dengan cara mengeksplorasi keadaan di mana cedera pengendara mikromobilitas mengalami cederanya, dengan fokus pada faktor-faktor yang berkaitan dengan sistem transportasi.\cite{Fang2022}
% &
% \begin{enumerate} [series=enum]
% \item Kecelakaan kendaraan bermotor secara mengejutkan menjulang sebagai sesuatu yang kemungkinan adalah faktor umum dalam cedera mikromobilitas. Masalah perkerasan, konflik
% dengan pengguna non-otomatis, dan medan juga muncul sebagai faktor cedera yang terukur.\cite{Fang2022}
% \end{enumerate}
% \\
% & %Judul Jurnal
% Micromobility injury events: Motor vehicle crashes and other transportation systems factors
% %for mult rows
% & %Author
% Kevin Fang
% %for mult rows
% & %Nama Jurnal
% Transportation Research Interdisciplinary Perspectives 14 (2022) 100574
% %for mult rows
% & %Sumber
% ScienceDirect
% %for mult rows
% & %Tahun
% 2022
% %for mult rows
% & %Tujuan penelitian
% Menginformasikan transportasi strategi kebijakan untuk mencoba dan meningkatkan kinerja keselamatan, Dengan cara mengeksplorasi keadaan di mana cedera pengendara mikromobilitas mengalami cederanya, dengan fokus pada faktor-faktor yang berkaitan dengan sistem transportasi.\cite{Fang2022}
% &
% \begin{enumerate} [resume=enum]
% \item Di antara faktor-faktor yang berhubungan dengan transportasi, analisis regresi
% menunjukkan bahwa terluka dalam kecelakaan kendaraan bermotor atau di medan berbukit
% sesuai dengan kemungkinan yang lebih besar dari rawat inap dan cedera kepala.\cite{Fang2022}
% \end{enumerate}
% \\
% & %Judul Jurnal
% Micromobility injury events: Motor vehicle crashes and other transportation systems factors
% %for mult rows
% & %Author
% Kevin Fang
% %for mult rows
% & %Nama Jurnal
% Transportation Research Interdisciplinary Perspectives 14 (2022) 100574
% %for mult rows
% & %Sumber
% ScienceDirect
% %for mult rows
% & %Tahun
% 2022
% %for mult rows
% & %Tujuan penelitian
% Menginformasikan transportasi strategi kebijakan untuk mencoba dan meningkatkan kinerja keselamatan, Dengan cara mengeksplorasi keadaan di mana cedera pengendara mikromobilitas mengalami cederanya, dengan fokus pada faktor-faktor yang berkaitan dengan sistem transportasi.\cite{Fang2022}
% &
% \begin{enumerate} [resume=enum]
% \item Mitigasi yang berhasil yang memaksimalkan kinerja mode keselamatan mikromobilitas dapat membantu menarik dan mempertahankan pengguna dan menjaga kepercayaan dari pembuat kebijakan yang peduli keselamatan.\cite{Fang2022}
% \end{enumerate}
% \end{tabular}
\end{longtable} \end{longtable}
\end{customcounterenv}
% \end{table} % \end{table}
\end{landscape} \end{rlandscape}
\clearpage
\pagenumbering{roman}
\setcounter{page}{2}
\thispagestyle{empty}
\printbibliography
\clearpage
\begin{titlepage}
\
\vfill
\centering\noindent \Huge{LAMPIRAN}
\vfill
\
\end{titlepage}
% \clearpage % \clearpage
@@ -506,4 +132,3 @@
% \centering % \centering
% \frame{\includegraphics[page=1,scale=.7]{assets/1-s2.0-S2590198222000379-main.pdf}} % \frame{\includegraphics[page=1,scale=.7]{assets/1-s2.0-S2590198222000379-main.pdf}}
% \captionof{figure}{Halaman pertama jurnal kelima} % \captionof{figure}{Halaman pertama jurnal kelima}
\end{document}

View File

@@ -14,6 +14,24 @@
file = {C:\Users\damar\Zotero\storage\5WG6DL7B\Abdeljaber et al. - 2017 - Real-time vibration-based structural damage detect.pdf} file = {C:\Users\damar\Zotero\storage\5WG6DL7B\Abdeljaber et al. - 2017 - Real-time vibration-based structural damage detect.pdf}
} }
@article{gui2017,
title = {Data-Driven Support Vector Machine with Optimization Techniques for Structural Health Monitoring and Damage Detection},
author = {Gui, Guoqing and Pan, Hong and Lin, Zhibin and Li, Yonghua and Yuan, Zhijun},
date = {2017-02-01},
journaltitle = {KSCE Journal of Civil Engineering},
shortjournal = {KSCE Journal of Civil Engineering},
volume = {21},
number = {2},
pages = {523--534},
issn = {1226-7988},
doi = {10.1007/s12205-017-1518-5},
url = {https://www.sciencedirect.com/science/article/pii/S1226798824047913},
urldate = {2025-09-29},
abstract = {Rapid detecting damages/defeats in the large-scale civil engineering structures, assessing their conditions and timely decision making are crucial to ensure their health and ultimately enhance the level of public safety. Advanced sensor network techniques recently allow collecting large amounts of data for structural health monitoring and damage detection, while how to effectively interpret these complex sensor data to technical information posts many challenges. This paper presents three optimization-algorithm based support vector machines for damage detection. The optimization algorithms, including grid-search, partial swarm optimization and genetic algorithm, are used to optimize the penalty parameters and Gaussian kernel function parameters. Two types of feature extraction methods in terms of time-series data are selected to capture effective damage characteristics. A benchmark experimental data with the 17 different scenarios in the literature were used for verifying the proposed data-driven methods. Numerical results revealed that all three optimized machine learning methods exhibited significantly improvement in sensitivity, accuracy and effectiveness over conventional methods. The genetic algorithm based SVM had a better prediction than other methods. Two different feature methods used in this study also demonstrated the appropriate features are crucial to improve the sensitivity in detecting damage and assessing structural health conditions. The findings of this study are expected to help engineers to process big data and effectively detect the damage/defects, and thus enable them to make timely decision for supporting civil infrastructure management practices.},
keywords = {data-driven modeling,optimization,structural health monitoring and damage detection,support vector machine learning},
file = {C\:\\Users\\damar\\Zotero\\storage\\V8PP7XRS\\Gui et al. - 2017 - Data-driven support vector machine with optimizati.pdf;C\:\\Users\\damar\\Zotero\\storage\\KMM2Q6NT\\S1226798824047913.html}
}
@book{geron2019, @book{geron2019,
title = {Hands-on Machine Learning with {{Scikit-Learn}}, {{Keras}}, and {{TensorFlow}}: Concepts, Tools, and Techniques to Build Intelligent Systems}, title = {Hands-on Machine Learning with {{Scikit-Learn}}, {{Keras}}, and {{TensorFlow}}: Concepts, Tools, and Techniques to Build Intelligent Systems},
shorttitle = {Hands-on Machine Learning with {{Scikit-Learn}}, {{Keras}}, and {{TensorFlow}}}, shorttitle = {Hands-on Machine Learning with {{Scikit-Learn}}, {{Keras}}, and {{TensorFlow}}},
@@ -172,6 +190,41 @@
file = {C\:\\Users\\damar\\Zotero\\storage\\59EASW6K\\Avci et al. - 2021 - A review of vibration-based damage detection in ci.pdf;C\:\\Users\\damar\\Zotero\\storage\\GQZUKPQN\\10.1016@j.ymssp.2020.107077.pdf.pdf} file = {C\:\\Users\\damar\\Zotero\\storage\\59EASW6K\\Avci et al. - 2021 - A review of vibration-based damage detection in ci.pdf;C\:\\Users\\damar\\Zotero\\storage\\GQZUKPQN\\10.1016@j.ymssp.2020.107077.pdf.pdf}
} }
@inproceedings{van2020,
title = {Statistical {{Feature Extraction}} in {{Machine Fault Detection}} Using {{Vibration Signal}}},
booktitle = {2020 {{International Conference}} on {{Information}} and {{Communication Technology Convergence}} ({{ICTC}})},
author = {Van, Bui and Van Hoa, Nguyen and Nguyen, Huy and Jang, Yeong Min},
date = {2020-10},
pages = {666--669},
issn = {2162-1233},
doi = {10.1109/ICTC49870.2020.9289285},
url = {https://ieeexplore.ieee.org/document/9289285/figures#figures},
urldate = {2024-08-26},
abstract = {Gearbox faults are one of the most common types in the industrial factory environment. Early detection of these faults allows fast replacement rather than a costly emergency. Nowadays, early machine fault detection application is improving due to the improvement of the IoT network and real-time analysis. The vibration signal is collected from Spectra Quest's Gearbox Prognostics Simulator and analyzed for fault classification. The preprocessing includes fast Fourier transform and statistical feature extraction. The AI algorithms are Artificial Neural Network, Logistic Regression, and Support Vector Machine. The highest accuracy reached is 100\%.},
eventtitle = {2020 {{International Conference}} on {{Information}} and {{Communication Technology Convergence}} ({{ICTC}})},
keywords = {ANN,Fault detection,Feature extraction,LR,Machine Learning,Manufacturing,Production facilities,Real-time systems,Support vector machines,SVM,Vibration Signal,Vibrations},
file = {C\:\\Users\\damar\\Zotero\\storage\\TW69QG8K\\van2020.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\AZM769D7\\figures.html}
}
@article{katam2025,
title = {Machine Learning-Driven Structural Health Monitoring: {{STFT-based}} Feature Extraction for Damage Detection},
shorttitle = {Machine Learning-Driven Structural Health Monitoring},
author = {Katam, Rakesh and Pasupuleti, Venkata Dilip Kumar and Kalapatapu, Prafulla},
date = {2025-08},
journaltitle = {Structures},
shortjournal = {Structures},
volume = {78},
pages = {109244},
issn = {23520124},
doi = {10.1016/j.istruc.2025.109244},
url = {https://linkinghub.elsevier.com/retrieve/pii/S2352012425010586},
urldate = {2025-06-05},
abstract = {Structural health monitoring (SHM) is essential for ensuring the safety and durability of engineering structures by enabling early identification of damage. This research presents a novel approach that integrates experimental testing, signal processing, and machine learning to enhance damage detection in cantilever beams, mainly when working with limited datasets. Vibration-based time-series data (VBTSD) are gathered from damaged and un­ damaged beams, utilizing fast fourier transform (FFT) and short-time fourier transform (STFT) for frequencydomain analysis. While FFT delivers a comprehensive spectral overview, STFT provides a focused timefrequency analysis, effectively capturing transient structural changes that are critical for early damage detec­ tion. To manage the high-dimensional STFT feature space, an autoencoder is utilized to extract compressed yet informative representations while preserving essential frequency-magnitude variations. The resulting encoded features are then used to train a support vector machine (SVM) classifier, achieving an impressive 98 \% accuracy in predicting the presence of structural damage. The proposed framework is designed to function effectively even with limited data availability, ensuring robustness in real-world SHM applications where data collection is often restricted. The high-resolution frequency selectivity offered by STFT surpasses traditional methods such as wavelet transforms and standalone FFT, making it exceptionally suitable for real-time damage detection. This research highlights the combination of vibration-based feature extraction and machine learning, resulting in a scalable, data-efficient, and computationally feasible approach for SHM. The results aid in the progression of automated damage classification, presenting a practical and dependable resource to improve structural resilience and safety within civil engineering applications.},
langid = {english},
file = {C:\Users\damar\Zotero\storage\U2WHH4SL\Katam et al. - 2025 - Machine learning-driven structural health monitori.pdf}
}
@inproceedings{bulut2005, @inproceedings{bulut2005,
title = {Real-Time Nondestructive Structural Health Monitoring Using Support Vector Machines and Wavelets}, title = {Real-Time Nondestructive Structural Health Monitoring Using Support Vector Machines and Wavelets},
author = {Bulut, Ahmet and Singh, Ambuj K. and Shin, Peter and Fountain, Tony and Jasso, Hector and Yan, Linjun and Elgamal, Ahmed}, author = {Bulut, Ahmet and Singh, Ambuj K. and Shin, Peter and Fountain, Tony and Jasso, Hector and Yan, Linjun and Elgamal, Ahmed},
@@ -774,22 +827,20 @@
file = {C\:\\Users\\damar\\Zotero\\storage\\6XITVIKY\\toh2020.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\9L9KXB7V\\Toh and Park - 2020 - Review of Vibration-Based Structural Health Monito.pdf} file = {C\:\\Users\\damar\\Zotero\\storage\\6XITVIKY\\toh2020.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\9L9KXB7V\\Toh and Park - 2020 - Review of Vibration-Based Structural Health Monito.pdf}
} }
@inproceedings{van2020, @book{oppenheim2010,
title = {Statistical {{Feature Extraction}} in {{Machine Fault Detection}} Using {{Vibration Signal}}}, title = {Discrete-Time Signal Processing},
booktitle = {2020 {{International Conference}} on {{Information}} and {{Communication Technology Convergence}} ({{ICTC}})}, editor = {Oppenheim, Alan V. and Schafer, Ronald W.},
author = {Van, Bui and Van Hoa, Nguyen and Nguyen, Huy and Jang, Yeong Min}, date = {2010},
date = {2020-10}, series = {Prentice {{Hall}} Signal Processing Series},
pages = {666--669}, edition = {3. ed},
issn = {2162-1233}, publisher = {Pearson},
doi = {10.1109/ICTC49870.2020.9289285}, location = {Upper Saddle River Munich},
url = {https://ieeexplore.ieee.org/document/9289285/figures#figures}, isbn = {978-0-13-198842-2},
urldate = {2024-08-26}, langid = {english},
abstract = {Gearbox faults are one of the most common types in the industrial factory environment. Early detection of these faults allows fast replacement rather than a costly emergency. Nowadays, early machine fault detection application is improving due to the improvement of the IoT network and real-time analysis. The vibration signal is collected from Spectra Quest's Gearbox Prognostics Simulator and analyzed for fault classification. The preprocessing includes fast Fourier transform and statistical feature extraction. The AI algorithms are Artificial Neural Network, Logistic Regression, and Support Vector Machine. The highest accuracy reached is 100\%.}, pagetotal = {1108}
eventtitle = {2020 {{International Conference}} on {{Information}} and {{Communication Technology Convergence}} ({{ICTC}})},
keywords = {ANN,Fault detection,Feature extraction,LR,Machine Learning,Manufacturing,Production facilities,Real-time systems,Support vector machines,SVM,Vibration Signal,Vibrations},
file = {C\:\\Users\\damar\\Zotero\\storage\\TW69QG8K\\van2020.pdf.pdf;C\:\\Users\\damar\\Zotero\\storage\\AZM769D7\\figures.html}
} }
@article{vos2022, @article{vos2022,
title = {Vibration-Based Anomaly Detection Using {{LSTM}}/{{SVM}} Approaches}, title = {Vibration-Based Anomaly Detection Using {{LSTM}}/{{SVM}} Approaches},
author = {Vos, Kilian and Peng, Zhongxiao and Jenkins, Christopher and Shahriar, Md Rifat and Borghesani, Pietro and Wang, Wenyi}, author = {Vos, Kilian and Peng, Zhongxiao and Jenkins, Christopher and Shahriar, Md Rifat and Borghesani, Pietro and Wang, Wenyi},

View File

@@ -1,63 +0,0 @@
\chapter{TINJAUAN PUSTAKA DAN LANDASAN TEORI}
\section{Tinjauan Pustaka}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.5\linewidth]{frontmatter/img/slice1.jpg}
\caption{Enter Caption}
\label{fig:enter-label}
\end{figure}
\section{Dasar Teori}
This chapter discusses the theoretical basis used in this research, including signal processing techniques and machine learning algorithms. These foundations form the core of the method used for vibration-based damage localization in a beam structure.
\subsection{Short-Time Fourier Transform (STFT)}
The Short-Time Fourier Transform (STFT) is a fundamental technique used to analyze non-stationary signals, such as those generated by structures under dynamic load or white noise excitation. While the traditional Fourier Transform provides frequency-domain information, it lacks time resolution. STFT overcomes this limitation by applying the Fourier Transform over short overlapping segments of the signal, thereby producing a time-frequency representation.
Mathematically, the STFT of a signal $x(t)$ is given by:
\begin{equation}
X(t, \omega) = \int_{-\infty}^{\infty} x(\tau) w(\tau - t) e^{-j \omega \tau} d\tau
\end{equation}
where $w(\tau - t)$ is a window function centered at time $t$, and $\omega$ is the angular frequency.
In this study, the STFT is employed to extract the time-frequency features of the vibration signals collected from the structure. These features are then used as inputs to machine learning classifiers. This process captures localized frequency content over time, which is crucial in identifying structural changes due to damage.
\subsection{Classification Algorithms}
This research evaluates five classical machine learning algorithms to perform the classification task of damage localization. Each algorithm has different strengths and limitations, and their performance is benchmarked to identify the most suitable one for the given dataset.
\subsubsection{Support Vector Machine (SVM)}
SVM is a supervised learning algorithm that seeks an optimal hyperplane that separates data into classes with maximum margin. SVM performs well in high-dimensional spaces and is robust to overfitting, especially in cases with a clear margin of separation.
SVM is appropriate for vibration signal classification due to its capability to handle nonlinear decision boundaries when equipped with kernel functions.
\subsubsection{K-Nearest Neighbors (KNN)}
KNN is a non-parametric, instance-based learning algorithm. It classifies a new data point based on the majority vote of its $k$ nearest neighbors in the feature space. Although simple, KNN can be effective when the data is well-distributed and class boundaries are smooth.
Its performance is sensitive to the choice of $k$ and distance metric. For high-dimensional data like STFT features, dimensionality reduction or careful scaling may be required.
\subsubsection{Decision Tree (DT)}
Decision Tree is a rule-based classifier that splits data into classes using feature thresholds. It builds a tree where each internal node represents a feature, each branch a decision rule, and each leaf a class label. DTs are easy to interpret and can capture non-linear relationships.
However, they are prone to overfitting, especially with noisy or small datasets.
\subsubsection{Random Forest (RF)}
Random Forest is an ensemble learning method based on constructing multiple decision trees during training and outputting the mode of the classes for classification. It improves the generalization capability of individual trees and reduces overfitting.
RF is suitable for damage detection as it provides robustness to noise and variance, making it ideal for real-world sensor data.
\subsubsection{Naïve Bayes (NB)}
Naïve Bayes is a probabilistic classifier based on Bayes' theorem, assuming feature independence. Despite its simplicity, it often performs well in high-dimensional problems and with small datasets.
NB is particularly effective when class-conditional independence holds approximately, which may occur when STFT features are well-separated in distribution.
\bigskip
These theoretical foundations provide the methodological framework for implementing and evaluating the proposed damage localization system in this research. The combination of time-frequency analysis using STFT and classical machine learning classifiers enables an efficient and interpretable approach to structural health monitoring.
% \subsubsection{Dolor}

View File

@@ -1,67 +0,0 @@
\chapter{METODE PENELITIAN}
\section{Bahan dan Materi}
Penelitian ini menggunakan data sekunder dari \textcite{abdeljaber2017}, yang tersedia secara publik dan diperoleh melalui eksperimen menggunakan \textit{Queen's 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:original-data}.
\begin{figure}[!ht]
\centering
\includegraphics[width=0.5\textwidth]{chapters/img/original_data.png}
\caption{Overview of the original data used from Abdeljaber et al. (2017)}
\label{fig:original-data}
\end{figure}
\clearpage
\section{Alat}
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, SciPy, dan Pandas} digunakan untuk manipulasi sinyal dan perhitungan numerik.
\item \textbf{Matplotlib} digunakan untuk menghasilkan spektrum STFT (Short-Time Fourier Transform).
\item \textbf{PyTorch 2.3} digunakan untuk membangun dan melatih model dengan algoritma pemelajaran mesin klasik.
\item \textbf{Google Colab / Komputer Lokal} digunakan untuk pelatihan model dan percobaan eksperimental.
\end{itemize}
% \section{Place and Time}
% This research was conducted between [Month] and [Month] 2025 at the [Your Lab or Campus] using publicly available data. No new data collection was performed. All computational processes, including preprocessing, model training, and evaluation, were executed using Google Colab and a local machine.
\section{Langkah-Langkah Penelitian}
Alur keseluruhan penelitian ini dilakukan melalui tahapan-tahapan sebagai berikut:
\begin{enumerate}
\item \textbf{Akuisisi Data:} Mengunduh dataset dari Abdeljaber et al. yang berisi sinyal percepatan untuk 31 kondisi struktur (1 kondisi sehat dan 30 kondisi kerusakan tunggal).
\item \textbf{Seleksi Sensor:} Memilih sinyal dari sejumlah sensor terbatas pada garis vertikal tertentu (misalnya, node 1 dan 26) untuk mensimulasikan konfigurasi sensor yang direduksi.
\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}
\section{Data Analysis}
The processed data were analyzed using classification metrics. The trained model's output was evaluated based on the ability to correctly identify damaged vs. undamaged scenarios. The main metrics used were:
\begin{itemize}
\item \textbf{Accuracy:} Overall correct predictions across all classes.
\item \textbf{Confusion Matrix:} To visualize classification performance across damage cases.
\item \textbf{Precision and Recall:} For measuring the model's performance in detecting damage cases specifically.
\end{itemize}
Additionally, experiments were repeated for varying numbers of sensors to simulate reduced-sensor configurations, analyzing how model performance changed with less input data.

View File

@@ -19,70 +19,62 @@ Semakin tinggi tingkat identifikasi kerusakan, semakin besar pula kebutuhan akan
% Penelitian ini difokuskan pada lima tahapan identifikasi kerusakan, dengan tujuan untuk mengembangkan pendekatan yang lebih komprehensif terhadap diagnosis kerusakan dan peningkatan akurasi pelokasian (Tingkat 2), sekaligus mengoptimalkan strategi penempatan sensor dan perancangan algoritma guna mencapai efisiensi biaya yang lebih tinggi. % Penelitian ini difokuskan pada lima tahapan identifikasi kerusakan, dengan tujuan untuk mengembangkan pendekatan yang lebih komprehensif terhadap diagnosis kerusakan dan peningkatan akurasi pelokasian (Tingkat 2), sekaligus mengoptimalkan strategi penempatan sensor dan perancangan algoritma guna mencapai efisiensi biaya yang lebih tinggi.
\par Dalam konteks pengembangan sistem \acrshort{shm} yang efektif, perlu memperhatikan elemen struktural yang rentan terhadap kerusakan namun sering kali terabaikan dalam pemantauan konvensional. % <- Transition sentence \par Dalam konteks pengembangan sistem \acrshort{shm} yang efektif, perlu memperhatikan elemen struktural yang rentan terhadap kerusakan namun sering kali terabaikan dalam pemantauan konvensional. % <- Transition sentence
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. % <- Target 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. % <- Target
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. % <- closing sentences 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 \gls{shm} yang responsif dan adaptif terhadap dinamika kerusakan struktural. % <- closing sentences
\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 Berbagai pendekatan telah dikembangkan untuk mendeteksi kelonggaran baut, mulai dari inspeksi manual hingga teknik otomatis berbasis sensor. Meskipun setiap metode memiliki keunggulan masing-masing, tantangan tetap ada dalam hal efisiensi, akurasi, dan implementasi praktis. Pendekatan berbasis getaran (\textit{vibration-based}) yang menjadi fokus penelitian ini telah terbukti efektif dalam mendeteksi kelonggaran baut pada tahap awal \parencite{nichols2004,razi2013}, dengan menganalisis data akselerasi struktur yang diperoleh dari sensor pada titik-titik strategis dalam sistem grid.
\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 Meskipun pendekatan \textit{deep learning} menunjukkan hasil yang menjanjikan dalam SHM, tantangan komputasi dan efisiensi implementasi masih menjadi perhatian utama. Penelitian ini mengusulkan pendekatan alternatif yang menekankan keseimbangan antara akurasi deteksi dan efisiensi komputasi melalui penggunaan sensor terbatas dan algoritma pembelajaran mesin klasik yang telah terbukti efektif.
\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.
\indent Penelitian ini mengadopsi strategi pengurangan jumlah sensor dengan tetap mempertahankan kemampuan deteksi yang akurat. Data getaran diproses menggunakan transformasi \gls{stft} untuk ekstraksi fitur domain waktu-frekuensi, yang kemudian diklasifikasikan menggunakan \gls{svm} dengan optimasi \textit{hyperparameter} sistematis. Pendekatan ini diharapkan dapat memberikan solusi praktis untuk implementasi SHM yang efisien dan ekonomis.
\section{Rumusan Masalah} \section{Rumusan Masalah}
Untuk memandu arah penelitian ini, beberapa permasalahan utama yang akan dibahas adalah sebagai berikut: Untuk memandu arah penelitian ini, beberapa permasalahan utama yang akan dibahas adalah sebagai berikut:
\begin{enumerate} \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 fitur domain waktu-frekuensi yang diekstraksi melalui transformasi \gls{stft} dari sinyal getaran sensor terbatas (hanya sensor-sensor atas dan bawah) masih mampu merepresentasikan karakteristik kerusakan struktur dengan akurasi yang memadai untuk klasifikasi tujuh kelas kondisi struktur (tanpa kerusakan dan enam lokasi kerusakan berbeda)?
\item Apakah penggabungan data dari beberapa jalur kolom dapat meningkatkan kemampuan generalisasi model, meskipun jumlah sensor pada tiap jalur dibatasi? \item Bagaimana mengoptimalkan parameter model \gls{svm} dengan kernel \gls{rbf} melalui strategi pencarian \textit{grid} dua tahap untuk mencapai keseimbangan optimal antara akurasi klasifikasi dan efisiensi komputasi, khususnya dalam hal kompleksitas model ditinjau dari ukuran model, waktu pelatihan, dan prediksi?
\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? \item Apakah pendekatan reduksi dimensi menggunakan \gls{pca} dapat mempertahankan informasi diskriminatif yang cukup dari fitur \gls{stft} berdimensi tinggi untuk mendukung klasifikasi kerusakan secara akurat dengan model yang lebih efisien?
\item Seberapa efektif model yang dilatih pada satu dataset dapat digeneralisasi untuk mendeteksi kerusakan pada data uji independen?
\end{enumerate} \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} \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. 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}. Dataset yang dipublikasi terdiri dari 31 kondisi struktur: satu kondisi tanpa kerusakan dan 30 kondisi dengan kerusakan tunggal pada masing-masing \textit{joint} yang berbeda, sehingga kerusakan ganda tidak termasuk dalam cakupan penelitian ini.
Parameter STFT yang digunakan tidak dioptimalkan secara menyeluruh, melainkan diadopsi dari studi sebelumnya \parencite{eraliev2022} serta nilai $k$ tetap pada \textit{stratified k-fold} yang diambil berdasarkan \textcite{Kohavi1995ASO}. Selain itu, penelitian ini membatasi penggunaan algoritma pembelajaran mesin pada satu model klasik \gls{svm} dengan kernel RBF tanpa membandingkannya dengan algoritma lain, untuk fokus pada optimasi \textit{hyperparameter} dan efisiensi komputasi berdasarkan waktu latih, waktu prediksi, dan jumlah fitur tanpa menganalisis waktu kompleksitas (\textit{time complexity}) algoritma secara mendalam.
\section{Tujuan Penelitian} \section{Tujuan Penelitian}
\begin{enumerate} \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 Mengembangkan alur sistem (\textit{pipeline}) pemantauan \gls{shm} yang dilimitasi dengan hanya menggunakan sepasang sensor di ujung-ujung struktur agar mampu mengklasifikasikan tujuh kondisi struktur berbeda dengan akurasi tinggi.
% \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 Mengimplementasikan dan mengoptimalkan model \gls{svm} dengan kernel \gls{rbf} melalui strategi pencarian \textit{grid} dua tahap (\textit{coarse} dan \textit{fine grid-search}) untuk mencapai konfigurasi optimal parameter regularisasi ($C$), parameter kernel ($\gamma$), dan jumlah komponen PCA ($n_{components}$).
% \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 Mengevaluasi efektivitas transformasi STFT sebagai metode ekstraksi fitur domain waktu-frekuensi untuk menangkap karakteristik getaran yang relevan dengan kondisi kerusakan struktur, serta menganalisis kontribusi reduksi dimensi PCA terhadap efisiensi waktu komputasi model.
% \item Menyertakan data dari setiap grup kolom ke dalam data pelatihan untuk membentuk satu model umum yang dapat digunakan untuk seluruh grup kolom. \item Menganalisis trade-off antara akurasi model dan efisiensi komputasi melalui metrik efisiensi yang mempertimbangkan waktu pelatihan, serta mengevaluasi kemampuan generalisasi model melalui validasi silang antar-dataset independen.
\item Mengeksplorasi kemungkinan generalisasi satu model terhadap berbagai jalur kolom hanya dengan memanfaatkan data dari sensor pada kedua ujung kolom. \item Memvalidasi bahwa pendekatan sensor terbatas dengan algoritma pembelajaran mesin klasik dapat mencapai performa klasifikasi yang kompetitif dibandingkan metode yang menggunakan instrumentasi sensor penuh, sehingga memberikan solusi yang lebih praktis dan ekonomis untuk implementasi SHM.
\end{enumerate} \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} \section{Manfaat Penelitian}
Penelitian ini memberikan beberapa manfaat yang diharapkan dapat berkontribusi dalam pengembangan sistem deteksi kerusakan struktur, antara lain: Penelitian ini memberikan beberapa manfaat yang diharapkan dapat berkontribusi dalam pengembangan sistem deteksi kerusakan struktur, antara lain:
\begin{enumerate} \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 Efisiensi Instrumentasi: Penelitian ini membuktikan bahwa pengurangan sensor dari 30 menjadi sepuluh sensor (lima sensor atas dan bawah) dapat mempertahankan akurasi klasifikasi di atas 99\%, sehingga memberikan solusi yang lebih ekonomis untuk implementasi SHM skala besar.
\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 Optimasi Sistematis: Melalui pendekatan optimasi \textit{hyperparameter} dua tahap dan analisis metrik efisiensi, penelitian ini menyediakan metodologi sistematis untuk mencapai keseimbangan optimal antara akurasi model (>99\%) dan efisiensi komputasi (pengurangan waktu pelatihan hingga 75\%).
\item Studi ini membuktikan bahwa algoritma pembelajaran mesin klasik seperti \gls{svm}, KNN, dan LDA masih mampu memberikan performa model yang kompetitif dalam klasifikasi kerusakan, apabila dipadukan dengan ekstraksi fitur yang tepat. % \item Efektifitas Ekstraksi Fitur: Penelitian ini mendemonstrasikan bahwa transformasi STFT dengan parameter optimized (window Hanning 1024 sampel, hop size 512) mampu mengekstrak fitur domain waktu-frekuensi yang diskriminatif untuk klasifikasi kerusakan struktur tanpa kehilangan informasi signifikan.
\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 Validasi Generalisasi: Melalui evaluasi silang antar-dataset independen, penelitian ini memvalidasi kemampuan generalisasi model SVM-RBF yang dapat diterapkan pada kondisi struktur yang belum pernah dilihat sebelumnya, dengan tetap mempertahankan akurasi tinggi.
\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. % \item Baseline Metodologis: Rangkaian eksperimen komprehensif dan analisis performa yang disajikan dapat dijadikan referensi atau \textit{baseline} untuk studi komparatif selanjutnya, khususnya dalam pengembangan sistem SHM dengan pendekatan sensor terbatas dan algoritma klasik yang efisien.
\item Kemudahan Implementasi \textit{Pipeline}: Hasil penelitian ini memberikan panduan untuk implementasi sistem SHM yang dinilai \textit{cost-effective}, dengan menyediakan parameter model optimal dan strategi deployment yang telah tervalidasi untuk struktur \textit{grid} skala kecil yang diharapkan dapat diadaptasi untuk aplikasi struktur di lapangan.
\item Kontribusi Akademis: Penelitian ini menambah khazanah ilmu pengetahuan dalam bidang teknik sipil khususnya pada \gls{shm} dan \textit{computer science} dengan fokus pada deteksi kerusakan sambungan baut menggunakan pendekatan sensor terbatas dan algoritma \gls{ml} klasik.
\end{enumerate} \end{enumerate}

View File

@@ -1,26 +1,84 @@
\chapter{Tinjauan Pustaka dan Landasan Teori} \chapter{Tinjauan Pustaka dan Landasan Teori}
\section{Tinjauan Pustaka} \section{Tinjauan Pustaka}
% \input{chapters/id/02_literature_review/index}
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}. \subsection{Kerangka Kerja Structural Health Monitoring}
\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}. \gls{shm} yang efektif mengikuti pendekatan hierarkis untuk mengidentifikasi dan menilai kerusakan struktural. Menurut \textcite{rytter1993}, lima tingkatan dalam kerangka kerja SHM adalah: (1) deteksi keberadaan kerusakan, (2) lokalisasi kerusakan, (3) identifikasi tipe kerusakan, (4) kuantifikasi tingkat keparahan, dan (5) prediksi sisa umur struktur. Setiap tingkatan memerlukan kompleksitas instrumentasi dan algoritma yang semakin tinggi, mulai dari deteksi sederhana hingga pemodelan prediktif yang komprehensif.
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. \subsection{Metode Deteksi Kelonggaran Baut}
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}. \subsubsection{Metode Inspeksi Tradisional}
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. Deteksi kelonggaran baut telah dilakukan melalui berbagai pendekatan konvensional. Inspeksi visual dan penggunaan alat mekanis seperti kunci torsi dan palu merupakan metode yang paling sederhana dan ekonomis. Meskipun mudah diimplementasikan, metode ini memiliki keterbatasan signifikan dalam mendeteksi kerusakan pada tahap awal dan sangat bergantung pada pengalaman operator \parencite{j.h.park2015}.
Metode \textit{hammer testing} menunjukkan efektivitas yang lebih baik dibanding inspeksi visual untuk deteksi kelonggaran dini, namun akurasinya dapat terganggu oleh kebisingan lingkungan dan menjadi tidak praktis untuk struktur dengan banyak sambungan seperti jembatan \parencite{j.h.park2015,wang2013}. Keterbatasan ini mendorong pengembangan teknik deteksi yang lebih canggih dan otomatis.
% \indent Metode berbasis getaran merupakan salah satu teknik paling umum dalam sistem pemantauan kesehatan struktur (SHM) karena kemampuannya dalam mendeteksi perubahan kondisi struktur secara non-destruktif. Pendekatan ini bergantung pada prinsip bahwa kerusakan pada suatu struktur, seperti kelonggaran sambungan atau penurunan kekakuan elemen, akan mengubah karakteristik dinamikanya, seperti frekuensi alami, bentuk mode, dan respons getaran terhadap eksitasi tertentu. \subsubsection{Pendekatan Berbasis \textit{Computer Vision}}
% \indent Salah satu jenis kerusakan struktural yang umum dijumpai dalam sambungan mekanis adalah baut yang longgar akibat beban dinamis berulang, seperti getaran atau kejutan. Kondisi ini dapat menyebabkan penurunan integritas struktur dan berujung pada kegagalan sistem jika tidak terdeteksi sejak dini. Oleh karena itu, deteksi baut yang longgar secara dini telah menjadi perhatian utama dalam bidang teknik sipil, mesin, maupun dirgantara [1, 11]. Teknik berbasis penglihatan komputer telah dikembangkan sebagai alternatif untuk mengatasi keterbatasan metode manual. Pendekatan ini menggunakan kamera dan pencitraan digital untuk mendeteksi perubahan visual pada sambungan baut. \textcite{zhang2020,zhao2019} mengembangkan sistem deteksi rotasi kepala baut menggunakan \gls{cnn} dan \textit{Faster} \gls{r-cnn} yang mampu mengidentifikasi kelonggaran berdasarkan perubahan orientasi visual.
\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. Meskipun metode ini dapat mendeteksi kerusakan secara visual tanpa terpengaruh kebisingan akustik, tantangan implementasi tetap ada dalam hal akses visual ke sambungan, kondisi pencahayaan, dan beban komputasi tinggi dari model \textit{deep learning}, terutama dalam lingkungan terbatas seperti interior mesin atau struktur tertutup.
\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. \subsection{Perkembangan Teknik SHM Berbasis Getaran}
\subsubsection{Pendekatan Deep Learning dalam SHM}
\textcite{abdeljaber2017} memperkenalkan pendekatan revolusioner dalam \gls{shm} dengan menerapkan 30 model \gls{1d-cnn} pada 30 sensor akselerometer dalam struktur grid \gls{qugs}. Struktur tersebut dirancang untuk mereplikasi stadion modern, dilengkapi dengan instrumentasi lengkap, dan dikenai kerusakan terkontrol melalui pelonggaran baut sambungan. Data percepatan dikumpulkan di bawah eksitasi \textit{band-limited white noise} dengan sampling rate 1024 Hz, kemudian dibagi menjadi frame berukuran 128 sampel untuk melatih \gls{cnn} yang dilokalkan pada setiap sambungan.
Pendekatan terdesentralisasi ini menunjukkan akurasi tinggi dalam pelokalisasian kerusakan dengan kesalahan klasifikasi hanya 0.54\% pada fase pelatihan. Meskipun performa tetap andal dalam skenario kerusakan ganda, beberapa salah klasifikasi terjadi pada kasus kerusakan simetris atau berdekatan. Keunggulan utama metode ini adalah kemampuan deteksi \textit{real-time} dan akurasi lokalisasi yang tinggi, namun memerlukan sumber daya komputasi besar karena pemrosesan paralel data mentah berdimensi tinggi dari seluruh sensor \parencite{yang2020, liu2022}.
\subsubsection{Pendekatan Ekstraksi Fitur untuk Efisiensi}
Menanggapi tantangan komputasi dari pendekatan \gls{cnn} murni, \textcite{shahid2022,diao2023} memperkenalkan pendekatan \gls{vmd}-\gls{ht}-\gls{cnn} yang menggabungkan teknik ekstraksi fitur berbasis \gls{vmd} dan \gls{ht} sebelum klasifikasi \gls{cnn}. Metode ini secara signifikan meningkatkan efisiensi pelatihan dan akurasi deteksi meskipun menggunakan jumlah sensor yang lebih sedikit, menunjukkan potensi optimasi melalui \textit{feature engineering} yang tepat.
\textcite{eraliev2022} mengembangkan teknik deteksi kelonggaran baut menggunakan transformasi \gls{stft} sebagai ekstraksi fitur pada motor dengan empat baut dalam kondisi operasi berbeda (800, 1000, dan 1200 rpm). Penelitian ini menghasilkan 513 fitur frekuensi dari sinyal getaran dan mengevaluasi berbagai pengklasifikasi pembelajaran mesin, menunjukkan performa memuaskan dalam deteksi dan identifikasi baut spesifik yang kehilangan \textit{preload}. Studi ini menekankan pentingnya penempatan sensor strategis dan potensi implementasi sistem pemantauan \textit{online} \parencite{pham2020}.
Penelitian yang dilakukan oleh \textcite{van2020} berfokus pada deteksi kerusakan \textit{gearbox} menggunakan sinyal getaran yang dianalisis melalui menggunakan \gls{ann}, \gls{lr}, dan \gls{svm}. Dalam studinya, data getaran dikonversi dari domain waktu ke domain frekuensi menggunakan \gls{fft}. Selanjutnya, dilakukan ekstraksi delapan ciri statistik seperti rata-rata, median, nilai maksimum, minimum, kurtosis, skewness, standar deviasi, dan rentang nilai, yang secara signifikan mengurangi dimensi data dari 800 menjadi 32 elemen per sampel tanpa kehilangan karakteristik penting sinyal. Hasil penelitian menunjukkan bahwa model \gls{ann} mampu mencapai akurasi deteksi sebesar 100\%, sedangkan \gls{lr} dan \gls{svm} menghasilkan performa yang sedikit lebih rendah. Temuan ini menegaskan bahwa penggunaan kombinasi antara transformasi \gls{fft} dan ekstraksi ciri statistik mampu meningkatkan efisiensi pemrosesan sekaligus mempertahankan tingkat akurasi yang tinggi. Meskipun, algoritma \gls{ann} paling unggul dalam mengklasifikasi fitur statistik yang didapat dari \gls{fft}, hal ini menunjukkan bahwa ekstraksi fitur berbasis \textit{fourier transform} cukup baik dalam menangkap karakteristik sinyal getaran untuk aplikasi deteksi kerusakan mekanis.
\subsection{Aplikasi Machine Learning Klasik dalam SHM}
\textcite{jang2023} memperluas penerapan \gls{ml} dalam diagnosis kegagalan mesin listrik melalui kombinasi \textit{denoising} \gls{ae} dan \gls{oc-svm}. Pendekatan ini tidak hanya meningkatkan kualitas data melalui proses \textit{denoising} otomatis, tetapi juga menghasilkan tingkat diagnosis yang lebih akurat, dengan skor F-1 lebih tinggi dibandingkan pra-pemrosesan berbasis \gls{wt}. Hal ini menunjukkan \gls{svm} cukup efektif dalam mengklasifikasikan kondisi normal dan abnormal pada mesin listrik, terutama ketika dipasangkan dengan teknik ekstraksi fitur yang tepat meskipun pada metode tersebut melibatkan \gls{ae} yang dasarnya berbasis \gls{nn}.
Penelitian oleh \textcite{vos2022} mengusulkan pendekatan deteksi anomali berbasis getaran dengan mengombinasikan \gls{lstm} dan \gls{oc-svm} dalam kerangka semi-supervised learning. Pendekatan ini dirancang untuk mengatasi keterbatasan ketersediaan data rusak dalam sistem pemantauan kondisi mesin. Dua arsitektur dikembangkan: \gls{lstm}-\gls{oc-svm} yang menghapus komponen deterministik dari sinyal sehat, dan \gls{lstm}-\gls{lstm}-\gls{oc-svm} yang menambahkan tahap kedua untuk mengisolasi komponen acak baru yang menandakan kerusakan \textit{bearing}. Hasil pengujian pada data uji ketahanan gearbox helikopter menunjukkan bahwa model dua langkah memberikan hasil klasifikasi yang lebih akurat dibandingkan arsitektur tunggal. Namun, pada data getaran helikopter Airbus yang tidak berurutan, pendekatan berbasis \gls{lstm} tidak menunjukkan peningkatan berarti, dan model \gls{oc-svm} berbasis fitur statistik yang berasal dari residual \gls{lstm} dan \textit{windowing} pada arsitektur pertama justru lebih unggul dengan akurasi 0,89. Temuan ini menegaskan bahwa kombinasi \textit{deep learning} dan metode statistik dapat meningkatkan deteksi dini kerusakan mesin, terutama ketika hanya tersedia data kondisi sehat untuk pelatihan.
\textcite{gui2017} mendemonstrasikan efektivitas \textit{Support Vector Machine} (SVM) yang dioptimalkan untuk deteksi kerusakan struktur sipil skala besar. Penelitian ini membandingkan tiga algoritma optimasi: \textit{grid-search}, \textit{particle swarm optimization}, dan \textit{genetic algorithm} untuk mengoptimalkan parameter penalti dan fungsi kernel Gaussian. Menggunakan fitur \gls{re} dari model \gls{ar}, semua metode optimasi menunjukkan peningkatan signifikan dalam sensitivitas, akurasi, dan efektivitas dibanding metode konvensional. \gls{ga}-based \gls{svm} memberikan prediksi terbaik, menekankan pentingnya pemilihan fitur yang tepat untuk meningkatkan sensitivitas deteksi kerusakan.
\textcite{katam2025} mengintegrasikan \gls{stft} dengan \gls{svm} untuk deteksi kerusakan pada \textit{cantilever beam} skala kecil, mencapai akurasi 98\%. Penelitian ini menyoroti keunggulan \gls{stft} dalam menangkap perubahan transien struktur yang krusial untuk deteksi dini, surpassing metode tradisional seperti \gls{fft} dan \gls{wt}. Pendekatan ini dirancang efektif dengan dataset terbatas, meskpun menggunakan \gls{ae} yang berbasis \gls{nn} sebagai reduksi dimensi \gls{stft} yang berdimensi tinggi sambil mempertahankan variasi frekuensi-magnitudo esensial.
% \subsection{Analisis Gap dan Posisi Penelitian}
% \subsubsection{Identifikasi Gap dalam Literatur}
% Berdasarkan tinjauan literatur yang komprehensif, beberapa gap penelitian teridentifikasi dalam bidang SHM:
% \begin{enumerate}
% \item \textbf{Trade-off Akurasi vs Efisiensi}: Meskipun pendekatan \textit{deep learning} menunjukkan akurasi tinggi, kebutuhan sumber daya komputasi yang besar membatasi implementasi praktis, terutama untuk sistem \textit{real-time} atau \textit{edge computing}.
% \item \textbf{Optimasi Jumlah Sensor}: Sebagian besar penelitian menggunakan instrumentasi penuh atau mengurangi sensor secara acak tanpa strategi sistematis untuk mempertahankan informasi kritis.
% \item \textbf{Validasi Generalisasi}: Kurangnya evaluasi kemampuan generalisasi model antar dataset independen, yang penting untuk implementasi praktis di lapangan.
% \item \textbf{Metrik Evaluasi Holistik}: Sebagian besar penelitian hanya fokus pada akurasi klasifikasi tanpa mempertimbangkan efisiensi komputasi, waktu pelatihan, dan praktikalitas implementasi.
% \end{enumerate}
% \subsubsection{Posisi dan Kontribusi Penelitian Ini}
% Penelitian ini memposisikan diri untuk mengisi gap yang teridentifikasi melalui pendekatan inovatif yang menggabungkan:
% \begin{itemize}
% \item \textbf{Strategi Sensor Terbatas Sistematis}: Penggunaan hanya sensor atas dan bawah per kolom (10 dari 30 sensor) berdasarkan analisis propagasi energi getaran dalam struktur grid.
% \item \textbf{Optimasi Multi-Objektif}: Keseimbangan antara akurasi klasifikasi dan efisiensi komputasi melalui optimasi \textit{hyperparameter} sistematis dan reduksi dimensi PCA.
% \item \textbf{Validasi Komprehensif}: Evaluasi kemampuan generalisasi melalui validasi silang antar dataset independen dan analisis metrik efisiensi yang komprehensif.
% \item \textbf{Pendekatan Praktis}: Fokus pada implementabilitas dengan menggunakan algoritma pembelajaran mesin klasik yang memerlukan sumber daya komputasi minimal namun tetap efektif.
% \end{itemize}
% Pendekatan ini menjembatani gap antara akurasi tinggi dari metode canggih dengan praktikalitas implementasi yang diperlukan untuk aplikasi SHM real-world.
% % Previous content continues...
% \indent Teknik deteksi berbasis getaran terbukti efektif dalam mengidentifikasi tanda-tanda awal anomali pada sambungan dengan menganalisis perubahan spektrum frekuensi atau energi getaran. Perubahan karakteristik getaran seperti penurunan amplitudo, pergeseran frekuensi dominan, atau pola spektral lainnya menjadi indikator keberadaan dan lokasi kerusakan. Kombinasi teknik transformasi sinyal seperti STFT dan algoritma pembelajaran mesin klasik menawarkan solusi yang efisien untuk implementasi SHM praktis.
\section{Dasar Teori} \section{Dasar Teori}
\input{chapters/id/02_literature_review/theoritical_foundation/stft} \input{chapters/id/02_literature_review/theoritical_foundation/stft}
@@ -28,4 +86,6 @@ Lebih lanjut, pendekatan yang dikembangkan oleh \textcite{garrido2016} menunjukk
\input{chapters/id/02_literature_review/theoritical_foundation/hann} \input{chapters/id/02_literature_review/theoritical_foundation/hann}
\input{chapters/id/02_literature_review/theoritical_foundation/machine_learning} \input{chapters/id/02_literature_review/theoritical_foundation/machine_learning}
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. Dasar teori ini memberikan kerangka metodologi komprehensif untuk mengimplementasi dan mengevaluasi sistem lokalisasi kerusakan yang diusulkan. Kombinasi analisis waktu-frekuensi menggunakan STFT dengan parameter optimal, reduksi dimensi PCA yang sistematis, dan klasifikasi SVM-RBF yang dioptimalkan secara multi-objektif memungkinkan tercapainya sistem monitor kesehatan struktur yang efisien, akurat, dan praktis untuk implementasi.
Integrasi metrik evaluasi holistik yang mempertimbangkan akurasi dan efisiensi komputasi memberikan framework evaluasi yang komprehensif untuk validasi pendekatan yang diusulkan. Landasan teori ini mendukung hipotesis bahwa pendekatan sensor terbatas dengan algoritma pembelajaran mesin klasik dapat mencapai performa yang kompetitif dengan metode yang lebih kompleks, sambil memberikan keunggulan dalam hal praktikalitas implementasi.

View File

@@ -1,45 +1,133 @@
\subsection{Algoritma Klasifikasi} % \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. % 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)} \subsection{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}. \subsubsection{Formulasi Matematis SVM}
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). Mesin vektor pendukung (SVM) adalah algoritma pemelajaran mesin terarah yang bertujuan menemukan \textit{hyperplane} optimal untuk memisahkan data ke dalam kelas-kelas yang berbeda. Untuk dataset yang dapat dipisahkan secara linear, SVM mencari \textit{hyperplane} yang memaksimalkan margin antara kelas-kelas tersebut.
\subsubsection{K-Nearest Neighbors (KNN)} Diberikan dataset pelatihan $\{(\mathbf{x}_i, y_i)\}_{i=1}^{n}$ dimana $\mathbf{x}_i \in \mathbb{R}^d$ adalah vektor fitur dan $y_i \in \{-1, +1\}$ adalah label kelas, masalah optimasi SVM dapat diformulasikan sebagai:
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. \begin{align}
\min_{\mathbf{w}, b} &\quad \frac{1}{2} \|\mathbf{w}\|^2 \\
\text{subject to} &\quad y_i(\mathbf{w}^T \mathbf{x}_i + b) \geq 1, \quad i = 1, 2, \ldots, n
\end{align}
Performa algoritma ini sensitif pada pemilihan $k$ dan jarak metriknya. Untuk data dengan dimensi tinggi seperti fitur STFT, mungkin diperlukan optimalisasi atau penskalaan dimensi. dimana $\mathbf{w}$ adalah vektor bobot dan $b$ adalah bias. Untuk data yang tidak dapat dipisahkan secara linear sempurna, digunakan \textit{soft margin} dengan menambahkan variabel slack $\xi_i$:
\subsubsection{Decision Tree (DT)} \begin{align}
\min_{\mathbf{w}, b, \xi} &\quad \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^{n} \xi_i \\
\text{subject to} &\quad y_i(\mathbf{w}^T \mathbf{x}_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0
\end{align}
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). Parameter $C$ mengontrol trade-off antara maksimalisasi margin dan minimisasi kesalahan klasifikasi.
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{Kernel RBF (Radial Basis Function)}
\subsubsection{Random Forest (RF)} Untuk menangani data non-linear, SVM menggunakan \textit{kernel trick} yang memetakan data ke ruang berdimensi lebih tinggi tanpa komputasi eksplisit. Kernel RBF yang digunakan dalam penelitian ini didefinisikan sebagai:
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). \begin{equation}
K(\mathbf{x}_i, \mathbf{x}_j) = \exp\left(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2\right)
\end{equation}
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. dimana $\gamma > 0$ adalah parameter yang mengontrol \textit{bandwidth} kernel. Parameter ini memengaruhi kompleksitas model: nilai $\gamma$ yang kecil menghasilkan batas keputusan yang halus (model sederhana), sementara nilai besar menghasilkan batas yang lebih kompleks namun rentan terhadap \textit{overfitting}.
\subsubsection{Bagged Trees (BT)} Fungsi keputusan SVM dengan kernel RBF menjadi:
\begin{equation}
f(\mathbf{x}) = \text{sign}\left(\sum_{i=1}^{n} \alpha_i y_i K(\mathbf{x}_i, \mathbf{x}) + b\right)
\end{equation}
\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. dimana $\alpha_i$ adalah pengali Lagrange yang diperoleh dari optimasi dual.
\subsubsection{XGBoost (Extreme Gradient Boosting)} \subsubsection{Optimasi Hyperparameter}
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. Performa SVM sangat bergantung pada pemilihan parameter $C$ dan $\gamma$ yang optimal. Penelitian ini menggunakan strategi pencarian grid dua tahap:
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. \begin{enumerate}
\item \textbf{Coarse Grid Search}: Pencarian kasar pada rentang parameter yang luas dengan langkah eksponensial untuk mengidentifikasi region optimal.
\item \textbf{Fine Grid Search}: Pencarian halus di sekitar region optimal yang ditemukan pada tahap pertama dengan resolusi yang lebih tinggi.
\end{enumerate}
\subsubsection{Linear Discriminant Analysis (LDA)} Validasi silang stratified k-fold digunakan untuk mengevaluasi setiap kombinasi parameter dan menghindari \textit{overfitting} pada data pelatihan.
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). \subsection{Principal Component Analysis (PCA)}
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. \subsubsection{Formulasi Matematis PCA}
\bigskip PCA adalah teknik reduksi dimensi yang mentransformasi data ke ruang berdimensi lebih rendah sambil mempertahankan varians maksimal. Diberikan matriks data $\mathbf{X} \in \mathbb{R}^{n \times d}$ dengan $n$ sampel dan $d$ fitur, PCA mencari proyeksi linear $\mathbf{Y} = \mathbf{X}\mathbf{W}$ dimana $\mathbf{W} \in \mathbb{R}^{d \times k}$ adalah matriks transformasi dan $k < d$ adalah dimensi target.
Langkah-langkah PCA:
\begin{enumerate}
\item Sentralisasi data: $\mathbf{X}_{centered} = \mathbf{X} - \boldsymbol{\mu}$
\item Hitung matriks kovarians: $\mathbf{C} = \frac{1}{n-1}\mathbf{X}_{centered}^T\mathbf{X}_{centered}$
\item Dekomposisi eigen: $\mathbf{C} = \mathbf{V}\mathbf{\Lambda}\mathbf{V}^T$
\item Pilih $k$ eigenvector dengan eigenvalue terbesar sebagai komponen utama
\end{enumerate}
\subsubsection{Kriteria Pemilihan Komponen}
Jumlah komponen PCA optimal dipilih berdasarkan:
\begin{itemize}
\item \textbf{Explained Variance Ratio}: Mempertahankan minimal 95\% varians total
\item \textbf{Elbow Method}: Mengidentifikasi titik diminishing returns dalam explained variance
\item \textbf{Cross-validation Performance}: Evaluasi performa klasifikasi pada berbagai jumlah komponen
\end{itemize}
\subsection{Metrik Evaluasi}
\subsubsection{Metrik Klasifikasi}
Evaluasi performa model menggunakan metrik standar:
\begin{itemize}
\item \textbf{Akurasi}: $\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}$
\item \textbf{Precision}: $\text{Precision} = \frac{TP}{TP + FP}$
\item \textbf{Recall}: $\text{Recall} = \frac{TP}{TP + FN}$
\item \textbf{F1-Score}: $\text{F1} = 2 \cdot \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$
\end{itemize}
\subsubsection{Metrik Efisiensi}
Penelitian ini memperkenalkan metrik efisiensi yang mempertimbangkan trade-off antara akurasi dan waktu komputasi:
\begin{equation}
\text{Efficiency Score} = \frac{\text{Accuracy}^2}{\text{Training Time (normalized)}}
\end{equation}
Metrik ini memberikan skor tinggi untuk model yang mencapai akurasi tinggi dengan waktu pelatihan minimal.
% \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

View File

@@ -1,13 +1,73 @@
\subsection{Short-Time Fourier Transform (STFT)} \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. \subsubsection{Formulasi Matematis STFT}
Secara matematis, STFT dari sinyal $x(t)$ diberikan sebagai berikut: Short-Time Fourier Transform (STFT) adalah teknik fundamental untuk menganalisis sinyal non-stasioner dengan menyediakan representasi waktu-frekuensi yang simultan. Berbeda dengan transformasi Fourier konvensional yang hanya memberikan informasi domain frekuensi global, STFT menerapkan transformasi Fourier pada segmen-segmen sinyal pendek yang bertumpang tindih.
Secara matematis, STFT dari sinyal diskrit $x[n]$ didefinisikan \textcite{oppenheim2010} sebagai:
\begin{equation} \begin{equation}
X(m, \omega) = \sum_{n=-\infty}^{\infty} x[n] \cdot w[n - m] \cdot e^{-j \omega n} X(m, \omega) = \sum_{n=-\infty}^{\infty} x[n] \cdot w[n - m] \cdot e^{-j \omega n}
\end{equation} \end{equation}
dimana:
\begin{itemize}
\item $x[n]$ adalah sinyal input diskrit
\item $w[n]$ adalah fungsi windowing
\item $m$ adalah indeks waktu (hop)
\item $\omega$ adalah frekuensi angular diskrit
\item $X(m, \omega)$ adalah koefisien STFT kompleks
\end{itemize}
dengan $w(\tau - t)$ adalah sebuah fungsi \textit{windowing} berpusat pada waktu $t$ dan $\omega$ adalah frekuensi angular. \subsubsection{Parameter STFT dan Trade-off Resolusi}
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. Kualitas representasi waktu-frekuensi STFT ditentukan oleh pemilihan parameter window dan hop size:
\begin{itemize}
\item \textbf{Window Size ($N$)}: Menentukan resolusi frekuensi. Window yang lebih panjang memberikan resolusi frekuensi yang lebih baik namun resolusi waktu yang lebih buruk.
\item \textbf{Hop Size ($H$)}: Jarak antar window yang berurutan. Hop size yang lebih kecil memberikan resolusi waktu yang lebih baik namun meningkatkan redundansi dan beban komputasi.
\item \textbf{Overlap}: Biasanya dipilih 50-75\% untuk mencegah kehilangan informasi di transisi antar window.
\end{itemize}
\subsubsection{Spektrogram dan Ekstraksi Fitur}
Spektrogram adalah representasi visual STFT yang menunjukkan distribusi energi sinyal dalam domain waktu-frekuensi:
\begin{equation}
S(m, \omega) = |X(m, \omega)|^2
\end{equation}
Untuk aplikasi pembelajaran mesin, spektrogram dapat digunakan langsung sebagai fitur 2D atau dikonversi menjadi vektor fitur 1D melalui:
\begin{itemize}
\item \textbf{Flattening}: Mengubah matriks spektrogram menjadi vektor fitur
\item \textbf{Statistical Features}: Ekstraksi statistik seperti mean, variance, skewness, kurtosis per bin frekuensi
\item \textbf{Magnitude Spectrum}: Menggunakan hanya magnitudo tanpa informasi fase
\end{itemize}
\subsubsection{Keunggulan STFT untuk Deteksi Kerusakan}
STFT sangat sesuai untuk deteksi kerusakan struktur karena:
\begin{enumerate}
\item \textbf{Analisis Transien}: Mampu menangkap perubahan frekuensi lokal yang disebabkan oleh kerusakan
\item \textbf{Deteksi Harmonik}: Mengidentifikasi komponen harmonik baru yang muncul akibat kelonggaran baut
\item \textbf{Temporal Resolution}: Mempertahankan informasi waktu terjadinya perubahan spektral
\item \textbf{Robustness}: Relatif tahan terhadap noise dibanding analisis time-domain murni
\end{enumerate}
Dalam konteks kelonggaran baut, STFT dapat mendeteksi:
\begin{itemize}
\item Pergeseran frekuensi natural akibat perubahan kekakuan sambungan
\item Munculnya frekuensi beat akibat coupling yang berubah
\item Modulasi amplitudo yang mengindikasikan kontak intermiten
\end{itemize}
\subsubsection{Implementasi STFT untuk Dataset QUGS}
Dalam penelitian ini, parameter STFT dioptimalkan untuk karakteristik data QUGS:
\begin{itemize}
\item \textbf{Window Function}: Hann window untuk meminimalkan spectral leakage
\item \textbf{Window Size}: 1024 sampel (≈1 detik pada 1024 Hz sampling rate)
\item \textbf{Hop Size}: 512 sampel (50\% overlap)
\item \textbf{Frequency Bins}: 513 bin frekuensi (0 - 512 Hz)
\end{itemize}
Konfigurasi ini menghasilkan spektrogram berukuran 513×513 yang kemudian di-flatten menjadi vektor fitur 263,169 dimensi untuk input ke algoritma pembelajaran mesin.

View File

@@ -33,12 +33,12 @@ Dalam penelitian ini, optimasi \textit{hyperparameter} dilakukan melalui pencari
Reduksi dimensi ditambahkan sebagai parameter ketiga dalam pencarian \textit{grid} untuk menentukan jumlah komponen utama \gls{pca} guna mengoptimasi waktu komputasi, performa \textit{inference}, kompleksitas model, dan ukuran model \parencite{geron2019}. Nilai-nilai komponen yang diuji adalah $n_{components} \in \{512, 256, 128, 64, 32, 16, 8, 4, 2\}$. Rentang nilai tetap ini dipilih dibandingkan rentang \textit{fractional threshold} $(0 < x < 1)$ variansi kumulatif untuk memastikan konsistensi, meningkatkan reprodusibilitas, dan memudahkan interpretasi jumlah komponen utama yang dipilih di setiap iterasi pencarian \textit{grid}. Reduksi dimensi ditambahkan sebagai parameter ketiga dalam pencarian \textit{grid} untuk menentukan jumlah komponen utama \gls{pca} guna mengoptimasi waktu komputasi, performa \textit{inference}, kompleksitas model, dan ukuran model \parencite{geron2019}. Nilai-nilai komponen yang diuji adalah $n_{components} \in \{512, 256, 128, 64, 32, 16, 8, 4, 2\}$. Rentang nilai tetap ini dipilih dibandingkan rentang \textit{fractional threshold} $(0 < x < 1)$ variansi kumulatif untuk memastikan konsistensi, meningkatkan reprodusibilitas, dan memudahkan interpretasi jumlah komponen utama yang dipilih di setiap iterasi pencarian \textit{grid}.
Kemudian, \textit{cross-validation} dengan skema \textit{stratified k-fold} digunakan untuk menilai kinerja model pada setiap kombinasi \textit{hyperparameter}. Skema ini memastikan bahwa setiap lipatan memiliki proporsi kelas yang seimbang, sehingga mengurangi bias dalam penilaian model \parencite{Kohavi1995ASO}. Nilai $k$ yang digunakan pada penelitian ini adalah 5 yang berarti data pelatihan dibagi menjadi 5 bagian: 4 bagian digunakan untuk pelatihan dan 1 bagian untuk validasi secara bergantian. Proses ini diulang untuk seluruh kombinasi \textit{hyperparameter} yang berjumlah 324 kombinasi, sehingga total pelatihan model yang dilakukan adalah 675 kali. Kemudian, \textit{cross-validation} dengan skema \textit{stratified k-fold} digunakan untuk menilai kinerja model pada setiap kombinasi \textit{hyperparameter}. Skema ini memastikan bahwa setiap lipatan memiliki proporsi kelas yang seimbang, sehingga mengurangi bias dalam penilaian model \parencite{Kohavi1995ASO}. Nilai $k$ yang digunakan pada penelitian ini adalah 5 yang berarti data pelatihan dibagi menjadi 5 bagian: 4 bagian digunakan untuk pelatihan dan 1 bagian untuk validasi secara bergantian. Nilai ini dianggap sudah cukup untuk memastikan validitas hasil melihat jumlah sampel yang digunakan \parencite{JMLR:v18:16-174}. Proses ini diulang untuk seluruh kombinasi \textit{hyperparameter} yang berjumlah 200 kombinasi pada tahap \textit{coarse grid-search}, sehingga total pelatihan model yang dilakukan adalah 1000 kali.
% table showing the grid search parameters % table showing the grid search parameters
Tabel \ref{tab:grid_search_parameters} merangkum parameter-parameter yang digunakan dalam pencarian \textit{grid}. Tabel \ref{tab:grid_search_parameters} merangkum parameter-parameter yang digunakan dalam pencarian \textit{grid} tahap pertama (\textit{coarse grid-search}).
\begin{table}[H] \begin{table}[H]
\centering \centering
\caption{Parameter-parameter dalam pencarian \textit{grid} untuk optimasi \textit{hyperparameter} model \gls{svm}.} \caption{Parameter-parameter dalam pencarian \textit{grid} tahap pertama (\textit{coarse grid-search}) untuk optimasi \textit{hyperparameter} model \gls{svm}.}
\label{tab:grid_search_parameters} \label{tab:grid_search_parameters}
\begin{tabular}{lll} \begin{tabular}{lll}
\toprule \toprule
@@ -47,16 +47,82 @@ Tabel \ref{tab:grid_search_parameters} merangkum parameter-parameter yang diguna
% kernel % kernel
kernel & \gls{rbf} & 1 \\ kernel & \gls{rbf} & 1 \\
% regularization parameter % regularization parameter
$C$ & $\left\{ 2^{\,x} \,\middle|\, x \in \{-5, 0, \dots, 15\} \right\}$ & 5 \\ $C$ & $\left\{ 2^{\,x} \,\middle|\, x \in \{-5, 0, 5, 10, 15\} \right\}$ & 5 \\
$\gamma$ & $\left\{ 2^{\,x} \,\middle|\, x \in \{-15, -10, \dots, 5\} \right\}$ & 5 \\ $\gamma$ & $\left\{ 2^{\,x} \,\middle|\, x \in \{-15, -10, -5, 0, 5\} \right\}$ & 5 \\
$n_{components}$ & $\{512, 256, 128, 64, 32, 16, 8, 4, 2\}$ & 9 \\ $n_{components}$ & $\{512, 256, 128, 64, 32, 16, 8, 4\}$ & 8 \\
\midrule \midrule
Total Kombinasi & & 135 \\ Total Kombinasi & & 200 \\
\bottomrule \bottomrule
\end{tabular} \end{tabular}
\end{table} \end{table}
\section{Evaluasi Model} % \section{Strategi Pembagian Data}
% Dataset yang telah diekstraksi fitur dan diberi label kemudian dibagi menjadi dua bagian untuk menilai kemampuan generalisasi model:
% \begin{enumerate}
% \item \textbf{Dataset A}: Digunakan untuk pelatihan model dan validasi silang selama optimasi \textit{hyperparameter}
% \item \textbf{Dataset B}: Disimpan sebagai data uji independen untuk evaluasi akhir model yang telah dioptimalkan
% \end{enumerate}
% Pembagian ini dilakukan secara \textit{stratified} untuk memastikan proporsi setiap kelas kerusakan ($d_0$ hingga $d_6$) terjaga pada kedua dataset. Pendekatan ini memungkinkan evaluasi yang lebih objektif terhadap kemampuan model dalam mengklasifikasikan kondisi struktur yang belum pernah dilihat sebelumnya.
\section{Strategi Optimasi \textit{Hyperparameter} Dua Tahap}
Untuk meningkatkan efisiensi pencarian parameter optimal, optimasi dilakukan dalam dua tahap:
\subsection{\textit{Coarse Grid-Search}}
Tahap pertama menggunakan rentang parameter yang luas dengan interval yang lebih besar untuk mengidentifikasi wilayah parameter yang menjanjikan. Parameter yang dioptimalkan telah dijelaskan pada Tabel~\ref{tab:grid_search_parameters}.
\subsection{\textit{Fine Grid-Search}}
Berdasarkan hasil \textit{coarse grid-search}, dilakukan pencarian lebih detail di sekitar parameter terbaik dengan interval yang lebih kecil. Rentang parameter pada tahap ini disesuaikan dengan:
\begin{itemize}
\item Nilai $C$ dan $\gamma$ terbaik dari tahap pertama menjadi pusat pencarian
\item Interval dikurangi menjadi 0.5 dalam skala logaritma basis 2
\item Jumlah komponen PCA tetap menggunakan nilai optimal dari tahap pertama
\end{itemize}
\section{Metrik Evaluasi}
\subsection{Metrik Klasifikasi Standar}
Kinerja model dievaluasi menggunakan beberapa metrik standar:
\begin{enumerate}
\item \textbf{Akurasi}: Proporsi prediksi yang benar dari total prediksi
\item \textbf{Precision}: Proporsi prediksi positif yang benar untuk setiap kelas
\item \textbf{Recall}: Proporsi sampel positif yang berhasil diidentifikasi untuk setiap kelas
\item \textbf{F1-score}: Rata-rata harmonik antara precision dan recall
\item \textbf{Confusion Matrix}: Matriks yang menunjukkan distribusi prediksi vs label sebenarnya
\end{enumerate}
\subsection{Metrik Efisiensi}
Untuk menilai trade-off antara akurasi dan kompleksitas komputasi, didefinisikan metrik efisiensi:
\begin{equation}
E_i = \frac{S_i}{T_i},
\end{equation}
dengan:
\begin{itemize}
\item $S_i$ = rata-rata skor akurasi hasil 5-\textit{fold cross-validation})
\item $T_i$ = rata-rata waktu pelatihan per iterasi (dalam detik)
\end{itemize}
Metrik ini memungkinkan identifikasi konfigurasi model yang memberikan keseimbangan optimal antara performa dan efisiensi komputasi.
\section{Pemilihan Model \textit{Baseline}}
Dari hasil \textit{coarse grid-search}, dipilih konfigurasi model \textit{baseline} berdasarkan kriteria gabungan:
\begin{enumerate}
\item Akurasi validasi silang yang tinggi
\item Metrik efisiensi ($E_i$) yang optimal
\item Waktu pelatihan yang reasonable untuk implementasi praktis
\end{enumerate}
Model \textit{baseline} ini kemudian dievaluasi pada data uji independen untuk mengukur performa awal sebelum optimasi lanjutan melalui \textit{fine grid-search}.
\section{Proses \textit{Inference} dan Visualisasi}
Setelah model dilatih dan dioptimalkan, dilakukan proses \textit{inference} pada data uji untuk:
\begin{enumerate}
\item Menghasilkan prediksi probabilitas untuk setiap kelas kerusakan
\item Memvisualisasikan distribusi probabilitas dalam bentuk \textit{heatmap} struktur
\item Menganalisis pola kesalahan klasifikasi melalui \textit{confusion matrix}
\item Menilai kemampuan deteksi kerusakan pada lokasi spesifik
\end{enumerate}
Visualisasi \textit{heatmap} dilakukan dengan memetakan probabilitas prediksi kembali ke struktur grid asli, sehingga memberikan interpretasi spasial terhadap hasil klasifikasi.

View File

@@ -1,4 +1,4 @@
Penelitian ini menggunakan data sekunder dari \textcite{abdeljaber2017}, yang tersedia secara publik dan diperoleh melalui eksperimen menggunakan \textit{Queen's University Grandstand Simulator}. Adapun rincian data yang digunakan adalah sebagai berikut: 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} \begin{itemize}
\item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer. \item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer.

View File

@@ -1,40 +1,40 @@
Sebelum melakukan ekstraksi fitur menggunakan \gls{stft}, persiapan data dilakukan agar tujuan penelitian dapat tercapai. Sebelum melakukan ekstraksi fitur menggunakan \gls{not:calT}, persiapan data dilakukan agar tujuan penelitian dapat tercapai.
\subsection{Grid, Kode \textit{Joint}, dan Nama File} \subsection{Grid, Kode \textit{Joint}, dan Nama File}
Setiap berkas pada \textit{dataset} merekam respons getaran dari seluruh tiga puluh \textit{joint} yang dipasangi sensor akselerometer. Setiap berkas pada \textit{dataset} merekam respons getaran dari seluruh tiga puluh \textit{joint} yang dipasangi sensor akselerometer.
Berkas tanpa kerusakan direpresentasikan dengan matriks $\mathbf{U} \in \mathbb{R}^{262144 \times 30}$, sedangkan berkas dengan kerusakan pada \textit{joint} ke-$n$ dinotasikan sebagai $\mathbf{D}^{(n)} \in \mathbb{R}^{262144 \times 30}$ untuk $n = 1, \dots, 30$. Berkas tanpa kerusakan direpresentasikan dengan matriks \gls{not:U}, sedangkan berkas dengan kerusakan pada \textit{joint} ke-$n$ dinotasikan sebagai \gls{not:Dn} untuk $n = 1, \dots, 30$.
Setiap kolom pada matriks $\mathbf{U}$ maupun $\mathbf{D}^{(n)}$ merepresentasikan sinyal percepatan dari satu sensor (satu \textit{joint}), sehingga kolom ke-$j$ dapat ditulis sebagai vektor: Setiap kolom pada matriks \gls{not:U} maupun \gls{not:Dn} merepresentasikan sinyal percepatan dari satu sensor (satu \textit{joint}), sehingga kolom ke-$j$ dapat ditulis sebagai vektor:
\begin{equation} \begin{equation}
\mathbf{a}_{j}^{(n)} = \gls{not:aj} =
\begin{bmatrix} \begin{bmatrix}
a_{1}^{(n,j)} \\[2pt] a_{1}^{(n,j)} \\
a_{2}^{(n,j)} \\[2pt] a_{2}^{(n,j)} \\
\vdots \\[2pt] \vdots \\
a_{262144}^{(n,j)} a_{262144}^{(n,j)}
\end{bmatrix} \end{bmatrix}
\in \mathbb{R}^{262144}, \in \gls{not:R}^{262144},
\quad \quad
j = 1, \dots, 30, j = 1, \dots, 30,
\quad \quad
n = 0, \dots, 30. n = 0, \dots, 30.
\end{equation} \end{equation}
Vektor $\mathbf{a}_{j}^{(n)}$ menunjukkan deret waktu percepatan yang diukur oleh sensor pada \textit{joint} ke-$j$ untuk kasus ke-$n$. Vektor \gls{not:aj} menunjukkan deret waktu percepatan yang diukur oleh sensor pada \textit{joint} ke-$j$ untuk kasus ke-$n$.
Dengan demikian, satu berkas $\mathbf{D}^{(n)}$ dapat ditulis sebagai himpunan dari seluruh vektor kolomnya: Dengan demikian, satu berkas \gls{not:Dn} dapat ditulis sebagai himpunan dari seluruh vektor kolomnya:
\begin{equation} \begin{equation}
\mathbf{D}^{(n)} = \bigl\{\,\mathbf{a}_{1}^{(n)}, \mathbf{a}_{2}^{(n)}, \dots, \mathbf{a}_{30}^{(n)}\,\bigr\}. \gls{not:Dn} = \bigl\{\,\gls{not:aj}\,\bigr\}.
\end{equation} \end{equation}
Untuk kasus tanpa kerusakan, $\mathbf{U}$ dapat dinotasikan secara serupa dengan $n=0$ secara tunggal: Untuk kasus tanpa kerusakan, \gls{not:U} dapat dinotasikan secara serupa dengan $n=0$ secara tunggal:
\begin{equation} \begin{equation}
\mathbf{U} = \bigl\{\,\mathbf{a}_{1}^{(0)}, \mathbf{a}_{2}^{(0)}, \dots, \mathbf{a}_{30}^{(0)}\,\bigr\}. \gls{not:U} = \bigl\{\,\gls{not:aj}\,\bigr\}.
\end{equation} \end{equation}
Pada setiap kasus kerusakan, \textit{joint} yang rusak berkorespondensi langsung dengan indeks berkas, yaitu: Pada setiap kasus kerusakan, \textit{joint} yang rusak berkorespondensi langsung dengan indeks berkas, yaitu:
\begin{equation} \begin{equation}
\text{Kerusakan pada } \mathbf{D}^{(n)} \text{ terjadi di } \mathbf{a}_{n}^{(n)}, \text{Kerusakan pada } \gls{not:Dn} \text{ terjadi di } \gls{not:aj},
\quad n = 1, \dots, 30. \quad n = 1, \dots, 30.
\end{equation} \end{equation}
@@ -56,20 +56,20 @@ Pada setiap kasus kerusakan, \textit{joint} yang rusak berkorespondensi langsung
\subsection{Kelas Kerusakan} \subsection{Kelas Kerusakan}
\label{sec:kelas-kerusakan} \label{sec:kelas-kerusakan}
Enam kelas pertama ($d_1$$d_6$) merepresentasikan kondisi struktur dengan kerusakan pada lima \textit{joint} berturut-turut. Enam kelas pertama (\gls{not:di}\gls{not:di}) merepresentasikan kondisi struktur dengan kerusakan pada lima \textit{joint} berturut-turut.
Setiap kelas $d_i$ berisi lima sinyal percepatan satu dimensi $\mathbf{a}_{n}^{(n)} \in \mathbb{R}^{262144}$, Setiap kelas \gls{not:di} berisi lima sinyal percepatan satu dimensi \gls{not:aj},
masing-masing berasal dari berkas $\mathbf{D}^{(n)}$ yang merekam kondisi kerusakan pada \textit{joint} ke-$n$. masing-masing berasal dari berkas \gls{not:Dn} yang merekam kondisi kerusakan pada \textit{joint} ke-$n$.
Secara umum, setiap kelas $d_i$ ($i = 1, \dots, 6$) terdiri atas lima sinyal percepatan Secara umum, setiap kelas \gls{not:di} ($i = 1, \dots, 6$) terdiri atas lima sinyal percepatan
$\mathbf{a}_{n}^{(n)} \in \mathbb{R}^{262144}$ yang diambil dari lima berkas berturut-turut \gls{not:aj} yang diambil dari lima berkas berturut-turut
pada rentang indeks $n = 5(i-1)+1$ hingga $5i$: pada rentang indeks $n = 5(i-1)+1$ hingga $5i$:
\begin{equation}\label{eq:d_i} \begin{equation}\label{eq:d_i}
d_i = \bigl\{\,\mathbf{a}_{n}^{(n)}\,\bigr\}_{n = 5(i-1)+1}^{5i}\ , \gls{not:di} = \bigl\{\,\gls{not:aj}\,\bigr\}_{n = 5(i-1)+1}^{5i}\ ,
\quad i = 1, \dots, 6. \quad i = 1, \dots, 6.
\end{equation} \end{equation}
Masing-masing $\mathbf{a}_{n}^{(n)}$ merupakan vektor berukuran $262144 \times 1$ yang memuat deret waktu percepatan dari Masing-masing \gls{not:aj} merupakan vektor berukuran $262144 \times 1$ yang memuat deret waktu percepatan dari
sensor akselerometer pada \textit{joint} ke-$n$ di berkas $\mathbf{D}^{(n)}$. sensor akselerometer pada \textit{joint} ke-$n$ di berkas \gls{not:Dn}.
Sebagai contoh konkret: Sebagai contoh konkret:
\begin{align*} \begin{align*}
@@ -136,7 +136,7 @@ d_6 &= \{(\mathbf{a}_{1}^{(26)}, \mathbf{a}_{26}^{(26)}),\,
\subsection{Konstruksi Kelas Tanpa Kerusakan} \subsection{Konstruksi Kelas Tanpa Kerusakan}
\label{sec:konstruksi-d0} \label{sec:konstruksi-d0}
Untuk membentuk kelas tanpa kerusakan ($d_0$), pada setiap berkas kerusakan $\mathbf{D}^{(n)}$ Untuk membentuk kelas tanpa kerusakan ($d_0$), pada setiap berkas kerusakan \gls{not:Dn}
ditentukan indeks kolom yang rusak ditentukan indeks kolom yang rusak
\begin{equation} \begin{equation}
r_n = ((n - 1) \bmod 5) + 1, \qquad n=1,\dots,30. r_n = ((n - 1) \bmod 5) + 1, \qquad n=1,\dots,30.
@@ -147,7 +147,7 @@ Selanjutnya, himpunan indeks kolom komplemen (sehat) didefinisikan sebagai
\end{equation} \end{equation}
Empat \textit{pasangan komplemen sehat} pada berkas $\mathbf{D}^{(n)}$ kemudian dibentuk sebagai Empat \textit{pasangan komplemen sehat} pada berkas \gls{not:Dn} kemudian dibentuk sebagai
\begin{equation} \begin{equation}
\mathcal{C}(n) = \mathcal{C}(n) =
\Bigl\{ \Bigl\{
@@ -279,7 +279,7 @@ Untuk setiap pasangan \((\mathbf{a}_{r}^{(n)},\mathbf{a}_{r+25}^{(n)})\) hasil S
dengan indeks waktu \(t=0,\dots,512\) dan frekuensi \(p=0,\dots,512\). dengan indeks waktu \(t=0,\dots,512\) dan frekuensi \(p=0,\dots,512\).
Setiap baris \(\widetilde{\mathbf{a}}_{r}^{(n)}[t]\) adalah vektor frekuensi berdimensi \(513\). Setiap baris \(\widetilde{\mathbf{a}}_{r}^{(n)}[t]\) adalah vektor frekuensi berdimensi \(513\).
Untuk kelas kerusakan \(d_i\) ($i\ge1$) seluruh \(513\) \textit{frame} dari kelima pasangan diambil, sehingga setiap $d_i$ menghasilkan Untuk kelas kerusakan $d_i$ ($i\ge1$) seluruh \(513\) \textit{frame} dari kelima pasangan diambil, sehingga setiap $d_i$ menghasilkan
\begin{equation}\label{eq:concat_stft_di} \begin{equation}\label{eq:concat_stft_di}
\operatorname{concat}_{\text{time}}\bigl(\{\widetilde{\mathbf{a}}_{r}^{(n)}\}_{n=5(i-1)+1}^{5i}\bigr)\in\mathbb{R}^{5\cdot513\times513}=\mathbb{R}^{2565\times513}. \operatorname{concat}_{\text{time}}\bigl(\{\widetilde{\mathbf{a}}_{r}^{(n)}\}_{n=5(i-1)+1}^{5i}\bigr)\in\mathbb{R}^{5\cdot513\times513}=\mathbb{R}^{2565\times513}.
\end{equation} \end{equation}

View File

@@ -1,4 +1,5 @@
\subsection{Alat Perangkat Keras} \subsection{Alat Perangkat Keras}
\label{sec:hardware}
Data getaran struktur yang digunakan dalam penelitian ini diperoleh dari penelitian oleh \textcite{abdeljaber2017}, yang dilakukan menggunakan simulator struktur baja Grandstand di Queens University. Dalam eksperimen tersebut, struktur baja dipasang dengan akselerometer pada setiap sambungan-sambungan (\textit{joints}). Rangkaian perangkat keras yang digunakan untuk pengambilan data meliputi: Data getaran struktur yang digunakan dalam penelitian ini diperoleh dari penelitian oleh \textcite{abdeljaber2017}, yang dilakukan menggunakan simulator struktur baja Grandstand di Queens 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} \begin{itemize}

View File

@@ -9,12 +9,12 @@ dalam mendeteksi dan mengklasifikasikan lokasi kerusakan struktur \textit{grid}.
% Secara ringkas, kami menampilkan: (i) performa utama pada data uji, (ii) analisis per-kelas dan pola kesalahan, (iii) studi ablation dan sensitivitas mencakup fitur, parameter STFT, serta jumlah/posisi sensor, dan (iv) uji robustness serta implikasi implementasi. Detail metodologi eksperimen telah diuraikan pada Bab Metodologi; bagian ini berfokus pada temuan empiris dan interpretasinya. % Secara ringkas, kami menampilkan: (i) performa utama pada data uji, (ii) analisis per-kelas dan pola kesalahan, (iii) studi ablation dan sensitivitas mencakup fitur, parameter STFT, serta jumlah/posisi sensor, dan (iv) uji robustness serta implikasi implementasi. Detail metodologi eksperimen telah diuraikan pada Bab Metodologi; bagian ini berfokus pada temuan empiris dan interpretasinya.
\section{Hasil Ekstraksi Fitur STFT} \section{Hasil Ekstraksi Fitur STFT}
Bagian ini menyajikan contoh hasil transformasi STFT yang diterapkan Bagian ini menyajikan contoh hasil transformasi \gls{stft} yang diterapkan
pada sinyal percepatan dari sensor atas dan bawah. pada sinyal percepatan dari sensor atas dan bawah.
Analisis dilakukan untuk memastikan konsistensi pola spektral Analisis dilakukan untuk memastikan konsistensi pola spektral
dan kesetaraan ukuran data antar kelas sebelum proses pelatihan model. dan kesetaraan ukuran data antar kelas sebelum proses pelatihan model.
Gambar~\ref{fig:stft-undamaged} memperlihatkan hasil STFT gabungan (\textit{aggregated}) untuk seluruh titik join tanpa kerusakan (kelas 0). Gambar~\ref{fig:stft-undamaged} memperlihatkan hasil \gls{stft} gabungan (\textit{aggregated}) untuk seluruh titik join tanpa kerusakan (kelas 0).
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\begin{minipage}{0.48\textwidth} \begin{minipage}{0.48\textwidth}
@@ -29,21 +29,21 @@ Gambar~\ref{fig:stft-undamaged} memperlihatkan hasil STFT gabungan (\textit{aggr
% \caption{Caption for the second image.} % \caption{Caption for the second image.}
% \label{fig:image2} % \label{fig:image2}
\end{minipage} \end{minipage}
\caption{STFT tanpa kerusakan (undamaged). Sensor A (kiri) dan Sensor B (kanan)} \caption{\gls{stft} tanpa kerusakan (undamaged). Sensor A (kiri) dan Sensor B (kanan)}
\label{fig:stft-undamaged} \label{fig:stft-undamaged}
\end{figure} \end{figure}
Gambar~\ref{fig:stft-damaged-multiple-a} dan Gambar~\ref{fig:stft-damaged-multiple-b} memperlihatkan hasil STFT gabungan (\textit{aggregated}) untuk seluruh titik join dengan kerusakan (kelas 1--6). Setiap 513 segmen waktu merepresentasikan kolom sensor yang ditinjau. Gambar~\ref{fig:stft-damaged-multiple-a} dan Gambar~\ref{fig:stft-damaged-multiple-b} memperlihatkan hasil \gls{stft} gabungan (\textit{aggregated}) untuk seluruh titik join dengan kerusakan (kelas 1--6). Setiap 513 segmen waktu merepresentasikan kolom sensor yang ditinjau.
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includesvg[width=\textwidth, pretex=\tiny, inkscapelatex=true]{chapters/img/sensor1/stft-damaged-multiple-1.svg} \includesvg[width=\textwidth, pretex=\tiny, inkscapelatex=true]{chapters/img/sensor1/stft-damaged-multiple-1.svg}
\caption{STFT sensor A dengan kerusakan (damaged $d_1$\textemdash $d_6$).} \caption{\gls{stft} sensor A dengan kerusakan (damaged $d_1$\textemdash $d_6$).}
\label{fig:stft-damaged-multiple-a} \label{fig:stft-damaged-multiple-a}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includesvg[width=1\textwidth, pretex=\tiny, inkscapelatex=true]{chapters/img/sensor2/stft-damaged-multiple-2.svg} \includesvg[width=1\textwidth, pretex=\tiny, inkscapelatex=true]{chapters/img/sensor2/stft-damaged-multiple-2.svg}
\caption{STFT sensor B dengan kerusakan (damaged $d_1$\textemdash $d_6$).} \caption{\gls{stft} sensor B dengan kerusakan (damaged $d_1$\textemdash $d_6$).}
\label{fig:stft-damaged-multiple-b} \label{fig:stft-damaged-multiple-b}
\end{figure} \end{figure}
@@ -53,7 +53,7 @@ Gambar~\ref{fig:stft-damaged-multiple-a} dan Gambar~\ref{fig:stft-damaged-multip
Sebelum tahap pelatihan model dilakukan, diperlukan analisis eksplorasi Sebelum tahap pelatihan model dilakukan, diperlukan analisis eksplorasi
untuk memahami distribusi dan karakteristik data fitur hasil ekstraksi untuk memahami distribusi dan karakteristik data fitur hasil ekstraksi
STFT pada himpunan $\mathcal{D}_A$ dan $\mathcal{D}_B$. \gls{stft} pada himpunan $\mathcal{D}_A$ dan $\mathcal{D}_B$.
Analisis ini bertujuan untuk menilai sejauh mana fitur yang diperoleh Analisis ini bertujuan untuk menilai sejauh mana fitur yang diperoleh
mampu merepresentasikan perbedaan kondisi struktur mampu merepresentasikan perbedaan kondisi struktur
serta menentukan parameter reduksi dimensi yang sesuai serta menentukan parameter reduksi dimensi yang sesuai
@@ -63,15 +63,15 @@ pada tahap pemodelan berikutnya.
Transformasi \gls{pca} diterapkan terhadap data fitur berdimensi Transformasi \gls{pca} diterapkan terhadap data fitur berdimensi
$513$ untuk mengevaluasi proporsi variansi yang dapat dijelaskan $513$ untuk mengevaluasi proporsi variansi yang dapat dijelaskan
oleh setiap komponen utama. oleh setiap komponen utama.
Dengan menghitung \textit{explained variance ratio}, diperoleh Dengan menghitung \textit{\gls{explained-variance-ratio}}, diperoleh
diagram \textit{scree} seperti pada Gambar~\ref{fig:scree_plot}, diagram \textit{scree} seperti pada Gambar~\ref{fig:scree_plot},
yang menunjukkan kontribusi masing-masing komponen terhadap yang menunjukkan kontribusi masing-masing komponen terhadap
total variansi data. total variansi data.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=.75\textwidth]{chapters/img/sensor1/scree_plot.png} \includegraphics[width=.75\textwidth]{chapters/img/scree_plot.png}
\caption{Diagram \textit{scree} hasil analisis PCA pada dataset $\mathcal{D}_A$ dan $\mathcal{D}_B$.} \caption{Diagram \textit{scree} hasil analisis \gls{pca} pada dataset $\mathcal{D}_A$ dan $\mathcal{D}_B$.}
\label{fig:scree_plot} \label{fig:scree_plot}
\end{figure} \end{figure}
@@ -85,19 +85,20 @@ Dari Gambar~\ref{fig:scree_plot} terlihat bahwa \textit{explained ratio cumulati
\subsection{Reduksi Dimensi Sebelum Visualisasi} \subsection{Reduksi Dimensi Sebelum Visualisasi}
Sebelum diterapkan metode reduksi dimensi non-linear seperti \gls{tsne} Sebelum diterapkan metode reduksi dimensi non-linear seperti \gls{tsne}
dan \gls{pacmap}, terlebih dahulu dilakukan reduksi dimensi linear dan \gls{pacmap}, \text{\gls{standard-scaler}} terlebih dahulu dilakukan pada data \textit{train-split} yang kemudian reduksi dimensi linear diterapkan
menggunakan \gls{pca} untuk menghilangkan derau dan mengurangi kompleksitas menggunakan \gls{pca} untuk menghilangkan derau (\textit{noise}) dan mengurangi kompleksitas
fitur STFT yang berukuran tinggi ($513$ dimensi). fitur \gls{stft} yang berdimensi tinggi ($513$ dimensi).
Langkah ini umum digunakan untuk meningkatkan stabilitas dan efisiensi Langkah ini umum digunakan untuk meningkatkan stabilitas dan efisiensi
proses embedding \parencite{JMLR:v9:vandermaaten08a}. proses embedding \parencite{JMLR:v9:vandermaaten08a}.
Pada penelitian ini, beberapa nilai komponen PCA digunakan \\ Pada penelitian ini, beberapa nilai komponen \gls{pca} digunakan \\
($n_\text{components}\in\{512,128,32,8\}$) ($n_\text{components}\in\{512,128,32,8\}$)
untuk menilai pengaruh tingkat reduksi terhadap hasil proyeksi t-SNE untuk menilai pengaruh tingkat reduksi terhadap hasil proyeksi \gls{tsne}
dan PaCMAP. dan \gls{pacmap}.
Gambar~\ref{fig:pca_tsne_pacmap} memperlihatkan contoh visualisasi Gambar~\ref{fig:pca_tsne_pacmap_A} dan~\ref{fig:pca_tsne_pacmap_B} memperlihatkan contoh visualisasi
dua dimensi hasil reduksi berurutan PCA $\rightarrow$ t-SNE dan dua dimensi hasil reduksi berurutan \gls{pca} $\rightarrow$ \gls{tsne} dan
PCA $\rightarrow$ PaCMAP pada dataset $\mathcal{D}_A$. \gls{pca} $\rightarrow$ \gls{pacmap} pada Sensor A dan B
% $\mathcal{D}_A$.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@@ -109,10 +110,10 @@ PCA $\rightarrow$ PaCMAP pada dataset $\mathcal{D}_A$.
\subfloat[PCA=16]{\includegraphics[width=.24\textwidth]{chapters/img/sensor1/pacmap_pca16.png}} \subfloat[PCA=16]{\includegraphics[width=.24\textwidth]{chapters/img/sensor1/pacmap_pca16.png}}
\subfloat[PCA=8]{\includegraphics[width=.24\textwidth]{chapters/img/sensor1/pacmap_pca8.png}} \subfloat[PCA=8]{\includegraphics[width=.24\textwidth]{chapters/img/sensor1/pacmap_pca8.png}}
\subfloat[PCA=4]{\includegraphics[width=.24\textwidth]{chapters/img/sensor1/pacmap_pca4.png}} \subfloat[PCA=4]{\includegraphics[width=.24\textwidth]{chapters/img/sensor1/pacmap_pca4.png}}
\caption{Visualisasi hasil reduksi bertahap pada $\mathcal{D}_A$ dengan PCA $\rightarrow$ t-SNE (baris atas) \caption{Visualisasi hasil reduksi bertahap pada $\mathcal{D}_A$ dengan \gls{pca} $\rightarrow$ \gls{tsne} (baris atas) dan \gls{pca} $\rightarrow$ \gls{pacmap} (baris bawah).}
dan PCA $\rightarrow$ PaCMAP (baris bawah).}
\label{fig:pca_tsne_pacmap_A} \label{fig:pca_tsne_pacmap_A}
\end{figure} \end{figure}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\subfloat[PCA=512]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/tsne_original.png}} \subfloat[PCA=512]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/tsne_original.png}}
@@ -123,19 +124,20 @@ PCA $\rightarrow$ PaCMAP pada dataset $\mathcal{D}_A$.
\subfloat[PCA=16]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/pacmap_pca16.png}} \subfloat[PCA=16]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/pacmap_pca16.png}}
\subfloat[PCA=8]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/pacmap_pca8.png}} \subfloat[PCA=8]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/pacmap_pca8.png}}
\subfloat[PCA=4]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/pacmap_pca4.png}} \subfloat[PCA=4]{\includegraphics[width=.24\textwidth]{chapters/img/sensor2/pacmap_pca4.png}}
\caption{Visualisasi hasil reduksi bertahap pada $\mathcal{D}_B$ dengan PCA $\rightarrow$ t-SNE (baris atas) \caption{Visualisasi hasil reduksi bertahap pada $\mathcal{D}_B$ dengan \gls{pca} $\rightarrow$ \gls{tsne} (baris atas)
dan PCA $\rightarrow$ PaCMAP (baris bawah).} dan \gls{pca} $\rightarrow$ \gls{pacmap} (baris bawah).}
\label{fig:pca_tsne_pacmap_B} \label{fig:pca_tsne_pacmap_B}
\end{figure} \end{figure}
Hasil pada Gambar~\ref{fig:pca_tsne_pacmap} menunjukkan bahwa Hasil pada Gambar~\ref{fig:pca_tsne_pacmap_A} dan~\ref{fig:pca_tsne_pacmap_B} menunjukkan bahwa
pengurangan jumlah komponen PCA hingga 8 dimensi pengurangan jumlah komponen \gls{pca} hingga 8 dimensi
masih mempertahankan pemisahan antar kelas secara visual, masih mempertahankan pemisahan antar kelas secara visual,
sedangkan reduksi lebih jauh (misalnya $n_\text{components}=4$) sedangkan reduksi lebih jauh (misalnya $n_\text{components}=4$)
menyebabkan beberapa klaster saling tumpang tindih (\textit{overlap}). menyebabkan beberapa klaster saling tumpang tindih (\textit{overlap}).
Temuan ini mendukung pemilihan nilai $n_\text{components}$
Eksplorasi data ini mendukung pemilihan nilai $n_\text{components}$
sebagai salah satu parameter penting yang diuji dalam sebagai salah satu parameter penting yang diuji dalam
pencarian \textit{grid} pada tahap optimasi model untuk mengurangi kompleksitas model dan efisiensi komputasi. \textit{\gls{grid-search}} pada tahap optimasi model untuk mengurangi kompleksitas model dan efisiensi komputasi.
% \subsection{Visualisasi Ruang Fitur Non-Linear} % \subsection{Visualisasi Ruang Fitur Non-Linear}
% Selain PCA, digunakan dua metode reduksi dimensi non-linear, % Selain PCA, digunakan dua metode reduksi dimensi non-linear,
@@ -177,74 +179,81 @@ pencarian \textit{grid} pada tahap optimasi model untuk mengurangi kompleksitas
\subsection{Interpretasi dan Implikasi} \subsection{Interpretasi dan Implikasi}
Hasil eksplorasi ini menunjukkan bahwa: Hasil eksplorasi ini menunjukkan bahwa:
\begin{enumerate} \begin{enumerate}
\item Variansi utama data dapat dijelaskan oleh sejumlah kecil komponen PCA, \item Variansi utama data dapat dijelaskan oleh sejumlah kecil komponen \gls{pca}, sehingga reduksi dimensi berpotensi meningkatkan efisiensi komputasi tanpa kehilangan informasi penting.
sehingga reduksi dimensi berpotensi meningkatkan efisiensi komputasi \item Visualisasi \gls{tsne} dan \gls{pacmap} memperlihatkan bahwa fitur \gls{stft} mampu mengelompokkan kondisi struktur yang cukup baik sesuai label kerusakan, mendukung validitas pemilihan \gls{stft} sebagai metode ekstraksi fitur.
tanpa kehilangan informasi penting.
\item Visualisasi t-SNE dan PaCMAP memperlihatkan bahwa fitur STFT
mampu mengelompokkan kondisi struktur sesuai label kerusakan,
mendukung validitas pemilihan STFT sebagai metode ekstraksi fitur.
\item Perbedaan antara kanal sensor~A ($\mathcal{D}_A$) dan sensor~B ($\mathcal{D}_B$) tidak signifikan, \item Perbedaan antara kanal sensor~A ($\mathcal{D}_A$) dan sensor~B ($\mathcal{D}_B$) tidak signifikan,
sehingga keduanya dapat diperlakukan sebagai dua sumber informasi sehingga keduanya dapat diperlakukan sebagai dua sumber informasi
komplementer pada tahap pelatihan model. komplementer pada tahap pelatihan model.
\end{enumerate} \end{enumerate}
Temuan ini menjadi dasar untuk menentukan jumlah komponen PCA Temuan ini menjadi dasar untuk menentukan potensi jumlah komponen \gls{pca} yang akan digunakan pada \textit{grid search} saat optimasi \textit{hyperparameter} model \gls{svm}.
yang akan digunakan pada \textit{grid search} saat optimasi \textit{hyperparameter} model SVM.
\section{Hasil \textit{Coarse Grid-Search}} \section{Hasil \textit{Coarse Grid-Search}}
\label{sec:grid-results} \label{sec:grid-results}
Setelah proses ekstraksi fitur dan pembentukan dataset berlabel, Setelah proses ekstraksi fitur dan pembentukan dataset berlabel,
tahap berikutnya adalah melakukan pencarian \textit{grid} tahap berikutnya adalah melakukan \textit{\gls{grid-search}}
untuk mengoptimalkan parameter model \gls{svm} untuk mengoptimalkan \textit{hyperparameter} model \gls{svm}
dengan kernel \gls{rbf}. dengan kernel \gls{rbf} seperti yang disajikan dalam Tabel~\ref{tab:grid_search_parameters}.
Tiga parameter yang dioptimalkan adalah:
\begin{enumerate}
\item jumlah komponen utama \(\,n_{\text{components}}\,\) pada reduksi dimensi \gls{pca},
\item parameter regulasi \(C\),
\item parameter kernel \(\gamma\).
\end{enumerate}
Total kombinasi parameter yang diuji berjumlah \(5\times5\times8 = 200\) kandidat model Total kombinasi parameter yang diuji berjumlah \(5\times5\times8 = 200\) kandidat model
dengan skema \textit{stratified 5-fold cross-validation} menghasilkan total 1000 kali \textit{fitting}. dengan skema \textit{\gls{stratified-k-fold} \gls{cross-validation}} $k=5$ menghasilkan total 1000 kali \textit{fitting}.
Setiap kombinasi dievaluasi menggunakan metrik akurasi rata-rata Setiap kombinasi dievaluasi menggunakan metrik akurasi rata-rata
pada data validasi. pada data validasi. Proses ini memakan waktu hingga 1 jam 38 detik untuk Sensor A dan 1 jam 34 detik untuk Sensor B pada spesifikasi perangkat keras seperti pada Subbab~\ref{sec:hardware}.
\subsection{Evaluasi Keseluruhan} \begin{table}[H]
Distribusi akurasi seluruh kandidat model ditunjukkan pada
Gambar~\ref{fig:grid_hist}.
Sebagian besar kombinasi menghasilkan akurasi di atas~95\%,
menunjukkan bahwa fitur STFT memiliki daya klasifikasi yang kuat
terhadap kondisi struktur.
\begin{figure}[H]
\centering \centering
% \includegraphics[width=.65\textwidth]{figures/grid_hist.pdf} \caption{Hasil ringkasan \textit{coarse grid-search} pada Sensor A ($\mathcal{D}_A$).}
\caption{Distribusi akurasi validasi silang dari 225 kombinasi parameter $(C,\gamma,n_{\text{components}})$.} \label{tab:coarse_summary_A}
\label{fig:grid_hist} \input{chapters/id/tables/coarse_summary_A}
\end{figure} \end{table}
\subsection{Pengaruh Jumlah Komponen PCA} \begin{table}[H]
Rata-rata akurasi tertinggi untuk setiap nilai $n_{\text{components}}$
ditampilkan pada Gambar~\ref{fig:pca_acc_overall}.
Terlihat bahwa akurasi meningkat hingga mencapai puncak pada rentang
$n_{\text{components}} = 64$--$128$, kemudian menurun ketika jumlah komponen
dikurangi secara agresif.
Hal ini menunjukkan bahwa sekitar 1025\% komponen utama sudah cukup
merepresentasikan informasi penting dari fitur STFT.
\begin{figure}[H]
\centering \centering
% \includegraphics[width=.7\textwidth]{figures/pca_acc_overall.pdf} \caption{Hasil ringkasan \textit{coarse grid-search} pada Sensor B ($\mathcal{D}_B$).}
\caption{Rata-rata akurasi terhadap jumlah komponen PCA berdasarkan hasil pencarian \textit{grid}.} \label{tab:coarse_summary_B}
\label{fig:pca_acc_overall} \input{chapters/id/tables/coarse_summary_B}
\end{figure} \end{table}
Tabel~\ref{tab:coarse_summary_A} dan~\ref{tab:coarse_summary_B} menunjukkan hasil ringkasan \textit{coarse grid-search} dengan nilai maksimum \textit{mean test score} untuk setiap konfigurasi $n_{\text{components}}$ pada Sensor A ($\mathcal{D}_A$) dan Sensor B ($\mathcal{D}_B$). Kolom \gls{not:S_i} menunjukkan akurasi tertinggi yang dicapai, sedangkan kolom \gls{not:T_i} mencatat waktu rata-rata (dalam detik) yang dibutuhkan untuk melatih model (\textit{mean fit time}) pada setiap kombinasi parameter.
Dari hasil tersebut, terlihat bahwa $n_{\text{components}}=64$ sudah mencapa akurasi yang cukup tinggi untuk kedua kanal sensor, dengan akurasi $\pm 99.7\%$, dengan peningkatan yang semakin kecil pada jumlah komponen yang lebih besar yaitu kurang dari 0.001\%. Hal ini menunjukkan bahwa data getaran struktur yang diekstraksi dengan \gls{stft} memiliki daya klasifikasi yang kuat terhadap kondisi struktur, dan penggunaan lebih dari 64 komponen utama memberikan peningkatan akurasi yang marginal.
% \subsection{Evaluasi Keseluruhan}
% Distribusi akurasi seluruh kandidat model ditunjukkan pada
% Gambar~\ref{fig:grid_hist}.
% Sebagian besar kombinasi menghasilkan akurasi di atas~95\%,
% menunjukkan bahwa fitur STFT memiliki daya klasifikasi yang kuat
% terhadap kondisi struktur.
% \begin{figure}[H]
% \centering
% % \includegraphics[width=.65\textwidth]{figures/grid_hist.pdf}
% \caption{Distribusi akurasi validasi silang dari 225 kombinasi parameter $(C,\gamma,n_{\text{components}})$.}
% \label{fig:grid_hist}
% \end{figure}
% \subsection{Pengaruh Jumlah Komponen PCA}
% Rata-rata akurasi tertinggi untuk setiap nilai $n_{\text{components}}$
% ditampilkan pada Gambar~\ref{fig:pca_acc_overall}.
% Terlihat bahwa akurasi meningkat hingga mencapai puncak pada rentang
% $n_{\text{components}} = 64$--$128$, kemudian menurun ketika jumlah komponen
% dikurangi secara agresif.
% Hal ini menunjukkan bahwa sekitar 1025\% komponen utama sudah cukup
% merepresentasikan informasi penting dari fitur STFT.
% \begin{figure}[H]
% \centering
% % \includegraphics[width=.7\textwidth]{figures/pca_acc_overall.pdf}
% \caption{Rata-rata akurasi terhadap jumlah komponen PCA berdasarkan hasil pencarian \textit{grid}.}
% \label{fig:pca_acc_overall}
% \end{figure}
\subsection{Peta Akurasi terhadap Parameter SVM} \subsection{Peta Akurasi terhadap Parameter SVM}
Untuk setiap kanal sensor, peta akurasi terhadap parameter $C$ dan~$\gamma$ Untuk setiap kanal sensor, peta akurasi terhadap parameter \gls{not:C}dan~\gls{not:gamma}
pada konfigurasi PCA terbaik ($n_{\text{components}}=128$) pada konfigurasi \gls{pca} terbaik ($n_{\text{components}}=128$)
ditunjukkan pada Gambar~\ref{fig:svm_heatmap}. Terlihat bahwa area akurasi tinggi terbentuk pada ditunjukkan pada Gambar~\ref{fig:svm_heatmap_A} dan~\ref{fig:svm_heatmap_B}. Terlihat bahwa area akurasi tinggi terbentuk pada
nilai \(C\) menengah dan \(\gamma\) kecil, nilai \gls{not:C} menengah dan \gls{not:gamma} kecil,
yang menandakan keseimbangan antara margin yang cukup lebar yang menandakan keseimbangan antara margin yang cukup lebar
dan kompleksitas model yang moderat. dan kompleksitas model yang moderat.
@@ -258,7 +267,7 @@ dan kompleksitas model yang moderat.
\subfloat[PCA=16]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_pca16.png}}\hfill \\[1ex] \subfloat[PCA=16]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_pca16.png}}\hfill \\[1ex]
\subfloat[PCA=8]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_pca8.png}}\hfill \subfloat[PCA=8]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_pca8.png}}\hfill
\subfloat[PCA=4]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_pca4.png}}\hfill \subfloat[PCA=4]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_pca4.png}}\hfill
\caption{\textit{Heatmap mean test score} terhadap parameter $C$ dan~$\gamma$ untuk setiap komponen utama PCA pada Sensor A ($\mathcal{D}_A$).} \caption{\textit{Heatmap mean test score} terhadap parameter \gls{not:C}dan~\gls{not:gamma} untuk setiap komponen utama PCA pada Sensor A ($\mathcal{D}_A$).}
\label{fig:svm_heatmap_A} \label{fig:svm_heatmap_A}
\end{figure} \end{figure}
@@ -272,7 +281,7 @@ dan kompleksitas model yang moderat.
\subfloat[PCA=16]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_pca16.png}}\hfill \\[1ex] \subfloat[PCA=16]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_pca16.png}}\hfill \\[1ex]
\subfloat[PCA=8]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_pca8.png}}\hfill \subfloat[PCA=8]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_pca8.png}}\hfill
\subfloat[PCA=4]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_pca4.png}}\hfill \subfloat[PCA=4]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_pca4.png}}\hfill
\caption{\textit{Heatmap mean test score} terhadap parameter $C$ dan~$\gamma$ untuk setiap komponen utama PCA pada Sensor B ($\mathcal{D}_B$).} \caption{\textit{Heatmap mean test score} terhadap parameter \gls{not:C}dan~\gls{not:gamma} untuk setiap komponen utama PCA pada Sensor B ($\mathcal{D}_B$).}
\label{fig:svm_heatmap_B} \label{fig:svm_heatmap_B}
\end{figure} \end{figure}
@@ -282,70 +291,32 @@ Selain mempertimbangkan akurasi rata-rata (\textit{mean test score})
sebagai satu-satunya metrik evaluasi, penelitian ini juga memperhitungkan sebagai satu-satunya metrik evaluasi, penelitian ini juga memperhitungkan
waktu pelatihan rata-rata (\textit{mean fit time}) untuk menilai efisiensi komputasi. waktu pelatihan rata-rata (\textit{mean fit time}) untuk menilai efisiensi komputasi.
Hal ini penting karena peningkatan akurasi sering kali diikuti dengan Hal ini penting karena peningkatan akurasi sering kali diikuti dengan
kenaikan waktu pelatihan yang tidak proporsional, sehingga diperlukan kenaikan waktu pelatihan yang tidak proporsional.
kompromi antara performa dan kompleksitas.
Untuk mengukur keseimbangan tersebut, didefinisikan metrik efisiensi: Metrik \gls{not:E_i} menggambarkan rasio akurasi terhadap biaya waktu pelatihan.
\begin{equation} Semakin besar nilai \gls{not:E_i}, semakin efisien model tersebut atau
E_i = \frac{S_i}{T_i^{\alpha}},
\label{eq:efficiency_metric}
\end{equation}
dengan:
\begin{itemize}
\item $S_i$ = rata-rata skor akurasi hasil 5-\textit{fold cross-validation} (01),
\item $T_i$ = rata-rata waktu pelatihan per iterasi (dalam detik),
\end{itemize}
Metrik $E_i$ menggambarkan rasio akurasi terhadap biaya waktu pelatihan.
Semakin besar nilai $E_i$, semakin efisien model tersebut atau
model mampu mencapai akurasi tinggi dengan waktu pelatihan yang relatif singkat. model mampu mencapai akurasi tinggi dengan waktu pelatihan yang relatif singkat.
% \begin{figure}[H] % \begin{figure}[H]
% \centering % \centering
% % \includegraphics[width=.7\textwidth]{figures/efficiency_score.pdf} % % \includegraphics[width=.7\textwidth]{figures/efficiency_score.pdf}
% \caption{Perbandingan metrik efisiensi ($E_i$) dan akurasi rata-rata ($S_i$) % \caption{Perbandingan metrik efisiensi (\gls{not:E_i}$$) dan akurasi rata-rata (\gls{not:S_i})
% terhadap jumlah komponen PCA.} % terhadap jumlah komponen PCA.}
% \label{fig:efficiency_score} % \label{fig:efficiency_score}
% \end{figure} % \end{figure}
\begin{table}[H] \begin{table}[H]
\centering \centering
\begin{tabular}{rrrrrr}
\toprule
$n_{\text{components}}$ & $C (\log{2})$ & $\gamma (\log{2})$ & $S_i$ & $T_i$ & $E_i (\times10^{-3})$ \\
\midrule
4 & 5 & -5 & 0.80764 & 11.22306 & 71.96291 \\
8 & 5 & -5 & 0.97076 & 10.88293 & 89.20027 \\
16 & 5 & -5 & 0.99116 & 10.53770 & 94.05832 \\
32 & 10 & -10 & 0.99394 & 10.45783 & 95.04296 \\
64 & 10 & -10 & 0.99631 & 13.46819 & 73.97505 \\
128 & 5 & -10 & 0.99728 & 13.43715 & 74.21849 \\
256 & 5 & -10 & 0.99756 & 17.84189 & 55.91131 \\
512 & 5 & -10 & 0.99763 & 31.24036 & 31.93410 \\
\bottomrule
\end{tabular}
\caption{Hasil ringkasan nilai maksimum \textit{mean test score} untuk setiap konfigurasi $n_{\text{components}}$ pada Sensor A ($\mathcal{D}_A$).} \caption{Hasil ringkasan nilai maksimum \textit{mean test score} untuk setiap konfigurasi $n_{\text{components}}$ pada Sensor A ($\mathcal{D}_A$).}
\label{tab:efficiency_summary_A} \label{tab:efficiency_summary_A}
\input{chapters/id/tables/efficiency_summary_A}
\end{table} \end{table}
\begin{table}[H] \begin{table}[H]
\centering \centering
\begin{tabular}{rrrrrr}
\toprule
$n_{\text{components}}$ & $C (\log{2})$ & $\gamma (\log{2})$ & $S_i$ & $T_i$ & $E_i (\times10^{-3})$ \\
\midrule
4 & 5 & -5 & 0.87845 & 13.77282 & 63.78107 \\
8 & 0 & -5 & 0.98051 & 12.51643 & 78.33758 \\
16 & 5 & -5 & 0.99443 & 10.90890 & 91.15776 \\
32 & 5 & -10 & 0.99596 & 13.42619 & 74.18057 \\
64 & 5 & -10 & 0.99735 & 11.40759 & 87.42906 \\
128 & 5 & -10 & 0.99728 & 14.54694 & 68.55632 \\
256 & 5 & -10 & 0.99777 & 20.27980 & 49.20029 \\
512 & 5 & -10 & 0.99791 & 39.63068 & 25.18027 \\
\bottomrule
\end{tabular}
\caption{Hasil ringkasan nilai maksimum \textit{mean test score} untuk setiap konfigurasi $n_{\text{components}}$ pada Sensor B ($\mathcal{D}_B$).} \caption{Hasil ringkasan nilai maksimum \textit{mean test score} untuk setiap konfigurasi $n_{\text{components}}$ pada Sensor B ($\mathcal{D}_B$).}
\label{tab:efficiency_summary_B} \label{tab:efficiency_summary_B}
\input{chapters/id/tables/efficiency_summary_B}
\end{table} \end{table}
Hasil pada Tabel~\ref{tab:efficiency_summary_A} dan Tabel~\ref{tab:efficiency_summary_B} menunjukkan bahwa, Hasil pada Tabel~\ref{tab:efficiency_summary_A} dan Tabel~\ref{tab:efficiency_summary_B} menunjukkan bahwa,
@@ -362,59 +333,29 @@ Berdasarkan kombinasi akurasi, waktu pelatihan, dan metrik efisiensi,
konfigurasi dengan $n_{\text{components}}=32$ untuk Sensor A dan $n_{\text{components}}=16$ untuk Sensor B dipilih sebagai konfigurasi dengan $n_{\text{components}}=32$ untuk Sensor A dan $n_{\text{components}}=16$ untuk Sensor B dipilih sebagai
\textit{baseline} optimal untuk model akhir. \textit{baseline} optimal untuk model akhir.
Model \textit{baseline} ini akan digunakan sebagai acuan pada tahap evaluasi model dan pencarian \textit{hyperparameter} lanjutan (\textit{fine grid-search}) Model \textit{baseline} ini akan digunakan sebagai acuan pada tahap evaluasi model dan pencarian \textit{hyperparameter} lanjutan (\textit{fine grid-search})
yang dibahas pada subab berikutnya. yang dibahas pada subbab berikutnya.
\section{Evaluasi Model \textit{Baseline}} \section{Evaluasi Model \textit{Baseline}}
\label{sec:baseline_performance} \label{sec:baseline_performance}
Model \textit{baseline} yang digunakan diperoleh dari \textit{coarse grid-search} pada subab \ref{sec:efficiency_analysis} adalah SVM dengan kernel RBF, 32 komponen PCA, dan parameter $C=2^{10}$, $\gamma=2^{-10}$ untuk Sensor A, sedangkan untuk Sensor B adalah SVM dengan kernel RBF, 16 komponen PCA, dan parameter $C=2^{5}$, $\gamma=2^{-5}$. Pada bagian ini, dilakukan evaluasi performa model \textit{baseline} dengan data uji yang berbeda (\textit{Dataset} B). Model \textit{baseline} yang digunakan diperoleh dari \textit{coarse \gls{grid-search}} pada Subbab~\ref{sec:efficiency_analysis} adalah \gls{svm} dengan kernel \gls{rbf}, 32 komponen \gls{pca}, dan \textit{hyperparameter} $C=2^{10}$, $\gamma=2^{-10}$ untuk Sensor A, sedangkan untuk Sensor B adalah SVM dengan kernel RBF, 16 komponen PCA, dan \textit{hyperparameter} $C=2^{5}$, $\gamma=2^{-5}$. Pada bagian ini, dilakukan evaluasi performa model \textit{baseline} dengan data uji yang berbeda (\textit{Dataset} B).
\subsection{Metrik Klasifikasi} \subsection{Metrik Klasifikasi}
Metrik klasifikasi model \textit{baseline} pada dataset pengujian disajikan pada Tabel~\ref{tab:metrics-baseline_A} dan~\ref{tab:matrics-baseline_B}. Metrik klasifikasi model \textit{baseline} pada dataset pengujian disajikan pada Tabel~\ref{tab:metrics-baseline_A} dan~\ref{tab:metrics-baseline_B}.
\begin{table}[htbp] \begin{table}[htbp]
\centering \centering
\caption{\textit{Classification report} model \textit{baseline} pada Sensor A} \caption{\textit{Classification report} model \textit{baseline} pada Sensor A}
\label{tab:metrics-baseline_A} \label{tab:metrics-baseline_A}
\begin{tabular}{lrrrr} \input{chapters/id/tables/metrics-baseline_A.tex}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.99 & 0.98 & 0.99 & 2565.00 \\
1 & 0.99 & 1.00 & 1.00 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 1.00 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 0.99 & 1.00 & 0.99 & 2565.00 \\
accuracy & 1.00 & 1.00 & 1.00 & 1.00 \\
macro avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
weighted avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
\bottomrule
\end{tabular}
\end{table} \end{table}
\begin{table}[htbp] \begin{table}[htbp]
\centering \centering
\caption{\textit{Classification report} model \textit{baseline} pada Sensor B} \caption{\textit{Classification report} model \textit{baseline} pada Sensor B}
\label{tab:metrics-baseline_B} \label{tab:metrics-baseline_B}
\begin{tabular}{lrrrr} \input{chapters/id/tables/metrics-baseline_B.tex}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.98 & 0.99 & 0.99 & 2565.00 \\
1 & 0.99 & 1.00 & 0.99 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 1.00 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 1.00 & 1.00 & 1.00 & 2565.00 \\
accuracy & 1.00 & 1.00 & 1.00 & 1.00 \\
macro avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
weighted avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
\bottomrule
\end{tabular}
\end{table} \end{table}
Hasil ini menunjukkan bahwa model \textit{baseline} kedua sensor mencapai akurasi 99\%. Nilai \textit{recall} yang relatif tinggi (99.0\%) menunjukkan bahwa model lebih sensitif untuk mendeteksi kelas kerusakan, meskipun nilai \textit{precision} yang sedikit lebih rendah, menunjukkan bahwa ada beberapa \textit{false-positive} yang dihasilkan. Hasil ini menunjukkan bahwa model \textit{baseline} kedua sensor mencapai akurasi 99\%. Nilai \textit{recall} yang relatif tinggi (99.0\%) menunjukkan bahwa model lebih sensitif untuk mendeteksi kelas kerusakan, meskipun nilai \textit{precision} yang sedikit lebih rendah, menunjukkan bahwa ada beberapa \textit{false-positive} yang dihasilkan.
@@ -438,92 +379,95 @@ Dari Gambar~\ref{fig:confusion-matrix-baseline_A} dan~\ref{fig:confusion-matrix-
\section{\textit{Fine Grid-Search}} \section{\textit{Fine Grid-Search}}
Optimasi model yang dilakukan yaitu dengan melakukan \textit{fine grid-search} pada rentang \textit{hyperparameter} model \textit{baseline} yang digunakan pada Subab~\ref{sec:baseline_performance}. Untuk Sensor A dengan $n_{\text{components}} = 32$ rentang parameter yang dicari adalah Optimasi model yang dilakukan yaitu dengan melakukan \textit{fine \gls{grid-search}} pada rentang \textit{hyperparameter} model \textit{baseline} yang digunakan pada Subbab~\ref{sec:baseline_performance}. Untuk Sensor A dengan $n_{\text{components}} = 32$ rentang \textit{hyperparameter} yang dicari adalah
\begin{align*} \begin{align*}
C &= \{\, 2^8,\, 2^{8.5},\, \ldots,\, 2^{12} \,\} \\ C &= \{\, 2^8,\, 2^{8.5},\, \ldots,\, 2^{12} \,\} \\
\gamma &= \{\, 2^{-12},\, 2^{-11.5},\, \ldots ,\, 2^{-8} \,\}, \gamma &= \{\, 2^{-12},\, 2^{-11.5},\, \ldots ,\, 2^{-8} \,\},
\end{align*}sedangkan Sensor B dengan $n_{\text{components}} = 16$ rentang parameter yang dicari adalah \end{align*}sedangkan Sensor B dengan $n_{\text{components}} = 16$ rentang \textit{hyperparameter} yang dicari adalah
\begin{align*} \begin{align*}
C &= \{\, 2^3,\, 2^{3.5},\, \ldots,\, 2^{7} \,\} \\ C &= \{\, 2^3,\, 2^{3.5},\, \ldots,\, 2^{7} \,\} \\
\gamma &= \{\, 2^{-7},\, 2^{-6.5},\, \ldots ,\, 2^{-3} \,\}. \gamma &= \{\, 2^{-7},\, 2^{-6.5},\, \ldots ,\, 2^{-3} \,\}.
\end{align*}. Pada proses ini, \textit{standard scaler} dan \textit{stratified k-fold cross validation} dengan $k=5$ tetap digunakan untuk menjaga konsistensi evaluasi model, sehingga total kombinasi parameter yang diuji adalah \(9\times9 = 81\) kandidat model dengan total 405 kali \textit{fitting}. \end{align*}. Pada proses ini, \textit{\gls{standard-scaler}} dan \textit{\gls{stratified-k-fold} \gls{cross-validation}} dengan $k=5$ tetap digunakan untuk menjaga konsistensi evaluasi model, sehingga total kombinasi parameter yang diuji adalah \(9\times9 = 81\) kandidat model dengan total 405 kali \textit{fitting}.
\subsection{Diagram \textit{Fine Grid-Search Heatmap}} \subsection{Diagram \textit{Fine Grid-Search Heatmap}}
Gambar~\ref{fig:svm_fine_heatmap} menunjukkan diagram \textit{heatmap} terhadap parameter \textit{fine grid-search} $C$ dan~$\gamma$ untuk masing-masing sensor. Akurasi tertinggi pada Sensor A diperoleh pada $C= \{\,2^{8}, \,2^{8.5}, \,2^{9}, \,2^{9.5}, \,2^{10}, \,2^{10.5},\,2^{11}, \,2^{11.5}, \,2^{12} \,\}$ dan $\gamma=2^{-9.5}$ dengan akurasi meningkat 0.15\% menjadi 99.54\%, sedangkan pada Sensor B diperoleh pada $C = \{\,2^{5},\,2^{5.5} \,\}$ dan $\gamma= \{\, 2^{-3},\, 2^{-3.5},\, 2^{-4}\,\}$ dengan akurasi meningkat 0.05\% menjadi 99.49\%. Hasil ini menunjukkan bahwa optimasi \textit{hyperparameter} lebih lanjut dapat meningkatkan performa model meskipun peningkatannya relatif kecil dibandingkan dengan model \textit{baseline}. Gambar~\ref{fig:svm_fine_heatmap} menunjukkan diagram \textit{heatmap} terhadap parameter \textit{fine grid-search} \gls{not:C}dan~\gls{not:gamma} untuk masing-masing sensor. Akurasi tertinggi pada Sensor A diperoleh pada $C= \{\,2^{8}, \,2^{8.5}, \,2^{9}, \,2^{9.5}, \,2^{10}, \,2^{10.5},\,2^{11}, \,2^{11.5}, \,2^{12} \,\}$ dan $\gamma=2^{-8}$ dengan akurasi meningkat 0.15\% menjadi 99.54\%, sedangkan pada Sensor B diperoleh pada $\gamma = \{\,2^{-5},\,2^{-5.5} \,\}$ dan $C= \{\, 2^{3},\, 2^{3.5},\, 2^{4}\,\}$ dengan akurasi meningkat 0.05\% menjadi 99.49\%. Hasil ini menunjukkan bahwa optimasi \textit{hyperparameter} lebih lanjut dapat meningkatkan performa model meskipun peningkatannya relatif kecil dibandingkan dengan model \textit{baseline}.
\begin{figure} \begin{figure}[H]
\centering \centering
\subfloat[Sensor A (PCA 32)]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_fine_pca32.png}} \subfloat[Sensor A (PCA 32)]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/grid_fine_pca32.png}}
\centering \centering
\subfloat[Sensor B (PCA 16)]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_fine_pca16.png}} \subfloat[Sensor B (PCA 16)]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/grid_fine_pca16.png}}
\caption{\textit{Heatmap mean test score} terhadap \textit{fine grid-search parameter} $C$ dan~$\gamma$} \caption{\textit{Heatmap mean test score} terhadap \textit{fine grid-search parameter} \gls{not:C}dan~\gls{not:gamma}}
\label{fig:svm_fine_heatmap} \label{fig:svm_fine_heatmap}
\end{figure} \end{figure}
\section{Evaluasi Model \textit{Fine Grid-Search}} \section{Evaluasi Model \textit{Fine Grid-Search}}
Model \textit{fine grid-search} dilatih pada \textit{dataset} A dan perlu dievaluasi performanya dengan data uji yang berbeda (\textit{dataset} B) untuk mengukur peningkatan performa dibandingkan model \textit{baseline}. Model \textit{fine \gls{grid-search}} dilatih pada \textit{dataset} A dan perlu dievaluasi performanya dengan data uji yang berbeda (\textit{dataset} B) untuk mengukur peningkatan performa dibandingkan model \textit{baseline}.
\subsection{Metrik Klasifikasi} \subsection{Metrik Klasifikasi}
Hasil performa model \textit{fine grid-search} pada data uji disajikan pada Tabel~\ref{tab:metrics-fine-a} dan~\ref{tab:metrics-fine-b}. Hasil performa model \textit{fine \gls{grid-search}} pada data uji disajikan pada Tabel~\ref{tab:metrics-fine-a} dan~\ref{tab:metrics-fine-b}.
\begin{table} \begin{table}
\centering \centering
\caption{\textit{Classification report} model Sensor A} \caption{\textit{Classification report} model Sensor A}
\label{tab:metrics-fine-a} \label{tab:metrics-fine-a}
\begin{tabular}{lrrrr} \input{chapters/id/tables/metrics-fine-a.tex}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.99 & 0.99 & 0.99 & 2565.00 \\
1 & 0.99 & 1.00 & 0.99 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 1.00 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 1.00 & 1.00 & 1.00 & 2565.00 \\
accuracy & 1.00 & 1.00 & 1.00 & 1.00 \\
macro avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
weighted avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
\bottomrule
\end{tabular}
\end{table} \end{table}
\begin{table} \begin{table}
\centering \centering
\caption{\textit{Classification report} model Sensor B} \caption{\textit{Classification report} model Sensor B}
\label{tab:metrics-fine-b} \label{tab:metrics-fine-b}
\begin{tabular}{lrrrr} \input{chapters/id/tables/metrics-fine-b.tex}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.98 & 0.97 & 0.98 & 2565.00 \\
1 & 0.99 & 1.00 & 1.00 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 0.99 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 0.98 & 0.99 & 0.99 & 2565.00 \\
accuracy & 0.99 & 0.99 & 0.99 & 0.99 \\
macro avg & 0.99 & 0.99 & 0.99 & 17955.00 \\
weighted avg & 0.99 & 0.99 & 0.99 & 17955.00 \\
\bottomrule
\end{tabular}
\end{table} \end{table}
\subsection{\textit{Confusion Matrix}} \subsection{\textit{Confusion Matrix}}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=.8\textwidth]{chapters/img/sensor1/cm_fine_s1a_eval.png} \includegraphics[width=.8\textwidth]{chapters/img/sensor1/cm_fine_s1a_eval.png}
\caption{\textit{Confusion matrix} model \textit{fine grid-search} pada Sensor A} \caption{\textit{Confusion matrix} model \textit{fine \gls{grid-search}} pada Sensor A}
\label{fig:cm_fine_s1a_eval} \label{fig:cm_fine_s1a_eval}
\end{figure} \end{figure}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=.8\textwidth]{chapters/img/sensor2/cm_fine_s2a_eval.png} \includegraphics[width=.8\textwidth]{chapters/img/sensor2/cm_fine_s2a_eval.png}
\caption{\textit{Confusion matrix} model \textit{fine grid-search} pada Sensor B} \caption{\textit{Confusion matrix} model \textit{fine \gls{grid-search}} pada Sensor B}
\label{fig:cm_fine_s2a_eval} \label{fig:cm_fine_s2a_eval}
\end{figure} \end{figure}
\section{Model \textit{Inference} dan Visualisasi Prediksi} \section{Model \textit{Inference} dan Visualisasi Prediksi}
Setelah model \textit{fine grid-search} dievaluasi, dilakukan proses \textit{inference} pada data uji untuk memvisualisasikan prediksi model. Gambar~\ref{fig:inference_s1a} dan~\ref{fig:inference_s2a} menunjukkan hasil prediksi model pada Sensor A dan Sensor B dalam \textit{heatmap} dan grafik probabilitasnya. Setelah model \textit{fine \gls{grid-search}} dievaluasi, dilakukan proses \textit{inference} pada data uji untuk memvisualisasikan prediksi model. Gambar~\ref{fig:inference_undamaged}, \ref{fig:inference_damaged_17}, dan~\ref{fig:inference_damaged_30} menunjukkan beberapa hasil prediksi model pada Sensor A dan Sensor B dalam \textit{heatmap} dan grafik probabilitasnya.
Pada kasus struktur tanpa kerusakan (Gambar~\ref{fig:inference_undamaged}), model memberikan prediksi \textit{false-positive}, sehingga beberapa titik pada \textit{heatmap} menunjukkan probabilitas kerusakan hingga 50\% meskipun struktur sebenarnya dalam kondisi baik, sedangkan pada kasus kerusakan \textit{joint} 17 (Gambar~\ref{fig:inference_damaged_17}) dan \textit{joint} 30 (Gambar~\ref{fig:inference_damaged_30}), model berhasil mengidentifikasi lokasi kerusakan dengan probabilitas tinggi ($\approx 100\%$) pada area yang sesuai. Hal ini menunjukkan bahwa model memiliki kemampuan deteksi kerusakan yang baik, meskipun masih terdapat beberapa \textit{false-positive} pada kondisi tanpa kerusakan.
\begin{figure}[H]
\centering
\subfloat[Grafik probabilitas prediksi model pada Sensor A]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/pod_fine_s1a_undamaged.png}}\hfill
\subfloat[\textit{Heatmap} prediksi model pada Sensor A]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/inference_fine_s1a_undamaged.png}} \\[1ex]
\centering
\subfloat[Grafik probabilitas prediksi model pada Sensor B]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/pod_fine_s2a_undamaged.png}}\hfill
\subfloat[\textit{Heatmap} prediksi model pada Sensor B]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/inference_fine_s2a_undamaged.png}}
\caption{Hasil \textit{inference} model \textit{fine \gls{grid-search}} pada data uji (\textit{Dataset} B) kasus struktur tidak rusak.}
\label{fig:inference_undamaged}
\end{figure}
\begin{figure}[H]
\centering
\subfloat[Grafik probabilitas prediksi model pada Sensor A]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/pod_fine_s1a_damaged17.png}}\hfill
\subfloat[\textit{Heatmap} prediksi model pada Sensor A]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/inference_fine_s1a_damaged17.png}} \\[1ex]
\centering
\subfloat[Grafik probabilitas prediksi model pada Sensor B]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/pod_fine_s2a_damaged17.png}}\hfill
\subfloat[\textit{Heatmap} prediksi model pada Sensor B]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/inference_fine_s2a_damaged17.png}}
\caption{Hasil \textit{inference} model \textit{fine \gls{grid-search}} pada data uji (\textit{Dataset} B) kasus kerusakan \textit{joint} 17.}
\label{fig:inference_damaged_17}
\end{figure}
\begin{figure}[H]
\centering
\subfloat[Grafik probabilitas prediksi model pada Sensor A]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/pod_fine_s1a_damaged30.png}}\hfill
\subfloat[\textit{Heatmap} prediksi model pada Sensor A]{\includegraphics[width=.48\textwidth]{chapters/img/sensor1/inference_fine_s1a_damaged30.png}} \\[1ex]
\centering
\subfloat[Grafik probabilitas prediksi model pada Sensor B]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/pod_fine_s2a_damaged30.png}}\hfill
\subfloat[\textit{Heatmap} prediksi model pada Sensor B]{\includegraphics[width=.48\textwidth]{chapters/img/sensor2/inference_fine_s2a_damaged30.png}}
\caption{Hasil \textit{inference} model \textit{fine \gls{grid-search}} pada data uji (\textit{Dataset} B) kasus kerusakan \textit{joint} 30.}
\label{fig:inference_damaged_30}
\end{figure}
% \section{Efisiensi Komputasi} % \section{Efisiensi Komputasi}
% \subsection{Perbandingan Waktu Latih} % \subsection{Perbandingan Waktu Latih}

View File

@@ -0,0 +1,20 @@
\chapter{Kesimpulan dan Saran}
\section{Kesimpulan}
\begin{enumerate}
\item Sistem \gls{shm} berbasis sensor terbatas dengan ekstraksi fitur \gls{stft} dan algoritma \gls{svm} kernel \gls{rbf} mampu mendeteksi tujuh kondisi struktur dengan akurasi di atas 99\%.
\item Strategi \textit{grid-search} untuk optimasi \textit{hyperparameter} model \gls{svm} hanya memberikan peningkatan paling besar sekitar 0,001\% pada model Sensor A.
\item Reduksi dimensi \gls{pca} pada fitur-fitur \gls{stft} hingga 16 komponen utama mengurangi waktu pelatihan model secara signifikan hingga 75\% dan ukuran model hingga 99\% dengan pengurangan akurasi hanya 0,003\%.
\item Model Sensor A dan Sensor B dengan reduksi dimensi hingga enam belas komponen utama \gls{pca} memiliki metrik efisiensi terbaik hingga 91\% dengan waktu latih hanya 10 detik dan pengurangan akurasi 0,003\% dibandingkan model dengan fitur penuh yang memerlukan waktu latih 40 detik.
\item Hasil visualisasi pada \textit{inference} menunjukkan bahwa pendekatan ini hampir sama efektifnya dengan penelitian sebelumnya yang dapat mengidentifikasi lokalisasi 30 kerusakan meskipun jumlah sensor terbatas.
\end{enumerate}
% \section{Keterbatasan Penelitian}
% Penelitian ini dibatasi oleh ruang lingkup dataset QUGS yang hanya mencakup kerusakan tunggal, serta belum mencakup variasi kondisi lingkungan dan algoritma pembanding lainnya.
\section{Saran}
Penelitian lanjutan disarankan untuk memperluas variasi kondisi kerusakan, menguji performa model di lapangan, serta mengembangkan versi \textit{real-time} berbasis perangkat tepi.

View File

@@ -0,0 +1,15 @@
\centering
\begin{tabular}{rrrrr}
\toprule
$n_{\text{components}}$ & $C (\log_2)$ & $\gamma (\log_2)$ & \gls{not:S_i} & \gls{not:T_i} \\
\midrule
4 & 5 & -5 & 0.80764 & 11.22306 \\
8 & 5 & -5 & 0.97076 & 10.88293 \\
16 & 5 & -5 & 0.99116 & 10.53770 \\
32 & 10 & -10 & 0.99394 & 10.45783 \\
64 & 10 & -10 & 0.99631 & 13.46819 \\
128 & 5 & -10 & 0.99728 & 13.43715 \\
256 & 5 & -10 & 0.99756 & 17.84189 \\
512 & 5 & -10 & 0.99763 & 31.24036 \\
\bottomrule
\end{tabular}

View File

@@ -0,0 +1,15 @@
\centering
\begin{tabular}{rrrrr}
\toprule
$n_{\text{components}}$ & $C (\log_2)$ & $\gamma (\log_2)$ & \gls{not:S_i} & \gls{not:T_i} \\
\midrule
4 & 5 & -5 & 0.87845 & 13.77282 \\
8 & 0 & -5 & 0.98051 & 12.51643 \\
16 & 5 & -5 & 0.99443 & 10.90890 \\
32 & 5 & -10 & 0.99596 & 13.42619 \\
64 & 5 & -10 & 0.99735 & 11.40759 \\
128 & 5 & -10 & 0.99728 & 14.54694 \\
256 & 5 & -10 & 0.99777 & 20.27980 \\
512 & 5 & -10 & 0.99791 & 39.63068 \\
\bottomrule
\end{tabular}

View File

@@ -0,0 +1,15 @@
\centering
\begin{tabular}{rrrrrr}
\toprule
$n_{\text{components}}$ & $C (\log_2)$ & $\gamma (\log_2)$ & \gls{not:S_i} & \gls{not:T_i} & \gls{not:E_i} $(\times10^{-3})$ \\
\midrule
4 & 5 & -5 & 0.80764 & 11.22306 & 71.96291 \\
8 & 5 & -5 & 0.97076 & 10.88293 & 89.20027 \\
16 & 5 & -5 & 0.99116 & 10.53770 & 94.05832 \\
32 & 10 & -10 & 0.99394 & 10.45783 & 95.04296 \\
64 & 10 & -10 & 0.99631 & 13.46819 & 73.97505 \\
128 & 5 & -10 & 0.99728 & 13.43715 & 74.21849 \\
256 & 5 & -10 & 0.99756 & 17.84189 & 55.91131 \\
512 & 5 & -10 & 0.99763 & 31.24036 & 31.93410 \\
\bottomrule
\end{tabular}

View File

@@ -0,0 +1,15 @@
\centering
\begin{tabular}{rrrrrr}
\toprule
$n_{\text{components}}$ & $C (\log_2)$ & $\gamma (\log_2)$ & \gls{not:S_i} & \gls{not:T_i} & \gls{not:E_i} $(\times10^{-3})$ \\
\midrule
4 & 5 & -5 & 0.87845 & 13.77282 & 63.78107 \\
8 & 0 & -5 & 0.98051 & 12.51643 & 78.33758 \\
16 & 5 & -5 & 0.99443 & 10.90890 & 91.15776 \\
32 & 5 & -10 & 0.99596 & 13.42619 & 74.18057 \\
64 & 5 & -10 & 0.99735 & 11.40759 & 87.42906 \\
128 & 5 & -10 & 0.99728 & 14.54694 & 68.55632 \\
256 & 5 & -10 & 0.99777 & 20.27980 & 49.20029 \\
512 & 5 & -10 & 0.99791 & 39.63068 & 25.18027 \\
\bottomrule
\end{tabular}

View File

@@ -0,0 +1,16 @@
\begin{tabular}{lrrrr}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.99 & 0.98 & 0.99 & 2565.00 \\
1 & 0.99 & 1.00 & 1.00 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 1.00 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 0.99 & 1.00 & 0.99 & 2565.00 \\
accuracy & 1.00 & 1.00 & 1.00 & 1.00 \\
macro avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
weighted avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
\bottomrule
\end{tabular}

View File

@@ -0,0 +1,17 @@
\centering
\begin{tabular}{lrrrr}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.99 & 0.98 & 0.99 & 2565.00 \\
1 & 0.99 & 1.00 & 1.00 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 1.00 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 0.99 & 1.00 & 0.99 & 2565.00 \\
accuracy & 1.00 & 1.00 & 1.00 & 1.00 \\
macro avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
weighted avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
\bottomrule
\end{tabular}

View File

@@ -0,0 +1,16 @@
\begin{tabular}{lrrrr}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.99 & 0.99 & 0.99 & 2565.00 \\
1 & 0.99 & 1.00 & 0.99 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 1.00 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 1.00 & 1.00 & 1.00 & 2565.00 \\
accuracy & 1.00 & 1.00 & 1.00 & 1.00 \\
macro avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
weighted avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
\bottomrule
\end{tabular}

View File

@@ -0,0 +1,17 @@
\centering
\begin{tabular}{lrrrr}
\toprule
& precision & recall & f1-score & support \\
\midrule
0 & 0.99 & 0.99 & 0.99 & 2565.00 \\
1 & 0.99 & 1.00 & 0.99 & 2565.00 \\
2 & 1.00 & 1.00 & 1.00 & 2565.00 \\
3 & 1.00 & 1.00 & 1.00 & 2565.00 \\
4 & 1.00 & 1.00 & 1.00 & 2565.00 \\
5 & 1.00 & 1.00 & 1.00 & 2565.00 \\
6 & 1.00 & 1.00 & 1.00 & 2565.00 \\
accuracy & 1.00 & 1.00 & 1.00 & 1.00 \\
macro avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
weighted avg & 1.00 & 1.00 & 1.00 & 17955.00 \\
\bottomrule
\end{tabular}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 KiB

After

Width:  |  Height:  |  Size: 131 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 132 B

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8b58eb82f20438a1c077cad27cc59adc411466dddd89ab76add0fcc9ea8bba6c
size 50180

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d5dd62c872dc8a565978adb314d68bb287d7040810aba3e5bab7d50350c9eabf
size 43736

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d39566ab980b9b997b2a049720a8d0eb28370aa0b30363eed34cc2f742b3921e
size 29653

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dcdd9d9f6402363f79aa3d7e9d607112003be6afd079f459f5474dbb87b3a129
size 28074

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d69e88efb5a91bd064faa0cceb60a0daf593fda49e0156c30193eb9d2231f58a
size 35289

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:111fc07df38358eeb2dd8abbb82356a02d3292c627e9484368131c23fb8c8796
size 32881

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8471c8bd389a72f140196561466b21b9a50c7f109e434b5c51252a0931ed54e5
size 32913

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4c7888bb21ef7a3d7dad8b9e815b7eb56c822be7662d7800ffc0f10e0afbd783
size 29882

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:86890d5f72b0769398020df79a37a4b8204f204e32c2269c9f7eda40b37607f3 oid sha256:8b7a81f453ea9c85db6ac50f39427d2eccee7065441b9b42dafb702d457af27d
size 240617 size 221726

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f3f6c8e89f32d5a269c57650f049d307305f75d7be1af11662e8281471dd2ef
size 41902

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c754e39ea1f07444ebcdf716fd2941f2ceee16a8d2e694c07796a60714b66062
size 28720

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0018247fb6d81242fe4040e8dbc80a77ce50bdcca9fc81ad8950c5d75eb24a60
size 31868

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b2c688d6db2a69c726519cc7b4cb867f3eee0a9b1b781b756129e3ea6cf10b6d
size 33097

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:54a3b475bdf285102b8808713b098af24915be86dd865bf0395615f6766e7662
size 32233

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b73c3942ea2a85e0c3de059a0c4f4a1a32eb01f744723c4a900ab905744b0e49
size 28462

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 131 B

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:07e0b699840fc4d5ff7bb9530602f7a13008cdc193c7c6c334790efd52d87a3e
size 668812

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:960d28df41743999c83e7a06c917c3b30e2b6eb37a21e6ffe93358bc822f1cfd
size 641584

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:657fed97c4027f88f7831c02b6728209769bae7a536e163491f5665923bdb530
size 294823

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb83322b531f13a6014add8852fa934b35eedcfa40ced0c5bf952989d2de1ac3
size 284499

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 131 B

View File

@@ -1,9 +1,14 @@
\chapter{\abstractname} \chapter{\abstractname}
\singlespacing \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. \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.
\keywords{Structural Health Monitoring, Damage Localization, Support Vector Machine, Short-Time Fourier Transform, Principal Component Analysis}
\cleardoublepage \cleardoublepage
\setmainlanguage{english} % \selectlanguage{english}
\chapter{\abstractname} \begin{otherlanguage}{english}
\chapter{\textit{\abstractname}}
\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} \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}
\keywords{Structural Health Monitoring, Damage Localization, Support Vector Machine, Short-Time Fourier Transform, Principal Component Analysis}
\end{otherlanguage}

View File

@@ -1,22 +1,361 @@
% Define an abbreviation (acronym) % Define an abbreviation (acronym)
% Acronyms for the thesis % Acronyms for indonesian thesis
\newacronym{ml}{ML}{machine learning} \newacronym{ml}{ML}{\textit{machine learning}}
\newacronym{stft}{STFT}{short-time fourier transform} \newacronym{stft}{STFT}{\textit{short-time} Fourier \textit{transform}}
\newacronym{ai}{AI}{artificial intelligence} \newacronym{ai}{AI}{\textit{artificial intelligence}}
\newacronym{dl}{DL}{deep learning} \newacronym{dl}{DL}{\textit{deep learning}}
\newacronym{nn}{NN}{neural network} \newacronym{nn}{NN}{\textit{neural network}}
\newacronym{fft}{FFT}{fast fourier transform} \newacronym{fft}{FFT}{\textit{fast} Fourier \textit{transform}}
\newacronym{svm}{SVM}{support vector machine} \newacronym{svm}{SVM}{\textit{support vector machine}}
\newacronym{cnn}{CNN}{convolutional neural network} \newacronym{cnn}{CNN}{\textit{convolutional neural network}}
\newacronym{rnn}{RNN}{recurrent neural network} \newacronym{rnn}{RNN}{\textit{recurrent neural network}}
\newacronym{vbi}{VBI}{vibration-based inspection} \newacronym{vbi}{VBI}{\textit{vibration-based inspection}}
\newacronym{shm}{SHM}{structural health monitoring} \newacronym{shm}{SHM}{\textit{structural health monitoring}}
\newacronym{fea}{FEA}{finite element analysis} \newacronym{fea}{FEA}{\textit{finite element analysis}}
\newacronym{1d-cnn}{1-D CNN}{\textit{One-Dimensional Convolutional Neural Network}} \newacronym{1d-cnn}{1-D CNN}{\textit{one-dimensional convolutional neural network}}
\newacronym{pca}{PCA}{\textit{principal component analysis}} \newacronym{pca}{PCA}{\textit{principal component analysis}}
% rbf
\newacronym{rbf}{RBF}{\textit{radial basis function}} \newacronym{rbf}{RBF}{\textit{radial basis function}}
% cm
\newacronym{cm}{CM}{\textit{confusion matrix}} \newacronym{cm}{CM}{\textit{confusion matrix}}
\newacronym{tsne}{t-SNE}{\textit{t-distributed stochastic neighbor embedding}} \newacronym{tsne}{t-SNE}{\textit{t-Distributed Stochastic Neighbor Embedding}}
\newacronym{pacmap}{PaCMAP}{\textit{Pairwise Controlled Manifold Approximation Projection}} \newacronym{pacmap}{PaCMAP}{\textit{Pairwise Controlled Manifold Approximation Projection}}
\newacronym{ar}{AR}{\textit{autoregressive}}
\newacronym{re}{RE}{\textit{residual error}}
\newacronym{ae}{AE}{\textit{autoencoder}}
\newacronym{lr}{LR}{\textit{logistic regression}}
\newacronym{ann}{ANN}{\textit{artificial neural network}}
\newacronym{wt}{WT}{\textit{wavelet transform}}
\newacronym{oc-svm}{OC-SVM}{\textit{one-class support vector machine}}
\newacronym{lstm}{LSTM}{\textit{long short-term memory}}
\newacronym{ga}{GA}{\textit{genetic algorithm}}
\newacronym{ht}{HT}{Hilbert \textit{transform}}
\newacronym{vmd}{VMD}{\textit{variational mode decomposition}}
\newacronym{qugs}{QUGS}{\textit{Qatar University Grandstand Simulator}}
\newacronym{r-cnn}{R-CNN}{\textit{region-based convolutional neural network}}
\newacronym{pso}{PSO}{\textit{particle swarm optimization}}
% ADDED - Common AI/ML acronyms with proper names
\newacronym{hmm}{HMM}{\textit{hidden} Markov \textit{model}}
\newacronym{gru}{GRU}{\textit{gated recurrent unit}}
\newacronym{gan}{GAN}{\textit{generative adversarial network}}
\newacronym{vae}{VAE}{\textit{variational autoencoder}}
\newacronym{adam}{Adam}{Adam} % optimizer named after "adaptive moment estimation"
\newacronym{sgd}{SGD}{\textit{stochastic gradient descent}}
\newacronym{relu}{ReLU}{\textit{rectified linear unit}}
\newacronym{elu}{ELU}{\textit{exponential linear unit}}
\newacronym{selu}{SELU}{\textit{scaled exponential linear unit}}
\newacronym{gelu}{GELU}{Gaussian \textit{error linear unit}}
\newacronym{bert}{BERT}{\textit{Bidirectional Encoder Representations from Transformers}}
\newacronym{gpt}{GPT}{\textit{Generative Pre-trained Transformer}}
\newacronym{resnet}{ResNet}{\textit{Residual Network}}
\newacronym{yolo}{YOLO}{\textit{You Only Look Once}}
\newacronym{fcn}{FCN}{\textit{fully convolutional network}}
\newacronym{rlhf}{RLHF}{\textit{reinforcement learning from human feedback}}
\newacronym{ppo}{PPO}{\textit{proximal policy optimization}}
\newacronym{dqn}{DQN}{\textit{deep Q-network}}
\newacronym{ddpg}{DDPG}{\textit{deep deterministic policy gradient}}
\newacronym{a3c}{A3C}{\textit{asynchronous advantage actor-critic}}
\newacronym{sac}{SAC}{\textit{soft actor-critic}}
\newacronym{td}{TD}{\textit{temporal difference}}
\newacronym{mdp}{MDP}{Markov \textit{decision process}}
\newacronym{pomdp}{POMDP}{\textit{partially observable} Markov \textit{decision process}}
\newacronym{mcmc}{MCMC}{Markov \textit{chain} Monte Carlo}
\newacronym{em}{EM}{\textit{expectation-maximization}}
\newacronym{map}{MAP}{\textit{maximum a posteriori}}
\newacronym{mle}{MLE}{\textit{maximum likelihood estimation}}
\newacronym{kl}{KL}{Kullback-Leibler}
\newacronym{js}{JS}{Jensen-Shannon}
\newacronym{knn}{k-NN}{\textit{k-nearest neighbors}}
\newacronym{dbscan}{DBSCAN}{\textit{density-based spatial clustering of applications with noise}}
\newacronym{kmeans}{k-means}{\textit{k-means}}
\newacronym{gmm}{GMM}{Gaussian \textit{mixture model}}
\newacronym{gp}{GP}{Gaussian \textit{process}}
\newacronym{gpr}{GPR}{Gaussian \textit{process regression}}
\newacronym{bo}{BO}{Bayesian \textit{optimization}}
\newacronym{tpe}{TPE}{\textit{tree-structured} Parzen \textit{estimator}}
\newacronym{smbo}{SMBO}{\textit{sequential model-based optimization}}
\newacronym{nas}{NAS}{\textit{neural architecture search}}
\newacronym{automl}{AutoML}{\textit{automated machine learning}}
\newacronym{xgboost}{XGBoost}{\textit{eXtreme Gradient Boosting}}
\newacronym{gbdt}{GBDT}{\textit{gradient boosting decision tree}}
\newacronym{rf}{RF}{\textit{random forest}}
\newacronym{dt}{DT}{\textit{decision tree}}
\newacronym{cart}{CART}{\textit{classification and regression tree}}
\newacronym{id3}{ID3}{\textit{Iterative Dichotomiser 3}}
\newacronym{c45}{C4.5}{C4.5}
\newacronym{adaboost}{AdaBoost}{\textit{adaptive boosting}}
\newacronym{lasso}{LASSO}{\textit{least absolute shrinkage and selection operator}}
\newacronym{ridge}{Ridge}{Ridge \textit{regression}}
\newacronym{enet}{ElasticNet}{ElasticNet}
\newacronym{svr}{SVR}{\textit{support vector regression}}
\newacronym{kpca}{KPCA}{\textit{kernel principal component analysis}}
\newacronym{lda}{LDA}{\textit{linear discriminant analysis}}
\newacronym{ica}{ICA}{\textit{independent component analysis}}
\newacronym{nmf}{NMF}{\textit{non-negative matrix factorization}}
\newacronym{umap}{UMAP}{\textit{Uniform Manifold Approximation and Projection}}
\newacronym{isomap}{Isomap}{\textit{Isometric Mapping}}
\newacronym{lle}{LLE}{\textit{locally linear embedding}}
\newacronym{mds}{MDS}{\textit{multidimensional scaling}}
\newacronym{som}{SOM}{\textit{self-organizing map}}
\newacronym{bpnn}{BPNN}{\textit{backpropagation neural network}}
\newacronym{elm}{ELM}{\textit{extreme learning machine}}
\newacronym{sae}{SAE}{\textit{stacked autoencoder}}
\newacronym{dae}{DAE}{\textit{denoising autoencoder}}
\newacronym{vq-vae}{VQ-VAE}{\textit{vector quantized variational autoencoder}}
\newacronym{wgan}{WGAN}{Wasserstein GAN}
\newacronym{dcgan}{DCGAN}{\textit{deep convolutional generative adversarial network}}
\newacronym{cgan}{cGAN}{\textit{conditional generative adversarial network}}
\newacronym{cyclegan}{CycleGAN}{CycleGAN}
\newacronym{pix2pix}{Pix2Pix}{Pix2Pix}
\newacronym{stylegan}{StyleGAN}{StyleGAN}
\newacronym{clip}{CLIP}{\textit{Contrastive Language-Image Pre-training}}
\newacronym{vit}{ViT}{\textit{Vision Transformer}}
\newacronym{swin}{Swin}{\textit{Shifted Window Transformer}}
\newacronym{detr}{DETR}{\textit{DEtection TRansformer}}
\newacronym{rcnn}{R-CNN}{\textit{region-based convolutional neural network}}
\newacronym{fast-rcnn}{Fast R-CNN}{Fast R-CNN}
\newacronym{faster-rcnn}{Faster R-CNN}{Faster R-CNN}
\newacronym{mask-rcnn}{Mask R-CNN}{Mask R-CNN}
\newacronym{fpn}{FPN}{\textit{feature pyramid network}}
\newacronym{ssd}{SSD}{\textit{single shot detector}}
\newacronym{seresnet}{SE-ResNet}{\textit{Squeeze-and-Excitation ResNet}}
\newacronym{nlp}{NLP}{\textit{natural language processing}}
\newacronym{nlu}{NLU}{\textit{natural language understanding}}
\newacronym{nlg}{NLG}{\textit{natural language generation}}
\newacronym{seq2seq}{Seq2Seq}{\textit{sequence-to-sequence}}
\newacronym{bleu}{BLEU}{\textit{Bilingual Evaluation Understudy}}
\newacronym{rouge}{ROUGE}{\textit{Recall-Oriented Understudy for Gisting Evaluation}}
\newacronym{meteor}{METEOR}{\textit{Metric for Evaluation of Translation with Explicit ORdering}}
\newacronym{cider}{CIDEr}{\textit{Consensus-based Image Description Evaluation}}
\newacronym{wer}{WER}{\textit{word error rate}}
\newacronym{cer}{CER}{\textit{character error rate}}
\newacronym{perplexity}{PPL}{\textit{perplexity}}
\newacronym{bpe}{BPE}{\textit{byte pair encoding}}
\newacronym{wordpiece}{WordPiece}{WordPiece}
\newacronym{sentencepiece}{SentencePiece}{SentencePiece}
\newacronym{tfidf}{TF-IDF}{\textit{term frequency-inverse document frequency}}
\newacronym{bow}{BoW}{\textit{bag of words}}
\newacronym{cbow}{CBOW}{\textit{continuous bag of words}}
\newacronym{skipgram}{Skip-gram}{Skip-gram}
\newacronym{word2vec}{Word2Vec}{Word2Vec}
\newacronym{glove}{GloVe}{\textit{Global Vectors for Word Representation}}
\newacronym{fasttext}{FastText}{FastText}
\newacronym{elmo}{ELMo}{\textit{Embeddings from Language Models}}
\newacronym{ulmfit}{ULMFiT}{\textit{Universal Language Model Fine-tuning}}
\newacronym{t5}{T5}{\textit{Text-to-Text Transfer Transformer}}
\newacronym{bart}{BART}{\textit{Bidirectional and Auto-Regressive Transformers}}
\newacronym{electra}{ELECTRA}{\textit{Efficiently Learning an Encoder that Classifies Token Replacements Accurately}}
\newacronym{roberta}{RoBERTa}{\textit{Robustly Optimized BERT Pretraining Approach}}
\newacronym{ernie}{ERNIE}{\textit{Enhanced Representation through kNowledge IntEgration}}
\newacronym{flash-attention}{FlashAttention}{FlashAttention}
\newacronym{mha}{MHA}{\textit{multi-head attention}}
\newacronym{mqa}{MQA}{\textit{multi-query attention}}
\newacronym{gqa}{GQA}{\textit{grouped-query attention}}
\newacronym{kv-cache}{KV-cache}{\textit{key-value cache}}
\newacronym{rag}{RAG}{\textit{retrieval-augmented generation}}
\newacronym{dpr}{DPR}{\textit{dense passage retrieval}}
\newacronym{faiss}{FAISS}{\textit{Facebook AI Similarity Search}}
\newacronym{annoy}{Annoy}{\textit{Approximate Nearest Neighbors Oh Yeah}}
\newacronym{hnsw}{HNSW}{\textit{Hierarchical Navigable Small World}}
\newacronym{ivf}{IVF}{\textit{inverted file index}}
\newacronym{pq}{PQ}{\textit{product quantization}}
\newacronym{lsh}{LSH}{\textit{locality-sensitive hashing}}
\newacronym{mips}{MIPS}{\textit{maximum inner product search}}
\newacronym{rl}{RL}{\textit{reinforcement learning}}
\newacronym{drl}{DRL}{\textit{deep reinforcement learning}}
\newacronym{irl}{IRL}{\textit{inverse reinforcement learning}}
\newacronym{gail}{GAIL}{\textit{generative adversarial imitation learning}}
\newacronym{il}{IL}{\textit{imitation learning}}
\newacronym{bc}{BC}{\textit{behavioral cloning}}
\newacronym{marl}{MARL}{\textit{multi-agent reinforcement learning}}
\newacronym{maddpg}{MADDPG}{\textit{multi-agent deep deterministic policy gradient}}
\newacronym{vdn}{VDN}{\textit{value decomposition network}}
\newacronym{coma}{COMA}{\textit{counterfactual multi-agent policy gradient}}
\newacronym{mappo}{MAPPO}{\textit{multi-agent proximal policy optimization}}
\newacronym{trpo}{TRPO}{\textit{trust region policy optimization}}
\newacronym{td3}{TD3}{\textit{twin delayed deep deterministic policy gradient}}
\newacronym{her}{HER}{\textit{hindsight experience replay}}
\newacronym{per}{PER}{\textit{prioritized experience replay}}
\newacronym{c51}{C51}{\textit{categorical 51}}
\newacronym{qr-dqn}{QR-DQN}{\textit{quantile regression DQN}}
\newacronym{iqn}{IQN}{\textit{implicit quantile network}}
\newacronym{icm}{ICM}{\textit{intrinsic curiosity module}}
\newacronym{rnd}{RND}{\textit{random network distillation}}
\newacronym{ngu}{NGU}{\textit{Never Give Up}}
\newacronym{curl}{CURL}{\textit{Contrastive Unsupervised Representations for Reinforcement Learning}}
\newacronym{mcts}{MCTS}{Monte Carlo \textit{tree search}}
\newacronym{uct}{UCT}{\textit{upper confidence bound applied to trees}}
\newacronym{puct}{PUCT}{\textit{predictor + upper confidence bound applied to trees}}
\newacronym{ucb}{UCB}{\textit{upper confidence bound}}
\newacronym{ts}{TS}{Thompson \textit{sampling}}
\newacronym{mab}{MAB}{\textit{multi-armed bandit}}
\newacronym{cmab}{CMAB}{\textit{contextual multi-armed bandit}}
\newacronym{exp3}{EXP3}{\textit{exponential-weight algorithm for exploration and exploitation}}
\newacronym{linucb}{LinUCB}{\textit{linear upper confidence bound}}
\newacronym{scaffold}{SCAFFOLD}{\textit{Stochastic Controlled Averaging for Federated Learning}}
\newacronym{fedbn}{FedBN}{\textit{Federated learning with Batch Normalization}}
\newacronym{moon}{MOON}{\textit{Model-Contrastive Federated Learning}}
\newacronym{feddf}{FedDF}{\textit{Federated Learning via Knowledge Distillation with Dynamic Regularization}}
\newacronym{fl}{FL}{\textit{federated learning}}
\newacronym{dp}{DP}{\textit{differential privacy}}
\newacronym{ldp}{LDP}{\textit{local differential privacy}}
\newacronym{pate}{PATE}{\textit{Private Aggregation of Teacher Ensembles}}
\newacronym{smpc}{SMPC}{\textit{secure multi-party computation}}
\newacronym{he}{HE}{\textit{homomorphic encryption}}
\newacronym{phe}{PHE}{\textit{partial homomorphic encryption}}
\newacronym{fhe}{FHE}{\textit{fully homomorphic encryption}}
\newacronym{mpc}{MPC}{\textit{multi-party computation}}
\newacronym{tee}{TEE}{\textit{trusted execution environment}}
\newacronym{sgx}{SGX}{\textit{Software Guard Extensions}}
\newacronym{zkp}{ZKP}{\textit{zero-knowledge proof}}
\newacronym{snark}{SNARK}{\textit{Succinct Non-interactive ARgument of Knowledge}}
\newacronym{stark}{STARK}{\textit{Scalable Transparent ARgument of Knowledge}}
\newacronym{zksnark}{zkSNARK}{\textit{zero-knowledge Succinct Non-interactive ARgument of Knowledge}}
\newacronym{zkstark}{zkSTARK}{\textit{zero-knowledge Scalable Transparent ARgument of Knowledge}}
\newacronym{mlops}{MLOps}{\textit{Machine Learning Operations}}
\newacronym{cicd}{CI/CD}{\textit{continuous integration/continuous deployment}}
\newacronym{dag}{DAG}{\textit{directed acyclic graph}}
\newacronym{etl}{ETL}{\textit{extract, transform, load}}
\newacronym{elt}{ELT}{\textit{extract, load, transform}}
\newacronym{oltp}{OLTP}{\textit{online transaction processing}}
\newacronym{olap}{OLAP}{\textit{online analytical processing}}
\newacronym{dwh}{DWH}{\textit{data warehouse}}
\newacronym{datalake}{Data Lake}{\textit{data lake}}
\newacronym{lakehouse}{Lakehouse}{\textit{lakehouse}}
\newacronym{edw}{EDW}{\textit{enterprise data warehouse}}
\newacronym{dim}{DIM}{\textit{dimension table}}
\newacronym{fact}{FACT}{\textit{fact table}}
\newacronym{scd}{SCD}{\textit{slowly changing dimension}}
\newacronym{star-schema}{Star Schema}{\textit{star schema}}
\newacronym{snowflake-schema}{Snowflake Schema}{\textit{snowflake schema}}
\newacronym{eer}{EER}{\textit{equal error rate}}
\newacronym{far}{FAR}{\textit{false acceptance rate}}
\newacronym{frr}{FRR}{\textit{false rejection rate}}
\newacronym{fpr}{FPR}{\textit{false positive rate}}
\newacronym{tpr}{TPR}{\textit{true positive rate}}
\newacronym{fnr}{FNR}{\textit{false negative rate}}
\newacronym{tnr}{TNR}{\textit{true negative rate}}
\newacronym{ppv}{PPV}{\textit{positive predictive value}}
\newacronym{npv}{NPV}{\textit{negative predictive value}}
\newacronym{auroc}{AUROC}{\textit{area under the receiver operating characteristic curve}}
\newacronym{auprc}{AUPRC}{\textit{area under the precision-recall curve}}
\newacronym{roc}{ROC}{\textit{receiver operating characteristic}}
\newacronym{pr-curve}{PR Curve}{\textit{precision-recall curve}}
\newacronym{f1}{F1}{\textit{F1 score}}
\newacronym{f2}{F2}{\textit{F2 score}}
\newacronym{fbeta}{F-beta}{\textit{F-beta score}}
\newacronym{mcc}{MCC}{Matthews \textit{correlation coefficient}}
\newacronym{iou}{IoU}{\textit{intersection over union}}
\newacronym{jaccard}{Jaccard}{Jaccard \textit{index}}
\newacronym{hausdorff}{Hausdorff}{Hausdorff \textit{distance}}
\newacronym{mse}{MSE}{\textit{mean squared error}}
\newacronym{rmse}{RMSE}{\textit{root mean squared error}}
\newacronym{mae}{MAE}{\textit{mean absolute error}}
\newacronym{mape}{MAPE}{\textit{mean absolute percentage error}}
\newacronym{smape}{SMAPE}{\textit{symmetric mean absolute percentage error}}
\newacronym{r2}{}{\textit{coefficient of determination}}
\newacronym{adjusted-r2}{Adjusted R²}{\textit{adjusted coefficient of determination}}
\newacronym{aic}{AIC}{Akaike \textit{information criterion}}
\newacronym{bic}{BIC}{Bayesian \textit{information criterion}}
\newacronym{cv}{CV}{\textit{cross-validation}}
\newacronym{loocv}{LOOCV}{\textit{leave-one-out cross-validation}}
\newacronym{kfold}{k-fold}{\textit{k-fold cross-validation}}
\newacronym{smote}{SMOTE}{\textit{Synthetic Minority Over-sampling Technique}}
\newacronym{adasyn}{ADASYN}{\textit{Adaptive Synthetic Sampling}}
\newacronym{enn}{ENN}{\textit{edited nearest neighbors}}
\newacronym{ncr}{NCR}{\textit{neighborhood cleaning rule}}
\newacronym{rus}{RUS}{\textit{random under-sampling}}
\newacronym{ros}{ROS}{\textit{random over-sampling}}
\newacronym{bce}{BCE}{\textit{binary cross-entropy}}
\newacronym{cce}{CCE}{\textit{categorical cross-entropy}}
\newacronym{scce}{SCCE}{\textit{sparse categorical cross-entropy}}
\newacronym{nll}{NLL}{\textit{negative log-likelihood}}
\newacronym{huber}{Huber}{Huber \textit{loss}}
\newacronym{focal}{Focal}{\textit{focal loss}}
\newacronym{dice-loss}{Dice Loss}{Dice \textit{loss}}
\newacronym{tversky}{Tversky}{Tversky \textit{loss}}
\newacronym{lovasz}{Lovász}{Lovász \textit{loss}}
\newacronym{bn}{BN}{\textit{batch normalization}}
\newacronym{ln}{LN}{\textit{layer normalization}}
\newacronym{in}{IN}{\textit{instance normalization}}
\newacronym{gn}{GN}{\textit{group normalization}}
\newacronym{wn}{WN}{\textit{weight normalization}}
\newacronym{sn}{SN}{\textit{spectral normalization}}
\newacronym{rmsnorm}{RMSNorm}{\textit{root mean square layer normalization}}
\newacronym{adain}{AdaIN}{\textit{adaptive instance normalization}}
\newacronym{adagn}{AdaGN}{\textit{adaptive group normalization}}
\newacronym{spade}{SPADE}{\textit{Spatially-Adaptive Normalization}}
\newacronym{radam}{RAdam}{\textit{Rectified Adam}}
\newacronym{lamb}{LAMB}{\textit{Layer-wise Adaptive Moments optimizer for Batch training}}
\newacronym{lars}{LARS}{\textit{Layer-wise Adaptive Rate Scaling}}
\newacronym{lookahead}{Lookahead}{Lookahead \textit{optimizer}}
\newacronym{swats}{SWATS}{\textit{Switching from Adam to SGD}}
\newacronym{slr}{SLR}{\textit{stochastic learning rate}}
\newacronym{tta}{TTA}{\textit{test-time augmentation}}
\newacronym{ema}{EMA}{\textit{exponential moving average}}
\newacronym{swa}{SWA}{\textit{stochastic weight averaging}}
\newacronym{ptq}{PTQ}{\textit{post-training quantization}}
\newacronym{qat}{QAT}{\textit{quantization-aware training}}
\newacronym{int8}{INT8}{\textit{8-bit integer}}
\newacronym{fp16}{FP16}{\textit{16-bit floating point}}
\newacronym{bf16}{BF16}{\textit{bfloat16}}
\newacronym{fp32}{FP32}{\textit{32-bit floating point}}
\newacronym{amp}{AMP}{\textit{automatic mixed precision}}
\newacronym{ode}{ODE}{\textit{ordinary differential equation}}
\newacronym{pde}{PDE}{\textit{partial differential equation}}
\newacronym{sde}{SDE}{\textit{stochastic differential equation}}
\newacronym{node}{NODE}{\textit{neural ordinary differential equation}}
\newacronym{anode}{ANODE}{\textit{augmented neural ordinary differential equation}}
\newacronym{pinn}{PINN}{\textit{physics-informed neural network}}
\newacronym{deeponet}{DeepONet}{\textit{Deep Operator Network}}
\newacronym{gnn}{GNN}{\textit{graph neural network}}
\newacronym{gcn}{GCN}{\textit{graph convolutional network}}
\newacronym{gat}{GAT}{\textit{graph attention network}}
\newacronym{gin}{GIN}{\textit{Graph Isomorphism Network}}
\newacronym{mpnn}{MPNN}{\textit{message passing neural network}}
\newacronym{gatedgcn}{Gated GCN}{\textit{gated graph convolutional network}}
\newacronym{line}{LINE}{\textit{Large-scale Information Network Embedding}}
\newacronym{gran}{GRAN}{\textit{Graph Recurrent Attention Network}}
\newacronym{dgmg}{DGMG}{\textit{Deep Generative Model of Graphs}}
\newacronym{molgan}{MolGAN}{\textit{Molecular Generative Adversarial Network}}
\newacronym{jtvae}{JT-VAE}{\textit{Junction Tree Variational Autoencoder}}
\newacronym{rgcn}{R-GCN}{\textit{Relational Graph Convolutional Network}}
\newacronym{hgt}{HGT}{\textit{Heterogeneous Graph Transformer}}
\newacronym{han}{HAN}{\textit{Heterogeneous Graph Attention Network}}
\newacronym{rgat}{R-GAT}{\textit{Relational Graph Attention Network}}
\newacronym{compgcn}{CompGCN}{\textit{Composition-based Graph Convolutional Network}}
\newacronym{kg}{KG}{\textit{knowledge graph}}
\newacronym{kge}{KGE}{\textit{knowledge graph embedding}}
\newacronym{kgc}{KGC}{\textit{knowledge graph completion}}
\newacronym{qa}{QA}{\textit{question answering}}
\newacronym{vqa}{VQA}{\textit{visual question answering}}
\newacronym{squad}{SQuAD}{\textit{Stanford Question Answering Dataset}}
\newacronym{glue}{GLUE}{\textit{General Language Understanding Evaluation}}
\newacronym{superglue}{SuperGLUE}{\textit{Super General Language Understanding Evaluation}}
\newacronym{xnli}{XNLI}{\textit{Cross-lingual Natural Language Inference}}
\newacronym{mnli}{MNLI}{\textit{Multi-Genre Natural Language Inference}}
\newacronym{snli}{SNLI}{Stanford \textit{Natural Language Inference}}
\newacronym{qqp}{QQP}{Quora Question Pairs}
\newacronym{qnli}{QNLI}{\textit{Question Natural Language Inference}}
\newacronym{sts}{STS}{\textit{Semantic Textual Similarity}}
\newacronym{cola}{CoLA}{\textit{Corpus of Linguistic Acceptability}}
\newacronym{sst}{SST}{Stanford \textit{Sentiment Treebank}}
\newacronym{mrpc}{MRPC}{Microsoft Research Paraphrase Corpus}
\newacronym{rte}{RTE}{\textit{Recognizing Textual Entailment}}
\newacronym{wnli}{WNLI}{Winograd \textit{Natural Language Inference}}
\newacronym{wsc}{WSC}{Winograd \textit{Schema Challenge}}
\newacronym{copa}{COPA}{\textit{Choice of Plausible Alternatives}}
\newacronym{piqa}{PIQA}{\textit{Physical Interaction Question Answering}}
\newacronym{siqa}{SIQA}{\textit{Social Interaction Question Answering}}
\newacronym{commonsenseqa}{CommonsenseQA}{CommonsenseQA}
\newacronym{arc}{ARC}{\textit{AI2 Reasoning Challenge}}
\newacronym{race}{RACE}{\textit{ReAding Comprehension from Examinations}}
\newacronym{drop}{DROP}{\textit{Discrete Reasoning Over Paragraphs}}
\newacronym{hotpotqa}{HotpotQA}{HotpotQA}
\newacronym{naturalquestions}{Natural Questions}{Natural Questions}
\newacronym{triviaqa}{TriviaQA}{TriviaQA}
\newacronym{quac}{QuAC}{\textit{Question Answering in Context}}
\newacronym{coqa}{CoQA}{\textit{Conversational Question Answering}}
\newacronym{multirc}{MultiRC}{\textit{Multi-Sentence Reading Comprehension}}
\newacronym{record}{ReCoRD}{\textit{Reading Comprehension with Commonsense Reasoning Dataset}}
\newacronym{wmt}{WMT}{\textit{Workshop on Machine Translation}}
\newacronym{iwslt}{IWSLT}{\textit{International Workshop on Spoken Language Translation}}

View File

@@ -18,8 +18,8 @@
\textbf{Nomor Mahasiswa} & : & \theauthorid \\ \textbf{Nomor Mahasiswa} & : & \theauthorid \\
\textit{Student ID.} & & \\ \textit{Student ID.} & & \\
\textbf{Dosen Pembimbing} & : & \thefirstadvisor \\ \textbf{Dosen Pembimbing} & : & \thesecondadvisor \\
\textit{Advisors} & & \thesecondadvisor \\ \textit{Advisors} & & \\
\end{tabular} \end{tabular}
\vspace{1em} \vspace{1em}
@@ -30,7 +30,7 @@
\vspace{1em} \vspace{1em}
\noindent \noindent
\begin{tabular}{ll} \begin{tabular}{ll}
\textbf{\firstadvisor} &: % \textbf{\thepalabapak} &:
% \vspace{2cm} % signature space % \vspace{2cm} % signature space
% \\[1em] % pull up next row % \\[1em] % pull up next row
\\ \\

View File

@@ -25,16 +25,40 @@
% \newglossaryentry{pemelajaran mesin}{} % \newglossaryentry{pemelajaran mesin}{}
% \addterm{machinelearning}{pemelajaran mesin}{pemelajaran mesin}{machine learning}{A program or system that trains a model from input data. The trained model can make useful predictions from new (never-before-seen) data drawn from the same distribution as the one used to train the model.} % \addterm{machinelearning}{pemelajaran mesin}{pemelajaran mesin}{machine learning}{A program or system that trains a model from input data. The trained model can make useful predictions from new (never-before-seen) data drawn from the same distribution as the one used to train the model.}
% explained variance ratio
\newglossaryentry{explained-variance-ratio}{
name={explained variance ratio},
description={Proporsi variansi yang dapat dijelaskan oleh setiap komponen utama dalam analisis \gls{pca}. Metrik ini memberikan informasi tentang seberapa baik komponen tersebut merepresentasikan data asli.},
sort={Explained Variance Ratio}
}
\newglossaryentry{algoritma-genetika}{ \newglossaryentry{algoritma-genetika}{
name={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.}, 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} sort={Algoritma Genetika}
} }
% standard scaler
\newglossaryentry{standard-scaler}{
name={standard scaler},
description={Metode normalisasi data yang mengubah fitur sehingga memiliki distribusi dengan rata-rata (\textit{mean}) nol dan standar deviasi satu.},
sort={standard scaler}
}
% grid search
\newglossaryentry{grid-search}{
name={grid search},
description={Metode pencarian \textit{hyperparameter} yang melibatkan eksplorasi sistematis dari kombinasi nilai-nilai \textit{hyperparameter} yang telah ditentukan sebelumnya. Setiap kombinasi dievaluasi menggunakan teknik \gls{cross-validation} untuk menentukan kinerja model, dan kombinasi terbaik dipilih berdasarkan metrik evaluasi yang diinginkan.},
sort={grid search}
}
% stratified k-fold
\newglossaryentry{stratified-k-fold}{
name={stratified k-fold},
description={Teknik pembagian data untuk \gls{cross-validation} di mana data dibagi menjadi \(k\) bagian (\textit{fold}) dengan mempertahankan proporsi kelas yang sama di setiap \textit{fold}. Hal ini penting untuk \textit{dataset} yang tidak seimbang, karena memastikan bahwa setiap \textit{fold} mencerminkan distribusi kelas asli, sehingga menghasilkan evaluasi model yang lebih andal.},
sort={stratified k-fold}
}
\newglossaryentry{deep-learning}{ \newglossaryentry{deep-learning}{
name={\textit{deep learning}}, name={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.}, 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} sort={deep learning}
} }
\newglossaryentry{jaringan-saraf-tiruan}{ \newglossaryentry{jaringan-saraf-tiruan}{
@@ -73,10 +97,10 @@
sort={Heuristik} sort={Heuristik}
} }
\newglossaryentry{validasi-silang}{ \newglossaryentry{cross-validation}{
name={Validasi Silang (Cross-Validation)}, name={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.}, 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} sort={cross-validation}
} }
\newglossaryentry{bias-algoritmik}{ \newglossaryentry{bias-algoritmik}{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 131 B

View File

@@ -1,15 +1,35 @@
\begin{titlepage} \begin{titlepage}
\newgeometry{margin=3cm}%
\noindent
\begin{minipage}[t][0.49\textheight][t]{\textwidth}
\centering \centering
\vspace*{1cm}
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par} {\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par}
\vspace{1.5cm} \vspace{1.5cm}
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par} {\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par}
\vspace{1.5cm} \vfill
\end{minipage}
\begin{tikzpicture}[remember picture, overlay]
% This respects your geometry margins
\coordinate (center) at (current page text area.center);
\includegraphics[width=5cm]{frontmatter/img/logo.png} % The logo at center of page (ANCHOR POINT) shift up by 1cm
\vspace{1.5cm} \node at ($(center) + (0cm,1cm)$)
{\includegraphics[width=5cm]{frontmatter/img/logo.png}};
% --- Option A: diagonal across the whole paper ---
% \draw[red, line width=1pt] (current page.north west) -- (current page.south east);
% \draw[red, line width=1pt] (current page.north east) -- (current page.south west);
% % horizontal and vertical
% \draw[blue, line width=1pt] (current page.north) -- (current page.south);
% \draw[blue, line width=1pt] (current page.west) -- (current page.east);
% % horizontal line with 1cm up offset
% \draw[green, line width=1pt] ($(current page.west) + (0cm,1cm)$) -- ($(current page.east) + (0cm,1cm)$);
\end{tikzpicture}%
\begin{minipage}[b][0.49\textheight][b]{\textwidth}
\centering
\vfill
\textbf{Disusun oleh:} \\ \textbf{Disusun oleh:} \\
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\ {\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\
@@ -21,8 +41,7 @@
\textbf{\MakeUppercase\theprogram} \\ \textbf{\MakeUppercase\theprogram} \\
\textbf{\MakeUppercase\thefaculty} \\ \textbf{\MakeUppercase\thefaculty} \\
\textbf{\MakeUppercase\theuniversity} \\ \textbf{\MakeUppercase\theuniversity} \\
% \textbf{\yearofsubmission} \textbf{\theyearofsubmission}
} }
\end{minipage}
\end{titlepage}% \end{titlepage}%

View File

@@ -1,30 +1,46 @@
\begin{titlepage} \begin{titlepage}
\newgeometry{margin=3cm, left=4cm}
\noindent
\begin{minipage}[t][0.49\textheight][t]{\textwidth}
\centering \centering
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par} {\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir}}\par}
\vspace{1.5cm} \vspace{1.5cm}
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par} {\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{\thetitle}}\par}
\vspace{1cm} \vspace{1cm}
{\normalsize\selectfont Diajukan guna melengkapi persyaratan untuk memenuhi gelar Sarjana Teknik di Program Studi Teknik Sipil, Fakultas Teknik, Universitas Muhammadiyah Yogyakarta\par} {\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} \vfill
\end{minipage}
\begin{tikzpicture}[remember picture, overlay]
% This respects your geometry margins
\coordinate (center) at (current page text area.center);
\includegraphics[width=5cm]{frontmatter/img/logo.png} % The logo at center of page (ANCHOR POINT) shift up by 1cm
\vspace{1.5cm} \node at ($(center) + (0cm,1cm)$)
{\includegraphics[width=5cm]{frontmatter/img/logo.png}};
% --- Option A: diagonal across the whole paper ---
% \draw[red, line width=1pt] (current page.north west) -- (current page.south east);
% \draw[red, line width=1pt] (current page.north east) -- (current page.south west);
% % horizontal and vertical
% \draw[blue, line width=1pt] (current page.north) -- (current page.south);
% \draw[blue, line width=1pt] (current page.west) -- (current page.east);
% % horizontal line with 1cm up offset
% \draw[green, line width=1pt] ($(current page.west) + (0cm,1cm)$) -- ($(current page.east) + (0cm,1cm)$);
\end{tikzpicture}%
\begin{minipage}[b][0.49\textheight][b]{\textwidth}
\centering
\vfill
\textbf{Disusun oleh:} \\ \textbf{Disusun oleh:} \\
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\ {\fontsize{14pt}{16pt}\selectfont \textbf{\theauthor}} \\
{\fontsize{14pt}{16pt}\selectfont \textbf{\theauthorid}} \\ {\fontsize{14pt}{16pt}\selectfont \textbf{\theauthorid}} \\
\vfill \vfill
{\fontsize{12pt}{14pt}\selectfont {\fontsize{12pt}{14pt}\selectfont
\textbf{\MakeUppercase\theprogram} \\ \textbf{\MakeUppercase\theprogram} \\
\textbf{\MakeUppercase\thefaculty} \\ \textbf{\MakeUppercase\thefaculty} \\
\textbf{\MakeUppercase\theuniversity} \\ \textbf{\MakeUppercase\theuniversity} \\
% \textbf{\yearofsubmission} \textbf{\theyearofsubmission}
} }
\end{minipage}
\end{titlepage}% \end{titlepage}%

View File

@@ -85,7 +85,7 @@
} }
\newglossaryentry{not:di}{ \newglossaryentry{not:di}{
name={$d_{i}$}, name={\ensuremath{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.}, 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}, sort={di},
type=notation, type=notation,
@@ -183,7 +183,7 @@
} }
\newglossaryentry{not:R}{ \newglossaryentry{not:R}{
name={$\mathbb{R}$}, name={\ensuremath{\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).}, 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}, sort={Rbb},
type=notation, type=notation,
@@ -209,7 +209,39 @@
sort={xisrt_bold}, sort={xisrt_bold},
type=notation, type=notation,
} }
% Efficiency metrics
\newglossaryentry{not:S_i}{
name={\ensuremath{S_i}},
description={Rata-rata skor akurasi hasil \textit{fold cross-validation} pada \textit{grid-search} (01)},
sort={S_i},
type=notation,
}
\newglossaryentry{not:T_i}{
name={\ensuremath{T_i}},
description={Rata-rata waktu latih hasil \textit{fold cross-validation} pada \textit{grid-search} (dalam detik)},
sort={T_i},
type=notation,
}
\newglossaryentry{not:E_i}{
name={\ensuremath{E_i}},
description={Metrik efisiensi untuk rasio antara akurasi dan waktu latih \textit{fold} pada \textit{grid-search}},
sort={E_i},
type=notation,
}
% SVM Hyperparameters
\newglossaryentry{not:C}{
name={\ensuremath{C}},
description={Parameter regulasi pada SVM yang mengontrol \textit{trade-off} antara memaksimalkan margin dan meminimalkan kesalahan klasifikasi pada data pelatihan. Nilai yang lebih besar memberikan penalti lebih tinggi untuk kesalahan klasifikasi, sehingga menghasilkan margin yang lebih sempit.},
sort={C},
type=notation,
}
\newglossaryentry{not:gamma}{
name={\ensuremath{\gamma}},
description={Parameter kernel pada SVM dengan kernel RBF yang menentukan jangkauan pengaruh dari satu sampel pelatihan. Nilai kecil berarti jangkauan pengaruh yang luas, sedangkan nilai besar berarti jangkauan yang sempit.},
sort={gamma},
type=notation,
}
\newglossaryentry{not:s_sensor}{ \newglossaryentry{not:s_sensor}{
name={$s$}, name={$s$},
description={Index representing the sensor side (e.g., identifying Sensor A or Sensor B).}, description={Index representing the sensor side (e.g., identifying Sensor A or Sensor B).},
@@ -239,3 +271,68 @@
} }
% --- End Glossary Definitions --- % --- End Glossary Definitions ---
% --- Added Missing Notations ---
\newglossaryentry{not:U}{
name={\ensuremath{\mathbf{U}}},
description={Matrix representing undamaged data, $\mathbf{U} \in \mathbb{R}^{262144 \times 30}$},
sort={U},
type=notation,
}
\newglossaryentry{not:Dn}{
name={\ensuremath{\mathbf{D}^{(n)}}},
description={Matrix representing damaged data for joint $n$, $\mathbf{D}^{(n)} \in \mathbb{R}^{262144 \times 30}$},
sort={Dn},
type=notation,
}
\newglossaryentry{not:aj}{
name={\ensuremath{\mathbf{a}_{j}^{(n)}}},
description={Acceleration vector for joint $j$ in case $n$, $\mathbf{a}_{j}^{(n)} \in \mathbb{R}^{262144}$},
sort={aj},
type=notation,
}
\newglossaryentry{not:Cn}{
name={\ensuremath{\mathcal{C}(n)}},
description={Set of healthy complementary pairs for file $n$},
sort={Cn},
type=notation,
}
\newglossaryentry{not:CU}{
name={\ensuremath{\mathcal{C}_{\mathbf{U}}}},
description={Set of pairs from undamaged data $\mathbf{U}$},
sort={CU},
type=notation,
}
\newglossaryentry{not:DA}{
name={\ensuremath{\mathcal{D}_A}},
description={Dataset for the upper sensor channel},
sort={DA},
type=notation,
}
\newglossaryentry{not:DB}{
name={\ensuremath{\mathcal{D}_B}},
description={Dataset for the lower sensor channel},
sort={DB},
type=notation,
}
\newglossaryentry{not:D}{
name={\ensuremath{\mathcal{D}}},
description={Labeled dataset containing features and labels},
sort={D},
type=notation,
}
\newglossaryentry{not:concat_time}{
name={\ensuremath{\operatorname{concat}_{\text{time}}}},
description={Concatenation operator over time},
sort={concat_time},
type=notation,
}
% --- End Added Missing Notations ---

View File

@@ -12,7 +12,7 @@ Saya yang bertanda tangan di bawah ini:
\textbf{Judul} & : & \thetitle \\ \textbf{Judul} & : & \thetitle \\
\end{tabular} \end{tabular}
\end{center} \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 Menyatakan dengan sebenarnya bahwa tugas akhir ini merupakan karya saya 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{flushright}
\begin{minipage}{0.5\textwidth} \begin{minipage}{0.5\textwidth}

View File

@@ -0,0 +1,35 @@
% frontmatter/originality.tex
\chapter{Prakata}
\textit{Assalamualaikum warahmatullahi wabarakatuh}
\par
Segala puji bagi Allah SWT yang menguasai segala sesuatu. Sholawat dan salam selalu tercurahkan kepada Rasulullah SAW beserta keluarga dan sahabat-sahabatnya.
\par
Tugas akhir ini disusun sebagai salah satu syarat untuk memperoleh gelar Sarjana Teknik pada Program Studi Teknik Sipil, Fakultas Teknik, Universitas Muhammadiyah Yogyakarta. Penelitian ini bertujuan untuk
\par
Selama penyusunan tugas akhir ini, banyak rintangan yang penyusun dapatkan, tetapi berkat bantuan, bimbingan, dan dorongan dari berbagai pihak akhirnya dapat terselesaikan dengan baik. Melalui kesempatan ini, penyusun ingin menyampaikan rasa terima kasih atas kerja sama dan dukungan dari berbagai pihak selama proses penelitian hingga penyusunan tugas akhir ini kepada:
\begin{enumerate}
\item \theheaddepartement
\item \thesecondadvisor
\item \thefirstexaminer
\end{enumerate}
\begin{flushright}
\begin{minipage}{0.5\textwidth}
\centering
Yogyakarta, \today \\[1em]
Yang membuat pernyataan, \\[0.5cm] % space for signature
% Materai box
\hspace*{-3cm}% shift the box slightly left
\begin{tabular}{@{}c@{}}
\fbox{
\begin{minipage}[c][1.8cm][c]{1.6cm}
\centering
Materai\\
6000
\end{minipage}
}
\end{tabular}
\\[1cm]
% \rule{6cm}{0.4pt} % signature line
\theauthor
\end{minipage}
\end{flushright}

View File

@@ -398,7 +398,7 @@ Untuk memandu arah penelitian ini, beberapa permasalahan utama yang akan dibahas
\section{Lingkup Penelitian} \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. 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} \section{Tujuan Penelitian}
\begin{enumerate} \begin{enumerate}
@@ -533,7 +533,7 @@ Dasar teori ini memberikan kerangka metodologi untuk mengimplementasi dan mengev
\section{Benda Uji} \section{Benda Uji}
Penelitian ini menggunakan data sekunder dari \textcite{abdeljaber2017}, yang tersedia secara publik dan diperoleh melalui eksperimen menggunakan \textit{Queen's University Grandstand Simulator}. Adapun rincian data yang digunakan adalah sebagai berikut: 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} \begin{itemize}
\item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer. \item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer.

View File

@@ -459,7 +459,7 @@ Untuk memandu arah penelitian ini, beberapa permasalahan utama yang akan dibahas
\section{Lingkup Penelitian} \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. 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} \section{Tujuan Penelitian}
\begin{enumerate} \begin{enumerate}
@@ -594,7 +594,7 @@ Dasar teori ini memberikan kerangka metodologi untuk mengimplementasi dan mengev
\section{Benda Uji} \section{Benda Uji}
Penelitian ini menggunakan data sekunder dari \textcite{abdeljaber2017}, yang tersedia secara publik dan diperoleh melalui eksperimen menggunakan \textit{Queen's University Grandstand Simulator}. Adapun rincian data yang digunakan adalah sebagai berikut: 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} \begin{itemize}
\item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer. \item Dataset terdiri atas rekaman respons getaran dari struktur rangka baja berukuran $6 \times 5$ yang dilengkapi dengan 30 akselerometer.

View File

@@ -1,19 +1,26 @@
\documentclass[draftmark,draft]{thesis} \documentclass[
\title{Prediksi Lokasi Kerusakan dengan Machine Learning} % draftmark,
tocdepth=2,
% pnumwidth=auto
]{skripsi}
\title{Optimisasi Model \textit{Machine Learning} Klasik dengan Reduksi Dimensi untuk Prediksi Kerusakan Lokal pada Struktur \textit{Grid} Rangka Baja}
% \title{Optimization of Classical Machine Learning Models with Dimensionality Reduction for Steel Grid Structure Damage Localization Prediction}
\author{Rifqi Damar Panuluh} \author{Rifqi Damar Panuluh}
\date{\today} \date{\today}
\authorid{20210110224} \authorid{20210110224}
\firstadvisor{Ir. Muhammad Ibnu Syamsi, Ph.D.} \secondadvisor{Ir. Muhammad Ibnu Syamsi, S.T., M.Eng., Ph.D.}
\secondadvisor{} \firstexaminer{Ir. Taufiq Ilham Maulana, S.T., M.Eng., Ph.D. (Eng.)}
\headdepartement{Puji Harsanto, S.T., M.T., Ph.D.} \headdepartement{Ir. Dian Setiawan M., S.T., M.Sc., Ph.D.}
\headdepartementid{19740607201404123064} \headdepartementid{19740607201404123064}
\faculty{Fakultas Teknik} \faculty{Fakultas Teknik}
\program{Program Studi Teknik Sipil} \program{Program Studi Teknik Sipil}
\university{Universitas Muhammadiyah Yogyakarta} \university{Universitas Muhammadiyah Yogyakarta}
\yearofsubmission{\the\year}
% Input preamble % Input preamble
\input{preamble/packages} \input{preamble/packages}
% \input{preamble/fonts} % \input{preamble/fonts}
\input{preamble/macros} \input{preamble/macros}
\input{preamble/appendix.tex}
\addbibresource{bibliography.bib} \addbibresource{bibliography.bib}
@@ -22,35 +29,51 @@
\input{frontmatter/glossaries} \input{frontmatter/glossaries}
\input{frontmatter/notations} \input{frontmatter/notations}
\hypersetup{final}
\begin{document} \begin{document}
\frontmatter \frontmatter
\pagestyle{fancyplain}
% \maketitle % \maketitle
\include{frontmatter/maketitle} \onehalfspacing
\include{frontmatter/maketitle_secondary} % \include{frontmatter/maketitle}
\include{frontmatter/approval} % \include{frontmatter/maketitle_secondary}
\include{frontmatter/originality} % \include{frontmatter/approval}
\include{frontmatter/acknowledgement} % \include{frontmatter/originality}
% \include{frontmatter/acknowledgement}
% \include{frontmatter/preface}
\tableofcontents \tableofcontents
\listoffigures \listoffigures
\listoftables \listoftables
\glsaddall[types={main,notation,\acronymtype}] % \glsaddall[types={main,notation,\acronymtype}]
\printglossary[type=notation,style=altlong3customheader,title=Daftar Simbol dan Lambang] \printglossary[type=notation,style=altlong3customheader,title=Daftar Simbol dan Lambang]
\printglossary[type=\acronymtype,style=supercol,title=Daftar Singkatan] \printglossary[type=\acronymtype,style=supercolnoloc,title=Daftar Singkatan]
\printglossary[type=main,style=mylistalt] \printglossary[type=main,style=mylistalt]
\include{frontmatter/abstract} \include{frontmatter/abstract}
% \pagestyle{fancyplain}
\mainmatter \mainmatter
\pagestyle{fancyplain}
% Include content % Include content
\onehalfspacing
\include{chapters/id/01_introduction} \include{chapters/id/01_introduction}
\include{chapters/id/02_literature_review/index} \include{chapters/id/02_literature_review/index}
\include{chapters/id/03_methodology/index} % \include{chapters/id/03_methodology/index}
\include{chapters/id/04_results} % \include{chapters/id/04_results}
% \include{content/conclusion} % \include{chapters/id/05_conclusion}
\backmatter \backmatter
\pagestyle{fancyplain}
% Bibliography % Bibliography
\printbibliography[heading=bibintoc] % \printbibliography[heading=bibintoc]
% \bibliographystyle{IEEEtran} % \bibliographystyle{IEEEtran}
% \bibliography{references} % \bibliography{references}
% Appendices
\begin{appendices}
% \include{appendix/summary_related_paper}
\pagestyle{empty}
% \include{appendix/coarse_grid_results_A}
% \include{appendix/coarse_grid_results_B}
% \include{appendix/fine_grid_results_A_32}
% \include{appendix/fine_grid_results_B_16}
\end{appendices}
\end{document} \end{document}

View File

@@ -0,0 +1,49 @@
\usepackage{multirow}
\usepackage{array}
% \usepackage{makecell}
\usepackage{lscape}
\usepackage{etoolbox}
\usepackage{longtable,booktabs}
\usepackage{colortbl,xcolor}
\usepackage{enumitem}
\usepackage{pdfpages}
\usepackage{caption}
\usepackage[titletoc,toc,page]{appendix}
\renewcommand{\appendixtocname}{Lampiran}
\renewcommand{\appendixpagename}{\MakeUppercase{Lampiran}}
\definecolor{Gray}{gray}{0.95}
\newcolumntype{a}{>{\columncolor{Gray}}p}
\renewcommand{\thefootnote}{\textit{\alph{footnote}}}
% \newcolumntype{b}{>{\raggedright\arraybackslash}p}
\makeatletter
% Define rlandscape (right-rotated landscape)
\newenvironment{rlandscape}{%
% Temporarily flip the rotation direction
\patchcmd{\LS@rot}{90}{-90}{}{}
\patchcmd{\endlandscape}{90}{-90}{}{}
% Begin a normal landscape
\begin{landscape}
}{%
% End the landscape
\end{landscape}
% Restore the default rotation (so it doesnt affect other landscapes)
\patchcmd{\LS@rot}{-90}{90}{}{}
\patchcmd{\endlandscape}{-90}{90}{}{}
}
\makeatother
\newcounter{customcounter}
% Environment where \thecustomcounter increments on every use
\newenvironment{customcounterenv}{%
\begingroup
% reset to 0 at env start so first use prints 1
\setcounter{customcounter}{0}%
% locally redefine \thecustomcounter: step, then print arabic value
\renewcommand{\thecustomcounter}{\stepcounter{customcounter}\arabic{customcounter}}%
}{%
\endgroup
}

View File

@@ -1,16 +1,29 @@
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesClass{thesis}[2025/05/10 Bachelor Thesis Class] \ProvidesClass{skripsi}[2025/05/10 Bachelor Thesis Class]
\newif\if@draftmark \@draftmarkfalse \RequirePackage{kvoptions}
\newif\if@primarytitle \@primarytitletrue \SetupKeyvalOptions{
\newif\if@secondarytitle \@secondarytitletrue family=skripsikvopt,
prefix=skripsikvopt@
}
% key-value options
\DeclareBoolOption[false]{draftmark}
\DeclareBoolOption[true]{primarytitle}
\DeclareBoolOption[true]{secondarytitle}
% section number depth and tocdepth
\DeclareStringOption[3]{sectiondepth}
\DeclareStringOption[3]{tocdepth}
\DeclareStringOption[fixed]{pnumwidth}
% cover page style
\DeclareStringOption[default]{cover} % default is 'custom'
\DeclareOption{draftmark}{\@draftmarktrue} % Add complementary options for the "no" versions
\DeclareOption{noprimarytitle}{\@primarytitlefalse} \DeclareComplementaryOption{noprimarytitle}{primarytitle}
\DeclareOption{nosecondarytitle}{\@secondarytitlefalse} \DeclareComplementaryOption{nosecondarytitle}{secondarytitle}
\ProcessKeyvalOptions*
\ProcessOptions \relax
\LoadClass[a4paper,12pt,oneside]{book} \LoadClass[a4paper,12pt,oneside]{book}
% Load common packages % Load common packages
@@ -28,6 +41,7 @@
\RequirePackage{tocbibind} \RequirePackage{tocbibind}
\RequirePackage{indentfirst} \RequirePackage{indentfirst}
\RequirePackage{float} \RequirePackage{float}
\RequirePackage{atbegshi}
\RequirePackage{amsmath,amsfonts,amssymb} \RequirePackage{amsmath,amsfonts,amssymb}
\RequirePackage[style=apa,% \RequirePackage[style=apa,%
% dateabbrev=false,% when false, don't abbreviate months/year divisions % dateabbrev=false,% when false, don't abbreviate months/year divisions
@@ -51,14 +65,18 @@
dateuncertain=true,% dateuncertain=true,%
datecirca=true,% datecirca=true,%
sorting=none,% sorting=none,%
url=false,%
doi=false,%
isbn=false,%
backend=biber]{biblatex} backend=biber]{biblatex}
\RequirePackage{hyperref} \RequirePackage[bookmarksopen, bookmarksnumbered, bookmarksdepth=3]{hyperref}
\RequirePackage{hyperxmp}
\RequirePackage[acronym, nogroupskip, toc]{glossaries} \RequirePackage[acronym, nogroupskip, toc]{glossaries}
% \RequirePackage{glossaries-extra} % \RequirePackage{glossaries-extra}
% \RequirePackage{hyperxmp} % \RequirePackage{hyperxmp}
% Polyglossia set language % Polyglossia set language
\setdefaultlanguage[variant=indonesian]{malay} \setmainlanguage[variant=indonesian]{malay}
\setotherlanguage{english} \setotherlanguage{english}
% Change "Bibliography" to "Daftar Pustaka" for book class % Change "Bibliography" to "Daftar Pustaka" for book class
@@ -78,13 +96,25 @@
% \renewcommand{\bibname}{DAFTAR PUSTAKA} % \renewcommand{\bibname}{DAFTAR PUSTAKA}
% Conditionally load the watermark package and settings % Conditionally load the watermark package and settings
\if@draftmark \ifskripsikvopt@draftmark
\RequirePackage{draftwatermark} \RequirePackage{draftwatermark}
\SetWatermarkText{nuluh/thesis (wip)[draft: \today)} % All watermark settings in one place:
\SetWatermarkColor[gray]{0.8} \DraftwatermarkOptions{%
\SetWatermarkFontSize{1.5cm} text={\sffamily\bfseries
\SetWatermarkAngle{90} DRAFT
\SetWatermarkHorCenter{1.5cm} \href{https://github.com/nuluh/thesis}{%
\color{magenta}\fbox{\bfseries\normalsize\texttt{ver.\ 2025.j5}}%
}%
\ \normalsize{Copyright~\textcopyright~Rifqi D. Panuluh}%
},
color={[gray]{0.8}},
fontsize=1.5em,
angle=90,
% hanchor=c,
hpos=20cm,
% vanchor=m,
vpos=20cm
}
\RequirePackage[left]{lineno} \RequirePackage[left]{lineno}
\linenumbers \linenumbers
\fi \fi
@@ -93,7 +123,6 @@
\geometry{left=4cm, top=3cm, right=3cm, bottom=3cm} \geometry{left=4cm, top=3cm, right=3cm, bottom=3cm}
\setlength{\parskip}{0.5em} \setlength{\parskip}{0.5em}
% \setlength{\parindent}{0pt} % \setlength{\parindent}{0pt}
\onehalfspacing
% Fonts % Fonts
\defaultfontfeatures{Ligatures=TeX} \defaultfontfeatures{Ligatures=TeX}
@@ -103,19 +132,6 @@
\setsansfont{Arial} \setsansfont{Arial}
\setmonofont{Courier New} \setmonofont{Courier New}
% Metadata commands
% \input{metadata}
% \newcommand{\setthesisinfo}[7]{%
% \renewcommand{\thesistitle}{#1}%
% \renewcommand{\studentname}{#2}%
% \renewcommand{\studentid}{#3}%
% \renewcommand{\program}{#4}%
% \renewcommand{\faculty}{#5}%
% \renewcommand{\university}{#6}%
% \renewcommand{\yearofsubmission}{#7}%
% }
% % Header and footer % % Header and footer
\fancypagestyle{fancy}{% \fancypagestyle{fancy}{%
\fancyhf{} \fancyhf{}
@@ -127,8 +143,10 @@
\renewcommand{\headrulewidth}{0pt} \renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\thepage} \fancyfoot[C]{\thepage}
} }
% Some LaTeX commands, like \chapter and \chapter*, use the \thispagestyle command to automatically switch to the plain page style, thus ignoring the page style currently in effect. To customize even such pages you must redefine the plain pagestyle. And current 'plain' style by default has correct format. This following command only used for non-chapter-page
\fancypagestyle{fancyplain}{% \fancypagestyle{fancyplain}{%
\fancyhf{} \fancyhf{}
\setlength{\headheight}{15pt} % to avoid fancyhdr warning
\renewcommand{\headrulewidth}{0pt} \renewcommand{\headrulewidth}{0pt}
\fancyhead[R]{\thepage} \fancyhead[R]{\thepage}
} }
@@ -157,7 +175,7 @@
\titleformat{\chapter}[display] \titleformat{\chapter}[display]
{\normalsize\bfseries\centering} {\normalsize\bfseries\centering}
{BAB~\Roman{chapter}} % << display format {\MakeUppercase\chaptername~\Roman{chapter}} % << display format
{1ex} {1ex}
{\MakeUppercase} {\MakeUppercase}
\titleformat{\section} \titleformat{\section}
@@ -167,24 +185,115 @@
{\normalsize\bfseries}{\thesubsection}{1em}{} {\normalsize\bfseries}{\thesubsection}{1em}{}
% Section numbering depth % Section numbering depth
\setcounter{secnumdepth}{3} \makeatletter
\setcounter{secnumdepth}{\skripsikvopt@sectiondepth}
\makeatother
% Ensure chapter reference in TOC matches % Ensure chapter reference in TOC matches
\renewcommand{\cftchappresnum}{BAB~} \renewcommand{\cftchappresnum}{\MakeUppercase\chaptername~}
\renewcommand{\cftchapaftersnum}{\quad} \renewcommand{\cftchapaftersnum}{\quad}
% Redefine \maketitle % Redefine \maketitle
% Save the original \maketitle before redefining it
\makeatletter
\let\original@maketitle\maketitle
\renewcommand{\maketitle}{% \renewcommand{\maketitle}{%
\if@primarytitle \ifskripsikvopt@primarytitle
% Check if user explicitly wants default
\ifdefstring{\skripsikvopt@cover}{legacy}{%
% Use original book \maketitle
\original@maketitle
\IfFileExists{frontmatter/maketitle.tex}{%
\ClassWarning{skripsi.cls}{Omit 'cover=legacy' option to use user-defined primary cover page 'frontmatter/maketitle.tex'}
}{}%
}{%
% Try to use user's custom file first
\IfFileExists{frontmatter/maketitle.tex}{%
\input{frontmatter/maketitle}% \input{frontmatter/maketitle}%
\fi \ClassWarning{skripsi.cls}{Using user-defined cover page 'frontmatter/maketitle.tex'}%
\if@secondarytitle }{%
\clearpage % embedded version
\input{frontmatter/maketitle_secondary}% {\begin{titlepage}
\fi \centering
\vspace*{1cm}
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir (EMBED)}}\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} \\
\textbf{\theyearofsubmission}
} }
\end{titlepage}%
}
}%
}%
\else
\IfFileExists{frontmatter/maketitle.tex}{%
\ClassWarning{skripsi.cls}{Omit 'noprimarytitle' option to use user-defined cover page 'frontmatter/maketitle.tex'}%
}{}%
\fi
\ifskripsikvopt@secondarytitle
\clearpage
\IfFileExists{frontmatter/maketitle_secondary.tex}{%
\input{frontmatter/maketitle_secondary}%
\ClassWarning{skripsi.cls}{Using user-defined secondary cover page}
}{%
{
\begin{titlepage}
\centering
{\fontsize{14pt}{16pt}\selectfont \textbf{\MakeUppercase{Tugas Akhir (Embed)}}\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} \\
\textbf{\theyearofsubmission}
}
\end{titlepage}%
}
\ClassWarning{skripsi.cls}{File frontmatter/maketitle_secondary.tex not found, using embedded secondary cover page}%
}%
\else
\IfFileExists{frontmatter/maketitle_secondary.tex}{%
\ClassWarning{skripsi.cls}{Omit 'nosecondarytitle' option to use user-defined secondary cover page 'frontmatter/maketitle_secondary.tex'}%
}{}%
\fi
}
\makeatother
% Chapter & Section format % Chapter & Section format
% thanks to https://latex.org/forum/viewtopic.php?p=83118&sid=a22ccb456531faabf65070c18af69680#p83118 for elegant solution % thanks to https://latex.org/forum/viewtopic.php?p=83118&sid=a22ccb456531faabf65070c18af69680#p83118 for elegant solution
\makeatletter \makeatletter
@@ -199,6 +308,30 @@
% \renewcommand{\thesection}{\textup{\Roman{chapter}}.\arabic{section}} % \renewcommand{\thesection}{\textup{\Roman{chapter}}.\arabic{section}}
% Dot leaders, spacing, indentation % Dot leaders, spacing, indentation
\makeatletter
\ifdefstring{\skripsikvopt@pnumwidth}{auto}{%
% Thanks to https://tex.stackexchange.com/a/397295/270151 for clever solution to fix the fixed length \@pnumwidth problem to auto-like width
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\cftchapfillnum}% <cmd>
{\makebox[\@pnumwidth][\cftpnumalign]}% <search>
{}% <replace>
{}{}% <success><failure>
\patchcmd{\cftsecfillnum}% <cmd>
{\makebox[\@pnumwidth][\cftpnumalign]}% <search>
{}% <replace>
{}{}% <success><failure>
\patchcmd{\cftsubsecfillnum}% <cmd>
{\makebox[\@pnumwidth][\cftpnumalign]}% <search>
{}% <replace>
{}{}% <success><failure>
\patchcmd{\cftsubsubsecfillnum}% <cmd>
{\makebox[\@pnumwidth][\cftpnumalign]}% <search>
{}% <replace>
{}{}% <success><failure>
\makeatother
}{
% Fixed width page numbers (default)
}
\setlength{\cftbeforetoctitleskip}{0cm} \setlength{\cftbeforetoctitleskip}{0cm}
\setlength{\cftbeforeloftitleskip}{0cm} \setlength{\cftbeforeloftitleskip}{0cm}
\setlength{\cftbeforelottitleskip}{0cm} \setlength{\cftbeforelottitleskip}{0cm}
@@ -209,14 +342,15 @@
\setlength{\cftchapnumwidth}{3.5em} \setlength{\cftchapnumwidth}{3.5em}
\setlength{\cftsecnumwidth}{2em} \setlength{\cftsecnumwidth}{2em}
\setlength{\cftsubsecnumwidth}{2.5em} \setlength{\cftsubsecnumwidth}{2.5em}
\setlength{\cftfignumwidth}{5em} \setlength{\cftfignumwidth}{6em}
\setlength{\cfttabnumwidth}{4em} \setlength{\cfttabnumwidth}{4em}
\renewcommand \cftchapdotsep{1} % https://tex.stackexchange.com/a/273764 \renewcommand \cftchapdotsep{1} % https://tex.stackexchange.com/a/273764
\renewcommand \cftsecdotsep{1} % https://tex.stackexchange.com/a/273764 \renewcommand \cftsecdotsep{1} % https://tex.stackexchange.com/a/273764
\renewcommand \cftsubsecdotsep{1} % https://tex.stackexchange.com/a/273764 \renewcommand \cftsubsecdotsep{1} % https://tex.stackexchange.com/a/273764
\renewcommand \cftsubsubsecdotsep{1} % https://tex.stackexchange.com/a/273764
\renewcommand \cftfigdotsep{1.5} % https://tex.stackexchange.com/a/273764 \renewcommand \cftfigdotsep{1.5} % https://tex.stackexchange.com/a/273764
\renewcommand \cfttabdotsep{1.5} % https://tex.stackexchange.com/a/273764 \renewcommand \cfttabdotsep{1.5} % https://tex.stackexchange.com/a/273764
\renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftsecdotsep}} \renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftchapdotsep}}
\renewcommand{\cftchappagefont}{\normalfont} \renewcommand{\cftchappagefont}{\normalfont}
% Add Prefix in the Lof and LoT entries % Add Prefix in the Lof and LoT entries
@@ -239,7 +373,10 @@
\renewcommand{\cftloftitlefont}{\hfill\bfseries\MakeUppercase} \renewcommand{\cftloftitlefont}{\hfill\bfseries\MakeUppercase}
\renewcommand{\cftafterloftitle}{\hfill} \renewcommand{\cftafterloftitle}{\hfill}
\renewcommand{\cftlottitlefont}{\hfill\bfseries\MakeUppercase} \renewcommand{\cftlottitlefont}{\hfill\bfseries\MakeUppercase}
\renewcommand{\cftafterlottitle}{\hfill} % TOC depth
\makeatletter
\setcounter{tocdepth}{\skripsikvopt@tocdepth}
\makeatother
% Defines a new glossary called notation % Defines a new glossary called notation
\newglossary[nlg]{notation}{not}{ntn}{Notation} \newglossary[nlg]{notation}{not}{ntn}{Notation}
@@ -259,8 +396,8 @@
\renewcommand*{\glossentry}[2]{% \renewcommand*{\glossentry}[2]{%
\item \glstarget{##1}{\glossentryname{##1}}% \item \glstarget{##1}{\glossentryname{##1}}%
\mbox{}\\ \mbox{}\\
\glossentrydesc{##1}\space \glossentrydesc{##1}
[##2] % appears on page x % [##2] % appears on page x
}% }%
% sub-entries as separate paragraphs, still aligned % sub-entries as separate paragraphs, still aligned
\renewcommand*{\subglossentry}[3]{% \renewcommand*{\subglossentry}[3]{%
@@ -336,6 +473,26 @@
\glossentrydesc{##2}\glspostdescription\space ##3\tabularnewline \glossentrydesc{##2}\glspostdescription\space ##3\tabularnewline
}% }%
} }
% Define a new style 'supercolnoloc' based on 'super'
\newglossarystyle{supercolnoloc}{%
\setglossarystyle{super}% inherit everything from the original
\renewenvironment{theglossary}%
{\begin{longtable}{lp{0.8\textwidth}}}%
{\end{longtable}}%
% override just the main-entry format:
\renewcommand*{\glossentry}[2]{%
\glsentryitem{##1}%
\glstarget{##1}{\glossentryname{##1}}\space % <-- added colon here
&: \glossentrydesc{##1}\glspostdescription \tabularnewline
}%
% likewise for subentries, if you want a colon there too:
\renewcommand*{\subglossentry}[3]{%
&:
\glssubentryitem{##2}%
\glstarget{##2}{\strut}\glossentryname{##2}\space % <-- and here
\glossentrydesc{##2}\glspostdescription\space ##3\tabularnewline
}%
}
\makeatother \makeatother
% A new command that enables us to enter bi-lingual (Slovene and English) terms % A new command that enables us to enter bi-lingual (Slovene and English) terms
@@ -378,6 +535,84 @@
} }
} }
% Keywords command for abstract (polyglossia-compatible)
% --- Track main language vs. current language ---
% Thanks to https://tex.stackexchange.com/a/333659
\def\listterminator{;}
\makeatletter
\newcommand\alphabubblesort[1]{\def\presorted{}\def\sortedlist{}%
\sortlist#1,\listterminator,\relax}
\def\sortlist#1#2,#3#4,#5\relax{%
\if\listterminator#3#4\relax%
\expandafter\def\expandafter\sortedlist\expandafter{\sortedlist#1#2}%
\else
\ifnum\the\lccode`#1<\the\lccode`#3\relax%
\expandafter\expandafter\expandafter\def\expandafter\expandafter%
\expandafter\sortedlist\expandafter\expandafter\expandafter{%
\expandafter\sortedlist\presorted#1#2, }%
\expandafter\def\expandafter\svfirst\expandafter{\presorted#3#4}%
\def\presorted{}%
\expandafter\sortlist\svfirst,#5\relax%
\else%
\ifnum`#1=`#3\relax%
\ifx\relax#2\relax%
\expandafter\expandafter\expandafter\def\expandafter\expandafter%
\expandafter\sortedlist\expandafter\expandafter\expandafter{%
\expandafter\sortedlist\presorted#1#2, }%
\expandafter\def\expandafter\svfirst\expandafter{\presorted#3#4}%
\def\presorted{}%
\expandafter\sortlist\svfirst,#5\relax%
\else%
\ifx\relax#4\relax%
\expandafter\expandafter\expandafter\def\expandafter\expandafter%
\expandafter\sortedlist\expandafter\expandafter\expandafter{%
\expandafter\sortedlist\presorted#3#4, }%
\expandafter\def\expandafter\svfirst\expandafter{\presorted#1#2}%
\def\presorted{}%
\expandafter\sortlist\svfirst,#5\relax%
\else
\g@addto@macro\presorted{#1}%
\sortlist#2,#4,#5\relax%
\fi%
\fi%
\else%
\let\tmp\sortedlist%
\def\sortedlist{}%
\expandafter\def\expandafter\svfirst\expandafter{\presorted#3#4}%
\expandafter\def\expandafter\svsecond\expandafter{\presorted#1#2}%
\def\presorted{}%
\expandafter\expandafter\expandafter\expandafter\expandafter%
\expandafter\expandafter\sortlist\expandafter\expandafter%
\expandafter\tmp\expandafter\svfirst\expandafter,\svsecond,#5\relax%
\fi%
\fi%
\fi%
}
% Wrap your existing \keywords so it:
% 1) computes \sortedlist
% 2) prints it
% 3) also updates PDF metadata for XeLaTeX via xdvipdfmx \special
\newcommand{\keywords}[1]{%
\bigskip\noindent
\alphabubblesort{#1}
\ifnum\strcmp{\languagename}{malay}=0
Kata Kunci: \sortedlist%
\else
\textit{Keywords: \sortedlist}%
\fi
% -- store for metadata --
\gdef\SortedKeywords{\sortedlist}%
% Sanitize for PDF string (escapes parentheses, makes nice unicode)
\pdfstringdef\kwpdf{\SortedKeywords}%
% For XeLaTeX/xdvipdfmx, override PDF docinfo directly; the last call wins.
\immediate\special{pdf:docinfo << /Keywords (\kwpdf) >>}%
% If you also want hyperrefs internal copy updated (harmless):
\hypersetup{pdfkeywords={\SortedKeywords}}%
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Change the text of the cross-reference links to the Slovene long version. % Change the text of the cross-reference links to the Slovene long version.
\renewcommand*{\glsseeitemformat}[1]{\emph{\acrlong{#1}}.} \renewcommand*{\glsseeitemformat}[1]{\emph{\acrlong{#1}}.}
@@ -399,8 +634,9 @@
% Declare internal macros as initially empty % Declare internal macros as initially empty
\newcommand{\@authorid}{} \newcommand{\@authorid}{}
\newcommand{\@firstadvisor}{}
\newcommand{\@secondadvisor}{} \newcommand{\@secondadvisor}{}
\newcommand{\@firstexaminer}{}
\newcommand{\@secondexaminer}{}
\newcommand{\@headdepartement}{} \newcommand{\@headdepartement}{}
\newcommand{\@headdepartementid}{} \newcommand{\@headdepartementid}{}
\newcommand{\@faculty}{} \newcommand{\@faculty}{}
@@ -410,39 +646,49 @@
% Define user commands to set these values. % Define user commands to set these values.
\newcommand{\authorid}[1]{\gdef\@authorid{#1}} \newcommand{\authorid}[1]{\gdef\@authorid{#1}}
\newcommand{\firstadvisor}[1]{\gdef\@firstadvisor{#1}}
\newcommand{\secondadvisor}[1]{\gdef\@secondadvisor{#1}} \newcommand{\secondadvisor}[1]{\gdef\@secondadvisor{#1}}
\newcommand{\firstexaminer}[1]{\gdef\@firstexaminer{#1}}
\newcommand{\secondexaminer}[1]{\gdef\@secondexaminer{#1}}
\newcommand{\headdepartement}[1]{\gdef\@headdepartement{#1}} \newcommand{\headdepartement}[1]{\gdef\@headdepartement{#1}}
\newcommand{\headdepartementid}[1]{\gdef\@headdepartementid{#1}} \newcommand{\headdepartementid}[1]{\gdef\@headdepartementid{#1}}
\newcommand{\faculty}[1]{\gdef\@faculty{#1}} \newcommand{\faculty}[1]{\gdef\@faculty{#1}}
\newcommand{\program}[1]{\gdef\@program{#1}} \newcommand{\program}[1]{\gdef\@program{#1}}
\newcommand{\university}[1]{\gdef\@university{#1}} \newcommand{\university}[1]{\gdef\@university{#1}}
% \newcommand{\yearofsubmission}[1]{\gdef\@yearofsubmission{#1}} \newcommand{\yearofsubmission}[1]{\gdef\@yearofsubmission{#1}}
% Now expose robust the getters to access the values % Now expose robust the getters to access the values
\newcommand{\theauthorid}{\@authorid} \newcommand{\theauthorid}{\@authorid}
\newcommand{\thefirstadvisor}{\@firstadvisor}
\newcommand{\thesecondadvisor}{\@secondadvisor} \newcommand{\thesecondadvisor}{\@secondadvisor}
\newcommand{\thefirstexaminer}{\@firstexaminer}
\newcommand{\thesecondexaminer}{\@secondexaminer}
\newcommand{\theheaddepartement}{\@headdepartement} \newcommand{\theheaddepartement}{\@headdepartement}
\newcommand{\theheaddepartementid}{\@headdepartementid} \newcommand{\theheaddepartementid}{\@headdepartementid}
\newcommand{\thefaculty}{\@faculty} \newcommand{\thefaculty}{\@faculty}
\newcommand{\theprogram}{\@program} \newcommand{\theprogram}{\@program}
\newcommand{\theuniversity}{\@university} \newcommand{\theuniversity}{\@university}
\newcommand{\theyearofsubmission}{\@yearofsubmission}
% Ensure title/author/date get expanded correctly in hypersetup % \AtBeginDocument{%
% \hypersetup{ % \hypersetup{
% pdftitle={\@title}, % pdftitle={\@title},
% pdfauthor={\@author}, % pdfauthor={Rifqi D. Panuluh}
% }%
% }
% Ensure title/author/date get expanded correctly in hypersetup
\hypersetup{
% pdftitle={gfhfdhfd},
% pdfauthor={Rifqi D. Panuluh},
% pdfdate={\@date}, % pdfdate={\@date},
% pdfsubject={Bachelor Thesis}, pdfsubject={Bachelor Thesis},
% pdfkeywords={structural health monitoring, machine learning, stft, vibration, signal},
% pdfpublisher={Universitas Muhammadiyah Yogyakarta}, % pdfpublisher={Universitas Muhammadiyah Yogyakarta},
% pdfcontactemail={rifqi.damar.ft21@mail.umy.ac.id}, % pdfcontactemail={rifqi.damar.ft21@mail.umy.ac.id},
% pdflicenseurl={https://github.com/nuluh/thesis/blob/main/LICENSE}, pdfcopyright={Copyright (C) 2025, Rifqi D. Panuluh},
% pdflang={id}, pdflicenseurl={https://github.com/nuluh/thesis/blob/main/LICENSE},
% pdfcreator={XeLaTeX with hyperref and hyperxmp}, pdfurl = {https://github.com/nuluh/thesis/releases/download/v1.0/main.pdf},
% pdfproducer={TeX Live 2024}, pdflang={id},
% pdftrapped=False pdfcreator={XeLaTeX with hyperref and hyperxmp},
% } pdfproducer={TeX Live 2024},
keeppdfinfo=true
}
\makeatother \makeatother
\endinput \endinput