E-mail: [email protected] ISSN: 2580-278X (e) pp : 110-119
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
110
Implementation of String Matching Algorithm with Finite Automata in The Indonesian-Korean Dictionary Application
Muhammad Ikhsan 1
,
Supiyandi 2,
Muhammad Fahri Syuhada 1*
1Computer Science Department, Universitas Islam Negeri Sumatera Utara
2Computer Science Department, Universitas Pembangunan Panca Budi
Jl. Lap. Golf, Kp. Tengah, Kec. Pancur Batu, Kab. Deli Serdang, Sumatera Utara, Indonesia
*email: [email protected]
Article History
Received: 11 September 2023 Reviewed: 16 October 2023 Accepted: 6 November 2023 Published: 31 December 2023 Key Words
Dictionary; String
Matching; Finite Automata;
Korean; Android.
Abstract
Foreign languages become a connection both in terms of communication, association, culture, and science in the digital era.
One of these languages is the Korean language, which has gained significant popularity among Indonesian people. However, learning the Korean language can be challenging due to its distinct alphabet compared to the Indonesian alphabet. Therefore, the user-friendly dictionary is needed for Indonesian people, namely the Indonesian-Korean Dictionary based on Android platform.
This dictionary implements Finite Automata for string searching.
The system matches the user's input string with the strings in the database. The output of this application includes the matched words and the search time. Based on the results of 10 tests system using Finite Automata, the system's efficiency in processing search patterns showing the average running time is 15.8 ms.
Additionally, after conducting an in-depth analysis of the algorithm's time complexity, it was confirmed to have a time complexity of O(n3). This demonstrates that the system successfully matches strings effectively and produces reliable results.
INTRODUCTION
The significance of language in communication is undeniable. As a tool of human communication, language enables effective interaction. Language also aids in thinking systematically and coherently through the vocabulary possessed and the grammatical structure employed to express ideas and emotions (Fadisar et al., 2017).
In this digital era, we are also required to learn foreign languages in order to communicate internationally. Foreign languages can serve as bridges that connect us in terms of social interaction, culture, and knowledge. One
example is the Korean language (Firstantin, 2019).
In the effort to learn the Korean language, a tool is necessary to aid in translating words into Indonesian, and one of the options is a dictionary, which can serve as a solution to overcome language differences (Yana, 2016).
At present, there are various types of dictionaries available, including physical dictionaries, electronic dictionaries, desktop applications, web-based tools, and mobile apps.
While the use of foreign language dictionaries for communication is preferred, some individuals still opt for traditional book
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
111 dictionaries. However, this approach is less
efficient and consumes a relatively long amount of time to acquire the desired vocabulary (Fazira, 2019).
To address this issue, a practical tool is required that can quickly search for Korean vocabulary and be accessible anytime (Kurniawan et al., 2023). The String Matching Algorithm, also known as string matching, is a technique utilized to search for exact occurrences of one or multiple text patterns within given documents, scholarly articles, websites, and similar contexts. One of the methods of String Matching is the Finite Automata approach (Sihite & Mahastama, 2018).
Finite Automata is a component of computer science that functions as a digital computer. This system receives input and produces output, possesses temporary storage capabilities, and can make decisions in processing input into output. Automata consists of a set of states, each representing information about previous inputs and can be thought of as the machine's memory (Robyanto et al., 2021).
Finite Automata are valuable in determining whether a given word or string is accepted by the automation. It comprises states and transition functions that alter the state based on the current state and the character being read.
Multiple final states can also be present. If the string is processed and ends in one of the final states, the string is considered accepted (Priyanto, 2010).
Finite Automata is divided into two types: Deterministic Finite Automata (DFA) and Non-Deterministic Finite Automata (NFA) (Dandy et al., 2020). DFA is an automation that exists in one state at a time. It cannot be in multiple states simultaneously. In DFA, each state has exactly one next state and transition.
On the other hand, NFA is an automation that can exist in multiple states at the same time. In NFA, a state can transition from one state to another in response to specific inputs. For each input-state pair, each state has 0 or more options for the next state (Lelah & Zaelani, 2018).
In a previous research conducted by (Anggreni, 2019) utilizing both the Raita Algorithm and the Berry Ravindran Algorithm in Indonesian-Korean Dictionary application,
The results of this research indicated that the Berry Ravindran Algorithm was relatively slower than the Raita Algorithm. Also, in Yana (2016) research, it is concluded that from the results of her research on Indonesian-Korean Dictionary application implementing the Knuth Morris Pratt algorithm and the Boyer Moore algorithm, the Knuth Morris Pratt algorithm is faster compared to the Boyer Moore algorithm for word search processes.
In this research, to conduct a comprehensive comparative analysis to determine the efficiency and effectiveness of the Finite Automata method for meaning search, as compared to the existing algorithms from previous research. We chose to implement Finite Automata using Deterministic Finite Automata (DFA) because each stage leads to only one subsequent stage until the final stage, which displays the translation results in the Indonesian-Korean Dictionary Application.
Based on this explanation, it is anticipated that the author's research on the
"Implementation of String Matching Algorithm with Finite Automata in the Indonesian-Korean Dictionary Application" will significantly benefit the public by facilitating the learning of translated vocabulary between the Indonesian and Korean languages, as well as the Korean and Indonesian languages.
METHOD
The method used in this research is the String Matching Algorithm with Finite Automata. In previous research by (Anggreni, 2019), the methods used were the Raita Algorithm and the Berry Ravindran Algorithm, while in the research by Yana (2016) and (Kurniawan et al., 2023), the Knuth Morris Pratt Algorithm and Boyer Moore Algorithm was used. String Matching Algorithm with Finite Automata chosen is to evaluate the efficiency and effectiveness in word search compared to other existing algorithms from previous research.
The String Matchin
The String Matching Algorithm is a method used for solving problems involving matching one text against another text
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
112 (Abdurahman & Kurniawan, 2018). According
to Wahidin et al. (2021) the String Matching Algorithm operates on the following principles:
1. The text is scanned using a window that has the same length as the pattern.
2. The window is initially placed at the beginning of the text.
3. Each character in the window is compared with the corresponding character in the pattern. Once the matching is done, the window shifts to the right. This process repeats until the window reaches the end of the text. This process is known as sliding window.
Siahaan (2021) states based on the direction of search, String Matching Algorithms can be categorized into three groups:
1. Algorithms that search from left to right, including Brute Force algorithm and Morris- Pratt algorithm.
2. Algorithms that search from right to left, including Boyer-Moore algorithm and Zhu Takaoka algorithm.
3. Algorithms where the direction of search is determined by the program, such as Colussi algorithm and Chrocemorre-Perrin algorithm.
Finite Automata
Finite Automata (FA) or Finite State Automata (FSA) is an automation model for regular languages. Finite Automata consists of a finite number of states and can transition between states (Maulana, 2020). FA comprises a sequence of statuses or states, each of which represents information about previous inputs.
These states can be considered as the machine's memory (Robyanto et al., 2021). A Finite Automata consists of a 5-tuple (Q, q0, F, ∑, δ) where:
1. Q is a set of states
2. q0/S is the initial state, where S є Q.
3. F is a set of accepting/final states 4. ∑ is a set of input alphabets
5. δ is the transition function of the machine.
The Finite Automata starts from state q0 and reads input characters from the string sequentially. If the automation is at state q and reads input character a, it will transition from state q to δ(q, a). When the current state q is a member of F, the machine M can accept the read string (Priyanto, 2010).
Figure 1. (a) Table representation of the transition function δ. (b) Transition diagram.(Priyanto, 2010)
RESULTANDDISCUSSION Preprocessing Phase
Based on the procedure of the Finite Automata String Matching algorithm, the preprocessing phase on Finite Automata is applied to the given sequence of TEXT (T):
TAEHAKHAKSA (대학학사 - University
Graduate) PATTERN (P): HAKSA (학사 - Graduate) , Pattern P consists of 4 characters:
A, H, K, S and a symbol * for initialization of any other character that is not one of the 4 characters.
a. In the first stage, we determine the inputs for the 5-tuple of the Finite Automata, which are P = (Q, S, F, ∑, δ)
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
113 Figure 2. Transition diagram of pattern HAKSA
b. The second stage is to create a table to define the transition function δ for the pattern string P = HAKSA.
Table 1. Transition function δ for the pattern 'HAKSA'
c. The third step is to create a transition diagram for the automaton based on the transition table to facilitate the String
matching process of searching the pattern in the text.
Figure 3. State Transition Diagram for the Pattern 'HAKSA' Search Phase
The pattern search will start at the position where the state is in state S0 as shown in Table 2.
Stage 1: Matching is performed at index 1 of the text, where Ti = T with character Pj = H
does not match Ti ≠ Pj[q + 1]. The value of q during matching is S0, so the state transition remains at δ(q, T)=S0. Therefore, the next attempt is made by shifting the pattern position by Table 3.
δ Input
Pattern
A H K S *
S0 S0 S1 S0 S0 S0 H S1 S2 S1 S0 S0 S0
A S2 S0 S1 S3 S0 S0
K S3 S0 S1 S0 S4 S0
S S4 S5 S1 S0 S0 S0
A S5 S0 S1 S0 S0 S0
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
114 Table 2. Search Phase of String 'HAKSA' Stage - 1
Table 3. Search Phase of String 'HAKSA' Stage - 2
Stage 2: Matching is performed at index 2 of the text, where Ti = A with character Pj = H does not match Ti ≠ Pj[q + 1]. The value of q during matching is S0, so the state transition remains at δ(q, A)=S0. Therefore, the next attempt is made by shifting the pattern position by Table 4.
Stage 3: Matching is performed at index 3 of the text, where Ti = E with character Pj = H does not match Ti ≠ Pj[q + 1]. The value of q during matching is S0, so the state transition remains at δ(q, E)=S0. Therefore, the next attempt is made by shifting the pattern position by Table 5.
Stage 4: Matching is performed at index 4 of the text, where Ti = H matches with character Pj = H, Ti = Pj[q+1]. The value of q during the matching process is S0, so the state transition is δ(q, H) = q+1 = S1. Then, the matching continues with pattern Pj = A at index 5 of the Table 6.
Stage 5: Matching is performed at index 5 of the text, where Ti = A matches with character Pj = A, Ti = Pj[q+1]. The value of q during the matching process is S1, so the state transition is δ(q, A) = q+1 = S2. Then, the matching continues with pattern Pj = K at index 6 of the Table 7.
Table 4. Search Phase of String 'HAKSA' Stage - 3
Table 5. Search Phase of String 'HAKSA' Stage - 4
Table 6. Search Phase of String 'HAKSA' Stage - 5 I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0
Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0
Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0
Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1
Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2
Pattern (Pj) - H A K S A
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
115 Table 7. Search Phase of String 'HAKSA' Stage - 6
Stage 6: Matching is performed at index 6 of the text, where Ti = K matches with character Pj = K, Ti = Pj[q+1]. The value of q during the matching process is S2, so the state transition is δ(q, K) = q+1 = S3. Then, the matching continues with pattern Pj = S at index 7 of the text (see Table 8).
Stage 7: Matching is performed at index 7 of the text, where Ti = H and the character of Pj = S does not match Ti ≠ Pj[q + 1]. The value of q during matching is S3, so the transition state δ(q, S) repeats to state S1, Then the matching continues with pattern Pj = H at index 7 of the text (see Table 9).
Stage 8: Matching is performed at index 7 of the text,where Ti = H matches with character Pj
= H, Ti = Pj[q+1]. The value of q when matching is repeated is S1, so the current state transition becomes δ(q, H) = S1. Next, matching will be done on pattern Pj = A at index 8 in the text (see Table 10).
Stage 9: Matching is performed at index 8 of the text, where Ti = A matches with character Pj = A, Ti = Pj[q+1]. The value of q during the matching process is S1, so the state transition is δ(q, A) = q+1 = S2. Then, the matching continues with pattern Pj = K at index 9 of the text (see Table 11).
Table 8. Search Phase of String 'HAKSA' Stage - 7
Table 9. Search Phase of String 'HAKSA' Stage - 8
Table 10. Search Phase of String 'HAKSA' Stage - 9
Table 11. Search Phase of String 'HAKSA' Stage -10
Stage 10: Matching is performed at index 9 of the text, where Ti = K matches with character Pj = K, Ti = Pj[q+1]. The value of q during the
matching process is S2, so the state transition is δ(q, K) = q+1 = S3. Then, the matching I 1 2 3 4 5 6 7 8 9 10 11
Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2 S3
Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2 S3
Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2 S3 S1
Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2 S3 S1 S2 Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2 S3 S1 S2 S3 Pattern (Pj) - H A K S A
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
116 continues with pattern Pj = S at index 10 of the
text (See Table 12).
Stage 11: Matching is performed at index 10 of the text, where Ti = S matches with character Pj
= S, Ti = Pj[q+1]. The value of q during the matching process is S3, so the state transition is δ(q, S) = q+1 = S4. Then, the matching
continues with pattern Pj = A at index 11 of the text (see Table 13).
Stage 12: Matching is performed at index 11 of the text, where Ti = A matches with character Pj = A, Ti = Pj[q+1]. The value of q during the
matching process is S4, so the state transition is δ(q, A) = q+1 = S5. which is the final state.
Since the state transition has reached the final state, which is S5 at index i = 11 and the pattern has been found at shift i − m + 1, which is 11 − 5 + 1 = 7, the pattern and text are considered matched, so the search process ends.
Result of Search Testing
Here are the results of the word search testing using Finite Automata in the Indonesian- Korean Dictionary application.
Table 12. Search Phase of String 'HAKSA' Stage -11
Table 13. Search Phase of String 'HAKSA' Stage -12
Table 14. Results of the Word Search Testing using Finite Automata I 1 2 3 4 5 6 7 8 9 10 11
Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2 S3 S1 S2 S3 S4 Pattern (Pj) - H A K S A
I 1 2 3 4 5 6 7 8 9 10 11 Text (Ti) - T A E H A K H A K S A State (q) S0 S0 S0 S0 S1 S2 S3 S1 S2 S3 S4 S5 Pattern (Pj) - H A K S A
No Search word Search result
Running Time (ms)
1 Tas Matched 12
2 Negara Matched 11
3 Kacang Matched 5
4 AC Matched 10
5 Stroberi Matched 13
6 Annyeong Matched 41
7 Ssal Matched 11
8 Ship Matched 18
9 Ge Matched 26
10 Haksaeng Matched 11
Average Running time 15.8
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
117 Figure 4. Graph of Word Search Running Time
The test results in Table 14, showed that after conducting several word search experiments, the data obtained in the table above from 10 samples showed 10 matching search results. This means that there were no errors in the word matching process in the application and it was found that the running time of the Finite Automata to translate input words has an average running time of 15.8 ms.
Time Complexity of Finite Automata
The complexity that will be tested is the time complexity of Finite Automata.
T(n) = C1 + C2 + nC3 + nC1 + n2C3 + n2C1 + nC1 + nC2 + C2
= C1 + 2C2 + nC3 + 2nC1 + n2C3 + n2C1
= (C1 + 2C2 )n0 + (C3 + 2C1)n + (C3 + C1)n2
= n0 + n + n2
= O(n2)
The complexity result of the GetNextState function is O(n2), this suggests that the function's execution time grows quadratically with the input size 'n'. This function efficiently handles character transitions within the finite automata.
T(n) = C1 + nC2 + 255C2 + n3C3
= (C1) n0 + (C2 + 255C2)n1 + (C3) n3
= n0 + n1 + n3
= O(n3)
The complexity result of the ComputeTF function is O(n3), this implies that the function's execution time increases in a cubic manner with the input size 'n'. The
ComputeTF function is responsible for building the transition table for the finite automata, and it operates with cubic complexity, which can be less efficient for larger inputs.
T(n) = C1 + C1 + C1 + C1 + n3C2 + C1 + nC3 + nC4 + nC5 +nC5+ C6
= 5C1 + n3C2 + nC3 + nC4 + 2nC5 + C6
= (C1+ C6) n0 + (C3 + C4 + 2C5)n + (C2) n3
= n0 + n + n3
= O(n3)
The complexity result of the FSA function is O(n3) which means the search process performed by this function takes up to n3 time, where 'n' represents the number of characters in the input word. While it effectively uses the transition table for efficient string matching, this cubic time complexity is not the most optimal.
The Finite Automata algorithm's time complexity is influenced by the cubic time complexity of the ComputeTF and FSA functions. While these complexities are not the most optimal for string matching algorithms, the algorithm is still suitable for string matching tasks, especially when dealing with moderate-sized inputs. For even more efficient solutions, algorithms with linear or sub-linear time complexities may be considered in
specific scenarios.
String Matching algorithms has revealed the remarkable efficiency and effectiveness of the Finite Automata algorithm in the context of search patterns and word search processes. With an average execution 0
10 20 30 40 50
Finite Automata Running Time
Running Time
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
118 time of 15.8 milliseconds and a time
complexity of O(n3), Finite Automata outperforms algorithms like Raita and Berry Ravindran, as indicated in (Anggreni, 2019), Raita has a faster execution time approximately 8.56 ms but a simpler algorithmic complexity (O(m)), whereas Berry Ravindran, while slower with execution time of around 64.4 ms, involves more complex processing (O(mn)).
Additionally, comparisons with Yana (2016), demonstrates that the Finite Automata algorithm is significantly faster than the Knuth Morris Pratt (KMP) algorithm and the Boyer Moore algorithm. It outperforms KMP with an average execution time of 15.8 ms compared to 132.1 ms and surpasses Boyer Moore with an average execution time of 15.8 ms compared to 134.6 ms.
These findings position the Finite Automata as an efficient and reliable choice for applications requiring proficient pattern and word matching capabilities, ultimately enhancing the user experience and the accuracy of applications.
CONCLUSION
Based on the search and string matching results, it is evident that Finite Automata is a potent algorithm for effectively identifying and displaying all existing words that match a given search term. The algorithm's ability to efficiently perform string matching processes, as demonstrated through extensive testing, makes it a valuable tool in various applications such as dictionary applications.
In the testing phase involving 10 different patterns, Finite Automata consistently exhibited remarkable performance, translating words with an average running time of 15.8 ms. This indicates its efficiency in handling a variety of search queries across different patterns, demonstrating its practical utility in real-world scenarios.
Furthermore, analyzing the algorithm's time complexity reveals that it operates with a time complexity of O(n3). While this might not be the most optimal time complexity available, the algorithm's real-world performance and practical use cases suggest that it strikes an excellent balance between computational efficiency and accuracy.
In conclusion, Finite Automata stands out as a reliable and efficient algorithm for string matching and search tasks, surpassing previous research. Its capability to handle various patterns and deliver swift results makes it a valuable tool for a wide range of applications, from text search engines to data analysis and more.
REFERENCES
Abdurahman, D., & Kurniawan, I. (2018).
Rancang Bangun Aplikasi Kamus Fisika Dasar Menggunakan Algoritma String Matching Brute Force Berbasis Android.
Seminar Nasional Teknologi Informasi, 1, 349. http://prosiding.uika- bogor.ac.id/index.php/semnati/article/vie w/82
Anggreni, S. (2019). Perbandingan Algoritma Raita dan Algoritma Berry Ravindran Dalam Pencocokan String Pada Aplikasi Kamus Indonesia-Korea Berbasis Android. Universitas Sumatera Utara.
Dandy, D., Suprapto, A., Informatika, P. S., &
Nasional, U. (2020). Implementasi Finite State Automata Pada Mesin. 5(1).
Fadisar, N., Darnila, E., & Safwandi, S.
(2017). Aplikasi Kamus Bahasa Indonesia-Arab Berbasis Android Menggunakan Metode Boyer-Moore.
Sisfo: Jurnal Ilmiah Sistem Informasi,
1(1), 55–76.
https://doi.org/10.29103/sisfo.v1i1.252 Fazira, M. (2019). Perbandingan Algoritma
Knuth-Morris-Pratt Dan Boyer-Moore Dengan Metode Perbandingan Eksponensial Pada Aplikasi Kamus Bahasa Indonesia – Jerman Berbasis Android. Majalah Ilmiah INTI, 14 No 1, 202–206.
Firstantin, T. A. R. G. (2019). Analisis Kefasihan Pembelajar Bahasa Korea dalam Membaca Teks Berbahasa Korea.
JLA (Jurnal Lingua Applicata), 2(2), 111.
https://doi.org/10.22146/jla.46645
Kurniawan, R., Lubis, A. H., & Hadisa, S. A.
(2023). Implementasi Algoritma Knuth Morris Pratt Dalam Pencocokan String Pada Kamus Indonesia-Korea. Jurnal Sistem Komputer Dan Informatika (JSON) Hal: 79−, 91(1), 79–91.
Sainstek: Jurnal Sains dan Teknologi
Vol 15 No 2, December 2023 ISSN: 2085-8019 (p), ISSN: 2580-278x (e)
119 https://doi.org/10.30865/json.v5i1.6149
Lelah, & Zaelani, M. Y. F. (2018).
Implementasi Finite State Automata pada Aplikasi Pembelajaran Aksara Sunda.
Santika : Jurnal Ilmiah Sains Dan Teknologi, 8(2), 777–785.
Maulana, A. S. (2020). Implementasi Finite State Automata (FSA) dengan Simulasi Vending Machine pada Aplikasi Android. Jurnal Edukasi Elektro, 3(2), 110–120.
https://doi.org/10.21831/jee.v3i2.28332 Priyanto, A. (2010). Aplikasi Pencocokan
String Dengan Metode Finite Automata.
Jurnal Media Aplikom, 1(3), 157–165.
Robyanto, D., Priyatna, A. P., Hermaliani, E.
H., Frieyadie, F., & Gata, W. (2021).
Implementasi Deterministic Finite Automata (Dfa) Pada Perancangan Aplikasi Perhitungan Uang Harian Perjalanan Dinas Kementerian. Jurnal Ilmiah Informatika, 9(02), 100–104.
https://doi.org/10.33884/jif.v9i02.3770 Siahaan, R. D. (2021). Implementasi
Algoritma Zhu Takaoka Pada Aplikasi Sinopsis Film Bioskop Berbasis Mobile.
Terapan Informatika Nusantara, 1(12),
587–590.
Sihite, R. D., & Mahastama, A. W. (2018).
Rule-Based Syllabification of Korean Words Written in Latin Using Deterministic Finite Automata Models.
Jurnal Terapan Teknologi Informasi,
2(1), 75–85.
https://doi.org/10.21460/jutei.2018.21.77 Wahidin, W., Yasin, V., & Haroen, R. (2021).
Perancangan Sistem Informasi Pengelolaan Lapangan Futsal Berbasis Web Dengan Metode Rapid Application Development Menggunakan Algoritma String Matching Di Maestro Futsal Kemayoran Jakarta. Journal of Information System, Informatics and
Computing, 5(1), 1.
https://doi.org/10.52362/jisicom.v5i1.375 Yana, V. I. (2016). Perbandingan Algoritma Knuth Morris Pratt dan Boyer Moore Pada Aplikasi Kamus Bahasa Indonesia- Korea Berbasis Android. Universitas Sumatera Utara.