Implementation of the Fisher-Yates Shuffle Algorithm in Exam-Problem Randomization on M-Learning Applications

Many schools are currently using conventional approaches in learning material deliveries and examination methods. Conventional examination processes referred to here are the provision of question sheets in paper form. They have several drawbacks, such as students cheating and a waste of paper printing costs. To overcome these problems, we propose an online examination system. The online system leaves students to work on a different question set from other students. The feature is made possible by applying a randomization algorithm. There are several algorithms for scrambling questions, one of which is the Fisher-Yates Shuffle algorithm. This study aims to ease schools in the implementation of quality exams that may find out the level of student understanding of study materials and reduce the risk of cheating. The research product works on Android smartphones, which may be attractive to students and schools. The product allows schools to hold quality exams and reduce paper costs.


Introduction
The use of information technology has now penetrated all fields, one of which is the field of education. In the world of education, it is necessary to improve the quality, speed, practicality, and convenience in various aspects. One of them is an exam that was previously conventional in nature, to be converted into an online exam. This is an effort to replace the old system with the overall goal of improving the existing system so that it can run more effectively and efficiently. School exams are activities carried out by educational units to measure the achievement of students' competencies, which in turn are used as a measure of achievement of the school [1]. In the world of education, the teacher is one of the spearheads in students' success. Teachers, thus, must be able to follow the development of information technology in order to be more optimal in teaching. The use of technology in making teaching materials and questions will improve the performance of teachers in providing services to students.
This study aims to create an Android-based application that can be used as a practice platform for doing exam questions. Each package of questions given must have a different order of questions from other question packages. This requires scrambling the questions. Many methods can be used to generate random numbers, one of which is the Fisher-Yates Shuffle algorithm which is an algorithm for generating random permutations from a finite set [2]. In addition, the Fisher-Yates Shuffle Algorithm also has a random function in forming a balanced random pattern. This Fisher-Yates Shuffle algorithm is used to randomize the questions in this study.
In general there are many randomization techniques that have been developed by different researchers which can be used in a variety of applications [3]. Among them is a research conducted by Abdi Suhazli who randomized the pieces of a picture in a puzzle game using the fisher yates shuffle method [4]. Research conducted by Widi Aulia Rohmah implements the fisher yates shuffle algorithm to randomize questions in a quiz game, where the questions that appear are randomized and the user does not easily guess the next question [5]. Another research was also conducted by Shafali Agarwal. In that research, the process of making a pixel permutation key was carried out using the knuth shuffle method and dynamic diffusion from random images [6]. Fyan Dimas Pratama's research in 2019 regarding the application of online daily tests using the Linear Congruential Generator (LCG) method concluded that this method can reduce question leakage [7]. A quite interesting research was also conducted by Imam Haditama, Cepy Slamet and Deny Fauzy Rahman in 2016 regarding the Implementation of the Fisher-Yates and Fuzzy Tsukamoto Algorithm in an Android-Based Sundanese Tone Guess Quiz Game. The results of his research showed that the Fisher-Yates algorithm is able to determine the solution of non-multiple randomization and multiple object randomization [8] In this study, the authors used the fisher yates shuffle algorithm for the randomization process because the algorithm uses a shuffling technique used to change the order of an element randomly where the randomization process is unbiased and random [9]. Though the algorithm has a dynamic shuffling nature, the modern form of the algorithm is more efficient. The implementation enhances the time complexity to O(n), from O(n 2 ). Here, the rolled number indicates the position of the element removed from the current list and inserted into the shuffled list and number at the end of the current list is placed at the same position that yields further shuffling at each iteration. This makes the system more dynamic. When the list contains one element, it is removed and inserted into shuffled list [10].

Method
In this study, the authors created a framework to facilitate the development. This framework can be seen in Figure 1. The description is as follows 1.
Problem Identification The process carried out at this stage is to formulate the problems that occur today and which are the objects in the research. The formulated problem is related to the process of randomizing questions in the implementation of the exam and testing the Fisher-Yates Shuffle algorithm in randomizing questions..

2.
Literature Review This stage is then the authors perform data analysis on the problems that occur. One of the analysis processes carried out by the author is by studying the literature related to the problem tracking algorithm. The data source is obtained by the author through journals and books related to question randomization and the Fisher-yates shuffle algorithm.

3.
Data collection At this stage the writer carried out the data collection process where the writer took the data sample by means of interviews, observations, and observations. 4.
Data analysis At this stage, the authors carry out the process of analyzing the data needed in this study, such as data for the randomization process and data related to the Fisher-yates shuffle algorithm..

5.
System planning At this stage the authors carry out the system design process to be built including the desired form of system design and planning in making the system. The purpose of this design is to facilitate the next process, namely at the stage of making the desired system.

6.
System Implementation After the system design process is carried out, the next step is to build the desired system.

7.
System Testing This stage is where the writer ensures whether the process previously carried out is running as expected or not.

Result a. Data analysis
The analysis in this study includes how the fisher-yates shuffle algorithm works in the process of randomizing the questions that are applied in the online exam system that has been built. An overview of the system can be seen in Figure 2.

b. Analysis of the Fisher-Yates Shuffle Algorithm
This development is one way that can be done to minimize cheating in doing practice questions. The process of implementing the algorithm can be seen in Figure 3.

Figure 3. Fisher-Yates Shuffle Algorithm Process Flow
The steps used to generate a random permutation for problems 1 to N can be seen as follows [3]: 1.
Write down the questions from number 1 to number N.

2.
Choose a random question K between 1 and the number of questions that have not been crossed out.

3.
Count from the bottom position. Cross out the K questions that have not been crossed out and write the questions in another place. 4.
Repeat step 2 and step 3 until all the questions have been crossed out. 5.
The order of the questions written in step 3 is the random permutation of the initial problem. The next step is to enter the question attribute into scratch (a list of questions that have not been selected) then create a range (the number of questions that have not been selected). Next do the randomization process, and then see the roll (for a question that is selected from all the existing questions). After that, the results of the questions that have been selected are entered into the results (the results of all the questions that have been randomized) [2]. The process of implementing the randomization algorithm for fifteen questions is exemplified in Table 1. From Figure 4, it can be seen that the randomization is complete when the entire array has been scrambled. The fisher-yates shuffle randomization method produces a randomized array sequence.

c. System Testing
This research resulted in the implementation of the fisher yates shuffle algorithm which is used for the randomization process in mobile-based M-Learning applications. Algorithm testing is carried out on practice exam questions, thus each student will get a different order of questions from other students.
Algorithm implementation into the M-Learning application can be seen in Figures 5 and 6. The results of the randomization test with the Fisher Yates shuffle algorithm can also be seen in Table 2. In Figure 7, it can be seen that the fisher yates shuffle algorithm was successfully applied to the M-Learning application by using several cellphones simultaneously with different questions.
Tests in this study used two tests, namely alpha and beta testing. Alpha testing is also known as blackbox testing. This test is carried out using software specifications without referring to procedures from the internal system being made. The purpose of this test is to test whether the components in the system are in accordance with the desired design. This blackbox test only looks at the basics of the system and ensures that the input made can be accepted by the system properly and produces output as expected. The testing process can be seen in Table 3.  Table 3

Activity
Output Result

Login
The system displays the main page According to the design

List
The system displays a list form and stores data into the database According to the design Select Material The system displays the Material page According to the design Select Problem The system displays the Questions page According to the design Based on Table 3, it can be seen that all system functions that are built can run well using alpha testing (blackbox). If in system use an error occurs it is caused by a system user who does not provide the correct input. In addition to Alpha testing, this study also uses Beta testing, namely testing using a questionnaire. The test sample is as many as 20 individuals, consisting of 15 students and 5 teachers. The list of questionnaire results from this test can be seen in Table 4. Do you agree, if the system that is made has a good user interface? 0% 0% 0,45% 0,55% Do you agree, if the system created can make it easier for the school in the learning process, especially the exam process? 0% 0% 0,3% 0,7% Do you agree, if this system makes it easy to use? 0% 0% 0,25% 0,75%