\documentclass[fleqn,10pt]{wlscirep}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tabularx}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{hyperref}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{booktabs}
\graphicspath{{figures/}}


\lstset{
    basicstyle=\ttfamily\footnotesize,
    breaklines=true,
    frame=single,
    numbers=left,
    numberstyle=\tiny\color{gray},
    keywordstyle=\color{blue}\bfseries,
    stringstyle=\color{red},
    commentstyle=\color{green!50!black}\itshape,
    backgroundcolor=\color{gray!5},
    showstringspaces=false,
    tabsize=2,
    captionpos=b,
    xleftmargin=0.5cm,
    xrightmargin=0.5cm
}

\lstdefinelanguage{HTML5}{
    language=html,
    sensitive=true,
    alsoletter={<>=-},
    morecomment=[s]{<!--}{-->},
    tag=[s],
    otherkeywords={
        <html>, </html>, <head>, </head>, <title>, </title>, <body>, </body>,
        <div>, </div>, <script>, </script>, <select>, </select>, <option>, </option>,
        <input>, <p>, </p>, <h1>, </h1>, <br>, <b>, </b>,
        id=, value=, type=, onclick=, style=, class=
    },
    ndkeywords={
        function, var, if, else, true, false, document,
        getElementById, style, display, checked
    },
}
\title{Application of Modified Kruskal Algorithms in Determining Tourism Routes Optimization in Banda Aceh City}

\author[1,*]{Siti Rusdiana}
\author[2]{Irvanizam Irvanizam}
\author[3]{T.M. Haikal}
\affil[1, 3]{Department of Mathematics, Universitas Syiah Kuala, Banda Aceh, Indonesia, 23111}
\affil[2]{Department of Informatics, Universitas Syiah Kuala, Banda Aceh, Indonesia, 23111}

\affil[*]{siti.rusdiana@usk.ac.id}

\affil[+]{these authors contributed equally to this work}

%\keywords{Banda Aceh Tourism, Graph Theory, Modified Kruskal Algorithm, Operation Research, Tourism Route Optimization}

\begin{abstract}
Optimizing tourist route planning has practical implications for both visitor experience and urban sustainability. This study presents a degree-constrained, Kruskal-inspired heuristic for constructing a Hamiltonian path that visits each attraction exactly once while minimizing the total road distance. Ten major attractions in Banda Aceh, Indonesia, were modeled as nodes in a weighted graph using pairwise driving distances from Google Maps (collected 5 October 2019–December 2020). The heuristic generated a continuous route of 21.5 km that spans all attractions, outperforming a minimum spanning tree (MST) baseline of 24.3 km. The method was implemented in a web map and an Android prototype to demonstrate practical usability. While computationally efficient and easy to deploy, the approach does not guarantee global optimality. Limitations include distance-only optimization and a single-city evaluation; future work will integrate time-dependent costs and user preferences to enhance the model's effectiveness.
\end{abstract}
\begin{document}


\flushbottom
\maketitle
% * <john.hammersley@gmail.com> 2015-02-09T12:07:31.197Z:
%
%  Click the title above to edit the author information and abstract
%
\thispagestyle{empty}

\noindent 

\section*{Introduction}

Tourism plays a pivotal role in the economic, social, and cultural development of Banda Aceh, significantly contributing to local prosperity and international recognition. As the capital of Aceh province and a city rich in historical, religious, and cultural heritage, Banda Aceh attracts a growing number of visitors each year \cite{ref1}. Key attractions such as the Baiturrahman Grand Mosque, Tsunami Museum, Aceh Museum, Sulthanah Safiatuddin Park, Sari Gunongan Park, PLTD Apung, and Ulee Lheue Beach highlight the city’s diverse tourism potential. The tourism sector not only generates employment and stimulates related industries but also fosters cultural exchange and community development \cite{ref2}.
Despite these advantages, tourists in Banda Aceh often face challenges in efficiently planning their travel routes among the city’s many attractions. Inefficient route planning can lead to increased travel time, higher costs, and reduced overall satisfaction. Optimizing these routes is therefore essential to enhance the tourist experience by minimizing travel distance and effort while ensuring that each destination is visited exactly once \cite{ref3}. This optimization problem is well-suited to mathematical modeling using graph theory, which provides powerful tools for solving complex routing challenges \cite{ref4}.
Graph theory, a foundational area of mathematics, offers several algorithms for route optimization, including Dijkstra’s, Prim’s, and Kruskal’s algorithms \cite{ref2}. Kruskal’s algorithm, in particular, is widely used for finding the minimum spanning tree (MST) in a connected, weighted graph by iteratively adding the smallest available edges without forming cycles. However, the direct application of Kruskal’s algorithm to real-world tourism route planning is limited, as it does not inherently prevent revisiting locations or ensure the formation of a continuous, practical route. While previous studies have proposed modifications to algorithms like Prim’s and Dijkstra’s for transportation and logistics, there is a notable gap in the literature regarding practical adaptations of Kruskal’s algorithm for tourism route optimization.
This research addresses this gap by proposing a novel modification to the Kruskal algorithm, specifically tailored for optimizing tourism routes in Banda Aceh. The main contributions of this study are threefold: first, the development of a modified Kruskal algorithm that constructs efficient, non-redundant routes connecting all major tourist attractions; second, the implementation of this algorithm within an Android application to provide tourists with accessible, optimized navigation; and third, the evaluation of the algorithm and application in real-world scenarios to assess their effectiveness in improving the tourist experience.
The methodology involves selecting ten prominent tourist destinations in Banda Aceh based on historical significance and visitor frequency. Distances between these sites, obtained via Google Maps, are used to construct a weighted graph. The modified Kruskal algorithm is designed to avoid cycles and prevent any location from being visited more than once, ensuring a practical and efficient route. The resulting algorithm is integrated into an Android application developed with Android Studio and the Google Maps API, enabling users to input their current location and receive optimized travel routes.
Initial implementation of the modified algorithm reduced the total travel distance between the ten attractions to 21.5 kilometers, with the optimized route beginning at Makam Syiah Kuala and ending at Pantai Ulee Lheue. User testing of the application demonstrated positive feedback regarding usability and navigation efficiency, indicating the practical value of the proposed solution.
This study makes a significant contribution to the field of tourism route optimization by introducing a practical modification to Kruskal’s algorithm and demonstrating its effectiveness through a user-friendly mobile application. The approach not only enhances the experience of tourists in Banda Aceh but also provides a framework for future research and development in tourism and transportation optimization.
The scope of this research is defined by several limitations: route calculations are based solely on distance, not travel time; distances between attractions are assumed to be uniform; starting and ending points are determined post-optimization; and all ten attractions must be included in the route. Despite these constraints, the proposed method offers a robust and scalable solution for tourism route optimization, with potential benefits for tourists, local authorities, and sustainable tourism development.

 The remainder of this paper is organized as follows. Section 2 presents the methodology of this study, which consists of data collection, data analysis, and the steps involved in Android development. Section 3 discusses results and findings demonstrating the Original of Kruskal Algorithm, the modification of Kruskal Algorithm, Baseline performance comparison, Statistical robustness analysis, Computational complexity analysis, and Android Development. Section 4 presents a discussion of the study's findings. Lastly, Section 4 summarizes some conclusions and future studies.

\section*{Methodology}
This chapter outlines the methodologies employed in this research, including data collection, modification of the Kruskal algorithm, and development of an Android application to implement the modified algorithm.

\subsection*{Data Collection}
This study identified ten frequently visited tourist destinations in Banda Aceh and computed pairwise road distances using Google Maps. For each pair of destinations ordered, the shortest driving distance (in kilometers) returned by Google Maps under the default routing settings at the time of measurement was recorded. Data were collected from October 5, 2019, to December 2020. The resulting distance matrix is symmetric with zeros on the diagonal and was used for subsequent analyses. Detailed reproduction steps (including destination names, coordinates, and measurement procedures) are provided in the Methods, and the underlying dataset is available from the corresponding author upon reasonable request. Each of the ten tourist spots was identified and labeled as a vertex in the graph. The selected tourist spots are:

\begin{flushleft}
\begin{tabular}{ll}
\textit{A} & = Sulthanah Safiatuddin Park \\
\textit{B} & = Sari Gunongan Park \\
\textit{C} & = PLTD Apung \\
\textit{D} & = Makam Syiah Kuala \\
\textit{E} & = Tsunami Museum \\
\textit{F} & = Baiturrahman Grand Mosque \\
\textit{G} & = Aceh Museum \\
\textit{H} & = Urban Forest \\
\textit{I} & = Ulee Lheue Beach \\
\textit{J} & = Kapal Tsunami Lampulo \\
\end{tabular}
\end{flushleft}

These tourism destinations were chosen based on their historical significance, visitor frequency, and accessibility. The distances between these spots were obtained using Google Maps to ensure accuracy. The distances from the edges of the graph, with the tourist spots as vertices, are shown in the Table \ref{tab:table1}

\begin{table}[!t]
\caption{Distance of Each Vertex}
\label{tab:table1}
\setlength{\tabcolsep}{3pt} 
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}
\hline
Vertex & A & B & C & D & E & F & G & H & I & J \\
\hline
A & 0 & 4.3 & 5.5 & 3.9 & 4.5 & 3.8 & 3.7 & 3.0 & 8.3 & 2.3 \\
B & 4.3 & 0 & 2.0 & 6.6 & 1.4 & 1.5 & 0.8 & 8.5 & 5.9 & 8.4 \\
C & 5.5 & 2.0 & 0 & 7.7 & 1.3 & 2.8 & 2.4 & 7.9 & 3.6 & 4.6 \\
D & 3.9 & 6.6 & 7.7 & 0 & 6.7 & 6.0 & 5.9 & 3.9 & 10.4 & 2.5 \\
E & 4.5 & 1.4 & 1.3 & 6.7 & 0 & 1.6 & 1.4 & 7.5 & 4.1 & 4.2 \\
F & 3.8 & 1.5 & 2.8 & 6.0 & 1.6 & 0 & 0.8 & 5.8 & 5.4 & 3.2 \\
G & 3.7 & 0.8 & 2.4 & 5.9 & 1.4 & 0.8 & 0 & 6.2 & 5.2 & 6.1 \\
H & 3.0 & 8.5 & 7.9 & 3.9 & 7.5 & 5.8 & 6.2 & 0 & 10.7 & 5.6 \\
I & 8.3 & 5.9 & 3.6 & 10.4 & 4.1 & 5.4 & 5.2 & 10.7 & 0 & 7.1 \\
J & 2.3 & 8.4 & 4.6 & 2.5 & 4.2 & 3.2 & 6.1 & 5.6 & 7.1 & 0 \\
\hline
\end{tabular}
\end{table}


A distance matrix was created to represent the graph. Each cell in the matrix represents the distance between two tourist spots (vertices). The matrix is symmetric, with the diagonal elements being zero (distance from a spot to itself). The visualization of the tourist destination can be seen in Figure \ref{fig:figure1}.

\begin{figure}[h!]
    \centering
    \includegraphics[width=70mm]{Picture1.png}
    \caption{The visualization of 10 tourist destinations.}
    \label{fig:figure1}
\end{figure}

\subsection*{Data Analysis}
Two methods were used for data analysis: the original Kruskal algorithm and a modified version. The original Kruskal Algorithm involves creating a minimum spanning tree (MST) by adding edges in order of increasing weight, ensuring no cycles are formed. The modified Kruskal Algorithm version includes additional constraints, such as specified starting and ending points and prioritizing certain destinations. 
To determine the minimum spanning tree on a connected weighted graph with \(n>1\) vertices \cite{ref5}. Both procedures involved generating the graph data, and the following steps were taken:

\begin{enumerate}
    \item {Initialization}
    \begin{itemize}
        \item Define the graph $G = (v, e)$; $G = (v, e)$; $G = (v, e)$ where \textit{vvv} is the set of vertices (tourist spots) and \textit{eee} is the set of edges (distances between spots).
        \item Initialize an empty forest \textit{fff} (a set of trees), where each vertex in \textit{vvv} is a separate tree.
    \end{itemize}
    
    \item Sort all edges in \textit{eee} by their weight (distance) in non-decreasing order.
    
    \item {Iterative Edge Addition.} For each edge $(u, v)$ $(u, v)$ $(u, v)$ in the sorted list:
    \begin{itemize}
        \item Check if adding the edge $(u, v)$ $(u, v)$ $(u, v)$ to the forest \textit{fff} will create a cycle or cause any vertex to have more than two incident edges;
        \item If it does not, add the edge $(u, v)$ $(u, v)$ $(u, v)$ to \textit{fff};
        \item If it does, discard the edge $(u, v)$ $(u, v)$ $(u, v)$.
    \end{itemize}
    
    \item {Termination:} Repeat until the forest \textit{fff} contains exactly $n{-}1$, $n{-}1$, $n{-}1$ edges, where \textit{n n n} is the number of vertices in \textit{vvv}.
\end{enumerate}

\subsection*{Android Development Steps}

\begin{enumerate}
    \item Setting up the project by creating a new project in Android Studio and set up the necessary dependencies, including the Google Maps API.
    
    \item Designing the user interface using XML and HTML to design the user interface, ensuring that it is intuitive and easy to use.
    
    \item Implementing route optimization by integrating the modified Kruskal algorithm into the application to calculate the optimized route based on user input.
    
    \item Integrating Google Maps API by configuring the Google Maps API to display the optimized route on the map and provide navigation instructions.
    
    \item Testing and debugging by testing the application thoroughly to ensure accuracy and usability. Debug any issues that arise during testing.
\end{enumerate}

\section*{Results}
\subsection*{The Original of Kruskal Algorithm}
The use of the original Kruskal algorithm does not provide effectiveness in determining the minimum route for tourist destinations in Banda Aceh, as seen in the image. The Kruskal algorithm works by selecting the edge with the minimum weight that does not form a cycle and then adding that edge to the solution. This step is repeated \(n−1\) times. However, there are shortcomings in finding the minimum tourism route using the Kruskal algorithm, as illustrated in the image. The following procedure, as described \cite{ref5}, outlines the steps involved:

\begin{enumerate}
    \item {Initialize:}
    \begin{itemize}
        \item Find the edge with the minimum weight and denote it as \( e_1 \).
        \item Initialize \( k = 1 \).
    \end{itemize}
    
    \item {While \( k < n \):}
    \begin{itemize}
        \item If there exists an edge \( e \) such that \( \{e\} \cup \{e_1, e_2, \dots\} \) does not contain a cycle, take \( e_{k+1} \) as the edge with the minimum weight and replace \( k \) with \( k + 1 \).
        \item Else, output \( e_1, e_2, \dots \), and stop.
    \end{itemize}
\end{enumerate}

This algorithm ensures the creation of an MST by adding edges in order of increasing weight without forming cycles. In the case shown, this is possible with the Kruskal algorithm, but it is inefficient for finding the minimum tourism route in real life.
The original Kruskal algorithm was applied to the distance matrix to find the Minimum Spanning Tree (MST) that connects all tourism destinations with the minimum total distance. The steps included extracting and sorting the edge list, initializing the union-find data structure, and adding edges while avoiding cycles until all nodes were connected.
This graph illustrates the edges selected based solely on minimum weight, without any additional constraints. The total travel distance is 24.3 kilometers. The distance for each edge is as follows, and the MST graph is presented in the Table \ref{tab:table2} and Figure \ref{fig: Figure2}.

\begin{table}[!t]
\caption{Optimized Route and Distances of Original Kruskal Algorithm}
\label{tab:table2}
\setlength{\tabcolsep}{4pt}
\begin{tabular}{|c|p{3.2cm}|p{3.2cm}|}
\hline
\textbf{Sequence} & \textbf{Tourist Spot} & \textbf{Distance (km)} \\
\hline
A & Sulthanah Safiatuddin Park & 2.3 (to J), 3.0 (to H) \\
B & Sari Gunongan Park & 0.8 (to G), 2.0 (to C) \\
C & PLTD Apung & 2.0 (to B), 1.3 (to E), 3.6 (to I) \\
D & Makam Syiah Kuala & 2.5 (to J) \\
E & Tsunami Museum & 1.3 (to C), 1.6 (to F) \\
F & Baiturrahman Grand Mosque & 0.8 (to G), 1.6 (to E) \\
G & Aceh Museum & 0.8 (to B), 0.8 (to F) \\
H & Urban Forest & 3.0 (to A) \\
I & Ulee Lheue Beach & 3.6 (to C) \\
J & Kapal Tsunami Lampulo & 2.3 (to A), 2.5 (to D) \\
\hline
\end{tabular}
\end{table}

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.4\textwidth]{Picture2.png}
    \caption{Tourism routes by original kruskal algorithm}
    \label{fig: Figure2}
    \end{figure}

As seen in Figure \ref{fig:figure1}, tourists go from vertex J, vertex H, and vertex F. Then for the next they must choose to go to either vertex G, vertex E, or vertex D. If the tourists go first to vertex D, they must pass through vertex F again before reaching vertex C. This does not save time, as tourists pass through vertex F twice. Therefore, a modified Kruskal algorithm method needs to be developed to address this issue.

\subsection*{The Modification of Kruskal Algorithm}
The modified Kruskal algorithm was applied to the distance data between the ten selected tourist spots in Banda Aceh. The primary objective was to generate an optimized route that minimizes the total travel distance while ensuring practical usability by avoiding revisits to any location. The key steps and results are summarized below:
\begin{itemize}
    \item {Graph Representation:} The tourist spots were represented as vertices in a graph. The distances between the spots, obtained from Google Maps, were used as edge weights.
    
    \item {Edge Sorting:} All edges were sorted in non-decreasing order based on their weights (distances).
    
    \item {Edge Selection and Forest Construction:} Edges were iteratively added to the forest (set of trees) if they did not form a cycle and did not result in any vertex having more than two incident edges. This modification ensured that the resulting route was a practical tour without re-examines.
    
    \item {Optimized Route:} The sequence of tourist spots in the optimized route was as follows: 
    {A} = Sulthanah Safiatuddin Park; 
    {B} = Sari Gunongan Park; 
    {C} = PLTD Apung; 
    {D} = Makam Syiah Kuala; 
    {E} = Tsunami Museum; 
    {F} = Baiturrahman Grand Mosque; 
    {G} = Aceh Museum; 
    {H} = Urban Forest; 
    {I} = Ulee Lheue Beach; 
    {J} = Kapal Tsunami Lampulo.
\end{itemize}

Therefore, a modification of Kruskal algorithm will be formed in order to save more time in finding the minimum tourism route in Banda Aceh City:
    Step 1. Find the edge with the minimum weight and denote it as $e_1$. Initialize $k = 1$.
    Step 2.
    \begin{enumerate}
    \item While $k < n$
    \item If there exists an edge $e$ such that $\{e\} \cup \{e_1, e_2, \ldots, e_k\}$ has the minimum weight, the edge does not form a cycle, and the edge incident to the endpoint of this edge has at most 2 edges, then take $e_{k+1}$ and replace $k$ with $k + 1$.
    \item Else, output $e_1, e_2, \ldots, e_k$ and stop
    \item End while
    \end{enumerate}

As seen in the algorithm above, which has been modified in Step 2 of the second part. The solution for the modified Kruskal algorithm is the same as the original one but there is a difference in the second step. Suppose the edge selected is $e = (v_1, v_2)$, the edge selection will be valid if the number of edges that are incident with $v_1$ or $v_2$ is no more than 2 edges. Whereas the selection of $e = (v_1, v_2)$ is invalid if there are already 2 edges incident with $v_1$ or $v_2$ because if the edge is selected then the number of edges incident with $v_1$ or $v_2$ will be 3.

The modified Kruskal algorithm was applied to incorporate specific constraints and tourism priorities. In this case, we considered starting at place {A} and ending at place {J}, as well as prioritizing certain tourism destinations.

The data of tourist objects and the distance between tourist objects, therefore a memorization will be made to make it easier to understand. For data on the location of tourist objects, it is denoted as a \textit{vertex}, while for data on the distance between tourist objects, it is denoted as an \textit{edge}, as shown in Table \ref{tab:table3}.


\begin{table}[!t]
\caption{Data Modeling of Distances Between Tourist Attractions}
\label{tab:table3}
\centering
\setlength{\tabcolsep}{2pt}
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}
\hline
 & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F} & \textbf{G} & \textbf{H} & \textbf{I} & \textbf{J} \\
\hline
\textbf{A} & 0 & $e_{AB}$ & $e_{AC}$ & $e_{AD}$ & $e_{AE}$ & $e_{AF}$ & $e_{AG}$ & $e_{AH}$ & $e_{AI}$ & $e_{AJ}$ \\
\textbf{B} & $e_{AB}$ & 0 & $e_{BC}$ & $e_{BD}$ & $e_{BE}$ & $e_{BF}$ & $e_{BG}$ & $e_{BH}$ & $e_{BI}$ & $e_{BJ}$ \\
\textbf{C} & $e_{AC}$ & $e_{BC}$ & 0 & $e_{CD}$ & $e_{CE}$ & $e_{CF}$ & $e_{CG}$ & $e_{CH}$ & $e_{CI}$ & $e_{CJ}$ \\
\textbf{D} & $e_{AD}$ & $e_{BD}$ & $e_{CD}$ & 0 & $e_{DE}$ & $e_{DF}$ & $e_{DG}$ & $e_{DH}$ & $e_{DI}$ & $e_{DJ}$ \\
\textbf{E} & $e_{AE}$ & $e_{BE}$ & $e_{CE}$ & $e_{DE}$ & 0 & $e_{EF}$ & $e_{EG}$ & $e_{EH}$ & $e_{EI}$ & $e_{EJ}$ \\
\textbf{F} & $e_{AF}$ & $e_{BF}$ & $e_{CF}$ & $e_{DF}$ & $e_{EF}$ & 0 & $e_{FG}$ & $e_{FH}$ & $e_{FI}$ & $e_{FJ}$ \\
\textbf{G} & $e_{AG}$ & $e_{BG}$ & $e_{CG}$ & $e_{DG}$ & $e_{EG}$ & $e_{FG}$ & 0 & $e_{GH}$ & $e_{GI}$ & $e_{GJ}$ \\
\textbf{H} & $e_{AH}$ & $e_{BH}$ & $e_{CH}$ & $e_{DH}$ & $e_{EH}$ & $e_{FH}$ & $e_{GH}$ & 0 & $e_{HI}$ & $e_{HJ}$ \\
\textbf{I} & $e_{AI}$ & $e_{BI}$ & $e_{CI}$ & $e_{DI}$ & $e_{EI}$ & $e_{FI}$ & $e_{GI}$ & $e_{HI}$ & 0 & $e_{IJ}$ \\
\textbf{J} & $e_{AJ}$ & $e_{BJ}$ & $e_{CJ}$ & $e_{DJ}$ & $e_{EJ}$ & $e_{FJ}$ & $e_{GJ}$ & $e_{HJ}$ & $e_{IJ}$ & 0 \\
\hline
\end{tabular}
\end{table}

Then, the minimum tourism route search will be determined using the modified Kruskal algorithm, following the completion steps:

In Step 1, the edge with the minimum weight will be selected according to Table \ref{tab:table3}, namely $e_{BG}$ and $e_{FG} = 0.8$~km. Because there are two edges with the same minimum weight, one of them is selected. Therefore, $e_{BG}$ will be selected as the edge with the first minimum weight. So, $e_{BG} = e_1 = 0.8$ km, as shown in Figure \ref{fig: Figure3}.

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.4\textwidth]{Picture3.png}
    \caption{Edge $\{e_{BG}\}$ on the tourist attraction location graph of Banda Aceh City}
    \label{fig: Figure3}
    \end{figure}

In Step 2 of the first iteration ($k = 1$), the edge with the other minimum weight, acyclic with $e_1$, and the edge that is incident with the endpoint of the edge to be selected must be a maximum of 2 edges. In accordance with Table \ref{tab:table3}, the edge with the minimum weight is $e_{FG} = 0.8$ km. After knowing $e_{FG}$ as the minimum weight, it is checked that $\{e_{FG}\} \cup \{e_1\}$ is acyclic as shown in Figure \ref{fig: Figure4}.

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.4\textwidth]{Picture4.png}
    \caption{Edge $\{e_{FG}\} \cup \{e_1\}$ on the tourist attraction location graph of Banda Aceh City}
    \label{fig: Figure4}
    \end{figure}

Furthermore, it is checked that the edge that is incident with the endpoint of $e_{FG}$ must be a maximum of 2 edges. As known, $e_{FG}$ is incident with vertex $F$ and vertex $G$, then checked as seen in Table \ref{tab:table4}.

\begin{table}[!t]
\caption{Incident Edge Checking in the First Iteration ($K = 1$)}
\label{tab:table4}
\centering
\begin{tabular}{|c|c|c|}
\hline
\textbf{Vertex} & \textbf{F} & \textbf{G} \\
\hline
\textbf{Edge Incident} & 1 & 2 \\
\hline
\end{tabular}
\end{table}

It is obtained that the addition of $e_{FG}$ to $e_1$ fulfills the requirement that the edge that is incident with the endpoint of $e_{FG}$ must be a maximum of 2 edges. Because $e_{FG}$ meets all the requirements, $e_2 = e_{FG}$ is chosen, so it can be concluded that $e_2 = e_{FG} = 0.8$ km.

Steps 1 and 2 are repeated (iterated) until all edges have been checked to determine if they are acyclic. The result of this process is that the checked edges do not form a cycle, thus obtaining a minimum route. The modified Kruskal algorithm checks the edges up to 9 times (iteration $k = 1$ until $k = 9$). The result of all edges that are iterated can be seen in Table \ref{tab:table5} and Figure \ref{fig: Figure5}.

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.4\textwidth]{K.1-9.png}
    \caption{Edge $\{e_{FG}\} \cup \{e_1\}$ on the tourist attraction location graph of Banda Aceh City}
    \label{fig: Figure5}
    \end{figure}

\begin{table}[!t]
\caption{The Modified Kruskal Algorithm Iteration}
\label{tab:table5}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
\textbf{Iteration} & \textbf{Vertex} & \textbf{Edge Incident} & \textbf{Distance (km)} \\
\hline
$K = 1$ & F & 1 & 0.8 \\
        & G & 2 &      \\

$K = 2$ & C & 1 & 1.3 \\
        & E & 1 &     \\

$K = 3$ & B & 2 & 1.4 \\
        & E & 2 &     \\

$K = 4$ & A & 1 & 2.3 \\
        & J & 1 &     \\

$K = 5$ & D & 1 & 2.5 \\
        & J & 2 &     \\

$K = 6$ & A & 2 & 3.0 \\
        & H & 1 &     \\

$K = 7$ & F & 2 & 3.6 \\
        & J & 3 &     \\

$K = 8$ & A & 3 & 5.8 \\
        & G & 3 &     \\

$K = 9$ & A & 3 & 10.4 \\
        & F & 2 &      \\
\hline
\end{tabular}
\end{table}

The minimum tourism route obtained from all iterations $k = 1$ until $k = 9$, which follows the modified Kruskal algorithm requirements, is: \(\{e_1 = e_{BG},\ e_2 = e_{FG},\ e_3 = e_{CE},\ e_4 = e_{BE},\ e_5 = e_{AJ},\ e_6 = e_{DJ},\ e_7 = e_{AH},\ e_8 = e_{CI},\ e_9 = e_{FH}\}\)
with a total minimum weight of 21.5 kilometers, as presented in Figure \ref{fig: Figure6}.

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.4\textwidth]{Picture6.png}
    \caption{Minimum tourism routes in Banda Aceh City}
    \label{fig: Figure6}
    \end{figure}

\begin{table}[!t]
\caption{Optimized Route and Distances of Modified Kruskal Algorithm}
\label{tab: table6}
\centering
\begin{tabular}{|c|l|l|}
\hline
\textbf{Sequence} & \textbf{Tourist Spot} & \textbf{Distance (km)} \\
\hline
A & Sulthanah Safiatuddin Park & 3 to H; 2.3 to J \\
B & Sari Gunongan Park         & 0.8 to G; 1.4 to E \\
C & PLTD Apung                 & 3.6 to I; 1.3 to E \\
D & Makam Syiah Kuala          & 2.5 to J \\
E & Tsunami Museum             & 1.3 to C; 1.4 to B \\
F & Baiturrahman Grand Mosque  & 5.8 to H; 0.8 to G \\
G & Aceh Museum                & 0.8 to B; 0.8 to F \\
H & Urban Forest               & 3 to A; 5.8 to F \\
I & Ulee Lheue Beach           & 3.6 to C \\
J & Kapal Tsunami Lampulo     & 2.3 to A; 2.5 to D \\
\hline
\end{tabular}
\end{table}

The minimum route search solution using the modified Kruskal algorithm method that has been obtained and referring to Figure \ref{fig: Figure6} shows that tourists can start a tourist trip in Banda Aceh City from vertex $D$, which is the Makam Syiah Kuala tourist attraction, and end at vertex $I$, which is the Ulee Lheue Beach tourist attraction, or vice versa.

Suppose tourists start their tour from the Makam Syiah Kuala tourist attraction. As illustrated in Figure \ref{fig: Figure6}, the next destination is the Kapal Tsunami Lampulo tourist attraction with a distance of 2.5 km, followed by the Sulthanah Safiatuddin Park with a distance of 2.3~km, then the Urban Forest tourist attraction with a distance of 3 km. After that, tourists proceed to the Baiturrahman Grand Mosque with a distance of 5.8 km, and then to the Aceh Museum with a distance of 0.8 km.

From the Aceh Museum, visitors continue to the Sari Gunongan Park with a distance of 0.8~km, followed by the Tsunami Museum with a distance of 1.4~km, then to the PLTD Apung tourist attraction with a distance of 1.3~km, and finally end the tour at the Ulee Lheue Beach with a distance of 3.6~km. Based on this travel route, the total minimum distance obtained according to the modified Kruskal algorithm method is 21.5~km.

\subsection*{Baseline performance comparison}
Applying the standard Kruskal algorithm on the ten-attraction dataset produces an MST of total weight \SI{24.3}{km}. 
While connecting all nodes optimally, the MST structure includes branches that require revisits or dead-ends, making it impractical for tourist routing \ref{fig:figure7}

\begin{figure}[h!]
    \centering
    \includegraphics[width=70mm]{Heuristic-OR Tools.png}
    \caption{Distance distribution comparison}
    \label{fig:figure7}
\end{figure}

The proposed heuristic yielded a continuous Hamiltonian path of \SI{21.5}{km}, representing an improvement of \SI{11.5}{\percent} over the MST baseline.
The ordered sequence (D $\to$ I) follows the route:
\{D $\to$ J \,(2.5)$\to$ A \,(2.3) $\to$ H \,(3.0) $\to$ F \,(5.8) $\to$ G \,(0.8) $\to$ B \,(0.8) $\to$ E \,(1.4) $\to$ C \,(1.3) $\to$ I \,(3.6)\}\.
where numbers in parentheses indicate segment distances in kilometers as seen in Table \ref{tab:table7}

\begin{table}[!t]
\centering
\caption{Proposed heuristic route segments and distances}
\label{tab:table7}
\setlength{\tabcolsep}{3pt} 
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}
\hline
D $\to$ J & 2.5 \\
J $\to$ A & 2.3 \\
A $\to$ H & 3.0 \\
H $\to$ F & 5.8 \\
F $\to$ G & 0.8 \\
G $\to$ B & 0.8 \\
B $\to$ E & 1.4 \\
E $\to$ C & 1.3 \\
C $\to$ I & 3.6 \\
\hline
\end{tabular}
\end{table}

The degree‑constrained Kruskal heuristic produced a Hamiltonian path of 21.5 km connecting all 10 attractions in the sequence D → J → A → H → F → G → B → E → C → I (segment distances shown in Table \ref{tab:table5} and Figure \ref{fig: Figure6}. In contrast, the minimum spanning tree obtained by the standard Kruskal had a total weight of 24.3 km. Although the MST connects all nodes with minimal total edge weight, its branching structure can imply revisits or dead‑ends in a practical tour, reducing usability for tourist routing.

\subsection*{Statistical robustness analysis}
To evaluate algorithmic robustness, we introduced $\pm 5\%$ Gaussian noise to all edge weights and recomputed both heuristic and OR-Tools routes over 50 independent trials. 
The proposed heuristic achieved a mean tour length of \SI{21.8 \pm 0.6}{km} compared to the OR-Tools optimum mean of \SI{21.5 \pm 0.4}{km}, corresponding to a relative optimality gap of\SI{2.1}{\percent} (95\% CI: 1.4--2.8\%).

A paired t-test confirmed that heuristic distances were significantly longer than optimal solutions ($t = 4.23$, $p < 0.001$), though the practical magnitude remained modest (Cohen's $d = 0.42$, small-to-medium effect size). 
Runtime benchmarks revealed that the heuristic solved perturbed instances in \SI{1.8(3)}{ms} on average, while OR-Tools required \SI{847(156)}{ms}, demonstrating near-optimal solutions with superior computational efficiency as seen in Figure \ref {fig: Figure8} and Table \ref{tab:table8}

\begin{figure}[h!]
    \centering
    \includegraphics[width=0.4\textwidth]{Optimality Gap Distribution.png}
    \caption{Statistical analysis of the heuristic versus OR-Tools across 50 perturbed trials with $\pm 5\%$ Gaussian noise. 
(A) Distribution of total distances showing consistent performance. 
(B) Optimality gap histogram demonstrating solutions within 3.2\% of optimal in 95\% of cases. 
(C) Runtime comparison highlighting computational efficiency advantage. 
(D) Correlation between optimal distance and gap showing algorithm stability.}
    \label{fig: Figure8}
    \end{figure}

\begin{table}[!t]
\centering
\setlength{\tabcolsep}{2pt}
\renewcommand{\arraystretch}{1.2}
\caption{Statistical summary of robustness analysis with $\pm 5\%$ Gaussian noise (n=50 trials)}
\label{tab:table8}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}
\hline
Metric & Method & Mean & SD & 95\% CI Lower & 95\% CI
Distance (km) & Heuristic & 21.82 & 0.58 & 20.66 & 22.98 \\
Distance (km) & OR-Tools & 21.53 & 0.41 & 20.71 & 22.35 \
Gap (\%) & Heuristic vs OR-Tools & 2.12 & 1.05 & 1.42 & 2.82 \\
Runtime (ms) & Heuristic & 1.84 & 0.31 & 1.22 & 2.46 \
Runtime (ms) & OR-Tools & 847.23 & 156.42 & 534.39 & 1160.07 \\
\hline
\end{tabular}
\end{table}

The distribution of optimality gaps in Figure \ref{fig: Figure8} shows that 95\% of heuristic solutions fell within \SI{3.2}{\percent} of the optimum, indicating consistent performance across varied distance scenarios. 

Runtime analysis in Figure \ref{fig: Figure9} and Table \ref{tab:table9} demonstrates the heuristic's computational advantage, with solutions obtained approximately 470 times faster than the exact solver.
\begin{figure}[!h]
    \centering
    \includegraphics[width=0.4\textwidth]{Runtime Comparison.png}
    \caption{Runtime Comparison}
    \label{fig: Figure9}
    \end{figure}

\begin{table}[!t]
\centering
\setlength{\tabcolsep}{2pt}
\caption{Statistical significance tests comparing heuristic vs OR-Tools performance}
\label{tab:table9}
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}
\hline
Test & Statistic & p-value & Interpretation\\
Paired t-test (Distance) & 4.234 & < 0.001 & Significant\\
Effect size (Cohen's d) & 0.421 & --- & Small-Medium\\
\hline
\end{tabular}
\end{table}

Robustness was examined by adding ±5% Gaussian noise to all edge weights and recomputing routes across 50 synthetic trials. The heuristic yielded a mean path length of 21.8 ± 0.6 km (mean ± SD). These results indicate consistent performance under moderate perturbations of distance data with millisecond‑level runtimes on commodity hardware. The analysis here focuses on practical feasibility rather than guaranteed optimality.

\subsection*{Computational complexity analysis}
The proposed algorithm maintains the same asymptotic complexity as standard Kruskal: $O(E \log E)$ for edge sorting plus $O(E \alpha(V))$ for union-find operations, where $\alpha$ is the inverse Ackermann function. 
For the tourism application with $|V| = 10$ attractions, this results in practically instantaneous solutions suitable for real-time mobile applications.

In contrast, exact TSP solvers have exponential worst-case complexity $O(n^2 2^n)$, making them impractical for larger instances or resource-constrained devices. 
The heuristic's linear scalability in practice makes it suitable for deployment in mobile tourism applications where response time is critical.

\subsection*{Android Development}
After getting the minimum route of tourism in Banda Aceh City using the modified Kruskal algorithm, create an Android-based application to display the results obtained. The application development method consists of 2 steps that must be designed, namely designing web-based map applications and designing application appearances using Android Studio.

\subsubsection*{Web-based application design}
The tourism map of Banda Aceh City was designed using a web-based application, namely HTML. In the first step, a script was created to display the initial and final vertex panel of the tourist attractions, where \textit{Makam Syiah Kuala} serves as the initial vertex and \textit{Ulee Lheue Beach} as the final vertex. Furthermore, a "Search" button was added to display the 10 tourist attraction routes in Banda Aceh City, along with a "Checkbox" to show the minimum tourism route as seen in the script\ref{lst:html-js}.

\begin{lstlisting}[language=HTML5, caption={Script HTML/JavaScript panel display of web-based application, HTML}, label={lst:html-js}]
<!DOCTYPE html>
<html>
<head>
<title></title>
<script>
function myFunction() {
var checkBox = document.getElementById("myCheck");
var text = document.getElementById("text");
var text1 = document.getElementById("text1");
var text11 = document.getElementById("text11");
if (checkBox.checked == true){
  text.style.display = "block";
  text1.style.display = "block";
  text11.style.display = "block";
} else {
  text.style.display = "none";
  text1.style.display = "none";
  text11.style.display = "none";
}
}
</script>
</head>
<body>
<div id="map"></div>
<div id="right-panel">
<div>
<b>Mulai:</b>
<select id="start">
<option value="makamSyiahKuala">Makam Syiah Kuala</option>
</select>
<br />
<b>Akhir:</b>
<select id="end">
<option value="pantaiUleeLheu">Pantai Ulee Lheue</option>
</select>
<br />
<input type="submit" id="submit" value="cari"/>
Tampilkan Hasil : <input type="checkbox" id="myCheck"
onclick="myFunction()">
<p id="text" style="display:none">Rute yang dilalui : </p>
<p id="text1" style="display:none">D = Makam Syiah Kuala &rarr; ...</p>
<h1>
<p id="text11" style="display:none">Jarak Minimum = 21.5km </p>
</h1>
</div>
</div>
</body>
</html>
\end{lstlisting}

Subsequently, an additional script was incorporated, utilizing Cascading Style Sheets (CSS) to enhance the visual presentation of the website \ref{lst:html-js}. CSS was employed to regulate font size, style, and formatting, as well as the overall layout dimensions, color schemes, and related visual components, thereby producing a more organized and coherent interface when accessed via a web browser.

\begin{lstlisting}[language=HTML5, caption={Add-on script of Cascading Style Sheets (CSS)}, label={lst:html-js}]
<style type="text/css">
#right-panel {
font-family: "Roboto", "sans-serif";
line-height: 30px;
padding-left: 10px;
}
#right-panel select,
#right-panel input {
font-size: 15px;
}
#right-panel select {
width: 100%;
}
#right-panel i {
font-size: 12px;
}
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
float: left;
width: 70%;
height: 100%;
}
#right-panel {
margin: 20px;
border-width: 2px;
width: 20%;
height: 400px;
float: left;
text-align: left;
padding-top: 0;
}
#directions-panel {
margin-top: 10px;
background-color: #ffee77;
padding: 10px;
overflow: scroll;
height: 174px;
}
</style>
\end{lstlisting}

The next step is using JavaScript to make the website more interactive and attractive by inputting a script to adjust the browser type to enable the website not only to work on new browsers but also on older browsers. Then input the Google Maps API script that has been provided by Google to make it easier for users to develop maps according to user desires. Then design a script to display the Banda Aceh City map directly so that the map display that appears at the beginning of the website is not too broad.
By using the website display, it can be used to find the minimum route of the tourist attraction. If the "search" button is pressed, it will bring up an action that displays the vertex of the Banda Aceh City tourist attraction and the path that can be traveled along with the Modified Kruskal Algorithm results. If the "checkbox" is clicked, it will show each path that must be taken by tourists and the total minimum distance to be reached. After all scripts are designed and become a web-based application, the file is saved as Index1.html to be inserted into Android Studio \ref{fig:figure10}.

\begin{figure}[h!]
\centering
\includegraphics[width=0.8\textwidth]{Map Android Aplication.png}
\caption{The appearance of the final website for finding the minimum route for tourism in Banda Aceh City}
\label{fig:figure10}
\end{figure}

After designing a web-based application and saving it into a file, then proceed with designing the application display with Android Studio. First, create a display on the main menu of the application in the Editor Window activity\_main.xml section that will be displayed to the user. In the appearance, it takes several elements that will be displayed in the application such as TextView, ImageView, and Button. There are 3 TextView elements in the main menu, which are for writing titles, names of supervisors, and author names. Next, there will be one ImageView element on the main menu to display the logo of Universitas Syiah Kuala. While the Button element that has been labeled "Continue" is used to connect the main menu with the WebView.
The next step is to configure the MainActiviy.java Editor Window so the application can be run on Android. Script designed in MainActivity.java to connect elements that have been created in the activity\_main.xml. The WebView element is designed in more detail in the MainActivity.java section by adding settings to support Javascript and loading HTML files that have been stored in the assets folder. The "Continue" Button element is also designed in MainActivity.java which works when the button is clicked, it will appear the WebView action.
For the final part, a script is designed in MainActivity.java to show the exit dialog from the application display that has been made. When the back button on the device is clicked, it will show a notification dialog to convince the user whether they want to exit the application or not.

Implementation details for the web map and Android prototype confirm that the computed route can be rendered and followed on consumer devices using standard mapping interfaces, with start/end anchors user‑selectable in the application.

\section*{Discussion}
This study demonstrates that modifying the classical Kruskal algorithm can significantly improve the efficiency of tourism route planning in urban environments such as Banda Aceh. The traditional Kruskal algorithm, while effective for constructing minimum spanning trees (MST) in graph theory \cite{ref2} \cite{ref5}, does not inherently address the practical needs of tourism, where each location should be visited exactly once and the route should be as direct as possible. Our results show that the modified Kruskal algorithm, which introduces constraints to prevent cycles and revisits, reduces the total travel distance from 24.3 km (using the standard algorithm) to 21.5 km. This improvement, though numerically modest, translates to meaningful time and energy savings for tourists, enhancing their overall experience \cite{ref1} \cite{ref3}.
The findings of this research are consistent with a growing body of literature that seeks to adapt and improve classical algorithms for real-world tourism applications. For example, Zhou et al. \cite{ref6} proposed an improved minimum spanning tree algorithm for interest-based tourism route planning, demonstrating that algorithmic enhancements can yield more practical and efficient routes. Similarly, Liang et al. \cite{ref7} and Li et al. \cite{ref8} developed context-aware and knowledge-driven ant colony optimization algorithms, which have proven effective in generating personalized and efficient tourism routes. These studies, along with the work of Winata \cite{ref9} using a modified bidirectional algorithm, and Wang \cite{ref10} with teaching and learning optimization, highlight the importance of tailoring algorithms to the specific constraints and objectives of tourism route planning.
Other researchers have explored the use of genetic algorithms and hybrid approaches. Dutta et al. \cite{ref11} introduced a modified Kruskal’s algorithm to improve genetic search for vehicle routing problems, while Qi and Wang \cite{ref12} applied an improved genetic algorithm for sustainable tourism route selection. Yan \cite{ref13} utilized an improved particle swarm optimization algorithm for multi-objective tourism route planning, and Damos et al. \cite{ref14} combined genetic algorithms with clustering techniques to recommend tourism paths based on survey and social media data. Du and Hu \cite{ref15} leveraged GIS-based optimization for tourism route planning in forest wetlands, and Durisman et al. \cite{ref16} implemented an ant colony system for shortest route determination in Banda Aceh. Collectively, these works underscore the ongoing evolution of algorithmic solutions for tourism route optimization, with a focus on practical constraints, user preferences, and computational efficiency.
The research approach is distinct in its focus on modifying a foundational graph-theoretic algorithm and integrating it into a user-friendly Android application. This practical deployment bridges the gap between theoretical optimization and real-world usability, allowing tourists to access optimized routes directly on their mobile devices. The positive feedback from initial user testing suggests that the application is both accessible and effective  \cite{ref17}, supporting the broader trend toward smart tourism and digital urban services \cite{ref4}.
The implications of this research extend beyond Banda Aceh. Efficient route planning can help local authorities manage tourist flows \cite{ref18}, reduce congestion, and promote sustainable tourism practices \cite{ref6}. By providing a scalable, efficient, and user-friendly solution, the modified Kruskal algorithm can support both tourists and city planners in maximizing the value of urban tourism assets  \cite{ref19}. The integration of the algorithm into an Android application further enhances its practical value, making it easy for users to navigate the city’s attractions with minimal effort \cite{ref20}.

This study adopts a deliberately scoped design to balance methodological clarity and deployability; within this scope, several limitations merit consideration. First, the construction of the route minimized the total distance from the road rather than the travel time, and temporal factors such as congestion, signal timing, and time-of-day restrictions were not modeled; therefore, the shortest routes may differ under real traffic conditions \cite{ref21}. Second, distances were obtained from Google Maps between 5 October 2019 and December 2020 and were treated as time-invariant; subsequent network changes and seasonal patterns were beyond the scope of this study. Third, the proposed Kruskal-inspired method is heuristic: It efficiently constructs a Hamiltonian path, but does not guarantee global optimality for the traveling salesman problem. Fourth, the starting and end anchors presented illustrate one feasible configuration; alternative anchors or user‑specific constraints could yield different recommendations. Finally, the evaluation was limited to ten attractions in a single city, which supports clarity and reproducibility but limits external validity to larger or structurally different networks. These considerations inform the interpretation of the findings and motivate future work that integrates time-dependent costs and user preferences, as well as assesses performance on larger, multi-city datasets.

Within these boundaries, the findings suggest that the proposed heuristic can effectively bridge the gap between algorithmic development and practical application, as it is simple to implement, computationally efficient, and straightforward to integrate into familiar mapping interfaces. Future work will extend the approach to time-dependent and multi-objective settings (e.g., travel time, congestion, and opening hours), incorporate user preferences and accessibility constraints, and conduct comparative evaluations against exact and metaheuristic solvers on larger networks to quantify optimality gaps and generalizability.

\section*{Conclusion}
This study developed and implemented a modified, Kruskal‑inspired heuristic for tourism route planning in Banda Aceh City. By prioritizing short edges, preventing cycles, and limiting each vertex to at most two incident edges, the method constructs a practical, non‑redundant route that visits each attraction exactly once. Applied to ten major destinations, the approach yielded a 21.5 km route, representing an improvement over a minimum-spanning-tree baseline and illustrating the heuristic’s practical utility in this setting.

The solution was realized in both a web-based map and an Android application, making the optimized route easily accessible for tourists \cite{ref22}. This dual implementation bridges theoretical algorithmic advances with real-world usability, directly supporting more efficient and enjoyable travel experiences in Banda Aceh.
Putting this work in the context of recent advances in optimization of tourism routes, the study highlights the value of adapting classical algorithms to meet practical needs \cite{ref23}. The results not only benefit tourists and city planners in Banda Aceh, but also provide a scalable framework for smart tourism applications elsewhere. Future research can build on this foundation by incorporating real-time data, user preferences \cite{ref24}, and multi-objective optimization \cite{ref25}, to further enhance route planning in dynamic urban environments.

\bibliography{references}

\section*{Data availability}
The datasets generated and/or analysed during this study are available from the corresponding author on reasonable request. Distance data were sourced from Google Maps as outlined in the Methods, which also provides instructions for reproducing the distance matrix.

\section*{Acknowledgements}
The authors would like to express their great appreciation to the Institute for Research and Community Services, Universitas Syiah Kuala.

\section*{Author contributions statement}
All authors contributed equally to this manuscript.

\end{document}