The implementation of fisher yates shuffle on aljabar learning media based on hybrid application

. Learning media are widely circulated in the school environment, especially Madrasah Tsanawiyah is a native-shaped media for a particular type of smart phone. There is a problem if there are learners who use different types of smart phones of different types of OS, brand, type, and screen size. This work proposed a hybrid application technology to design the learning media so that it can be accessed by various types of smart phones. Rational Unified Process (RUP) implementing as the main framework. The Fisher Yates Shuffle algorithm applied to the training module and exam to display the sequence of questions and random answer options.


Introduction
Nowadays, technology is inseparable from learners. Most parents facilitate them with smart phones with different brands, types and sizes. Current media are mostly only for specific platforms [1][2][3]. This may result in some learners who do not have a smart phone with the appropriate platform will not be able to access the media [4,5].
Hybrid application is a technology that allows a similar learning media can be used on various types of smart phones [6][7][8][9]. This work implements the hybrid application and implements fisher yates shuffle as the randomization algorithm and answer option in the exam and practice module. This algorithm is an effective algorithm for doing randomization [10,11].

Fisher yates shuffle
Fisher Yates Shuffle is named after its inventors, Ronald Fisher and Frank Yates are used to change the order of randomly generated inputs. The permutations generated by this algorithm come up with the same probability. The basic method given for generating random permutations of 1 -N numbers goes as follows: a. Write the numbers from 1 to n b. Fill k with random numbers between 0 and i + 1 round down c. Calculate from the low end, substitute the k value and write it somewhere else d. Repeat from step 2 until all numbers are replaced e. The order of the numbers written in step 3 is now a random permutation of the original number. f. In the modern version, the selected number is not crossed out, but exchanged its position with the last digit of the number that has not been selected. Table 1 is an example of the workmanship of the modern version. Range is the number of numbers that have not been selected, roll is the selected random number, scratch is a list of numbers that have not been selected, the result is the result of permutations to be obtained. The modern version was introduced because it is more optimal than the previous version. The process is that the last digit will be moved to the drawn out number and change the drawn out to a final non-drawn number for each withdrawal and continue for the next iteration [4]. Another function of this algorithm can be used to perform encryption for files with image extensions [10,12].

Hybrid application
A hybrid app is a web app that is transformed into native code on platforms like iOS or Android. Hybrid applications usually use a browser to allow web applications to access various features in mobile devices such as push notifications, contacts, offline data storage, etc. Some tools to develop hybrid applications include Phonegap, Rubymotion, and Ionic [13].

Fig. 1. Hybrid Application Map
The advantages of building a hybrid application such as project maintenance becomes easier when compared with native applications. Moreover, a hybrid application can be built quickly for cross platform and funding which can be more efficient than native [13].
Hybrid application is technically an HTML5 Web application in the "Native wrapper", or often known as a simple Native app. According to this condition, a hybrid applications may run faster, with still the ability to run offline [13].
The advantage of running HTML documents in wrapping applications, rather than browsers is that most of the assets required by Web pages are stored in Native app packets on the device, not on the server. This means that the app will feel faster, and can run completely offline like a Native app [14][15][16][17]. By maintaining the benefits of Native apps, Hybrid apps can be launched almost as fast as Web applications [15].
Publishing an app for multiple platforms from a single HTML5-based single code can dramatically reduce development costs, and using the same codebase as the basis for mobile-friendly websites with search engines can save further costs, and get a complete suite of mobile apps to be available to the market faster [14,15].

Experimental Method
This work implements prototype method as system development. The prototype paradigm (figure 2) begins with requirement identify and analysis. Development and stake holder meet and define the whole system to be developed, identify all the requirement that are known, then do the design.

Fig. 2. Prototype as System Development Life Cycle
This method is suitable for developing a device that will be developed again [18]. Then we created a lightning design which will then be re-evaluated before it is produced correctly.
The prototype is not a complete method. However, several thing needed to be evaluated and re-modified. Several changes could be occured when a prototype is created to fullfill the stake holder requirement and at the same time allow developers to more understand the requirement. This method effectively implemented in several prevous work [19][20][21].
There are several phases of prototyping method as follow : a. Communication and initial data collection. b. Quick design, which is general design for subsequent development. c. The establishment of prototype, which is making of prototype device including test and perfection. d. Evaluation of prototype and refine analysis to user requirement. e. Improved prototype, which is the actual type creation based on the result of prototype evaluation. f. The final production, which is producing the model properly. Therefore, it could be used by the user. g. Design: the design is done quickly and the design represents all known software aspects, and the design is the basic of prototype. h. Evaluation Prototype: the client evaluates the prototype created and used to clarify the software requirements. [22]

Requirement and analysis
Functional requirement include features, components, or functions that should be contained in the model. There are several functional requirement specification of this study:

Quick design
This work uses Ionic framework as a hybrid application framework for designing the medium of learning of Cakap Aljabar. Cakap Aljabar is a hybrid application that could be generated to running on android and iOS devices. The architecture of the system will be built in the form of service oriented architecture (SOA) where there is no database or storage media on the client device. The database is stored centrally to facilitate the implementation and maintenance process. A server is required as a database server and application server. MySQL is a database management system (DBMS) that is installed on the database server. Web services are installed on the application server so that each client's device can communicate and transmit through web service. Further information about system infrastructure described in figure 3.

Fig. 3. System Architecture of Cakap Aljabar
Cakap Algebra is modeled using a unified diagram language including use case diagram and activity diagram.

Use case Diagram
Cakap Aljabar is used by two actors ie learners and instructor. Both actors have a job of managing a master's school, receiving summary exam, master-level masters, master-level masters, managing master competency test questions, managing master questions, managing master learners, doing exam, and receiving the randomization results as described figure 4.

Activity diagram
Activity diagrams describe the activities undertaken by learner actors and instructor actors in more detail. Therefore, it can represent activities and sub activities and interactions between systems (Cakap Aljabar) with actors (learners and instructor).
Activity diagrams are represented separately between learners and instructor. In learners section, learners must login first before they can see algebraic material content, start exam, or see summary exam as described in the following figure:

Fig. 5. Activity diagram of learners
In instructor section, it appears that the login is mandatory done by the instructor. Then, they can access various types of master data, especially questions, and master exam. The instructor has access to view the learner's history value as described in the following figure:

Result and Discussion
Student's respons to this app is 44,62% expressed that very interest; 47,31% interest; and 8,06% expressed not interest. The degree of difficulty of mathematical skills presented in the medium of learning gets a moderate response from most students. This is evident from the average response as follows: 9.68% said difficult, 80.65% stated moderate and 9.68% stated easy.
According to questionnaire results, student responses are also obtained based on interview results. The results of interviews on several students obtained some obstacles, including: the limited devices owned by students and long enough to connect to the site cakapaljabar.com. This constraint can be overcome by doing group learning outside the classroom by understanding the shared materials and practicing the practice questions together this app.

Conclusion
Fisher yates shuffle is a reliable algorithm for randomizing questions and answers on multiple choice models. This algorithm is very suitable to be installed on instructional media which have feature for exam. In further work, it is necessary to improve some features such as automatic answer assessment for exam questions in the form of essays.